Gutenberg
Поддержка Gutenberg встроена изначально — для перевода всех блоков в вашем содержимом Gutenberg.
Gato AI Translations for Polylang извлекает строки из блоков содержимого Gutenberg и переводит только эти строки, гарантируя, что содержимое не будет повреждено.
Из коробки автоматически поддерживаются следующие типы блоков:
- Блоки ядра WordPress
- PHP-only блоки
- Блоки Advanced Custom Fields (ACF)
- Все блоки, поставляемые с
wpml-config.xml - Сторонние блоки:
- Kadence Blocks
- Greenshift blocks
- GenerateBlocks blocks
- Yoast SEO blocks
Поддерживаемые блоки ядра WordPress
Следующие блоки ядра WordPress поддерживаются из коробки:
core/audiocore/block(т.е. синхронизированные шаблоны)core/buttoncore/covercore/embedcore/headingcore/htmlcore/imagecore/listcore/list-itemcore/media-textcore/paragraphcore/preformattedcore/pullquotecore/quotecore/tablecore/versecore/video
PHP-only блоки
Начиная с WordPress 7.0, блоки можно регистрировать как PHP-only (без JavaScript-бандла). Gato AI Translations for Polylang обрабатывает их как любые другие блоки: они поддерживаются из коробки, без дополнительной настройки.
Все строковые атрибуты (кроме перечислений и других скалярных типов) автоматически регистрируются для перевода.
Если конкретное поле не должно переводиться, его можно исключить через хук gatompl:gutenberg_block_type_translatable_attribute_regexes, установив значение false (или используя 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;
}
);Блоки Advanced Custom Fields (ACF)
Блоки, зарегистрированные через Advanced Custom Fields, также поддерживаются из коробки. Существует 3 способа зарегистрировать поле ACF для перевода:
1. Автоматически для всех полей (через Settings)
Перейдите на страницу Settings, в раздел Plugin Integration Configuration > Advanced Custom Fields, и включите опцию Translate ACF blocks automatically?:

При включении каждое переводимое строковое поле каждого блока ACF отправляется на перевод. Если конкретное поле не должно переводиться, исключите его через стандартный хук ACF acf/load_field, установив 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. Поле за полем (через конфигурацию группы полей ACF)
При определении группы полей с помощью acf_add_local_field_group() добавьте 'gatompl' => 'translate' непосредственно к каждому полю, которое нужно перевести:
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',
],
],
],
]);Это также работает для полей post_object, relationship, taxonomy, image, gallery и repeater: плагин будет следовать по вложенным путям repeater на любую глубину и переназначать ссылки на сущности (записи, термины, медиафайлы) к их эквивалентам на целевом языке.
3. Поле за полем (через хук acf/load_field)
Если вы не можете редактировать регистрацию группы полей, включите поля через те же хуки ACF, которые используются для их исключения:
add_filter(
'acf/load_field/key=testimonial_text',
static function (array|false $field): array|false {
if (is_array($field)) {
$field['gatompl'] = 'translate';
}
return $field;
}
);Регистрация блока ACF
Для справки — минимальная регистрация блока, соответствующая группе полей выше (с использованием acf_register_block_type из 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 автоматически читает wpml-config.xml, поставляемый любым плагином, и использует его для определения переводимых атрибутов блоков.
Уведомления Attempt Recovery
Некоторые блоки могут отображать уведомление Attempt Recovery в редакторе после перевода:

Подробнее см. в статье Почему некоторым блокам требуется «Attempt Recovery» после перевода?.
Отключение перевода конкретного свойства
Чтобы отключить перевод конкретного свойства (или всех свойств блока), определённого через wpml-config.xml, верните false из фильтра 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
Все блоки плагина Kadence Blocks поддерживаются автоматически (через их wpml-config.xml).
Следующие блоки могут корректно отображаться на фронтенде после перевода, но показывать уведомление Attempt Recovery при открытии в редакторе:
kadence/single-iconkadence/tabskadence/form
Нажатие Attempt Recovery перестраивает HTML блока, но является необязательным — вывод на фронтенде уже корректен (подробнее).
Greenshift Blocks
Все блоки Greenshift поддерживаются автоматически (через их wpml-config.xml).
Переведённые блоки Greenshift, как правило, требуют нажатия Attempt Recovery в редакторе на каждом блоке для регенерации его HTML (подробнее).
GenerateBlocks
Блоки от GenerateBlocks и GenerateBlocks PRO:
- Container
- Grid
- Text
- Button
- Headline
- Image
- Query
- Shape
- Site Header
- Accordion
- Tabs
- Navigation
Yoast SEO
Эти блоки поддерживаются только для простых строк. Строки, содержащие HTML-теги (включая ссылки, изображения, HTML-стили, такие как strong или italic, переносы строк и т.д.), не поддерживаются.
Прочитайте руководство Можно ли переводить все блоки Gutenberg? для получения дополнительной информации.
Блоки от Yoast SEO:
- Yoast How-to
- Yoast FAQ
Поддержка дополнительных блоков
Вы можете переводить пользовательские блоки из вашего приложения или блоки сторонних плагинов.
Ознакомьтесь с руководством Перевод дополнительных блоков Gutenberg для получения дополнительной информации.
Перевод синхронизированных шаблонов
Стандартная страница Внешний вид > Шаблоны в WordPress не поддерживает перевод синхронизированных шаблонов (также известных как повторно используемые блоки), поскольку:
- Polylang не добавляет виджет для выбора языка (только Polylang PRO это делает)
- Страница не предлагает Bulk Actions, поэтому перевод существующих шаблонов невозможен
По этой причине Gato AI Translations for Polylang предоставляет стандартную страницу Patterns CPT под пунктом меню Patterns (Gutenberg), включающую эти возможности.

С этого экрана можно переводить шаблоны (аналогично любому другому CPT):
- Автоматически переводить новые шаблоны при публикации (с экрана Add Pattern)
- Вручную переводить существующие шаблоны с помощью Bulk Actions

На экране также будут отображаться переведённые шаблоны:

Отключение пользовательской страницы Patterns
Вы можете отключить отображение страницы Patterns (Gutenberg) в меню.
Для этого перейдите в Settings, в раздел Plugin Integration Configuration > Gutenberg, и снимите флажок Enable the Custom Patterns page.
