快速开始
在 60 秒内翻译你的第一个语言文件。
1. 设置你的语言文件
创建一个源语言文件。Champollion 支持 JSON、TOML 和 YAML:
locales/en.json
{
"hero": {
"title": "Welcome to our platform",
"subtitle": "Build something amazing"
},
"nav": {
"home": "Home",
"about": "About",
"contact": "Contact"
}
}
2. 设置你的 API 密钥
选择一个提供商并设置密钥:
# Option A: OpenRouter (200+ models, recommended)
export OPENROUTER_API_KEY=sk-or-v1-...
# Option B: Gemini (free tier — zero cost to start)
export GEMINI_API_KEY=AI...
在 aistudio.google.com/apikey 获取免费的 Gemini 密钥。在 openrouter.ai 获取 OpenRouter 密钥。
3. 运行同步
npx champollion sync
:::tip 使用 Gemini?
如果你选择了选项 B(Gemini),添加 --method gemini:
npx champollion sync --method gemini
:::
Champollion 将:
- 自动检测
locales/en.json作为源语言 - 查找(或提示输入)目标语言
- 翻译所有键
- 写入
locales/fr.json、locales/ja.json等 - 创建
.champollion.lock来追踪已翻译的内容
4. 检查结果
cat locales/fr.json
{
"hero": {
"title": "Bienvenue sur notre plateforme",
"subtitle": "Construisez quelque chose d'incroyable"
},
"nav": {
"home": "Accueil",
"about": "À propos",
"contact": "Contact"
}
}
接下来会发生什么?
当你更改源字符串时,champollion 通过 SHA-256 哈希追踪检测到更改,并在下次同步时仅重新翻译该键:
locales/en.json (updated)
{
"hero": {
"title": "Welcome to Acme Platform", // ← changed
"subtitle": "Build something amazing" // ← unchanged, skipped
}
}
npx champollion sync
# Only "hero.title" is re-translated across all locales
未更改的键(hero.subtitle)从 champollion 的翻译记忆库缓存中提供 — 无 API 调用,无成本。缓存在每次同步期间自动构建,并存储在 .champollion/tm.json。
可选:创建配置文件
为了获得更多控制,生成一个配置文件:
npx champollion init # guided wizard
npx champollion init --yes --langs fr,de,ja # quick setup with specific targets
引导式向导会引导你完成每种语言的寄存器预设 — 预构建的语调/正式程度指令,针对其语言系统进行调整。法语有 T-V 预设(vouvoiement vs tutoiement),韩语有言语级别(해요체 vs 합쇼체 vs 해체),日语有敬语选项(です/ます vs 丁寧語)。
或者使用预设键手动创建配置:
champollion.config.json
{
"version": 3,
"inputLocale": "en",
"localesDir": "./locales",
"languages": {
"fr": "casual-tu",
"ko": "polite-haeyo",
"ja": "polite"
},
"model": "google/gemini-2.5-flash"
}
运行 npx champollion init 来浏览每种语言的可用预设。
可选:监视模式
当你的源文件更改时自动翻译:
npx champollion watch