# gt-node: General Translation Node.js SDK: getGT URL: https://generaltranslation.com/ru/docs/node/reference/functions/get-gt.mdx --- title: getGT 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 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` После выполнения промис возвращает функцию перевода `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).