# Vue: MessagesFunction
URL: https://generaltranslation.com/ru/docs/vue/reference/types/messages-function.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Разрешает зарегистрированные сообщения, необработанные строки и значения null или undefined из активного каталога. Справочник по API MessagesFunction.

[`useMessages()`](/docs/vue/reference/composables/use-messages) возвращает этот callback. Он декодирует значения, созданные [`msg()`](/docs/vue/reference/functions/msg), а также принимает обычную исходную строку.

## Обзор [#overview]

```ts
type MessagesFunction = <T extends string | null | undefined>(
  message: T,
  options?: GTStringOptions
) => T extends string ? string : T;
```

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

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

### `message`

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

Передайте значение, возвращаемое [`msg()`](/docs/vue/reference/functions/msg), обычную исходную строку или значение `null`/`undefined`. Закодированные строки содержат исходный текст, хеш и необязательный `$context`.

### `options`

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

Для исходной строки без обработки `$context` участвует в вычислении хеша каталога. Для закодированного значения приоритет имеют метаданные, сохранённые [`msg()`](/docs/vue/reference/functions/msg), а параметры в месте вызова игнорируются.

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

| Входные данные | Тип возвращаемого значения | Поведение                                                                   |
| -------------- | -------------------------- | --------------------------------------------------------------------------- |
| `string`       | `string`                   | Возвращает перевод из каталога или декодированный исходный резервный текст. |
| `null`         | `null`                     | Возвращает `null` без изменений.                                            |
| `undefined`    | `undefined`                | Возвращает `undefined` без изменений.                                       |

Условный обобщённый тип сохраняет типы входных значений `null` и `undefined`, позволяя передавать необязательные сообщения без отдельной проверки.

## Разрешение [#resolution]

Для закодированного сообщения callback декодирует сохранённый исходный текст, `$context` и заранее вычисленный хеш перед поиском. Для обычной строки он вычисляет хеш на основе строки и `$context` в месте вызова.

В обоих случаях требуется строковое значение в активном каталоге. Если запись отсутствует или не является строкой, возвращается исходный текст. Форматирование ICU и интерполяция не выполняются; фигурные скобки остаются литеральными.

Вызывайте callback из шаблона Vue, вычисляемого значения или реактивного эффекта, если результат должен обновляться после загрузки каталога или смены локали плагином [`createGT()`](/docs/vue/reference/functions/create-gt).

## Пример [#example]

```vue title="src/PageTitle.vue"
<script setup lang="ts">
import { msg, useMessages } from 'gt-vue';

const title = msg('Settings', { $context: 'page title' });
const m = useMessages();
</script>

<template>
  <h1>{{ m(title) }}</h1>
</template>
```

## Sitemap

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