# gt-node: General Translation Node.js SDK: Быстрый старт
URL: https://generaltranslation.com/ru/docs/node/quickstart.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Установите библиотеку General Translation `gt-node` и переведите свой первый сервис на Node.js.

`gt-node` переводит строки в Node.js-серверах и сервисах. Вы один раз инициализируете библиотеку, привязываете локаль для каждого входящего запроса и переводите строки в обработчиках.

Используйте `gt-node` для серверных сервисов, например API на Express или Fastify. Для приложений React используйте [`gt-react`](/docs/react/react-quickstart); для Next.js — [`gt-next`](/docs/react/nextjs-quickstart).

*Примечание: `gt-node` требует Node.js 18 или выше. Привязка локали на уровне запроса использует `AsyncLocalStorage` из `node:async_hooks`.*

## Что делает gt-node [#what-it-does]

`gt-node` предоставляет:

* **Перевод строк** с [`getGT`](/docs/node/reference/functions/get-gt) — для строк в рамках обработчика.
* **Зарегистрированные сообщения** с [`msg`](/docs/node/reference/functions/msg) и [`getMessages`](/docs/node/reference/functions/get-messages) — для общих констант и ошибок.
* **Перевод во время выполнения** с [`tx`](/docs/node/reference/functions/tx) — для динамического контента.
* **Привязку локали к запросу** с [`withGT`](/docs/node/reference/functions/with-gt), а также вспомогательные функции для определения локали запроса.

## Быстрый старт [#quickstart]

Установите библиотеку, инициализируйте её, привяжите локаль для каждого запроса и переведите строку.

### 1. Установите `gt-node`

Установите `gt-node` и Express как зависимости, а [`gt` CLI](/docs/cli/quickstart) — как зависимость для разработки.

<Tabs items={['npm', 'yarn', 'bun', 'pnpm']}>
  <Tab value="npm">
    ```bash
    npm install gt-node express && npm install gt --save-dev
    ```
  </Tab>

  <Tab value="yarn">
    ```bash
    yarn add gt-node express && yarn add --dev gt
    ```
  </Tab>

  <Tab value="bun">
    ```bash
    bun add gt-node express && bun add --dev gt
    ```
  </Tab>

  <Tab value="pnpm">
    ```bash
    pnpm add gt-node express && pnpm add --save-dev gt
    ```
  </Tab>
</Tabs>

*Примечание: Приведённый ниже серверный код использует синтаксис `import` ES-модулей. Укажите `"type": "module"` в `package.json`, чтобы Node.js мог его запускать.*

### 2. Инициализируйте библиотеку

Передайте ID проекта и API-ключ для разработки процессу Node.js:

```bash
export GT_PROJECT_ID="your-project-id"
export GT_DEV_API_KEY="gtx-dev-..."
```

Вызовите [`initializeGT`](/docs/node/reference/functions/initialize-gt) один раз при запуске, до начала обработки запросов. Передайте локали напрямую. Если поля учетных данных не указаны, `gt-node` считывает `GT_PROJECT_ID`, `GT_API_KEY` и `GT_DEV_API_KEY` из переменных окружения; файл `gt.config.json` автоматически не считывается.

```ts title="server.js"
import { initializeGT } from 'gt-node';

initializeGT({
  defaultLocale: 'en',
  locales: ['en', 'es', 'fr'],
});
```

### 3. Привяжите локаль запроса

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

```js title="server.js"
import express from 'express';
import { withGT, getRequestLocale } from 'gt-node';

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

### 4. Переведите строку

Внутри обработчика дождитесь [`getGT`](/docs/node/reference/functions/get-gt), чтобы получить функцию перевода для локали запроса, а затем переводите строки. Интерполируйте значения с помощью ICU-плейсхолдеров.

```js title="server.js"
import { getGT } from 'gt-node';

app.get('/api/greeting', async (req, res) => {
  const gt = await getGT();
  res.json({ message: gt('Hello, {name}!', { name: 'Alice' }) });
});

app.listen(3000, () => console.log('Listening on http://localhost:3000'));
```

### 5. Запустите и проверьте

Объедините фрагменты кода из шагов 2–4 в один файл `server.js`, затем запустите сервер. До того как вы сгенерируете переводы, обработчик будет возвращать исходную строку — это подтверждает, что сервис настроен правильно.

```bash
node server.js
```

В другом окне терминала отправьте запрос:

```bash
curl http://localhost:3000/api/greeting
```

```json title="Output"
{"message":"Hello, Alice!"}
```

### 6. Сгенерируйте переводы

Запустите CLI перед деплоем в production, чтобы переводы были доступны во время выполнения.

```bash
npx gt translate
```

*Примечание: [`gt translate`](/docs/cli/reference/commands/translate) читает `gt.config.json` и требует ID проекта и API-ключ. Сначала выполните [`npx gt init`](/docs/cli/reference/commands/init), чтобы создать их.*

(См. [Перевод строк](/docs/node/guides/translating-strings), чтобы понять, когда использовать [`getGT`](/docs/node/reference/functions/get-gt), [`msg`](/docs/node/reference/functions/msg) и [`tx`](/docs/node/reference/functions/tx), а сведения об учетных данных и доставке — в [Настройка gt-node](/docs/node/guides/configuring)).

## Next steps

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

## Sitemap

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