Intl.Locale
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с сентября 2020 года.
Объект Intl.Locale — это стандартное встроенное свойство объекта Intl, представляющее идентификатор локали Unicode.
Попробуйте
const korean = new Intl.Locale("ko", {
script: "Kore",
region: "KR",
hourCycle: "h23",
calendar: "gregory",
});
const japanese = new Intl.Locale("ja-Jpan-JP-u-ca-japanese-hc-h12");
console.log(korean.baseName, japanese.baseName);
// Expected output: "ko-Kore-KR" "ja-Jpan-JP"
console.log(korean.hourCycle, japanese.hourCycle);
// Expected output: "h23" "h12"
Описание
Объект Intl.Locale был создан для упрощения работы с локалями Unicode. В Unicode локали представлены строкой, называемой идентификатором локали. Идентификатор локали состоит из идентификатора языка и тегов расширений. Идентификаторы языка — это основа локали, состоящая из под-тегов языка, письменности, региона и вариантов. Дополнительные сведения о локали хранятся в необязательных тегах расширений. Теги расширений содержат информацию о таких характеристиках локали, как тип календаря, формат часов и система счисления.
Традиционно API Intl использовал для представления локалей строки, как и Unicode. Это простое и компактное решение, которое хорошо работает. Однако добавление класса Locale упрощает разбор и изменение языка, письменности и региона, а также тегов расширений. Следующие свойства Intl.Locale соответствуют под-тегам идентификатора локали Unicode:
| Свойство | Соответствующий под-тег |
|---|---|
language | Идентификатор языка, первая часть |
script | Идентификатор языка, часть после language
|
region | Идентификатор языка, часть после script
|
variants | Идентификатор языка, часть после region
|
calendar |
ca (расширение) |
caseFirst |
kf (расширение) |
collation |
co (расширение) |
hourCycle |
hc (расширение) |
numberingSystem |
nu (расширение) |
numeric |
kn (расширение) |
Приведённая выше информация предоставляется в точности в исходном виде при создании объекта Locale без обращения к внешним базам данных. Объект Intl.Locale также предоставляет методы, возвращающие сведения о локали в реальном мире, например о доступных календарях, правилах сортировки и системах счисления.
Конструктор
-
Intl.Locale() - Создаёт новый объект
Locale.
Свойства экземпляра
Эти свойства определены в Intl.Locale.prototype и доступны всем экземплярам Intl.Locale.
-
Intl.Locale.prototype.baseName - Возвращает основные сведения о
Localeв виде подстроки полной строки данных. -
Intl.Locale.prototype.calendar - Возвращает часть
Locale, указывающую на календарную эру локали. -
Intl.Locale.prototype.caseFirst - Возвращает сведения о том, учитывается ли регистр в правилах сортировки локали.
-
Intl.Locale.prototype.collation - Возвращает тип сортировки для
Locale, используемый для упорядочивания строк согласно правилам локали. -
Intl.Locale.prototype.constructor - Функция-конструктор, создавшая объект экземпляра. Для экземпляров
Intl.Localeначальным значением является конструкторIntl.Locale. -
Intl.Locale.prototype.hourCycle - Возвращает принятый в локали формат отображения времени.
-
Intl.Locale.prototype.language - Возвращает язык, связанный с локалью.
-
Intl.Locale.prototype.numberingSystem - Возвращает систему счисления, используемую в локали.
-
Intl.Locale.prototype.numeric - Возвращает сведения о том, применяются ли в локали особые правила сортировки для числовых символов.
-
Intl.Locale.prototype.region - Возвращает регион мира (обычно страну), связанный с локалью.
-
Intl.Locale.prototype.script - Возвращает письменность, используемую для записи языка, указанного в локали.
-
Intl.Locale.prototype.variants - Возвращает под-теги вариантов (например, различные варианты орфографии), связанные с локалью.
-
Intl.Locale.prototype[Symbol.toStringTag] - Начальное значение свойства
[Symbol.toStringTag]— строка"Intl.Locale". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Intl.Locale.prototype.getCalendars() - Возвращает
Arrayдоступных идентификаторов календарей согласно правилам локали. -
Intl.Locale.prototype.getCollations() - Возвращает
Arrayтипов сортировки дляLocale. -
Intl.Locale.prototype.getHourCycles() - Возвращает
Arrayидентификаторов формата часов: 12-часовой формат ("h12"), японский 12-часовой формат ("h11"), 24-часовой формат ("h23") или неиспользуемый формат "h24". -
Intl.Locale.prototype.getNumberingSystems() - Возвращает
Arrayидентификаторов систем счисления, доступных согласно правилам локали. -
Intl.Locale.prototype.getTextInfo() - Возвращает часть, указывающую направление текста:
ltr(слева направо) илиrtl(справа налево). -
Intl.Locale.prototype.getTimeZones() - Возвращает
Arrayидентификаторов часовых поясов, связанных сLocale. -
Intl.Locale.prototype.getWeekInfo() - Возвращает элементы недель из UTS 35 согласно правилам локали: элементы недель UTS 35.
-
Intl.Locale.prototype.maximize() - Определяет наиболее вероятные значения языка, письменности и региона локали на основе имеющихся значений.
-
Intl.Locale.prototype.minimize() - Пытается удалить сведения о локали, которые были бы добавлены при вызове
maximize(). -
Intl.Locale.prototype.toString() - Возвращает полную строку идентификатора локали.
Примеры
Основное использование
В самом простом случае конструктор Intl.Locale() принимает строку идентификатора локали в качестве аргумента:
const us = new Intl.Locale("en-US");
Использование конструктора Locale с объектом параметров
Конструктор также принимает необязательный аргумент — объект конфигурации, который может содержать один из нескольких типов расширений. Например, задайте свойству hourCycle объекта конфигурации нужный формат часов, а затем передайте его конструктору:
const us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(us12hour.hourCycle); // Prints "h12"
Спецификации
Совместимость с браузерами
| Настольный компьютер | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | Bun | Deno | Node.js | |
Locale |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
Locale |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
baseName |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
calendar |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
caseFirst |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
collation |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
getCalendars |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getCollations |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getHourCycles |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getNumberingSystems |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getTextInfo |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getTimeZones |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
getWeekInfo |
130
99Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
115
85Реализовано как свойство доступа. |
17
15.4–previewРеализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
153 |
86
68Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
28.0
18.0Реализовано как свойство доступа. |
130
99Реализовано как свойство доступа. |
17
15.4Реализовано как свойство доступа. |
1.0.0 |
2.1
1.19–2.6.7Реализовано как свойство доступа. |
24.0.0
18.0.0Реализовано как свойство доступа. |
hourCycle |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
language |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
maximize |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
minimize |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
numberingSystem |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
numeric |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
region |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
script |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
toString |
74 |
79 |
75 |
62 |
14 |
74 |
79 |
53 |
14 |
11.0 |
74 |
14 |
1.0.0 |
1.8 |
12.0.0 |
variants |
149 |
149 |
141 |
133 |
26 |
149 |
141 |
100 |
26 |
Нет |
149 |
26 |
1.2.18 |
2.8 |
Нет |
См. также
- Полифил для
Intl.Localeв FormatJS Intl- Канонические идентификаторы локалей Unicode в спецификации языка разметки данных локалей Unicode
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale