# gt-node: General Translation Node.js SDK: getTranslations URL: https://generaltranslation.com/ru/docs/node/reference/functions/get-translations.mdx --- title: getTranslations description: Получить резолвер словаря General Translation для локали текущего запроса. Справочник API по getTranslations. --- Асинхронная функция, которая возвращает функцию `t` для получения записей словаря по id. Используйте её со словарём, настроенным через [`initializeGT`](/docs/node/reference/functions/initialize-gt), чтобы переводить централизованный текст на основе ключей для каждого запроса. ## Обзор [#overview] В области [`withGT`](/docs/node/reference/functions/with-gt) вызовите `await getTranslations`, чтобы получить синхронную функцию `t(id, options?)`, а затем искать записи словаря по id. ```ts import { getTranslations } from 'gt-node'; const t = await getTranslations(); const title = t('page.title'); ``` Сигнатура: ```ts getTranslations(rootId?: string): Promise type TFunctionType = ((id: string, options?: TranslationVariables) => string) & { obj: (id: string) => DictionaryObjectTranslation; }; ``` *Примечание: `getTranslations` необходимо вызывать внутри колбэка [`withGT`](/docs/node/reference/functions/with-gt), чтобы функция знала, какую локаль использовать; также требуется `dictionary` (или [`loadDictionary`](/docs/react/reference/functions/load-dictionary)), настроенный в [`initializeGT`](/docs/node/reference/functions/initialize-gt).* ## Как это работает [#how-it-works] * **Поиск в словаре.** `t(id)` находит запись по `id` в словаре и возвращает её перевод для активной локали, а если перевода нет — использует исходную запись. * **Неизвестные id приводят к ошибке.** Если в исходном словаре нет записи для `id`, `t(id)` выдаёт ошибку `Dictionary entry cannot be found`. Это единственный путь перевода в `gt-node`, который выдаёт ошибку вместо возврата исходной строки. * **Область root.** Передайте `rootId`, чтобы выполнять все поиски в пределах префикса, так что `getTranslations('page')` позволит вызывать `t('title')` вместо `t('page.title')`. * **Интерполяция.** Передайте переменные в объекте параметров, чтобы интерполировать их в запись с помощью синтаксиса `{key}`. * **Поддеревья объектов.** `t.obj(id)` возвращает вложенное поддерево словаря как обычный объект с переведёнными строками. ## Параметры [#parameters] `getTranslations` принимает необязательный `rootId`. Возвращаемая функция `t` принимает: | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------------------- | --------------------------------------------- | ---------------------- | -------------- | ------------ | | [`rootId`](#root-id) | Префикс, применяемый к каждому id поиска. | `string` | Да | — | | [`id`](#id) | id записи словаря, которую нужно найти. | `string` | Нет | — | | [`options`](#options) | Значения переменных для подстановки в запись. | `TranslationVariables` | Да | `{}` | ### `rootId` [#root-id] **Тип** `string` · **Необязательный** Префикс, который добавляется к каждому `id`, переданному в `t`. Если он задан, `t('title')` будет обращаться к `rootId.title`. ### `id` [#id] **Тип** `string` · **Обязательно** id записи словаря, которую нужно получить, используя точечную нотацию для вложенных записей (например, `'page.title'`). ### `options` [#options] **Тип** `TranslationVariables` · **Необязательно** Объект со значениями переменных для интерполяции в итоговую запись с использованием синтаксиса `{key}`. ## Возвращает [#returns] **Тип** `Promise` Промис возвращает функцию `t`. Вызов `t(id, options?)` возвращает переведённую строку, а `t.obj(id)` — переведённое поддерево объекта. ## Примеры [#examples] ```ts title="server.js" // Настройка словаря при запуске import { initializeGT } from 'gt-node'; initializeGT({ defaultLocale: 'en', locales: ['en', 'es', 'fr'], dictionary: { page: { title: 'Welcome', greeting: 'Hello, {name}!' }, }, }); ``` ```ts title="handler.js" // Получить записи словаря для локали запроса import { withGT, getTranslations } from 'gt-node'; function handleRequest(locale) { return withGT(locale, async () => { const t = await getTranslations(); return { title: t('page.title'), greeting: t('page.greeting', { name: 'Alice' }), }; }); } ``` ```ts title="handler.js" // Ограничение поиска с помощью rootId const t = await getTranslations('page'); const title = t('title'); // разрешается в 'page.title' ``` ## Заметки [#notes] * Если id словаря неизвестен, будет выброшено исключение; следите за тем, чтобы ключи словаря в исходном тексте и в коде были синхронизированы. * Для inline-строк используйте [`getGT`](/docs/node/reference/functions/get-gt); для констант на уровне модуля используйте [`msg`](/docs/node/reference/functions/msg) вместе с [`getMessages`](/docs/node/reference/functions/get-messages).