检查器查找哪些问题
- 缺失的键:存在于模板中,但某种语言里没有。应用照样能编译,用户看到的却是模板语言的文本。
- 多余的键:存在于译文中,但模板里已经没有了,通常是已删除功能的残留。
- 空值:键存在,但译文为空,单纯检查键是发现不了的。
- 占位符不一致:
{name} 被改成了 {nom},或者被丢掉。ICU 复数和 select 中的占位符也会被读取。
以 @ 开头的键(元数据和 @@locale)会被忽略。参照文件是 l10n.yaml 中 template-arb-file 指定的文件,通常是 app_en.arb:工具会自动推断,你也可以选择其他文件。
在 Flutter 应用中查找缺失的键
- 收集
arb-dir 文件夹(默认为 lib/l10n)中的文件。
- 一次性全部拖入,包括模板。
- 打开每种语言查看其问题,然后以 ARB 格式复制缺失的键:它们沿用模板文本,可以直接翻译。
如果想在每次构建时自动检查,查找 ARB 文件缺失键的指南介绍了 flutter gen-l10n 的 untranslated-messages-file 选项和一个小型 CI 脚本。ICU 占位符的常见错误见复数与占位符指南。
检查器的局限
本工具比较键和占位符名称:它不验证完整的 ICU 语法(那是 flutter gen-l10n 的工作),不评判翻译质量,也从不修改你的文件。如需导入整个项目、翻译并带备份导出,你需要 LocalePilot 这样的本地化编辑器。