# gt-node: General Translation Node.js SDK: getRequestLocale
URL: https://generaltranslation.com/ru/docs/node/reference/functions/get-request-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Определяет наиболее подходящую поддерживаемую локаль из заголовка Accept-Language в запросе с помощью General Translation. Справочник API для getRequestLocale.

Извлекает предпочтительную локаль из заголовка `Accept-Language` запроса и сопоставляет её с локалями, указанными в вашей конфигурации. Используйте эту функцию, чтобы выбрать локаль для привязки с [`withGT`](/docs/node/reference/functions/with-gt).

## Обзор [#overview]

Передайте объект запроса в `getRequestLocale`. Функция вернёт наиболее подходящую поддерживаемую локаль или `defaultLocale`, если совпадение не найдено.

```ts
import { getRequestLocale } from 'gt-node';

const locale = getRequestLocale(req); // 'fr'
```

Сигнатура:

```ts
getRequestLocale(request: { headers: Record<string, string | string[] | undefined> }): string
```

*Примечание: перед использованием `getRequestLocale` вызовите [`initializeGT`](/docs/node/reference/functions/initialize-gt), чтобы функция знала, какие локали поддерживаются.*

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

* **Разбор header.** Разбирает header `Accept-Language` запроса и определяет наиболее подходящее значение среди настроенных `locales`.
* **Резервный вариант.** Если ни одна поддерживаемая локаль не подходит, возвращается настроенная `defaultLocale`.
* **Независимость от фреймворка.** Работает с любым фреймворком, который предоставляет headers в виде `Record<string, string | string[] | undefined>`, включая Express и Fastify.

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

| Параметр              | Описание                                                               | Тип                                                            | Необязательный | По умолчанию |
| --------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------- | -------------- | ------------ |
| [`request`](#request) | Объект со свойством `headers`, в котором содержатся заголовки запроса. | `{ headers: Record<string, string \| string[] \| undefined> }` | Нет            | —            |

### `request` [#request]

**Тип** `{ headers: Record<string, string | string[] | undefined> }` · **Обязательно**

Объект со свойством `headers`, содержащим заголовки HTTP-запроса. Работает с Express, Fastify и любым фреймворком, в котором заголовки представлены как `Record<string, string | string[] | undefined>`.

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

**Тип** `string`

Наиболее подходящий код локали BCP 47 из локалей, настроенных в `locales`, или `defaultLocale`, если совпадение не найдено.

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

```ts title="middleware/locale.js"
// Express middleware
import { withGT, getRequestLocale } from 'gt-node';

export function localeMiddleware(req, res, next) {
  const locale = getRequestLocale(req);
  withGT(locale, () => next());
}
```

```ts title="middleware/locale.js"
// Комбинирование с другими стратегиями — использовать getRequestLocale как резервный вариант
import { withGT, getRequestLocale } from 'gt-node';

export function localeMiddleware(req, res, next) {
  const locale =
    req.query.lang ||
    req.cookies?.locale ||
    getRequestLocale(req);

  withGT(locale, () => next());
}
```

## Sitemap

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