Intl

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

* Some parts of this feature may have varying levels of support.

Сводка

Объект 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" и которое выбирает один из алгоритмов сопоставления локалей, описанных выше.

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

Specification
ECMAScript® 2025 Internationalization API Specification
# intl-object

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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Intl
Collator
Collator() constructor
options.caseFirst parameter
options.collation parameter
options.ignorePunctuation parameter
options.localeMatcher parameter
options.numeric parameter
options.sensitivity parameter
options.usage parameter
Collator.compare
Collator.resolvedOptions
Collator.supportedLocalesOf
DateTimeFormat
DateTimeFormat() constructor
Supports normative optional ChainDateTimeFormat behavior
locales parameter
options parameter
options.calendar parameter
options.dateStyle parameter
options.dayPeriod parameter
options.fractionalSecondDigits parameter
options.hourCycle parameter
options.numberingSystem parameter
options.timeStyle parameter
options.timeZoneName parameter
shortGeneric/longGeneric/shortOffset/longOffset as options.timeZoneName option
options.timeZone parameter
IANA time zone names in options.timeZone option
DateTimeFormat.format
DateTimeFormat.formatRange
DateTimeFormat.formatRangeToParts
DateTimeFormat.formatToParts
DateTimeFormat.resolvedOptions
computed timeZone
DateTimeFormat.supportedLocalesOf
DisplayNames
DisplayNames() constructor
DisplayNames.of
DisplayNames.resolvedOptions
DisplayNames.supportedLocalesOf
DurationFormat
DurationFormat() constructor
DurationFormat.format
DurationFormat.formatToParts
DurationFormat.resolvedOptions
DurationFormat.supportedLocalesOf
ListFormat
ListFormat() constructor
ListFormat.format
ListFormat.formatToParts
ListFormat.resolvedOptions
ListFormat.supportedLocalesOf
Locale
Locale() constructor
Locale.baseName
Locale.calendar
Locale.caseFirst
Locale.collation
Locale.getCalendars
Locale.getCollations
Locale.getHourCycles
Locale.getNumberingSystems
Locale.getTextInfo
Locale.getTimeZones
Locale.getWeekInfo
Locale.hourCycle
Locale.language
Locale.maximize
Locale.minimize
Locale.numberingSystem
Locale.numeric
Locale.region
Locale.script
Locale.toString
NumberFormat
NumberFormat() constructor
Supports normative optional ChainNumberFormat behavior
locales parameter
options parameter
options.compactDisplay parameter
options.currencyDisplay parameter
options.currencySign parameter
options.currency parameter
options.localeMatcher parameter
options.maximumFractionDigits parameter
options.maximumSignificantDigits parameter
options.minimumFractionDigits parameter
options.minimumIntegerDigits parameter
options.minimumSignificantDigits parameter
options.notation parameter
options.numberingSystem parameter
options.roundingIncrement parameter
options.roundingMode parameter
options.roundingPriority parameter
options.signDisplay parameter
negative value
options.style parameter
options.trailingZeroDisplay parameter
options.unitDisplay parameter
options.unit parameter
options.useGrouping parameter
options.useGrouping parameter accepts: 'always', 'auto', 'min2' (in addition to: true and false)
NumberFormat.format
number param string value is decimal (not Number)
NumberFormat.formatRange
NumberFormat.formatRangeToParts
NumberFormat.formatToParts
NumberFormat.resolvedOptions
NumberFormat.supportedLocalesOf
PluralRules
PluralRules() constructor
options parameter
options.roundingIncrement parameter
options.roundingMode parameter
options.roundingPriority parameter
options.trailingZeroDisplay parameter
Experimental
PluralRules.resolvedOptions
PluralRules.select
PluralRules.selectRange
PluralRules.supportedLocalesOf
RelativeTimeFormat
RelativeTimeFormat() constructor
locales parameter
RelativeTimeFormat.format
RelativeTimeFormat.formatToParts
RelativeTimeFormat.resolvedOptions
RelativeTimeFormat.supportedLocalesOf
Segmenter
Segmenter() constructor
Segmenter.resolvedOptions
Segmenter.segment
Segmenter.supportedLocalesOf
Segments
[Symbol.iterator]
Segments.containing
getCanonicalLocales
supportedValuesOf

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
Uses a non-standard name.
Has more compatibility info.

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