3分钟用jsontt完成JSON多语言翻译:免费开源文件翻译工具实战指南
3分钟用jsontt完成JSON多语言翻译:免费开源文件翻译工具实战指南
【免费下载链接】json-translatorjsontt 💡 - AI JSON Translator with GPT / Gemma / Mixtral / llama + other FREE translation modules to translate your json/yaml files into other languages ✅ Check Readme ✌ Supports GPT / Gemma / Mixtral / llama / DeepL / Google / Bing / Libre / Argos项目地址: https://gitcode.com/gh_mirrors/js/json-translator
做国际化的开发者大多经历过这样的时刻:产品准备上线日韩、法德等多个市场,而几十个 JSON 语言包还躺在项目里等着逐条翻译。把文本复制到网页翻译工具,再贴回文件,担心格式被破坏、占位符被改写,一整天就这么耗掉了。jsontt是一款免费开源的多语言文件翻译工具,专门解决 JSON 与 YAML 语言包的批量翻译难题,自动保留结构、变量与链接,让"翻译语言文件"从苦力活变成一条命令的事。
从一次多语言上线事故说起
去年团队做一款面向东南亚的 SaaS 产品,我负责把英文语言包翻译成越南语、泰语和印尼语。文件不大,只有 200 多行,但其中嵌着大量{{user}}、{email}这样的变量占位符,还有十几个接口文档链接。手动翻译时,占位符被翻译工具"拆散"了三次,链接被破坏了一次,最终上线前紧急回滚。那次事故让我下定决心:语言文件翻译,必须交给能理解结构、懂得保护特殊内容的工具。
30 秒认识 jsontt:它到底能做什么
jsontt 的核心职责可以概括为一句话:读取你的 JSON 或 YAML 语言包,自动遍历每一层结构,只翻译需要翻译的文本值,其余内容原样保留。
- 支持 JSON、YAML、YML 三种文件格式,也支持直接在代码里翻译 JSON 对象;
- 语言覆盖 100 种以上,还能自动识别源语言;
- 翻译引擎分两类:Google、Bing、Libre、Argos 等免费引擎开箱即用;GPT-4o、GPT-5 系列、Gemma、Mixtral、Llama 等 AI 模型需要配置 API Key 或本地服务;
- 单个文件翻译、一条命令多语言输出、并发控制、缓存、失败降级等能力一应俱全。
整套文件解析与翻译编排逻辑在src/core/目录下,语言支持清单见docs/LANGUAGES.md,感兴趣的话可以直接读源码了解实现。
实战:翻译你的第一个语言文件
第一步:一行命令完成安装
jsontt 以 npm 包形式分发,全局安装后即可在任意目录使用 CLI:
npm install -g @parvineyvazov/json-translator安装完成后,在终端输入jsontt --help就能看到全部参数说明。首次使用也可以直接输入jsontt,工具会以交互式问答引导你选择引擎、源语言与目标语言,对新手非常友好。
第二步:准备一份待翻译的语言包
新建一个模拟项目 i18n 目录,放入messages.json:
{ "app": { "name": "CloudSync", "greeting": "Hi {{user}}, welcome back!", "notice": "Full guide at https://docs.example.com/start" }, "errors": { "timeout": "Request timed out, please retry.", "permission": "Access denied for {email}" }, "buttons": { "confirm": "Confirm order", "cancel": "Cancel" } }这份文件里有嵌套对象、双花括号占位符{{user}}、单花括号占位符{email}和一个网址链接,正是考察翻译工具"会不会搞破坏"的典型样例。
第三步:执行翻译
执行下面的命令,把它从英文翻译成简体中文:
jsontt ./i18n/messages.json --module google --from en --to zh-CN命令执行后,终端会显示实时的翻译进度统计。翻译完成后,结果文件会生成在与源文件相同的目录下,你可以用--name参数自定义输出文件名。
第四步:核对输出结果
打开生成的中文文件,你会看到这样的结果:
{ "app": { "name": "CloudSync", "greeting": "你好{{user}},欢迎回来!", "notice": "完整指南请访问 https://docs.example.com/start" }, "errors": { "timeout": "请求超时,请重试。", "permission": "拒绝 {email} 访问" }, "buttons": { "confirm": "确认订单", "cancel": "取消" } }注意到没有:{{user}}、{email}和网址链接都完整保留,只有真正的人类语言文本被翻译。这正是 jsontt 与传统翻译工具最大的区别。
翻译质量从何而来
变量占位符与 URL:原样保留的机制
jsontt 在发起翻译请求前,会先对文本做一次"脱敏"处理:把{{name}}、{name}这类占位符和 URL 链接替换成临时标记,翻译完成后再把标记还原回去。这样即使翻译引擎重排了句子结构,占位符和链接也绝不会被误译或破坏。你无需做任何额外配置,这一层保护是自动生效的。
免费引擎与 AI 模型:按场景灵活切换
引擎选择直接影响翻译质量与成本,我的建议是:
- 常规界面文案:Google 或 Bing 免费引擎足够,速度快、零成本;
- 偏技术、术语密集的文档:GPT-4o 等 AI 模型对上下文理解更强,术语翻译更准确;
- 对数据隐私敏感、有本地部署条件:可以用 llama-cpp 接本地模型,数据不出服务器。
切换引擎只需改一个参数,例如使用 Bing 引擎-m bing,使用 GPT-4o 则配置OPENAI_API_KEY环境变量后指定-m gpt-4o。所有引擎的可用语言清单都在docs/LANGUAGES.md中,翻译前可以先确认目标语言是否被支持。
术语一致性可以这样做
AI 引擎每次翻译是独立的,同一术语在不同句子中可能被译成不同说法。实操中,建议先让免费引擎跑一遍整体翻译,再针对核心术语用 AI 引擎单独校准,或者对少量高频术语做人工复核,双管齐下质量最有保障。
把 jsontt 用成工作流:几个高价值参数
一条命令同时输出多个语言版本
jsontt ./i18n/messages.json -m google -f en -t zh-CN ja fr -n common这一条命令会一次性生成简体中文、日语、法语三份语言文件,并统一以common作为文件前缀命名,前端 i18n 目录瞬间填充完毕。
开启缓存,重复翻译不再花钱花时间
jsontt ./i18n/messages.json -m google -f en -t ja -c yes开启缓存后,工具会把本次翻译结果写入本地缓存文件,下次再翻译相同内容时会直接命中缓存,跳过网络请求,既省时又能减少对翻译服务的调用频率。
并发与降级:在速度与稳定性之间取平衡
默认并发数为 3。文件很大时可以提高并发加速:
jsontt ./i18n/large.json -m google -f en -t zh-CN -cl 6需要注意,并发越高越容易被在线翻译服务限流。如果某个引擎请求失败,可以加上-fb yes开启降级,自动切换到其他可用引擎重试,避免整个任务中断。
批量翻译整个目录的最快方法
CLI 本身按单文件处理,配合 Shell 循环即可实现目录级批量翻译:
for file in ./locales/en/*.json; do jsontt "$file" -m google -f en -t ja ko done跑完后每个源文件旁都会生成对应的日文、韩文版本,目录批量翻译的问题就此解决。
与其他方式相比,jsontt 赢在哪
| 对比维度 | 手动复制粘贴 | 在线网页翻译 | jsontt |
|---|---|---|---|
| 处理深层嵌套对象 | 极易错漏 | 需逐层复制 | 自动递归遍历 |
| 变量占位符保护 | 需手工还原 | 常被改写 | 自动锁定 |
| URL 链接保护 | 需手工核对 | 可能损坏 | 自动保留 |
| 一次生成多语言 | 不支持 | 不支持 | 一条命令 |
| 免费引擎选择 | — | 单一 | 多种可选 |
| 失败降级与缓存 | 无 | 无 | 内置 |
对语言文件翻译这类高频、结构化、格式敏感的任务来说,jsontt 不是"方便一点",而是彻底换了一种工作方式。
常见问题与排查清单
- 翻译结果出现
--:说明该条目翻译失败且未开启降级,加上-fb yes重试即可; - 提示语言代码不可用:不同引擎支持的语言集合不同,先到
docs/LANGUAGES.md核对对应引擎的语言码; - 翻译速度慢:先确认是否未启用缓存,再考虑适当提高并发数
-cl; - 被翻译服务限流:降低并发数,或切换到其他免费引擎分散请求;
- 结果文件位置:默认生成在源文件同目录,想自定义用
--name。
下一步,动手跑起来
如果你也被多语言语言包折磨过,现在就可以开始体验。克隆项目到本地查看源码,或直接全局安装后翻译你的第一个语言文件:
git clone https://gitcode.com/gh_mirrors/js/json-translator npm install -g @parvineyvazov/json-translator jsontt ./你的语言包.json -m google -f en -t zh-CN从五分钟的安装到一条命令生成全语言版本,jsontt 能把多语言文件翻译从"最头疼的杂活"变成最省心的环节。剩下的,就是打开终端试一次,然后看着成堆的语言文件在几秒内自动生成。🚀
【免费下载链接】json-translatorjsontt 💡 - AI JSON Translator with GPT / Gemma / Mixtral / llama + other FREE translation modules to translate your json/yaml files into other languages ✅ Check Readme ✌ Supports GPT / Gemma / Mixtral / llama / DeepL / Google / Bing / Libre / Argos项目地址: https://gitcode.com/gh_mirrors/js/json-translator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
