# General Translation Integrations: Gestionar traducciones
URL: https://generaltranslation.com/es/docs/integrations/sanity/guides/managing-translations.mdx
---
title: Gestionar traducciones
description: Cómo importar, aplicar parches a referencias, publicar en bloque y gestionar el comportamiento de los campos para las traducciones de Sanity.
related:
links:
- /docs/integrations/sanity/guides/translating-content
- /docs/integrations/sanity/guides/querying-translations
- /docs/integrations/sanity/guides/configuring-sanity
---
Gestiona las traducciones generadas en Sanity tras la configuración inicial con las herramientas de traducción del plugin.
Esta guía abarca la herramienta **Translations** para todo el sitio, la aplicación de parches a referencias, la publicación en bloque, el comportamiento de los campos y la serialización personalizada.
## Usa la herramienta Translations [#translations-tool]
El plugin registra una herramienta **Translations** para todo el sitio que muestra todos los documentos traducibles. Desde ella puedes:
* Generar traducciones para todos los documentos (**Translate All**).
* Conservar las traducciones actuales de Sanity antes de ejecuciones posteriores (**Save local edits**).
* Enviar las traducciones actuales de Sanity a General Translation sin iniciar una ejecución (**Guardar ediciones locales**).
* Importar todas las traducciones listas, sobrescribiendo las existentes (**Import All**).
* Importar solo las traducciones que aún no estén registradas en los metadatos del documento fuente (**Import Missing**).
* Importar todas las traducciones listas, sobrescribiendo las existentes (**Import All**).
* Publicar documentos traducidos cuyo documento fuente esté publicado (**Publish Translations**).
Activa **Auto-refresh** para consultar periódicamente el estado de la traducción, o usa **Refresh** para comprobarlo una sola vez.
*Nota: **Import Missing**, **Aplicar parches a referencias** y **Publish Translations** dependen de `translation.metadata` a nivel de documento. Para la localización a nivel de campo, usa **Import All** o importa una configuración regional desde su fila de estado, y luego revisa y publica el documento fuente mediante el flujo de trabajo normal de Sanity.*
Consulta [Conservar las ediciones de las traducciones](/docs/integrations/sanity/guides/translating-content#preserve-edits) para elegir entre el interruptor y la acción bajo demanda.
## Importar traducciones [#import]
Las traducciones generadas deben importarse en Sanity. Para la localización a nivel de documento, el plugin fusiona los campos traducidos en un documento de configuración regional, de modo que los campos que no se enviaron a traducir se conservan. Para la localización a nivel de campo, fusiona los valores traducidos en las listas internacionalizadas del documento fuente.
* Para un solo documento, importa desde la acción **Traducir** o desde la pestaña opcional **General Translation**.
* Para varios documentos, usa **Import All** o **Import Missing** en la herramienta **Translations**.
## Corregir referencias [#patch-references]
Los documentos traducidos pueden hacer referencia a otros documentos. La aplicación de parches a referencias reescribe cada referencia `_ref` para que apunte a la traducción del documento referenciado en la misma configuración regional, cuando exista. El plugin resuelve estas referencias a partir de los documentos `translation.metadata`.
Usa **Aplicar parches a referencias** en la herramienta Translations para ejecutar esto en los documentos traducidos existentes. En el diálogo de documento único, también se ejecuta automáticamente después de la importación (allí la corrección automática está activada de forma predeterminada).
## Publicar traducciones [#publish]
Usa **Publish Translations** para publicar documentos traducidos de forma masiva. El plugin publica solo los documentos traducidos cuyo documento fuente ya está publicado. Esto resulta útil después de importar muchas traducciones o de aplicar parches a referencias en toda una configuración regional.
## Gestiona el comportamiento de los campos [#field-behavior]
Usa selectores de campos cuando algunos campos no deban traducirse de la forma habitual. Cada selector se aplica a campos con una expresión JSONPath `property` y, opcionalmente, un `_id` de documento.
### Copiar campos sin traducir
Usa `ignoreFields` para los campos que deban copiarse del documento fuente sin enviarse a la API de traducción, como categorías, etiquetas o metadatos internos.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
ignoreFields: [
{ fields: [{ property: '$.category' }] },
{ fields: [{ property: '$..linkType' }] },
],
});
```
### Copiar campos y hacerlos únicos
Usa `dedupeFields` para los campos que deben partir del valor de origen, pero volverse únicos para cada configuración regional. Esto es habitual en los slugs.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
dedupeFields: [{ fields: [{ property: '$.slug', type: 'slug' }] }],
});
```
Para un slug de Sanity, `{ _type: 'slug', current: 'about' }` se convierte en `{ _type: 'slug', current: 'about-es' }` para el español. Si más adelante un editor cambia el slug traducido, las importaciones futuras conservarán ese valor editado.
### Excluir campos de las traducciones
Usa `skipFields` para los campos que no deban copiarse en absoluto a los documentos traducidos, como metadatos solo del source o slugs que los editores configuran manualmente para cada idioma.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
skipFields: [
{ fields: [{ property: '$.slug', type: 'slug' }] },
{ fields: [{ property: '$.canonicalUrl' }] },
],
});
```
Consulta la [referencia de los *field matchers*](/docs/integrations/sanity/reference/plugin-configuration#field-matchers) para ver el tipo completo.
## Evita que se traduzcan los tipos personalizados [#stop-types]
De forma predeterminada, el plugin conserva un conjunto de tipos de esquema no traducibles. Usa `additionalStopTypes` para añadir tus propios tipos personalizados.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
additionalStopTypes: ['codeBlock', 'mux.video', 'mux.videoAsset'],
});
```
Consulta la lista completa de [tipos de exclusión predeterminados](/docs/integrations/sanity/reference/plugin-configuration#stop-types).
## Personaliza la serialización [#serialization]
El plugin convierte los documentos a HTML para traducirlos y luego los vuelve a convertir. La mayoría de los proyectos no necesitan cambiar esto. Usa serializadores personalizados solo cuando tu schema tenga marcas o tipos de bloque personalizados que los predeterminados no admiten.
```ts title="sanity.config.ts"
import { attachGTData, gtPlugin } from 'gt-sanity';
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
additionalSerializers: {
marks: {
link: ({ value, children }) =>
attachGTData(`${children}`, value, 'markDef'),
inlineMath: ({ value, children }) =>
attachGTData(`${children}`, value, 'markDef'),
},
},
});
```
`attachGTData(html, data, 'markDef')` inserta los datos de la marca en el HTML serializado para que el plugin pueda reconstruirla al volver a integrar la traducción. Consulta la [referencia de serialización](/docs/integrations/sanity/reference/plugin-configuration#serialization).
## Next steps
- /docs/integrations/sanity/guides/translating-content
- /docs/integrations/sanity/guides/querying-translations
- /docs/integrations/sanity/guides/configuring-sanity