---
name: i18n-translate
version: 1.0.0
category: 开发编程
trigger_words:
tags:
  - agent
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=chatboxai-chatbox-claude-skills-i18n-translate-skill-md
---

name i18n-translate description 翻译 Chatbox Pro 当前未提交改动、暂存改动或用户指定 commit/range 中新增或受影响的 i18n key。当用户要求翻译、补全与改动 UI 文案相关的翻译时使用。Agent 需要阅读 diff 和组件上下文，遵守 skill 内置 glossary，并直接写 locale JSON；脚本只用于最后校验。 metadata {"short-description":"翻译 Chatbox 改动中的 i18n key"} i18n-translate 你一名UI翻译者。请你读 diff、读源码上下文、判断哪些 i18n key 需要补译，然后直接编辑 src/renderer/i18n/locales/*/translation.json 。注意不要运行 pnpm translate ，也不要依赖抽取脚本来决定翻译内容。你(LLM)来检查哪些 key 需要翻译，并且直接翻译成目标语言。 必读 翻译前读取 references/glossary.json ，这是本 skill 的术语表来源。 默认处理工作区中所有未提交改动（包括已暂存和未暂存）；如果用户提供单个 commit SHA 或 Git range，则仅处理该范围内新增或修改的 key。 如果用户提供的 commit 或 range 无法解析，请停止并向用户报告该输入无效，而不是猜测要处理的文件。 怎么找 key 从 diff/commit 中找新增或受影响的文案，重点看： t('...') 、 i18n.t('...') <Trans i18nKey="..."> i18nKey: '...' ，尤其是错误对象或 src/shared 中的 key src/renderer/i18n/for-key-scan.ts 等动态 key 辅助文件 src/renderer/i18n/locales/en/translation.json 中被改动的英文 value 翻译原则 先理解 key 所在文件、组件、UI 角色和周围文案，再翻译。 UI 角色包括按钮、菜单、tooltip、aria label、placeholder、错误提示、toast、modal、设置项、状态文案、聊天消息和产品文案。 参考同一组件中目标语言已有译文，保持语气和术语一致。 以 en[key] || key 作为源文；大多数情况下 en[key] 应等于 key。先补全 en/translation.json 中缺失或空的 key，再翻译其他语言。 如果 en 文案发生变化，更新所有已请求 locale 中对应 key 的翻译值；如果某个已有翻译需要更新而不是新增，请直接覆盖旧译文。 当 en value 和源码 key 不一致时，按 3 步判断： 先判断 en value 是否是有意的 slug key。 如果不是，再检查是否由 <Trans> children 或动态 key 扫描造成的源文错误。 只有在确认是源文错误时才修改源码，否则只更新 JSON。 保留所有 {{placeholder}} 、 <NamedTag> 、 <0> 标签和源文前后空格。 遵守 glossary 的保留词和强制译法。不要机械直译，写自然、符合目标语言 UI 习惯的译文。 按语言逐个翻译：一种语言翻译完就立即写入该语言的 translation.json ，再开始下一种语言。不要把所有语言的译文都攒到最后一次性写入。 如果同一个英文 key 在不同 UI 角色中需要不同译法，先不要直接给出不同译文；停止并询问用户是否应将 key 改为更具体的名称，除非仓库已经有明确的命名约定。 完成前 可运行 checker 做确定性检查： node .codex/skills/i18n-translate/scripts/check-chatbox-i18n.mjs 如果你维护了本次改动 key 列表，可以做严格检查： node .codex/skills/i18n-translate/scripts/check-chatbox-i18n.mjs --keys-file /tmp/changed-i18n-keys.txt checker 默认只因缺 key、空 value、多余 key 失败；历史 glossary/placeholder 问题会作为 warning。不要提交 commit，把改动留给用户 review。