- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
导读
lang 是一个为 Laravel 生态(Framework、Jetstream、Fortify、Breeze、Cashier、Nova、UI、Passkeys 等)提供 128 种语言本地化文件的 Composer 包。本文以 docs/statuses/mn.md 这份"蒙古语语言包翻译状态报告"为核心,逐项拆解当前仍缺失的 15 个翻译条目(json 11 项、php-inline 2 项、php 2 项),并结合 locales/mn 目录下的实际语言包文件与 source/framework 中的 Laravel 框架原文,说明这些缺失项的来源、影响范围以及补齐方法。读完本文,你将能读懂本仓库任意一份docs/statuses/*.md状态页,并掌握为蒙古语(乃至其他语言)语言包提交翻译的完整路径。
一、mn.md 是什么:蒙古语语言包的"翻译体检报告"
docs/statuses/目录下为每种语言存放一份独立的翻译状态页,mn对应蒙古语(Mongolian,ISO 639-1 代码mn,西里尔字母书写)。这份报告不是翻译文件本身,而是由仓库维护流程自动生成、用于跟踪"哪些键仍使用英文原文、尚未被翻译成蒙古语"的清单:
- 文件头部的
##### All missed: 15表示该语言包当前共有15 个键仍为英文原文; - 报告按语言包的实际格式分组统计:
json(界面/前端 JSON 字符串)缺失 11 项、php-inline(内联验证消息)缺失 2 项、php(验证消息数组)缺失 2 项; - 每个缺失项以"Key(英文键名) / Value(当前值)"两列表格呈现。注意:
Value列与Key列内容相同,意味着该键尚未翻译,占位值就是英文原文本身。
全局视角可查看 docs/status.md——它汇总了全部 128 种语言的完成状态,其中蒙古语(mn)与绝大多数语言一样标记为❗(尚未 100% 完成),仅有ko(韩语)标记为✔。
二、三种格式的含义:json、php、php-inline
状态页中的分组对应locales/mn/目录下的不同文件,理解它们有助于定位缺失项落点:
| 格式 | 对应文件 | 用途 |
|---|---|---|
json | locales/mn/json.json | 面向浏览器/前端界面与第三方包的 JSON 字符串(如 Nova 管理后台、Jetstream 页面文案) |
json-inline | locales/mn/json-inline.json | JSON 形态的内联验证消息 |
php | locales/mn/php.json | Laravel 框架的验证规则消息(validation.php对应内容) |
php-inline | locales/mn/php-inline.json | 内联验证消息(错误提示直接以"该字段"指代属性名,不再嵌入:attribute) |
此外 locales/mn/_excludes.json 列出了从翻译范围中显式排除的键(如CSV (.csv)、Excel (.xlsx)、Nova等品牌词条),这些不会被计入缺失项。
三、json 格式缺失项详解(11 项)
状态页json分组下共列出 11 个仍未翻译的键,按功能来源可归为三类:
3.1 Passkeys(无密码登录)相关,5 项
| Key(英文原文) |
|---|
| 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 verify passkey. Please try again. |
这组字符串与 Laravel 12.x 引入的Passkeys(通行密钥)功能相关。仓库中 src/Plugins/Passkeys/Main.php 正是负责注入 Passkeys 界面文案的插件实现,其对应源码字符串保存在 source/passkeys 下。从源码结构可以推断,这些消息覆盖了通行密钥注册会话过期、验证会话过期、无法注册、无法验证等典型失败场景,是 WebAuthn 认证流程的面向用户文案。
3.2 环境文件加密(env:encrypt)相关,4 项
| Key(英文原文) |
|---|
| The existing encrypted environment file is not in readable format. Use --force to overwrite it. |
| The existing encryption key is required to update the encrypted environment file. |
| Unable to write the encrypted environment file. |
| Invalid credential format. |
前三条来自 Laravel 的环境文件加密命令(php artisan env:encrypt/env:decrypt/env:update)。其中Use --force to overwrite it明确提示:当已存在加密.env文件但无法读取其格式时,需要追加--force选项强制覆盖——这是命令行操作层面的直接指引。
3.3 账号登录相关,1 项
| Key(英文原文) |
|---|
| Unable to sign in with this account. |
需要说明的是,这 11 项在 locales/mn/json.json 中均已存在对应键(例如第 340、502–504、777–781 行),但值仍为英文原文,即"键已收录、译文未填"状态;而同文件中诸如"Encrypted environment file already exists."(第 252 行)等其他环境加密消息则已完成蒙古语翻译,可见缺失集中在上述新近加入的字符串上。
四、php 与 php-inline 缺失项详解(各 2 项)
php与php-inline分组各缺失 2 项,且内容一致,只是文案措辞不同(php带:attribute属性名占位符,php-inline直接以"该字段/This field"指代):
| 键 | 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. |
源码佐证
这两个键是 Laravel 框架验证规则(Validation)的官方消息。在 source/framework/master/validation.php 中可找到英文基准原文:
- 第 16 行:
'array_keys' => 'The :attribute field must only contain the following keys: :values.' - 第 19 行:
'base64' => 'The :attribute field must be a valid Base64 string.'
其中array_keys对应array_keys验证规则(限制数组只能包含指定键),base64对应base64规则(校验字符串是否为合法 Base64 编码)。相比之下,locales/mn/php.json 与 locales/mn/php-inline.json 中其余 100 余条规则消息(如accepted、required、email等)均已译成蒙古语,仅这两条新规则尚未跟进。
五、从状态页到语言包:仓库内的蒙古语资源全景
要完整了解蒙古语语言包现状,建议结合以下仓库路径对照查看:
- locales/mn/json.json:约 870 条界面字符串,覆盖 Nova 管理后台、Jetstream 团队/订阅、Cashier 账单、Fortify 双因素认证等场景。注意其复数形式处理:蒙古语键值采用
|分隔的多形态写法,例如"(and :count more errors)": "(болон өөр :count алдаа)|(болон өөр :count алдаа)|(болон өөр :count алдаа)"; - locales/mn/json-inline.json:15 条内联验证消息,均已翻译;
- locales/mn/php.json:约 150 条验证规则消息,缺失项即上文
array_keys、base64; - locales/mn/php-inline.json:约 140 条内联验证消息;
- locales/mn/_excludes.json:排除清单。
翻译的"源文本"由 source/framework 按 Laravel 版本维护(11.x、12.x、13.x、master各含auth.php、pagination.php、passwords.php、validation.php、framework.json),其他包的源文本位于 source/breeze、source/cashier、source/fortify、source/jetstream、source/nova、source/passkeys、source/spark、source/ui 等目录,插件注册逻辑集中在 src/Plugins。
六、补齐缺失翻译:实操路径
- 定位目标键:按状态页分组,打开
locales/mn/下对应文件(如php.json),找到"array_keys"键; - 替换译文:将英文原文替换为蒙古语文案,注意保留
:attribute、:values、:count等占位符(运行时由 Laravel 动态填充)以及|分隔的复数形式; - 保持 JSON 合法:蒙古语西里尔字符可直接以 UTF-8 写入,无需转义,但需保证双引号与逗号语法正确;
- 校验与提交:参考仓库 tests/PluginTest.php 的测试方式验证语言包结构,随后提交改动,状态页将在下次生成时移除对应条目。
对json分组的 Passkeys 与环境加密消息同理:在 locales/mn/json.json 中找到对应键并填入蒙古语译文即可,示例翻译风格可参照同文件中已完成的"Encrypted environment file already exists.": "Шифрлэгдсэн орчны файл аль хэдийн байна."(第 252 行)。
七、状态页与整体进度的关系
docs/statuses/mn.md 仅是 128 个语言状态页之一,所有语言的完成度统一收录于 docs/status.md(当前整体完成度约 97.82%)。蒙古语当前的 15 个缺失项全部集中于"新近加入的框架特性"(Passkeys、环境加密、array_keys/base64验证规则),其余历史词条已基本译毕。因此,补齐这 15 项即可使蒙古语语言包接近完整,这一模式同样适用于仓库内其他标记❗的语言——这正是docs/statuses/目录存在的价值:让维护者与贡献者能一眼看清"还差什么、差在哪、该怎么补"。
- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
相关推荐
Laravel Lang 语言包 Luganda(lg)翻译状态深度解析:缺失键清单、文件结构与补齐指南
Laravel Lang 语言包 Luganda(lg)翻译状态深度解析:缺失键清单、文件结构与补齐指南 Laravel Lang( laravel lang/
后端Laravel Lang 加利西亚语(gl)语言包缺失翻译清单与补齐指南
Laravel Lang 加利西亚语(gl)语言包缺失翻译清单与补齐指南 本篇技术指南基于 Laravel Lang 仓库中的翻译完成度状态报告,聚焦加利西亚语
后端Laravel Lang 哈萨克语(kk)语言包翻译状态全解析:15 个缺失键的分布、来源与补齐指南
Laravel Lang 哈萨克语(kk)语言包翻译状态全解析:15 个缺失键的分布、来源与补齐指南 本篇技术指南聚焦 laravel lang/lang 项目
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考