WPML

테마 및 플러그인의 텍스트를 WPML에서 번역 가능하게 만들기 위해 gettext 함수를 사용하는 방법을 알아보세요.

테마 및 플러그인의 텍스트를 번역할 수 있고 사이트에 올바르게 표시되도록 하려면 다음 두 가지 조건을 충족해야 합니다.

  • 텍스트를 gettext 함수로 감싸기
  • 텍스트 도메인 인수 포함하기

Gettext 기본 사항

“my-plugin-domain” 도메인에 속하는 다음 “Thank you!” 문자열을 살펴보겠습니다.

__( 'Thank you!', 'my-plugin-domain' );

브라우저에 문자열을 출력하려면 _e() 함수를 사용하세요.

_e( 'Thank you!', 'my-plugin-domain' );

HTML을 사용할 때는 HTML 태그로 감싸세요.

<h2><?php _e( 'Thank you!', 'my-plugin-domain' ); ?></h2>

주변 텍스트와 분리된 링크가 있는 경우 esc_html_e() 함수를 사용하세요.

<a href="http://wpml.org/" ><?php esc_html_e( 'Translated with WPML', 'my-domain' ); ?></a>

Gettext 모범 사례

1. 변수나 상수를 gettext 함수로 감싸지 않기

이렇게 하면 문자열을 스캔할 수 없게 되어 번역할 수 없습니다.

잘못된 예

<?php
if ( $morning ) {
   define( 'GREETING', 'Good morning' );
} else {
   define( 'GREETING', 'Good afternoon' );
}
 
_e( GREETING, 'my-domain' );
?>

올바른 예

<?php
if ( $morning ) {
   _e( 'Good morning', 'my-domain' );
} else {
   _e( 'Good afternoon', 'my-domain' );
}
?>

2. 보안을 위한 출력 이스케이프

문자열이 출력에 즉시 렌더링되는 경우, XSS 공격으로부터 보호하기 위해 esc_html_esc_attr_과 같은 이스케이프 함수를 사용하세요.

echo '<div>' . esc_html__( 'Back to homepage', 'my-domain' ) . '</div>';

3. 번역가를 위한 주석 추가

이는 번역가가 텍스트나 변수가 표시되는 컨텍스트를 이해하는 데 도움이 됩니다.

/* translators: %1$s is status label (e.g. "active" and  %2$s is quantity of bits/s (e.g. 12 Gbit/s) */

printf(
esc_html__( 'State of your network is %1$s. Maximum download speed is %2$s.', 'my-plugin-domain' ),
$state, $speed
);

추가 리소스

gettext에 대해 자세히 알아보려면 공식 WordPress 코덱스를 참조하세요.

작성자: Amir · 마지막 업데이트: 2025년 2월 21일