ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

JSON翻译新手指南:用jsontt快速搞定多语言文件的完整上手教程

2026/8/15 17:33:05 拓冰建站 浏览量
JSON翻译新手指南:用jsontt快速搞定多语言文件的完整上手教程

JSON翻译新手指南:用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

jsontt(npm 包名@parvineyvazov/json-translator)是一个开源的 JSON/YAML 翻译命令行工具,专门解决"项目要做国际化、手头一堆语言文件"这类重复劳动。它内置 Google、Bing、Libre、Argos 等免费翻译引擎,也支持接入 GPT、Gemma、Mixtral、Llama 等 AI 模型。下面我们不用传统说明书的方式介绍,而是跟着一位开发者小周的一天,看他怎么把一整个项目翻译成 5 种语言。

09:30 一条命令装好翻译工具,不用申请任何 API 密钥

小周的产品下周要上线日语版和德语版,他原本的打算是:把en.json打开,复制文本,粘到网页翻译,再粘回来。按 200 个键值对算,这大概要忙一整个下午。

他先做了个决定——不用网页翻译,改用命令行工具。

npm install -g @parvineyvazov/json-translator

安装完,命令名就是jsontt。注意,这一步不需要注册账号,不需要申请密钥,因为工具默认走的是 Google 免费翻译接口。node 环境在 16 以上就能跑,大多数开发机都满足。

安装成功的那一刻,小周顺手执行了一次jsontt --help,看到一长串可用参数,心里立刻踏实了。

10:30 三行命令,把 en.json 变成 5 种语言文件

小周的翻译任务其实很典型:一个基础英文语言文件,要同时产出中文、日语、德语、法语、韩语五个版本。

jsontt ./locales/en.json --module google --from en --to zh-CN ja de fr ko

跑完这条命令,locales目录里直接多出zh-CN.jsonja.jsonde.jsonfr.jsonko.json五个文件,键结构原样保留,值全部换成了对应语言。整个过程他只需要盯着终端里的进度条:12 of 200 translated

这就是 jsontt 的核心价值:JSON 翻译工具不应该让你关心"翻译这个动作",而应该让你关心"翻译哪些文件、翻成哪些语言"

小周是新手,他担心记不住这么多参数。工具其实支持交互式问答——直接执行jsontt ./en.json,它会一步一步问你:用哪个引擎、从哪种语言翻译到哪种语言。命令记不全也没关系,跟着提示走就行。

13:00 占位符差点被翻译掉?看看 jsontt 的"锁"

午饭后小周检查翻译结果,发现一个问题:"title": "Welcome {{user}}, your order #123 is ready"翻译成日语后,{{user}}#123竟然完好无损。他有点意外,这正是他之前用网页翻译时最头疼的事——变量、订单号、URL 一旦被翻译器"理解",就会变成一团乱码。

jsontt 的做法很聪明,翻译之前先把这些特殊内容"锁"起来,翻译完成再"解锁"放回去。打开源码src/core/ignorer.ts能看到这套机制:

  • {{name}}{name}形式的占位符,原样保留;
  • https://www.开头的 URL,先锁定再还原,不会被翻译器改坏。

也就是说,像"link": "Visit https://example.com/order/123"这样的字符串,翻译成中文后,https://example.com/order/123依然原封不动。这对做电商、做 SaaS 的国际化项目来说太重要了,URL 和占位符一旦被改,前端渲染就会直接报错。

15:00 从免费引擎到 AI 模型,一套命令两套阵容

下午小周想让德语翻译的质量更高一点。他了解到 jsontt 背后不是单一引擎,而是一套模块化的翻译引擎集合:

完全免费的引擎:Google、Google 2、Bing(110 种语言)、Libre、Argos、llama.cpp。

需要 API 密钥的引擎:DeepL(环境变量DEEPL_API_KEY)、GPT 系列(OPENAI_API_KEY)、Gemma / Mixtral / Llama3(GROQ_API_KEY)。

切换引擎只需要一个参数:

jsontt ./en.json --module bing --from en --to de jsontt ./en.json --module gpt-4o --from en --to de

小周的判断标准很简单:日常迭代用免费引擎就够了,发布前的关键文案,换成 GPT 或 DeepL 精翻一轮。给环境变量配好密钥,命令本身一行都不用改。

不同引擎支持的语言范围有差异,官方文档docs/LANGUAGES.md里列出了每个引擎的完整语言清单。如果想确认某对语言是否可用,命令行里也能直接查到。

18:00 让批量任务提速的 3 个参数:并发、缓存、回退

临近下班,小周要翻译一个大文件,三千多个键值对。他发现了三个能显著提升效率的参数,这就是今天最有价值的部分:

并发限制--concurrencylimit:默认并发数是 3,网络状况好的话可以调高到 8 或 10,翻译速度几乎线性提升。但别贪心,并发太高容易被翻译服务临时限流,这也是作者把它叫做"higher faster, but easy to get banned"的原因。

缓存--cache:翻译结果会存在本地缓存文件里。下次翻译时,相同内容的键直接命中缓存,不再重复请求。小周翻译完日语版后,再翻一次韩语版,那些中英文共用的内容就直接从缓存里取,省了一半时间。

jsontt ./en.json --module google --from en --to ja ko --cache --concurrencylimit 8

回退逻辑--fallback yes:如果主引擎某次请求失败了,自动换用其他引擎补上,避免整个任务因为一两个请求失败而中断。这对长文件的稳定翻译很有用。

20:00 把这些能力写进你自己的项目代码里

晚上回到家,小周灵机一动:与其每次手动跑命令,不如把翻译能力集成到构建脚本里。jsontt 除了命令行,还提供了 Node.js 的包级 API,能在代码里直接调用:

const translator = require('@parvineyvazov/json-translator'); // 翻译单个句子 const text = await translator.translateWord( 'Home sweet home!', translator.languages.English, translator.languages.Chinese_Simplified ); // 翻译整个深层嵌套对象 const zh = await translator.translateObject( enObject, translator.languages.English, translator.languages.Chinese_Simplified );

translateObject支持深层嵌套和数组结构,也就是一个对象里套了三四层、中间还有列表的情况,也能一次处理完。translateFile则可以直接传文件路径,翻译结果自动保存成新语言文件。相关实现分别在src/core/json_object.tssrc/core/json_file.ts,想自己扩展功能的开发者可以直接读这两个文件。

小周最后把翻译脚本挂到了发布流程里:英文文案更新后,跑一次脚本,五个语言的版本同步生成。第二天早上,他的国际化版本准时上线,整个翻译过程加起来只花了半小时。

现在轮到你了。安装npm install -g @parvineyvazov/json-translator,把jsontt --help跑起来,然后对你手头的第一个语言文件执行:

jsontt ./your-lang-file.json --module google --from en --to zh-CN

看到终端的进度条滚动起来,你的第一个多语言版本就在路上了。翻译这件事,本就不该消耗你一下午。

【免费下载链接】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),仅供参考