i18n翻译管理太头疼?LocaleFlow Pro帮你一键提取、检测、翻译所有语言文件
2026-06-13 | WDSEGA
你项目的i18n文件,多久没完整检查过了?
我上个月接了个外包项目,Vue + i18n,中英法三语。接手的时候,客户说”翻译都准备好了,你接进去就行”。
结果接进去以后,页面上到处是[missing translation: home.hero]。
打开fr.json一看——370个key,118个值是空的,或者值是英语(翻译偷懒直接copy了英语原文)。
手动对?370个key,3个文件,1110个值。我算了下,按每个值10秒算,要3小时。而且容易漏。
用Python写了个工具,40秒跑完
核心逻辑不复杂:
- 提取:扫代码里的
$t('key')或t('key'),拿出所有用到的key - 检测:比对每个语言文件的key,找出缺失、多余、过期
- 验证:检查占位符一致性(
{name}在英语翻译里有,{nombre}在西班牙语里也有) - 翻译:接LibreTranslate API,自动填充空值
- 报告:生成HTML报告,直观看到哪些key有问题
写出来以后,发现不止我一个人需要。组里另一个项目(React + TypeScript + i18next)也能用——只要改一下提取器,支持.tsx文件里的useTranslation()调用。
支持了哪些格式
| 格式 | 支持 |
|---|---|
| JSON (i18next) | ✅ |
| YAML (Rails) | ✅ |
| PO/MO (GNU gettext) | ✅ |
| Python (.py 字符串) | ✅ |
| JavaScript/TypeScript | ✅ |
| React (.tsx) | ✅ |
如果是没见过的格式,工具会提示”不支持”,不会静默失败。
一个真实bug:占位符不一致
我自己的项目里发现一个bug:
// en.json
"welcome": "Hello, {name}!"
// fr.json
"welcome": "Bonjour {nom}!"
英文用{name},法文用{nom}。运行时不会报错,但如果你在代码里传name参数,法文显示就会漏掉名字。
这个bug手工检查很难发现,因为——谁会去逐个比对每个key的占位符格式?
工具跑一遍,直接在报告里标红:[WARNING] welcome: placeholder mismatch: en={name}, fr={nom}。
开源还是商用?
这个工具我整理了一下,打包成了一个Python包,叫LocaleFlow Pro。
包含:
- 完整的Python代码(7个核心模块)
- 5个使用示例(JSON/YAML/PO/Python/TSX)
- 一个”附赠案例”:用工具完整处理一个Vue i18n项目的全过程记录
- 法律免责声明
定价:$19.84(一次性买断,无订阅)。
如果你项目里也有i18n文件,不妨试一下。比手动对key快100倍,还能顺带发现一些你没注意到的bug。
| 链接:Payhip购买 | Gumroad购买 |
(本文提及的LocaleFlow Pro为作者开发的数字产品,购买后获取完整源代码和使用文档。)