# gt-node: General Translation Node.js SDK: Перевод строк
URL: https://generaltranslation.com/ru/docs/node/guides/translating-strings.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Как переводить строки в обработчиках, зарегистрированные сообщения и динамический контент с помощью General Translation в gt-node.

`gt-node` предлагает три способа перевода строки. Какой из них использовать, зависит от того, где находится строка и известна ли она заранее.

*Примечание: все три выполняются в области [`withGT`](/docs/node/guides/detecting-locale), чтобы иметь доступ к локали запроса.*

## Переводите строки в обработчике с помощью `getGT` [#get-gt]

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

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

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

Это вариант по умолчанию для одноразовых строк. Добавьте `$context`, чтобы устранить неоднозначность термина.

## Повторно используйте зарегистрированные сообщения с `msg` [#msg]

Для строк, определённых вне обработчика — общих констант, сообщений об ошибках, перечислений, — зарегистрируйте их с помощью [`msg`](/docs/node/reference/functions/msg) на уровне модуля, а затем получайте через [`getMessages`](/docs/node/reference/functions/get-messages).

```ts
import { msg, getMessages } from 'gt-node';

const NOT_FOUND = msg('Resource not found.');

app.use(async (req, res) => {
  const m = await getMessages();
  res.status(404).json({ error: m(NOT_FOUND) });
});
```

## Переводите динамический контент с помощью `tx` [#tx]

Для контента, который нельзя определить заранее и который не был предварительно сгенерирован, используйте [`tx`](/docs/node/reference/functions/tx) для перевода во время выполнения. Если значения нет в кэше, `tx` выполняет сетевой запрос, поэтому используйте его только для действительно динамических строк.

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

const translated = await tx(`Status: ${status}`);
```

*Примечание: [`tx`](/docs/node/reference/functions/tx) не использует ICU-плейсхолдеры — подставляйте значения через шаблонный литерал перед вызовом.*

## Выберите подход [#choose]

* Разовые строки в обработчике → [`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).
* Централизованный текст по ключам → словарь с [`getTranslations`](/docs/node/reference/functions/get-translations).

## Next steps

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

## Sitemap

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