- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
本篇指南基于 laravel-lang/lang 仓库的威尔斯语(Welsh,语言代码cy)翻译状态报告 docs/statuses/cy.md,逐条梳理当前仍未翻译的 15 条本地化键,定位它们对应的上游源码出处(Passkeys 包、Laravel Framework 加密环境文件消息、验证规则),并给出补齐翻译、验证与参与贡献的完整实操路径。读完本文,你将掌握如何读懂 laravel-lang 的状态报告、快速定位任意语言缺失键的来源,并能为威尔斯语(或你自己的语言)提交补全翻译。
背景:laravel-lang 与威尔斯语翻译完成度
gh_mirrors/la/lang是 Laravel Localizations(laravel-lang/lang)的镜像仓库,它为 Laravel Framework、Jetstream、Fortify、Breeze、Cashier、Nova、UI 以及 Passkeys 等官方包提供 128 种语言的本地化翻译。每个语言包都存放在仓库的locales/目录下,并配套一份位于docs/statuses/的翻译完成度状态报告。
根据仓库总览 docs/status.md,整个项目的本地化翻译已完成约97.82%(147.1K / 150.4K)。威尔斯语(cy)目前仍未完全对齐上游英文源串,状态报告中明确标注:
All missed: 15
这意味着威尔斯语共缺失 15 条翻译键,分布在三种文件格式中:json(11 条)、php-inline(2 条)、php(2 条)。这 15 条缺口集中在两类新增/更新较快的内容上:Passkeys 通行密钥功能与Laravel 加密环境文件(encrypted environment file),外加两条较新的验证规则消息。
威尔斯语语言包的目录结构
在动手补齐前,先了解威尔斯语翻译文件在仓库中的组织方式。locales/cy/目录包含 5 个文件:
| 文件 | 用途 |
|---|---|
locales/cy/json.json | JSON 格式翻译(覆盖 Framework、Nova、Fortify、Cashier 等包的界面文本,约 876 行) |
locales/cy/json-inline.json | JSON 行内格式翻译(表单字段名内联进消息,如密码强度规则),约 16 行 |
locales/cy/php.json | PHP 数组格式翻译(对应 Laravel 的validation.php),约 151 行 |
locales/cy/php-inline.json | PHP 行内格式翻译(对应validation-inline.php),约 140 行 |
locales/cy/_excludes.json | 无需翻译的英文专有名词/品牌名清单(如国家名 "Canada"、"Nova"、"System" 等) |
其中php与php-inline两种格式分别对应 Laravel 框架的lang/xx/validation.php与lang/xx/validation-inline.php:前者在消息中保留字段名(The :attribute field ...),后者用"此字段/this field"泛指,适合表单内联错误展示。状态报告正是按这四类文件分别统计缺失量的。
json 缺失详解:Passkeys 通行密钥消息(7 条)
威尔斯语在json格式中最大的缺口来自Passkeys(通行密钥)功能。上游英文源串定义于 source/passkeys/main/passkeys.json,目前该文件仅包含 3 条键,而威尔斯语缺了 7 条(部分键同时存在于 Fortify 等其他包源中)。缺失清单如下:
| 缺失的英文键 | 建议的威尔斯语译文 |
|---|---|
| Invalid credential format. | Fformat tystlythyr annilys. |
| Passkey not recognized. It may have been removed from your account. | Heb adnabod y passkey. Efallai ei fod wedi'i ddileu o'ch cyfrif. |
| Passkey registration session expired. Please try again. | Mae sesiwn cofrestru'r passkey wedi dod i ben. Ceisiwch eto. |
| Passkey verification session expired. Please try again. | Mae sesiwn dilysu'r passkey wedi dod i ben. Ceisiwch eto. |
| Unable to register passkey. Please try again. | Methu cofrestru'r passkey. Ceisiwch eto. |
| Unable to register this passkey. | Methu cofrestru'r passkey hwn. |
| Unable to verify passkey. Please try again. | Methu dilysu'r passkey. Ceisiwch eto. |
为什么会有 Passkey 键?Laravel 自 12 起引入 Passkeys 包,用于基于 WebAuthn 的免密登录。这些键描述的是通行密钥在注册、验证会话过期、凭证格式非法、凭证被移除等场景下的错误提示。由于该包较新,多数语言的翻译尚未跟进,因此出现在状态报告的 "Missing" 列表中。仓库内 source/passkeys/main/passkeys.json 与 source/passkeys/extended.json 是这些键的英文基准,翻译时应以它们为准。
注意:上表"建议译文"为基于威尔斯语惯例的翻译示例,供贡献者参考,并非仓库已确认的译文。
json 缺失详解:加密环境文件消息(4 条)
json缺失的另外 4 条来自Laravel Framework 的加密环境文件(env:encrypt/env:decrypt)功能。上游英文源串位于 source/framework/13.x/framework.json,相邻的同类键还包括 "Encrypted environment file already exists."、"Encrypted environment file not found." 等。威尔斯语缺失的 4 条为:
| 缺失的英文键 | 建议的威尔斯语译文 |
|---|---|
| The existing encrypted environment file is not in readable format. Use --force to overwrite it. | Nid yw'r ffeil amgylchedd wedi'i hamgryptio sy'n bodoli mewn fformat darllenadwy. Defnyddiwch --force i'w throsysgrifennu. |
| The existing encryption key is required to update the encrypted environment file. | Mae angen yr allwedd amgryptio sy'n bodoli i ddiweddaru'r ffeil amgylchedd wedi'i hamgryptio. |
| Unable to write the encrypted environment file. | Methu ysgrifennu'r ffeil amgylchedd wedi'i hamgryptio. |
| Unable to sign in with this account. | Methu mewngofnodi gyda'r cyfrif hwn. |
为什么会有这些键?Laravel 12 改进了php artisan env:encrypt命令的错误处理,当已有加密环境文件格式不可读(可用--force覆盖)、更新文件需要既有加密密钥、或文件无法写入时,会抛出这些消息。这类命令行错误消息属于新加入的源串,尚未在威尔斯语包中翻译,故被标记为缺失。核实方法:在 source/framework/13.x/framework.json 中搜索 "encrypted environment" 即可看到同组全部英文键。
php 与 php-inline 缺失详解:array_keys 与 base64 验证规则
威尔斯语的php与php-inline两种格式各缺 2 条,且缺的是同一对验证规则消息:array_keys与base64。英文基准位于 source/framework/master/validation.php(第 16、19 行附近):
'array_keys' => 'The :attribute field must only contain the following keys: :values.', 'base64' => 'The :attribute field must be a valid Base64 string.',对应到两种威尔斯语格式的缺失条目:
php(lang/cy/validation.php,保留字段名:attribute)
| 键 | 英文消息 | 建议的威尔斯语译文 |
|---|---|---|
| array_keys | The :attribute field must only contain the following keys: :values. | Rhaid i faes :attribute gynnwys yr allweddi canlynol yn unig: :values. |
| base64 | The :attribute field must be a valid Base64 string. | Rhaid i faes :attribute fod yn llinyn Base64 dilys. |
php-inline(lang/cy/validation-inline.php,不重复字段名)
| 键 | 英文消息 | 建议的威尔斯语译文 |
|---|---|---|
| array_keys | This field must only contain the following keys: :values. | Rhaid i'r maes hwn gynnwys yr allweddi canlynol yn unig: :values. |
| base64 | This field must be a valid Base64 string. | Rhaid i'r maes hwn fod yn llinyn Base64 dilys. |
为什么会有这两条规则?array_keys与base64是 Laravel 较新版本加入的验证规则:array_keys用于限定数组字段只能包含指定键名,base64用于校验字符串是否为合法的 Base64 编码。由于它们是后加入的规则,威尔斯语现有文件(locales/cy/php.json 与 locales/cy/php-inline.json)中尚未包含这两个键。对比仓库内其他已翻译键(如accepted、active_url)可以看到,php.json与php-inline.json的键集合基本一一对应,仅措辞上区分:attribute与 "this field",补齐时也应保持这种平行结构。
如何补齐威尔斯语翻译:三步实操
结合上面的定位结果,补齐流程可以归纳为三步:
- 对照英文基准写译文。缺什么键,就回到对应
source/目录找英文原文:Passkey 相关查 source/passkeys/main/passkeys.json,加密环境文件相关查 source/framework/13.x/framework.json,验证规则相关查 source/framework/master/validation.php。 - 按格式落盘。将翻译分别写入
locales/cy/json.json(或json-inline.json)、locales/cy/php.json、locales/cy/php-inline.json,注意保持 JSON 键与英文源串完全一致、键按字母序排列、:attribute/:values等占位符原样保留。 - 检查占位符与复数规则。威尔斯语是复数规则较复杂的语言(参考
json.json中 "(a :count gwall arall)|(a :count arall o wallau)|..." 这类竖线分隔的复数变体写法),提交前应确认每条消息中的:count、:min、:max、:values等占位符未被改动。
仓库为每种语言提供了一致的目录布局与_excludes.json机制(见 locales/cy/_excludes.json),_excludes.json中列出的词条(如品牌名、国家名)无需翻译,提交翻译时不应改动这部分。
如何验证翻译是否补齐
补齐后,可以通过状态报告反向验证:重新对照 docs/statuses/cy.md 中的 "Missing" 列表,确认 15 条缺口逐条消失。该状态文件由项目脚本自动生成(对应docs/status.md中的总览统计),当locales/cy/下各文件与英文基准完全对齐后,威尔斯语条目将从缺失列表移除。
对于翻译质量,可以参考同属凯尔特语系、结构相近的盖尔语(gd)或爱尔兰语(ga)的翻译文件(locales/gd/php.json、locales/ga/php.json)来校准威尔斯语的语法习惯;对于验证规则消息的占位符语义,可对照 source/framework/master/validation.php 中:attribute、:values的实际渲染方式。
小结
威尔斯语(cy)在 laravel-lang 中的 15 条翻译缺口,本质上是 Laravel 近期新增功能的"时差"体现:7 条来自 Passkeys 通行密钥错误消息、4 条来自 Laravel 12 加密环境文件命令消息、4 条(php 与 php-inline 各 2)来自array_keys与base64验证规则。借助 docs/statuses/cy.md 的状态报告与source/目录的英文基准,任何人都能快速定位、翻译并验证这些缺口,让威尔斯语用户获得完整的 Laravel 原生体验。
- 后端
【免费下载链接】lang
List of 128 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova and Laravel UI.
相关推荐
Laravel 法语语言包翻译缺口全景:Passkeys、加密环境文件与 encoding 验证规则的 12 个待补条目
Laravel 法语语言包翻译缺口全景:Passkeys、加密环境文件与 encoding 验证规则的 12 个待补条目 本文以 docs/statuses/f
后端Laravel 本地化 ee(Ewe 语)翻译缺口分析:15 个缺失键的定位与补全指南
Laravel 本地化 ee(Ewe 语)翻译缺口分析:15 个缺失键的定位与补全指南 Ewe(Ewe 语,语言代码 ee )是 Laravel 官方本地化语言
后端Kubernetes 安全响应流程全解析:漏洞报告、分级与发布机制(community 仓库官方指南)
Kubernetes 安全响应流程全解析:漏洞报告、分级与发布机制(community 仓库官方指南) 本篇文章以 Kubernetes Community 官
后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考