☰
Laravel 威尔斯语(cy)本地化缺口全解析:Passkey、加密环境文件与验证规则的 15 条缺失翻译键
2026/9/27 23:38:27 网站建设 项目流程
  • 后端

【免费下载链接】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
点击查看免费下载

本篇指南基于 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.jsonJSON 格式翻译(覆盖 Framework、Nova、Fortify、Cashier 等包的界面文本,约 876 行)
locales/cy/json-inline.jsonJSON 行内格式翻译(表单字段名内联进消息,如密码强度规则),约 16 行
locales/cy/php.jsonPHP 数组格式翻译(对应 Laravel 的validation.php),约 151 行
locales/cy/php-inline.jsonPHP 行内格式翻译(对应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_keysThe :attribute field must only contain the following keys: :values.Rhaid i faes :attribute gynnwys yr allweddi canlynol yn unig: :values.
base64The :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_keysThis field must only contain the following keys: :values.Rhaid i'r maes hwn gynnwys yr allweddi canlynol yn unig: :values.
base64This 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",补齐时也应保持这种平行结构。

如何补齐威尔斯语翻译:三步实操

结合上面的定位结果,补齐流程可以归纳为三步:

  1. 对照英文基准写译文。缺什么键,就回到对应source/目录找英文原文:Passkey 相关查 source/passkeys/main/passkeys.json,加密环境文件相关查 source/framework/13.x/framework.json,验证规则相关查 source/framework/master/validation.php。
  2. 按格式落盘。将翻译分别写入locales/cy/json.json(或json-inline.json)、locales/cy/php.json、locales/cy/php-inline.json,注意保持 JSON 键与英文源串完全一致、键按字母序排列、:attribute/:values等占位符原样保留。
  3. 检查占位符与复数规则。威尔斯语是复数规则较复杂的语言(参考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.

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

相关推荐

上一篇:Pixal3D模型架构深度剖析:从Flow模型到SLAT解码器的技术细节
下一篇:Ascend C SoftmaxFlash Tiling接口

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询