Spec-Zone.ru › Web APIs

Navigator: свойство languages

Базовая Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить обратную связь

Чтение только свойство Navigator.languages возвращает массив строк, представляющих предпочтительные языки пользователя. Язык описывается с помощью тегов языка в соответствии с RFC 5646: Теги для идентификации языков (также известный как BCP 47). В возвращаемом массиве они упорядочены по предпочтению, начиная с наиболее предпочтительного языка.

Значение navigator.language является первым элементом возвращаемого массива.

При изменении его значения, когда пользователь изменяет предпочтительные языки, событие languagechange срабатывает на объекте Window.

Заголовок HTTP Accept-Language в каждом запросе HTTP от браузера пользователя, как правило, перечисляет те же языковые области, что и свойство navigator.languages , с уменьшающимися q значениями (значения качества). Некоторые браузеры (Chrome и Safari) добавляют теги только для языков в качестве резервных вариантов в Accept-Language — например, en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7 , когда navigator.languages является ["en-US", "zh-CN"]. В целях конфиденциальности (сокращение отпечатков пальцев) как Accept-Language , так и navigator.languages могут не включать весь список пользовательских предпочтений, например, в Safari (всегда) и режиме инкогнито Chrome, где указан только один язык.

Значение

Массив строк.

Примеры

Вывод содержимого navigator.language и navigator.languages

navigator.language; // "en-US"
navigator.languages; // ["en-US", "zh-CN", "ja-JP"]

Использование конструкторов Intl для форматирования, зависящего от языка, с резервным вариантом

Массив идентификаторов языков, содержащихся в navigator.languages , можно напрямую передавать в конструкторы Intl для реализации выбора локалей на основе предпочтений, где используется первый элемент списка, соответствующий локали, поддерживаемой Intl:

const date = new Date("2012-05-24");

const formattedDate = new Intl.DateTimeFormat(navigator.languages).format(date);

Спецификации

Спецификация
HTML
# dom-navigator-languages-dev

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
languages
37До Chrome 65, navigator.languages[0] не гарантированно равно navigator.language.
16
32В Firefox, значение свойства navigator.languages берется из предпочтения intl.accept_languages.
24 10.1
37До Chrome Android 65, navigator.languages[0] не гарантированно равно navigator.language.
32В Firefox для Android, значение свойства navigator.languages берется из предпочтения intl.accept_languages.
24 10.3 3.0
37До версии 65, navigator.languages[0] не гарантированно равно navigator.language.

См. также

  • navigator.language
  • navigator
  • событие languagechange
  • Intl

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/languages

Spec-Zone.ru

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