质量门
每次翻译在写入磁盘前都会通过一个确定性的验证门。质量门捕捉常见的机器翻译失败模式——没有无声回退,没有垃圾数据写入你的本地化文件。
验证检查
| 检查 | 捕捉内容 | 门标签 |
|---|---|---|
| 空白/空字符串 | 模型返回空字符串或仅空格 | [GATE] empty |
| 源文本回显 | 模型返回原始英文输入 | [GATE] source-echo |
| 幻觉循环 | 重复的三字符模式(例如 "Qo' Qo' Qo'") | [GATE] hallucination |
| 长度膨胀 | 输出明显长于源文本 | [GATE] length |
| 脚本合规性 | 目标语言环境的脚本错误 | [GATE] script |
| ICU 复数类别 | 缺少该语言环境所需的复数形式 | [GATE] icu-plural |
空白/空字符串
拒绝空字符串、仅空格或 null 的翻译。这捕捉模型对困难键返回空值的情况。
源文本回显
检测模型返回英文源文本而不是翻译的情况。常见于短字符串和规范不足的提示。
幻觉循环
分析输出中的三字符(trigram)模式。如果任何三字符相对于输出长度重复次数超过阈值,翻译将被拒绝。这捕捉产生退化输出的情况,如 "Qo' Qo' Qo' Qo' Qo'"。
长度膨胀
拒绝输出长度超过 maxLengthRatio × source length(默认值:4×)的翻译。这捕捉为短输入产生大量文本的模型幻觉。
可通过配置中的 maxLengthRatio 配置。
脚本合规性
对于配置了 script 字段的语言环境(例如 "script": "cans" 用于平原克里音节文字),验证输出包含适合目标脚本的非 ASCII 字符。对于阿拉伯文、CJK 或音节文字语言环境,仅拉丁文输出将被拒绝。
失败时的处理
- 失败的翻译被记录到 stderr,带有
[GATE]前缀、键名、原因和值的预览 - 该键不会被写入本地化文件
- 重试级联启动(见下文)
[GATE] hero.title: source-echo — "Welcome to our platform"
[GATE] nav.about: hallucination — "À À À À À À À À"
重试级联
当批处理失败(JSON 解析错误或质量门拒绝)时,champollion 以逐步缩小的批次重试:
Full batch (80 keys) → parse error
└→ Half batch (40 keys) → 2 failures
└→ Individual keys (1 each) → isolates the 2 problem keys
重试预算由 maxRetries(默认值:3,每种语言可配置)限制。这防止了对持续失败的键的无限制令牌支出。
耗尽重试后,问题键被记录并跳过。它们将在下一次 sync 运行时重试。
提示缓存
系统消息(寄存器、语法规则、风格说明)与用户消息(要翻译的键)分离。这种分离是有意的:
- 系统消息对于给定的语言环境在批次间相同
- Anthropic 和 Google 等提供商缓存重复的系统消息
- 结果:第一个批次支付全部令牌成本,后续批次仅支付用户消息的成本
这可以显著降低具有许多批次的项目的令牌成本。
ICU MessageFormat 验证
integrity 命令根据 CLDR 复数规则验证 ICU MessageFormat 复数模式。如果你的源文件使用 ICU 语法,如:
"items": "{count, plural, one {# item} other {# items}}"
Champollion 验证翻译版本包含目标语言环境所需的所有复数类别。例如,阿拉伯文需要六个类别(zero、one、two、few、many、other)——而不仅仅是 one 和 other。
运行 champollion integrity 检查所有语言环境的复数完整性。
术语强制
对于带有字典的教练对,champollion 运行翻译后的术语检查。质量门通过后,它验证 LLM 是否实际使用了所需的字典术语。
[TERM] en→fr: 2 term violation(s)
• hero.title: "dashboard" → expected "tableau de bord" but got "panneau de contrôle"
术语违规是警告,不是阻止错误。翻译仍然被写入磁盘。这是有意的——LLM 可能有选择替代方案的有效理由(上下文、语法),而对术语不匹配的阻止会造成更多伤害。
要修复违规,请更新教练字典或手动编辑本地化文件。
另见
- 同步工作原理 — 质量门在管道中的位置
- 翻译方法 — 输入到门的方法
- 脚本转换器 — 门后脚本转换
- 教练数据 — 上游改进翻译质量
- 翻译记忆 — 缓存已验证的翻译
- CLI 参考 — sync — sync 标志,包括重试行为
- CLI 参考 — integrity — ICU 复数审计