# node: getTranslations
URL: https://generaltranslation.com/ru/docs/node/api/get-translations.mdx
---
title: getTranslations
description: Справка по API функции getTranslations для перевода словаря
---
## Обзор
`getTranslations` возвращает функцию перевода `t`, которая извлекает записи из [словаря](/docs/next/guides/dictionaries).
Используйте её, чтобы переводить заранее заданные строки по ключу словаря.
```js
import { getTranslations } from 'gt-node';
const t = await getTranslations();
t('greeting.hello'); // "Hello!"
```
**Требуется контекст запроса:**
`getTranslations` нужно вызывать внутри колбэка [`withGT`](/docs/node/api/with-gt), чтобы функция знала, какую локаль использовать.
## Справочник
### Параметры
Нет.
### Возвращает
Промис, который возвращает функцию перевода `t`:
```ts
Promise
```
Функция `t` принимает ключ словаря и необязательные параметры интерполяции:
| Имя | Тип | Описание |
| ---------- | ------------------------------ | --------------------------------------------- |
| `id` | `string` | Путь к элементу словаря, разделённый точками. |
| `options?` | `DictionaryTranslationOptions` | Переменные для интерполяции. |
**Возвращает:** `string` — переведённый текст (или резервный текст на исходном языке).
Если ключ отсутствует в исходном словаре, `t()` выдаёт ошибку.
Если ключ есть в исходном словаре, но для текущей локали у него нет перевода, `t()` возвращает исходный текст.
### `t.obj()`
Возвращает всё поддерево словаря в виде объекта, а не одной строки.
```ts
t.obj(id: string): DictionaryObjectTranslation
```
| Имя | Тип | Описание |
| ---- | -------- | -------------------------------------------------------------- |
| `id` | `string` | Путь к поддереву словаря, сегменты которого разделены точками. |
**Возвращает:** Вложенный объект, соответствующий структуре словаря, с переведёнными значениями там, где они доступны, и резервными значениями на исходном языке во всех остальных случаях.
***
## Настройка
### Автоматический способ (рекомендуется)
Создайте файл `dictionary.json` в корневой папке проекта:
```json title="dictionary.json"
{
"greeting": {
"hello": "Hello!"
},
"user": {
"welcome": "Welcome, {name}!"
}
}
```
Когда вы запускаете `npx gtx translate`, CLI автоматически находит `dictionary.json` и переводит его для настроенных локалей.
Затем инициализируйте GT, передав словарь:
```ts
import { initializeGT } from 'gt-node';
import dictionary from './dictionary.json';
initializeGT({
dictionary,
defaultLocale: 'en-US',
locales: ['en-US', 'es', 'fr'],
});
```
### Пользовательский загрузчик словаря
Если вы сами управляете словарями переводов, передайте функцию `loadDictionary` в [`initializeGT`](/docs/node/api/initialize-gt):
```ts
import { initializeGT } from 'gt-node';
import dictionary from './dictionary.json';
initializeGT({
dictionary,
loadDictionary: async (locale) => {
const dict = await import(`./locales/${locale}.json`);
return dict.default;
},
});
```
Переводы, загруженные с помощью `loadDictionary`, имеют приоритет над переводами, сгенерированными GT.
***
## Примеры
### Основы использования
```ts
import { getTranslations } from 'gt-node';
const t = await getTranslations();
t('greeting.hello'); // "Hello!"
```
### Интерполяция переменных
```ts
const t = await getTranslations();
t('user.welcome', { name: 'Alice' }); // "Welcome, Alice!"
```
### Получение объекта с помощью `t.obj()`
```ts
const t = await getTranslations();
const errors = t.obj('errors');
// { notFound: "Page not found", unauthorized: "Access denied" }
```
***
## Примечания
* `getTranslations` — это аналог [`getMessages`](/docs/node/api/get-messages) на основе словаря; он используется для встроенных строк `msg()`.
* Эквивалент для Next.js см. в разделе [`getTranslations` в gt-next](/docs/next/api/dictionary/get-translations).