# 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