Zusätzliche Elementor-Widgets übersetzen
Gato AI Translations for Polylang kann widget-basierte Elementor-Seiten übersetzen.
Das Plugin wird mit Unterstützung für alle Elementor- und Elementor PRO-Widgets geliefert. Für benutzerdefinierte oder Drittanbieter-Widgets kannst du die Übersetzungsunterstützung über PHP-Hooks erweitern.
Strings übersetzen
Um zusätzliche übersetzbare Eigenschaften an einem Elementor-Widget zu deklarieren, verwende den Filter gatompl:elementor_widget_type_translatable_properties.
Der Filter empfängt eine Map [widgetName => properties]. Der Eintrag properties kann enthalten:
- Einfache Steuerelementnamen — z. B.
'author_name' - Punkt-Pfade — z. B.
'author_avatar.alt'(entsprichtsettings.author_avatar.alt) - Repeater-Felder — als Unter-Array deklariert
[repeaterName => [...subFields]]
Diese lassen sich frei kombinieren, und die Verschachtelung kann beliebig tief gehen.
Zum Beispiel macht dieser Hook:
- Das einfache Steuerelement
author_nameund den Punkt-Pfadauthor_avatar.altam Widgetblockquoteübersetzbar - Das Repeater-Unterfeld
nameinnerhalb des Repeatersslidesdes Widgetsreviewsübersetzbar
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;
}
);Derselbe Filter funktioniert sowohl für einfache Steuerelemente als auch für Repeater-Felder — es gibt keinen separaten Hook für Repeater.
Entitätsreferenzen übersetzen
Eine Eigenschaft kann eine Entitäts-ID (ein Beitrag, ein Taxonomiebegriff, ein Medienelement oder ein Menü) speichern, die zum Zeitpunkt der Übersetzung der entsprechenden Entität in der Zielsprache zugeordnet werden soll. Verwende den passenden Filter:
| Referenztyp | Filter |
|---|---|
| Custom Posts und Medien | gatompl:elementor_widget_type_custompost_and_media_reference_properties |
| Taxonomiebegriffe | gatompl:elementor_widget_type_taxonomy_term_reference_properties |
| Menüs per ID | gatompl:elementor_widget_type_menu_reference_by_id_properties |
| Menüs per Slug | gatompl:elementor_widget_type_menu_reference_by_slug_properties |
Die Struktur ist dieselbe wie beim Filter für übersetzbare Eigenschaften — einfache Namen, Punkt-Pfade oder Unter-Arrays für Repeater.
// 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;
}
);Widget- und Eigenschaftsnamen herausfinden
Führe die GraphQL-Query Translate custom posts aus und untersuche das Feld elementorData in der Antwort. Jedes Widget stellt seinen widgetType und seinen settings-Baum bereit — dort findest du die Eigenschaftsnamen (einschließlich verschachtelter Punkt-Pfade und Repeater-Felder), die du an die obigen Hooks übergeben musst.

Lies die Anleitung Seitenersteller-Daten zum Übersetzen abrufen, um zu erfahren, wie du diese Query ausführst.
Wo du Beispiele findest
Die eigenen Integrationen des Plugins sind eine nützliche Referenz. Erkunde diese Datei im installierten Plugin:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Elementor/Constants/WidgetTypes.php