# vue: t URL: https://generaltranslation.com/ru/docs/vue/reference/functions/t.mdx --- title: t description: Синхронно переводит обычную строку из инициализированной среды выполнения SPA в браузере. Справочник API для t. --- Используйте `t` для констант и других строк, вычисляемых вне компонентов Vue в одностраничном приложении, работающем только в браузере. В коде компонентов вместо этого обычно используется реактивный callback [`useGT()`](/docs/vue/reference/composables/use-gt). ## Обзор [#overview] ```ts const t: GTFunction; ``` Функция получает каталог, предварительно загруженный с помощью [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa): ```ts title="src/navigation.ts" import { t } from 'gt-vue'; export const navigation = [ t('Documentation', { $context: 'primary navigation' }), t('Account settings'), ]; ``` Используйте литеральные исходные строки и литеральный `$context`, чтобы CLI мог извлечь ту же запись каталога, для которой Runtime вычисляет хеш. ## Параметры [#parameters] | Параметр | Описание | Тип | Необязательный | По умолчанию | | --------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -------------- | ------------ | | `message` | Статическая исходная строка для перевода. Фигурные скобки интерпретируются буквально. | `string` | Нет | — | | `options` | Контекст для устранения неоднозначности хеша каталога. | [`GTStringOptions`](/docs/vue/reference/types/gt-string-options) | Да | `{}` | `$context` — единственный поддерживаемый параметр. `t` не поддерживает переменные интерполяции, `$format`, `$maxChars` и `$requiresReview`. ## Как это работает [#how-it-works] `t` вычисляет хеш каталога обычных строк `STRING` на основе `message` и `$context`, затем синхронно считывает активный каталог SPA. Если хеш отсутствует или значение в каталоге не является строкой, возвращается исходная строка. Результат — это снимок, созданный в момент вызова. Константа на уровне модуля не участвует в реактивности Vue. Поэтому при смене локали SPA документ перезагружается, загрузочный модуль запускается заново, предварительно загружается новый каталог, а модуль вычисляется повторно. Этот API выполняет только литеральный поиск строк: * Фигурные скобки, например `{name}`, считаются обычными символами. * Синтаксис ICU не разбирается и не форматируется. * Значения времени выполнения не интерполируются. * Синтаксис тегированных шаблонов, например `` t`Hello` ``, не поддерживается. Для переводимого содержимого со значениями времени выполнения используйте [``](/docs/vue/reference/components/t) вместе с [``](/docs/vue/reference/components/var). ## Возвращаемое значение [#returns] **Тип** `string` Возвращает соответствующий перевод строки или `message`, если перевод строки отсутствует. ## Сбои [#failures] `t` выбрасывает исключение в следующих случаях: * Он запускается на сервере, где глобальное состояние перевода в браузере может утечь между запросами. * Он запускается в браузере до завершения [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa). Дождитесь завершения инициализации в загрузочном модуле, затем динамически импортируйте модули, вызывающие `t`. Для серверного рендеринга настройте состояние [`createGT({ locale })`](/docs/vue/reference/functions/create-gt#server-rendering) в области запроса и выполняйте перевод из компонента с помощью [`useGT()`](/docs/vue/reference/composables/use-gt). ## Пример [#example] ```ts title="src/status.ts" import { t } from 'gt-vue'; export const STATUS_LABELS = { draft: t('Draft', { $context: 'document status' }), published: t('Published', { $context: 'document status' }), }; ``` Экстрактор регистрирует оба вызова. Если активный каталог недоступен или не содержит ни одной из этих записей, используются значения `"Draft"` и `"Published"`.