# 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).