# vue: Перевод строк URL: https://generaltranslation.com/ru/docs/vue/guides/translating-strings.mdx --- title: Перевод строк description: Как переводить метки Vue, атрибуты и общие строки с помощью useGT и useMessages. related: links: - /docs/vue/guides/translating-content - /docs/vue/guides/developing-spa-translations - /docs/vue/guides/formatting-variables - /docs/vue/guides/configuring --- Используйте [`useGT()`](/docs/vue/reference/composables/use-gt) для строк, которые нельзя представить в виде содержимого шаблона, например для placeholders, доступных меток и значений, передаваемых другому компоненту. Используйте [`msg()`](/docs/vue/reference/functions/msg) вместе с [`useMessages()`](/docs/vue/reference/composables/use-messages), если статическое сообщение объявляется в одном модуле, а отображается в другом. ## Перевод с помощью `useGT` [#use-gt] Вызовите [`useGT()`](/docs/vue/reference/composables/use-gt) при настройке компонента, а затем вызовите возвращаемую функцию в шаблоне: ```vue ``` Используйте строковый литерал, чтобы CLI мог его извлечь. При отсутствии записи в каталоге возвращается исходная строка. Поддерживается только статический `$context`: ```vue ``` Фигурные скобки воспринимаются как обычный текст. [`useGT()`](/docs/vue/reference/composables/use-gt) не обрабатывает синтаксис ICU, не интерполирует переменные и не поддерживает параметры строк React, такие как `$id`, `$maxChars` и `$format`. ## Обеспечьте реактивность результатов перевода [#reactivity] Функция, возвращаемая [`useGT()`](/docs/vue/reference/composables/use-gt), при вызове обращается к активному каталогу. Вызывайте её из шаблона, вычисляемого значения или реактивного эффекта, если результат должен обновляться при изменении локали или каталога: ```vue ``` `const pageTitle = gt('Account settings')` переводится один раз при настройке, после чего сохраняется снимок. При переключении локали плагином [`createGT()`](/docs/vue/reference/functions/create-gt) повторный перевод не выполняется. ## Регистрация общих сообщений [#messages] Используйте [`msg()`](/docs/vue/reference/functions/msg) для регистрации статических строк в общем модуле. Она помечает контент для извлечения, но не выполняет поиск перевода. ```ts title="src/messages.ts" import { msg } from 'gt-vue'; export const statusMessages = { active: msg('Active', { $context: 'account status' }), paused: msg('Paused', { $context: 'account status' }), }; ``` Разрешите выбранное сообщение с помощью [`useMessages()`](/docs/vue/reference/composables/use-messages) в месте его рендеринга: ```vue title="src/components/StatusBadge.vue" ``` Без параметров [`msg()`](/docs/vue/reference/functions/msg) возвращает исходную строку без изменений. При использовании `$context` она добавляет непрозрачные метаданные для поиска, которые считывает [`useMessages()`](/docs/vue/reference/composables/use-messages). Не анализируйте это закодированное представление и не делайте предположений о его структуре. ## Перевод контента со значениями, известными во время выполнения [#variables] При поиске по простым строкам данные времени выполнения не интерполируются. Поместите всю фразу в [``](/docs/vue/reference/components/t) и обозначьте изменяемое значение с помощью [``](/docs/vue/reference/components/var): ```vue С возвращением, {{ accountName }}! ``` Используйте [``](/docs/vue/reference/components/num), [``](/docs/vue/reference/components/currency) и [``](/docs/vue/reference/components/datetime), если значение также нужно отформатировать с учётом локали. В SPA, работающих только в браузере, где статический поиск нужен во время вычисления модулей, можно использовать [`t()`](/docs/vue/reference/functions/t) после ожидания [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa). Следуйте руководству [Разработка с переводом для SPA](/docs/vue/guides/developing-spa-translations), чтобы сохранить необходимый порядок импорта. ## Next steps - /docs/vue/guides/translating-content - /docs/vue/guides/developing-spa-translations - /docs/vue/guides/formatting-variables - /docs/vue/guides/configuring