Estendere
EstendereTradurre widget Elementor aggiuntivi

Tradurre widget Elementor aggiuntivi

Gato AI Translations for Polylang può tradurre le pagine Elementor basate su widget.

Il plugin include il supporto per tutti i widget di Elementor ed Elementor PRO. Per i widget personalizzati o di terze parti, puoi estendere il supporto alla traduzione tramite hook PHP.

Tradurre le stringhe

Per dichiarare proprietà traducibili aggiuntive su un widget Elementor, utilizza il filtro gatompl:elementor_widget_type_translatable_properties.

Il filtro riceve una map [widgetName => properties]. La voce properties può contenere:

  • Nomi di controlli semplici — ad es. 'author_name'
  • Percorsi con punti — ad es. 'author_avatar.alt' (corrisponde a settings.author_avatar.alt)
  • Campi repeater — dichiarati come un sotto-array [repeaterName => [...subFields]]

Questi elementi si mescolano liberamente e l'annidamento può arrivare a qualsiasi profondità.

Ad esempio, questo hook rende:

  • Il controllo semplice author_name e il percorso con punti author_avatar.alt traducibili sul widget blockquote
  • Il sotto-campo name del repeater traducibile all'interno del repeater slides del widget reviews
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;
    }
);

Lo stesso filtro funziona sia per i controlli semplici sia per i campi repeater — non esiste un hook separato per i repeater.

Tradurre i riferimenti a entità

Una proprietà può memorizzare l'ID di un'entità (un post, un termine di tassonomia, un elemento multimediale o un menu) che deve essere rimappato sull'entità corrispondente nella lingua di destinazione al momento della traduzione. Utilizza il filtro corrispondente:

Tipo di riferimentoFiltro
Custom post e mediagatompl:elementor_widget_type_custompost_and_media_reference_properties
Termini di tassonomiagatompl:elementor_widget_type_taxonomy_term_reference_properties
Menu per IDgatompl:elementor_widget_type_menu_reference_by_id_properties
Menu per sluggatompl:elementor_widget_type_menu_reference_by_slug_properties

La forma è la stessa del filtro delle proprietà traducibili — nomi semplici, percorsi con punti o sotto-array per i 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;
    }
);

Scoprire i nomi dei widget e delle proprietà

Esegui la query GraphQL Translate custom posts e ispeziona il campo elementorData nella risposta. Ogni widget espone il proprio widgetType e il proprio albero di settings — è lì che troverai i nomi delle proprietà (inclusi i percorsi annidati con punti e i campi repeater) che devi passare agli hook qui sopra.

Ispezione di elementorData nella risposta GraphQL di Translate custom posts
Ispezione di elementorData nella risposta GraphQL di Translate custom posts

Consulta la guida Recuperare i dati del page builder da tradurre per sapere come eseguire questa query.

Dove trovare esempi

Le integrazioni del plugin stesso sono un riferimento utile. Esplora questo file all'interno del plugin che hai installato:

  • wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Elementor/Constants/WidgetTypes.php