# vue: Перевод контента URL: https://generaltranslation.com/ru/docs/vue/guides/translating-content.mdx --- title: Перевод контента description: Как переводить содержимое шаблонов Vue на месте с помощью компонента . related: links: - /docs/vue/guides/formatting-variables - /docs/vue/guides/handling-plurals-and-branches - /docs/vue/guides/translating-strings - /docs/vue/guides/configuring --- Компонент [``](/docs/vue/reference/components/t) переводит содержимое своего слота по умолчанию на активную локаль. Напишите фразу целиком на языке-источнике и оберните её, чтобы текст, вложенные элементы и форматирование переводились как единое целое. ## Оберните содержимое шаблона в `` [#wrap] Поместите статический контент для пользователей в слот по умолчанию: ```vue ``` CLI определяет запись по её содержимому и структуре. Не включайте значения времени выполнения в обычную интерполяцию внутри перевода. Оборачивайте их в [``](/docs/vue/reference/components/var), [``](/docs/vue/reference/components/num), [``](/docs/vue/reference/components/currency) или [``](/docs/vue/reference/components/datetime). Не вкладывайте один [``](/docs/vue/reference/components/t) в другой. Вместо этого разделяйте независимые фразы на соседние переводы. ## Добавление контекста для перевода [#context] Используйте свойство `context`, удобное для Vue, если один и тот же исходный текст может иметь разные значения: ```vue Bank ``` Контекст изменяет идентификатор каталога и передаёт системе перевода информацию, необходимую для выбора нужной формулировки. На странице он не отображается. Необязательные пропсы `max-chars` и `requires-review` добавляют метаданные перевода. Оставляйте эти значения статическими, чтобы CLI мог их извлечь. ## Перевод с помощью пользовательского компонента [#components] Статически заданный контент в слоте по умолчанию пользовательского компонента включается в перевод окружающего содержимого: ```vue title="src/components/HelpPanel.vue" ``` Экземпляр пользовательского компонента, его обработчики и непереводимые пропсы сохраняются, а переведённое содержимое заменяет его слот по умолчанию и поддерживаемые пропсы со статическим текстом. `DocsLink` не заменяется на Fragment, поэтому его состояние и поведение остаются привязаны к той же границе. Окружающий [``](/docs/vue/reference/components/t) сохраняет корневой Fragment как в исходном, так и в переведённом рендеринге, не меняя тип корня при обновлении. Внешнему переводу доступно только содержимое, переданное в слот по умолчанию. Текст, созданный внутри самого `DocsLink.vue`, не входит в эту запись. Оберните этот внутренний текст в собственный [``](/docs/vue/reference/components/t). Теги пользовательских компонентов внутри перевода должны разрешаться во время выполнения. Импортируйте локальные компоненты или регистрируйте их обычным способом; предупреждение о неразрешённом компоненте означает ошибку конфигурации, а не поддерживаемый источник перевода. ## Явно обозначайте границы слотов [#slots] Внешний [``](/docs/vue/reference/components/t) может переводить обычное содержимое слота по умолчанию пользовательского компонента. Слоты с областью видимости, произвольные именованные слоты и компоненты, выбираемые во время выполнения, зависят от поведения, которое механизм извлечения не может надёжно определить. * Размещайте [``](/docs/vue/reference/components/t) внутри слота с областью видимости или именованного слота, если этот слот содержит фразу. * Оборачивайте непрозрачную динамическую границу в [``](/docs/vue/reference/components/var), если её вывод должен оставаться неизменным. * Используйте прямые теги для пользовательских компонентов. Формы селекторов поддерживаются только для распознаваемых компонентов GT и встроенных компонентов Vue, которые механизм извлечения может явно разрешить; размещайте [``](/docs/vue/reference/components/t) внутри границ произвольных пользовательских компонентов, компонентов, выбираемых во время выполнения, или неразрешённых селекторов. Для [``](https://vuejs.org/guide/built-ins/suspense) разместите отдельные переводы в слотах по умолчанию и резервном слоте: ```vue Your dashboard is ready. ``` Когда [``](https://vuejs.org/guide/built-ins/suspense) находится внутри внешнего [``](/docs/vue/reference/components/t), его содержимое по умолчанию может участвовать в переводе, а резервное содержимое сохраняется вне него. Если фраза каждого слота находится в отдельном переводе, становится однозначно понятно, к чему она относится. ## Безопасное представление динамической структуры [#dynamic-structure] Система переводов должна знать все возможные фразы на этапе извлечения. Для формулировок, зависящих от количества, используйте [``](/docs/vue/reference/components/plural), а для других конечных вариантов — [``](/docs/vue/reference/components/branch) вместо условных конструкций времени выполнения непосредственно в дереве переводов. ```vue ``` Компилятор шаблонов Vue определяет, как отступы и переносы строк преобразуются в текстовые узлы. Размещайте непосредственно в разметке фразы, которые должны быть видны пользователю, и не меняйте настройку обработки пробелов компилятора, чтобы при извлечении и рендеринге использовалась одинаковая структура. ## Next steps - /docs/vue/guides/formatting-variables - /docs/vue/guides/handling-plurals-and-branches - /docs/vue/guides/translating-strings - /docs/vue/guides/configuring