架构
Champollion 翻译生态系统由三个独立工具组成,通过明确定义的契约相互协作。它们在构建时互不依赖。它们通过共享的方法插件格式和 REST API 契约进行通信。
三个组件
champollion(本项目)
开源开发者工具。使用可插拔方法翻译语言文件。零依赖、配置可选、开箱即用。
内置方法:
llm→ OpenRouter / 任意 LLM(200+ 模型)llm-coached→ LLM + 语法/词典指导openai→ 直接 OpenAI API(GPT-4o、GPT-4o-mini)anthropic→ 直接 Anthropic API(Claude Sonnet、Haiku、Opus)gemini→ 直接 Google Gemini API(Flash、Pro — 免费层可用)google-translate→ Google Cloud Translation API v2deepl→ DeepL API 及词汇表支持microsoft-translator→ Azure 认知服务翻译器libretranslate→ 自托管 LibreTranslate(AGPL、免费)api→ 连接任意远程 REST 端点的瘦管道
Eval Harness(配套项目)
用于开发、测试和基准测试翻译方法的研究工具。当方法达到可接受的质量时,harness 导出一个方法插件 — 一个 method.json 清单和可选的指导数据文件。
Harness 永远不在 champollion 内部运行。它是一个独立工具,生成静态输出(JSON 文件)。Champollion 只是读取这些文件。
Champollion Translate(计划中)
一个计量 API 服务,在服务器端托管专有翻译方法 — 提示词、指导数据和语言学管道永远不会离开服务器。
它们如何连接
Eval Harness → champollion(单向导出)
契约:插件规范
Champollion Translate → champollion(运行时 API)
Champollion 的 APIMethod 是一个哑管道。它发送密钥并接收翻译结果。它不包含任何翻译逻辑和专有内容。
每个组件对其他组件的了解
| 工具 | 了解 champollion? | 了解 Champollion Translate? | 了解 harness? |
|---|---|---|---|
| champollion | (就是 champollion) | 是 — api 方法调用它 | 否 — 仅读取插件导出 |
| Champollion Translate | 是 — 服务其请求 | (就是 Champollion Translate) | 否 — 接收已部署的方法 |
| Eval Harness | 是 — 导出插件格式 | 否 — 方法单独部署 | (就是 harness) |
用户场景
场景 1:免费、零配置(大多数用户)
export OPENROUTER_API_KEY=sk-...
npx champollion sync
使用内置 llm 方法。无插件、无 Champollion Translate、无 harness。
场景 2:Google Translate 基线
export GOOGLE_TRANSLATE_API_KEY=AIza...
npx champollion sync
使用内置 google-translate 方法。无需插件。
场景 3:开放插件与捆绑指导
champollion plugin install ./french-formal-v1/
champollion sync
插件有 type: "llm-coached" → champollion 使用用户自己的 OpenRouter 密钥。指导数据是本地的(无服务器调用)。
场景 4:DIY 指导(无插件、无 harness)
{
"pairs": {
"en:fr": { "method": "llm-coached" }
}
}
用户在 .champollion/coaching/fr.json 中维护自己的语法规则和词典。
语言卡
Champollion 中的每种语言都通过语言卡进行配置 — 一个统一的 JSON 文件,包含寄存器预设、正式程度规则、方法支持标志、排版约定、系统分类和语言学参考数据。
卡在导入时急切加载。每张卡包含翻译引擎和开发者文档所需的所有元数据 — 没有单独的参考层。卡从权威来源(IANA、CLDR、Glottolog、WALS)生成,使用 scripts/generate-language-card.mjs 和 scripts/build-language-tree.mjs,然后由人工审核以确保语言学准确性。
设计原则
- 无循环依赖。 桥接是单向的。
- Champollion 是轻量级核心。 零依赖、配置可选。插件和 API 是附加的。
- IP 保护是架构性的。 专有技术保留在服务器端。npm 包不包含任何专有内容。
- 插件格式是契约。 一切都通过
method.json流动。 - 每个工具有一个职责。 Harness → 开发方法。Champollion Translate → 托管方法。Champollion → 翻译文件。
另见
- 翻译方法 — 每个内置方法的工作原理
- 插件规范 — method.json 清单格式
- Eval Harness — 配套研究工具
- 通过 API 提供方法 — 托管自定义翻译管道
- 支持低资源语言 — 驱动此架构的用例