# sanity: Введение URL: https://generaltranslation.com/ru/docs/sanity.mdx --- title: Введение description: Обзор плагина General Translation для CMS Sanity --- ## Обзор Плагин `gt-sanity` напрямую интегрирует General Translation в Sanity Studio v5+. Он обеспечивает полный цикл перевода контента в Sanity, включая автоперевод, перевод на уровне документов и управление переведёнными документами. ```typescript title="sanity.config.ts" import { defineConfig } from 'sanity'; import { gtPlugin } from 'gt-sanity'; export default defineConfig({ // ... ваша существующая конфигурация plugins: [ gtPlugin({ sourceLocale: 'en', locales: ['es', 'zh', 'ja'], }), ], }); ``` ## Как это работает Плагин использует подход Sanity к [локализации на уровне документов](https://www.sanity.io/docs/studio/localization): для каждого исходного документа он создаёт отдельный переведённый документ, в котором поле `language` задаётся целевой локалью. **Требуются изменения схемы и запросов.** Каждый тип документа, который вы переводите, должен включать поле `language` в своей схеме (см. ниже). Вам также потребуется обновить frontend-запросы, чтобы получать версию на нужном языке. Примеры настройки и GROQ-запросов см. в [быстром старте](/docs/sanity/guides/quickstart#querying-translated-content). ### Поле `language` Каждый тип документа, который вы переводите, должен иметь поле `language`: ```typescript import { defineField, defineType } from 'sanity' export const articleType = defineType({ name: 'article', title: 'Article', type: 'document', fields: [ // ... ваши существующие поля defineField({ name: 'language', type: 'string', readOnly: true, hidden: true, }), ], }) ``` Если в конфигурации плагин вы используете собственное имя для `languageField`, имя поля должно совпадать. ## Ключевые возможности ### Перевод документов Переводите документы целиком на несколько целевых локалей. Плагин поддерживает Portable Text, вложенные объекты, массивы и пользовательские типы схем. ### Пакетные операции Переводите сразу несколько документов или весь сайт. Импортируйте все переводы, только отсутствующие переводы или переводы выборочно по локали. ### Интеллектуальная сериализация Документы сериализуются в HTML для перевода с сохранением структуры и метаданных. При переводе на языки с иной грамматической структурой текст автоматически адаптируется, чтобы естественно звучать на целевом языке. Пользовательские сериализаторы позволяют управлять обработкой конкретных типов полей. ## Интерфейс плагина Плагин включает три основных компонента интерфейса: ### Действие «Перевести» (диалоговое окно) Действие «Перевести» автоматически добавляется ко всем документам. При нажатии кнопки **Перевести** на панели действий документа открывается диалоговое окно с полным интерфейсом перевода — дополнительная конфигурация не требуется. ### Вкладка Translations (необязательно) ![TranslationsTab](https://assets.gtx.dev/docs/sanity-translations-tab.png) `TranslationsTab` при необходимости можно добавить как отдельное представление документа через `structureTool`. Это дает ту же функциональность перевода, что и в диалоговом окне, но в виде вкладки, встроенной в редактор документа. Инструкции по настройке см. в [быстром старте](/docs/sanity/guides/quickstart#configuration). ### Страница переводов ![TranslationsPage](https://assets.gtx.dev/docs/sanity-translations-page.png) Страница переводов — это страница Sanity, которая предоставляет обзор переводов для всего вашего сайта. С этой центральной страницы управления вы можете: * Массово генерировать переводы для всех документов * Массово импортировать переводы для всех документов * Массово импортировать переводы для выбранных документов * Восстанавливать языковые ссылки и ссылки на другие документы * Массово публиковать переводы для каждого документа ## Поддерживаемые типы контента Плагин поддерживает большинство типов схем в Sanity. Пользовательские типы можно настроить с помощью [пользовательских сериализаторов](/docs/sanity/guides/serialization). Такие поля, как slug, можно настроить с помощью `dedupeFields`, чтобы новые переведённые документы начинались со значения, производного от исходного, и получали уникальный суффикс локали, например `about-es` или `about-fr`. ## Что дальше * [Быстрый старт](/docs/sanity/guides/quickstart) - Начните с установки и настройки * [Руководство по настройке](/docs/sanity/guides/configuration) - Настройте поведение плагина * [Руководство по сериализации](/docs/sanity/guides/serialization) - Настройка правил сериализации