news 2026/9/28 2:46:22

Laravel Lang 奥里亚语(or)本地化缺口盘点:15 个待翻译键位、来源模块与补齐指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Laravel Lang 奥里亚语(or)本地化缺口盘点:15 个待翻译键位、来源模块与补齐指南
  • 后端

【免费下载链接】lang

List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.

项目地址:https://gitcode.com/gh_mirrors/la/lang
点击查看免费下载

奥里亚语(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 的报告,奥里亚语的缺失键位分布在三种输出格式中:

输出格式缺失键位数涉及的键位来源
json11Passkeys 无密码登录消息(8 条)+ 加密环境变量文件消息(3 条)
php-inline2校验规则array_keys、base64
php2校验规则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_keysThe :attribute field must only contain the following keys: :values.This field must only contain the following keys: :values.
base64The :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/ 下同时维护四种产物文件,与状态报告的格式划分一一对应:

文件相对路径承载内容
完整 JSONlocales/or/json.json全部组件(框架、Breeze、Cashier、Fortify、Jetstream、Nova、Passkeys、Spark、UI 等)的 UI 文案
内联 JSONlocales/or/json-inline.jsonJSON 消息的内联变体(本次报告无缺失条目)
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 个键位:实操路径

仓库是只读的,以下补齐流程供你在自己的分支或派生仓库中操作:

  1. 定位产物文件:分别编辑 locales/or/json.json、locales/or/php.json 与 locales/or/php-inline.json,将上述 15 个键位的英文值替换为奥里亚语译文。
  2. 保留占位符:翻译时必须原样保留:attribute、:values、:count等冒号占位符,并保持键名(英文原文)不变——键名是框架查找翻译的索引。
  3. 同步格式变体:php与php-inline两个文件中的同一条规则需要分别翻译(带:attribute与不带:attribute的两种措辞),缺一不可。
  4. 重新生成与校验:仓库在 composer.json 中声明了laravel-lang/publisher(^16.0)作为发布依赖,并提供了format脚本(vendor/bin/lang sync)。翻译完成后运行该命令可同步发布产物;随后执行vendor/bin/phpunit --colors=always运行测试目录 tests/PluginTest.php 下的测试,验证各插件的文件映射与键位完整性。
  5. 回归状态报告:补齐后重新生成状态文档,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.

项目地址:https://gitcode.com/gh_mirrors/la/lang
点击查看免费下载

相关推荐

上一篇:IBAnimatable 技术债务管理:代码重构与架构演进
下一篇:Android-SpinKit完整指南:13种专业加载动画的终极解决方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 2:45:32

银河麒麟V10 ARM64离线升级OpenSSH 10.0p2国密加固指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 2:44:08

中科蓝讯RISC-V开发环境搭建:CodeBlocks与RV32工具链配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 2:43:09

pixi auth 完全指南:为私有频道与上传服务配置登录凭证

开发工具CLI包管理器任务调度 【免费下载链接】pixi Powerful system-level package manager for Linux, macOS and Windows written in Rust – building on top of the Conda ecosystem. 项目地址: https://gitcode.com/gh_mirrors/pi/pixi 点击查看 免费下载 导…

作者头像 李华