鸿蒙综合讨论/.ts 到 .qm 的汉化流水线

.ts 到 .qm 的汉化流水线

汉化不是把界面文字翻一遍那么简单,Qt 系应用的标准机制是翻译文件体系:源码里的可翻译字符串抽出来,翻译后编译成二进制翻译文件运行时加载。这篇讲从源文件到运行时加载的完整流水线。

▍流水线四步
第一步,提取:用 Qt 的翻译工具扫描源码,抽出全部可翻译字符串(上下文加原文)生成源翻译文件。第二步,翻译:在源文件里补译文——工程上按模块拆分文件,翻译条目数千到数万级。第三步,编译:把文本源文件编译成二进制格式(这个后缀文件运行时加载,体积小解析快)。第四步,部署:编译产物随包分发,应用启动时按语言加载。

▍交叉编译的坑
流水线工具要分两端:提取与编译工具在构建机跑(宿主版),产物在目标机加载。交叉环境下容易犯的错:工具链把宿主工具也用目标编译器编了,构建机上跑不起来。宿主工具独立构建或用官方预编译版。另有一个真实坑:资源编译器生成的代码会引用特定特性符号,框架栈换代后特性集变了,链接报版本化符号缺失——这类问题在共享栈升级篇有专述。

▍翻译质量三原则
一,术语一致性:同一个词(图层、通道、画布)全应用统一,建术语表先行。二,长度适配:中文比英文短是常态,但个别译文更长,界面布局别写死宽度。三,上下文完整:同一个原文在不同菜单语境含义不同,翻译文件按上下文区分,别全局替换式翻译。

▍动态与插件字符串
插件的字符串要单独扫与合并;运行时生成的文本(数字单位、日期)用格式化函数而非硬拼;图标上的文字提示(工具提示)别漏——它们也在翻译体系里但容易被忽略。

▍验收
切语言全应用走查:菜单、对话框、工具提示、右键菜单、状态栏、错误弹窗。重点检查截断(长译文被裁)与占位符错误(数字插错位置)。中文环境下不该出现任何原文残留——这是移植标准的硬项。

▍建议
翻译源文件进版本库,每次上游同步后重新提取做差分,新增字符串的翻译缺口一目了然。

免费无广告的安装包可以在官网下载体验。
楼主 7 天前
想参与讨论?登录 或 30 秒注册。