# gt-react: General Translation React SDK: useMessages URL: https://generaltranslation.com/ru/docs/react/api/strings/use-messages.mdx --- title: useMessages description: Справочник по API функции перевода строк useMessages() --- {/* СГЕНЕРИРОВАНО АВТОМАТИЧЕСКИ: Не редактируйте напрямую. Вместо этого изменяйте шаблон в content/docs-templates/. */} ## Обзор Функция `useMessages` — это хук для перевода строк, закодированных с помощью `msg`, на этапе сборки. ```jsx const m = useMessages();

{m(encodedString)}

; ``` **Перевод на этапе сборки:** переводы через `useMessages` выполняются на этапе сборки, до развертывания приложения. Вы можете передавать закодированные строки, созданные с помощью `msg`, и они будут переведены на предпочитаемый пользователем язык. ## Справочник ### Параметры Нет ### Возвращает Функцию обратного вызова `m`, которая переводит переданное закодированное содержимое из `msg`. ```jsx (encodedContent: string, options?: Record) => string ``` | Имя | Тип | Описание | | ---------------- | --------------------- | ------------------------------------------------------------------------- | | `encodedContent` | `string` | Закодированное содержимое строки из `msg`, которое нужно перевести. | | `options?` | `Record` | Необязательные параметры для передачи переменных в закодированную строку. | *** ## Поведение ### Продакшен Во время процесса CD любой текст внутри функции `msg` будет переведён ещё до развертывания приложения. Это обеспечивает быструю загрузку для всех локалей, но переводится только контент, известный на этапе сборки. После генерации переводы либо (1) сохраняются в CDN, либо (2) включаются в результаты сборки вашего приложения — в зависимости от конфигурации. После этого переведённый контент отдаётся пользователям. Если перевод не найден, будет использован исходный контент. Обязательно следуйте [этому руководству по развертыванию](/docs/react/tutorials/quickdeploy). ### Разработка Во время разработки функция `m` будет переводить контент по запросу. Это полезно, чтобы быстро проверить, как ваше приложение будет выглядеть на разных языках. Не забудьте добавить Dev API key в переменные окружения, чтобы включить это поведение. При переводе по запросу в режиме разработки будет заметна задержка. В production-сборках этого не происходит, если только контент явно не переводится по запросу. *** ## Пример ### Базовое использование Вы можете использовать `useMessages`, чтобы переводить строки, закодированные с помощью `msg`. ```jsx copy import { msg, useMessages } from 'gt-react'; const encodedGreeting = msg('Hello, Alice!'); export default function TranslateGreeting() { const m = useMessages(); return

{m(encodedGreeting)}

; } ``` Примечание: "Alice" будет переведено на язык, предпочитаемый пользователем. ### Использование переменных [#variables] В закодированные строки можно передавать переменные. ```jsx copy import { msg, useMessages } from 'gt-react'; const encodedGreeting = msg('Hello, {name}!'); export default function TranslateGreeting() { const m = useMessages(); return (

{m(encodedGreeting, { name: 'Bob' })}{' '} {/* Выведет "Hello, Bob!" */}

); } ``` ### Переменные `msg` имеют приоритет над переменными `m` Если вы передаёте переменные и в `msg`, и в `m`, переменные из `msg` имеют приоритет над переменными из `m`. ```jsx copy import { msg, useMessages } from 'gt-react'; const encodedGreeting = msg('Hello, {name}!', { name: 'Alice' }); export default function TranslateGreeting() { const m = useMessages(); return

{m(encodedGreeting, { name: 'Bob' })}

; } ``` Примечание: будет отображаться "Hello, Alice!" — переменная не переопределяется во время рендеринга. ### Использование формата сообщений ICU `gt-react` поддерживает формат сообщений ICU, который также позволяет форматировать значения переменных. ```jsx copy import { msg, useMessages } from 'gt-react'; const encodedMessage = msg( 'There are {count, plural, =0 {no items} =1 {one item} other {{count} items}} in the cart', { count: 10 } ); export default function TranslateGreeting() { const m = useMessages(); return

{m(encodedMessage)}

; } ``` Формат сообщений ICU — это мощный инструмент для форматирования переменных. Подробнее см. в [документации по формату сообщений ICU](https://unicode-org.github.io/icu/userguide/format_parse/messages/). ### Импорт из `gt-react` Если вы используете директиву `"use client"`, импортируйте из `gt-react`, а не из `gt-react`. ```jsx copy 'use client'; import { msg, useMessages } from 'gt-react'; const encodedGreeting = msg('Hello, Alice!'); export default function TranslateGreeting() { const m = useMessages(); return

{m(encodedGreeting)}

; } ``` *** ## Примечания * Функция `useMessages` — это хук, который переводит строки, закодированные с помощью `msg`. * Перевод строк через `useMessages` происходит до времени выполнения, на этапе сборки (кроме режима разработки). ## Следующие шаги * См. [`msg`](/docs/react/api/strings/msg), чтобы узнать, как кодировать строки для перевода.