跳转到主要内容

champollion

一个完全可定制的国际化框架。一条命令翻译你的语言文件。一个配置控制每个方法、模型和语言对。如果内置方法还不够——构建你自己的,证明它有效,然后部署它。

npx champollion sync

champollion 自动检测你的语言文件、格式和目标语言。它翻译缺失的内容,跳过已完成的部分,验证每个结果,并输出干净的文件。这只是起点。


为什么不自己写脚本呢?

你可以写一个快速循环,对每个键调用 Google Translate。大多数开发者都这样做——大约需要 30 行代码。问题出现在这里:

  • 没有变更检测。 更新一个英文字符串——翻译永远保持陈旧。champollion 用 SHA-256 哈希跟踪每个源值,只重新翻译改变的部分。
  • 没有批处理。 每个键一次 API 调用意味着 200 个键 = 200 次往返。champollion 智能批处理(可配置,LLM 默认 80 个键/批,Google 默认 128 个)。
  • 没有缓存。 每次同步都重新翻译所有内容。champollion 的翻译记忆库按源文本 + 语言 + 方法缓存翻译——在一个键改变后重新运行同步只翻译那一个键,而不是整个文件。
  • 没有质量门槛。 机器翻译会产生幻觉、回显源文本或输出错误的文字。champollion 在写入前验证每个翻译——错误的文字、长度膨胀和源文本回显都会被捕获并拒绝。
  • 没有格式感知。 硬编码为 JSON?champollion 处理 JSON、TOML、YAML 和 Hugo Markdown(frontmatter + body),具有自动检测功能。
  • 没有方法控制。 每个语言对都使用相同的方法。champollion 让你在同一个配置文件中对法语使用 Google Translate,对日语使用 LLM,对 Cree 语使用自定义社区托管管道。

champollion 是那个脚本的生产版本。


它的与众不同之处

每个方法都是一个插件

翻译方法可按语言对配置。在同一个项目中混合 Google Translate、LLM、精心设计的提示和自定义 API:

champollion.config.json
{
"version": 3,
"pairs": {
"en:fr": { "method": "google-translate" },
"en:ja": { "method": "llm", "model": "google/gemini-2.5-pro" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

法语使用 Google Translate(快速、便宜)。日语使用高级 LLM(细致入微)。Plains Cree 使用带有语法规则、词典和形态验证的精心设计的插件。同一个 sync 命令。同样的质量门槛。同样的 CLI。

证明它

认为你的方法可以翻译英语到西班牙语?土耳其语到阿塞拜疆语?英语到 Cree 语?

证明它。 配套的 eval harness 用可重现的、指纹识别的评分对任何翻译方法进行基准测试。排行榜 跟踪每个提交。

eval harness 和生产 CLI 共享相同的插件接口。在 harness 中评分良好的方法可以在生产中使用——如果该语言所属社区同意的话。对于土著语言和低资源语言,这种同意很重要。参见 Data Sovereignty

# Benchmark your method (in the eval harness repo)
cd arena
python eval/baseline_experiment.py --dataset data/edtekla-dev-v1.json --submit

# Use it locally
npx champollion sync

同一个插件。插入并测试。

完整的工具包

champollion 不仅仅是 sync。它是一个完整的 i18n 管道:

命令功能
sync翻译缺失和陈旧的键(带同步后验证)
watch源文件改变时自动同步
lint扫描源代码中的硬编码字符串
wrap自动将硬编码字符串包装在 t() 调用中
audit列出之前运行中的所有 [EN] 回退标记
verify验证翻译存在且正确(CI 门槛)
integrity检测占位符损坏、编码问题和 ICU 复数完整性
seo生成 hreflang 标签、站点地图和 JSON-LD 架构
status显示语言对配置、插件和基准评分
provenance审计翻译资源许可
plugin安装、删除和列出方法插件
fonts下载 PUA 文字转换器的网络字体
tm管理翻译记忆库缓存(统计、清除、按语言)
xliff导出/导入 XLIFF 1.2 供专业翻译人员审查

其中四个——lintsyncverifyaudit——形成一个 CI 管道,捕获硬编码字符串、翻译它们、验证正确性,如果任何语言不完整则使构建失败。


竞技场

方法排行榜 是记分板。每个提交都指纹识别到一个 Git 提交,版本化到特定数据集,并由相同的 harness 评分。任何人都可以提交。

你能证明什么? harness 接受 JSON。插件接受 JSON。任何生成 JSON 的方法都可以被测试:

方法示例
精心设计的 LLM将语法规则和词典注入前沿模型的提示中
微调模型在平行文本上训练开源模型——只是不在评估数据上
FST 门控管道LLM 生成 → 有限状态转换器验证形态 → 重试
链式模型模型 A 草稿 → 模型 B 后期编辑 → 模型 C 评分
词典 + LLM强制使用词典中的已知术语,让 LLM 处理其余部分
进化型生成候选、评分、变异最佳、重复
部分翻译手工翻译样本、证明你的 LLM 匹配、自动翻译其余部分

微调模型。部署进化算法。测试学生在语言考试中的答案。构建查找表。将三个模型链接在一起。只要你的方法生成 JSON,harness 就会评分,框架就会运行它。

:::danger 唯一的规则 不要在评估数据上训练。 暴露于基准数据集的方法将被取消资格。在任何你想要的东西上微调。只是不要在测试集上。 :::

这是一个公开邀请。如果你使用低资源语言——作为研究人员、社区成员、学生或只是关心的人——构建一个方法、运行 harness 并声称最高分。问题尚未解决。基础设施已在这里。

→ 查看排行榜


后续步骤

入门:

自定义你的设置:

深入了解: