Spec-Zone.ru › JavaScript

Intl.DisplayNames.prototype.of()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна во всех браузерах с апреля 2021 года.

Метод of() экземпляров Intl.DisplayNames принимает код и возвращает строку на основе локали и параметров, указанных при создании этого объекта Intl.DisplayNames.

Попробуйте

const regionNamesInEnglish = new Intl.DisplayNames(["en"], { type: "region" });
const regionNamesInTraditionalChinese = new Intl.DisplayNames(["zh-Hant"], {
  type: "region",
});

console.log(regionNamesInEnglish.of("US"));
// Expected output: "United States"

console.log(regionNamesInTraditionalChinese.of("US"));
// Expected output: "美國"

Синтаксис

of(code)

Параметры

code
code, который нужно предоставить, зависит от type:
  • Если тип — "region", code должен быть либо двухбуквенным кодом региона ISO 3166, либо трехзначным географическим кодом региона UN M49. Он должен соответствовать грамматике unicode_region_subtag. Используйте коды в верхнем регистре (например, "US"), поскольку коды в нижнем регистре (например, "us") могут работать не везде.
  • Если тип — "script", code должен быть четырехбуквенным кодом сценария ISO 15924. Он должен соответствовать грамматике unicode_script_subtag.
  • Если тип — "language", code должен соответствовать нетерминалу unicode_language_id.
  • Если тип — "currency", code должен быть трехбуквенным кодом валюты ISO 4217. Он должен состоять ровно из трех буквенных символов.
  • Если тип — "dateTimeField", code должен быть одним из следующих: "era", "year", "quarter", "month", "weekOfYear", "weekday", "day", "dayPeriod", "hour", "minute", "second", "timeZoneName".
  • Если тип — "calendar", code должен быть ключом календаря. Он должен соответствовать грамматике type идентификатора локали Unicode.

Возвращаемое значение

Отформатированная строка, зависящая от языка, или undefined, если для входных данных нет информации и fallback равен "none".

Примечание: fallback используется только в том случае, если code имеет допустимую структуру. См. использование резервного варианта.

Исключения

RangeError
Выбрасывается, если code не имеет допустимой структуры для данного type.

Примеры

Использование метода of

const regionNames = new Intl.DisplayNames("en", { type: "region" });
regionNames.of("419"); // "Latin America"

const languageNames = new Intl.DisplayNames("en", { type: "language" });
languageNames.of("fr"); // "French"

const currencyNames = new Intl.DisplayNames("en", { type: "currency" });
currencyNames.of("EUR"); // "Euro"

const languageNamesStandard = new Intl.DisplayNames("fr", {
  type: "language",
  languageDisplay: "standard",
});
languageNamesStandard.of("fr-CA"); // "français (Canada)"

const languageNamesDialect = new Intl.DisplayNames("fr", {
  type: "language",
  languageDisplay: "dialect",
});
languageNamesDialect.of("fr-CA"); // "français canadien"

Использование резервного варианта

Когда Intl.DisplayNames создается с помощью fallback: "code", метод of() возвращает code, если входные данные выглядят допустимыми по структуре, но для них нет данных. Если fallback равен "none", возвращается undefined.

console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZL"),
); // "ZL"

console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "none" }).of("ZL"),
); // undefined

Однако это применяется только в том случае, если code имеет допустимую структуру. Например, если type равен "region", но code не соответствует грамматике unicode_region_subtag (2 буквенных символа или 3 цифровых символа), вместо использования резервного варианта напрямую выбрасывается RangeError.

console.log(
  new Intl.DisplayNames("en", { type: "region", fallback: "code" }).of("ZLC"),
); // throws RangeError: invalid value "ZLC" for option region

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

Спецификация
Спецификация ECMAScript® 2027 API интернационализации
# sec-Intl.DisplayNames.prototype.of

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

Настольные Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в iOS Samsung Internet WebView Android WebView в iOS Bun Deno Node.js
of
81
81
86
68
14.1
81
86
58
14.5
13.0
81
14.5
1.0.0
1.8
14.0.0

См. также

  • Intl.DisplayNames

© 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/DisplayNames/of

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API