# vue: TranslationCatalog URL: https://generaltranslation.com/ru/docs/vue/reference/types/translation-catalog.mdx --- title: TranslationCatalog description: Содержит все переводы в формате обычных строк и форматированного контента для одной локали. Справочник API для TranslationCatalog. --- CLI генерирует этот объект, ключами которого служат хеши, а callback [`LoadTranslations`](/docs/vue/reference/types/load-translations) возвращает его плагину. Код приложения обычно обращается к каталогам через компоненты перевода и компонуемые функции, а не напрямую. ## Обзор [#overview] ```ts import type { JsxChildren } from 'generaltranslation/types'; type TranslationCatalog = Record; ``` | Участник | Описание | Тип | | ----------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | | [`hash`](#hash) | Стабильный ключ каталога, вычисляемый на основе исходного контента и метаданных перевода. | `string` | | [`value`](#value) | Обычный перевод `STRING` или сериализованный перевод форматированного контента. | [`JsxChildren`](/docs/platform/core/reference/types/jsx-children) | ## Участники [#members] ### `hash` **Тип** `string` · **Обязательно** Каждый ключ свойства соответствует одной извлечённой исходной записи. Идентификатор обычной строки включает исходную строку и необязательный `$context`. Для форматированного контента он также включает его структуру и метаданные [``](/docs/vue/reference/components/t). Считайте хеши непрозрачными значениями. Позвольте CLI `gt` генерировать и обновлять их: изменение исходного контента или метаданных, влияющих на хеш, создаёт другой ключ. ### `value` **Тип** [`JsxChildren`](/docs/platform/core/reference/types/jsx-children) · **Обязательно** Обычная запись `STRING` хранит переводимую строку. Расширенная запись [``](/docs/vue/reference/components/t) хранит сериализованное дерево содержимого, используемое рендерером Vue. Публичный тип для передачи данных включает все скалярные формы, используемые в сгенерированных каталогах: ```ts type JsxChildren = boolean | null | JsxChild | JsxChild[]; type JsxChild = string | JsxElement | Variable; ``` Булевы значения и `null` могут использоваться как скалярные значения расширенного содержимого, в том числе во вложенном содержимом element и branch. Для вручную создаваемых массивов child используется более узкая форма `JsxChild[]`. Не создавайте вручную сериализованные записи element или variable: их индексы и метаданные должны соответствовать извлечённому дереву source. ## Поведение поиска [#lookup-behavior] [`useGT()`](/docs/vue/reference/composables/use-gt), [`t()`](/docs/vue/reference/functions/t) и [`useMessages()`](/docs/vue/reference/composables/use-messages) поддерживают для поиска обычных строк только строковые значения каталога. При отсутствии ключа или значении, не являющемся строкой, используется исходная строка. [``](/docs/vue/reference/components/t) обрабатывает форматированный контент и использует исходный слот, если подходящий перевод отсутствует. Для локали по умолчанию каталог не нужен, поскольку исходный контент служит резервным вариантом. ## Пример [#example] Возвращает сгенерированный объект JSON в виде каталога: ```ts title="src/loadTranslations.ts" import type { LoadTranslations, TranslationCatalog } from 'gt-vue'; const loadTranslations: LoadTranslations = async (locale) => { const module = await import(`./_gt/${locale}.json`); return module.default as TranslationCatalog; }; export default loadTranslations; ``` Возвращает `{}`, если для локали нет каталога и вместо него должен отображаться исходный контент.