当前位置: 首页 > news >正文

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

周五下午四点半,产品经理端着咖啡走过来:"下周要给 App 加日语、韩语、法语、德语四个语言版本。"如果你的团队还在靠"复制文件 → 逐条粘贴到网页翻译 → 贴回来 → 手工对齐结构"的方式干活,我建议你先看完这篇。jsontt是一个免费开源的 JSON/YAML 翻译工具,能一次性把一个语言文件翻译成上百种语言,自动保持嵌套结构、变量占位符和 URL 链接不变。这篇文章会带你从零跑通它的完整流程,并分享几个能显著提升效率的实用技巧。

多语言文件翻译的麻烦到底出在哪

先不急着介绍工具,说说大多数团队卡在哪儿。翻译 JSON 文件这件事,看起来只是"把值换成别的语言",实际操作时会踩到四类坑:

  1. 结构被搞乱:文件里常常嵌套好几层对象,还有数组套对象,手动粘贴最容易漏括号、错缩进。
  2. 不该翻的被翻了{{username}}{email}这类占位符一旦被翻译引擎改掉,整个页面直接渲染异常。
  3. URL 被破坏:文案里夹带的链接,翻译后可能变得残缺。
  4. 重复劳动:改了一个文案,五个语言文件都要跟着重新翻译一遍。

jsontt 恰好把这四个问题都处理掉了,而且它允许你用完全免费的方式完成这件事。

jsontt 是什么:免费开源的 JSON/YAML 翻译命令行工具

jsontt 是一个 Node.js 编写的开源命令行工具,核心能力就一句话:读取 JSON 或 YAML 文件,翻译其中的文案,再按原结构写回磁盘。它同时提供 CLI 和 npm 包两种使用方式,翻译引擎覆盖了 Google、Bing、Libre、Argos 等免费服务,也支持 GPT-4o、GPT-5、Gemma、Mixtral、Llama 等 AI 模型。

一个很省心的设计是:翻译结果默认生成在源文件同目录下,文件名按语言代码命名,你不需要额外指定输出路径。整个项目采用 MIT 协议开源,代码结构也值得翻一翻——CLI 入口在src/cli/cli.ts,翻译逻辑集中在src/modules/functions.ts,JSON 深层遍历在src/core/json_object.ts,文件读写则在src/core/json_file.ts

安装 jsontt:一条 npm 命令搞定

前置要求是 Node.js 16 及以上版本,安装只需一行命令(想用 CLI 就装全局):

npm install -g @parvineyvazov/json-translator

只想在某个项目里调用它的 API,用本地安装即可:

npm install @parvineyvazov/json-translator

装完在终端敲一下jsontt --help,能看到所有可用的参数,确认环境就绪。

第一次使用:一条命令翻译整个 JSON 文件

假设你手上有一个英文的en.json,结构长这样:

{ "login": { "title": "Login {{name}}", "email": "Please, enter your email" }, "homepage": { "welcoming": "Welcome!" } }

想翻译成简体中文、日语和法语,只需要一条命令:

jsontt en.json --module google --from en --to zh-CN ja fr

命令执行过程中,终端会实时显示翻译进度(已翻译条数 / 总条数)。跑完之后,en.json同目录下会多出三个文件:

├── en.json ├── zh-CN.json ├── ja.json └── fr.json

如果你希望自定义输出文件名,加上--name参数即可,比如--name myFiles会生成myFiles.zh-CN.json。注意默认参数可以省略:直接运行jsontt en.json会进入交互式问答,逐个询问你要用哪个引擎、源语言和目标语言。

变量和链接不会被误翻的翻译引擎

这是 jsontt 最让我放心的地方,它内置了一套"忽略机制",实现位于src/core/ignorer.ts。翻译前,工具会把两类内容先保护起来:

  • 占位符{{name}}{name}两种写法都会被原样保留。
  • URL:文本中的链接会被临时隐藏,翻译完成后再放回原位。

