확장
확장추가 Bricks 요소 번역하기

추가 Bricks 요소 번역하기

Gato AI Translations for Polylang은 요소 기반의 Bricks 페이지와 템플릿을 번역할 수 있습니다.

이 플러그인은 Bricks가 제공하는 모든 요소에 대한 지원을 기본으로 제공합니다. 커스텀 또는 서드파티 Bricks 요소의 경우, PHP 훅을 통해 번역 지원을 확장할 수 있습니다.

문자열 번역

Bricks 요소에 추가로 번역 가능한 속성을 선언하려면 gatompl:bricks_element_type_translatable_properties 필터를 사용하세요.

이 필터는 [elementName => properties] 맵을 수신합니다. properties 항목에는 다음이 포함될 수 있습니다.

  • 플랫 컨트롤 이름 — 예: 'separatorText'
  • 점 경로(Dot-path) — 예: 'home.text'settings.home.text에 해당)
  • 리피터 필드 — 서브 배열 [repeaterName => [...subFields]] 형태로 선언

이것들은 자유롭게 혼합하여 사용할 수 있으며, 중첩 깊이에는 제한이 없습니다.

예를 들어, 이 훅은 다음을 수행합니다.

  • 플랫 컨트롤 separatorText와 점 경로 home.textbreadcrumbs 요소에서 번역 가능하게 만들기
  • 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 필드를 확인하세요. 각 요소는 namesettings 트리를 노출합니다. 위의 훅에 전달해야 할 속성 이름(중첩된 점 경로 및 리피터 필드 포함)을 거기서 찾을 수 있습니다.

Translate custom posts GraphQL 응답에서 bricksData 확인하기
Translate custom posts GraphQL 응답에서 bricksData 확인하기

쿼리 실행 방법에 대해서는 번역할 페이지 빌더 데이터 가져오기 가이드를 참조하세요.

예제 참조 위치

플러그인 자체의 통합은 유용한 참고 자료입니다. 설치한 플러그인 내의 다음 파일을 확인하세요.

  • wp-content/plugins/gato-ai-translations-for-polylang/src/ConditionalOnContext/LicenseIsActive/ConditionalOnModule/Bricks/Constants/ElementTypes.php