This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Intl
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since сентябрь 2017 г..
* Some parts of this feature may have varying levels of support.
Сводка
ОбъектIntl является пространством имён для API интернационализации ECMAScript, предоставляющим языка-зависимое сравнение строк, форматирование чисел и дат со временем. Конструкторы объектовCollator,NumberFormat иDateTimeFormat являются свойствами объектаIntl. На этой странице описаны эти свойства, а также общая функциональность конструкторов интернационализации и других языка-зависимых функций.
In this article
Свойства
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 также позволяет использовать расширения, и одно из них имеет значение для функций интернационализации #"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" и которое выбирает один из алгоритмов сопоставления локалей, описанных выше.
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # intl-object> |