- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
奥里亚语(Odia,语言代码or,ଓଡ଼ିଆ)是印度奥里萨邦的官方语言。在 Laravel Lang 本地化仓库中,or语言的翻译进度由一个独立的“状态报告”文件 docs/statuses/or.md 持续跟踪。本文以该报告为骨架,逐条拆解奥里亚语当前仍未翻译的 15 个键位:其中 11 条属于 JSON 消息(Passkeys 无密码登录模块与.env环境变量加密命令),4 条属于 PHP 校验规则消息(array_keys与base64)。读完本文,你将掌握状态报告的阅读方法、每个缺失键位的上游来源模块,以及如何借助仓库的插件与发布机制将这 15 个键位一次性补齐。
一、状态报告是什么:本地化完成度的“体检单”
Laravel Lang 仓库为每一种受支持的语言维护一份独立的完成度报告,存放于 docs/statuses/ 目录下,or语言对应的就是 docs/statuses/or.md。这类文档由laravel-lang/status-generator自动生成(见 composer.json 的require-dev配置),核心作用是:
- 列出缺口:用
Missing: N明确标注该语言在当前输出格式中缺失的键位数; - 给出原文与现值:用
Key | Value双列表格展示每一个尚未翻译的键——两列内容相同,说明该键仍停留在英文原文,尚未被译成奥里亚语; - 汇总总量:文档头部用
All missed: 15给出该语言全部缺失键位的总数。
总览页 docs/status.md 则统计了全部语言的整体完成度(当前为97.82%,147.1K / 150.4K),并按语言逐一链接到各自的状态报告。奥里亚语在总览表中被标记为❗(未完成),意味着它还有or.md中列出的缺口需要社区翻译者补齐。
二、奥里亚语总体缺口:15 个键位分布
根据 docs/statuses/or.md 的报告,奥里亚语的缺失键位分布在三种输出格式中:
| 输出格式 | 缺失键位数 | 涉及的键位来源 |
|---|---|---|
json | 11 | Passkeys 无密码登录消息(8 条)+ 加密环境变量文件消息(3 条) |
php-inline | 2 | 校验规则array_keys、base64 |
php | 2 | 校验规则array_keys、base64 |
三部分合计恰好等于文档头部的All missed: 15。值得注意的是,报告中没有出现json-inline小节,说明该格式的奥里亚语翻译已完整,本次缺口全部集中在json、php与php-inline三种格式中。
三、json 格式:11 个缺失键位详解
json格式对应仓库中的 locales/or/json.json,是 Laravel 应用通过__()辅助函数加载的键值翻译文件,覆盖框架本身及所有官方扩展包在前端与后端渲染的全部 UI 文案。报告中缺失的 11 条键位分属两个上游模块。
3.1 Passkeys 无密码登录:8 条消息
Passkeys(通行密钥)是 Laravel 官方扩展laravel/passkeys提供的基于 WebAuthn 的无密码登录能力。在 locales/or/json.json 中,以下 8 条消息仍保留英文原文:
| 键位(英文原文) | 语义 |
|---|---|
Invalid credential format. | 凭据格式非法 |
Passkey not recognized. It may have been removed from your account. | 通行密钥无法识别,可能已从账户中移除 |
Passkey registration session expired. Please try again. | 通行密钥注册会话过期 |
Passkey verification session expired. Please try again. | 通行密钥验证会话过期 |
Unable to register passkey. Please try again. | 通行密钥注册失败 |
Unable to register this passkey. | 无法注册该通行密钥 |
Unable to sign in with this account. | 无法使用该账户登录 |
Unable to verify passkey. Please try again. | 通行密钥验证失败 |
这些消息的上游原文存放在仓库的 source/passkeys/main/passkeys.json(3 条)与 source/passkeys/extended.json(5 条)中,合计正好 8 条。将它们发布到各语言包的映射规则定义在插件 src/Plugins/Passkeys/Main.php 中:
public function files(): array { return [ 'passkeys/main/passkeys.json' => '{locale}.json', 'passkeys/extended.json' => '{locale}.json', ]; }从插件代码可以看到,该插件声明其来源为laravel/passkeys(版本约束dev-main || 0.*),并把两份 JSON 源文件统一合并输出为{locale}.json,即最终的 locales/or/json.json。
3.2 加密环境变量文件:3 条消息
其余 3 条 json 缺失键位均与 Laravel 框架的.env加密/解密命令(env:encrypt/env:decrypt)相关,描述加密环境文件在更新与覆盖时的异常场景:
| 键位(英文原文) | 语义 |
|---|---|
The existing encrypted environment file is not in readable format. Use --force to overwrite it. | 已存在的加密环境文件不可读,需用--force强制覆盖 |
The existing encryption key is required to update the encrypted environment file. | 更新加密环境文件必须提供原有加密密钥 |
Unable to write the encrypted environment file. | 无法写入加密环境文件 |
这三条消息同样在 locales/or/json.json 中保持着英文原文(可对照仓库 locales/or/json.json 的键位现状)。它们是 Laravel 框架命令行工具链的一部分,属于所有语言包都需要覆盖的公共文案。
四、php 与 php-inline 格式:2 个校验规则消息
php与php-inline两种格式均承载 Laravel 框架的语言文件(auth.php、pagination.php、passwords.php、validation.php等)合并后的 JSON 产物。奥里亚语在这两种格式中各缺失 2 个键位,且内容完全相同——它们是校验器(Validator)在 Laravel 11+ 中新增的规则消息:
| 键位 | php 格式取值(带属性名) | php-inline 格式取值(无属性名) |
|---|---|---|
array_keys | The :attribute field must only contain the following keys: :values. | This field must only contain the following keys: :values. |
base64 | The :attribute field must be a valid Base64 string. | This field must be a valid Base64 string. |
4.1 规则语义
array_keys:用于限制数组字段只能包含指定的键集合。消息中的:attribute会被替换为被校验字段名,:values则列出允许的键列表。base64:用于校验字段值是否为合法的 Base64 字符串,:attribute同样指向字段名。
这两条消息的英文原文定义在框架源文件 source/framework/master/validation.php 中,仓库同时维护了11.x、12.x、13.x、master四套框架版本源文件(见 source/framework/ 目录),以确保各主版本的消息集都能被覆盖。而在奥里亚语产物 locales/or/php.json 中,array_keys与base64两条仍为英文,这正是报告将其标记为Missing的原因。
4.2 php 与 php-inline 的区别
对比两种格式的取值可以发现:php格式的消息以The :attribute field...开头,把字段名显式拼进句子;而php-inline格式则直接以This field...开头,不引用字段名。Laravel 允许开发者在内联校验消息中省略属性名,这两种格式正是为适配该机制而分别维护的——因此同一个规则在两种格式下都需要各自翻译,也解释了为什么这 2 个键位会同时出现在报告的php-inline与php两个小节中。
五、四种本地化文件格式与仓库布局
奥里亚语目录 locales/or/ 下同时维护四种产物文件,与状态报告的格式划分一一对应:
| 文件 | 相对路径 | 承载内容 |
|---|---|---|
| 完整 JSON | locales/or/json.json | 全部组件(框架、Breeze、Cashier、Fortify、Jetstream、Nova、Passkeys、Spark、UI 等)的 UI 文案 |
| 内联 JSON | locales/or/json-inline.json | JSON 消息的内联变体(本次报告无缺失条目) |
| PHP 全量 | locales/or/php.json | 框架语言文件(含校验消息,带:attribute) |
| PHP 内联 | locales/or/php-inline.json | 校验消息内联变体(不含:attribute) |
值得注意的是,奥里亚语 JSON 文件已经运用了 Laravel 的复数形式管道语法——例如 locales/or/json.json 中(and :count more errors)的值使用|分隔多个复数变体。这意味着后续补齐缺失键位时,也需要注意遵循同样的复数与占位符(:count、:attribute、:values等)约定,保证与框架的替换逻辑兼容。
六、如何补齐这 15 个键位:实操路径
仓库是只读的,以下补齐流程供你在自己的分支或派生仓库中操作:
- 定位产物文件:分别编辑 locales/or/json.json、locales/or/php.json 与 locales/or/php-inline.json,将上述 15 个键位的英文值替换为奥里亚语译文。
- 保留占位符:翻译时必须原样保留
:attribute、:values、:count等冒号占位符,并保持键名(英文原文)不变——键名是框架查找翻译的索引。 - 同步格式变体:
php与php-inline两个文件中的同一条规则需要分别翻译(带:attribute与不带:attribute的两种措辞),缺一不可。 - 重新生成与校验:仓库在 composer.json 中声明了
laravel-lang/publisher(^16.0)作为发布依赖,并提供了format脚本(vendor/bin/lang sync)。翻译完成后运行该命令可同步发布产物;随后执行vendor/bin/phpunit --colors=always运行测试目录 tests/PluginTest.php 下的测试,验证各插件的文件映射与键位完整性。 - 回归状态报告:补齐后重新生成状态文档,
docs/statuses/or.md中的All missed: 15应相应下降,docs/status.md 总览中的整体完成度随之提升。
七、小结
docs/statuses/or.md 以精确到键位的粒度揭示了奥里亚语本地化的剩余工作:8 条 Passkeys 无密码登录消息、3 条环境变量加密文件消息,以及 2 条(×2 格式)数组键与 Base64 校验规则消息。这些键位分散在json、php、php-inline三种产物中,上游来源均可回溯至 source/passkeys/ 与 source/framework/ 的源文件,并由 src/Plugins/ 下的插件按版本规则分发到各语言包。对于翻译者而言,按本文第五节的文件布局逐一补齐即可;对于使用方而言,读懂这份状态报告,也能在集成奥里亚语界面时准确预判哪些文案仍会以英文回退显示。
- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
相关推荐
Laravel Lang 捷克语(cs)语言包翻译缺口全解析:15 个待翻译键的来源与补齐实战
Laravel Lang 捷克语(cs)语言包翻译缺口全解析:15 个待翻译键的来源与补齐实战 本篇指南以 docs/statuses/cs.md https:
后端Laravel 本地化 ee(Ewe 语)翻译缺口分析:15 个缺失键的定位与补全指南
Laravel 本地化 ee(Ewe 语)翻译缺口分析:15 个缺失键的定位与补全指南 Ewe(Ewe 语,语言代码 ee )是 Laravel 官方本地化语言
后端Laravel Localizations 立陶宛语(lt)本地化缺口全解析:15 个待翻译键的来源、语义与补全方案
Laravel Localizations 立陶宛语(lt)本地化缺口全解析:15 个待翻译键的来源、语义与补全方案 本篇文章基于 Laravel Locali
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考