# General Translation Integrations: Быстрый старт URL: https://generaltranslation.com/ru/docs/integrations/sanity/quickstart.mdx --- title: Быстрый старт description: Установите `gt-sanity`, добавьте плагин General Translation в Sanity Studio и переведите свой первый документ. related: links: - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/querying-translations - /docs/integrations/sanity/guides/configuring-sanity --- Плагин `gt-sanity` от General Translation переводит документы Sanity прямо в Sanity Studio. Плагин использует локализацию на уровне документов: каждый перевод хранится как отдельный документ Sanity с полем `language`, например `language: "es"`. Переводы связываются с исходным документом через документ `translation.metadata`, которым управляет `@sanity/document-internationalization`. ## Перед началом [#before-start] Вам понадобится: * Sanity Studio 5.0.0 или новее. * React 19.2.0 или новее. * Существующий проект Sanity. * [project ID](/docs/platform/dashboard/get-started) в General Translation и [API-ключ для production](/docs/platform/dashboard/reference/api-keys). ## Быстрый старт [#quickstart] ### 1. Установите `gt-sanity` [#install] Установите плагин в проект Sanity Studio. ```bash npm install gt-sanity ``` ```bash yarn add gt-sanity ``` ```bash bun add gt-sanity ``` ```bash pnpm add gt-sanity ``` ### 2. Добавьте плагин [#add-plugin] Добавьте `gtPlugin` в `sanity.config.ts`. Укажите исходную локаль, целевые локали и типы документов, которые нужно переводить. ```ts title="sanity.config.ts" import { defineConfig } from 'sanity'; import { gtPlugin } from 'gt-sanity'; export default defineConfig({ // ... ваша текущая конфигурация plugins: [ gtPlugin({ sourceLocale: 'en', locales: ['es', 'zh', 'ja'], translateDocuments: [{ type: 'article' }, { type: 'page' }], }), ], }); ``` Если в `translateDocuments` указаны типы документов, плагин автоматически добавит `@sanity/document-internationalization`: языковые бейджи, меню перевода на панели инструментов документа и шаблоны документов для каждого языка. Чтобы отключить это, установите `showDocumentInternationalization: false`. ### 3. Добавьте поле языка [#language-field] Для каждого типа документа, который вы переводите, нужно поле языка. По умолчанию оно называется `language`. ```ts title="schema/article.ts" 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`](/docs/integrations/sanity/reference/plugin-configuration#language-field), используйте это имя в схеме вместо `language`. ### 4. Сохраните учетные данные [#credentials] Плагин считывает ваш API-ключ General Translation и ID проекта из закрытого документа Sanity. Создайте временный файл `populateSecrets.js` в папке Studio. ```js title="populateSecrets.js" import { getCliClient } from 'sanity/cli'; const client = getCliClient({ apiVersion: '2026-04-06' }); client.createOrReplace({ // Начальная `.` в _id делает документ приватным, // даже в публичном датасете. _id: 'generaltranslation.secrets', _type: 'generaltranslation.secrets', secret: process.env.GT_API_KEY, project: process.env.GT_PROJECT_ID, }); ``` Запустите скрипт, указав свои учетные данные: ```bash GT_API_KEY=your-api-key GT_PROJECT_ID=your-project-id npx sanity exec populateSecrets.js --with-user-token ``` Документ `_id` должен совпадать с `secretsNamespace` плагина (по умолчанию — `generaltranslation.secrets`). Плагин использует поле `secret` как API-ключ, а поле `project` — как идентификатор проекта. Убедитесь в Studio с помощью инструмента Vision, что документ существует: ```text *[_id == 'generaltranslation.secrets'] ``` Если вы используете несколько наборов данных, повторите это действие для каждого из них. После проверки удалите `populateSecrets.js`. ### 5. Переведите документ [#translate-document] 1. Откройте документ на исходном языке в Sanity Studio. 2. Нажмите **Translate** на панели действий документа. 3. Выберите целевые локали. 4. Нажмите **Generate Translations**. В диалоговом окне документа плагин отслеживает завершённые переводы и автоматически импортирует их. После импорта он обновляет ссылки в документе и публикует переведённые документы, поскольку в этом диалоговом окне по умолчанию включены автоимпорт, автообновление ссылок и автопубликация. См. подробные руководства по [переводу контента](/docs/integrations/sanity/guides/translating-content) и [управлению переводами](/docs/integrations/sanity/guides/managing-translations). ### 6. Запрос переведённого контента [#query-content] Переводы хранятся в виде отдельных документов с полем language. Чтобы получить переведённый контент, фильтруйте по полю language. ```text // В документах на исходном языке поле language по умолчанию не задано *[_type == "article" && !defined(language)]{ title, slug, body } ``` ```text // Получить статьи на испанском языке *[_type == "article" && language == "es"]{ title, slug, body } ``` См. раздел [Запросы к переводам](/docs/integrations/sanity/guides/querying-translations), чтобы узнать о других шаблонах запросов. ## Next steps - /docs/integrations/sanity/guides/translating-content - /docs/integrations/sanity/guides/managing-translations - /docs/integrations/sanity/guides/querying-translations - /docs/integrations/sanity/guides/configuring-sanity