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
separatorTextet le cheminhome.texttraduisibles sur l'élémentbreadcrumbs - Le sous-champ
titledu répéteur traduisible dans le répéteuritemsde l'élémentteam-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érence | Filtre |
|---|---|
| Custom posts et médias | gatompl:bricks_element_type_custompost_and_media_reference_properties |
| Termes de taxonomie | gatompl:bricks_element_type_taxonomy_term_reference_properties |
| Menus par ID | gatompl:bricks_element_type_menu_reference_by_id_properties |
| Menus par slug | gatompl: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.

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