Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского
Сводка
Объект 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' в этой спецификации. |
Стандарт | Изначальное определение. |
Совместимость с браузерами
| Компьютеры | Мобильные | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Intl | Chrome Полная поддержка 24 | Edge Полная поддержка 12 | Firefox Полная поддержка 29 | IE Полная поддержка 11 | Opera Полная поддержка 15 | Safari Полная поддержка 10 | WebView Android Полная поддержка 4.4 | Chrome Android Полная поддержка 25 | Firefox Android Полная поддержка 56 | Opera Android Полная поддержка 14 | Safari iOS Полная поддержка 10 | Samsung Internet Android Полная поддержка 1.5 | nodejs
Полная поддержка
0.12
|
Collator | Chrome Полная поддержка 24 | Edge Полная поддержка 12 | Firefox Полная поддержка 29 | IE Полная поддержка 11 | Opera Полная поддержка 15 | Safari Полная поддержка 10 | WebView Android Полная поддержка 4.4 | Chrome Android Полная поддержка 25 | Firefox Android Полная поддержка 56 | Opera Android Полная поддержка 14 | Safari iOS Полная поддержка 10 | Samsung Internet Android Полная поддержка 1.5 | nodejs
Полная поддержка
0.12
|
DateTimeFormat | Chrome Полная поддержка 24 | Edge Полная поддержка 12 | Firefox Полная поддержка 29 | IE Полная поддержка 11 | Opera Полная поддержка 15 | Safari Полная поддержка 10 | WebView Android Полная поддержка 4.4 | Chrome Android Полная поддержка 25 | Firefox Android Полная поддержка 56 | Opera Android Полная поддержка 14 | Safari iOS Полная поддержка 10 | Samsung Internet Android Полная поддержка 1.5 | nodejs
Полная поддержка
0.12
|
DisplayNames | Chrome Полная поддержка 81 | Edge Полная поддержка 81 | Firefox Нет поддержки Нет | IE Нет поддержки Нет | Opera Полная поддержка 68 | Safari Нет поддержки Нет | WebView Android Полная поддержка 81 | Chrome Android Полная поддержка 81 | Firefox Android Нет поддержки Нет | Opera Android Полная поддержка 58 | Safari iOS Нет поддержки Нет | Samsung Internet Android Нет поддержки Нет | nodejs Полная поддержка 14.0.0 |
getCanonicalLocales | Chrome Полная поддержка 54 | Edge Полная поддержка 16 | Firefox Полная поддержка 48 | IE Нет поддержки Нет | Opera Нет поддержки Нет | Safari Полная поддержка 11 | WebView Android Нет поддержки Нет | Chrome Android Нет поддержки Нет | Firefox Android Полная поддержка 56 | Opera Android Нет поддержки Нет | Safari iOS Полная поддержка 11 | Samsung Internet Android Нет поддержки Нет | nodejs Полная поддержка 7.0.0 |
ListFormat | Chrome Полная поддержка 72 | Edge Нет поддержки Нет | Firefox Полная поддержка 78 | IE Нет поддержки Нет | Opera Полная поддержка 60 | Safari Нет поддержки Нет | WebView Android Полная поддержка 72 | Chrome Android Полная поддержка 72 | Firefox Android Нет поддержки Нет | Opera Android Полная поддержка 51 | Safari iOS Нет поддержки Нет | Samsung Internet Android Нет поддержки Нет | nodejs
Полная поддержка
12.0.0
|
Locale | Chrome Полная поддержка 74 | Edge Полная поддержка 79 | Firefox Полная поддержка 75 | IE Нет поддержки Нет | Opera Полная поддержка 62 | Safari
Полная поддержка
14
| WebView Android Полная поддержка 74 | Chrome Android Полная поддержка 74 | Firefox Android Нет поддержки Нет | Opera Android Полная поддержка 53 | Safari iOS
Полная поддержка
14
| Samsung Internet Android Полная поддержка 11.0 | nodejs
Полная поддержка
12.0.0
|
NumberFormat | Chrome Полная поддержка 24 | Edge Полная поддержка 12 | Firefox Полная поддержка 29 | IE Полная поддержка 11 | Opera Полная поддержка 15 | Safari Полная поддержка 10 | WebView Android Полная поддержка 4.4 | Chrome Android Полная поддержка 25 | Firefox Android Полная поддержка 56 | Opera Android Полная поддержка 14 | Safari iOS Полная поддержка 10 | Samsung Internet Android Полная поддержка 1.5 | nodejs
Полная поддержка
0.12
|
PluralRules | Chrome Полная поддержка 63 | Edge Полная поддержка 18 | Firefox Полная поддержка 58 | IE Нет поддержки Нет | Opera Полная поддержка 50 | Safari Полная поддержка 13 | WebView Android Полная поддержка 63 | Chrome Android Полная поддержка 63 | Firefox Android Полная поддержка 58 | Opera Android Полная поддержка 46 | Safari iOS Полная поддержка 13 | Samsung Internet Android Полная поддержка 8.0 | nodejs
Полная поддержка
10.0.0
|
RelativeTimeFormat | Chrome Полная поддержка 71 | Edge Полная поддержка 79 | Firefox Полная поддержка 65 | IE Нет поддержки Нет | Opera Полная поддержка 58 | Safari Полная поддержка 14 | WebView Android Полная поддержка 71 | Chrome Android Полная поддержка 71 | Firefox Android Полная поддержка 65 | Opera Android Полная поддержка 50 | Safari iOS Полная поддержка 14 | Samsung Internet Android Полная поддержка 10.0 | nodejs
Полная поддержка
12.0.0
|
Легенда
- Полная поддержка
- Полная поддержка
- Нет поддержки
- Нет поддержки
- Экспериментальная. Ожидаемое поведение может измениться в будущем.
- Экспериментальная. Ожидаемое поведение может измениться в будущем.
- Смотрите замечания реализации.
- Смотрите замечания реализации.