Intl

Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского

Сводка

Объект Intl является пространством имён для API интернационализации ECMAScript, предосталяющим языко-зависимое сравнение строк, форматирование чисел и дат со временем. Конструкторы объектов Collator, NumberFormat и DateTimeFormat являются свойствами объекта Intl. На этой странице описаны эти свойства, а также общая функциональность конструкторов интернационализации и других языко-зависимых функций.

Свойства

Intl.Collator
Конструктор сортировщиков — объектов, включающих языко-зависимое сравнение строк.
Intl.DateTimeFormat
Конструктор объектов, включающих языко-зависимое форматирование даты и времени.
Intl.NumberFormat
Конструктор объектов, включающих языко-зависимое форматирование чисел.

Methods

Intl.getCanonicalLocales()
Returns canonical locale names.

Идентификация и согласование локали

Конструкторы интернационализации, а также некоторые языко-зависимые методы других конструкторов (перечисленные в разделе Смотрите также) используют общий шаблон для идентификации локалей и определения используемой локали: они все принимают аргументы locales и options и согласовывают запрошенную локаль (локали) с поддерживаемыми локалями согласно алгоритму, определённому свойством options.localeMatcher.

Аргумент locales

Аргумет locales должен быть либо строкой, содержащей языковую метку BCP 47, либо массивом таких языковых меток. Если аргумент locales не предоставлен или не определён, используется локаль по умолчанию среды выполнения.

Языковая метка BCP 47 однозначно определяет язык или локаль (разница между ними весьма расплывчата). В своей самой общей форме она может содержать в следующем порядке: код языка, код письменности и код страны, разделённые символами дефиса. Примеры:

  • "hi": хинди.
  • "de-AT": немецкий, используемый в Австрии.
  • "zh-Hans-CN": упрощённый китайский, используемый в Китае.

Подметки, определяющие языки, письменности, страны (регионы) и (используется не часто) варианты в языковых метках BCP 47 могут быть найдены в Реестре языковых подметок IANA.

BCP 47 также позволяет использовать расширения, и одно из них имеет значение для функций интернационализации JavaScript: это расширение "u" (Unicode). Оно может использоваться для запрашивания настраиваемого языко-зависимого поведения объектов Collator, NumberFormat или DateTimeFormat. Примеры:

  • "de-DE-u-co-phonebk": использовать вариант телефонной книги немецкого порядка сортировки, который расширяет гласные с умляутами до пар символов: ä → ae, ö → oe, ü → ue.
  • "th-TH-u-nu-thai": использовать тайские цифры (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) при форматировании чисел.
  • "ja-JP-u-ca-japanese": использовать японский календарь при форматировании даты и времени, так что 2013 год выражается 25-м годом периода Хэйсей или 平成25.

Согласование локали

Аргумент locales, после вырезания всех расширений Unicode, интерпретируется как приоритетный запрос из приложения. Среда выполнения сравнивает его с доступными локалями в выбирает наилучшую из имеющихся. Существует два алгоритма сравнения: сопоставление "lookup" (поиск) следует алгоритму поиска, определённому в BCP 47; сопоставление "best fit" (наилучший подходящий) позволяет среде выполнения предоставлять локаль, которая, как минимум, но возможно и лучше, подходит для запроса, нежели локаль, найденная с помощью алгоритма поиска. Если приложение не предоставляет аргумент locales или среда выполнения не имеет локали, соответствующей запросу, то используется локаль по умолчанию для среды выполнения. Метод сопоставления можно выбрать с помощью свойства аргумента options (смотрите ниже).

Если выбранная языковая метка содержит подстроку расширения Unicode, это расширение будет использоваться для настройки сконструированного объекта или поведения функции. Каждый конструктор или функция поддерживают только определённое подмножество ключей, определённых расширением Unicode, и поддерживаемые значения часто зависят от языковой метки. Например, ключ "co" (сравнение) поддерживается только объектом Collator, а его значение "phonebk" поддерживается только для немецкого языка.

Аргумент options

Аргумент options должен быть объектом со свойствами, которые различаются для конструкторов и функций. Если аргумент options не предоставлен или не определён, для всех свойств используются значения по умолчанию.

Одно свойство поддерживается для всех языко-зависимых конструкторов: свойство localeMatcher, чьим значением должна быть одна из строк "lookup" или "best fit" и которое выбирает один из алгоритмов сопоставления локалей, описанных выше.

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

Спецификация Статус Комментарии
ECMAScript Internationalization API 1.0 (ECMA-402)
Определение 'Intl' в этой спецификации.
Стандарт Изначальное определение.

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

