如何仅翻译JSON文件中的值,避免游戏汉化补丁失效?
只翻译JSON值的解决方案
一、用专门本地化工具(适合无编程基础)
- Localazy/POEditor:这类工具支持直接导入JSON文件,导入时可设置「键为不可翻译项」,系统会自动识别所有值字段。你可以批量选中需要翻译的目标字段(比如你红标的那些),借助内置机器翻译完成后,导出保持原结构的JSON文件,完全不会改动键名,适配游戏补丁需求。
- VS Code插件i18n Ally:在VS Code中打开JSON文件后,该插件会自动识别键值对。你可右键点击目标值选择翻译,也能批量选中多个值进行批量翻译,完成后直接保存,文件结构和键名完全不变。
二、用Python脚本批量处理(适合有基础的用户)
如果需要更灵活的控制(比如只针对特定字段翻译),可以写个简单脚本:
import json from googletrans import Translator # 需先安装:pip install googletrans==4.0.0-rc1 # 初始化翻译器 translator = Translator() # 读取原JSON文件 with open('game_text.json', 'r', encoding='utf-8') as f: data = json.load(f) # 遍历数据,仅翻译指定字段(替换成你需要的字段名,比如"description") for item in data: if "target_field" in item: original_text = item["target_field"] # 翻译为中文,src设为源语言,dest设为目标语言 translated_result = translator.translate(original_text, src='en', dest='zh-cn') item["target_field"] = translated_result.text # 保存翻译后的JSON文件 with open('game_text_translated.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=4)
脚本会读取原JSON,仅修改指定字段的值,其余内容完全保留,导出的文件可直接用作游戏补丁。
注意事项
- 操作前务必备份原JSON文件,避免意外损坏。
- 如果JSON内包含占位符(比如
{0}),翻译时要注意保留,防止破坏游戏内的变量调用逻辑。
内容的提问来源于stack exchange,提问作者UlughBeg
相关产品推荐
相关产品推荐

