# General Translation React SDKs (gt-react, gt-next): msg URL: https://generaltranslation.com/ru/docs/react/reference/functions/msg.mdx --- title: msg description: Регистрируйте и кодируйте строку для перевода на уровне модуля с помощью General Translation gt-react. Справочник по API для msg. --- Функция `msg` помечает и кодирует строку для перевода. Используйте её, чтобы регистрировать строки на уровне модуля — вне компонента, — а затем получать их во время выполнения с помощью [`useMessages`](/docs/react/reference/hooks/use-messages). *Доступно в `gt-react`, `gt-next`, `gt-tanstack-start` и `gt-react-native`. В примерах используется импорт из `gt-react`; вместо этого импортируйте из пакета вашего фреймворка.* ## Обзор [#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}`. ```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
{m(encodedString)}
; } ``` ```tsx import { msg, useMessages } from 'gt-react'; const encodedString = msg('Hello, {name}!', { name: 'Alice' }); export default function TranslateGreeting() { const m = useMessages(); return{m(encodedString)}
; } // "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).