使用內建 AI 翻譯

發布日期:2024 年 11 月 13 日,上次更新日期:2025 年 5 月 20 日

Browser Support

  • Chrome: 138.
  • Edge: not supported.
  • Firefox: not supported.
  • Safari: not supported.

在 Chrome 中使用 Translator API,透過瀏覽器提供的 AI 模型翻譯文字。

您的網站可能已提供多種語言的內容。使用者可以透過 Translator API,以自己的母語撰寫內容,舉例來說,使用者可以透過自己慣用的語言參與支援服務即時通訊,而網站會在訊息離開使用者裝置前,將訊息翻譯成支援服務專員慣用的語言。為所有使用者提供流暢、快速且無障礙的體驗。

翻譯網頁內容通常需要使用雲端服務。 首先,來源內容會上傳至伺服器,伺服器會將內容翻譯成目標語言,然後下載翻譯結果並傳回給使用者。如果內容是暫時性的,不需要儲存到資料庫,與代管翻譯服務相比,用戶端翻譯可節省時間和成本。

開始使用

查看硬體需求

開發人員和使用者在 Chrome 中透過這些 API 操作功能時,必須遵守下列規定。其他瀏覽器的操作規定可能不同。

語言偵測Translator API 適用於電腦版 Chrome。這些 API 無法在行動裝置上運作。

在 Chrome 中,Prompt APISummarizer APIWriter APIRewriter APIProofreader API 必須符合下列條件才能運作:

  • 作業系統:Windows 10 或 11;macOS 13 以上版本 (Ventura 以上版本); Linux;或 Chromebook Plus 裝置上的 ChromeOS (自 Platform 16389.0.0 以上版本)。 使用 Gemini Nano 的 API 目前不支援 Android 版 Google Chrome、iOS 版 Chrome 和 ChromeOS 版 Chrome (非 Chromebook Plus 裝置)。
  • 儲存空間:包含 Chrome 設定檔的磁碟區至少要有 22 GB 的可用空間。
  • GPU 或 CPU:內建模型可透過 GPU 或 CPU 執行。
    • GPU:VRAM 必須超過 4 GB。
    • CPU:RAM 16 GB 以上,CPU 核心 4 個以上。
    • 注意:使用語音輸入的 Prompt API 需要 GPU。
  • 網路:無限量數據或不計量的連線。

瀏覽器更新模型時,Gemini Nano 的確切大小可能會有所不同。如要判斷目前大小,請前往 chrome://on-device-internals

執行功能偵測,確認瀏覽器是否支援 Translator API。

if ('Translator' in self) {
  // The Translator API is supported.
}

雖然您一律知道翻譯的譯文語言,但可能不一定知道原文語言。在這種情況下,您可以使用語言偵測器 API

下載模型

Translator API 使用經過訓練的專家模型,可生成高品質的翻譯內容。這項 API 內建於 Chrome,且模型會在網站首次使用這項 API 時下載。

如要判斷模型是否已可使用,請呼叫非同步 Translator.availability() 函式。如果 availability() 的回應為 downloadable,請監聽下載進度,向使用者說明進度,因為這可能需要一段時間。

查看支援的語言組合

翻譯作業由語言套件管理,可視需要下載。語言包就像特定語言的字典。

  • sourceLanguage:文字的目前語言。
  • targetLanguage:文字的最終譯文語言。

請使用 BCP 47 語言簡短代碼做為字串。例如西班牙文的 'es' 或法文的 'fr'

const translatorCapabilities = await Translator.availability({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
});
// 'available'

使用 downloadprogress 事件監聽模型下載進度:

const translator = await Translator.create({
  sourceLanguage: 'es',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

如果下載失敗,系統會停止 downloadprogress 事件,並拒絕 ready Promise。

建立及執行翻譯人員

如要建立譯者,請檢查使用者啟用狀態,並呼叫非同步 create() 函式。Translator create() 函式需要一個含有兩個欄位的選項參數,一個用於 sourceLanguage,另一個用於 targetLanguage

// Create a translator that translates from English to French.
const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

取得譯者後,請呼叫非同步 translate()

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

或者,如需處理較長的文字,您也可以使用 API 的串流版本並呼叫 translateStreaming()

const stream = translator.translateStreaming(longText);
for await (const chunk of stream) {
  console.log(chunk);
}

依序翻譯

系統會依序處理翻譯內容。如果傳送大量文字要求翻譯,系統會封鎖後續翻譯作業,直到先前的作業完成為止。

為確保要求能獲得最佳回應,請將要求分組,並加入載入介面 (例如旋轉圖示),表示翻譯作業正在進行中。

支援的語言

Chrome 實作的 Translator API 支援下列語言。

程式碼 語言
ar 阿拉伯文
bg 保加利亞文
bn 孟加拉文
cs 捷克文
da 丹麥文
de 德文
el 希臘文
en 英文
es 西班牙文
fi 芬蘭文
fr 法文
hi 北印度文
hr 克羅埃西亞文
hu 匈牙利文
id 印尼文
it 義大利文
iw 希伯來文
ja 日文
kn 卡納達文
ko 韓文
lt 立陶宛文
mr 馬拉地文
nl 荷蘭文
no 挪威文
pl 波蘭文
pt 葡萄牙文
ro 羅馬尼亞文
ru 俄文
sk 斯洛伐克文
sl 斯洛維尼亞文
sv 瑞典文
ta 泰米爾文
te 泰盧固文
th 泰文
tr 土耳其文
uk 烏克蘭文
vi 越南文
zh 中文
zh-Hant 繁體中文 (台灣)

示範

如要查看 Translator API (與 Language Detector API 搭配使用),請前往 Translator 和 Language Detector API 試用版

權限政策、iframe 和 Web Worker

根據預設,Translator API 僅適用於頂層視窗和同源 iframe。使用 Permissions Policy allow="" 屬性,即可將 API 存取權委派給跨來源 iframe:

<!--
  The host site https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Translator API by
  setting the `allow="translator"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="translator"></iframe>

由於建立每個 worker 的責任文件相當複雜,因此無法在 Web Worker 中使用 Translator API,以檢查權限政策審查狀態。

提供意見

我們很想看看您打造的內容。歡迎在 XYouTubeLinkedIn 上分享您的網站和網路應用程式。

如要提供 Chrome 實作方面的意見,請提出錯誤報告功能要求