# gt-next: General Translation Next.js SDK: useMessages
URL: https://generaltranslation.com/ru/docs/next/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/next/tutorials/quickdeploy).
### Разработка
Во время разработки функция `m` будет переводить контент по запросу.
Это полезно, чтобы быстро увидеть, как ваше приложение будет выглядеть на разных языках.
Не забудьте добавить Dev API key в переменные окружения, чтобы включить это поведение.
При переводе по запросу в режиме разработки будет заметна задержка.
В production-сборках этого не будет, если только контент не переводится по запросу явно.
***
## Пример
### Базовое использование
Вы можете использовать `useMessages`, чтобы переводить строки, закодированные с помощью `msg`.
```jsx copy
import { msg, useMessages } from 'gt-next';
const encodedGreeting = msg('Hello, Alice!');
export default function TranslateGreeting() {
const m = useMessages();
return {m(encodedGreeting)}
;
}
```
Примечание: "Alice" будет переведено на язык, предпочитаемый пользователем.
### Использование переменных [#variables]
В закодированные строки можно передавать переменные.
```jsx copy
import { msg, useMessages } from 'gt-next';
const encodedGreeting = msg('Hello, {name}!');
export default function TranslateGreeting() {
const m = useMessages();
return (
{m(encodedGreeting, { name: 'Bob' })}{' '}
{/* Выведет "Hello, Bob!" */}
);
}
```
### Переменные `msg` имеют приоритет над переменными `m`
Если вы передаёте переменные и в `msg`, и в `m`, приоритет получают переменные, переданные в `msg`.
```jsx copy
import { msg, useMessages } from 'gt-next';
const encodedGreeting = msg('Hello, {name}!', { name: 'Alice' });
export default function TranslateGreeting() {
const m = useMessages();
return {m(encodedGreeting, { name: 'Bob' })}
;
}
```
Примечание: будет отображаться "Hello, Alice!" — значение переменной не переопределяется во время рендеринга.
### Использование формата сообщений ICU
`gt-next` поддерживает формат сообщений ICU, который также позволяет форматировать значения переменных.
```jsx copy
import { msg, useMessages } from 'gt-next';
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-next`
Если вы используете директиву `"use client"`, импортируйте из `gt-next`, а не из `gt-next`.
```jsx copy
'use client';
import { msg, useMessages } from 'gt-next';
const encodedGreeting = msg('Hello, Alice!');
export default function TranslateGreeting() {
const m = useMessages();
return {m(encodedGreeting)}
;
}
```
***
## Примечания
* Функция `useMessages` — это хук, который переводит закодированные строки из `msg`.
* Перевод строк с помощью `useMessages` выполняется до времени выполнения, на этапе сборки (кроме режима разработки).
## Что дальше
* См. [`msg`](/docs/next/api/strings/msg), чтобы кодировать строки для перевода.