Tłumaczenie dodatkowych elementów Bricks
Gato AI Translations for Polylang może tłumaczyć strony i szablony Bricks oparte na elementach.
Plugin zawiera obsługę wszystkich elementów dostarczanych przez Bricks. Dla niestandardowych elementów Bricks lub elementów firm trzecich możesz rozszerzyć obsługę tłumaczenia za pomocą hooków PHP.
Tłumaczenie ciągów znaków
Aby zadeklarować dodatkowe właściwości do tłumaczenia na elemencie Bricks, użyj filtra gatompl:bricks_element_type_translatable_properties.
Filtr przyjmuje mapę [elementName => properties]. Wpis properties może zawierać:
- Proste nazwy kontrolek — np.
'separatorText' - Ścieżki z kropką — np.
'home.text'(odpowiadasettings.home.text) - Pola repeatera — zadeklarowane jako pod-tablica
[repeaterName => [...subFields]]
Elementy te można swobodnie łączyć, a zagnieżdżanie może sięgać dowolnej głębokości.
Na przykład ten hook sprawia, że:
- Prosta kontrolka
separatorTextoraz ścieżkahome.textstają się tłumaczalne w elemenciebreadcrumbs - Podpole
titlerepeatera staje się tłumaczalne wewnątrz repeateraitemselementuteam-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
);Ten sam filtr działa zarówno dla prostych kontrolek, jak i pól repeatera — nie istnieje oddzielny hook dla repeaterów.
Tłumaczenie odwołań do encji
Właściwość może przechowywać ID encji (wpisu, terminu taksonomii, elementu multimedialnego lub menu), które powinno zostać przemapowane na odpowiadającą encję w języku docelowym podczas tłumaczenia. Użyj odpowiedniego filtra:
| Rodzaj odwołania | Filtr |
|---|---|
| Custom posts i media | gatompl:bricks_element_type_custompost_and_media_reference_properties |
| Terminy taksonomii | gatompl:bricks_element_type_taxonomy_term_reference_properties |
| Menu według ID | gatompl:bricks_element_type_menu_reference_by_id_properties |
| Menu według sluga | gatompl:bricks_element_type_menu_reference_by_slug_properties |
Struktura jest taka sama jak w filtrze właściwości do tłumaczenia — proste nazwy, ścieżki z kropką lub pod-tablice dla repeaterów.
// 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;
}
);Odkrywanie nazw elementów i właściwości
Uruchom query GraphQL Translate custom posts i sprawdź pole bricksData w odpowiedzi. Każdy element ujawnia swój name oraz drzewo settings — tam znajdziesz nazwy właściwości (w tym zagnieżdżone ścieżki z kropką i pola repeaterów), które należy przekazać do powyższych hooków.

Zapoznaj się z przewodnikiem Pobieranie danych page buildera do tłumaczenia, aby dowiedzieć się, jak uruchomić to query.
Gdzie znaleźć przykłady
Własne integracje pluginu stanowią przydatny punkt odniesienia. Przejrzyj ten plik wewnątrz zainstalowanego pluginu:
wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php