# General Translation Integrations: Contenu pris en charge URL: https://generaltranslation.com/fr/docs/integrations/storyblok/reference/supported-content.mdx --- title: Contenu pris en charge description: Référence des types de champs Storyblok traduits par General Translation et de la manière dont le contenu est sérialisé. Référence API du contenu Storyblok pris en charge. --- Les types de champs Storyblok traduits par General Translation, la façon dont il gère le texte enrichi et les tableaux, ainsi que le format de données utilisé. General Translation parcourt l’arborescence de contenu de chaque story, descend récursivement dans les blocs imbriqués et extrait les champs traduisibles. ## Vue d’ensemble [#overview] | Sujet | Description | | ----------------------------------------------- | --------------------------------------------------------------------------- | | [Types de champs traduisibles](#field-types) | Les types de champs envoyés à la traduction et leurs formats de données. | | [L’indicateur translatable](#translatable-flag) | Pourquoi un champ doit être marqué `translatable: true`. | | [Gestion des champs](#field-handling) | Comment chaque type de champ est extrait, traité récursivement ou conservé. | | [Texte enrichi et tableaux](#rich-text-tables) | Sérialisation dédiée aux champs `richtext` et `table`. | | [Champs ignorés](#skipped-fields) | Pourquoi un champ est ignoré, en fonction du motif. | | [Format des données](#data-format) | Le format `STORYBLOK_CONTENT_JSON` et ses métadonnées associées aux clés. | ## Types de champs traduisibles [#field-types] General Translation extrait ces types de champs Storyblok et les traduit à l’aide du format de données indiqué : | Type de champ | Format de données | | ------------- | ----------------- | | `text` | `text` | | `textarea` | `text` | | `markdown` | `markdown` | | `richtext` | `richtext` | | `table` | `table` | `text` et `textarea` sont tous deux traduits en texte brut. `markdown`, `richtext` et `table` conservent leur structure grâce à une sérialisation dédiée. ## L’indicateur translatable [#translatable-flag] Un champ pris en charge n’est extrait que s’il est marqué `translatable: true` dans le schéma de son composant. Storyblok ne stocke les traductions au niveau des champs que pour les champs traduisibles. Par conséquent, un champ pris en charge qui n’est pas traduisible est conservé (copié, et non traduit) au lieu d’être envoyé pour traduction. Marquez les champs comme traduisibles dans la Block Library de Storyblok, ou cochez **Activer automatiquement les champs pris en charge** dans le Dashboard pour que General Translation active cet indicateur sur les champs pris en charge dans tout l’espace. Voir [Configurer Storyblok](/docs/integrations/storyblok/guides/configuring-storyblok#enable-fields). ## Gestion des champs [#field-handling] Chaque champ d’un schéma de composant relève de l’une des quatre actions suivantes : * **Extract** — le champ est traduit. S’applique à `text`, `textarea`, `markdown`, `richtext` et `table`, mais uniquement si le champ est `translatable: true`. * **Recurse** — l’intégration parcourt le contenu imbriqué. S’applique aux champs `bloks`, dont les éléments sont des composants traités de la même façon. * **Preserve** — le champ est conservé tel quel et n’est pas traduit. S’applique à `option`, `options`, `section`, `number`, `datetime` et `boolean`, ainsi qu’à tout champ pris en charge qui n’est pas marqué comme traduisible. * **Skip (unsupported)** — le type de champ ne peut pas être traduit et est signalé comme ignoré. S’applique à `custom`, `asset`, `multiasset`, `multilink`, `image` et `file`. *Remarque : un champ `bloks` dont les éléments ne sont pas des composants valides signale ces éléments comme ignorés avec le motif `missing_nested_component`.* ## Texte enrichi et tableaux [#rich-text-tables] Les champs `richtext` et `table` bénéficient d’une sérialisation dédiée afin que leur structure soit préservée pendant la traduction. * **Texte enrichi** — le document de texte enrichi est sérialisé dans un format traduisible qui préserve les marques (comme le gras et les liens) ainsi que les nœuds inline, puis reconstitué après la traduction. Un champ `richtext` dont la valeur n’est pas un document de texte enrichi est ignoré avec le motif `non_string_value`. * **Tableaux** — les cellules de l’en-tête et du corps du tableau sont sérialisées cellule par cellule, puis reconstituées après la traduction. Un champ `table` dont la valeur n’est pas un tableau est ignoré avec le motif `non_string_value` ; un tableau sans cellule traduisible est laissé inchangé. ## Champs ignorés [#skipped-fields] Lorsqu’un champ ne peut pas être traduit, il est signalé comme ignoré. Le récapitulatif des résultats regroupe les champs ignorés par composant, champ, type et motif : | Raison | Signification | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `missing_component_schema` | Le composant du bloc n’a pas de schéma que l’intégration puisse lire. | | `unsupported_field_type` | Le type de champ n’est pas traduisible (par exemple `asset`, `multilink`, `image` ou `custom`). | | `non_string_value` | La valeur du champ n’a pas le format attendu (par exemple un champ `text` qui n’est pas une string, ou un champ `richtext` qui n’est pas un document de texte enrichi). | | `missing_nested_component` | Un élément `bloks` imbriqué n’est pas un composant valide. | ## Format de données [#data-format] Le contenu extrait est téléversé vers General Translation à l’aide du format de données `STORYBLOK_CONTENT_JSON`. Le payload est un objet JSON qui associe la clé de chemin de chaque champ à sa chaîne source. En plus du payload, General Translation joint des keyed metadata — une entry par champ, indexée par la même clé de chemin — afin que les traductions puissent être réintégrées au bon emplacement. Chaque entry peut inclure : * `id` et `pathKey` — l’identifiant du champ et son chemin dans la story. * `provider` et `resourceType` — `STORYBLOK` et `STORYBLOK_SPACE`. * `spaceId`, `storyId`, `storyName` et `storyFullSlug` — l’espace source et la story. * `component`, `field` et `fieldType` — l’origine de la valeur et son type de champ Storyblok. * `dataFormat` — le format de données de traduction du champ issu du tableau ci-dessus. * `displayPath` — un chemin lisible utilisé comme context. * `context` — un context de traduction généré qui décrit l’emplacement, le type et la story du champ. *Remarque : les métadonnées incluent `context` (et peuvent inclure `maxChars`) pour améliorer la qualité de la traduction.*