# gt-node: General Translation Node.js SDK: Быстрый старт URL: https://generaltranslation.com/ru/docs/node/quickstart.mdx --- title: Быстрый старт description: Установите библиотеку General Translation `gt-node` и переведите свой первый сервис на Node.js. related: links: - /docs/node/guides/translating-strings - /docs/node/guides/detecting-locale - /docs/node/guides/configuring - /docs/node/guides/storing-translations --- `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) — как зависимость для разработки. ```bash npm install gt-node express && npm install gt --save-dev ``` ```bash yarn add gt-node express && yarn add --dev gt ``` ```bash bun add gt-node express && bun add --dev gt ``` ```bash pnpm add gt-node express && pnpm add --save-dev gt ``` *Примечание: Приведённый ниже серверный код использует синтаксис `import` ES-модулей. Укажите `"type": "module"` в `package.json`, чтобы Node.js мог его запускать.* ### 2. Инициализируйте библиотеку Вызовите [`initializeGT`](/docs/node/reference/functions/initialize-gt) один раз при запуске, до начала обработки запросов. Передайте локали напрямую. Если поля учетных данных не указаны, `gt-node` считывает `GT_PROJECT_ID`, `GT_API_KEY` и `GT_DEV_API_KEY` из переменных окружения. ```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