翻訳メソッド
Champollion は10種類の翻訳メソッドをサポートしています。言語ペアごとに異なるメソッドを使用できます。プロジェクト全体で一つのアプローチに縛られる必要はありません。
メソッド比較
LLM プロバイダー
品質重視、Markdown 対応、コーチング対応。コンテンツ量の多いプロジェクトに最適です。
| メソッド | キー | 機能 |
|---|---|---|
llm(デフォルト) | OPENROUTER_API_KEY | OpenRouter 経由の LLM — 200以上のモデル、自動ルーティング |
llm-coached | OPENROUTER_API_KEY | LLM+文法ルール、辞書、スタイルノート |
openai | OPENAI_API_KEY | OpenAI API 直接接続(gpt-4o、gpt-4o-mini) |
anthropic | ANTHROPIC_API_KEY | Anthropic API 直接接続(Claude Sonnet、Haiku、Opus) |
gemini | GEMINI_API_KEY | Google Gemini API 直接接続(Flash、Pro)— 無料枠あり |
従来の機械翻訳
速度とコスト重視。大量のキーバリューペアに最適です。
| メソッド | キー | 機能 |
|---|---|---|
google-translate | GOOGLE_TRANSLATE_API_KEY | Google Cloud Translation API v2(130以上の言語) |
deepl | DEEPL_API_KEY | 用語集サポート付き DeepL API(30以上の言語) |
microsoft-translator | MICROSOFT_TRANSLATOR_API_KEY | Azure Cognitive Services Translator(100以上の言語) |
libretranslate | (セルフホスト) | セルフホスト LibreTranslate(AGPL、無料) |
インフラストラクチャ
| メソッド | キー | 機能 |
|---|---|---|
api | (プロバイダーごと) | 任意の REST 翻訳エンドポイント向け軽量 HTTP クライアント |
決定ツリー
llm — LLM 翻訳(デフォルト)
OpenRouter 上の任意の LLM を通じて翻訳します。これはデフォルトのメソッドであり、最も汎用性が高い方法です。
動作の仕組み:
- キーをバッチ処理(デフォルト 80件/バッチ)し、レジスターとコンテキストの指示を付加します
- 構造化プロンプトとして OpenRouter に送信します
- JSON レスポンスを解析します
- 各翻訳を品質ゲートで検証します
- 合格した翻訳を書き込み、失敗した翻訳はリトライまたは棄却します
使用場面: ほとんどのプロジェクト。特に Markdown を含むコンテンツ量の多いサイトで、コードブロックやショートコードをシールドする必要がある場合に適しています。
設定:
{
"defaultMethod": "llm",
"model": "google/gemini-3.5-flash"
}
llm-coached — コーチング付き LLM 翻訳
llm と同じですが、文法ルール、用語辞書、スタイルノートがすべてのプロンプトに注入されます。
動作の仕組み:
.champollion/coaching/<locale>.jsonまたはプラグインのcoaching/ディレクトリからコーチングデータを読み込みます- 文法ルール、辞書用語、スタイルノートをシステムプロンプトに注入します
- ソースキーに一致する辞書用語は必須用語として含まれます
- 翻訳は
llmと同様に進みますが、コーチングデータによって精度が向上します
使用場面: 低リソース言語、専門用語(法律、医療)、フォーマルなレジスター、または汎用 LLM の出力では精度が不十分な場合。
コーチングデータの形式:
{
"grammar_rules": [
"French adjectives agree in gender and number with the noun they modify",
"Use 'vous' for formal contexts, 'tu' for informal"
],
"dictionary": {
"dashboard": "tableau de bord",
"deployment": "déploiement",
"settings": "paramètres"
},
"style_notes": "Prefer active voice. Avoid anglicisms where a native French term exists."
}
関連情報: 低リソース言語ガイド
openai — OpenAI API 直接接続
OpenAI Chat Completions API を通じて直接翻訳します。OpenRouter を介さず、ご自身のキー、アカウント、使用状況ダッシュボードで管理できます。
モデル: gpt-4o(デフォルト)、gpt-4o-mini
機能:
- ✅ Markdown 対応(コンテンツ翻訳)
- ✅ コーチングサポート(文法ルール、辞書オーバーライド、スタイルノート)
- ✅ 構造化キーバリュー出力向け JSON モード
- ✅ 指数バックオフによるリトライ
設定:
{
"pairs": {
"en:fr": { "method": "openai", "model": "gpt-4o-mini" }
}
}
export OPENAI_API_KEY=sk-proj-...
キーの取得は platform.openai.com/api-keys から行えます。
anthropic — Anthropic API 直接接続
Anthropic Messages API を通じて直接翻訳します。コーチングデータに system パラメーターを使用し、Anthropic のプロンプトキャッシングを有効にします。
モデル: claude-sonnet-4-6(デフォルト)、claude-haiku-4-5、claude-opus-4-7
機能:
- ✅ Markdown 対応(コンテンツ翻訳)
- ✅ コーチングサポート(文法ルール、辞書オーバーライド、スタイルノート)
- ✅ システムプロンプトキャッシング(バッチ間でコーチングコストを分散)
- ✅ 指数バックオフによるリトライ
設定:
{
"pairs": {
"en:ja": { "method": "anthropic", "model": "claude-haiku-4-5" }
}
}
export ANTHROPIC_API_KEY=sk-ant-...
キーの取得は console.anthropic.com から行えます。
gemini — Google Gemini API 直接接続
Google Gemini generateContent API を通じて直接翻訳します。無料枠あり — ゼロコストで始めるのに最適な選択肢です。
モデル: gemini-2.5-flash(デフォルト)、gemini-2.5-pro
機能:
- ✅ Markdown 対応(コンテンツ翻訳)
- ✅ コーチングサポート(文法ルール、辞書オーバーライド、スタイルノート)
- ✅
responseMimeTypeによる JSON レスポンスモード - ✅ 無料枠(寛大な日次クォータ)
- ✅ 指数バックオフによるリトライ
設定:
{
"pairs": {
"en:ko": { "method": "gemini", "model": "gemini-2.5-pro" }
}
}
export GEMINI_API_KEY=AI...
キーの取得は aistudio.google.com/apikey から行えます。
モデルの検証
直接 LLM プロバイダー(openai、anthropic、gemini)は、初回使用時にモデル文字列を検証します。これにより、3種類のミスを検出できます。
メソッド形式の誤り — 直接プロバイダーに OpenRouter 形式のモデルパスを使用している場合:
[WARN] OpenAI: model "google/gemini-3.5-flash" looks like an OpenRouter path.
Direct providers use bare model names (e.g., "gpt-4o").
To use OpenRouter models, set method to 'llm' instead.
プロバイダーの誤り — 別のプロバイダーのモデルを使用している場合:
[WARN] Gemini: model "claude-sonnet-4-6" is an Anthropic model.
This provider (gemini) cannot serve Anthropic models.
Use --method anthropic or set "method": "anthropic" in config.
非推奨またはスペルミスのモデル — 最初の API 呼び出し時に、champollion はプロバイダーのライブモデルリストを取得し、指定したモデルと照合します:
[WARN] Gemini: model "gemini-1.5-flash" not found in available models.
Similar models: gemini-2.0-flash, gemini-2.5-flash, gemini-2.5-pro
The API call will proceed — the provider will give the final verdict.
:::note これらは警告であり、エラーではありません モデルの検証は警告をログに記録しますが、API 呼び出しをブロックしません。プロバイダーの API が最終的な判断を下します。将来のモデル名が異なるパターンに一致する可能性があるため、ヒューリスティックに基づいてゲートを設けることは避けています。 :::
google-translate — Google Cloud Translation API
Google Cloud Translation API v2 との直接統合。REST API を使用します。SDK もサービスアカウントも不要で、API キーだけで利用できます。
使用場面: ニュアンスよりも速度とコストが重要な、大量のキーバリュー文字列ペア。130以上の言語をすぐに利用できます。
制限事項:
- ⚠️ Markdown 非対応。 コードブロック、ショートコード、補間変数が破損します。
- レジスター/トーン制御なし
- コーチングや用語の強制適用なし
npx champollion sync --method google-translate
:::tip 自動検出
GOOGLE_TRANSLATE_API_KEY のみが設定されている場合(OpenRouter キーなし)、champollion は自動的に Google Translate に切り替えます。設定変更は不要です。
:::
deepl — DeepL API
DeepL 翻訳 API との直接統合。一貫した用語のために用語集をサポートしています。
使用場面: DeepL が優れているヨーロッパ言語(ドイツ語、フランス語、スペイン語、オランダ語、ポーランド語など)。用語集サポートにより、コーチングデータなしで一貫した用語を強制適用できます。
機能:
- ✅ 無料/プロエンドポイントの自動検出(無料キーの
:fxサフィックス) - ✅ 用語集の作成と管理
- ✅ 丁寧さレベルの制御
- ⚠️ Markdown 非対応 — キーバリューペアのみ
設定:
{
"pairs": {
"en:de": { "method": "deepl" }
}
}
export DEEPL_API_KEY=your-key-here
キーの取得は deepl.com/pro-api から行えます。
microsoft-translator — Azure Cognitive Services
Microsoft Translator Text API v3 との直接統合。
使用場面: 既存の Azure インフラを持つエンタープライズ環境。Google Translate がカバーしていない多くの言語を含む、100以上の言語をサポートしています。
機能:
- ✅ リクエストあたり最大100セグメント(高スループット)
- ✅ レイテンシー最適化のためのオプションのリージョンパラメーター
- ⚠️ Markdown 非対応 — キーバリューペアのみ
- ⚠️ コンテンツ翻訳非対応 — キーバリューペアのみ
設定:
{
"pairs": {
"en:ar": { "method": "microsoft-translator" }
}
}
export MICROSOFT_TRANSLATOR_API_KEY=your-key
export MICROSOFT_TRANSLATOR_REGION=global # optional
キーの取得は Azure Portal → Cognitive Services → Translator から行えます。
libretranslate — セルフホスト翻訳
LibreTranslate を使用したセルフホストのオープンソース翻訳。ローカルまたは独自のインフラ上で動作します。API コストはゼロで、データの完全な主権を保持できます。
使用場面: オフライン翻訳、データプライバシーコンプライアンス(GDPR)、またはゼロコスト運用が必要なプロジェクト。外部 API に依存すべきでない CI パイプラインに特に有用です。
機能:
- ✅ セルフホスト — 外部 API 呼び出しなし
- ✅ 無料かつオープンソース(AGPL-3.0)
- ✅ Docker デプロイメント対応
- ⚠️ Markdown 非対応 — キーバリューペアのみ
- ⚠️ コンテンツ翻訳非対応 — キーバリューペアのみ
- ⚠️ 言語ペアによって品質が異なります
セットアップ:
# Run LibreTranslate locally with Docker
docker run -d -p 5000:5000 libretranslate/libretranslate
# Configure (optional — defaults to localhost:5000)
export LIBRETRANSLATE_API_URL=http://localhost:5000/translate
{
"pairs": {
"en:es": { "method": "libretranslate" }
}
}
api — リモート翻訳 API
コミュニティホストまたは IP 保護された翻訳エンドポイント向けの軽量 HTTP クライアントです。Champollion はキーを送信して翻訳を受け取るだけで、翻訳ロジックは一切含まれていません。
使用場面: 翻訳メソッドがサーバーサイドでホストされている場合(例: 独自のコーチングデータ、ファインチューニング済みモデル、配布できない FST パイプライン)。
{
"pairs": {
"en:crk": {
"method": "api",
"endpoint": "https://api.example.com/v1/translate",
"apiKey": "your-key"
}
}
}
:::note OCAP 対応コミュニティ翻訳
api メソッドは、OCAP 対応のコミュニティホスト翻訳へのブリッジです。先住民族および少数言語コミュニティは、コーチングデータ、ファインチューニング済みモデル、言語的 IP をコミュニティの管理下に置きながら、独自の翻訳エンドポイントをホストできます。Champollion は軽量クライアントとしてそれらに接続します。
コミュニティホスティングの詳細なウォークスルーは低リソース言語のサポートを、エンドポイントの要件はメソッドを API として提供するをご覧ください。 :::
言語ペアごとの設定
真の強みは、言語ペアごとにメソッドを組み合わせられることです。
{
"version": 3,
"pairs": {
"en:fr": { "method": "deepl" },
"en:ja": { "method": "openai", "model": "gpt-4o" },
"en:ko": { "method": "gemini" },
"en:ar": { "method": "microsoft-translator" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}
この例では、フランス語は DeepL(用語集サポート)、日本語は OpenAI(品質)、韓国語は Gemini(無料枠)、アラビア語は Microsoft Translator(カバレッジ)、プレーンズ・クリー語はコーチング付きプラグイン(専門特化)で翻訳します。
プラグイン
プラグインは、特定の言語ペア向けにパッケージ化された翻訳レシピです。コードではなく JSON マニフェストであり、使用するメソッド、設定内容、ベンチマーク済みの品質を champollion に伝えます。
:::tip 評価ハーネスから本番環境へ、ワンコマンドで
評価ハーネスで開発・検証されたプラグインは直接インストールできます。そこで検証したメソッドは、plugin install コマンド一つでここにデプロイされます。完全な評価ワークフローについては MT Evaluation をご覧ください。
:::
champollion plugin install ./french-formal-v1/
champollion plugin list
champollion plugin remove french-formal-v1
完全なマニフェスト形式についてはプラグイン仕様をご覧ください。
プロバイダーの切り替え
メソッド間を移行する場合、モデル形式と環境変数が変わります。以下にその対応表を示します。
OpenRouter → 直接プロバイダー
{
"pairs": {
"en:fr": {
- "method": "llm",
- "model": "openai/gpt-4o"
+ "method": "openai",
+ "model": "gpt-4o"
}
}
}
- export OPENROUTER_API_KEY=sk-or-v1-...
+ export OPENAI_API_KEY=sk-proj-...
主な違い:
- OpenRouter は
provider/model形式を使用します(例:openai/gpt-4o)。直接プロバイダーはベアモデル名を使用します(例:gpt-4o)。 - 直接プロバイダーにはそれぞれ固有の環境変数があります(
OPENAI_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY)。 - 誤ったモデル形式を使用した場合、champollion が警告を表示します。詳細はモデルの検証をご覧ください。
直接プロバイダー → OpenRouter
{
"pairs": {
"en:ja": {
- "method": "anthropic",
- "model": "claude-sonnet-4-6"
+ "method": "llm",
+ "model": "anthropic/claude-sonnet-4-6"
}
}
}
:::tip OpenRouter と直接プロバイダーの使い分け OpenRouter を使用する場合: 環境変数を変更せずにモデルを切り替えたい場合、または単一のキーで200以上のモデルにアクセスしたい場合。直接プロバイダーを使用する場合: シンプルな請求管理、低レイテンシー(中間業者なし)、または Anthropic のプロンプトキャッシングなどプロバイダー固有の機能にアクセスしたい場合。 :::
コスト比較
1,000件の翻訳キーあたりのおおよそのコスト(キーあたり約10トークン、バッチあたり80キーを想定):
| メソッド | 1Kキーあたりのコスト | 速度 | 品質 | 最適な用途 |
|---|---|---|---|---|
gemini(Flash) | 無料(枠内) | 高速 | 良好 | 入門、個人プロジェクト |
google-translate | 約$0.02 | 最速 | 十分 | 大量処理、ヨーロッパ言語 |
deepl | 約$0.02 | 高速 | 良好 | ヨーロッパ言語、用語管理 |
microsoft-translator | 約$0.01 | 高速 | 十分 | Azure 環境、幅広い言語カバレッジ |
libretranslate | 無料(セルフホスト) | 可変 | 普通 | エアギャップ環境、GDPR、CI パイプライン |
gemini(Pro) | 約$0.07 | 中速 | 非常に良好 | 品質重視、無料クォータあり |
openai(GPT-4o-mini) | 約$0.01 | 高速 | 良好 | 低コスト LLM |
openai(GPT-4o) | 約$0.10 | 中速 | 非常に良好 | 品質重視 |
anthropic(Haiku) | 約$0.01 | 高速 | 良好 | 低コスト LLM |
anthropic(Sonnet) | 約$0.10 | 中速 | 非常に良好 | 品質重視 |
anthropic(Opus) | 約$0.50 | 低速 | 優秀 | 最高品質 |
llm(OpenRouter) | モデルによって異なる | 可変 | 可変 | モデル比較、実験 |
:::note これらは概算です 実際のコストは、ソーステキストの長さ、バッチサイズ、プロバイダーの料金変更によって異なります。正確な料金については、各プロバイダーの最新の料金ページをご確認ください。 :::
関連情報
- サポート言語
- コーチングデータ
- 低リソース言語のサポート
- プラグイン仕様
- メソッドを API として提供する
- 品質ゲート
- アーキテクチャ
- トラブルシューティング — モデルエラー、API の問題