Flutter ARB 文件缺失键检查器

拖入你的 .arb 文件:工具会把每种语言与模板比较,列出缺失的键、多余的键、空值以及不再匹配的占位符。免费,无需注册,文件始终不会离开你的浏览器。

比较你的 ARB 文件

或粘贴两个文件的内容

在你的浏览器中比较:不会上传任何文件。

无需逐个手动编辑文件即可修复

LocalePilot 是一款桌面应用,可打开整个本地化文件夹:检测缺失的键、检查占位符,可选用本地 AI 翻译,并在导出时自动备份。macOS 版即将完成:留下邮箱,即可收到上线通知。

检查器查找哪些问题

  • 缺失的键:存在于模板中,但某种语言里没有。应用照样能编译,用户看到的却是模板语言的文本。
  • 多余的键:存在于译文中,但模板里已经没有了,通常是已删除功能的残留。
  • 空值:键存在,但译文为空,单纯检查键是发现不了的。
  • 占位符不一致:{name} 被改成了 {nom},或者被丢掉。ICU 复数和 select 中的占位符也会被读取。

以 @ 开头的键(元数据和 @@locale)会被忽略。参照文件是 l10n.yaml 中 template-arb-file 指定的文件,通常是 app_en.arb:工具会自动推断,你也可以选择其他文件。

在 Flutter 应用中查找缺失的键

  1. 收集 arb-dir 文件夹(默认为 lib/l10n)中的文件。
  2. 一次性全部拖入,包括模板。
  3. 打开每种语言查看其问题,然后以 ARB 格式复制缺失的键:它们沿用模板文本,可以直接翻译。

如果想在每次构建时自动检查,查找 ARB 文件缺失键的指南介绍了 flutter gen-l10n 的 untranslated-messages-file 选项和一个小型 CI 脚本。ICU 占位符的常见错误见复数与占位符指南。

检查器的局限

本工具比较键和占位符名称:它不验证完整的 ICU 语法(那是 flutter gen-l10n 的工作),不评判翻译质量,也从不修改你的文件。如需导入整个项目、翻译并带备份导出,你需要 LocalePilot 这样的本地化编辑器。

常见问题

我的 ARB 文件会被上传到服务器吗?

不会。比较在你的浏览器中完成:不会发送任何文件或键。你可以在开发者工具的“网络”标签页中确认这一点。

查找缺失键时以哪个文件为参照?

模板文件,即 l10n.yaml 中 template-arb-file 指向的文件(通常是 app_en.arb)。工具会根据 @@locale 或文件名选出它,你也可以选择其他文件。

工具会修改我的文件吗?

不会,它是只读的。它只提供以 ARB 格式复制缺失键的功能(带模板文本),方便你翻译。

Flutter 如何报告缺失的翻译?

在 l10n.yaml 中设置 untranslated-messages-file 选项后,flutter gen-l10n 会把每种语言缺少的模板键写入一个 JSON 文件。专门的指南介绍了这个选项以及用于 CI 的比较脚本。

支持 ICU 复数和 select 吗?

对占位符来说支持:plural 或 select 分支中的占位符也会与模板比较。工具本身不验证 ICU 语法。

它和 LocalePilot 有什么区别?

本工具检查你粘贴或拖入的文件,不会保存它们。LocalePilot 是一款即将推出的 macOS 桌面应用,可打开整个项目,审阅,用本地或云端 AI 翻译,并在导出时自动备份。

上线时通知我

LocalePilot 正在做最后的完善。留下你的邮箱,上线时我们会通知你。

  • macOS 12 或更高版本 · Ollama 或 LM Studio 可选
  • 应用界面语言:英语、法语、西班牙语、意大利语和葡萄牙语。