# gt-node: General Translation Node.js SDK: getTranslations
URL: https://generaltranslation.com/ru/docs/node/reference/functions/get-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
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<TFunctionType>

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 <id> 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<TFunctionType>`

Промис возвращает функцию `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).

## Sitemap

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