# General Translation Integrations: Gérer les traductions
URL: https://generaltranslation.com/fr/docs/integrations/sanity/guides/managing-translations.mdx
---
title: Gérer les traductions
description: Comment importer, corriger les références, publier en masse et gérer le comportement des champs pour les traductions Sanity.
related:
links:
- /docs/integrations/sanity/guides/translating-content
- /docs/integrations/sanity/guides/querying-translations
- /docs/integrations/sanity/guides/configuring-sanity
---
Gérez les traductions Sanity générées après la configuration à l’aide des outils de traduction du plugin.
Ce guide couvre l’outil **Translations** pour l’ensemble du site, la correction des références, la publication groupée, le comportement des champs et la sérialisation personnalisée.
## Utilisez l’outil Translations [#translations-tool]
Le plugin ajoute un outil **Translations** disponible sur l’ensemble du site, qui répertorie tous les documents traduisibles. Il vous permet de :
* Générer des traductions pour tous les documents (**Translate All**).
* Préserver les traductions Sanity actuelles avant les exécutions ultérieures (**Save local edits**).
* Envoyer les traductions Sanity actuelles à General Translation sans lancer d’exécution (**Save Local Edits**).
* Importer toutes les traductions prêtes, en écrasant les existantes (**Import All**).
* Importer uniquement les traductions qui ne sont pas encore enregistrées dans les métadonnées du document source (**Import Missing**).
* Corriger les références entre les documents traduits (**Patch References**).
* Publier les documents traduits dont le document source est publié (**Publish Translations**).
Activez **Auto-refresh** pour vérifier régulièrement l’état des traductions, ou utilisez **Refresh** pour effectuer une vérification ponctuelle.
*Remarque : **Import Missing**, **Patch References** et **Publish Translations** dépendent de `translation.metadata` au niveau du document. Pour la localisation au niveau des champs, utilisez **Import All** ou importez un paramètre régional depuis sa ligne d’état, puis vérifiez et publiez le document source via le workflow normal de Sanity.*
Consultez [Conserver les modifications apportées aux traductions](/docs/integrations/sanity/guides/translating-content#preserve-edits) pour choisir entre le bouton bascule et l’action à la demande.
## Importer les traductions [#import]
Les traductions générées doivent être importées dans Sanity. Pour la localisation au niveau du document, le plugin fusionne les champs traduits dans un document de paramètre régional, de sorte que les champs qui n’ont pas été envoyés à la traduction soient conservés. Pour la localisation au niveau des champs, il fusionne les valeurs traduites dans les tableaux internationalisés du document source.
* Pour un seul document, importez-le à partir de l’action **Translate** ou de l’onglet facultatif **General Translation**.
* Pour plusieurs documents, utilisez **Import All** ou **Import Missing** dans l’outil Translations.
## Correction des références [#patch-references]
Les documents traduits peuvent contenir des références vers d'autres documents. La correction des références réécrit chaque `_ref` afin qu'il pointe vers la traduction du document référencé dans le même paramètre régional, lorsqu'elle existe. Le plugin les résout à partir des documents `translation.metadata`.
Utilisez **Patch References** dans l'outil Translations pour appliquer cette opération aux documents traduits existants. Dans la boîte de dialogue d'un seul document, elle s'exécute aussi automatiquement après l'importation (la correction automatique y est activée par défaut).
## Publier les traductions [#publish]
Utilisez **Publish Translations** pour publier des documents traduits en lot. Le plugin publie uniquement les documents traduits dont le document source est publié. Cela est utile après l’importation d’un grand nombre de traductions ou la correction des références à l’échelle d’un paramètre régional.
## Gérer le comportement des champs [#field-behavior]
Utilisez des sélecteurs de champs lorsque certains champs ne doivent pas être traduits de manière habituelle. Chaque sélecteur cible des champs à l’aide d’une expression JSONPath `property` et, éventuellement, d’un `_id` de document.
### Copier des champs sans les traduire
Utilisez `ignoreFields` pour les champs qui doivent être copiés à partir du document source sans être envoyés à l’API de traduction, comme les catégories, les tags ou les métadonnées internes.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
ignoreFields: [
{ fields: [{ property: '$.category' }] },
{ fields: [{ property: '$..linkType' }] },
],
});
```
### Copier des champs et les rendre uniques
Utilisez `dedupeFields` pour les champs qui doivent partir de la valeur source, puis devenir uniques pour chaque paramètre régional. C’est fréquent pour les slugs.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
dedupeFields: [{ fields: [{ property: '$.slug', type: 'slug' }] }],
});
```
Pour un slug Sanity, `{ _type: 'slug', current: 'about' }` devient `{ _type: 'slug', current: 'about-es' }` en espagnol. Si un éditeur modifie ensuite le slug traduit, les importations ultérieures conservent cette valeur modifiée.
### Exclure des champs des traductions
Utilisez `skipFields` pour les champs qui ne doivent jamais être copiés dans les documents traduits, par exemple les métadonnées propres à la source ou les slugs que les éditeurs définissent manuellement pour chaque langue.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
skipFields: [
{ fields: [{ property: '$.slug', type: 'slug' }] },
{ fields: [{ property: '$.canonicalUrl' }] },
],
});
```
Consultez la [référence des sélecteurs de champ](/docs/integrations/sanity/reference/plugin-configuration#field-matchers) pour connaître le type complet.
## Empêcher la traduction de types personnalisés [#stop-types]
Par défaut, le plugin conserve une liste de types de schéma non traduisibles. Utilisez `additionalStopTypes` pour ajouter vos propres types personnalisés.
```ts
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'zh', 'ja'],
additionalStopTypes: ['codeBlock', 'mux.video', 'mux.videoAsset'],
});
```
Consultez la liste complète des [types exclus par défaut](/docs/integrations/sanity/reference/plugin-configuration#stop-types).
## Personnaliser la sérialisation [#serialization]
Le plugin convertit les documents en HTML pour la traduction, puis les reconvertit. La plupart des projets n’ont pas besoin de modifier ce comportement. Utilisez des sérialiseurs personnalisés uniquement lorsque votre schéma comporte des marques personnalisées ou des types de blocs que ceux par défaut ne prennent pas en charge.
```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')` intègre les données de la marque au HTML sérialisé pour que le plugin puisse reconstruire la marque lorsqu’il réinsère la traduction. Consultez la [référence de sérialisation](/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