# 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