tabs.detectLanguage()

使用 Compact Language Detector (CLD) 檢測標籤頁內容的主要語言。

這是一個非同步函式,返回一個 Promise

語法

js
let detecting = browser.tabs.detectLanguage(
  tabId,                  // optional integer
  callback                // optional function
)

引數

tabId 可選

integer。預設為當前視窗的活動標籤頁。

callback 可選

function。當前,如果指定了 tabId,則此方法將使用此回撥來返回結果,而不是返回一個 Promise。回撥的唯一輸入引數是一個包含檢測到的語言程式碼(例如 enfr)的字串。

返回值

一個 Promise,它將以代表 ISO 語言程式碼(例如 enfr)的字串解析。有關此方法支援的語言的完整列表,請參閱 kLanguageInfoTable。對於未知語言,將返回 "und"(但請參閱 bug 1288263)。如果發生任何錯誤,Promise 將被拒絕並顯示錯誤訊息。

示例

當用戶點選瀏覽器操作時,檢測並記錄活動標籤頁的語言。

js
function onLanguageDetected(lang) {
  console.log(`Language is: ${lang}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

browser.browserAction.onClicked.addListener(() => {
  browser.tabs.detectLanguage().then(onLanguageDetected, onError);
});

當用戶點選瀏覽器操作時,檢測並記錄每個開啟標籤頁的語言(請注意,此示例需要 "tabs" 許可權)。

js
function onLanguageDetected(url, lang) {
  console.log(`Language in ${url} is: ${lang}`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function detectLanguages(tabs) {
  for (const tab of tabs) {
    browser.tabs
      .detectLanguage(tab.id)
      .then((lang) => onLanguageDetected(tab.url, lang), onError);
  }
}

browser.browserAction.onClicked.addListener(() => {
  browser.tabs.query({}).then(detectLanguages, onError);
});

瀏覽器相容性

注意: 此 API 基於 Chromium 的 chrome.tabs API。本文件源自 Chromium 程式碼中的 tabs.json