# Vue: useMessages
URL: https://generaltranslation.com/ru/docs/vue/reference/composables/use-messages.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Разрешает строки, зарегистрированные с помощью msg, для активной локали. Справочник API для useMessages.

Компонуемая функция `useMessages` возвращает синхронный резолвер для строк, зарегистрированных с помощью [`msg()`](/docs/vue/reference/functions/msg). Она также принимает обычные исходные строки и сохраняет значения `null` и `undefined`.

## Обзор [#overview]

Зарегистрируйте исходный текст на уровне модуля, а затем разрешайте каждую зарегистрированную строку внутри компонента:

```ts title="src/messages.ts"
import { msg } from 'gt-vue';

export const savedMessage = msg('Your preferences are saved.', {
  $context: 'Settings confirmation',
});
```

```vue title="SettingsStatus.vue"
<script setup lang="ts">
import { useMessages } from 'gt-vue';
import { savedMessage } from './messages';

const m = useMessages();
</script>

<template>
  <p>{{ m(savedMessage) }}</p>
</template>
```

## Как это работает [#how-it-works]

* **Зарегистрированные сообщения.** [`msg()`](/docs/vue/reference/functions/msg) регистрирует исходный текст для извлечения. Если ей переданы параметры, она кодирует метаданные исходного текста и контекста, которые имеют приоритет над параметрами в месте вызова; без параметров она возвращает исходную строку без изменений.
* **Необработанные строки.** Обычная строка ищется так же, как при вызове [`useGT()`](/docs/vue/reference/composables/use-gt), и может передавать `$context` из места вызова.
* **Передача `null` и `undefined` без изменений.** `null` возвращает `null`, а `undefined` — `undefined`.
* **Возврат исходного текста.** Если запись в каталоге отсутствует или несовместима, возвращается исходная строка.
* **Только простые строки.** Фигурные скобки трактуются буквально; форматирование ICU и интерполяция не выполняются.

Вызывайте резолвер из шаблона, `computed` или другого реактивного эффекта, если он должен обновляться при изменении каталога или локали в [`createGT()`](/docs/vue/reference/functions/create-gt). Значение, разрешённое один раз на этапе setup, — это снимок простой строки. Браузерное SPA, инициализированное с помощью [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa), предварительно загружает начальный каталог и повторно создаёт снимки после перезагрузки при смене локали.

## Параметры [#parameters]

`useMessages` не принимает параметров.

## Возвращаемое значение [#returns]

**Тип** `<T extends string | null | undefined>(message: T, options?: GTStringOptions) => T extends string ? string : T`

Синхронный резолвер со следующими параметрами:

| Параметр              | Описание                                                                                           | Тип                                                              | Необязательный | По умолчанию |
| --------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------------- | ------------ |
| [`message`](#message) | Зарегистрированное сообщение, необработанная исходная строка или значение `null` либо `undefined`. | `string \| null \| undefined`                                    | Нет            | —            |
| [`options`](#options) | Контекст для незакодированной необработанной исходной строки.                                      | [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) | Да             | `{}`         |

### `message`

**Тип** `string | null | undefined` · **Обязательно**

Отдельная строка, возвращаемая [`msg()`](/docs/vue/reference/functions/msg), статическая исходная строка, `null` или `undefined`. Если [`msg()`](/docs/vue/reference/functions/msg) зарегистрировала массив, разрешайте каждый его элемент отдельно.

### `options`

**Тип** [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) · **Необязательный** · **По умолчанию** `{}`

Единственное поддерживаемое поле — `$context?: string`. Оно применяется к необработанной исходной строке. Приоритет имеет контекст, уже закодированный с помощью [`msg()`](/docs/vue/reference/functions/msg).

## Примеры [#examples]

Разрешение зарегистрированного сообщения, которое может быть `null`, без отдельной проверки:

```vue title="StatusMessage.vue"
<script setup lang="ts">
import { useMessages } from 'gt-vue';

defineProps<{ encodedMessage: string | null }>();
const m = useMessages();
</script>

<template>
  <p>{{ m(encodedMessage) }}</p>
</template>
```

Разрешение необработанной строки с контекстом:

```vue
<p>{{ m('Open', { $context: 'Adjective: an open issue' }) }}</p>
```

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
