Spec-Zone.ru › Web Extensions

tabs.detectLanguage()

Обнаруживает основной язык содержимого вкладки, используя компактный детектор языка (CLD). Compact Language Detector.

Это асинхронная функция, которая возвращает Promise.

Синтаксис

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

Параметры

tabId Необязательно

integer. По умолчанию активная вкладка текущего окна.

callback Необязательно

function. В настоящее время, если указана функция обратного вызова, этот метод использует её для возвращения результатов вместо возвращения промиса. Функция обратного вызова получает в качестве единственного входного параметра строку, содержащую код обнаруженного языка, например, en или fr.

Возвращаемое значение

A Promise, который будет выполнен со строкой, представляющей код языка ISO, например, en или fr. Полный список языков, поддерживаемых этим методом, см. в kLanguageInfoTable. Для неизвестного языка возвращается "und" (но см. bug 1288263). При возникновении ошибки промис будет отклонен с сообщением об ошибке.

Примеры

Обнаружение и вывод языка активной вкладки при нажатии на действие браузера:

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" разрешение):

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

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
detectLanguage 5 14 45 ? 15
14["При версиях ОС ниже 11 будет возвращено und (неизвестный язык).", "Идентификатор локали будет чаще включать код страны."]
? ? Нет ? 15 ?

Примечание: Этот API основан на API chrome.tabs Chromium. Данная документация взята из tabs.json в коде Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/detectLanguage

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API