Utility FunctionsLocales

getLocaleName

Справочник по API для автономной функции getLocaleName

Обзор

Отдельная функция getLocaleName возвращает отображаемое имя локали по её коду и не требует создания экземпляра класса GT. Она использует API Intl.DisplayNames, чтобы предоставлять локализованные названия локалей для любого допустимого кода по стандарту BCP‑47.

import { getLocaleName } from 'generaltranslation';

const name = getLocaleName('fr-CA', 'en');
console.log(name); // «французский (Канада)»

Ссылка

Параметры

Prop

Type

Описание параметров

ПараметрОписание
localeКод локали в формате BCP‑47, для которого нужно получить отображаемое имя
defaultLocaleЛокаль, используемая для локализации отображаемого имени (по умолчанию «en»)
customMappingНеобязательное пользовательское сопоставление кодов и названий локалей

Возвращает

string — локализованное имя языка/региона.


Поведение

Определение языка отображения

Функция локализует названия в таком порядке приоритетов:

  1. Параметр defaultLocale (если указан)
  2. Локаль библиотеки по умолчанию («en»)

Интеграция пользовательских сопоставлений

  • В первую очередь проверяются пользовательские сопоставления как для кодов локалей, так и для их названий
  • Поддерживается разрешение алиасов и пользовательские отображаемые названия
  • Для несопоставленных кодов выполняется откат к стандартному Intl.DisplayNames

Стратегия определения имени

  1. Пользовательское сопоставление имени (наивысший приоритет)
  2. Intl.DisplayNames в локали по умолчанию
  3. Intl.DisplayNames в локали библиотеки по умолчанию ('en')
  4. Сам код локали (как запасной вариант)

Примеры

import { getLocaleName } from 'generaltranslation';

// Англоязычные названия
console.log(getLocaleName('es', 'en')); // "Spanish (Spain)"
console.log(getLocaleName('ja', 'en')); // "Japanese (Japan)"
console.log(getLocaleName('zh', 'en')); // "Chinese (China)"

Формирование параметров локалей

import { getLocaleName, getLocaleEmoji } from 'generaltranslation';

function buildLocaleOptions(
  supportedLocales: string[],
  displayLocale: string = 'en'
) {
  return supportedLocales.map(locale => ({
    value: locale,
    label: getLocaleName(locale, displayLocale),
    emoji: getLocaleEmoji(locale)
  }));
}

const options = buildLocaleOptions([
  'en',
  'es',
  'fr',
  'de',
  'ja'
], 'en');

console.log(options);
// [
//   { value: 'en', label: 'Английский (США)', emoji: '🇺🇸' },
//   { value: 'es', label: 'Испанский (Испания)', emoji: '🇪🇸' },
//   ...
// ]

Примечания

  • Пользовательские соответствия имеют приоритет над стандартным Intl.DisplayNames
  • Если отображаемое имя определить нельзя, возвращается сам код локали
  • Параметр локали отображения определяет язык возвращаемого имени

Дальнейшие шаги

  • Получите эмодзи локали с помощью getLocaleEmoji
  • Используйте метод класса GT для операций с состоянием getLocaleName
  • Узнайте о типе CustomMapping

Насколько полезно это руководство?

getLocaleName