# General Translation Integrations: Inicio rápido
URL: https://generaltranslation.com/es/docs/integrations/sanity/quickstart.mdx
---
title: Inicio rápido
description: Instala gt-sanity, añade el plugin de General Translation a Sanity Studio y traduce tu primer documento.
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
---
El plugin `gt-sanity` de General Translation traduce documentos de Sanity desde Sanity Studio.
El plugin usa localización a nivel de documento: cada traducción se almacena como un documento independiente de Sanity con un campo de idioma, como `language: "es"`. Las traducciones se vinculan al documento fuente mediante un documento `translation.metadata` gestionado por `@sanity/document-internationalization`.
## Antes de empezar [#before-start]
Necesitas:
* Sanity Studio 5.0.0 o una versión posterior.
* React 19.2.0 o una versión posterior.
* Un proyecto de Sanity existente.
* Un [ID del proyecto](/docs/platform/dashboard/get-started) de General Translation y una [clave de API](/docs/platform/dashboard/reference/api-keys) de producción.
## Inicio rápido [#quickstart]
### 1. Instala `gt-sanity` [#install]
Instala el plugin en tu proyecto de Sanity Studio.
```bash
npm install gt-sanity
```
```bash
yarn add gt-sanity
```
```bash
bun add gt-sanity
```
```bash
pnpm add gt-sanity
```
### 2. Añade el plugin [#add-plugin]
Añade `gtPlugin` a `sanity.config.ts`. Configura la configuración regional de origen, las configuraciones regionales de destino y los tipos de documento que se traducirán.
```ts title="sanity.config.ts"
import { defineConfig } from 'sanity';
import { gtPlugin } from 'gt-sanity';
export default defineConfig({
// ... tu configuración existente
plugins: [
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
translateDocuments: [{ type: 'article' }, { type: 'page' }],
}),
],
});
```
Cuando `translateDocuments` incluye tipos de documento, el plugin añade automáticamente el plugin `@sanity/document-internationalization`: insignias de idioma, un menú de traducción en la barra de herramientas del documento y plantillas de documentos por idioma. Establece `showDocumentInternationalization: false` para desactivarlo.
### 3. Añade un campo de idioma [#language-field]
Todos los tipos de documento que traduzcas necesitan un campo de idioma. De forma predeterminada, se llama `language`.
```ts title="schema/article.ts"
import { defineField, defineType } from 'sanity';
export const articleType = defineType({
name: 'article',
title: 'Article',
type: 'document',
fields: [
// ... tus campos existentes
defineField({
name: 'language',
type: 'string',
readOnly: true,
hidden: true,
}),
],
});
```
Si defines un [`languageField`](/docs/integrations/sanity/reference/plugin-configuration#language-field) personalizado en las opciones del plugin, usa ese nombre en tu schema en lugar de `language`.
### 4. Guarda las credenciales [#credentials]
El plugin lee tu clave de API de General Translation y el ID del proyecto desde un documento privado de Sanity. Crea un archivo temporal `populateSecrets.js` en la carpeta de tu Studio.
```js title="populateSecrets.js"
import { getCliClient } from 'sanity/cli';
const client = getCliClient({ apiVersion: '2026-04-06' });
client.createOrReplace({
// El `.` inicial en este _id mantiene el documento privado,
// incluso en un dataset público.
_id: 'generaltranslation.secrets',
_type: 'generaltranslation.secrets',
secret: process.env.GT_API_KEY,
project: process.env.GT_PROJECT_ID,
});
```
Ejecuta el script con tus credenciales:
```bash
GT_API_KEY=your-api-key GT_PROJECT_ID=your-project-id npx sanity exec populateSecrets.js --with-user-token
```
El `_id` del documento debe coincidir con el `secretsNamespace` del plugin (valor predeterminado: `generaltranslation.secrets`). El plugin lee el campo `secret` como la clave de API y el campo `project` como el ID del proyecto.
Verifica que el documento exista con la herramienta Vision en tu Studio:
```text
*[_id == 'generaltranslation.secrets']
```
Si usas varios conjuntos de datos, repite este paso para cada uno. Después de verificarlo, elimina `populateSecrets.js`.
### 5. Traducir un documento [#translate-document]
1. Abre un documento en el idioma de origen en Sanity Studio.
2. Haz clic en **Traducir** en la barra de acciones del documento.
3. Selecciona las configuraciones regionales de destino.
4. Haz clic en **Generar traducciones**.
En el diálogo del documento, el plugin consulta periódicamente si hay traducciones completadas y las importa automáticamente. Después de la importación, actualiza las referencias del documento y publica los documentos traducidos, ya que la importación automática, la actualización automática de referencias y la publicación automática están activadas de forma predeterminada en este diálogo.
Consulta las guías completas para [traducir contenido](/docs/integrations/sanity/guides/translating-content) y [administrar traducciones](/docs/integrations/sanity/guides/managing-translations).
### 6. Consultar contenido traducido [#query-content]
Las traducciones se almacenan como documentos separados con un campo de idioma. Para obtener contenido traducido, filtra por el campo de idioma.
```text
// Los documentos del idioma de origen no establecen el campo de idioma de forma predeterminada
*[_type == "article" && !defined(language)]{
title,
slug,
body
}
```
```text
// Obtener artículos en español
*[_type == "article" && language == "es"]{
title,
slug,
body
}
```
Consulta [Consulta de traducciones](/docs/integrations/sanity/guides/querying-translations) para ver más patrones de consulta.
## 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