# General Translation Integrations: Contenido admitido
URL: https://generaltranslation.com/es/docs/integrations/storyblok/reference/supported-content.mdx
Docs index: https://generaltranslation.com/llms.txt
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.

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

## Sitemap

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