# General Translation Platform: getLocaleName
URL: https://generaltranslation.com/ru/docs/platform/core/reference/utility-functions/locales/get-locale-name.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Возвращает понятное человеку имя локали без экземпляра GT. Справочник API для getLocaleName.

[`getLocaleName`](/docs/platform/core/reference/gt-class-methods/locales/get-locale-name) — это отдельная вспомогательная функция из основной библиотеки General Translation, которая возвращает отображаемое имя для кода локали. Она использует API `Intl.DisplayNames` для получения локализованного имени любого допустимого кода локали BCP-47.

## Обзор [#overview]

Импортируйте `getLocaleName` напрямую из `generaltranslation` и вызовите её, передав код локали и необязательную локаль для отображения. Для этого не нужен API Key или экземпляр [GT](/docs/platform/core/reference/gt-class/constructor). Чтобы использовать эквивалентный вариант через экземпляр, вызовите метод [`getLocaleName`](/docs/platform/core/reference/gt-class-methods/locales/get-locale-name) у экземпляра [`GT`](/docs/platform/core/reference/gt-class/constructor).

```typescript
import { getLocaleName } from 'generaltranslation';

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

Сигнатура:

```typescript
getLocaleName(
  locale: string,
  defaultLocale?: string,
  customMapping?: CustomMapping
): string
```

## Как это работает [#how-it-works]

### Определение языка интерфейса

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

1. Параметр `defaultLocale`, если он указан.
2. Локаль библиотеки по умолчанию — `en`.

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

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

### Стратегия разрешения имен

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

*Примечание: отображаемое имя использует диалектную форму CLDR, поэтому `fr-CA` разрешается как «канадский французский», а `es-ES` — как «европейский испанский», а не как «французский (Канада)» или «испанский (Испания)». Базовый язык, такой как `es`, разрешается как «испанский», без указания региона.*

## Параметры [#parameters]

| Параметр                           | Описание                                                          | Тип                                                                   | Необязательный | По умолчанию |
| ---------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------- | -------------- | ------------ |
| [`locale`](#locale)                | Код локали BCP-47, для которого нужно получить отображаемое имя. | `string`                                                              | Нет            | —            |
| [`defaultLocale`](#default-locale) | Локаль, используемая для локализации отображаемого имени.         | `string`                                                              | Да             | `en`         |
| [`customMapping`](#custom-mapping) | Пользовательское сопоставление кодов и названий локалей.          | [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) | Да             | —            |

### `locale` [#locale]

**Тип** `string` · **Обязательно**

Код локали BCP-47, для которой нужно получить отображаемое имя.

### `defaultLocale` [#default-locale]

**Тип** `string` · **Необязательно** · **По умолчанию** `en`

Локаль, используемая для локализации отображаемого имени в возвращаемом значении.

### `customMapping` [#custom-mapping]

**Тип** [`CustomMapping`](/docs/platform/core/reference/types/custom-mapping) · **Необязательно**

Необязательное пользовательское сопоставление кодов и названий локалей.

## Возвращает [#returns]

**Тип** `string`

Локализованное имя локали для отображения. Возвращает пустую строку, если определить отображаемое имя не удалось.

## Примеры [#examples]

```typescript
import { getLocaleName } from 'generaltranslation';

// Названия на английском языке
console.log(getLocaleName('es', 'en')); // "Spanish"
console.log(getLocaleName('ja', 'en')); // "Japanese"
console.log(getLocaleName('zh', 'en')); // "Chinese"
console.log(getLocaleName('fr-CA', 'en')); // "Canadian French"
console.log(getLocaleName('es-ES', 'en')); // "European Spanish"
```

```typescript
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: 'English', emoji: '🇺🇸' },
//   { value: 'es', label: 'Spanish', emoji: '🇪🇸' },
//   ...
// ]
```

## Примечания [#notes]

* Пользовательские сопоставления имеют приоритет над стандартными `Intl.DisplayNames`.
* Возвращает пустую строку, если не удаётся определить отображаемое имя.
* Параметр `defaultLocale` определяет язык возвращаемого названия.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
