Gutenberg
La prise en charge de Gutenberg est intégrée, pour traduire tous les blocs de votre contenu Gutenberg.
Gato AI Translations for Polylang extrait les chaînes des blocs du contenu Gutenberg et traduit uniquement ces chaînes, garantissant que le contenu n'est en aucun cas altéré.
Nativement, les types de blocs suivants sont pris en charge automatiquement :
- Blocs du cœur de WordPress
- Blocs PHP uniquement
- Blocs Advanced Custom Fields (ACF)
- Tous les blocs qui incluent un
wpml-config.xml - Blocs tiers :
- Kadence Blocks
- Greenshift blocks
- GenerateBlocks blocks
- Yoast SEO blocks
Blocs du cœur de WordPress pris en charge
Les blocs du cœur de WordPress suivants sont pris en charge nativement :
core/audiocore/block(c'est-à -dire les modèles synchronisés)core/buttoncore/covercore/embedcore/headingcore/htmlcore/imagecore/listcore/list-itemcore/media-textcore/paragraphcore/preformattedcore/pullquotecore/quotecore/tablecore/versecore/video
Blocs PHP uniquement
À partir de WordPress 7.0, les blocs peuvent être enregistrés comme PHP uniquement (sans bundle JavaScript). Gato AI Translations for Polylang les traite comme n'importe quel autre bloc : ils sont pris en charge nativement, sans configuration supplémentaire.
Tous les attributs de type string (autres que les énumérations et autres types scalaires) sont automatiquement enregistrés pour la traduction.
Si un champ spécifique ne doit pas être traduit, vous pouvez l'exclure via le hook gatompl:gutenberg_block_type_translatable_attribute_regexes en le définissant à false (ou en appliquant unset) :
add_filter(
'gatompl:gutenberg_block_type_translatable_attribute_regexes',
static function (array $regexes): array {
// Either of these works:
unset($regexes['my-plugin/alert']['header']);
$regexes['my-plugin/alert']['implications'] = false;
return $regexes;
}
);Blocs Advanced Custom Fields (ACF)
Les blocs enregistrés via Advanced Custom Fields sont également pris en charge nativement. Il existe 3 façons d'enregistrer un champ ACF pour la traduction :
1. Automatiquement pour tous les champs (via la page de Settings)
Accédez à la page de Settings, sous Plugin Integration Configuration > Advanced Custom Fields, et activez l'option Translate ACF blocks automatically? :

Lorsqu'elle est activée, chaque champ de type string traduisible dans chaque bloc ACF est envoyé pour traduction. Si un champ spécifique ne doit pas être traduit, excluez-le via le hook ACF standard acf/load_field, en définissant gatompl à 'skip' :
// Disable translation for a single field by key
add_filter(
'acf/load_field/key=product_card_sku',
static function (array|false $field): array|false {
if (is_array($field)) {
$field['gatompl'] = 'skip';
}
return $field;
}
);
// Or disable several fields at once
add_filter(
'acf/load_field',
static function (array|false $field): array|false {
if (
is_array($field) && in_array($field['key'] ?? null, [
'product_card_feature_title',
'product_card_specs_dimensions',
'product_card_section_text_heading',
])
) {
$field['gatompl'] = 'skip';
}
return $field;
}
);2. Champ par champ (via la configuration du groupe de champs ACF)
Lors de la définition de votre groupe de champs avec acf_add_local_field_group(), ajoutez 'gatompl' => 'translate' directement à chaque champ que vous souhaitez traduire :
acf_add_local_field_group([
'key' => 'group_testimonial',
'title' => 'Testimonial Block',
'fields' => [
[
'key' => 'testimonial_text',
'label' => 'Testimonial',
'name' => 'testimonial',
'type' => 'textarea',
'gatompl' => 'translate',
],
[
'key' => 'testimonial_role',
'label' => 'Role',
'name' => 'role',
'type' => 'text',
// Option-array form — equivalent to `'gatompl' => 'translate'`,
// but leaves room for future plugin-side options on the same field
'gatompl' => [
'translation_configuration' => 'translate',
],
],
[
'key' => 'testimonial_featured_post',
'label' => 'Featured post',
'name' => 'featured_post',
'type' => 'post_object',
'post_type' => ['post'],
'return_format' => 'object',
'gatompl' => 'translate', // The referenced post ID is remapped to the target-language post
],
],
'location' => [
[
[
'param' => 'block',
'operator' => '==',
'value' => 'acf/testimonial',
],
],
],
]);Cela fonctionne également pour les champs post_object, relationship, taxonomy, image, gallery et repeater : le plugin suivra les chemins de repeaters imbriqués à n'importe quelle profondeur, et remappera les références d'entités (articles, termes, médias) à leurs équivalents dans la langue cible.
3. Champ par champ (via le hook acf/load_field)
Si vous ne pouvez pas modifier l'enregistrement du groupe de champs, incluez les champs via les mêmes hooks ACF utilisés pour les exclure :
add_filter(
'acf/load_field/key=testimonial_text',
static function (array|false $field): array|false {
if (is_array($field)) {
$field['gatompl'] = 'translate';
}
return $field;
}
);Enregistrer un bloc ACF
À titre de référence, voici un enregistrement minimal de bloc qui complète le groupe de champs ci-dessus (en utilisant acf_register_block_type d'ACF PRO) :
add_action('acf/init', function (): void {
if (!function_exists('acf_register_block_type')) {
return;
}
acf_register_block_type([
'name' => 'testimonial',
'title' => 'Testimonial',
'description' => 'A testimonial block.',
'render_template' => plugin_dir_path(__FILE__) . 'acf-blocks/testimonial/template.php',
'category' => 'widgets',
'icon' => 'format-quote',
'keywords' => ['testimonial', 'quote'],
'mode' => 'preview',
]);
});WPML Config
Gato AI Translations for Polylang lit automatiquement le wpml-config.xml inclus dans n'importe quel plugin et l'utilise pour déterminer quels attributs de blocs sont traduisibles.
Avis Attempt Recovery
Certains blocs peuvent afficher un avis Attempt Recovery dans l'éditeur après la traduction :

Consultez Pourquoi certains blocs ont-ils besoin d'« Attempt Recovery » après la traduction ? pour plus de détails.
Désactiver la traduction d'une propriété spécifique
Pour désactiver la traduction d'une propriété spécifique (ou de toutes les propriétés d'un bloc) définie via wpml-config.xml, renvoyez false depuis le filtre gatompl:use_wpml_config_for_block_type :
add_filter(
'gatompl:use_wpml_config_for_block_type',
static function (bool $enabled, string $blockTypeName, string $ruleKind): bool {
// Stop reading wpml-config.xml rules for greenshift-blocks/button
if ($blockTypeName === 'greenshift-blocks/button') {
return false;
}
return $enabled;
},
10,
3
);Kadence Blocks
Tous les blocs du plugin Kadence Blocks sont pris en charge automatiquement (via leur wpml-config.xml).
Les blocs suivants peuvent s'afficher correctement sur le frontend après la traduction, mais afficher un avis Attempt Recovery lorsqu'ils sont ouverts dans l'éditeur :
kadence/single-iconkadence/tabskadence/form
Cliquer sur Attempt Recovery reconstruit le HTML du bloc, mais c'est facultatif — le rendu frontend est déjà correct (lire les détails).
Greenshift Blocks
Tous les blocs de Greenshift sont pris en charge automatiquement (via leur wpml-config.xml).
Les blocs traduits de Greenshift nécessitent généralement de cliquer sur Attempt Recovery dans l'éditeur sur chaque bloc pour régénérer son HTML (lire les détails).
GenerateBlocks
Blocs de GenerateBlocks et GenerateBlocks PRO :
- Container
- Grid
- Text
- Button
- Headline
- Image
- Query
- Shape
- Site Header
- Accordion
- Tabs
- Navigation
Yoast SEO
Ces blocs ne sont pris en charge que pour les chaînes simples. Les chaînes contenant des balises HTML (notamment des liens, des images, des styles HTML tels que strong ou italic, des sauts de ligne, etc.) ne sont pas prises en charge.
Lisez le guide Tous les blocs Gutenberg peuvent-ils ĂŞtre traduits ? pour plus d'informations.
Blocs de Yoast SEO :
- Yoast How-to
- Yoast FAQ
Prise en charge de blocs supplémentaires
Vous pouvez traduire des blocs personnalisés de votre application, ou des blocs de plugins tiers.
Consultez le guide Traduire des blocs Gutenberg supplémentaires pour plus d'informations.
Traduction des modèles synchronisés
La page par défaut Apparence > Modèles de WordPress ne prend pas en charge la traduction des modèles synchronisés (aussi appelés blocs réutilisables), car :
- Polylang n'ajoute pas le widget pour sélectionner la langue (seul Polylang PRO le fait)
- Elle n'offre pas de Bulk Actions, il n'est donc pas possible de traduire les modèles existants
Pour cette raison, Gato AI Translations for Polylang propose la page standard Patterns CPT, sous l'élément de menu Patterns (Gutenberg), activant ces fonctionnalités.

Vous pouvez traduire des modèles depuis cet écran (de la même manière que pour tout autre CPT) :
- Traduire automatiquement les nouveaux modèles lors de leur publication (depuis l'écran Add Pattern)
- Traduire manuellement les modèles existants via les Bulk Actions

L'écran affichera également les modèles traduits :

Désactiver la page personnalisée des Patterns
Vous pouvez désactiver l'affichage de la page Patterns (Gutenberg) dans le menu.
Pour ce faire, accédez aux Settings sous Plugin Integration Configuration > Gutenberg, et décochez la case Enable the Custom Patterns page.
