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

[`standardizeLocale`](/docs/platform/core/reference/gt-class-methods/locales/standardize-locale) — это автономная служебная функция из Core library General Translation, которая приводит код локали BCP-47 к каноническому виду, исправляя регистр.

## Обзор [#overview]

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

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

// Нормализация регистра
console.log(standardizeLocale('EN-gb')); // 'en-GB'
console.log(standardizeLocale('fr-ca')); // 'fr-CA'

// Уже стандартизированные локали проходят без изменений
console.log(standardizeLocale('es-ES')); // 'es-ES'
```

Сигнатура:

```typescript
standardizeLocale(locale: string): string
```

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

* **Каноникализация.** Передаёт входное значение в `Intl.getCanonicalLocales` и возвращает первый результат в канонической форме, нормализуя регистр (язык — строчными буквами, регион — прописными, письменность — с заглавной буквы).
* **Резервный вариант.** Если входное значение не удаётся каноникализировать, исходная строка возвращается без изменений.

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

| Параметр            | Описание                                                | Тип      | Необязательный | По умолчанию |
| ------------------- | ------------------------------------------------------- | -------- | -------------- | ------------ |
| [`locale`](#locale) | Код локали BCP-47, который требуется стандартизировать. | `string` | Нет            | —            |

### `locale` [#locale]

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

Код локали BCP-47 для стандартизации.

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

**Тип** `string`

Стандартизованный код локали BCP-47 либо исходная строка без изменений, если её невозможно стандартизовать.

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

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

// Нормализует регистр в дефисных тегах
console.log(standardizeLocale('EN-gb')); // 'en-GB'
console.log(standardizeLocale('fr-ca')); // 'fr-CA'
console.log(standardizeLocale('en-us')); // 'en-US'

// Уже стандартизированные локали проходят без изменений
console.log(standardizeLocale('es-ES')); // 'es-ES'

// Входные данные, не поддающиеся канонизации, возвращаются без изменений
console.log(standardizeLocale('en_us')); // 'en_us' (underscore is not valid BCP-47)
console.log(standardizeLocale('not a locale')); // 'not a locale'
```

```typescript
import { standardizeLocale, isValidLocale } from 'generaltranslation';

// Нормализация пользовательского ввода
function processUserInput(input: string) {
  const standardized = standardizeLocale(input.trim());
  const isValid = isValidLocale(standardized);

  return {
    original: input,
    standardized,
    isValid,
  };
}

// Проверка различных входных данных
const inputs = ['EN-gb', 'FR-ca', 'invalid', 'zh-CN'];
inputs.forEach((input) => {
  console.log(processUserInput(input));
});
```

## Заметки [#notes]

* Нормализует регистр (язык — в нижнем регистре, регион — в верхнем) с помощью `Intl.getCanonicalLocales`.
* Возвращает входную строку без изменений, если её нельзя привести к канонической форме.
* Необходима для нормализации входных данных локали из различных источников.
* Не имеет внешних зависимостей, кроме API `Intl`.

## Sitemap

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