# General Translation Integrations: Contenido admitido URL: https://generaltranslation.com/es/docs/integrations/storyblok/reference/supported-content.mdx --- title: Contenido admitido description: Referencia de los tipos de campo de Storyblok que traduce General Translation, de cómo se serializa el contenido y de la referencia de la API para el contenido admitido de Storyblok. --- Qué tipos de campo de Storyblok traduce General Translation, cómo maneja el texto enriquecido y las tablas, y qué formato de datos utiliza. General Translation recorre el árbol de contenido de cada story, desciende de forma recursiva por los bloques anidados y extrae los campos traducibles. ## Resumen general [#overview] | Tema | Descripción | | ----------------------------------------------- | ------------------------------------------------------------------------------- | | [Tipos de campo traducibles](#field-types) | Los tipos de campo que se envían para traducción y sus formatos de datos. | | [La marca `translatable`](#translatable-flag) | Por qué un campo debe marcarse como `translatable: true`. | | [Manejo de campos](#field-handling) | Cómo se extrae, se recorre de forma recursiva o se conserva cada tipo de campo. | | [Texto enriquecido y tablas](#rich-text-tables) | Serialización específica para los campos `richtext` y `table`. | | [Campos omitidos](#skipped-fields) | Por qué se omite un campo, según el motivo. | | [Formato de datos](#data-format) | El formato `STORYBLOK_CONTENT_JSON` y sus metadatos por clave. | ## Tipos de campo traducibles [#field-types] General Translation extrae estos tipos de campo de Storyblok y los traduce con el formato de datos indicado: | Tipo de campo | Formato de datos | | ------------- | ---------------- | | `text` | `text` | | `textarea` | `text` | | `markdown` | `markdown` | | `richtext` | `richtext` | | `table` | `table` | Tanto `text` como `textarea` se traducen como plain text. `markdown`, `richtext` y `table` conservan su estructura mediante una serialización específica. ## La marca `translatable` [#translatable-flag] Un campo compatible solo se extrae cuando está marcado como `translatable: true` en el esquema de su componente. Storyblok solo almacena traducciones a nivel de campo para los campos traducibles, por lo que un campo compatible que no sea traducible se conserva (se copia, no se traduce) en lugar de enviarse a traducción. Marca los campos como traducibles en la Block Library de Storyblok, o activa **Auto-enable supported fields** en el panel de control para que General Translation establezca esta marca en los campos compatibles de todo el space. Consulta [Configure Storyblok](/docs/integrations/storyblok/guides/configuring-storyblok#enable-fields). ## Manejo de campos [#field-handling] Cada campo de un esquema de componente se maneja con una de estas cuatro acciones: * **Extract** — el campo se traduce. Se aplica a `text`, `textarea`, `markdown`, `richtext` y `table`, pero solo cuando el campo tiene `translatable: true`. * **Recurse** — la integración desciende al contenido anidado. Se aplica a los campos `bloks`, cuyos elementos son componentes que se procesan de la misma manera. * **Preserve** — el campo se deja tal cual y no se traduce. Se aplica a `option`, `options`, `section`, `number`, `datetime` y `boolean`, así como a cualquier campo compatible que no esté marcado como traducible. * **Skip (unsupported)** — el tipo de campo no se puede traducir y se informa como omitido. Se aplica a `custom`, `asset`, `multiasset`, `multilink`, `image` y `file`. *Nota: un campo `bloks` cuyos elementos no son componentes válidos informa esos elementos como omitidos con el motivo `missing_nested_component`.* ## Texto enriquecido y tablas [#rich-text-tables] Los campos `richtext` y `table` tienen una serialización específica para que su estructura se conserve durante la traducción. * **Texto enriquecido** — el documento de texto enriquecido se serializa en un formato traducible que preserva las marcas (como la negrita y los enlaces) y los nodos inline, y luego se recompone después de la traducción. Un campo `richtext` cuyo valor no es un documento de texto enriquecido se omite con la razón `non_string_value`. * **Tablas** — las celdas del encabezado y del cuerpo de la tabla se serializan celda por celda y se recomponen después de la traducción. Un campo `table` cuyo valor no es una tabla se omite con la razón `non_string_value`; una tabla sin celdas traducibles se deja sin cambios. ## Campos omitidos [#skipped-fields] Cuando no se puede traducir un campo, se informa como omitido. El resumen de resultados agrupa los campos omitidos por componente, campo, tipo y motivo: | Motivo | Significado | | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `missing_component_schema` | El componente del bloque no tiene un esquema que la integración pueda leer. | | `unsupported_field_type` | El tipo de campo no se puede traducir (por ejemplo, `asset`, `multilink`, `image` o `custom`). | | `non_string_value` | El valor del campo no tiene el formato esperado (por ejemplo, un campo `text` que no es una cadena, o un campo `richtext` que no es un documento de texto enriquecido). | | `missing_nested_component` | Un elemento `bloks` anidado no es un componente válido. | ## Formato de datos [#data-format] El contenido extraído se sube a General Translation usando el formato de datos `STORYBLOK_CONTENT_JSON`. El payload es un objeto JSON que asigna la clave de ruta de cada campo a su cadena de origen. Junto con el payload, General Translation adjunta metadatos asociados a claves — una entrada por campo, asociada a la misma clave de ruta — para que las traducciones puedan reintegrarse en la ubicación correcta. Cada entrada puede incluir: * `id` y `pathKey` — el identificador del campo y su ruta dentro de la story. * `provider` y `resourceType` — `STORYBLOK` y `STORYBLOK_SPACE`. * `spaceId`, `storyId`, `storyName` y `storyFullSlug` — la space y la story de origen. * `component`, `field` y `fieldType` — de dónde proviene el valor y su tipo de campo en Storyblok. * `dataFormat` — el formato de datos de traducción del campo según la tabla anterior. * `displayPath` — una ruta legible usada como contexto. * `context` — contexto de traducción generado que describe la ubicación, el tipo y la story del campo. *Nota: los metadatos incluyen `context` (y pueden incluir `maxChars`) para orientar la calidad de la traducción.*