# General Translation Integrations: Gestione delle traduzioni
URL: https://generaltranslation.com/it/docs/integrations/sanity/guides/managing-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Come importare, correggere i riferimenti, pubblicare in blocco e gestire il comportamento dei campi per le traduzioni di 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&#39;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**).
* Conservare le traduzioni Sanity correnti prima delle esecuzioni successive (**Salva modifiche locali**).
* Inviare le traduzioni Sanity correnti a General Translation senza avviare un&#39;esecuzione (**Salva modifiche locali**).
* 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 riferimento**).
* Pubblicare i documenti tradotti i cui documenti sorgente sono pubblicati (**Pubblica traduzioni**).

L&#39;aggiornamento automatico e l&#39;importazione automatica sono attivi per impostazione predefinita. La correzione automatica dei riferimenti e la pubblicazione automatica sono disattivate. Le modifiche a questi interruttori e a **Salva modifiche locali** vengono memorizzate nell&#39;archiviazione del browser per il progetto Sanity e il dataset correnti.

*Nota: **Importa mancanti**, **Correggi riferimento** e **Pubblica traduzioni** dipendono da `translation.metadata` a livello di documento. Per la localizzazione a livello di campo, usa **Importa tutto** oppure importa un&#39;impostazione regionale dalla relativa riga di stato, quindi rivedi e pubblica il documento sorgente tramite il normale workflow di Sanity.*

(Consulta [Mantenere le modifiche alle traduzioni](/docs/integrations/sanity/guides/translating-content#preserve-edits) per scegliere tra il toggle e l&#39;azione su richiesta).

## Importa le traduzioni [#import]

Le traduzioni generate devono essere importate in Sanity. Per la localizzazione a livello di documento, il plugin unisce i campi tradotti in un documento relativo all&#39;impostazione regionale, così i campi che non sono stati inviati per la traduzione vengono mantenuti. Per la localizzazione a livello di campo, unisce i valori tradotti negli array internazionalizzati del documento sorgente.

* Per un singolo documento, importa dall&#39;azione **Translate** o dalla scheda facoltativa **General Translation**.
* Per più documenti, usa **Importa tutto** o **Importa mancanti** nello strumento Translations.

Se una traduzione a livello di documento è stata eliminata ma la relativa voce `translation.metadata` è rimasta, importando quell&#39;impostazione regionale viene creata una traduzione sostitutiva e viene aggiornato il riferimento nei metadati. Usa **Importa tutto** oppure importa direttamente l&#39;impostazione regionale; **Importa mancanti** salta le impostazioni regionali già registrate nei metadati. L&#39;importazione di un documento non riesce se la sua sorgente non esiste più.

## 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 **Correggi riferimento** nello strumento Translations per eseguire questa operazione sui documenti tradotti esistenti, oppure attiva **Correzione automatica dei riferimenti dopo l&#39;importazione** nella finestra di dialogo del singolo documento. La correzione automatica dei riferimenti è disattivata per impostazione predefinita.

Se un documento tradotto è già pubblicato e non dispone di una bozza, la correzione crea una bozza dal documento pubblicato e aggiorna tale bozza. Non modifica direttamente il documento pubblicato.

## 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&#39;interno di un&#39;impostazione regionale.

Le traduzioni importate a livello di documento vengono create come bozze. Attiva **Pubblicazione automatica dopo l&#39;importazione** per pubblicarle automaticamente, oppure lascia disattivata l&#39;impostazione predefinita per esaminarle prima della pubblicazione.

## Visualizza le informazioni di debug [#debug-info]

Il piè di pagina dello strumento **Translations** e della finestra di dialogo del documento mostra la versione installata di `gt-sanity`. Fai clic su **Informazioni di debug** per visualizzare e copiare la configurazione effettiva del plugin per una richiesta di assistenza.

L&#39;output include le impostazioni regionali risolte, la modalità di traduzione, le regole per documenti e campi, i valori delle preferenze correnti, il numero di traduzioni, il progetto e il dataset Sanity e indica se il documento dei segreti è stato trovato. Non include mai la chiave API, ma solo se ne è configurata una.

## 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&#39;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&#39;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 matcher di campo](/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(`<a>${children}</a>`, value, 'markDef'),
      inlineMath: ({ value, children }) =>
        attachGTData(`<span>${children}</span>`, value, 'markDef'),
    },
  },
});
```

`attachGTData(html, data, 'markDef')` incorpora i dati del mark nell&#39;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/guiding-sanity

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
