發布日期:2024 年 11 月 13 日
使用 Chrome 中的 Translator API,透過本機 AI 模型在瀏覽器中翻譯文字。
你的網站可能已經提供多種語言的網站內容,讓全球觀眾都能存取。使用者可透過 Translator API 以母語進行貢獻。舉例來說,使用者可以使用第一語言參與支援聊天,而您的網站會將訊息翻譯成支援專員使用的語言,然後傳送給使用者。這麼做可為所有使用者提供流暢、快速且無障礙的體驗。
過去,要翻譯網站上的內容,通常需要使用雲端服務。首先,來源內容會上傳至伺服器,然後執行翻譯至目標語言的作業,接著下載結果文字並傳回給使用者。在用戶端上執行翻譯作業,可節省伺服器行程所需的時間,以及代管翻譯服務的費用。
可用性
- 加入 Translator API 來源試用,在 Chrome 131 到 137 之間執行。原始試用版會為原始網域上的所有 Chrome 使用者啟用這項功能。
- 請按照 ChromeStatus 的實作方式操作。
- Translator API 提案現已開放討論。
- 加入搶先預覽計畫,搶先一睹全新內建 AI API,並參與我們的郵寄清單討論。
雖然系統一向會知道所選的目標語言,但在某些情況下,原文語言可能無法得知,例如使用者自製內容。在這種情況下,Translator API 提案會同時包含 Translator API 和 Language Detector API,後者也適用於原始試用版。如要同時使用這兩種 API,請註冊兩項來源試用。
註冊試用來源
如要開始使用 Translator API,請按照下列步驟操作:
- 確認瞭解 Google 的生成式 AI 使用限制政策。
- 前往 Translator API 來源試用。
- 按一下「註冊」並填寫表單。
- 在「Web origin」欄位中,提供來源或擴充功能 ID
chrome-extension://YOUR_EXTENSION_ID
。
- 在「Web origin」欄位中,提供來源或擴充功能 ID
- 按一下「註冊」即可提交。
- 複製提供的符記,並將其新增至您要啟用試用版的來源或擴充功能檔案中的每個網頁。
- 如果您要建構擴充功能,請按照擴充功能來源試用說明操作
- 開始使用 Translator API。
進一步瞭解如何開始使用來源試驗。
為 localhost 新增支援
如要在來源試用期間,在 localhost
上存取 Translator API,您必須將 Chrome 更新至最新版本。接下來,請按照下列步驟進行:
- 在 Windows、Mac 或 Linux 等平台上開啟 Chrome。
- 前往
chrome://flags/#translation-api
。 - 選取「已啟用」。
- 如果您想嘗試多種語言配對,請選取「已啟用,不受語言套件限制」。
- 按一下「重新啟動」或重新啟動 Chrome。
使用 Translator API
如要判斷是否支援 Translator API,請執行下列功能偵測程式碼片段。
if ('translation' in self && 'createTranslator' in self.translation) {
// The Translator API is supported.
}
確認語言組合支援
翻譯功能會透過語言套件進行管理,並視需要下載。語言包就像特定語言的字典。這些套件會搭配非同步 canTranslate()
函式,讓您判斷系統是否支援某個語言組合。
canTranslate()
函式需要 options
參數,其中包含兩個欄位:
sourceLanguage
:文字目前的語言。targetLanguage
:文字應翻譯成最終語言。
使用 BCP 47 語言代碼做為字串。例如 'es'
(西班牙文) 或 'fr'
(法文)。
await translation.canTranslate({
sourceLanguage: 'en',
targetLanguage: 'fr',
});
// 'readily'
canTranslate()
函式可傳回下列任一結果:
no
:這個瀏覽器無法依要求進行翻譯。readily
:瀏覽器可依要求進行翻譯。after-download
:瀏覽器必須先下載相關模型或語言套件,才能執行翻譯作業。
您可以使用 downloadprogress
事件監聽下載進度:
translator.ondownloadprogress = progressEvent => {
updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};
如果下載失敗,系統就會停止發出 downloadprogress
事件,並拒絕 ready
應許。
建立及執行翻譯器
如要建立翻譯器,請呼叫非同步 translation.createTranslator()
函式。與 canTranslate()
一樣,它需要一個含有兩個欄位的選項參數,一個用於 sourceLanguage
,另一個用於 targetLanguage
。
// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
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 ?"
來源試驗的限制
以下限制適用於原始試用方案。
支援的語言組合
目前最多可下載三個語言套件進行翻譯。我們承諾在日後的版本中擴大支援的語言範圍,同時維持使用者隱私權的高標準。您可以使用 canTranslate()
函式,確認所需語言組合是否受支援。
某些較不常使用的語言組合可能會用於指紋記錄。舉例來說,英文和西班牙文之間的翻譯比起較不常見的語言 (例如蓋爾語和加泰隆尼亞語) 更常見。較不常見的語言組合可能會視為使用者身分識別的資料點。
在原始試用期間,我們會限制可翻譯的語言組合,以保護使用者隱私。語言組合必須符合下列條件:
- 來源語言和目標語言都會在 Chrome 中設為偏好語言。
- 或者,其中一種語言已在 Chrome 中設為偏好語言,而另一種語言則是下列熱門語言之一:
- 英文 (
en
) - 中文 (
zh
;簡體) 或中文 (臺灣) (zh-Hant
;繁體) - 日文 (
ja
) - 葡萄牙文 (
pt
) - 俄文 (
ru
) - 西班牙文 (
es
) - 土耳其文 (
tr
) - 北印度文 (
hi
) - 越南文 (
vi
) - 孟加拉文 (
bn
)
- 英文 (
在本機測試中略過語言限制
針對本機原型設計,您可以使用指令列選項 --disable-features=TranslationAPIAcceptLanguagesCheck
執行 Chrome,藉此略過這些檢查。您也可以將 chrome://flags/#translation-api
設為「Enable without language pack limit」。
請前往 chrome://on-device-translation-internals/
手動安裝及解除安裝語言套件。
依序翻譯
系統會依序處理翻譯作業。如果您傳送大量文字進行翻譯,系統會先完成先前的翻譯作業,再處理後續的翻譯作業。
為確保翻譯要求的回應速度最佳化,請將翻譯要求分成多個部分,並考慮顯示載入介面 (例如旋轉圖示),以表示翻譯作業正在進行中。
Web worker 可用性
在來源試用期間,Translator API 僅支援主執行緒。我們預計在 API 廣泛推出後,在網路工作者中支援這項功能。
示範
您可以在 Translator 和 Language Detector API 遊樂場中,查看與 Language Detector API 搭配使用的 Translator API。
標準化作業
我們正在努力將 Translator API 標準化,以確保跨瀏覽器的相容性。
我們的 API 提案獲得社群支持,並已移至 W3C Web Incubator 社群群組進行進一步討論。Chrome 團隊向 W3C 技術架構小組索取意見回饋,並請 Mozilla 和 WebKit 提供標準立場。
參與並提供意見回饋
立即加入來源試用計畫,開始測試 Translator API,並提供寶貴意見。您的意見回饋會直接影響我們建構及實作此 API 後續版本,以及所有內建 AI API 的方式。
- 如要提供 Chrome 實作方式的意見回饋,請提交錯誤報告或功能要求。
- 在 GitHub 上討論 Translator API 設計,方法是針對現有問題發表意見或開啟新問題。
- 加入 Web Incubator 社群群組,參與標準制定工作。