有json文件怎么翻译?全面指南与实用技巧
在软件开发、数据交换、国际化(i18n)等场景中,JSON(JavaScript Object Notation)文件因其轻量、易读、结构化的特点被广泛应用,当需要将JSON文件中的内容(如界面文本、配置信息、错误提示等)翻译成其他语言时,如何高效、准确地处理?本文将从JSON文件的特点出发,系统介绍翻译流程、工具选择、注意事项及实用技巧,帮助你轻松搞定JSON文件翻译。
为什么需要翻译JSON文件?
JSON文件常用于存储,
- 前端多语言文本(按钮、弹窗、菜单等);
- 后端API返回的错误码或提示信息;
- 配置文件中的多语言参数(如地区、货币单位); 管理系统(CMS)的文章、评论等结构化数据。
若直接硬编码在代码中,翻译时需频繁修改代码,不仅效率低,还容易引发bug,将多语言文本独立为JSON文件,通过翻译工具处理后动态加载,是国际化项目的标准做法。
翻译JSON文件的完整流程
明确翻译范围:识别需要翻译的内容
并非JSON文件中的所有内容都需要翻译,需重点关注用户可见文本,而忽略以下内容:
- 键(Key):如
{"welcome": "欢迎"}中的"welcome",通常作为代码中的标识符,无需翻译; - 格式符号:如
{"date": "YYYY-MM-DD"}中的"YYYY-MM-DD",属于格式占位符,保留原样; - 动态变量:如
{"message": "用户{0}已登录"}中的{0},是变量占位符,翻译时需保留; - 技术参数:如
{"api_version": "v1.0"}中的版本号、IP地址等。
示例:
{
"app_name": "My App", // 需翻译(用户可见)
"user_id": "12345", // 不需翻译(技术参数)
"login_success": "登录成功", // 需翻译
"error_code_404": "Not Found", // 需翻译(错误提示)
"date_format": "YYYY/MM/DD" // 不需翻译(格式符号)
}
准备JSON文件:结构规范化
为确保翻译工具能正确解析,JSON文件需满足以下要求:
- 格式正确:使用JSON校验工具(如JSONLint)检查语法,避免括号不匹配、引号错误等问题;
- 编码统一:建议使用UTF-8编码,避免中文或其他特殊字符出现乱码;
- 层级清晰:嵌套层级不宜过深(建议不超过3层),否则翻译时易遗漏内容。
不规范示例(需修正):
{
"profile": "个人中心", // 末尾缺少逗号
"settings": "设置" // 最后一个键值对可加逗号(可选)
}
选择翻译工具:手动翻译 vs 自动化工具
根据JSON文件大小、翻译需求(准确性、效率)选择翻译方式:
(1)手动翻译:适合小文件或高精度需求
若JSON文件较小(如几十条内容),或对翻译准确性要求极高(如法律、医疗文本),可直接手动翻译。
操作步骤:
- 用文本编辑器(如VS Code、Sublime Text)打开JSON文件;
- 仅修改“值(Value)”部分,保留键、格式符号等不变;
- 翻译后保存为新文件(如
en.json表示英文版)。
示例(中文→英文手动翻译):
// 原始文件(zh.json)
{
"app_name": "我的应用",
"login_btn": "登录",
"welcome_msg": "欢迎回来!"
}
// 翻译后文件(en.json)
{
"app_name": "My App",
"login_btn": "Login",
"welcome_msg": "Welcome back!"
}
(2)自动化工具:适合大文件或效率优先
若JSON文件较大(如上千条内容),或需快速生成初稿,可借助自动化工具提升效率,以下是常用工具:
① 专业翻译工具(支持JSON格式)
- DeepL:支持直接上传JSON文件,翻译后会保留原始结构(键、格式符号不变),仅翻译文本内容。
操作:登录DeepL官网→上传JSON文件→选择目标语言→下载翻译后的文件。 - Google Translate API:适合开发者集成到项目中,通过API调用自动翻译JSON内容,需注意API调用频率和费用。
2 JSON专用翻译工具
- i18next-scanner:前端国际化工具,可自动扫描代码中的JSON文件,提取未翻译内容并生成翻译模板,支持多语言管理。
- Lokalise:专业的本地化管理平台,支持JSON文件上传、多人协作翻译、版本控制,适合团队项目。
- POEditor:类似Lokalise,提供JSON文件的在线翻译编辑界面,支持实时预览和术语库管理。
3 文本处理工具(适合批量替换)
若仅需简单替换(如已有翻译词汇表),可用Excel或文本处理工具:
- Excel法:将JSON文件转换为表格(用在线工具如“JSON to Excel”),在“翻译列”中填写内容,再转回JSON;
- Python脚本:用
json库加载文件,遍历值进行翻译(可结合翻译API),再保存为新文件。
Python示例(调用Google Translate API翻译JSON值):
import json
from googletrans import Translator
def translate_json_values(json_file, target_lang, output_file):
translator = Translator()
with open(json_file, 'r', encoding='utf-8') as f:
data = json.load(f)
def translate_value(value):
if isinstance(value, str):
return translator.translate(value, dest=target_lang).text
return value
translated_data = {k: translate_value(v) for k, v in data.items()}
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(translated_data, f, ensure_ascii=False, indent=2)
# 使用示例:将zh.json翻译为英文,保存为en.json
translate_json_values('zh.json', 'en', 'en.json')
验证翻译结果:避免格式错误和遗漏
翻译完成后,需验证以下内容:
- 格式正确性:用JSON校验工具检查翻译后的文件是否仍为合法JSON; 完整性**:对比原始文件和翻译文件,确保所有需翻译的内容均已处理,无遗漏;
- 上下文一致性:检查同一词汇在不同语境下是否翻译一致(如“设置”在“系统设置”和“账号设置”中应统一为“Settings”)。
推荐工具:
- 格式校验:JSONLint、VS Code插件“JSON Validator”; 对比:Beyond Compare、Meld(免费文件对比工具);
- 术语一致性:使用术语库(如TBX格式)或工具(如MemoQ)批量检查。
翻译JSON文件的注意事项
保留原始结构,仅翻译“值”
翻译时绝对不能修改JSON的键(Key)、嵌套结构、数据类型(如数字、布尔值),否则可能导致程序解析错误。
错误示例(修改了键和数据类型):
// 错误:修改了键和数据类型
{
"my_app": "My App", // 错误:将"app_name"改为"my_app"
"user_count": "100" // 错误:将数字100改为字符串"100"
}
处理复数形式和变量占位符
不同语言的复数形式规则不同(如英语中“1 item” vs “2 items”),翻译时需保留占位符(如{0}、{name}),确保程序能动态替换内容。
示例:
// 原始文件
{
"items_count": "您有{0}件商品",
"notification": "{user}给您发送了一条消息"
}
// 翻译后文件(英文)
{
"items_count": "You have {0} items",
"notification": "{user} sent you a message"
}
避免直译,注重语境
JSON中的文本可能是界面短句、错误提示或产品描述,需结合上下意译,而非逐字翻译。
- “登录失败”直译为“Login failed”正确,若译为“Login unsuccessful”则不够自然;
- “个人中心”在电商场景中译为“Profile”,在社交场景中可译为“Account”。



还没有评论,来说两句吧...