项目介绍
JsonTranslate,一款专为开发者和内容创作者设计的多语言 JSON 翻译工具,支持 Google Translate、Azure 和 DeepL(X) 翻译 API,助力项目国际化和本地化。无论你是在开发多语言网站、应用程序还是处理多语言数据集,JsonTranslate 都能提供简便的解决方案,轻松将 JSON 文件中的内容翻译为多种目标语言。

翻译模式说明
全局翻译
全局翻译会递归遍历整个 JSON 数据结构,对所有字符串类型的值进行翻译,同时保持原始 JSON 的层级与结构不变。
适用场景:
- 需要对整份 JSON 文件中的文本内容进行全面翻译
- 无需复杂配置,一键翻译所有内容
指定节点
通过 JSONPath 表达式,精准定位一个或多个节点,仅翻译这些节点中的字符串内容。支持多个路径,用英文逗号分隔。
适用场景:
- JSON 数据具有清晰的层级结构,仅需翻译特定部分
- 针对大型 JSON 文件,缩小翻译范围提高效率
指定键名
在此模式下,你可以指定特定的键名进行翻译。支持两种输入方式:
- 简单模式:直接在输入框中通过逗号(中英文均可)分隔需要翻译的键名,程序会将这些键的内容进行翻译。
- 高级模式:通过键名映射组件设置输入键与输出键的对应关系,翻译结果将写入新字段中,保留原字段不变。
适用场景:
- 仅需翻译特定字段,例如
title、description等 - 需要将翻译结果输出到不同字段,避免覆盖原数据
注意事项:
- 键名区分大小写。
- 输入键与输出键数量须一致;映射会自动忽略不存在的键。至少需有一个有效映射才会执行翻译。
- 纯数字键可能与数组索引冲突——该问题已修复,但建议尽量避免仅由数字组成的键名以减少歧义。
- 含点(.)的键名会被误解析为嵌套路径,建议使用不含点的键名或改用替代命名。
选择性翻译
此模式适用于扁平结构的 JSON 数据,可指定起始节点和需要翻译的字段名称。系统会从指定节点开始,查找所有对象中的目标字段并进行翻译。
配置项:
- 起始键:(可选) 指定从哪个键开始查找,适用于键顺序有意义的场景
- 待翻译字段:要翻译的具体字段名称,多个字段用逗号分隔
适用场景:
- 只需翻译扁平化结构中指定字段,如日志或错误信息的"message"字段
- JSON 文件结构简单,字段重复出现但需部分处理
i18n 模式
i18n 模式专为多语言场景设计,能在原有 JSON 结构中聚合多语言的字段内容。适合用于构建多语言网站或应用的翻译文件,或管理统一结构下的多语言配置。
工作原理
- 使用选择的源语言作为源字段,比如源语言为
zh,源字段就是zh。当源语言为auto时,源字段则为默认的en。 - 遍历 JSON 中所有包含源语言字段的对象,为每个对象新增目标语言字段(与源语言字段同级)。
- 若目标语言字段已存在,则跳过翻译,避免覆盖已有内容。
- 当同时启用 i18n 模式和多语言模式时,系统将创建一个包含源语言和所有目标语言的统一 JSON 结构,这对国际化项目特别有用。
示例
目标语言设定为 zh、fr,翻译结果:
功能介绍
映射翻译
在使用指定键名模式时,你可以通过结果区的切换按钮,在单一键名模式和映射翻译模式之间切换。单一键名模式下,翻译的输入输出使用相同节点,而映射翻译模式则涉及不同节点的翻译。例如,节点 A 的值将翻译至节点 B,节点 C 的值翻译至节点 D。

如何使用 JSON 键名
JSON 数据是以键值对的形式存储的,其中“键”(也称为“名称”)是一个字符串,用于唯一标识数据记录中的特定项目或元素,是数据检索和操作的基础。JsonTranslate 正是利用了 JSON 键名的标识作用来实现精准化识别翻译。
以下是对示例中的几个键名的解释:
downvote.message:这是一个嵌套的键名。downvote是外层对象的键名,而message是downvote对象内部的一个键名。提示词.message:这里提示词是一个键名,它本身包含一个对象,该对象有一个键message。share.owner:这个键名包含了一个点(.),它是一个单独的键名而不是指示嵌套关系。在这种情况下,如果你想访问share.owner对象中的name,你不能使用share.owner.name,因为这会被错误解释为查找一个名为owner的对象内的name键,而实际上share.owner是一个完整的键名。
目前,JsonTranslate 无法处理包含点(.)的 JSON 键名。这是因为点号在 JSONPath 中用于区分嵌套对象的键名,使得含点的键名可能被误解为多层嵌套对象。为避免这一问题,建议使用不含点的键名。
配置说明
应用提供了丰富的翻译配置选项,详细信息请参考:

