中国驻美大使谢锋:人工智能不能野蛮生长跑马圈地
2026-06-22
2026-06-22 0
Mac版Codex需借助json-autotranslate CLI与i18n-ally插件实现多语言JSON自动提取与翻译:先确认locales/下含规范源文件zh-CN.json,再通过jsontt scan识别缺失键、jsontt translate-dir批量补全(须加--preserve-structure),最后用i18n-ally在VSCode中实时校验与微调。

Mac版Codex本身不内置i18n功能,但可通过命令行工具链与VSCode插件协同,实现多语言JSON文件的自动提取与翻译——你不需要手动打开每个JSON文件复制粘贴,也不用在网页端反复切换语言选项。
进入你的Mac终端,cd到项目根目录,确保存在locales/文件夹,且其中至少有一个带完整中文文案的JSON文件(如zh-CN.json)。该文件将作为所有翻译的基准源,【键名必须全小写、下划线或中划线分隔,不能含空格或中文标点】。
检查文件格式是否为纯键值对:{ "login_button": "登录", "welcome_title": "欢迎使用" }。若存在嵌套对象、数组或注释,json-autotranslate会跳过整条键,导致漏译。
执行以下命令全局安装工具:
npm install -g json-autotranslate
安装完成后,运行jsontt --help验证是否可用。若提示“command not found”,请重启终端或运行source ~/.zshrc刷新环境变量。
这一步操作起来很简单,直接把命令粘贴进终端回车就行。不需要修改任何配置文件,所有参数都支持命令行即时传入。
第一步:扫描所有语言文件,识别缺失翻译的键
jsontt scan -s locales/zh-CN.json -d locales/
该命令会读取locales/下所有JSON文件(如en-US.json、ja-JP.json),对比zh-CN.json中的键,列出所有在目标文件中缺失的key。输出结果直接显示在终端,不覆盖原文件。
第二步:一键补全全部缺失键(以Google Translate为默认引擎)
jsontt translate-dir -s locales/zh-CN.json -d locales/ -t en-US,ja-JP,ko-KR --preserve-structure
【务必加上--preserve-structure参数,否则嵌套路径会被扁平化,破坏Vue或React i18n的命名空间结构】。例如{"user": {"login": "登录"}}若不加此参数,会变成{"user.login": "Login"},导致前端调用$t('user.login')失效。
第三步:如需指定DeepL提升商务术语准确度,需先注册API密钥并导出环境变量
export DEEPL_AUTH_KEY="your-deepl-api-key" → jsontt translate-dir -s locales/zh-CN.json -d locales/ -t fr-FR --engine deepl
打开VSCode,确保已安装i18n-ally扩展(Antfu出品)。工作区根目录下存在locales/后,右键任意JSON文件 → “i18n: Sync All Locales”,自动对齐所有语言文件的键结构。
点击编辑器右侧出现的翻译面板,在搜索框输入“login”,即可横向对比中/英/日三语对应值。发现某处翻译生硬时,直接双击英文字段修改,保存后自动同步到磁盘。
注意:修改后不要手动运行CLI重译,否则会覆盖你的手工优化。如需重新触发翻译,只对特定key加--force-keys login_button参数。