中英公文互译润色质检
适用场景
- 把一份中文邮件 / 通知 / 合同条款译成了英文,但不确定术语有没有前后统一、数字有没有译错、专名有没有被误翻
- 收到外部译稿或 AI 机翻稿,要在发出前做一次机械核对,避免「CloudCollab Pro 被译成 Cloud Collaboration Pro」「顺延 12 天被写成 15 天」这类低级事故
- 中英公文里有产品名、缩写、标准号(如 SLA / ISO 27001)必须原样保留,但译文里被顺手译掉了
- 英文译文里混进了中文标点、占位符
{pm_name}被漏掉,套进邮件模板就报错 - 译文读起来一股翻译腔(「due to the fact that」「作为一个……」),或用了过于随意的口语词(「guys」「搞定」)却要发给海外客户
- 需要一份可直接复制的纯译文 + 一张术语核对表,交给专业译者或母语者做终审前的自查
核心能力
-
双栏对照稿:原文 / 译文逐段并排,每段右侧实时标出质检标记(术语不一致 / 数字缺失 / 口语化 / 翻译腔 / 占位符丢失……),一眼定位问题段。
-
术语一致性核对:按你提供的
glossary校验专有名词译法统一。源术语出现却没用指定译法 → 标红;命中你列的avoid禁用译法(如「验收」不得译作 check and accept)→ 直接判硬伤。 -
数字保真:抽取原文与译文中的阿拉伯数字(含千分位、小数、百分号、货币),逐段比对。原文有而译文没的、译文多出来的,都按硬伤处理——公文里数字错一个就是事故。
-
不译词保留:
do_not_translate里的产品名 / 缩写 / 标准号,原文有、译文没(或被翻译了)→ 判硬伤。 -
正式度检查:正式 / 半正式文体下,英文译文里的口语缩略(gonna / wanna / guys / ASAP)与全大写喊话词,中文译文里的职场黑话(搞定 / 对齐一下 / 给力)按文体要求判级——正式文体下口语词算硬伤。
-
翻译腔 / 冗余检测:英文译文的典型中式冗余(in order to / due to the fact that / conduct an investigation / carry out a …);中文译文的翻译腔特征(「作为一个」「众所周知」「在很大程度上」)、「的」字堆砌与长句无停顿,均给优化提示。
-
格式保真:英文译文混入中文标点、模板占位符
{name}/[x]/%s/$VAR在译文中丢失,均判硬伤——这是套用邮件 / 报告模板时最容易翻车的两类。 -
长度比提示:按方向给出译 / 原字符比合理区间(中译英 1.2–2.8,英译中 0.35–0.85),明显偏离提示可能漏译或过度增译。极短段落(称谓 / 落款)不评长度,避免误报。
-
邮件 / 公文礼节要素:邮件、通知公告类文书,全文未检测到称谓或落款 / 结语时给提示,避免「发正式邮件却忘了抬头和署名」的尴尬。
-
译文质检报告(0-100):九项检查(段落完成度 / 零问题率 / 术语一致性 / 数字保真 / 正式度 / 地道度 / 格式保真 / 整体长度比)+ 综合评分,按硬伤(−9/条)与提示(−3/条)线性扣分,给出「可交付 / 需修订 / 问题较多建议重译」三档结论。
-
中文数字 ↔ 阿拉伯数字归一(v1.0.2):数字比对前,先把边界清晰的中文数词归一成阿拉伯数字——「第二阶段 / Phase 2」「三个工作日 / 3 working days」「百分之二十 / 20%」「八月三日 / 8月3日」这类原本会误报「数字缺失 / 多出」的对照,现在能正确匹配,不再吵人。泛指量词「一个」刻意不转,避免对照英文 a/an 误报。
-
量级与货币一致性(v1.0.2):原文含「万 / 亿」量级而译文没体现同等量级时给提示确认换算;原文货币符号(¥ / $ / € / £)与译文不一致时告警,避免「¥500 错写成 $500」这类金额事故。
-
--fail-under评分卡口(v1.0.2):把质检接进 CI / 批量流水线——综合评分低于阈值时以退出码1结束(区别于输入非法的2与 IO 失败的3),便于脚本化卡点。 -
边界健壮 + 内置自检(v1.0.3):空段落 / 纯中文 / 纯英文 / 超长段落都能正常核对不崩;同类提示自动去重(避免同一句提示在多段反复刷屏拉低评分);术语与不译词比对前先折叠多余空白并忽略大小写,杜绝「CloudCollab Pro」与「CloudCollab Pro」因空格数不同漏判;另提供
--selftest一键跑通 7 项边界用例,交付前自证脚本本身没坏。
输入规范(缺失会主动引导)
脚本输入为 JSON,完整字段与注释见 references/input_template.json。本技能是「译文质检器」,不是翻译器——它不产出译文,只对「你已经译好的中英对照稿」做核对。最小可用输入需要 segments(每段含 source 原文与 target 译文):
{
"title": "客户交付延期说明函 · 中译英质检",
"direction": "zh2en",
"doc_type": "邮件",
"register": "正式",
"audience": "海外客户采购负责人",
"glossary": [
{ "zh": "云协作平台 Pro", "en": "CloudCollab Pro", "avoid": ["Cloud Collaboration Pro"] },
{ "zh": "验收", "en": "acceptance", "avoid": ["check and accept"] }
],
"do_not_translate": ["CloudCollab Pro", "SLA", "ISO 27001"],
"segments": [
{ "id": "S1", "source": "尊敬的 Miller 先生:", "target": "Dear Mr. Miller," },
{ "id": "S4", "source": "原定于 2026-08-15 的验收节点需顺延 12 个工作日。",
"target": "The check and accept node originally scheduled for 2026-08-15 needs to be postponed by 15 working days." }
]
}
当用户丢来一篇原文 + 一份译文(或只丢原文说「帮我翻」)时,本技能不翻译,按下列顺序引导:
- 确认方向——中译英还是英译中?不确定就问,或让用户提供
direction。 - 收集术语表——「这份公文里有没有必须统一的专有名词 / 产品名 / 职级?」放进
glossary,并说明哪些译法禁用。 - 收集不译词——「有没有产品名 / 缩写 / 标准号必须原样保留?」放进
do_not_translate。 - 逐段对齐——让用户把译文按段落拆成
source/target对。没译的段落target留空即可,脚本会判「未翻译」。 - 确认文体与类型——
register(正式 / 半正式 / 口语)与doc_type(邮件 / 通知公告 / 合同条款……)决定正式度与礼节检查强度。 - 跑质检、复述硬伤——把报告交回用户,并重点复述「硬伤」清单(数字错、术语不统一、占位符丢、未翻译),这些交付前必须修。
本技能不臆造译文,也不替用户编数字——它只核对用户提供的对照稿。
处理流程
- 收集中英对照稿与术语表,写成 JSON 文件(如
input.json)。 - 运行脚本:
python scripts/check_translation.py input.json # 打印到终端(位置参数)
python scripts/check_translation.py --input in.json -o report.md # 写入文件
cat input.json | python scripts/check_translation.py # 从 stdin 读
python scripts/check_translation.py input.json --audit-only # 只看质检报告
python scripts/check_translation.py input.json --register 半正式 # 覆盖正式度要求
python scripts/check_translation.py input.json --direction en2zh # 覆盖翻译方向
python scripts/check_translation.py input.json --fail-under 60 # 评分<60 退出码 1
python scripts/check_translation.py --selftest # 内置边界自检
脚本参数(v1.0.1 / v1.0.2 / v1.0.3)
| 参数 | 说明 |
|---|---|
input.json(位置参数)或 --input |
JSON 输入;二者二选一,都不给则读 stdin。编码自动 utf-8-sig → gbk 兜底 |
-o / --output |
写入文件;目录不存在会自动创建;缺省打印到 stdout(写文件时在 stderr 回显评分) |
--register |
覆盖正式度:正式 / 半正式 / 口语 |
--direction |
覆盖翻译方向:zh2en / en2zh |
--audit-only |
只输出质检报告 |
--fail-under 阈值(v1.0.2) |
综合评分低于该整数阈值时以退出码 1 结束,用于 CI / 批量卡点 |
--selftest(v1.0.3) |
内置边界自检,跑通 7 项用例后以退出码 0 结束,否则 1 |
退出码约定:0 成功 | 1 评分低于 --fail-under 阈值(v1.0.2)| 2 输入内容非法(JSON 语法错、顶层非对象、字段类型错、segments 为空)| 3 文件读写或编码失败。
- 把输出的 markdown 交给用户,并重点复述「硬伤」清单——评分与硬伤决定这份译文能不能直接发。
- 若评分低于 60 分,主动建议用户回译稿修关键段落(术语、数字、占位符、未翻译段)再出正式版;涉及合同 / 法务 / 对外承诺的文本,提醒必须再由专业译者或母语者终审。
输出格式
markdown 质检报告,章节连续编号:
| 章节 | 内容 |
|---|---|
| 双栏对照稿 | # / 原文 / 译文 / 质检标记 四列表,问题段一眼可见 |
| 纯译文(可直接复制) | 仅译文文本块,方便直接粘贴到邮件 / 模板 |
| 术语核对表 | 原文术语 / 应译为 / 出现段数 / 未统一段落 / 备注 |
| 不译词清单 | 须原样保留的词列表 |
| 需修订段落 | 逐段列出原文 / 译文 / 问题标记 |
| 译文质检报告 | 九项检查表 + 综合评分 0-100 + 硬伤 / 提示逐条列出 |
完整样例见 examples/sample_input.json → examples/sample_output.md(一封客户延期说明函的中译英质检,实测评分 7/100,含术语不统一、数字错译、禁用译法、占位符丢失、未翻译、口语化、翻译腔、中文标点等多类问题)。
异常处理
| 情况 | 处理方式 |
|---|---|
segments 为空 |
报错退出(exit 2),提示先提供 source / target 对照 |
| JSON 格式错误 / 根节点不是对象 | 报错退出(exit 2),打印具体解析错误 |
| 输入完全为空 / stdin 无数据 | 报错退出(exit 2),提示至少需要含 segments 的 JSON 对象 |
| 文件不存在 / 路径是目录 / 写盘失败 | 报错退出(exit 3),中文说明具体原因 |
| 文件是 GBK 编码或带 BOM | 自动兜底解码(utf-8-sig → gbk),无需手工转码 |
segments / glossary / do_not_translate 写成对象或字符串 |
报错退出(exit 2),明确指出该字段必须是数组 |
未提供 direction |
按首段源文语种自动判定(zh2en / en2zh)并给提示,建议显式声明 |
| 段落编号重复 | 自动重命名为 原编号#序号 并记硬伤 |
| 术语表源术语重复定义 | 忽略后一条并记硬伤 |
| 术语表某项缺 zh 或 en | 跳过该条并提示 |
| 某段只有译文没原文 | 跳过核对并提示「无法核对」 |
| 某段 target 为空 / 与 source 相同 | 判「未翻译」/「原样照抄」硬伤 |
| 方向 / 正式度 / 文档类型填错 | 按别名归一,未识别则退回默认值(zh2en / 正式 / 通用文档)并提示 |
未提供 glossary |
跳过术语一致性检查并提示「不提供术语表无法校验专名译法」 |
未提供 do_not_translate |
跳过不译词检查(不影响其他项) |
适用限制与免责声明
- 本工具只做译文自身的机械核对,不翻译,也不校验「语义理解是否正确」。 它能可靠查出术语不统一、数字丢失 / 错译、不译词丢失、格式损坏、文体偏差,但查不出「意思翻反了」「语气冒犯了客户」这类语义 / 语用错误。涉及合同、法务、对外承诺、品牌表述的文本,请务必由专业译者或母语者终审。
- 数字保真已做中文数字 ↔ 阿拉伯数字归一(v1.0.2):「第二阶段 / Phase 2」「三个工作日 / 3 working days」「百分之二十 / 20%」等可正确匹配。仍无法覆盖所有中文数词写法,孤立或边界不清的中文数字(如「一些」「若干」)不会被强制转换,请人工确认。量级(万 / 亿)与货币符号(¥ / $ / € / £)的一致性是提示级检查,合法换算也可能被提示,以人工确认为准。
- 口语词表、翻译腔词表、术语表是内置经验集,不可能覆盖所有行业黑话与团队用语;首次使用建议人工核对一遍命中结果,必要时在
scripts/check_translation.py的EN_CASUAL/ZH_CASUAL/EN_WORDY/ZH_TRANSLATIONESE/glossary中扩充本行业用语。 - 长度比、正式度、礼节检查均为统计性提示,存在边界误报(如极短问候语、刻意口语化的内部沟通);提示项(−3)不构成硬伤,按实际场景判断。
- 「质检评分」按硬伤与提示条数线性扣分,仅用于横向对比同一份译稿的多版修订或不同译稿的质量,不构成对译者能力的评价。
- 本技能不连接任何翻译服务 / 文档系统,不自动抓取或调用翻译 API;输入需人工或由 AI 先译好后提供。
- 输出内容为核对草稿,正式对外发送前请自行复核硬伤是否已修、语义是否准确。