Rosettaの比較
i18n-rosettaは、ほとんどのローカリゼーションツールとは異なるカテゴリに属しています。ここでは、率直な比較を紹介します。
全体像
ほとんどのローカリゼーションツールは、以下の3つのカテゴリのいずれかに分類されます。
| カテゴリ | 例 | モデル |
|---|---|---|
| クラウドTMSプラットフォーム | Crowdin, Phrase, Locize, Tolgee | SaaSダッシュボード + 人間による翻訳 + 月額サブスクリプション |
| キー抽出ツール | i18next-scanner, FormatJS CLI | ソースコードをスキャンして翻訳関数の呼び出しを抽出 |
| CLI翻訳エンジン | i18n-rosetta | プロジェクト内で実行し、ファイルを直接翻訳、クラウドアカウント不要 |
RosettaはCLI翻訳エンジンです。設定可能なバックエンド(LLM、Google Translate、カスタムプラグイン)を使用して、ロケールファイルを直接翻訳します。クラウドダッシュボードや人間による翻訳ワークフロー、月額料金は一切ありません。
機能比較
| 機能 | i18n-rosetta | Crowdin | Phrase | Locize |
|---|---|---|---|---|
| ローカルで実行(クラウドアカウント不要) | ✅ | ❌ | ❌ | ❌ |
| 依存関係ゼロ | ✅ | ❌ | ❌ | ❌ |
| ペアごとのメソッド設定 | ✅ | ❌ | ❌ | ❌ |
| カスタム言語レジスター | ✅ | ❌ | ❌ | ❌ |
| コンテンツ認識(コードブロックの保護) | ✅ | ❌ | ❌ | ❌ |
| 人工言語および文字体系の変換 | ✅ | ❌ | ❌ | ❌ |
| プラグインアーキテクチャ | ✅ | ❌ | ❌ | ❌ |
| Markdown / コンテンツ翻訳 | ✅ | ✅ | ✅ | ❌ |
| 翻訳メモリ | ✅ | ✅ | ✅ | ✅ |
| XLIFFエクスポート/インポート | ✅ | ✅ | ✅ | ❌ |
| ICU複数形の検証 | ✅ | ✅ | ✅ | ❌ |
| 用語の適用 | ✅ | ✅ | ✅ | ❌ |
| 人間による翻訳ワークフロー | XLIFFベース | ✅ | ✅ | ✅ |
| インコンテキスト編集(視覚的) | ❌ | ✅ | ✅ | ✅ |
| チームコラボレーション | ❌ | ✅ | ✅ | ✅ |
| サポートするファイル形式 | JSON, TOML, YAML, MD, XLIFF | 50以上 | 40以上 | JSON |
| 価格 | 無料(LLMの料金のみ) | 月額$0〜 | 月額$0〜 | 月額$0〜 |
Rosettaを使用するべきケース
Rosettaは以下のような場合に適しています:
- 別のワークフローとしてではなく、ビルドパイプラインに機械翻訳を組み込みたい場合
- 言語ごとにメソッドを制御したい場合(一部の言語にはLLM、他の言語にはGoogle Translate、残りの言語にはカスタムプラグインを使用するなど)
- APIが対応していない言語(先住民言語、消滅危機言語、人工言語)に翻訳する場合
- 決定論的な文字出力が必要な場合(クリー文字、クリンゴン語のpIqaD、テングワールなど)
- ベンダーロックインやクラウドへの依存を完全に排除したい場合
- 完全なTMSダッシュボードを必要としない、個人開発者や小規模チームである場合
- クラウドのサブスクリプションなしで、XLIFFベースでプロの翻訳者に引き継ぎたい場合
クラウドTMSは以下のような場合により適しています:
- プロの翻訳者がすべての文字列をレビューする場合(RosettaのXLIFFワークフローは完全なTMSよりもシンプルです)
- プロジェクト横断的な翻訳メモリや用語集の管理が必要な場合
- インコンテキストの視覚的な編集が必要な場合(UI内で翻訳をプレビューする)
- ロールベースのアクセス制御が必要な大規模チームである場合
- 50以上のファイル形式のサポートが必要な場合
他のツールにはないRosetta独自の機能
1. カスタムレジスター
すべての言語ペアには、LLM向けに文化的に適切なトーンの指示が設定されます。
{
"de": {
"register": "Standard professional register. Use Sie-form for formal address."
},
"tl": {
"register": "Educated Manila Taglish. Use Tagalog as the primary language but keep technical terms in English."
},
"tlh": {
"register": "Warrior's honor. OVS grammar. Use Marc Okrand vocabulary."
}
}
47種類の事前設定された言語レジスターを搭載し、プロジェクトごとにカスタムレジスターを定義できるツールは他にありません。
2. 決定論的な文字変換
Rosettaには、翻訳後のフックとして実行される5つの組み込み文字変換機能が搭載されており、LLMは不要です。
| ロケール | 変換 | 例 |
|---|---|---|
crk | SRO → クリー文字 | nêhiyawêwin → ᓀᐦᐃᔭᐍᐏᐣ |
sr | ラテン文字 → キリル文字 | Beograd → Београд |
tlh | ローマ字 → pIqaD | tlhIngan Hol → (pIqaDのグリフ) |
x-elvish-s | ラテン文字 → テングワール | シンダリン → テングワール(ベレリアンド・モード) |
x-kryptonian | ラテン文字 → クリプトン文字 | 暗号置換(フォントが必要) |
これらは純粋なルックアップテーブルによる変換であり、決定論的で監査可能であり、LLMのハルシネーション(幻覚)のリスクはゼロです。
3. コンテンツを認識した保護機能
Markdownやリッチコンテンツを翻訳する際、Rosettaは以下を保護します。
- フェンス付きコードブロック (
```) - インラインコード (
` `) - Hugoのショートコード (
{{</* */>}},{{%/* */%}}) - 補間変数 (
{{ .Count }},{name},{{t('key')}}) - 生のHTMLブロック
これらは翻訳前にUnicodeのセンチネルトークンに置き換えられ、翻訳後に復元されます。LLMがコード、ショートコード、変数を参照することはありません。
4. コーチングメソッドプラグイン
APIが対応していない言語については、コーチングされた翻訳メソッドを構築できます。
- 言語のコーチングデータ(文法規則、語彙、例文)を作成する
- プラグインとしてバンドルする
- eval harnessを使用して、参照翻訳に対するベンチマークテストを行う
i18n-rosetta plugin installを使用してプロジェクトにインストールする
これはRosettaが平原クリー語を処理する方法であり、まだ存在しない言語を含め、あらゆる言語を処理できる方法でもあります。
結論
RosettaはCrowdinの代替品ではありません。異なるワークフローのための異なるツールです。人間の翻訳者が必要な場合は、TMSを使用してください。1つのコマンドでファイルを翻訳し、言語ごとにメソッド、モデル、レジスターを制御できるCLIが必要な場合は、Rosettaを使用してください。