# General Translation Integrations: Gérer les traductions
URL: https://generaltranslation.com/fr/docs/integrations/sanity/guides/managing-translations.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Comment importer, corriger les références, publier en masse et gérer le comportement des champs pour les traductions 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**).

L’actualisation automatique et l’importation automatique sont activées par défaut. La correction automatique et la publication automatique sont désactivées. Les modifications apportées à ces boutons bascule et à **Save local edits** sont mémorisées dans le stockage du navigateur pour le projet et le dataset Sanity actuels.

*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.

Si une traduction au niveau du document a été supprimée alors que son entrée `translation.metadata` subsistait, l’importation de ce paramètre régional crée une traduction de remplacement et met à jour la référence dans les métadonnées. Utilisez **Import All** ou importez directement le paramètre régional ; **Import Missing** ignore les paramètres régionaux déjà enregistrés dans les métadonnées. L’importation échoue pour un document dont la source n’existe plus.

## Correction des références [#patch-references]

Les documents traduits peuvent contenir des références vers d&#39;autres documents. La correction des références réécrit chaque `_ref` afin qu&#39;il pointe vers la traduction du document référencé dans le même paramètre régional, lorsqu&#39;elle existe. Le plugin les résout à partir des documents `translation.metadata`.

Utilisez **Patch References** dans l&#39;outil Translations pour appliquer cette opération aux documents traduits existants, ou activez **Auto-patch after import** dans la boîte de dialogue d&#39;un seul document. La correction automatique est désactivée par défaut.

Si un document traduit est déjà publié et ne possède pas de brouillon, la correction crée un brouillon à partir du document publié et met à jour ce brouillon. Elle ne modifie pas directement le document publié.

## 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.

Les traductions au niveau du document importées sont créées comme brouillons. Activez **Publication automatique après l’importation** pour les publier automatiquement, ou laissez l’option désactivée par défaut afin de les vérifier avant de les publier.

## Consulter les informations de débogage [#debug-info]

Le pied de page de l’outil **Translations** et la boîte de dialogue du document affichent la version installée de `gt-sanity`. Cliquez sur **Informations de débogage** pour consulter et copier la configuration effective du plugin afin d’effectuer une demande d’assistance.

La sortie comprend les paramètres régionaux résolus, le mode de traduction, les règles relatives aux documents et aux champs, les valeurs de préférences actuelles, le nombre de traductions, le projet et le dataset Sanity, ainsi que l’indication de la présence du document de secrets. Elle n’inclut jamais l’API Key, mais indique uniquement si une clé est configurée.

## 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(`<a>${children}</a>`, value, 'markDef'),
      inlineMath: ({ value, children }) =>
        attachGTData(`<span>${children}</span>`, 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

## Sitemap

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