Gutenberg
Obsługa Gutenberg jest wbudowana, aby tłumaczyć wszystkie bloki w treści Gutenberg.
Gato AI Translations for Polylang wyodrębnia ciągi znaków z bloków w treści Gutenberg i tłumaczy tylko te ciągi, gwarantując, że zawartość nie zostanie w żaden sposób uszkodzona.
Domyślnie automatycznie obsługiwane są następujące typy bloków:
- Bloki rdzenia WordPress
- Bloki tylko PHP
- Bloki Advanced Custom Fields (ACF)
- Wszystkie bloki zawierające plik
wpml-config.xml - Bloki firm trzecich:
- Kadence Blocks
- Greenshift blocks
- GenerateBlocks blocks
- Yoast SEO blocks
Obsługiwane bloki rdzenia WordPress
Następujące bloki rdzenia WordPress są obsługiwane domyślnie:
core/audiocore/block(tj. zsynchronizowane wzorce)core/buttoncore/covercore/embedcore/headingcore/htmlcore/imagecore/listcore/list-itemcore/media-textcore/paragraphcore/preformattedcore/pullquotecore/quotecore/tablecore/versecore/video
Bloki tylko PHP
Od WordPress 7.0 bloki można rejestrować jako tylko PHP (bez pakietu JavaScript). Gato AI Translations for Polylang traktuje je jak każdy inny blok: są obsługiwane domyślnie, bez żadnej dodatkowej konfiguracji.
Wszystkie atrybuty typu string (z wyjątkiem enumów i innych typów skalarnych) są automatycznie rejestrowane do tłumaczenia.
Jeśli konkretne pole nie powinno być tłumaczone, możesz je wykluczyć za pomocą hooka gatompl:gutenberg_block_type_translatable_attribute_regexes, ustawiając je na false (lub stosując 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;
}
);Bloki Advanced Custom Fields (ACF)
Bloki zarejestrowane przez Advanced Custom Fields są również obsługiwane domyślnie. Istnieją 3 sposoby rejestrowania pola ACF do tłumaczenia:
1. Automatycznie dla wszystkich pól (via Settings)
Przejdź do strony Settings, w sekcji Plugin Integration Configuration > Advanced Custom Fields, i włącz opcję Translate ACF blocks automatically?:

Po włączeniu każde pole tekstowe możliwe do tłumaczenia w każdym bloku ACF jest wysyłane do tłumaczenia. Jeśli konkretne pole nie powinno być tłumaczone, wyklucz je za pomocą standardowego hooka ACF acf/load_field, ustawiając gatompl na '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. Pole po polu (via konfiguracja grupy pól ACF)
Definiując grupę pól za pomocą acf_add_local_field_group(), dodaj 'gatompl' => 'translate' bezpośrednio do każdego pola, które chcesz tłumaczyć:
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',
],
],
],
]);Działa to również dla pól post_object, relationship, taxonomy, image, gallery i repeater: wtyczka będzie podążać zagnieżdżonymi ścieżkami repeaterów na dowolną głębokość i przemapowuje referencje do encji (posty, terminy, media) na ich odpowiedniki w docelowym języku.
3. Pole po polu (via hook acf/load_field)
Jeśli nie możesz edytować rejestracji grupy pól, dołącz pola za pomocą tych samych hooków ACF, które służą do ich wykluczania:
add_filter(
'acf/load_field/key=testimonial_text',
static function (array|false $field): array|false {
if (is_array($field)) {
$field['gatompl'] = 'translate';
}
return $field;
}
);Rejestrowanie bloku ACF
Dla odniesienia, poniżej znajduje się minimalna rejestracja bloku pasująca do powyższej grupy pól (przy użyciu acf_register_block_type z 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 automatycznie odczytuje plik wpml-config.xml dostarczony przez dowolną wtyczkę i używa go do określenia, które atrybuty bloków są możliwe do tłumaczenia.
Powiadomienia Attempt Recovery
Niektóre bloki mogą wyświetlać powiadomienie Attempt Recovery w edytorze po tłumaczeniu:

Zobacz Dlaczego niektóre bloki wymagają 'Attempt Recovery' po tłumaczeniu? aby uzyskać więcej szczegółów.
Wyłączanie tłumaczenia konkretnej właściwości
Aby wyłączyć tłumaczenie konkretnej właściwości (lub wszystkich właściwości bloku) zdefiniowanej przez wpml-config.xml, zwróć false z filtra 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
Wszystkie bloki z wtyczki Kadence Blocks są automatycznie obsługiwane (poprzez ich wpml-config.xml).
Następujące bloki mogą być poprawnie renderowane na froncie po tłumaczeniu, ale wyświetlają powiadomienie Attempt Recovery po otwarciu w edytorze:
kadence/single-iconkadence/tabskadence/form
Kliknięcie Attempt Recovery odbudowuje HTML bloku, ale jest opcjonalne — wynik na froncie jest już poprawny (przeczytaj szczegóły).
Greenshift Blocks
Wszystkie bloki z Greenshift są automatycznie obsługiwane (poprzez ich wpml-config.xml).
Przetłumaczone bloki Greenshift zazwyczaj wymagają kliknięcia Attempt Recovery w edytorze na każdym bloku, aby wygenerować jego HTML na nowo (przeczytaj szczegóły).
GenerateBlocks
Bloki z GenerateBlocks i GenerateBlocks PRO:
- Container
- Grid
- Text
- Button
- Headline
- Image
- Query
- Shape
- Site Header
- Accordion
- Tabs
- Navigation
Yoast SEO
Te bloki są obsługiwane tylko dla prostych ciągów znaków. Ciągi zawierające tagi HTML (w tym linki, obrazy, style HTML jak strong lub italic, nowe linie itp.) nie są obsługiwane.
Przeczytaj przewodnik Czy wszystkie bloki Gutenberg można tłumaczyć? aby uzyskać więcej informacji.
Bloki z Yoast SEO:
- Yoast How-to
- Yoast FAQ
Obsługa dodatkowych bloków
Możesz tłumaczyć niestandardowe bloki z Twojej aplikacji lub bloki z wtyczek firm trzecich.
Zapoznaj się z przewodnikiem Tłumaczenie dodatkowych bloków Gutenberg aby uzyskać więcej informacji.
Tłumaczenie zsynchronizowanych wzorców
Domyślna strona Wygląd > Wzorce WordPress nie obsługuje tłumaczenia zsynchronizowanych wzorców (znanych również jako bloki wielokrotnego użytku), ponieważ:
- Polylang nie dodaje widgetu do wyboru języka (robi to tylko Polylang PRO)
- Nie oferuje Bulk Actions, więc nie można tłumaczyć istniejących wzorców
Z tego powodu Gato AI Translations for Polylang oferuje standardową stronę Patterns CPT, pod pozycją menu Patterns (Gutenberg), udostępniając te funkcje.

Możesz tłumaczyć wzorce z tego ekranu (podobnie jak każdy inny CPT):
- Automatycznie tłumacz nowe wzorce po ich opublikowaniu (z ekranu Add Pattern)
- Ręcznie tłumacz istniejące wzorce używając Bulk Actions

Ekran będzie również wyświetlać przetłumaczone wzorce:

Wyłączanie niestandardowej strony Wzorce
Możesz wyłączyć wyświetlanie strony Patterns (Gutenberg) w menu.
Aby to zrobić, przejdź do Settings w sekcji Plugin Integration Configuration > Gutenberg i odznacz pole wyboru Enable the Custom Patterns page.
