답변:
사용하지 마십시오 echo
또는 print()
대신, 텍스트 출력을 생성하는 워드 프레스 기능을 사용 __()
하고 _e()
:
/** Not localization friendly */
echo "Welcome to my plugin";
// OR
print("Welcome to my plugin");
/** Localization friendly */
_e('Welcome to my plugin', 'my-plugin');
// OR
$my_text = __('Welcome to my plugin', 'my-plugin');
echo $my_text;
_e()
그리고 __()
현재 언어 - - 번역을 제공합니다 첫 번째 매개 변수로 제공된 텍스트의. _e()
텍스트를 출력하지만 __()
반환합니다.
두 번째 매개 변수는 텍스트 도메인 입니다. 첫 번째 매개 변수로 제공된 텍스트 가이 플러그인에 속한다고 WordPress에 알리기 위해 원하는 이름을 사용할 수 있지만 플러그인에 사용한 것과 동일한 이름을 선호합니다 디렉토리 파일, 더 직관적이라고 생각합니다.
로 __()
와 sprintf()
:
/** Get the username */
$username = 'Magictrick';
/** Not localization friendly */
echo "Hello $username";
/** Localization friendly */
printf(__('Hello %s', 'my-plugin'), $username);
// OR
$my_text = sprintf(__('Hello %s', 'my-plugin'), $username);
echo $my_text;
정의
열기 Poedit 및 새 카탈로그를 작성 (파일> 새로 Catallog ...) 이러한 설정 :
.
..
(언어 파일은 언어라는 플러그인 하위 디렉토리에 저장 됨)__
하고_e
저장 과 카탈로그 및 스캔 업데이트 버튼을 누르면 번역 텍스트의 플러그인 파일을. 업데이트가 해당 카탈로그를 닫으면 플러그인 에 번역 가능한 새 문자열 ( 또는로 묶음 )을 추가하지 않으면 해당 파일을 업데이트 할 필요가 없습니다 ./my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin.pot
__()
_e()
이제 첫 번째 번역을 만들어 봅시다 (fr_FR을 사용하겠습니다) :
사용 Podeit 것은 , 냄비 파일에서 카탈로그 생성 (파일> POT 파일에서 새로운 카탈로그를 ...) :
카탈로그를로 저장하십시오 . 문자열의 일부 또는 전부를 번역 하고 .po 파일을 다시 저장 한 다음 .po 및 .mo 파일을 모두 업로드 하십시오./my_wordpress_blog/wp-content/plugins/my-plugin/languages/my-plugin-fr_FR.po
.po 파일을 저장할 때마다 .mo 파일이 동일한 이름으로 생성되고 .po 파일의 파일 이름이 중요 하며 플러그인 텍스트 도메인 (my-plugin)과 언어 로케일 ( fr_FR), 항상 플러그인의 .po 파일 이름을 [textdomain]-[locale] .po 와 같이 지정하십시오. 여기 몇 가지 예가 있습니다.
wpcf7-it_IT.po
wpcf7-pt_BR.po
wpcf7-ar.po
... 네!플러그인이 새 텍스트로 업데이트 될 때마다 po 파일을 업데이트 하고 새 문자열을 번역 한 다음 .po 및 .mo 파일을 다시 업로드 하십시오.
플러그인 어딘가에서 WordPress에 .mo 파일을 사용하도록 지시해야합니다. 플러그인 파일의 시작 부분에서이 코드를 사용하여 수행 할 수 있습니다.
function my_plugin_init() {
load_plugin_textdomain( 'my-plugin', false, 'my-plugin/languages' );
}
add_action('init', 'my_plugin_init');
교체 my-plugin
의 1, 3 매개 변수 플러그인 이름으로 load_plugin_textdomain
기능.
작동하지 않는 몇 가지 이유는 다음과 같습니다.
_e('my text')
으로 _e('my text', 'my-plugin')
)Nabil의 답변은 상당히 완전하지만 쉬운 변형이 제공됩니다.
플러그인이 WordPress.org 플러그인 저장소에 있습니다.
플러그인은 WordPress 4.6 이상에서만 작동해야합니다.
단계는 다음과 같습니다.
플러그인의 readme.txt 파일에서을 추가하십시오
Requires at least: 4.6
. https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/를 참조 하십시오.
아직 플러그인이 아닌 경우 플러그인을 WordPress 플러그인 저장소에 업로드하십시오. https://wordpress.org/plugins/developers/add/를 참조 하십시오 .
플러그인의 슬러그 / 텍스트 도메인을 찾으십시오. 그렇게하려면 WordPress 플러그인 저장소의 플러그인 페이지로 이동하십시오. URL은 https://wordpress.org/plugins/your-plugin-slug/ 와 같습니다 . URL의 마지막 부분 인“your-plugin-slug”는 플러그인의 슬러그입니다. 이것이 번역 함수의 텍스트 도메인에 사용하는 것입니다.
플러그인에서 WordPress의 번역 기능을 사용하십시오 (예 :) __e(‘hello’, ‘my-plugin-domain’);
. 이전 단계에서 얻은 올바른 플러그인 텍스트 도메인을 사용하십시오. 자세한 내용은 https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/ 를 참조 하십시오 .
위의 단계를 수행하면 WordPress가 처리합니다.
(내 블로그 게시물의 답변 : https://cmljnelson.blog/2019/01/01/the-really-lazy-way-to-translate-a-wordpress-plugin/ )