tabs.detectLanguage()

使用 紧凑型语言检测器 (CLD) 检测标签页中内容的主要语言。

这是一个异步函数,它返回一个 Promise

语法

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

参数

tabId 可选

整数。默认为当前窗口的活动标签页。

callback 可选

函数。目前,如果指定了 tabId,则此方法使用此回调返回结果,而不是返回 promise。回调将其唯一的输入参数作为包含检测到的语言代码(例如 enfr)的字符串接收。

返回值

一个 Promise,它将以表示 ISO 语言代码(例如 enfr)的字符串的形式完成。有关此方法支持的完整语言列表,请参阅 kLanguageInfoTable。对于未知语言,将返回 "und"(但请参阅 错误 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);
});

当用户点击浏览器操作时,检测并记录每个打开的标签页的语言(请注意,此示例需要“标签页” 权限

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);
});

浏览器兼容性

BCD 表仅在浏览器中加载

注意:此 API 基于 Chromium 的 chrome.tabs API。本文档源自 Chromium 代码中的 tabs.json