追加の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要素で翻訳可能にする team-members要素のitemsリピーター内でリピーターサブフィールドtitleを翻訳可能にする
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
);同じフィルターがシンプルなコントロールとリピーターフィールドの両方に機能します。リピーター専用の別フックはありません。
エンティティ参照の翻訳
プロパティには、翻訳時に対象言語の対応エンティティに再マッピングする必要があるエンティティID(投稿、タクソノミータームおよびメニュー)が格納されることがあります。対応するフィルターを使用してください。
| 参照の種類 | フィルター |
|---|---|
| カスタム投稿とメディア | 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 |
| スラッグによるメニュー | 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;
}
);要素名とプロパティ名の確認方法
Translate custom posts GraphQLクエリを実行し、レスポンスの bricksData フィールドを確認してください。各要素は name と settings ツリーを公開しています。そこに、上記のフックに渡す必要があるプロパティ名(ネストされたドットパスやリピーターフィールドを含む)が見つかります。

クエリの実行方法については、翻訳するページビルダーデータの取得ガイドをご参照ください。
使用例の参照先
プラグイン自体の統合は有用なリファレンスです。インストールしたプラグイン内の以下のファイルをご確認ください。
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php