# gt-node: General Translation Node.js SDK: getGT
URL: https://generaltranslation.com/ru/docs/node/reference/functions/get-gt.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Получите функцию General Translation для локали текущего запроса, чтобы переводить встроенные строки. Справочник API для getGT.

Асинхронная функция, которая возвращает функцию перевода для локали текущего запроса. Она находит переводы, зарегистрированные на этапе build time компилятором General Translation, и использует исходную строку, если перевод не найден.

## Обзор [#overview]

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

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

const gt = await getGT();
const greeting = gt('Hello, world!');
```

Сигнатура:

```ts
getGT(): Promise<GTFunctionType>

type GTFunctionType = (message: string, options?: GTTranslationOptions) => string;
```

*Примечание: `getGT` нужно вызывать внутри callback [`withGT`](/docs/node/reference/functions/with-gt), чтобы он понимал, какую локаль использовать. Он также принимает внутренний аргумент `_messages`, который компилятор использует для горячей перезагрузки в режиме разработки; передавать его напрямую не нужно.*

## Как это работает [#how-it-works]

* **Переводы на этапе сборки.** `getGT` возвращает функцию перевода для сборки. Строки переводятся в процессе CD до развертывания, поэтому запросы в production получают кэшированные переводы без лишнего сетевого запроса.
* **Разработка.** В режиме разработки переводы выполняются по запросу и требуют ключ Dev API.
* **Резервный вариант.** Если перевод не найден, возвращается исходная (интерполированная) строка.
* **Интерполяция.** Используйте заполнители `{variableName}` в строке и передавайте значения в объекте параметров. `gt-node` поддерживает [ICU message format](https://unicode-org.github.io/icu/userguide/format_parse/messages/) для расширенного форматирования.

## Параметры [#parameters]

`getGT` не принимает параметров. Возвращаемая функция `gt` принимает:

| Параметр              | Описание                                      | Тип                    | Необязательный | По умолчанию |
| --------------------- | --------------------------------------------- | ---------------------- | -------------- | ------------ |
| [`message`](#message) | Строка для перевода.                          | `string`               | Нет            | —            |
| [`options`](#options) | Переменные интерполяции и параметры перевода. | `GTTranslationOptions` | Да             | `{}`         |

### `message` [#message]

**Тип** `string` · **Обязательно**

Строка для перевода. Может содержать заполнители `{variable}` для интерполяции ICU.

### `options` [#options]

**Тип** `GTTranslationOptions` · **Необязательно**

Параметры перевода и переменные для интерполяции:

* `$context?: string` — дополнительный контекст, помогающий устранить неоднозначность при переводе.
* `$id?: string` — пользовательский ID для записи перевода.
* `$locale?: string` — переопределяет локаль запроса для этого вызова.
* `$format?: string` — формат сообщения. По умолчанию — `'ICU'`.
* `$maxChars?: number` — максимальное положительное целое число, запрашиваемое у инструмента перевода. При необходимости загруженный перевод обрезается до этой длины.
* `$requiresReview?: boolean` — требуется ли утверждение перевода перед использованием.
* Любые другие ключи рассматриваются как значения для интерполяции в строку с использованием синтаксиса `{key}`.

## Возвращает [#returns]

**Тип** `Promise<GTFunctionType>`

После выполнения промис возвращает функцию перевода `gt`. Вызов `gt(message, options?)` возвращает переведённую строку или исходную (интерполированную) строку, если перевод не найден.

## Примеры [#examples]

```ts title="handler.js"
// Простой перевод
import { withGT, getGT } from 'gt-node';

function handleRequest(locale) {
  return withGT(locale, async () => {
    const gt = await getGT();
    return gt('Hello, world!');
  });
}
```

```ts title="handler.js"
// С переменными — используйте {name} в строке и передавайте значения в объекте параметров
import { withGT, getGT } from 'gt-node';

function handleGreeting(locale, name) {
  return withGT(locale, async () => {
    const gt = await getGT();
    return gt('Hello, {name}!', { name });
  });
}
```

```ts title="handler.js"
// С форматом ICU message format
const gt = await getGT();
const balance = gt(
  'Your balance: {amount, number, ::currency/USD}',
  { amount: 1234.56 }
);
```

## Заметки [#notes]

* `getGT` возвращает функцию перевода на этапе сборки; строки переводятся в процессе CD перед развертыванием.
* Во время разработки переводы выполняются по запросу и требуют ключа Dev API.
* Если перевод не найден, в качестве резервного варианта возвращается исходная строка.
* Для строк, известных только во время выполнения, используйте [`tx`](/docs/node/reference/functions/tx); для строк, зарегистрированных на уровне модуля, используйте [`msg`](/docs/node/reference/functions/msg) вместе с [`getMessages`](/docs/node/reference/functions/get-messages).

## Sitemap

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