Перевод дополнительных элементов Bricks
Gato AI Translations for Polylang может переводить страницы и шаблоны Bricks, основанные на элементах.
Плагин поставляется с поддержкой всех элементов, предоставляемых Bricks. Для пользовательских или сторонних элементов Bricks вы можете расширить поддержку перевода с помощью PHP-хуков.
Перевод строк
Чтобы объявить дополнительные переводимые свойства для элемента Bricks, используйте фильтр gatompl:bricks_element_type_translatable_properties.
Фильтр получает карту [elementName => properties]. Запись properties может содержать:
- Плоские имена элементов управления — например,
'separatorText' - Пути с точками — например,
'home.text'(соответствуетsettings.home.text) - Поля повторителя — объявляются как подмассив
[repeaterName => [...subFields]]
Их можно свободно комбинировать, а вложенность может быть любой глубины.
Например, этот хук делает:
- Плоский элемент управления
separatorTextи путь с точкамиhome.textпереводимыми в элементеbreadcrumbs - Подполе
titleповторителя переводимым внутри повторителяitemsэлемента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
);Один и тот же фильтр работает как для простых элементов управления, так и для полей повторителя — отдельного хука для повторителей не существует.
Перевод ссылок на сущности
Свойство может хранить идентификатор сущности (запись, термин таксономии, медиафайл или меню), который должен быть переназначен на соответствующую сущность целевого языка во время перевода. Используйте соответствующий фильтр:
| Тип ссылки | Фильтр |
|---|---|
| Custom posts и медиафайлы | gatompl:bricks_element_type_custompost_and_media_reference_properties |
| Термины таксономии | gatompl:bricks_element_type_taxonomy_term_reference_properties |
| Меню по ID | gatompl:bricks_element_type_menu_reference_by_id_properties |
| Меню по slug | gatompl:bricks_element_type_menu_reference_by_slug_properties |
Структура такая же, как у фильтра переводимых свойств — плоские имена, пути с точками или подмассивы для повторителей.
// 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;
}
);Поиск имён элементов и свойств
Выполните GraphQL-запрос Translate custom posts и проверьте поле bricksData в ответе. Каждый элемент раскрывает своё name и дерево settings — именно там вы найдёте имена свойств (включая вложенные пути с точками и поля повторителя), которые нужно передать в вышеуказанные хуки.

Смотрите руководство Получение данных конструктора страниц для перевода, чтобы узнать, как выполнить этот запрос.
Где найти примеры
Собственные интеграции плагина являются полезным справочником. Изучите этот файл внутри установленного плагина:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php