Chrome の組み込み Translator API とは?

Translator API は、ローカルにバンドルされた AI モデルをユーザーエージェントが管理する、ウェブページがブラウザ内でテキストを直接翻訳できる実験的なウェブプラットフォーム機能です。テキストをリモート翻訳サービスに送信する代わりに、ブラウザは JavaScript インターフェース(window.Translator)を公開し、指定されたソース/ターゲット言語ペアの短命な翻訳セッションを作成し、翻訳された文字列を非同期で返します。

付属の Language Detector API(window.LanguageDetector)は文字列を検査し、信頼度スコア付きの可能性の高い BCP-47 言語タグのランク付きリストを返します。この 2 つの API を組み合わせることで、ページは任意の入力の言語を検出し、初期モデルダウンロード後のネットワークラウンドトリップなしで翻訳できます。

モデルはユーザーのデバイス上で実行されるため、ダウンロード後はオフラインで翻訳が機能し、機密テキストはマシンから外に出ず、リクエストごとの API コストはありません。トレードオフとして、利用可能性はブラウザ、オペレーティングシステム、および要求された言語ペアがダウンロードされているかどうかに依存します。

ツールの説明

このプレイグラウンドは、自分のブラウザで Translator API と Language Detector API をテストするための実践的な環境です。入力エリア、ターゲット言語セレクター、および出力エリアを基盤となる Translator.create() / translate() 呼び出しに接続し、実験中にモデルの利用可能性状態とダウンロード進捗を表示します。

ソース言語はデフォルトで「自動検出」に設定されており、入力を最初に LanguageDetector にルーティングしてから、検出された言語を翻訳者に転送します。検出をスキップするために、ソース言語を明示的にピン留めすることもできます。

ソース(自動検出) ターゲット 出力
Bonjour, comment ça va ? 英語 Hello, how are you?
Guten Morgen, wie geht es dir? スペイン語 Buenos días, ¿cómo estás?
今日は良い天気ですね。 英語 The weather is nice today.

機能

  • 自動言語検出 — Language Detector API を使用して、翻訳前にソース言語を識別します。
  • 双方向言語ピッカー — ワンクリックでソースとターゲットを入れ替えて再翻訳します。
  • ライブ利用可能性状態 — 要求されたモデルが availabledownloadabledownloading、または unavailable であるかを表示します。
  • ダウンロード進捗バー — モデルの取得中に翻訳者/検出器から downloadprogress イベントをストリーミングします。
  • デバイス上のオフライン翻訳 — モデルがダウンロードされると、翻訳するためのネットワークリクエストは行われません。

ユースケース

  • ローカライズされたコピーのプレビュー — 文字列を貼り付けて、UI テキストを作成しながら別の言語でどのように読めるかを即座に確認します。
  • ブラウザサポートの確認 — Translator API に依存する機能を提供する前に、特定のソース/ターゲットペアが利用可能かどうかを確認します。
  • クイックオフライン翻訳 — 関連する言語パックがダウンロードされた後、接続なしでスニペットを翻訳します。

要件

  • Translator API と Language Detector API を実装するブラウザ。執筆時点では、デスクトップの Chrome 138+ および Chromium ベースのブラウザ(例:Opera 122+)です。Edge、Firefox、Safari はまだサポートされていません。
  • セキュアコンテキスト(HTTPS または localhost)。
  • 一時的なユーザーアクティベーション — API は最近のユーザージェスチャー後の create() のみを許可します。これが翻訳がページロードではなく入力で実行される理由です。
  • 初期言語モデルダウンロード用の十分なディスク容量と帯域幅。その後の翻訳はキャッシュされたモデルを再利用します。

仕組み

  1. マウント時に、ツールは window.Translatorwindow.LanguageDetector をチェックします。どちらかが見つからない場合、警告が表示され、入力が無効になります。
  2. 入力すると、入力がデバウンスされ、ソース/ターゲットペアが解決されます(ソースが auto の場合は最初に LanguageDetector.detect() を実行します)。
  3. Translator.availability({ sourceLanguage, targetLanguage }) が呼び出され、そのペアのモデル状態がクエリされます。
  4. Translator.create()monitor コールバック付きで呼び出され、downloadprogress イベントをリッスンして進捗バーを更新します。
  5. translator.translate(text) は翻訳された文字列を返し、出力エリアにレンダリングされます。
  6. 翻訳者と検出器インスタンスは各呼び出し後に destroy() を介してリリースされ、リソースを解放します。

サポートされている言語

ピッカーは、Chrome のバンドルされたモデルがサポートしているか、一般的にテストしている一般的な BCP-47 言語タグのキュレーションされたリストを公開します。以下を含みます:

enesfrdeitptnlplruuktrarhibnjakozhzh-Hantvithidsvnofidaelhecsrohu

実際に使用可能なペアのセットは、基盤となるブラウザモデルがダウンロードしたか、ダウンロードできるものに依存します。unavailable として報告されたペアは、現在のブラウザで翻訳できません。

制限事項

  • API は実験的であり、ブラウザバージョン間でサーフェスが変わる可能性があります。
  • 翻訳品質はブラウザ提供モデルによって決定され、専用のクラウド翻訳サービスと一致することは保証されません。
  • 一部の言語ペアは英語を介した中間ピボットが必要な場合があるか、単に利用できない場合があります。
  • 新しい言語ペアの最初の翻訳は、モデルダウンロードのため遅い場合があります。
  • API は現在ウェブワーカーに公開されておらず、クロスオリジンフレームの Permissions Policy(translatorlanguage-detector)の背後にゲートされている可能性があります。

FAQ

出力が空のままなのはなぜですか? Translator API はおそらくブラウザに実装されていません。デスクトップの Chrome 138+ でページを開き、リロードしてください。

「モデルをダウンロード中…」が表示されるのはなぜですか? 言語ペアを初めて使用するとき、ブラウザはモデルパッケージをダウンロードします。進捗バーは Translator.create() によって発行された downloadprogress イベントを反映します。

テキストはデバイスから外に出ますか? いいえ。モデルがダウンロードされた後、翻訳は完全にデバイス上で行われます。ツール自体は入力をどこにも送信しません。

「自動検出」が失敗することがあるのはなぜですか? 入力が短すぎる、曖昧である、または検出器が見たことのないスクリプトである場合、LanguageDetector.detect()und(未決定)を返す可能性があります。その場合は、ソース言語を手動で選択してください。