Traduzindo widgets Elementor adicionais
Gato AI Translations for Polylang pode traduzir páginas Elementor baseadas em widgets.
O plugin inclui suporte para todos os widgets do Elementor e Elementor PRO. Para widgets personalizados ou de terceiros, você pode estender o suporte à tradução via hooks PHP.
Traduzindo strings
Para declarar propriedades traduzíveis adicionais em um widget Elementor, use o filtro gatompl:elementor_widget_type_translatable_properties.
O filtro recebe um mapa [widgetName => properties]. A entrada properties pode conter:
- Nomes de controles simples — ex.:
'author_name' - Caminhos com ponto — ex.:
'author_avatar.alt'(corresponde asettings.author_avatar.alt) - Campos repeater — declarados como um sub-array
[repeaterName => [...subFields]]
Esses elementos se combinam livremente, e o aninhamento pode ir a qualquer profundidade.
Por exemplo, este hook torna:
- O controle simples
author_namee o caminho com pontoauthor_avatar.alttraduzíveis no widgetblockquote - O sub-campo
namedo repeater traduzível dentro do repeaterslidesdo 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;
}
);O mesmo filtro funciona tanto para controles simples quanto para campos repeater — não existe um hook separado para repeaters.
Traduzindo referências a entidades
Uma propriedade pode armazenar o ID de uma entidade (um post, termo de taxonomia, item de mídia ou menu) que deve ser remapeado para a entidade correspondente no idioma de destino no momento da tradução. Use o filtro adequado:
| Tipo de referência | Filtro |
|---|---|
| Custom posts e mídia | gatompl:elementor_widget_type_custompost_and_media_reference_properties |
| Termos de taxonomia | gatompl:elementor_widget_type_taxonomy_term_reference_properties |
| Menus por ID | gatompl:elementor_widget_type_menu_reference_by_id_properties |
| Menus por slug | gatompl:elementor_widget_type_menu_reference_by_slug_properties |
A estrutura é a mesma do filtro de propriedades traduzíveis — nomes simples, caminhos com ponto ou sub-arrays para repeaters.
// 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;
}
);Descobrindo nomes de widgets e propriedades
Execute a query GraphQL Translate custom posts e inspecione o campo elementorData na resposta. Cada widget expõe seu widgetType e sua árvore de settings — é lá que você encontrará os nomes das propriedades (incluindo caminhos aninhados com ponto e campos repeater) que precisa passar para os hooks acima.

Consulte o guia Recuperando dados do page builder para traduzir para saber como executar essa query.
Onde encontrar exemplos
As próprias integrações do plugin são uma referência útil. Explore este arquivo dentro do plugin que você instalou:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Elementor/Constants/WidgetTypes.php