ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Laravel Lang 本地化代码(Locale)对照指南:128 个语言目录与翻译规则的完整映射

Laravel Lang 本地化代码(Locale)对照指南:128 个语言目录与翻译规则的完整映射 后端【免费下载链接】langList 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 仓库中的本地化规则文档.aiassistant/rules/locales.md为骨架系统梳理仓库全部 128 个locales/语言目录与其对应语言的映射关系并结合source/源字符串、src/插件注册与docs/status.md翻译进度等仓库证据讲清楚「哪个目录只能翻译成哪种语言」「区域/脚本变体如何命名」以及「这些目录在 Laravel 项目中如何被消费」。读完本文你将掌握 Laravel Lang 本地化目录的完整编目并能正确选择、配置和扩展多语言语言包。一、背景为什么需要一份「本地化代码 ↔ 语言」的严格对照表laravel-lang/lang是一个为 Laravel Framework、Jetstream、Fortify、Breeze、Cashier、Nova、Spark 与 UI 提供多语言语言包的仓库见 composer.json 中的description。它的核心资产全部存放在根目录locales/下——每支持一种语言就有一个以本地化代码locale code命名的目录。本地化代码是计算机与人共同约定的一套语言标识符zh_CN表示简体中文、de_CH表示瑞士德语、pt_BR表示巴西葡萄牙语。代码中的下划线把「语言」和「地区/文字变体」分开避免翻译歧义——同样是葡萄牙语巴西与葡萄牙的用词差异显著必须拆成两个目录分别维护。仓库中的规则文档.aiassistant/rules/locales.md正是把这条约束写成了机器可读的 128 条硬性规定locales/code目录的内容永远只允许翻译成language这一种语言。这份规则的价值在于对人工译者与 AI 辅助翻译而言它锁定了每个目录的目标语言防止把翻译内容错配进错误的语言目录对自动化流水线如composer.json中定义的vendor/bin/lang sync同步脚本而言它提供了目录与语言一一对应的权威编目便于批量校验与生成对应用开发者而言它是选择config/app.php中locale取值时的速查表。二、完整映射表128 个本地化代码与语言的对应关系以下四个表格按字母序完整收录规则文档中的全部 128 个条目保持原文档af→zu的排列顺序代码列即仓库根目录locales/下的实际目录名。2.1 A–D从 Afrikaans 到 Dogri目录locale对应语言afAfrikaans南非荷兰语akAkan阿肯语amAmharic阿姆哈拉语arArabic阿拉伯语asAssamese阿萨姆语azAzerbaijani阿塞拜疆语beBelarusian白俄罗斯语bgBulgarian保加利亚语bhoBhojpuri博杰普尔语bmBambara班巴拉语bnBangla孟加拉语bsBosnian波斯尼亚语caCatalan加泰罗尼亚语cebCebuano宿务语ckbCentral Kurdish中库尔德语csCzech捷克语cyWelsh威尔士语daDanish丹麦语de_CHGerman (Switzerland)瑞士德语deGerman德语doiDogri多格拉语2.2 E–L从 Ewe 到 Latvian目录locale对应语言eeEwe埃维语elGreek希腊语en_CAEnglish (Canada)加拿大英语enEnglish英语eoEsperanto世界语esSpanish西班牙语etEstonian爱沙尼亚语euBasque巴斯克语faPersian波斯语fiFinnish芬兰语filFilipino菲律宾语frFrench法语fyWestern Frisian西弗里斯兰语gaIrish爱尔兰语gdScottish Gaelic苏格兰盖尔语glGalician加利西亚语guGujarati古吉拉特语haHausa豪萨语hawHawaiian夏威夷语heHebrew希伯来语hiHindi印地语hrCroatian克罗地亚语htHaitian Creole海地克里奥尔语huHungarian匈牙利语hyArmenian亚美尼亚语idIndonesian印度尼西亚语igIgbo伊博语isIcelandic冰岛语itItalian意大利语jaJapanese日语kaGeorgian格鲁吉亚语kkKazakh哈萨克语kmKhmer高棉语knKannada卡纳达语koKorean韩语kuKurdish库尔德语kyKyrgyz吉尔吉斯语lbLuxembourgish卢森堡语lgGanda干达语lnLingala林加拉语loLao老挝语ltLithuanian立陶宛语lvLatvian拉脱维亚语2.3 M–Q从 Maithili 到 Quechua目录locale对应语言maiMaithili迈蒂利语mgMalagasy马达加斯加语miMāori毛利语mkMacedonian马其顿语mlMalayalam马拉雅拉姆语mnMongolian蒙古语mni_MteiManipuri曼尼普尔语Meitei 文字mrMarathi马拉地语msMalay马来语mtMaltese马耳他语myBurmese缅甸语nbNorwegian Bokmål挪威书面语neNepali尼泊尔语nlDutch荷兰语nnNorwegian Nynorsk挪威新挪威语ocOccitan奥克语omOromo奥罗莫语orOdia奥里亚语paPunjabi旁遮普语plPolish波兰语psPashto普什图语pt_BRPortuguese (Brazil)巴西葡萄牙语ptPortuguese葡萄牙语quQuechua克丘亚语2.4 R–Z从 Romanian 到 Zulu目录locale对应语言roRomanian罗马尼亚语ruRussian俄语rwKinyarwanda基尼亚卢旺达语saSanskrit梵语scSardinian撒丁语sdSindhi信德语siSinhala僧伽罗语skSlovak斯洛伐克语slSlovenian斯洛文尼亚语snShona绍纳语soSomali索马里语sqAlbanian阿尔巴尼亚语sr_CyrlSerbian塞尔维亚语西里尔文字sr_Latn_MESerbian (Montenegro)黑山塞尔维亚语sr_LatnSerbian塞尔维亚语拉丁文字suSundanese巽他语svSwedish瑞典语swSwahili斯瓦希里语taTamil泰米尔语teTelugu泰卢固语tgTajik塔吉克语thThai泰语tiTigrinya提格里尼亚语tkTurkmen土库曼语tlTagalog他加禄语trTurkish土耳其语ttTatar鞑靼语ugUyghur维吾尔语ukUkrainian乌克兰语urUrdu乌尔都语uz_CyrlUzbek (Cyrillic)乌兹别克语西里尔文字uz_LatnUzbek (Latin)乌兹别克语拉丁文字viVietnamese越南语xhXhosa科萨语yiYiddish意第绪语yoYoruba约鲁巴语zh_CNChinese (China)简体中文zh_HKChinese (Hong Kong Sar China)繁体中文中国香港zh_TWChinese (Taiwan)繁体中文中国台湾zuZulu祖鲁语三、细说变体区域、文字与方言的编码规律通读上表可以发现128 个目录并非简单的一语言一目录其中有约 20 个目录属于「同一语言、不同区域/文字」的细分变体。理解这些变体的命名规律是正确选择 locale 的关键区域变体语言_地区de_CH瑞士德语与de标准德语分开维护en_CA加拿大英语与en分开pt_BR巴西葡语与pt葡萄牙葡语分开zh_CN、zh_HK、zh_TW分别对应中国大陆简体、香港繁体与台湾繁体。这类拆分的原因很实际地区间的用词、拼写与习惯差异巨大合并翻译会导致界面语言水土不服。文字变体语言_文字塞尔维亚语同时支持sr_Cyrl西里尔文字与sr_Latn拉丁文字两套目录乌兹别克语同样拆为uz_Cyrl与uz_Latn曼尼普尔语mni_Mtei明确限定为 MeiteiMtei文字。文字后缀保证了同一语言在不同书写系统下都能有准确的翻译。方言/区域叠加变体sr_Latn_ME黑山拉丁文字在语言、文字之上再叠加了地区维度属于最细粒度的命名。同一语言的双目录挪威语nbBokmål 书面语与nnNynorsk 新挪威语虽然都以no为语言根但属于两种不同的书面标准故拆成两个独立目录。应用侧用法很简单在 Laravel 项目中把config/app.php的locale设置为上表中的任意目录名例如zh_CN框架即会从lang/zh_CN/目录加载对应翻译。四、目录内部结构五种语言文件的职责分工以locales/zh_CN/为例每个语言目录内通常包含 5 个文件共同承载不同类型组件的翻译内容文件职责json.json面向 JSON 语言文件如 Nova、Jetstream、Fortify 等组件的键值字符串的完整翻译表zh_CN下共 876 行json-inline.json仅含内联验证规则字符串含:attribute、:length等占位符专用于密码/字段规则类提示见 locales/zh_CN/json-inline.jsonphp.json对应 Laravel 传统 PHP 语言文件内容的 JSON 化翻译php-inline.json内联验证规则在 PHP 语言文件体系中的对应翻译_excludes.json排除清单列出不应被翻译、应保留原样的字符串三个要点值得展开排除清单的作用。_excludes.json中收录的是需要保持原文的专有名词与品牌词。以 locales/zh_CN/_excludes.json 为例其中包含API Token、API Tokens、CSV (.csv)、Email、email、Excel (.xlsx)、ID、Nova。这类词一旦被强行翻译成接口令牌电子邮件反而会破坏界面一致性与可识别性因此翻译流水线会跳过它们。占位符必须保留。翻译不是逐字替换json-inline.json中如The :attribute must be at least :length characters and contain at least one number.译为「此项长度至少为 :length 个字符并且至少包含一个数字」:attribute、:length等占位符原样保留运行时由框架注入真实字段名与数值。JSON 键的完整性。json.json的键必须是源语言字符串的精确副本例如(and :count more errors)值才是本地化文本键一旦改动Laravel 的__()辅助函数将无法命中翻译。五、翻译从哪来source 目录与插件映射的底层机制locales/中的 128 套翻译并非手工零散堆砌而是由仓库source/目录下的源字符串与src/Plugins/中的插件映射驱动生成的。source/按组件组织每个组件目录存放该组件在特定版本下的原始英文字符串包括breeze、cashier、fortify、framework含master/、11.x/、12.x/、13.x/与extended.json、jetstream、nova、passkeys、spark、ui。翻译流水线以这些英文源为基准按规则文档锁定的语言逐一产出 128 套本地化文件。组件与版本之间的对应关系集中在 src/Plugin.php 的$plugins数组中它注册了面向各组件/版本的插件BreezeMaster、V2Cashier StripeMaster、V15FortifyMaster、V1JetstreamMaster、V5LaravelMaster、V11、V12、V13NovaV4、V5、LogViewer、DuskSuitePasskeysMainSparkPaddle、StripeUIMaster、V4。每个插件内部定义「源文件 → 目标{locale}文件」的映射。以 src/Plugins/Laravel/Master.php 的files()方法为例framework/master/framework.json与framework/extended.json→{locale}.jsonframework/master/auth.php、pagination.php、passwords.php、validation.php→{locale}/auth.php等。{locale}正是上表 128 个目录名Plugin.php汇总全部映射后由LaravelLang\Publisher插件系统在发布阶段把源字符串与本地化翻译装配到目标项目。整个包通过 src/ServiceProvider.php 在 Laravel 启动时注册class_exists(Provider::class)时才挂载Plugin并以laravel-lang/publisher为运行时依赖见 composer.json 的require段PHP 版本要求^8.2。六、在 Laravel 项目中落地使用将这套语言包接入自己的 Laravel 项目典型流程如下安装composer require --dev laravel-lang/lang也可视需要放入require。安装后包内包含locales/全套 128 语言文件与发布逻辑。添加语言使用发布器命令php artisan lang:add zh_CN或lang:publish发布全部语言、lang:update更新既有翻译将对应目录发布到应用的lang/目录。仓库自身的同步脚本在 composer.json 的format脚本中以vendor/bin/lang sync体现可据此推断发布器提供了同名 CLI 命令lang支持sync等子命令。切换语言在config/app.php中设置locale zh_CN取值必须与locales/目录名完全一致或在运行时通过app()-setLocale(de_CH)动态切换。校验进度仓库根目录 docs/status.md 汇总了全部语言的整体完成度当前仓库快照显示翻译完成97.82%147.1K / 150.4K 条字符串每个语言还有独立的docs/statuses/code.md页面如 docs/statuses/zh_CN.md可查看单语言明细。七、总结Laravel Lang 的多语言能力建立在严格的目录编目之上128 个locales/目录、每个目录锁定唯一的目标语言区域与文字变体de_CH、pt_BR、sr_Cyrl、uz_Latn、zh_HK等通过下划线后缀精确区分目录内部以json.json、json-inline.json、php.json、php-inline.json与_excludes.json分工承载不同组件的翻译并由source/源字符串与src/Plugins/版本映射驱动生成。无论是人工翻译、AI 辅助翻译还是自动化流水线这张「目录 ↔ 语言」对照表都是保证翻译不串语言、不错配的基准对应用开发者而言它则是配置locale、发布语言包与评估翻译完成度的第一手速查依据。赞分享后端【免费下载链接】langList 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 语言包仓库实战指南为 Laravel 全家桶提供 128 种本地化翻译Laravel Lang 语言包仓库实战指南为 Laravel 全家桶提供 128 种本地化翻译 Laravel Lang laravel lang/lan后端Laravel Lang 本地化完成度全景解读128 种语言的翻译状态、缺失清单与贡献路径Laravel Lang 本地化完成度全景解读128 种语言的翻译状态、缺失清单与贡献路径 本篇指南以 Laravel Lang 仓库的 docs/statu后端FluentRead 翻译语言目录 52 项校对实践多供应商语言代码映射与验证边界FluentRead 翻译语言目录 52 项校对实践多供应商语言代码映射与验证边界 本文基于 FluentRead 的翻译语言校对记录 docs/repor前端AI 应用本地部署上一篇如何在5分钟内创建专业EPUB电子书在线编辑器的终极指南下一篇3分钟免费创建专业EPUB在线编辑器的完整实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表