# vue: URL: https://generaltranslation.com/ru/docs/vue/reference/components/t.mdx --- title: "" description: Перевод содержимого шаблонов Vue на месте. Справочник API компонента . --- Компонент `` получает статически заданное содержимое из слота по умолчанию и отображает соответствующую запись каталога форматированного содержимого. Если запись отсутствует, отображается исходное содержимое слота; компонент не добавляет HTML-обёртку. ## Обзор [#overview] Оберните в компонент текст и разметку, которые должны составлять единый перевод: ```vue Сегодня я сходил в магазин. ``` Используйте [``](/docs/vue/reference/components/var), [``](/docs/vue/reference/components/num), [``](/docs/vue/reference/components/currency) и [``](/docs/vue/reference/components/datetime) для значений, определяемых во время выполнения. Для альтернатив используйте [``](/docs/vue/reference/components/plural) или [``](/docs/vue/reference/components/branch). ## Как это работает [#how-it-works] * **Статическое извлечение.** CLI извлекает буквальную структуру шаблона, метаданные перевода, поддерживаемые текстовые пропсы и все поддерживаемые ветви. Выражения времени выполнения, формирующие переведённый контент, необходимо оборачивать в компонент переменной; обычные пропсы компонентов и обработчики остаются значениями времени выполнения. * **Поиск в каталоге.** Компонент хеширует свою исходную структуру и метаданные, затем получает эту запись из каталога активного плагина. Если запись отсутствует или несовместима, используется исходный слот. * **Реактивный рендеринг.** При использовании плагина [`createGT()`](/docs/vue/reference/functions/create-gt) повторный поиск выполняется при загрузке нового каталога или смене локали. Плагин, возвращаемый [`initializeGTSPA()`](/docs/vue/reference/functions/initialize-gt-spa), выполняет предварительную загрузку перед монтированием и меняет локаль перезагрузкой страницы. * **Корневой Fragment.** Компонент всегда возвращает границу Vue Fragment. Он не добавляет DOM-элемент, а переведённый результат может содержать ноль, один или несколько дочерних элементов без изменения границы компонента. `` не обрабатывает синтаксис ICU и не интерполирует заполнители. Помещайте каждое динамическое значение в соответствующий компонент переменной. ## Пропсы и слоты [#props] | Имя | Описание | Тип | Необязательный | По умолчанию | | ----------------------------------- | --------------------------------------------------------------- | ------------ | -------------- | ------------ | | [`default`](#default-slot) | Статическое содержимое шаблона для перевода. | `VNodeChild` | Да | Пусто | | [`context`](#context) | Контекст, позволяющий различать одинаковое исходное содержимое. | `string` | Да | — | | [`id`](#id) | Устаревшие метаданные для обеспечения совместимости. | `string` | Да | — | | [`maxChars`](#maxchars) | Требуемая максимальная длина перевода. | `number` | Да | — | | [`requiresReview`](#requiresreview) | Помечает запись как требующую проверки человеком. | `boolean` | Да | `false` | ### Слот по умолчанию **Тип** `VNodeChild` · **Необязательно** · **По умолчанию** Пусто Текст, элементы, компоненты и поддерживаемые ветви, составляющие перевод. Создаваемое содержимое должно быть статичным, за исключением значений, обёрнутых в компоненты переменных. ### `context` **Тип** `string` · **Необязательно** Статический контекст, используемый при вычислении хеша содержимого. Используйте его, если для одного и того же исходного текста требуются разные переводы, например `"Open"` в качестве глагола и прилагательного. ```vue Open ``` ### `id` **Тип** `string` · **Необязательный** · **Устаревший** Метаданные для обеспечения совместимости с кодом, адаптированным из React API. Они не заменяют хеш каталога Vue, основанный на содержимом, и не должны использоваться в качестве стабильного идентификатора перевода. ### `maxChars` **Тип** `number` · **Необязательно** Максимальное число символов, запрашиваемое у инструментов перевода. Это метаданные перевода; среда выполнения Vue не обрезает отрисованный результат. Используйте статически привязанное целое число в шаблоне: ```vue Save your changes ``` ### `requiresReview` **Тип** `boolean` · **Необязательный** · **По умолчанию** `false` Помечает запись перевода как требующую проверки человеком. Это метаданные перевода, которые сами по себе не влияют на рендеринг. ```vue Terms and conditions apply. ``` ## Правила шаблонов [#template-rules] Сохраняйте структуру исходного кода предсказуемой, чтобы извлечение и рендеринг во время выполнения работали согласованно: * Не вкладывайте один `` в другой. * Оборачивайте каждую интерполяцию и другие значения времени выполнения, отображаемые как переведённый контент, в компонент переменной. * Выносите `v-if`, `v-else-if`, `v-else` и `v-for` за пределы перевода или представляйте альтернативы с помощью [``](/docs/vue/reference/components/branch) либо [``](/docs/vue/reference/components/plural). * Не используйте `v-html`, `v-text` или `` внутри перевода. * Для пользовательских компонентов используйте прямые теги. Формы селекторов, такие как `` и `is="vue:..."`, поддерживаются только для распознанных компонентов GT или поддерживаемых встроенных компонентов Vue, которые экстрактор явно разрешает. Произвольные пользовательские селекторы, селекторы, выбираемые во время выполнения, и неразрешённые селекторы не поддерживаются. * Задавайте `context` и `id` как статические строки, `maxChars` — как статически привязанное целое число, а `requiresReview` — как статическое логическое значение или атрибут без значения. Статические пропсы `placeholder`, `title`, `alt`, `aria-label`, `aria-labelledby` и `aria-describedby` у HTML-элементов и пользовательских компонентов участвуют в переводе, если и исходные, и переведённые дочерние значения проходят проверку на истинность во время выполнения. Элементы без дочерних элементов, такие как ``, а также узлы, у которых исходное или переведённое дочернее значение является ложным, сохраняют исходные пропсы. Переводите текстовые пропсы таких элементов отдельно с помощью [`useGT()`](/docs/vue/reference/composables/use-gt). Динамические варианты этих текстовых пропсов внутри `` не поддерживаются. ```vue title="ProfileGreeting.vue" ``` ## Границы компонентов [#components] Статическое содержимое слота по умолчанию, заданное внутри пользовательского компонента, остаётся частью окружающего перевода. Vue сохраняет компонент, непереводимые пропсы времени выполнения, обработчики событий и идентификатор, заменяя содержимое слота по умолчанию и поддерживаемые статические текстовые пропсы: ```vue Read the documentation ``` Контент, созданный внутри реализации `DocsLink`, не виден внешнему механизму перевода. Для пользовательского компонента используйте прямой тег. Формы селекторов ограничены распознаваемыми компонентами GT и поддерживаемыми встроенными компонентами Vue, которые экстрактор явно разрешает; произвольные пользовательские селекторы, селекторы, выбираемые во время выполнения, и неразрешённые селекторы не являются источниками для перевода. Для слотов пользовательских компонентов с областью видимости или произвольными именами вместо этого помещайте `` внутрь слота. Вы также можете обернуть непрозрачную границу динамического компонента в [``](/docs/vue/reference/components/var). Литеральные границы `` поддерживают статический слот по умолчанию с одним корневым элементом. Контент этого слота участвует во внешнем переводе, а резервный слот сохраняется, но исключается из него. Помещайте отдельные компоненты `` внутрь слотов по умолчанию и резервного, если граница является динамической или использует алиас, который экстрактор не может разрешить. ## Пробелы [#whitespace] Компилятор шаблонов Vue определяет, сжимать или сохранять пробелы в исходном тексте. Экстрактор использует настройки компилятора Vue в приложении-потребителе, поэтому изменение параметра `whitespace` компилятора может изменить исходный контент и его хеш. Явно указывайте значимые пробелы непосредственно в коде: ```vue Hello world! ``` Не размещайте внутри `` комментарии, разделяющие текст или примыкающие к значимым пробелам. Vue может по-разному сохранять комментарии в разных сборках, а экстрактор отклоняет случаи, когда из-за этого хеш перевода зависит от сборки.