Traducir widgets de Elementor adicionales
Gato AI Translations for Polylang puede traducir páginas de Elementor basadas en widgets.
El plugin trae soporte para todos los widgets de Elementor y Elementor PRO. Para widgets personalizados o de terceros, puedes ampliar el soporte de traducción mediante hooks de PHP.
Traducir cadenas
Para declarar propiedades traducibles adicionales en un widget de Elementor, utiliza el filtro gatompl:elementor_widget_type_translatable_properties.
El filtro recibe un mapa [widgetName => properties]. La entrada properties puede contener:
- Nombres de controles planos: p. ej.,
'author_name' - Rutas con puntos: p. ej.,
'author_avatar.alt'(que se traduce comosettings.author_avatar.alt) - 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
author_namey la rutaauthor_avatar.altsean traducibles en el widgetblockquote - El subcampo
namedel repetidor sea traducible dentro del repetidorslidesdel widgetreviews
add_filter(
'gatompl:elementor_widget_type_translatable_properties',
static function (array $translatableProperties): array {
$translatableProperties['blockquote'][] = 'author_name';
$translatableProperties['blockquote'][] = 'author_avatar.alt';
$translatableProperties['reviews']['slides'][] = 'name';
return $translatableProperties;
}
);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:elementor_widget_type_custompost_and_media_reference_properties |
| Términos de taxonomía | gatompl:elementor_widget_type_taxonomy_term_reference_properties |
| Menús por ID | gatompl:elementor_widget_type_menu_reference_by_id_properties |
| Menús por slug | gatompl:elementor_widget_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:elementor_widget_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:elementor_widget_type_taxonomy_term_reference_properties',
static function (array $properties): array {
$properties['related-category'][] = 'category_id';
return $properties;
}
);
// Menu reference by ID
add_filter(
'gatompl:elementor_widget_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:elementor_widget_type_menu_reference_by_slug_properties',
static function (array $properties): array {
$properties['menu-picker'][] = 'menu_slug';
return $properties;
}
);Descubrir nombres de widgets y de propiedades
Ejecuta la consulta GraphQL Translate custom posts e inspecciona el campo elementorData en la respuesta. Cada widget expone su widgetType 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/Elementor/Constants/WidgetTypes.php