Вебсправочник
Справочник JavaScript

Intl.DisplayNames: понятные названия языков и регионов

Intl.DisplayNames преобразует стандартные коды в названия выбранной локали. Это полезно для языкового переключателя или подписи региона без ручного словаря для каждой локализации.

Назначение

Intl.DisplayNames преобразует стандартные коды в названия выбранной локали. Это полезно для языкового переключателя или подписи региона без ручного словаря для каждой локализации.

Как это работает

Type определяет вид кода, например language или region. Локаль конструктора задаёт язык отображаемого названия. Поддержка локали проверяется отдельно; названия могут уточняться с обновлением языковых данных среды.

Пример

console.assert(Intl.DisplayNames.supportedLocalesOf(["ru"]).length === 1);
const languages = new Intl.DisplayNames("ru", {type:"language"});
const regions = new Intl.DisplayNames("ru", {type:"region"});
console.assert(typeof languages.of("en") === "string");
console.assert(languages.of("en") !== "en");
console.assert(typeof regions.of("US") === "string");
console.log(languages.of("en"), regions.of("US"));

Что должно получиться

Код en получает локализованное название на русском, код US обрабатывается как регион. Проверки не закрепляют конкретное написание названия, которое может измениться между версиями локализационных данных.

Граница применения и частая ошибка

Не передавайте код региона объекту с type:"language" в расчёте на автоматическое угадывание. Недопустимый код может вызвать RangeError. Локализованная подпись не должна заменять стабильный код в хранилище и обмене данными.

Самостоятельная проверка

Создайте отображение двух языков на русском и английском. Сохраните коды отдельно от подписей. Проверьте fallback для неподдерживаемых данных по контракту приложения и не используйте подпись как уникальный ключ.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.