# node: withGT
URL: https://generaltranslation.com/ru/docs/node/api/with-gt.mdx
---
title: withGT
description: Справка по API для обёртки запросов withGT
---
## Обзор
Функция `withGT` оборачивает колбэк, чтобы передать функциям перевода контекст локали.
На сервере Node.js каждый запрос обычно обрабатывает другого пользователя с другой локалью.
`withGT` устанавливает локаль для всех функций перевода, вызываемых внутри колбэка.
```js
import { withGT } from 'gt-node';
app.get('/api/greeting', (req, res) => {
withGT(req.locale, () => {
// Функции перевода здесь используют req.locale
});
});
```
**Контекст запроса:**
`withGT` использует под капотом асинхронное локальное хранилище, чтобы привязать локаль к текущему запросу.
Все вызовы `getGT` и `getMessages` внутри callback будут использовать переданную локаль.
## Справочник
### Параметры
T',
optional: false,
},
}}
/>
### Описание
| Param | Description |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `locale` | [Код локали](/docs/core/locales) (например, `'es'`, `'fr-CA'`), который используется для переводов внутри колбэка. |
| `fn` | Функция колбэка, которая выполняется в указанном контексте локали. Может быть синхронной или асинхронной. |
### Возвращает
`T` — значение, возвращаемое функцией колбэка `fn`.
***
## Примеры
### Middleware для Express
```js title="server.js"
import express from 'express';
import { initializeGT, withGT, getGT } from 'gt-node';
initializeGT({
defaultLocale: 'en-US',
locales: ['en-US', 'es', 'fr'],
projectId: process.env.GT_PROJECT_ID,
});
const app = express();
app.use((req, res, next) => {
const locale = req.headers['accept-language']?.split(',')[0] || 'en-US';
withGT(locale, () => {
next();
});
});
app.get('/api/greeting', async (req, res) => {
const gt = await getGT();
res.json({ message: gt('Hello, world!') });
});
```
### Обёртка для асинхронного обработчика
```js title="handler.js"
import { withGT, getGT } from 'gt-node';
export async function handleRequest(locale: string) {
return withGT(locale, async () => {
const gt = await getGT();
return gt('Welcome to our app!');
});
}
```
***
## Примечания
* `initializeGT` необходимо вызвать до использования `withGT`. В противном случае будет выброшена ошибка.
* Контекст локали ограничен колбэком и не распространяется на другие параллельные запросы.
* `withGT` работает как с синхронными, так и с асинхронными колбэками.
## Что дальше
* См. [`initializeGT`](/docs/node/api/initialize-gt), чтобы выполнить начальную настройку.
* См. [`getGT`](/docs/node/api/get-gt), чтобы переводить строки в контексте запроса.