Étendre
ÉtendreTraduire des éléments Bricks supplémentaires

Traduire des éléments Bricks supplémentaires

Gato AI Translations for Polylang peut traduire les pages et les modèles Bricks basés sur des éléments.

Le plugin est livré avec une prise en charge de tous les éléments fournis par Bricks. Pour les éléments Bricks personnalisés ou tiers, vous pouvez étendre la prise en charge de la traduction via des hooks PHP.

Traduire des chaînes

Pour déclarer des propriétés traduisibles supplémentaires sur un élément Bricks, utilisez le filtre gatompl:bricks_element_type_translatable_properties.

Le filtre reçoit une map [elementName => properties]. L'entrée properties peut contenir :

  • Noms de contrôles plats — par ex. 'separatorText'
  • Chemins avec points — par ex. 'home.text' (correspond à settings.home.text)
  • Champs de répéteur — déclarés sous la forme d'un sous-tableau [repeaterName => [...subFields]]

Ces éléments se mélangent librement, et l'imbrication peut aller à n'importe quelle profondeur.

Par exemple, ce hook rend :

  • Le contrôle plat separatorText et le chemin home.text traduisibles sur l'élément breadcrumbs
  • Le sous-champ title du répéteur traduisible dans le répéteur items de l'élément team-members
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
);

Le même filtre fonctionne à la fois pour les contrôles simples et les champs de répéteur — il n'y a pas de hook séparé pour les répéteurs.

Traduire les références d'entités

Une propriété peut stocker un ID d'entité (un article, un terme de taxonomie, un élément média ou un menu) qui doit être remappé vers l'entité correspondante dans la langue cible au moment de la traduction. Utilisez le filtre correspondant :

Type de référenceFiltre
Custom posts et médiasgatompl:bricks_element_type_custompost_and_media_reference_properties
Termes de taxonomiegatompl:bricks_element_type_taxonomy_term_reference_properties
Menus par IDgatompl:bricks_element_type_menu_reference_by_id_properties
Menus par sluggatompl:bricks_element_type_menu_reference_by_slug_properties

La forme est la même que celle du filtre des propriétés traduisibles — noms plats, chemins avec points ou sous-tableaux pour les répéteurs.

// 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;
    }
);

Découvrir les noms d'éléments et de propriétés

Exécutez la query GraphQL Translate custom posts et inspectez le champ bricksData dans la réponse. Chaque élément expose son name et son arbre de settings — c'est là que vous trouverez les noms de propriétés (y compris les chemins imbriqués avec points et les champs de répéteur) que vous devez passer aux hooks ci-dessus.

Inspection de bricksData dans la réponse GraphQL de Translate custom posts
Inspection de bricksData dans la réponse GraphQL de Translate custom posts

Consultez le guide Obtenir les données du page builder à traduire pour savoir comment exécuter cette query.

Où trouver des exemples

Les propres intégrations du plugin sont une référence utile. Explorez ce fichier dans le plugin que vous avez installé :

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