การแปล Bricks elements เพิ่มเติม
Gato AI Translations for Polylang สามารถแปลหน้าและเทมเพลต Bricks แบบ element-based ได้
ปลั๊กอินมาพร้อมกับการรองรับ elements ทั้งหมดที่ Bricks มีให้ สำหรับ Bricks elements แบบกำหนดเองหรือจากบุคคลที่สาม คุณสามารถขยายการรองรับการแปลผ่าน PHP hooks ได้
การแปล strings
หากต้องการประกาศ properties ที่แปลได้เพิ่มเติมบน Bricks element ให้ใช้ filter gatompl:bricks_element_type_translatable_properties
filter จะรับ map แบบ [elementName => properties] โดย entry ของ properties สามารถมี:
- ชื่อ control แบบ flat — เช่น
'separatorText' - Dot-paths — เช่น
'home.text'(แปลงเป็นsettings.home.text) - Repeater fields — ประกาศเป็น sub-array
[repeaterName => [...subFields]]
สิ่งเหล่านี้สามารถผสมกันได้อย่างอิสระ และการซ้อนกันสามารถทำได้ทุกระดับความลึก
ตัวอย่างเช่น hook นี้ทำให้:
- flat control
separatorTextและ dot-pathhome.textแปลได้บน elementbreadcrumbs - repeater sub-field
titleแปลได้ภายใน repeateritemsของ elementteam-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
);filter เดียวกันนี้ใช้ได้ทั้งกับ simple controls และ repeater fields — ไม่มี hook แยกต่างหากสำหรับ repeaters
การแปล entity references
property สามารถเก็บ entity ID (โพสต์ taxonomy term รายการสื่อ หรือเมนู) ที่ควร remap ไปยัง entity ในภาษาเป้าหมายที่สอดคล้องกันในเวลาแปล ใช้ filter ที่ตรงกัน:
| ประเภทการอ้างอิง | Filter |
|---|---|
| Custom posts และ media | gatompl:bricks_element_type_custompost_and_media_reference_properties |
| Taxonomy terms | 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 |
รูปแบบเหมือนกับ translatable-properties filter — ชื่อแบบ flat, dot-paths หรือ sub-arrays สำหรับ repeaters
// 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;
}
);การค้นหาชื่อ element และชื่อ property
รัน GraphQL query Translate custom posts และตรวจสอบ field bricksData ในการตอบกลับ แต่ละ element จะแสดง name และ settings tree — นั่นคือที่ที่คุณจะพบชื่อ properties (รวมถึง dot-paths แบบซ้อนกันและ repeater fields) ที่ต้องส่งให้ hooks ข้างต้น

ดูคู่มือการดึงข้อมูล page builder เพื่อแปลสำหรับวิธีรัน query นั้น
แหล่งค้นหาตัวอย่าง
การรวมระบบของปลั๊กอินเองเป็นข้อมูลอ้างอิงที่มีประโยชน์ ดูไฟล์นี้ภายในปลั๊กอินที่คุณติดตั้ง:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php