Traducir elementos de Bricks adicionales
Gato AI Translations for Polylang puede traducir páginas y plantillas de Bricks basadas en elementos.
El plugin trae soporte para todos los elementos proporcionados por Bricks. Para elementos de Bricks personalizados o de terceros, puedes ampliar el soporte de traducción mediante hooks de PHP.
Traducir cadenas
Para declarar propiedades traducibles adicionales en un elemento de Bricks, utiliza el filtro gatompl:bricks_element_type_translatable_properties.
El filtro recibe un mapa [elementName => properties]. La entrada properties puede contener:
- Nombres de controles planos: p. ej.,
'separatorText' - Rutas con puntos: p. ej.,
'home.text'(que se traduce comosettings.home.text) - Campos de repetidor: declarados como un subarray
[repeaterName => [...subFields]]
Estos se mezclan libremente, y el anidamiento puede llegar a cualquier profundidad.
Por ejemplo, este hook hace que:
- El control plano
separatorTexty la rutahome.textsean traducibles en el elementobreadcrumbs - El subcampo
titledel repetidor sea traducible dentro del repetidoritemsdel elementoteam-members
add_filter(
'gatompl:bricks_element_type_translatable_properties',
static function (array $translatableProperties): array {
$translatableProperties['breadcrumbs'][] = 'separatorText';
$translatableProperties['breadcrumbs'][] = 'home.text';
$translatableProperties['team-members']['items'][] = 'title';
return $translatableProperties;
},
10,
1
);El mismo filtro funciona tanto para controles simples como para campos de repetidor: no hay un hook independiente para los repetidores.
Traducir referencias a entidades
Una propiedad puede almacenar un ID de entidad (una entrada, término de taxonomía, elemento multimedia o menú) que debe reasignarse a la entidad correspondiente en el idioma de destino en el momento de la traducción. Utiliza el filtro adecuado:
| Tipo de referencia | Filtro |
|---|---|
| Custom posts y multimedia | gatompl:bricks_element_type_custompost_and_media_reference_properties |
| Términos de taxonomía | gatompl:bricks_element_type_taxonomy_term_reference_properties |
| Menús por ID | gatompl:bricks_element_type_menu_reference_by_id_properties |
| Menús por slug | gatompl:bricks_element_type_menu_reference_by_slug_properties |
La forma es la misma que la del filtro de propiedades traducibles: nombres planos, rutas con puntos o subarrays para repetidores.
// Custom post / media reference
add_filter(
'gatompl:bricks_element_type_custompost_and_media_reference_properties',
static function (array $properties): array {
$properties['featured-post'][] = 'post_id';
$properties['gallery']['items'][] = 'image_id';
return $properties;
}
);
// Taxonomy term reference
add_filter(
'gatompl:bricks_element_type_taxonomy_term_reference_properties',
static function (array $properties): array {
$properties['related-category'][] = 'category_id';
return $properties;
}
);
// Menu reference by ID
add_filter(
'gatompl:bricks_element_type_menu_reference_by_id_properties',
static function (array $properties): array {
$properties['menu-picker'][] = 'menu_id';
return $properties;
}
);
// Menu reference by slug
add_filter(
'gatompl:bricks_element_type_menu_reference_by_slug_properties',
static function (array $properties): array {
$properties['menu-picker'][] = 'menu_slug';
return $properties;
}
);Descubrir nombres de elementos y de propiedades
Ejecuta la consulta GraphQL Translate custom posts e inspecciona el campo bricksData en la respuesta. Cada elemento expone su name y su árbol de settings: ahí encontrarás los nombres de propiedad (incluidas las rutas anidadas con puntos y los campos de repetidor) que necesitas pasar a los hooks anteriores.

Consulta la guía Obtener datos del page builder a traducir para saber cómo ejecutar esa consulta.
Dónde encontrar ejemplos
Las propias integraciones del plugin son una referencia útil. Explora este fichero dentro del plugin que has instalado:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php