news 2026/8/15 17:08:17

3分钟用jsontt完成JSON多语言翻译:免费开源文件翻译工具实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 17:07:03

从零上手 League-Toolkit:把游戏客户端的琐碎操作交给自动化

从零上手 League-Toolkit:把游戏客户端的琐碎操作交给自动化 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 周三晚上十一点半&…

作者头像 李华
网站建设 2026/8/15 17:06:57

JVFloat.js源码深度剖析:JavaScript浮动提示框的实现原理

JVFloat.js源码深度剖析:JavaScript浮动提示框的实现原理 【免费下载链接】JVFloat.js maman/JVFloat.js: 是一个用于创建浮动提示框的 JavaScript 库。适合在网页中添加提示信息、帮助提示等。特点是提供了一种简单、易用的 API,支持多种主题和样式&…

作者头像 李华
网站建设 2026/8/15 16:59:55

PDF补丁丁:免费开源的书签编辑与PDF批量处理完整教程

PDF补丁丁:免费开源的书签编辑与PDF批量处理完整教程 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: https://git…

作者头像 李华
网站建设 2026/8/15 16:59:43

Git凭证存储机制详解:从原理到实践的安全认证管理

1. 项目概述:一个被误解的“需求”“git获取本地连接远程仓库密码”——这个标题乍一看,像是一个技术“黑魔法”,似乎能帮你从本地某个神秘的角落,找回早已遗忘的远程仓库访问凭证。很多刚接触Git、或者在使用中遇到认证问题的开发…

作者头像 李华
网站建设 2026/8/15 16:59:14

Logseq高阶实战:双链、模板与查询构建个人知识管理第二大脑

1. 从信息焦虑到知识内化:为什么我选择Logseq作为第二大脑 几年前,我发现自己陷入了一个典型的数字时代困境:收藏夹里塞满了“稍后阅读”的文章,笔记软件里躺着几百条零散的灵感,电脑桌面上堆满了未整理的文档。每次想…

作者头像 李华