看一个实际效果,下面这段文案翻译成西班牙语:

{ "one": "Welcome {{name}}", "two": "Visit https://example.com for more info" }

输出为:

{ "one": "Bienvenido {{name}}", "two": "Visite https://example.com para obtener más información" }

{{name}}和链接都完好无损,这种细节在 i18n 项目里能帮你省掉大量排查 bug 的时间。

从免费引擎到 AI 模型:翻译引擎怎么选

jsontt 内置了 16 种翻译模块,分为免费和需要密钥两类。我整理了一张对照表:

类型模块说明
完全免费google / google2Google 翻译,覆盖 104 种语言
完全免费bingMicrosoft Bing 翻译,覆盖 110 种语言
完全免费libreLibre Translate,29 种语言
完全免费argosArgos Translate,17 种语言
完全免费llama-cpp本地运行的 llama 模型
需要密钥deepl需设置DEEPL_API_KEY环境变量
需要密钥gpt-4o / gpt-4 / gpt-3.5-turbo / gpt-5 系列需设置OPENAI_API_KEY
需要密钥gemma-7b / gemma2-9b / mixtral-8x7b / llama3 系列需设置GROQ_API_KEY

日常翻译我用--module google就足够;如果追求更好的语气和上下文一致性,可以切到 AI 引擎,比如:

jsontt en.json --module gpt-4o --from en --to zh-CN --name app

完整支持的语言清单在项目的docs/LANGUAGES.md里可以查到,支持 100 多种语言互译,源语言也可以填auto让工具自动识别。

三个值得打开的进阶开关

1. 故障自动切换:--fallback

在线翻译偶尔会抽风,超时或限流都会中断任务。开启 fallback 后,某个引擎失败会自动尝试其他可用模块,适合批量翻译时用:

jsontt en.json --module google --from en --to zh-CN ja --fallback yes

2. 翻译缓存:--cache

重复翻译相同的句子很浪费时间和请求额度。开启缓存后,工具会把已翻译的内容写入本地缓存文件(cache_语言对.json),下次遇到相同文案直接复用:

jsontt en.json --module bing --from en --to zh-CN --cache yes

3. 并发控制:--concurrencylimit

并发数越高翻译越快,但也更容易触发服务端的限流。默认值是 3,网络稳定时可以适当调高:

jsontt en.json --module google --from en --to zh-CN ja ko fr --concurrencylimit 10

另外还有一个容易被忽略的能力:增量翻译。如果目标语言文件已经存在,jsontt 会先读取旧文件,把已翻译过的文案直接复用,只翻译新增或修改的内容。这意味着日常迭代时,你每次跑命令的时间会越来越短。

把翻译能力写进代码:npm 包调用方式

不想敲命令行的话,可以把它作为依赖集成到自己的脚本里。比如翻译一个深层嵌套的 JSON 对象到多种语言:

import * as translator from '@parvineyvazov/json-translator'; const en_lang = { login: { title: 'Login', email: 'Please, enter your email', }, profile: { edit_screen: { edit: 'Edit your informations', }, }, }; const [french, japanese] = await translator.translateObject( en_lang, translator.languages.English, [translator.languages.French, translator.languages.Japanese] );

翻译文件同样简单,translateFile会直接把结果保存到源文件同目录:

await translator.translateFile('C:/files/en.json', translator.languages.English, [ translator.languages.German, ]);

顺带一提,翻译单个单词或句子可以调用translateWord,适合在构建脚本里做小规模处理。

谁适合用 jsontt

  • 前端开发:React / Vue / Angular 项目的 i18n 多语言文件批量生成,这是最典型的场景。
  • 后端与运维:把系统配置、错误提示、API 返回消息做多语言本地化。
  • 移动端团队:App 内文案、推送通知模板的本地化处理。
  • 独立开发者:没有预算买付费翻译服务,用免费引擎就能跑起来。

