Genişletme
GenişletmeEk Elementor widget'larını çevirme

Ek Elementor widget'larını çevirme

Gato AI Translations for Polylang, widget tabanlı Elementor sayfalarını çevirebilir.

Eklenti, tüm Elementor ve Elementor PRO widget'ları için destek ile birlikte gelir. Özel veya üçüncü taraf widget'lar için PHP hook'ları aracılığıyla çeviri desteğini genişletebilirsiniz.

Dizeleri çevirme

Bir Elementor widget'ında ek çevrilebilir özellikler bildirmek için gatompl:elementor_widget_type_translatable_properties filtresini kullanın.

Filtre, [widgetName => properties] biçiminde bir eşleme alır. properties girdisi şunları içerebilir:

  • Düz kontrol adları — örn. 'author_name'
  • Nokta-yolu — örn. 'author_avatar.alt' (settings.author_avatar.alt olarak çözümlenir)
  • Tekrarlayıcı alanlar[repeaterName => [...subFields]] biçiminde bir alt dizi olarak bildirilir

Bunlar serbestçe birleştirilebilir ve iç içe geçme herhangi bir derinliğe kadar gidebilir.

Örneğin, şu hook şunları yapar:

  • blockquote widget'ında düz kontrol author_name ve nokta-yolu author_avatar.alt öğelerini çevrilebilir hale getirir
  • reviews widget'ının slides tekrarlayıcısındaki name alt alanını çevrilebilir hale getirir
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;
    }
);

Aynı filtre hem basit kontroller hem de tekrarlayıcı alanlar için geçerlidir — tekrarlayıcılar için ayrı bir hook yoktur.

Varlık referanslarını çevirme

Bir özellik, çeviri sırasında hedef dildeki karşılık gelen varlığa yeniden eşlenmesi gereken bir varlık kimliği (gönderi, taksonomi terimi, medya öğesi veya menü) saklayabilir. Uygun filtreyi kullanın:

Referans türüFiltre
Özel gönderiler ve medyagatompl:elementor_widget_type_custompost_and_media_reference_properties
Taksonomi terimlerigatompl:elementor_widget_type_taxonomy_term_reference_properties
ID'ye göre menülergatompl:elementor_widget_type_menu_reference_by_id_properties
Slug'a göre menülergatompl:elementor_widget_type_menu_reference_by_slug_properties

Yapı, çevrilebilir özellikler filtresiyle aynıdır — düz adlar, nokta-yolları veya tekrarlayıcılar için alt diziler.

// 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 adlarını ve özellik adlarını keşfetme

Translate custom posts GraphQL sorgusunu çalıştırın ve yanıttaki elementorData alanını inceleyin. Her widget, kendi widgetType'ını ve settings ağacını ortaya koyar — yukarıdaki hook'lara iletmeniz gereken özellik adlarını (iç içe geçmiş nokta-yolları ve tekrarlayıcı alanlar dahil) burada bulacaksınız.

Translate custom posts GraphQL yanıtında elementorData incelemesi
Translate custom posts GraphQL yanıtında elementorData incelemesi

Bu sorgunun nasıl çalıştırılacağını öğrenmek için Sayfa oluşturucu verilerini çeviri için alma kılavuzuna bakın.

Örnekleri nerede bulabilirsiniz

Eklentinin kendi entegrasyonları yararlı bir referanstır. Kurduğunuz eklentinin içindeki şu dosyayı inceleyin:

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