# gt-node: General Translation Node.js SDK: Определение локали запроса
URL: https://generaltranslation.com/ru/docs/node/guides/detecting-locale.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как определить и привязать локаль для каждого запроса с помощью General Translation в gt-node.

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

## Привяжите локаль к `withGT` [#with-gt]

Оберните обработку запроса в `withGT(locale, fn)`. Эта функция сохраняет локаль на время выполнения запроса, чтобы [`getGT`](/docs/node/reference/functions/get-gt), [`getMessages`](/docs/node/reference/functions/get-messages), [`tx`](/docs/node/reference/functions/tx) и [`getLocale`](/docs/node/reference/functions/get-locale) разрешали относительно неё.

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

app.use((req, res, next) => withGT(resolveLocale(req), () => next()));
```

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

## Определение по `Accept-Language` [#accept-language]

Используйте [`getRequestLocale`](/docs/node/reference/functions/get-request-locale), чтобы выбрать наиболее подходящую поддерживаемую локаль на основе заголовка `Accept-Language` в запросе, а если это не удастся — использовать локаль по умолчанию.

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

app.use((req, res, next) => withGT(getRequestLocale(req), () => next()));
```

## Определяйте по собственным сигналам [#custom]

Чтобы учесть явный выбор пользователя, разрешите локаль самостоятельно — например, по cookie-файлу или сегменту пути — а в качестве запасного варианта используйте [`getRequestLocale`](/docs/node/reference/functions/get-request-locale). Передайте результат в [`withGT`](/docs/node/reference/functions/with-gt).

```ts
function resolveLocale(req) {
  return req.cookies?.locale || getRequestLocale(req);
}

app.use((req, res, next) => withGT(resolveLocale(req), () => next()));
```

[`withGT`](/docs/node/reference/functions/with-gt) разрешает переданное значение с настроенными `locales`, поэтому неподдерживаемая локаль заменяется локалью по умолчанию. Активную локаль можно получить в любом месте запроса с помощью [`getLocale`](/docs/node/reference/functions/get-locale).

## Next steps

- /docs/node/guides/translating-strings
- /docs/node/guides/configuring
- /docs/node/guides/storing-translations

## Sitemap

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