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

Асинхронная функция, которая возвращает резолвер для предварительно зарегистрированных сообщений. Используйте её вместе с [`msg`](/docs/node/reference/functions/msg), чтобы регистрировать строки на этапе сборки и разрешать их переводы во время выполнения.

## Обзор [#overview]

Зарегистрируйте строки с помощью [`msg`](/docs/node/reference/functions/msg) на уровне модуля, затем внутри области [`withGT`](/docs/node/reference/functions/with-gt) дождитесь `getMessages`, чтобы получить синхронный резолвер `m(encodedMsg, options?)`.

```ts
import { msg, getMessages } from 'gt-node';

// Регистрация на этапе сборки (или на уровне модуля)
const greeting = msg('Hello, world!');

// Разрешение во время выполнения
const m = await getMessages();
const translated = m(greeting);
```

Сигнатура:

```ts
getMessages(): Promise<MFunctionType>

type MFunctionType = <T extends string | null | undefined>(
  encodedMsg: T,
  options?: GTTranslationOptions
) => T extends string ? string : T;
```

*Примечание: `getMessages` нужно вызывать внутри колбэка [`withGT`](/docs/node/reference/functions/with-gt), чтобы функция знала, какую локаль использовать.*

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

* **Двухэтапная схема.** [`msg`](/docs/node/reference/functions/msg) регистрирует строку для перевода на этапе сборки; `getMessages` разрешает её во время выполнения для активной локали.
* **Строки на уровне модуля.** Эта схема подходит для строк, определённых на уровне модуля, — констант, перечислений и сообщений об ошибках, — которые должны переводиться для каждого запроса.
* **Сквозная передача `null`.** Если в `m` передаётся `null` или `undefined`, он возвращает соответственно `null` или `undefined`.

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

`getMessages` не принимает параметров. Возвращаемый резолвер `m` принимает:

| Параметр                     | Описание                                                                                     | Type                          | Необязательный | По умолчанию |
| ---------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------- | -------------- | ------------ |
| [`encodedMsg`](#encoded-msg) | Закодированная строка сообщения, возвращаемая [`msg()`](/docs/node/reference/functions/msg). | `string \| null \| undefined` | Нет            | —            |
| [`options`](#options)        | Значения переменных и параметры перевода для интерполирования в итоговое сообщение.          | `GTTranslationOptions`        | Да             | `{}`         |

### `encodedMsg` [#encoded-msg]

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

Закодированная строка сообщения, возвращаемая функцией [`msg`](/docs/node/reference/functions/msg). Если передано `null`/`undefined`, возвращается `null`/`undefined`.

### `options` [#options]

**Type** `GTTranslationOptions` · **Необязательно**

Значения переменных для интерполяции в итоговое сообщение с использованием синтаксиса `{key}`, а также параметры перевода, такие как `$context`, `$id`, `$locale` и `$maxChars`. Если закодированное сообщение уже содержит параметры интерполяции (из `msg('...', { ... })`), используются они, а этот аргумент игнорируется.

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

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

Промис разрешается в функцию-резолвер сообщений `m`. `m(encodedMsg, options?)` возвращает декодированный перевод с подстановкой значений, сохраняя входные значения `null`/`undefined`.

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

```ts title="messages.js"
// Регистрация сообщений на уровне модуля
import { msg } from 'gt-node';

export const GREETING = msg('Hello, world!');
export const WELCOME = msg('Welcome, {name}!');
```

```ts title="handler.js"
// Получить сообщения для локали запроса
import { withGT, getMessages } from 'gt-node';
import { GREETING, WELCOME } from './messages';

function handleRequest(locale) {
  return withGT(locale, async () => {
    const m = await getMessages();
    return {
      greeting: m(GREETING),
      welcome: m(WELCOME, { name: 'Alice' }),
    };
  });
}
```

```ts title="handler.js"
// С переменными — передайте значения вторым аргументом
import { msg, getMessages, withGT } from 'gt-node';

const ORDER_STATUS = msg('Order {orderId} is {status}.');

function getOrderMessage(locale, orderId, status) {
  return withGT(locale, async () => {
    const m = await getMessages();
    return m(ORDER_STATUS, { orderId, status });
  });
}
```

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

* [`msg`](/docs/node/reference/functions/msg) регистрирует строку для перевода на этапе сборки; `getMessages` разрешает её во время выполнения.
* Этот шаблон полезен для строк, определённых на уровне модуля (константы, перечисления, сообщения об ошибках), которые нужно переводить отдельно для каждого запроса.
* Если в `m` передаётся `null` или `undefined`, функция возвращает соответственно `null` или `undefined`.

## Sitemap

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