# gt-next: General Translation Next.js SDK: getMessages URL: https://generaltranslation.com/ru/docs/next/api/strings/get-messages.mdx --- title: getMessages description: Справка по API для функции перевода строк getMessages() --- ## Обзор Функция `getMessages` — асинхронная функция для перевода закодированных строк из `msg` на этапе сборки. ```jsx const m = await getMessages();

{ m(encodedString) }

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

{m(encodedGreeting)}

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

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

); } ``` ### Переменные `msg` имеют приоритет над переменными `m` Если вы передаёте переменные и в `msg`, и в `m`, приоритет получают переменные, переданные в `msg`. ```javascript copy import { msg, getMessages } from 'gt-next/server'; const encodedGreeting = msg('Hello, {name}!', { name: 'Alice' }); export default async function TranslateGreeting() { const m = await getMessages(); return (

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

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

{m(encodedMessage)}

); } ``` Формат сообщений ICU — это удобный и мощный способ форматирования переменных. Подробнее см. в [документации по формату сообщений ICU](https://unicode-org.github.io/icu/userguide/format_parse/messages/). *** ## Примечания * Функция `getMessages` работает на сервере и переводит закодированные строки из `msg`. * Перевод строк с помощью `getMessages` выполняется до времени выполнения, на этапе сборки (кроме режима разработки). ## Следующие шаги * См. [`useMessages`](/docs/next/api/strings/use-messages) для перевода строк на стороне клиента из закодированных строк на этапе сборки. * См. [`msg`](/docs/next/api/strings/msg) для кодирования строк для перевода. * Для перевода во время выполнения см. [`tx`](/docs/next/api/strings/tx) и [``](/docs/next/api/components/tx).