收尾建议:从一次小范围试用开始

别一上来就处理最大的文件。我建议你先拿一个十几个 key 的小配置文件跑通流程,确认输出结构符合预期,再上生产规模的目录。翻译完成后,记得抽查几条关键文案的人工质量,毕竟机器翻译只能保证"能看懂",不能保证"语气对"。

想动手体验的话,可以克隆仓库到本地研究源码,再全局安装跑一遍:

git clone https://gitcode.com/gh_mirrors/js/json-translator cd json-translator npm install -g @parvineyvazov/json-translator

然后拿着你的第一个en.json试一下:

jsontt en.json --module google --from en --to zh-CN ja ko

三分钟后,你大概率会跟我一样,把复制粘贴翻译这个动作从工作流里彻底删掉。

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

http://www.jsqmd.com/news/1400238/

相关文章:

  • 网盘直链下载助手从零上手:60秒解锁8大网盘的真实下载地址
  • Playnite游戏库管理器实战:把Steam、Epic和模拟器游戏整合到一个界面
  • Dynamic Wallpaper 新手实战:半小时让 Linux 壁纸按时间自动切换
  • Swift Distributed Actors源码解析:核心架构与关键算法
  • 告别几十KB/s的龟速下载:trackerslist公共Tracker完整配置指南,三步让BT速度翻倍
  • 三步完成微信聊天记录导出:免费本地永久保存与年度报告完整指南
  • WeKnora向量数据库配置实战:从pgvector起步到Elasticsearch扩容的一套完整清单
  • 2026杭州地下室防潮装修一体化:防水修缮与装修防水一站式方案解析 - 晒太阳的龟
  • 择机出手杭州黄金首饰,收的顶实时更新黄金回收行情 - 日常前沿快讯
  • TCP/UDP 调试终极指南:用免费的 Sokit 完成收发与数据转发
  • 深圳旅游出行服务行业如何借助GEO抢占AI搜索入口?本地靠谱服务商与代理加盟推荐 - 企业新闻快传
  • Template7高级技巧:掌握js_if与js helper实现动态数据处理
  • GEO 优化需要搭建什么内容?装修建材人如何抢占 AI 流量入口 - 装企自媒体训练营辉哥
  • GodotFirebase本地模拟器配置指南:无需联网开发Firebase功能
  • 没有Mac也能轻松搞定macOS系统下载:gibMacOS免费工具全攻略
  • 河北邯郸斗式提升机漏料怎么办 - 推客
  • 停车王车牌键盘版本更新日志:最新功能与优化全记录
  • Minetest Game保姆级上手指南:6步从安装到建起第一座基地
  • Mac 安装 Office 终极指南:用 Microsoft-Office-For-MacOS 从零到一完成安装激活
  • 上海美妆个护行业GEO服务商代理加盟怎么选?2026年本地靠谱推荐与避坑指南 - 子柔传媒
  • 2026年国内高密橡塑皮鞋底代工 适配多场景采购需求参考 - 滚动商讯
  • 2026年廊坊电力工程电缆阻燃涂料商贸公司挑选攻略 三月春等企业实测梳理 - 小范同学a
  • 2026年广东建筑机电安装二级资质代办公司名单:专业实力与高效服务深度解析 - 卓企推荐
  • 深圳机械设备行业GEO服务商代理加盟怎么选?本地靠谱推荐指南 - 科技快讯
  • 线上专业吧台椅工厂的实际运营数据具体都有哪些? - 阿雨生活聊家具
  • Tullio.jl与TensorOperations集成:梯度计算的最佳实践
  • Playlistor部署教程:3步搭建属于自己的音乐播放列表转换服务
  • 三步搞定微信公众号数据采集:用 Python 高效抓取公众号文章与账号信息
  • 河北廊坊斗式提升机辅助设备清单 - 推客
  • 用 Rust 重写 Python AI 服务前,先量清边界调用成本