Erweitern
ErweiternZusätzliche Elementor-Widgets übersetzen

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' (entspricht settings.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_name und den Punkt-Pfad author_avatar.alt am Widget blockquote übersetzbar
  • Das Repeater-Unterfeld name innerhalb des Repeaters slides des Widgets reviews ü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:

ReferenztypFilter
Custom Posts und Mediengatompl:elementor_widget_type_custompost_and_media_reference_properties
Taxonomiebegriffegatompl:elementor_widget_type_taxonomy_term_reference_properties
Menüs per IDgatompl:elementor_widget_type_menu_reference_by_id_properties
Menüs per Sluggatompl: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.

Untersuchung von elementorData in der GraphQL-Antwort von Translate custom posts
Untersuchung von elementorData in der GraphQL-Antwort von Translate custom posts

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