关于 oma-translator
oma-translator 是用于翻译、本地化和多语言内容审校的技能。它结合项目上下文处理术语、语气、占位符与结构,并在输出前进行校验。
主要功能
- 01结合上下文翻译与本地化
- 02审校翻译质量
- 03创建术语表和风格指南
- 04保留占位符与内容结构
- 05按翻译标准进行校验
适用场景
- 01翻译界面文案和错误消息
- 02本地化文档与 README
- 03检查译文是否自然
- 04为多语言项目整理术语表
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gracefullight/ stock-checker --skill oma-translator安装后在 Claude Code 中输入/oma-translator确认已加载。
附带文件resources/anti-ai-patterns.mdresources/translation-rubric.md
详细介绍
Translator - 上下文感知翻译
调度
目标
翻译、审校或调整多语言内容,同时保留原意、语体、占位符、结构、领域术语,并符合目标语言的自然语序。
意图特征
- 用户要求翻译、本地化、审查翻译质量、创建术语表,或调整 UI、文档或营销文案。
- 用户需要结合上下文进行翻译,而非机械替换词语。
适用场景
- 翻译 UI 字符串、错误消息或微文案
- 翻译文档、README 或指南
- 翻译营销文案或落地页
- 审查现有译文是否自然
- 创建术语表或翻译风格指南
- 任何涉及多语言内容的任务
不适用场景
- 设置 i18n 基础设施(提取键、路由、构建)-> 使用 dev-workflow
- 在框架配置中添加新语言区域 -> 使用 dev-workflow
- 代码层面的 l10n 模式(日期格式化、复数 API)-> 使用相应的 Agent
预期输入
- 源文本、目标语言,以及可选的语言区域或受众
- 现有语言区域文件、术语表、代码上下文或风格约束
- 可选的用户/作者写作样本,用于在散文、营销文案、对话或改编任务中匹配语气
- 占位符语法、格式约束和输出模式
预期输出
- 自然的目标语言译文或审校结果
- 保留占位符、代码片段、链接、标题、列表和文件结构
- 当源文概念需要解释时提供译者注
- 按需提供适用于批量处理的 i18n 文件输出
依赖项
- 用于确定语体和术语的现有译文及周边代码
resources/translation-rubric.md和resources/anti-ai-patterns.md- 翻译 UI 字符串时使用的项目语言区域文件
- 当任务要求保留或匹配特定作者的风格时,使用用户提供的语气样本
控制流特征
- 根据内容类型、目标语言、批量大小、语体不确定性以及占位符/结构要求进行分支处理
- 根据是否有适用的风格样本可用于校准进行分支处理
- 读取语言区域文件和源文上下文;仅在明确要求编辑文件时才写入译文
- 机械检查通过前不输出结果
结构流程
入口
- 确认源文本、目标语言、内容类型和输出模式。
- 在可用时,加载现有译文、术语表、文件上下文或代码上下文。
- 识别占位符、格式约束和歧义。
阶段
- 准备:确定语言、语体、领域和结构约束。
- 获取:阅读现有译文和周边上下文。
- 分析:分析源文含义、内涵、比喻性语言和术语。
- 执行:重构自然的目标语言内容。
- 验证:运行机械检查并应用翻译评估标准。
- 定稿:输出译文、审校意见或文件变更。
转换条件
- 如果上下文不足,提出一个有针对性的问题。
- 如果字符串数量超过 10 条,输出前必须进行验证。
- 如果 CJK 输出中包含破折号或源语言痕迹,定稿前须重写。
- 如果占位符或结构不匹配,进行修订并重新验证。
失败与恢复
- 如果源文含义模糊,应指出歧义,而不是猜测。
- 如果项目惯例与直译冲突,应遵循项目惯例,并在需要时作出说明。
- 如果修改文件结构存在风险,应保留结构,仅修改内容值。
退出
- 成功:目标文本自然、忠实、结构等效且已通过验证。
- 部分成功:明确指出源文歧义或上下文缺失。
上下文推断
无需配置文件。应通过以下信息推断翻译上下文:
- 项目中已有的译文:扫描同级语言文件,匹配已有的语体、术语和风格
- 文件位置:
messages/、locales/、.arb文件可揭示框架和格式 - 周边代码:组件名称、注释和变量名称可提示领域和目标受众
- 源文本本身:语体、正式程度和句式结构可揭示意图
如果上下文不足以做出有把握的判断,请询问用户。优先提出一个有针对性的问题,而不是一次提出一组问题。
翻译方法
阶段 1:分析源文本
阅读源文本并识别:
- 语体:正式、随意、会话式、技术性、文学性
- 意图:告知、说服、指导、娱乐
- 领域术语:需要统一翻译的词语(先查阅现有译文)
- 文化典故:无法直接转换的习语、隐喻和幽默
- 句子节奏:简短有力还是冗长流畅;注意平行结构、有意重复和强调模式
- 理解难点:目标读者可能难以理解的术语或典故,例如缺乏标准译法的领域行话、文化典故(流行文化、历史、社会规范)、作者默认读者了解的隐含知识、文字游戏或双关语、具名概念(如“邓宁-克鲁格效应”)。针对每项,记录:原文术语、可能造成困惑的原因,以及可供译者注释使用的简洁通俗解释
- 修辞性表达的处理方式:为每个隐喻、明喻、习语或修辞性表达分类,确定采用哪种处理方式:
- 阐释:完全舍弃源语言意象,用自然的目标语言直接表达其本意
- 替换:换成能传达相同含义和情感效果的目标语言习语或意象
- 保留:如果原有意象在目标语言中同样自然,则予以保留
- 情感内涵:承载超出词典含义之主观感受的词语(例如,“alarming”表达紧迫感,“haunting”带有挥之不去的不安感);记录需要在译文中保留的情感效果
阶段 2:提取含义
剥离源语言结构。思考:
- 作者真正想表达什么?
- 希望读者感受到什么情绪或语气?
- 希望读者采取什么行动?
不要开始构思目标语言的句子。
阶段 2.5:设定翻译风格
风格设定分为两层:内容类型(文本属于哪一类)和表达方式(节奏有多简洁有力或正式)。两者缺一不可。
第 1 层:读取 .agents/oma-config.yaml 中的 translation_voice
translation_voice 字段控制全局的节奏和正式程度。共有三个值:
| 表达方式 | 在内容类型默认风格基础上应用的覆盖规则 |
|---|---|
formal | 仅使用完整句子,不使用残句;严格采用 합니다体/です・ます,不删减赘词 |
balanced(默认) | 遵循内容类型的默认风格;仅在标签或单元格位置允许使用残句 |
interpreter | 所有内容类型均采用口译风格:简洁有力、以受众为先、口语化;在目标语言中自然时允许使用残句;删去正式表达中的赘词(“을 받았습니다” → “받음” / “을 모두” → 删除) |
如果缺少此字段,则默认为 balanced。如果无法读取 oma-config.yaml,也默认为 balanced。
第 2 层:内容类型角色表
| 内容类型 | 角色 | 基本风格标记 |
|---|---|---|
| UI 字符串/微文案 | UX 文案撰写者 | 简洁、祈使、方便用户理解 |
| 文档/README/API 参考 | 技术文档撰写者 | 数据与说明并重,充分展开解释 |
| 基准测试/报告/变更日志 | 技术记者 | 数据与说明并重,语气客观 |
| 营销文案/落地页/主视觉文案 | 品牌文案撰写者 | 精简有力、以受众为先、大胆改写 |
| 博客文章/随笔 | 随笔作家 | 保留节奏和韵律,保持作者风格 |
| 文学/散文 | 文学译者 | 保留意象、风格一致性和叙述声音 |
| 对话/字幕/访谈 | 口译员 | 即时感、以受众为先、口语语体、在文中补充文化背景 |
分类启发式:
- 文件位于
messages/、locales/,或文件名为*.arb→ UX 文案撰写者 - 文件名为
README*、位于docs/*,或.md文件中频繁出现代码块 → 技术文档撰写者 - 评分表、基准测试统计数据、变更日志条目 → 技术记者
- 页面/章节的主视觉文案 → 品牌文案撰写者
- 源文中出现引号、破折号、说话者标签 → 口译员
不确定时,代码相关内容默认采用技术文档撰写者,散文默认采用随笔作家。绝不使用泛泛的“译者”角色。
组合各层
语气应用于内容类型角色之上。示例:
- 内容类型 =
technical reporter+ 语气 =formal→ 句子充分展开,不使用残句,严格使用 합니다体。 - 内容类型 =
technical reporter+ 语气 =balanced→ 正文使用完整句子,表格单元格允许使用残句(当前默认设置)。 - 内容类型 =
technical reporter+ 语气 =interpreter→ 节奏更有力,列表项允许使用残句(例如,“39 轮 / 8m 13s / $1.28(每个文件 $0.14)”,而不是“共进行了 39 轮,耗时 8m 13s,总计花费 $1.28(每个文件约 $0.14)”),删去“ 모두 받았습니다”这类赘语。
随后,在执行时将角色本地化为目标语言。以“技术记者”角色、interpreter 语气翻译成韩语,意味着要像一位韩国技术记者那样思考:重视节奏和受众的快速浏览,而非形式上的完整性。
可选第 3 层:语气样本校准
如果用户提供作者/用户的写作样本,请先进行分析再起草。将其作为风格约束,而非改变含义的许可。
提取以下特征:
- 句子长度模式:短促有力、绵长流畅,或长短混合
- 段落开篇习惯:开门见山、先交代背景、讲述轶事、提出问题,或进行对比
- 用词层次:随意、技术性、学术性、文学性、直白,或精炼
- 标点习惯:括号、冒号、逗号、分号、破折号,或少用标点
- 过渡风格:明确使用连接词、突然转折、编号说明逻辑,或尽量少用提示语
- 适合保留的惯用短语或口头禅
仅在风格相关的场景中应用:
- 开启:博客文章、随笔、演讲、访谈、营销文案、叙事散文、改编请求,以及用户要求保留作者风格的用户撰写文档
- 有限应用:技术文档和报告;匹配节奏和术语,但不加入个人立场
- 关闭:UI 字符串、区域设置键值批次、法律/官方文本、精确政策文本,或任何结构和忠实度优先于作者风格的文本
约束:语气匹配可以调整节奏、措辞和句式,但不得添加源文中没有的新观点、第一人称视角、幽默、事实、示例或情绪色彩。
阶段 3:用目标语言重构
根据含义,以指定角色的身份,遵循目标语言规范进行重写:
语序:遵循目标语言的自然结构。
- EN → KO:从 SVO 调整为 SOV,将动词移至句末,用助词替代介词
- EN → JA:采用类似的 SOV 结构调整,并匹配敬语体系
- EN → ZH:保持 SVO 结构,但调整修饰语的位置(中文中置于名词前)
语体匹配:
- 根据项目中已有的译文,或源文本的语气进行判断
- 调整正式程度标记(敬语、句尾形式、词汇等级)
拆分/合并句子:
- 英语复合句通常拆分为更短的韩语/日语句子
- 在某些语言中,英语项目符号可能会合并为流畅的段落
省略显而易见的内容:
- 许多语言(韩语、日语、中文等)在上下文明确时允许省略主语或代词
- 不要强行加入在目标语言中显得不自然的主语或代词
阶段 4:验证关卡(阻断式;确认所有项目后才能输出)
此阶段为必选项。跳过任何一项都属于错误,而非捷径。在生成最终译文前,先执行机械检查,再进行评估。
A. 机械检查(必须先于评估执行,且全部通过):
- CJK 长破折号扫描:对于韩语、日语或中文目标语言,检查草稿中是否出现
—。每处都必须通过结构重构处理,绝不能仅替换为:、(或,。长破折号通常表示定义性的X — Y结构,在 CJK 语言中应改写为并列名词短语、定语从句或独立句。最终输出中不得出现长破折号,也不得残留任何机械替换的痕迹。(参见反 AI 规则 14 和 14a。) - 弯引号扫描:检查草稿中是否出现
“、”、‘、’。将其替换为直引号("、'),除非源文本明确使用弯引号、目标语言惯例要求使用弯引号(例如日语的「」/『』),或周边文件格式要求使用弯引号。 - 占位符完整性:源文本中的每个
{name}、{{count}}、%s、<tag>和`code`都必须在译文中保持原样。 - 结构一致性:标题、列表符号、表格行、代码块和链接的数量及嵌套层级必须与源文本一致。
- 语体一致性:全文使用同一种句尾风格(不要混用
-ㅂ니다和-다,也不要混用正式和随意语体)。 - 同级内容风格匹配(如适用):如果目标内容所在位置已有同语言内容(如 Markdown 表格行、本地化文件中的相邻条目、术语表词条、文档中的列表项),请先阅读至少 3 个同级内容,并识别:(a)分隔符风格:逗号与
及/和/与、长破折号、冒号或换行;(b)动作动词形式:名词短语片段、完整动词短语或祈使句;(c)外来词密度;(d)语体和句尾风格。草稿必须遵循主导风格。如果草稿使用了同级内容中不存在的分隔符、动词形式或语体,必须阻止输出并修改。例如:同级内容使用逗号分隔的名词短语且不使用冒号,而草稿使用X: Y and Z结构,则必须修改。
如果任何机械检查未通过,请修改并重新检查。全部通过后才能进行评估。
B. 翻译评估标准(参见 resources/translation-rubric.md):
- 译文读起来是否像是用目标语言原创的?
- 领域术语是否与项目中已有译文一致?
- 全文语体是否一致?
- 是否保留了原意,而非只逐字翻译?
- 是否恰当地调整了文化典故?
- 是否保留了情感内涵,而非将其弱化为中性描述?
C. 反 AI 模式(参见
resources/anti-ai-patterns.md): - 不要堆砌 AI 词汇或夸大重要性
- 不要比原文更具宣传口吻
- 不要轮换使用同义词;术语应保持一致
- 不要沿用源语言的词序
- 不要添加不必要的粗体或格式标记(破折号已在机械检查 A 中涵盖)
- 不要使用欧化表达(不必要的连接词、被动语态、名词堆砌、过度名词化、强行使用代词、照搬强调句式)
- 不要残留“人性化”模式:泛泛的积极结论、“让我们深入探讨”式引导、诉诸权威的说服套路、公式化的“挑战/未来展望”章节、复述标题的开场、表情符号装饰,或含糊的媒体报道/知名度填充内容
D. 修辞性语言处理: 14. 是否按照分类决定(意译/替换/保留)处理了所有隐喻/习语? 15. 修辞表达在目标语言中是否自然,而非生硬直译?
E. 输出前检查(必须在输出前书面作答):
输出译文前,先分别用 1–2 句话回答以下每个问题:
- “对于这段内容,Stage 5 反思为何开启或关闭?”:必须引用“何时运行 Stage 5–7”部分中的具体分类规则。如果目标内容同时符合开启和关闭列表中的条件(例如 README 表格单元格既是短字符串,又属于文档),则默认开启。
- “我的草稿是否符合目标语境中同类内容的模式?”:必须至少提及一个具体的同类内容,以及相符(或不相符)的模式维度。
- “是否只是替换了源语言的结构痕迹(破折号、X 后接冒号、名词后接括号),而没有重新组织表达?”:必须回答“否”,并提供证据。
如果缺少任何一项回答,回答含糊,或只说“我觉得是”却没有证据,则输出前仍须进行 Stage 5 反思。
译者注指南
为读者可能难以理解的术语、文化引用或概念添加说明性注释时:
格式:译文(原文,通俗解释);对于只需注明原文的常见术语,使用 译文(原文)
按受众调整:
- 技术读者:常见技术术语(API、deploy、refactor)无需注释。仅注释领域专有术语或新创术语
- 普通读者:注释可更充分。用通俗语言解释术语、文化引用和领域概念
- 短文本(少于 5 句话):尽量少加注释;仅注释目标受众可能不了解的术语
规则:
- 仅在首次出现时添加注释;不要重复
- 注释应简洁(尽量少于 10 个词)
- 解释其含义,而不只是提供英文原文
- 不要注释不言自明的术语或广为人知的外来词
- 如果 Stage 1 中发现了理解难点,请使用预先规划好的解释
反思模式(非简单内容默认启用)
对于超过短片段长度的内容,默认(而非可选)执行反思环节(Stage 5–7)。实证研究(Slator 2024、Self-Refine 论文)表明,单次润色即可将翻译腔率降低约一半。跳过非简单内容的反思,是引发翻译腔投诉的最常见原因。
何时运行第 5–7 阶段
以下内容默认开启:
- 文档(README、指南、API 参考)
- 报告、基准测试、更新日志、博客文章
- 营销文案和落地页
- 任何超过约 3 句话的文本
- 任何包含表格、项目符号列表或与文本混排的代码块的内容
- 翻译审校模式
以下内容默认关闭(仅进行第 4 阶段验证):
- 有既定术语表的单条简短 UI 字符串(少于 10 个词,且位于 UI 本地化文件中,例如 i18n 键、
.arb、.json、messages/) - 批量 UI 键翻译,其中每个值相互独立且少于 1 句话
- 用户明确要求“快速翻译”“跳过反思”或“직역”
优先级规则:当目标内容同时符合开启和关闭类别时,默认开启。常见冲突情况:
| 情况 | 两者都符合的原因 | 处理方式 |
|---|---|---|
| README 表格单元格(内容短且属于文档) | 少于 10 个词,但位于 README*.md 中 | 开启:README 属于文档 |
| CHANGELOG 条目 | 少于 10 个词,但位于更新日志中 | 开启:更新日志属于文档 |
| 注册表中的技能描述 | 名词短语较短,但会提交到 Git 跟踪的源文件中 | 开启:任何 Git 跟踪的文本 |
| i18n 文件中的工具提示 | 少于 10 个词,且位于 messages/ 中 | 关闭:本地化文件中的 UI 字符串 |
反思的成本可以接受;合并后的修订成本则不可接受。
如有疑问,请进行反思。成本约为 1.5–2 倍的 token;对于正文片段和欧式化表达模式,质量提升显著。
扩展工作流
完成第 1–4 阶段后,继续执行:
第 5 阶段:严格审校
以全新的视角对照源文重读译文,进行诊断性审校(暂不改写)。
先明确回答这个问题:“为什么下面的草稿读起来仍明显像机器翻译或 AI 生成的?” 用 3–7 条简短要点指出仍然存在的问题(例如:“最后一段的语体突然转为正式”“同一种连接结构重复出现三次”“正文中仍有标签或单元格以外的名词结尾片段”“照搬了一个比喻,而目标语言读者对它的理解不同”)。然后继续按以下清单审校:
- 准确性:逐段对照。有无改动事实、数字或限定条件?
- 欧化表达:检查是否存在不必要的连接词、被动语态、名词堆砌、过度名词化和生硬的代词(参见
resources/anti-ai-patterns.md) - 比喻表达的忠实度:对照第 1 阶段的比喻处理方案。是否都按分类决定处理?有无听起来不自然的直译?
- 情感忠实度:主观或带有情感色彩的用词是否被弱化成中性描述?
- 语气偏移:从头到尾的语体是否一致?是否中途发生变化(例如:正式的引言逐渐变成随意的说明)?
- 表达与行文:指出读起来仍像“翻译腔”的句子(表达僵硬、语序不自然、过渡生硬)
- 自然化表达模式:对于散文、营销文案、博客、报告和改编类任务,检查节奏是否呆板、段落结构是否过于整齐、是否存在路标式提示、泛泛的结尾、诉诸权威的陈词滥调、公式化的挑战与未来展望章节、装饰性表情符号、开头重复标题,以及填充短语
- 与示例文风的契合度:如果提供了示例,检查句子节奏、段落开头、措辞、标点和过渡方式是否与示例一致,同时不添加无依据的含义
- 译者注质量:数量是否过多或过少?是否准确、简洁?
第 6 阶段:修订
根据第 5 阶段的所有审校结果修改译文:
- 修正准确性问题
- 将欧化表达改写为自然的中文表达
- 按照比喻处理方案重新诠释直译的比喻
- 恢复被弱化的情感色彩
- 调整僵硬的句子结构,使表达流畅
- 根据审校建议调整译者注
第 7 阶段:润色
最后检查,确保译文达到可发布的质量:
- 将译文作为独立文本通读:行文是否自然流畅?
- 润顺段落之间仍显生硬的过渡
- 确保全文叙述语气一致
- 最后检查是否残留直译的比喻或翻译腔
- 检查格式是否保留(标题、粗体、链接、代码块)
批量翻译规则
翻译多条字符串时(例如 UI 键):
- 先通读所有字符串,再开始翻译;上下文很重要
- 查看项目中的现有译文,确保术语和风格一致
- 确保整批内容的术语一致
- 原样保留变量和占位符(
{name}、{{count}}、%s、<tag>、`code`) - 保留键结构:只翻译值,不翻译键
- UI 字符串的长度尽量与原文相近(避免译文长度达到原文的 3 倍,导致布局错乱)
Diff-Sync 模式(根据源文件差异修补现有翻译)
当英文源文件发生更改,需要将一个或多个现有目标语言翻译重新同步时使用。适用于 oma-docs v2 多语言同步、文档 PR 合并后手动补齐国际化翻译,或任何“源文件已更新,翻译却未更新”的情况。
输入:
- 英文源文件的统一差异(
/tmp/oma-en-diff.patch或 git diff 片段) - 一个或多个目标语言文件路径(同一源文件的现有翻译)
- 可选:各语言区域的术语表或术语提示
阶段覆盖:
- PREPARE:阅读差异。识别新增、修改和删除的部分。
- ACQUIRE:阅读每个目标文件。根据标题锚点和周围上下文映射源文件位置与目标文件位置,而不是根据行号(不同语言的行号不会匹配)。
- REASON:针对每个差异块,判断:
- 新增部分:重新翻译,并插入到对应位置
- 修改文本:本地化修改内容,替换目标文件中的对应内容
- 删除文本:删除目标文件中的对应内容
- 仅有格式调整(空白、格式):跳过;不要反复改动翻译
- ACT:使用 Edit 工具应用补丁。遵循现有翻译的语体、术语和风格(写入前至少重新阅读目标文件中 3 个同级部分)。
- VERIFY:运行第 4 阶段的机械检查(破折号、占位符完整性、结构一致性),并确保未修改任何未触及的部分。
差异同步硬性规则:
- 只修改差异涉及的内容。 目标文件的其他部分必须保持字节级一致。如果发现差异范围之外的偏差,请标记,但不要在同一个补丁中自动修复。
- 保持结构一致。 目标文件的标题层级、表格数量和列表结构必须与补丁应用后的源文件一致。
- 不得假设行号对应。 始终通过标题文本和锚点导航,不要使用绝对行号。
- 代码、正则表达式和标识符使用英文。 根据 i18n-guide 规则,代码块、JSON 键、文件路径、正则表达式模式、工作流名称以及
[OMA WORKFLOW: ...]等系统标记均保持原样。
每个目标文件的输出格式:
Target: <path>
Sections updated: <list of heading paths>
Sections skipped: <list with reason, e.g. "no semantic change">
Ambiguities resolved: <terminology decisions made>
并行处理:当多个目标语言区域需要同步同一个源文件差异时,为每个语言区域并行分派一个 Agent。每个 Agent 获得相同的差异,但使用不同的目标文件路径。无需协调,因为目标文件互不相同。
输出格式
单段文本
Source (EN):
> original text
Translation (KO):
> translated text
Notes:
- [any decisions made about ambiguous terms or cultural adaptation]
批处理(i18n 文件)
按输入格式(JSON、ARB、YAML 等)输出,仅翻译值。
审阅模式
Original translation:
> existing translation
Suggested revision:
> improved translation
Why:
- [specific issues: unnatural word order, wrong register, inconsistent term, etc.]
故障排除
| 问题 | 解决方案 |
|---|---|
| 源文本含义模糊 | 标记并在翻译前询问上下文 |
| 某术语没有既定译法 | 提出译法,并在应用前与用户确认 |
| 源文语体冲突 | 遵循项目现有语体,并注明不一致之处 |
| 占位符位于句子中间 | 调整句子结构;绝不破坏占位符语法 |
| 翻译内容对 UI 来说过长 | 提供更短的替代译文并附注 |
| 某术语有多种可行译法 | 选择最符合项目现有译法的一种;注明其他译法 |
| 目标语言需要使用有性别区分的形式 | 遵循源文意图;目标语言允许时优先使用性别中立的形式 |
| 长文档语气前后不一致 | 翻译后从头到尾重新阅读;将语体统一为全文的主导风格 |
执行方法
逐步遵循翻译方法(第 1 至第 4 阶段)。
提交前,对照 resources/translation-rubric.md 和 resources/anti-ai-patterns.md 进行检查。
执行协议(CLI 模式)
供应商专属执行协议由 oma agent:spawn 自动注入。
源文件位于 ../_shared/runtime/execution-protocols/{vendor}.md。
逻辑操作
操作
| 操作 | SSL 原语 | 依据 |
|---|---|---|
| 阅读源文和上下文 | READ | 文本、本地化文件、代码上下文 |
| 选择语体和术语 | SELECT | 现有译文和领域术语 |
| 推断预期含义 | INFER | 含义提取阶段 |
| 编写译文 | WRITE | 目标语言重构 |
| 验证占位符和结构 | VALIDATE | 验证关卡 |
| 对照评分标准 | COMPARE | 翻译评分标准 |
| 报告译文或备注 | NOTIFY | 最终输出 |
工具和辅助材料
- 现有本地化文件和周边代码
- 翻译评分标准、反 AI 模式规则、术语表和风格参考
- 仅在用户要求修改文件时使用文件编辑工具
标准工作流路径
1. Analyze source register, intent, domain terms, placeholders, and structure.
2. Reconstruct meaning in the target language, not word-for-word.
3. Run mechanical checks and `resources/translation-rubric.md` before emitting output.
4. For non-trivial prose, run Stage 5 humanization review before final polish; apply voice-sample calibration only when provided and appropriate.
对于 UI 文件,请先检查同级本地化文件:
rg "<source-key-or-term>" .
资源范围
| 范围 | 资源目标 |
|---|---|
LOCAL_FS | 本地化文件、文档、README、源文本文件 |
CODEBASE | UI 字符串周边的组件和代码上下文 |
MEMORY | 语体、术语表、歧义、验证备注 |
USER_DATA | 用户提供的文本和目标语言要求 |
前置条件
- 已知源文本和目标语言。
- 可以识别占位符和结构约束。
- 歧义已解决,或已明确标出。
影响和副作用
- 生成译文或翻译审校结果。
- 仅在用户要求时修改本地化文件或文档。
- 保留源文本结构和占位符。
防护规则
- 翻译前先检查现有本地化文件,以符合项目惯例
- 保留占位符和插值语法
- 翻译含义,而非逐字翻译
- 保留情感内涵:传达原文的感受,而不只是词典释义(例如,“alarming”表达紧迫感或担忧,而不只是“令人惊讶”)
- 在同一篇内容中保持语体一致
- 可拆分、合并或重构句子,使其符合目标语言的表达习惯
- 对有歧义的源文本应明确标出,不要自行猜测
- 保留领域术语:如果某个术语在领域内已有公认含义(例如 harness、scaffold、shim、polyfill、middleware),即使存在更简单的本地语言词语,也应保留
- 绝不逐字翻译
- 绝不在同一篇内容中混用语体(正式与随意)
- 绝不将领域专用术语替换为泛化说法(例如将“harness”译为“framework”,将“shim”译为“wrapper”)
- 除非已有译法如此处理,否则绝不翻译专有名词
- 绝不为了“听起来更好”而改变含义
- 对超过 10 条字符串的批次,绝不跳过验证阶段
- 绝不修改源文件结构(键、嵌套、注释)
- 绝不保留目标语言中不自然的源语言格式痕迹。对于 CJK 目标语言(韩语、日语、中文),必须重构破折号(—)、标题中的标题式大小写和句末的“-ing”分词短语,即使源文采用了这些格式。参见
resources/anti-ai-patterns.md中的规则 2(-ing 短语)、14–15(破折号、标题式大小写)和 25(CJK 排版与片段)。 - 绝不通过编造个性来“润色”。除非源文或用户明确要求改编,否则不要添加第一人称、笑话、观点、示例、事实、引文、强化的情绪或不完美之处。
- 提供语气样例时,只匹配可观察到的风格特征:节奏、用词层级、标点习惯、过渡方式和段落结构。应优先保留源文含义并确保目标语言自然,而非一味模仿。
参考资料
- 翻译评分标准:
resources/translation-rubric.md(5 项评分指标:自然度、准确性、语体、术语、技术完整性) - 反 AI 模式:
resources/anti-ai-patterns.md(AI 输出模式,以及应避免的欧化和翻译腔模式) - 上下文加载:
../_shared/core/context-loading.md - 质量原则:
../_shared/core/quality-principles.md