Genişletme
GenişletmeEk Bricks öğelerini çevirmek

Ek Bricks öğelerini çevirmek

Gato AI Translations for Polylang, öğe tabanlı Bricks sayfalarını ve şablonlarını çevirebilir.

Eklenti, Bricks tarafından sağlanan tüm öğeler için destek ile birlikte gelir. Özel veya üçüncü taraf Bricks öğeleri için çeviri desteğini PHP kancaları aracılığıyla genişletebilirsiniz.

Dizeleri çevirmek

Bir Bricks öğesine ek çevrilebilir özellikler tanımlamak için gatompl:bricks_element_type_translatable_properties filtresini kullanın.

Filtre, [elementName => properties] biçiminde bir eşlem alır. properties girişi şunları içerebilir:

  • Düz kontrol adları — örn. 'separatorText'
  • Nokta yolları — örn. 'home.text' (settings.home.text olarak karşılık gelir)
  • Tekrarlayıcı alanlar[repeaterName => [...subFields]] biçiminde bir alt dizi olarak tanımlanır

Bunlar serbestçe karıştırılabilir ve iç içe geçme herhangi bir derinliğe ulaşabilir.

Örneğin, bu kanca şunları yapar:

  • breadcrumbs öğesinde düz kontrol separatorText ve nokta yolu home.text çevrilebilir hale gelir
  • team-members öğesinin items tekrarlayıcısı içindeki title alt alanı çevrilebilir hale gelir
add_filter(
    'gatompl:bricks_element_type_translatable_properties',
    static function (array $translatableProperties): array {
        $translatableProperties['breadcrumbs'][] = 'separatorText';
        $translatableProperties['breadcrumbs'][] = 'home.text';
        $translatableProperties['team-members']['items'][] = 'title';
        return $translatableProperties;
    },
    10,
    1
);

Aynı filtre hem basit kontroller hem de tekrarlayıcı alanlar için çalışır — tekrarlayıcılar için ayrı bir kanca yoktur.

Varlık referanslarını çevirmek

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

Referans türüFiltre
Özel gönderiler ve medyagatompl:bricks_element_type_custompost_and_media_reference_properties
Taksonomi terimlerigatompl:bricks_element_type_taxonomy_term_reference_properties
ID ile menülergatompl:bricks_element_type_menu_reference_by_id_properties
Slug ile menülergatompl:bricks_element_type_menu_reference_by_slug_properties

Biçim, ç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:bricks_element_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:bricks_element_type_taxonomy_term_reference_properties',
    static function (array $properties): array {
        $properties['related-category'][] = 'category_id';
        return $properties;
    }
);
 
// Menu reference by ID
add_filter(
    'gatompl:bricks_element_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:bricks_element_type_menu_reference_by_slug_properties',
    static function (array $properties): array {
        $properties['menu-picker'][] = 'menu_slug';
        return $properties;
    }
);

Öğe adlarını ve özellik adlarını keşfetmek

Translate custom posts GraphQL sorgusunu çalıştırın ve yanıttaki bricksData alanını inceleyin. Her öğe, name ve settings ağacını gösterir — yukarıdaki kancalara geçirmeniz 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 bricksData inceleniyor
Translate custom posts GraphQL yanıtında bricksData inceleniyor

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

Örnekleri nerede bulabilirsiniz

Eklentinin kendi entegrasyonları faydalı bir referanstır. Kurduğunuz eklentinin içinde bu dosyayı inceleyin:

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