# General Translation Integrations: Gestione delle traduzioni
URL: https://generaltranslation.com/it/docs/integrations/sanity/guides/managing-translations.mdx
---
title: Gestione delle traduzioni
description: "Come gestire le traduzioni di General Translation per Sanity: questa guida illustra le importazioni, la correzione dei riferimenti, la pubblicazione in blocco e il comportamento dei campi."
related:
links:
- /docs/integrations/sanity/guides/translating-content
- /docs/integrations/sanity/guides/querying-translations
- /docs/integrations/sanity/guides/configuring-sanity
---
Gestisci le traduzioni generate in Sanity dopo la configurazione usando gli strumenti di traduzione del plugin.
Questa guida illustra lo strumento **Translations** per l'intero sito, la correzione dei riferimenti, la pubblicazione in blocco, il comportamento dei campi e la serializzazione personalizzata.
## Usa lo strumento Translations [#translations-tool]
Il plugin registra uno strumento **Translations** valido per tutto il sito che elenca tutti i documenti traducibili. Da qui puoi:
* Generare le traduzioni per tutti i documenti (**Traduci tutto**).
* Importare tutte le traduzioni pronte, sovrascrivendo quelle esistenti (**Importa tutto**).
* Importare solo le traduzioni non ancora registrate nei metadati del documento sorgente (**Importa mancanti**).
* Correggere i riferimenti tra i documenti tradotti (**Correggi i riferimenti ai documenti**).
* Pubblicare i documenti tradotti i cui documenti sorgente sono pubblicati (**Pubblica traduzioni**).
Attiva **Aggiornamento automatico** per controllare periodicamente lo stato della traduzione, oppure usa **Aggiorna stato** per effettuare un solo controllo.
## Importa le traduzioni [#import]
Le traduzioni generate devono essere importate in Sanity prima che compaiano come documenti tradotti. Durante l'importazione, il plugin unisce i campi tradotti al documento sorgente, così i campi che non sono stati inviati per la traduzione vengono mantenuti.
* Per un singolo documento, importa dall'azione **Translate** o dalla scheda facoltativa **General Translation**.
* Per più documenti, usa **Import All** o **Import Missing** nello strumento Translations.
## Correzione dei riferimenti [#patch-references]
I documenti tradotti possono fare riferimento ad altri documenti. La correzione dei riferimenti riscrive ogni riferimento `_ref` in modo che rimandi alla traduzione del documento di destinazione per la stessa impostazione regionale, quando esiste. Il plugin ricava queste informazioni dai documenti `translation.metadata`.
Usa **Patch Document References** nello strumento Translations per eseguire questa operazione sui documenti tradotti esistenti. Nella finestra di dialogo del singolo documento, viene eseguita automaticamente anche dopo l'importazione (l'auto-patch è attivato per impostazione predefinita).
## Pubblica traduzioni [#publish]
Usa **Pubblica traduzioni** per pubblicare in blocco i documenti tradotti. Il plugin pubblica solo i documenti di traduzione il cui documento sorgente è già pubblicato. È utile dopo aver importato molte traduzioni o aver aggiornato i riferimenti all'interno di un'impostazione regionale.
## Gestire il comportamento dei campi [#field-behavior]
Usa i matcher dei campi quando alcuni campi non devono essere tradotti nel modo consueto. Ogni matcher si applica ai campi con un'espressione JSONPath `property` e, facoltativamente, un `_id` del documento.
### Copiare i campi senza tradurli
Usa `ignoreFields` per i campi che devono essere copiati dal documento sorgente senza essere inviati all'API di traduzione, ad esempio categorie, tag o metadati interni.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
ignoreFields: [
{ fields: [{ property: '$.category' }] },
{ fields: [{ property: '$..linkType' }] },
],
});
```
### Copia i campi e rendili univoci
Usa `dedupeFields` per i campi che devono partire dal valore sorgente ma diventare univoci per ogni impostazione regionale. È tipico degli slug.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
dedupeFields: [{ fields: [{ property: '$.slug', type: 'slug' }] }],
});
```
Per uno slug di Sanity, `{ _type: 'slug', current: 'about' }` diventa `{ _type: 'slug', current: 'about-es' }` in spagnolo. Se in seguito un editor modifica lo slug tradotto, le importazioni successive manterranno quel valore modificato.
### Escludere campi dalle traduzioni
Usa `skipFields` per i campi che non devono essere copiati nei documenti tradotti, ad esempio i metadati presenti solo nella sorgente o gli slug che gli editor impostano manualmente per ciascuna lingua.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
skipFields: [
{ fields: [{ property: '$.slug', type: 'slug' }] },
{ fields: [{ property: '$.canonicalUrl' }] },
],
});
```
Consulta il [riferimento sui field matcher](/docs/integrations/sanity/reference/plugin-configuration#field-matchers) per la definizione completa del tipo.
## Impedisci la traduzione dei tipi personalizzati [#stop-types]
Per impostazione predefinita, il plugin mantiene un insieme di tipi di schema non traducibili. Usa `additionalStopTypes` per aggiungere i tuoi tipi personalizzati.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
additionalStopTypes: ['codeBlock', 'mux.video', 'mux.videoAsset'],
});
```
Vedi l’elenco completo degli [stop types predefiniti](/docs/integrations/sanity/reference/plugin-configuration#stop-types).
## Personalizza la serializzazione [#serialization]
Il plugin converte i documenti in HTML per la traduzione e poi di nuovo nel formato originale. Nella maggior parte dei progetti non è necessario modificarla. Usa serializzatori personalizzati solo quando il tuo schema include mark personalizzati o tipi di blocco che quelli predefiniti non gestiscono.
```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')` incorpora i dati del mark nell'HTML serializzato, in modo che il plugin possa ricostruire il mark quando reinserisce la traduzione. Consulta il [riferimento sulla serializzazione](/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