Таблица совместимости на этой странице генерируется из структурированных данных. Чтобы внести свои изменения в эти данные, вы можете перейти на страницу https://github.com/mdn/browser-compat-data и отослать нам pull request.
Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
IntlChrome Полная поддержка 24Edge Полная поддержка 12Firefox Полная поддержка 29IE Полная поддержка 11Opera Полная поддержка 15Safari Полная поддержка 10WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 56Opera Android Полная поддержка 14Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 1.5nodejs Полная поддержка 0.12
Замечания
Полная поддержка 0.12
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the Intl APIs silently fall back to en-US. To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
CollatorChrome Полная поддержка 24Edge Полная поддержка 12Firefox Полная поддержка 29IE Полная поддержка 11Opera Полная поддержка 15Safari Полная поддержка 10WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 56Opera Android Полная поддержка 14Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 1.5nodejs Полная поддержка 0.12
Замечания
Полная поддержка 0.12
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
DateTimeFormatChrome Полная поддержка 24Edge Полная поддержка 12Firefox Полная поддержка 29IE Полная поддержка 11Opera Полная поддержка 15Safari Полная поддержка 10WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 56Opera Android Полная поддержка 14Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 1.5nodejs Полная поддержка 0.12
Замечания
Полная поддержка 0.12
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
DisplayNamesChrome Полная поддержка 81Edge Полная поддержка 81Firefox Нет поддержки НетIE Нет поддержки НетOpera Полная поддержка 68Safari Нет поддержки НетWebView Android Полная поддержка 81Chrome Android Полная поддержка 81Firefox Android Нет поддержки НетOpera Android Полная поддержка 58Safari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нетnodejs Полная поддержка 14.0.0
getCanonicalLocalesChrome Полная поддержка 54Edge Полная поддержка 16Firefox Полная поддержка 48IE Нет поддержки НетOpera Нет поддержки НетSafari Полная поддержка 11WebView Android Нет поддержки НетChrome Android Нет поддержки НетFirefox Android Полная поддержка 56Opera Android Нет поддержки НетSafari iOS Полная поддержка 11Samsung Internet Android Нет поддержки Нетnodejs Полная поддержка 7.0.0
ListFormat
Экспериментальная
Chrome Полная поддержка 72Edge Нет поддержки НетFirefox Полная поддержка 78IE Нет поддержки НетOpera Полная поддержка 60Safari Нет поддержки НетWebView Android Полная поддержка 72Chrome Android Полная поддержка 72Firefox Android Нет поддержки НетOpera Android Полная поддержка 51Safari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нетnodejs Полная поддержка 12.0.0
Замечания
Полная поддержка 12.0.0
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the ListFormat() constructor for more details.
LocaleChrome Полная поддержка 74Edge Полная поддержка 79Firefox Полная поддержка 75IE Нет поддержки НетOpera Полная поддержка 62Safari Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Safari 14 Technology Preview 107-111 returns a string instead of a Locale object from the minimize and maximize methods.
WebView Android Полная поддержка 74Chrome Android Полная поддержка 74Firefox Android Нет поддержки НетOpera Android Полная поддержка 53Safari iOS Полная поддержка 14
Замечания
Полная поддержка 14
Замечания
Замечания Safari 14 Technology Preview 107-111 returns a string instead of a Locale object from the minimize and maximize methods.
Samsung Internet Android Полная поддержка 11.0nodejs Полная поддержка 12.0.0
Замечания
Полная поддержка 12.0.0
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the Locale() constructor for more details.
NumberFormatChrome Полная поддержка 24Edge Полная поддержка 12Firefox Полная поддержка 29IE Полная поддержка 11Opera Полная поддержка 15Safari Полная поддержка 10WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 56Opera Android Полная поддержка 14Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 1.5nodejs Полная поддержка 0.12
Замечания
Полная поддержка 0.12
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the NumberFormat() constructor for more details.
PluralRulesChrome Полная поддержка 63Edge Полная поддержка 18Firefox Полная поддержка 58IE Нет поддержки НетOpera Полная поддержка 50Safari Полная поддержка 13WebView Android Полная поддержка 63Chrome Android Полная поддержка 63Firefox Android Полная поддержка 58Opera Android Полная поддержка 46Safari iOS Полная поддержка 13Samsung Internet Android Полная поддержка 8.0nodejs Полная поддержка 10.0.0
Замечания
Полная поддержка 10.0.0
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the PluralRules() constructor for more details.
RelativeTimeFormatChrome Полная поддержка 71Edge Полная поддержка 79Firefox Полная поддержка 65IE Нет поддержки НетOpera Полная поддержка 58Safari Полная поддержка 14WebView Android Полная поддержка 71Chrome Android Полная поддержка 71Firefox Android Полная поддержка 65Opera Android Полная поддержка 50Safari iOS Полная поддержка 14Samsung Internet Android Полная поддержка 10.0nodejs Полная поддержка 12.0.0
Замечания
Полная поддержка 12.0.0
Замечания
Замечания Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Экспериментальная. Ожидаемое поведение может измениться в будущем.
Смотрите замечания реализации.
Смотрите замечания реализации.

Смотрите также