跳转到主要内容

食谱:翻译 30 种语言

将项目从少数几个区域扩展到全球覆盖。本食谱介绍了方法选择、成本优化和 CI 集成,适用于真实的多语言部署。

场景: 您有一个 SaaS 应用,支持 enfres。您需要添加 27 种语言,跨越三个质量要求层级。


第 1 步:对语言进行分类

并非所有 30 种语言都需要相同的方法。按可用方法质量对它们进行分组:

层级语言方法原因
第 1 层 — 高级jakozhdeptllm (GPT-4o)高价值市场,语法细微差别
第 2 层 — 标准itnlplsvdafinocsrohueltridmsthviukbggoogle-translate高容量,Google 支持良好
第 3 层 — 指导crkojmihawllm-coached + 插件低资源,需要术语强制执行

第 2 步:按语言对配置

champollion.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"defaultMethod": "google-translate",
"model": "google/gemini-3.5-flash",
"languages": {
"ja": { "name": "Japanese", "register": "Polite/formal" },
"ko": { "name": "Korean", "register": "Formal" },
"zh": { "name": "Simplified Chinese", "register": "Neutral" },
"de": { "name": "German", "register": "Formal (Sie)" },
"pt": { "name": "Brazilian Portuguese", "register": "Informal" },
"crk": { "name": "Plains Cree (SRO)", "register": "Neutral" }
},
"pairs": {
"en:ja": { "method": "llm", "model": "openai/gpt-4o" },
"en:ko": { "method": "llm", "model": "openai/gpt-4o" },
"en:zh": { "method": "llm", "model": "openai/gpt-4o" },
"en:de": { "method": "llm", "model": "openai/gpt-4o" },
"en:pt": { "method": "llm", "model": "openai/gpt-4o" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}

注意: pairs 中未列出的语言继承 defaultMethod: "google-translate"。您无需列出全部 30 种。

信息

crk 支持正在开发中 — 请参阅支持低资源语言了解状态和贡献指南。

第 3 步:设置 API 密钥

此配置需要两个 API 密钥:

export OPENROUTER_API_KEY="sk-or-v1-..."
export GOOGLE_TRANSLATE_API_KEY="AIza..."

第 4 步:先进行试运行

始终在翻译 30 种语言之前进行预览:

npx champollion sync --dry

查看输出。它将显示:

  • 哪些语言对使用哪种方法
  • 每个区域有多少新增/更改的密钥
  • 每个层级的估计 API 调用次数

第 5 步:运行同步

npx champollion sync

Champollion 独立处理每个语言对。使用 Google Translate 的第 2 层语言对将很快。第 1 层 LLM 语言对会更慢,但质量更高。第 3 层指导语言对使用插件的指导数据。

增量更新

初始同步后,后续运行仅翻译更改或新增的密钥:

# Only keys that changed since last sync
npx champollion sync

锁定文件(.champollion.lock)跟踪已翻译的内容,因此您永远不会重新翻译稳定内容。

第 6 步:审计质量

检查所有语言对的状态:

npx champollion status

这将输出一个表格,显示每个语言对的方法、模型、质量层级,以及是否有可用的指导数据或基准分数。

输出是否尊重了您的语言风格?

在第 2 步中,您为每种语言声明了一个语言风格 — 日语为 "Polite/formal",德语为 "Formal (Sie)"。(对这个术语不熟悉?词汇表用简明语言解释了它。)这些说明进入翻译提示,但提示是一个请求,不是保证。

MT Eval Arena 工具 — 为公共排行榜提供支持的同一工具 — 可以在翻译样本上测量语言风格和风格一致性。其写作风格指标根据预期的语言风格(正式/非正式标记、T–V 代词、缩写、句子长度漂移)检查每个输出,并报告整个运行的 style_consistency_rate。您也可以使用 --style-profile 指向自定义品牌语音配置文件。

# install the harness, then run your sample corpus through it
curl -fsSL champollion.dev/harness | bash
mt-eval run --corpus my-sample.json --style-profile brand-voice.json

两个诚实的警告:这些指标是信息性的(它们永远不会进入排行榜的综合分数),正式性检测是基于标记的 — 是一个漂移检测器,而不是人类判断。详情和指标定义:写作风格和语言风格指标

第 7 步:CI 集成

添加到您的 GitHub Actions 工作流,以便在每次推送时保持翻译最新:

.github/workflows/i18n-sync.yml
name: Sync Translations
on:
push:
paths:
- 'locales/en/**'

jobs:
translate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

- run: npm ci

- name: Sync translations
run: npx champollion sync
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GOOGLE_TRANSLATE_API_KEY: ${{ secrets.GOOGLE_TRANSLATE_API_KEY }}

- name: Commit updated translations
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add locales/
git diff --staged --quiet || git commit -m "chore(i18n): sync translations"
git push

成本估算

对于包含 500 个源密钥、30 种语言的项目:

层级语言方法大约成本
第 1 层 (5 种语言)ja、ko、zh、de、ptGPT-4o~$2.50/完整同步
第 2 层 (18 种语言)it、nl、pl 等Google Translate~$0.90/完整同步
第 3 层 (4 种语言)crk、oj、mi、hawGPT-4o-mini 指导~$0.40/完整同步
总计30 种语言混合~$3.80/完整同步

增量同步(5–20 个更改的密钥)成本仅为完整同步的一小部分。

另请参阅