# General Translation React SDKs (gt-react, gt-next, gt-react-native): msg
URL: https://generaltranslation.com/ru/docs/react/reference/functions/msg.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Регистрируйте и кодируйте строку для перевода на уровне модуля. Справочник по API для msg.

Функция `msg` помечает и кодирует строку для перевода. Используйте её, чтобы регистрировать строки на уровне модуля — вне компонента, — а затем разрешать их во время выполнения с помощью [`useMessages`](/docs/react/reference/hooks/use-messages).

*Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`.*

## Обзор [#overview]

Вызовите `msg` со строкой, чтобы получить закодированную строку. Затем передайте это закодированное значение в [`useMessages`](/docs/react/reference/hooks/use-messages), чтобы получить перевод.

```tsx
const encodedString = msg('Hello, world!');
```

*Примечание: `msg` кодирует входные данные, поэтому его нельзя напрямую отобразить. Чтобы восстановить исходную строку, декодируйте её с помощью [`decodeMsg`](/docs/node/reference/functions/decode-msg).*

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

* **Регистрация для извлечения.** `msg` помечает строку, чтобы CLI мог извлечь её для перевода, а [`useMessages`](/docs/react/reference/hooks/use-messages) — разрешать во время выполнения. Без параметров она возвращает строку без изменений; с параметрами — закодированную строку, содержащую эти параметры.
* **Перевод при сборке.** В production зарегистрированные строки переводятся во время сборки. Если перевод отсутствует, используется исходная строка. В режиме разработки перевод выполняется по запросу с небольшой задержкой.
* **Декодирование.** `decodeMsg` извлекает исходную интерполированную строку из закодированного сообщения. [`decodeOptions`](/docs/node/reference/functions/decode-options) извлекает параметры.
* **Массивы.** `msg` также принимает массив строк; если указан `$id`, каждой записи присваивается уникальный id вида `${id}.${index}`.

*Примеры импортируют из `gt-react`; вместо этого импортируйте из пакета вашего фреймворка.*

```tsx
import { msg, decodeMsg } from 'gt-react';

const encoded = msg('Hello, world!');
const decoded = decodeMsg(encoded);
console.log(decoded); // "Hello, world!"
```

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

| Параметр              | Описание                                                           | Тип                                                                                  | Необязательный | По умолчанию |
| --------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -------------- | ------------ |
| [`message`](#message) | Строка (или массив строк), которую нужно зарегистрировать.         | `string \| string[]`                                                                 | Нет            | —            |
| [`options`](#options) | Переменные интерполяции и параметры, такие как `$context` и `$id`. | [`InlineTranslationOptions`](/docs/react/reference/types/inline-translation-options) | Да             | —            |

### `message` [#message]

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

Строковое значение, которое нужно зарегистрировать и закодировать. Массив позволяет зарегистрировать сразу несколько строк.

### `options` [#options]

**Тип** [`InlineTranslationOptions`](/docs/react/reference/types/inline-translation-options) · **Необязательно**

Переменные интерполяции, а также параметры, такие как `$context`, `$id` и `$maxChars`. Переменные подставляются при формировании строки.

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

**Тип** `string`

Закодированная строка с уже подставленными интерполированными переменными. Если на вход подаётся массив, возвращается массив закодированных строк. Преобразуйте результат с помощью [`useMessages`](/docs/react/reference/hooks/use-messages).

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

```tsx
import { msg, useMessages } from 'gt-react';

const encodedString = msg('Hello, world!');

export default function TranslateGreeting() {
  const m = useMessages();
  return <p>{m(encodedString)}</p>;
}
```

```tsx
import { msg, useMessages } from 'gt-react';

const encodedString = msg('Hello, {name}!', { name: 'Alice' });

export default function TranslateGreeting() {
  const m = useMessages();
  return <p>{m(encodedString)}</p>;
}
// "Alice" — это переменная, она не переводится.
```

```tsx
import { msg } from 'gt-react';

// Разрешение неоднозначности с помощью $context
const LABEL = msg('Bank', { $context: 'a bank of a river' });
```

`gt-react` поддерживает [формат сообщений ICU](https://unicode-org.github.io/icu/userguide/format_parse/messages/) для форматирования переменных в зарегистрированных строках.

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

* `msg` помечает строки для перевода; перевод выполняется во время сборки (или по запросу в режиме разработки).
* Преобразуйте закодированные строки с помощью [`useMessages`](/docs/react/reference/hooks/use-messages).

## Sitemap

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