Extra Elementor-widgets vertalen
Gato AI Translations for Polylang kan widgetgebaseerde Elementor-pagina's vertalen.
De plugin wordt geleverd met ondersteuning voor alle Elementor- en Elementor PRO-widgets. Voor aangepaste of externe widgets kun je de vertaalondersteuning uitbreiden via PHP-hooks.
Strings vertalen
Om extra vertaalbare eigenschappen op een Elementor-widget te declareren, gebruik je de gatompl:elementor_widget_type_translatable_properties-filter.
De filter ontvangt een [widgetName => properties]-map. Het properties-item kan het volgende bevatten:
- Platte controlenamen — bijv.
'author_name' - Dot-paden — bijv.
'author_avatar.alt'(vertaalt naarsettings.author_avatar.alt) - Repeater-velden — gedeclareerd als een sub-array
[repeaterName => [...subFields]]
Deze kunnen vrij worden gemengd en nesting kan tot elke diepte gaan.
Dit hook zorgt er bijvoorbeeld voor dat:
- De platte control
author_nameen het dot-padauthor_avatar.altvertaalbaar zijn op deblockquote-widget - Het repeater-subveld
namevertaalbaar is binnen deslides-repeater van dereviews-widget
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;
}
);Dezelfde filter werkt voor zowel eenvoudige controls als repeater-velden — er is geen aparte hook voor repeaters.
Entiteitsverwijzingen vertalen
Een eigenschap kan een entiteits-ID opslaan (een bericht, taxonomieterm, media-item of menu) dat bij het vertalen opnieuw moet worden gekoppeld aan de overeenkomstige entiteit in de doeltaal. Gebruik de bijbehorende filter:
| Soort verwijzing | Filter |
|---|---|
| Custom posts en media | gatompl:elementor_widget_type_custompost_and_media_reference_properties |
| Taxonomietermen | gatompl:elementor_widget_type_taxonomy_term_reference_properties |
| Menu's op ID | gatompl:elementor_widget_type_menu_reference_by_id_properties |
| Menu's op slug | gatompl:elementor_widget_type_menu_reference_by_slug_properties |
De structuur is hetzelfde als bij de filter voor vertaalbare eigenschappen — platte namen, dot-paden of sub-arrays voor 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;
}
);Widgetnamen en eigenschapsnamen ontdekken
Voer de GraphQL-query Translate custom posts uit en bekijk het veld elementorData in de respons. Elke widget toont zijn widgetType en zijn settings-boom — daar vind je de eigenschapsnamen (inclusief geneste dot-paden en repeater-velden) die je aan de bovenstaande hooks moet doorgeven.

Zie de handleiding Paginabouwer-gegevens ophalen om te vertalen voor meer informatie over het uitvoeren van die query.
Waar je voorbeelden kunt vinden
De eigen integraties van de plugin zijn een nuttige referentie. Bekijk dit bestand in de geinstalleerde plugin:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Elementor/Constants/WidgetTypes.php