メインコンテンツへスキップ

Rosettaの比較

i18n-rosettaは、ほとんどのローカリゼーションツールとは異なるカテゴリに属しています。ここでは、率直な比較を紹介します。

全体像

ほとんどのローカリゼーションツールは、以下の3つのカテゴリのいずれかに分類されます。

カテゴリモデル
クラウドTMSプラットフォームCrowdin, Phrase, Locize, TolgeeSaaSダッシュボード + 人間による翻訳 + 月額サブスクリプション
キー抽出ツールi18next-scanner, FormatJS CLIソースコードをスキャンして翻訳関数の呼び出しを抽出
CLI翻訳エンジンi18n-rosettaプロジェクト内で実行し、ファイルを直接翻訳、クラウドアカウント不要

RosettaはCLI翻訳エンジンです。設定可能なバックエンド(LLM、Google Translate、カスタムプラグイン)を使用して、ロケールファイルを直接翻訳します。クラウドダッシュボードや人間による翻訳ワークフロー、月額料金は一切ありません。


機能比較

機能i18n-rosettaCrowdinPhraseLocize
ローカルで実行(クラウドアカウント不要)
依存関係ゼロ
ペアごとのメソッド設定
カスタム言語レジスター
コンテンツ認識(コードブロックの保護)
人工言語および文字体系の変換
プラグインアーキテクチャ
Markdown / コンテンツ翻訳
翻訳メモリ
XLIFFエクスポート/インポート
ICU複数形の検証
用語の適用
人間による翻訳ワークフローXLIFFベース
インコンテキスト編集(視覚的)
チームコラボレーション
サポートするファイル形式JSON, TOML, YAML, MD, XLIFF50以上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は不要です。

ロケール変換
crkSRO → クリー文字nêhiyawêwinᓀᐦᐃᔭᐍᐏᐣ
srラテン文字 → キリル文字BeogradБеоград
tlhローマ字 → pIqaDtlhIngan Hol → (pIqaDのグリフ)
x-elvish-sラテン文字 → テングワールシンダリン → テングワール(ベレリアンド・モード)
x-kryptonianラテン文字 → クリプトン文字暗号置換(フォントが必要)

これらは純粋なルックアップテーブルによる変換であり、決定論的で監査可能であり、LLMのハルシネーション(幻覚)のリスクはゼロです。

3. コンテンツを認識した保護機能

Markdownやリッチコンテンツを翻訳する際、Rosettaは以下を保護します。

  • フェンス付きコードブロック (```)
  • インラインコード (` `)
  • Hugoのショートコード ({{</* */>}}, {{%/* */%}})
  • 補間変数 ({{ .Count }}, {name}, {{t('key')}})
  • 生のHTMLブロック

これらは翻訳前にUnicodeのセンチネルトークンに置き換えられ、翻訳後に復元されます。LLMがコード、ショートコード、変数を参照することはありません。

4. コーチングメソッドプラグイン

APIが対応していない言語については、コーチングされた翻訳メソッドを構築できます。

  1. 言語のコーチングデータ(文法規則、語彙、例文)を作成する
  2. プラグインとしてバンドルする
  3. eval harnessを使用して、参照翻訳に対するベンチマークテストを行う
  4. i18n-rosetta plugin installを使用してプロジェクトにインストールする

これはRosettaが平原クリー語を処理する方法であり、まだ存在しない言語を含め、あらゆる言語を処理できる方法でもあります。


結論

RosettaはCrowdinの代替品ではありません。異なるワークフローのための異なるツールです。人間の翻訳者が必要な場合は、TMSを使用してください。1つのコマンドでファイルを翻訳し、言語ごとにメソッド、モデル、レジスターを制御できるCLIが必要な場合は、Rosettaを使用してください。