资讯动态

如何给 GTweak 新增一门语言:多语言本地化体系完整拆解

发布时间:2026/10/23 1:46:09 来源:尧图企业网站定制
如何给 GTweak 新增一门语言多语言本地化体系完整拆解【免费下载链接】GTweakPortable Tool for an Ideal Windows Setup项目地址: https://gitcode.com/GitHub_Trending/gt/GTweakGTweak 是一款免安装运行的开源 Windows 优化工具界面一共维护着 15 个语言目录英文基准加 14 份译文。这篇文章带你模拟从零给它新增一门语言顺便把它的多语言本地化体系讲透文件夹怎么命名、文案放在哪里、翻译文件怎么改、同步脚本怎么跑仓库根目录的 README 也别落下。刚接触开源项目、或想给自己的桌面应用做多语言的人都可以照着走一遍。区域变体怎么写pt-BR 和 pt_br 不是一回事为什么从命名讲起因为这一步最容易被写错而写错了程序根本认不出这门语言。GTweak 遵循 BCP-47 风格的「语言-地区」写法互联网标准组织给语言区域标签定的规范语言代码全小写地区代码全大写中间用连字符连接。所以巴西葡语是pt-BR简体中文是zh-CN.Source/GTweak/Languages/下的目录名就是照此而来。pt-BR 为什么不能直接写成Portuguese程序运行时按系统区域代码精确匹配目录巴西用户的系统语言是pt-BR目录名必须逐字符对得上。中文更典型zh-CN是简体zh-TW是繁体两个目录并列存在文案互不覆盖。还有一个容易混的地方语言在目录文件里的「名字」用另一套规则。在 LanguageCatalog.xaml 里key 一律全小写、连字符换成下划线——pt-BR对应pt_brzh-CN对应zh_cn。语言名则用原生写法括号里附英文缩写v:String x:Keypt_brPortuguês (BR)/v:String v:String x:Keyzh_cn简体中文 (CN)/v:String文件顶部有一段 NOTE 注释把这些规则写得很清楚顺带说明了列表顺序并不决定显示顺序程序会按代码排序。新语言的文案放哪定位三个核心本地化文件名字定了文案就有了固定去处。整个本地化目录的设计很直白.Source/GTweak/Languages/ ├── LanguageCatalog.xaml ← 注册各语言的显示名 ├── en/Localize.xaml ← 英文基准522 个键 ├── pt-BR/Localize.xaml ← 巴西葡语 ├── zh-CN/Localize.xaml ← 简体中文 └── fr/ he/ hu/ … ← 其余 12 个语言目录结构相同三个文件的角色不会混en/Localize.xaml 是文案的唯一事实来源每份译文都和它逐条对应LanguageCatalog.xaml 相当于语言列表的名片新增语言要在这里登记一行否则程序的语言切换器里看不到它每个语言目录下的 Localize.xaml 才是实打实的翻译文件一目录一文件互不混杂。这套设计让新增一种语言的成本极低复制英文目录、改成目标代码、逐个替换文案值、在目录文件补一行完事——程序代码一行都不用动。翻译一个 Localize.xaml 文件只动值不碰键翻译文件是标准的 WPF 资源字典每条形如v:String x:Keybtn_changeChange/v:String这里的x:Key是这条文案的取件码界面代码靠它从字典里取回对应字符串。键名是代码与界面之间的约定翻译时因此有三条硬约束只改标签内的值不碰x:Key。键名一改代码取不到值界面上对应位置会回退成默认文本保留#region分区注释。文件按窗口和页面切了 16 个分区如!--#region Load Window --、!--#region Packages Page --翻译者能按分区对照原文同步脚本也靠这些分区报告差异键数和英文基准对齐。目前 en、pt-BR、zh-CN 三份文件都是 522 个键提交前数一遍是最基本的自检漏掉的键界面上会用英文显示那句文案。翻译文件怎么对齐跑一遍 LocalizeSync.cmd 同步脚本手工翻译只管住当下管不住漂移——主功能一迭代英文基准不断加键某份译文漏一个键对应语言的用户就会在界面里看到零星空洞。GTweak 在 Tools 目录内置了同步脚本双击 LocalizeSync.cmd 即可跑完整流程文件内容其实是一段 PowerShell 脚本。它默认以 en/Localize.xaml 为基准逐份处理语言文件主要干三件事把目录文件的 key 规范成小写下划线形式逐语言列出新增、删除的键和分区标记为[] Keys added与[-] Keys deleted按基准的顺序重排文件结构。脚本还带三个开关用法基本固定-DryRun只报告不写入翻译完先跑一遍它查看差异清单-Backup写入前先备份出.bak副本出错了能回滚-Placeholder缺失的键自动填入空占位先不留空。推荐顺序是先干跑确认差异再正式执行备份随时兜底。输出里没有任何未处理差异说明这门语言已经和基准对齐。仓库根目录的 README 也别落下文档同步本地化本地化不止发生在程序内部。仓库根目录为每种语言单独维护一份 READMEREADME-pt-br.md、README-zh-cn.md 等加上英文主文档共 14 份。主 README.md 顶部给每种语言放了一个旗标图标点进去就是对应文档下方的 Localization Translation 章节写清了贡献路径——提 PR或者开一个 Issue 附上翻译文件不熟悉 Git 的新手也能找到入口。所以一次完整的「加语言」工作有三样产出物一份 Localize.xaml、LanguageCatalog.xaml 里的一行、根目录新增的一份 README。翻译提交前自查五项验收清单提交 PR 前按顺序过一遍这份清单全部通过再动手✅ 语言文件夹名是「语言-地区」形式地区全大写与 Windows 语言包代码一致✅ LanguageCatalog.xaml 的 key 全小写下划线语言名用原生写法并附缩写✅ Localize.xaml 键名与英文基准逐条一致、仅值被翻译#region 分区完整键数与基准的 522 对齐✅ LocalizeSync.cmd 的-DryRun输出里没有未处理差异✅ 根目录对应语言的 README-{lang}.md 已同步更新GTweak 用统一目录结构、严格命名规则、同步脚本兜底和文档本地化这四件事把 15 个语言目录拢得服服帖帖。如果你正打算给 WPF 或别的桌面项目做多语言这套流程可以直接照搬。【免费下载链接】GTweakPortable Tool for an Ideal Windows Setup项目地址: https://gitcode.com/GitHub_Trending/gt/GTweak创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