2 10 2009
WordPress 플러그인 국제화
해당 플러그인이 국제화를 지원하면 좋겠으나, 아직까지도 대부분의 WordPress 플러그인은 국제화를 지원하지 않는다.
따라서 한국어로 출력하기 위해서는 수정이 불가피하다.
수정할 때 곧바로 해당 페이지를 수정하는 것이 가장 빠르지만, 해당 플러그인 개발사 또는 개발자에게 국제화를 얘기해보는 것도 좋겠다.
플러그인이 someplugin 이라고 가정한다.
someplugin .php 파일의 클래스에 load_plugin_textdomain() 함수를 추가하고, 클래스 생성자에서 호출하도록 한다.
class SomePlugin {
function SomePlugin() {
$this->load_plugin_textdomain();
}
function load_plugin_textdomain() {
global $wp_version;
if(version_compare($wp_version, '2.5', '<=')) {
load_plugin_textdomain('someplugin','wp-content/plugins/someplugin/languages');
} else {
load_plugin_textdomain('someplugin','wp-content/plugins/someplugin/languages', 'someplugin/languages');
}
}
플러그인 출력 페이지중 본래 Hello, Barney 라는 문자열 중에서 Hello를 번역하려면 다음과 같이 코드를 넣는다.
<?php _e('Hello','someplugin'); ?>, Barney
만약 함수의 인자로 문자열을 사용해야하는 경우는 다음과 같이 사용한다.
<?php some_func(__('Hello','someplugin')); ?>, Barney
그리고 Poedit를 사용하여 키워드로 _e 와 __를 입력하고 카탈로그 업데이트를 하면, 페이지에서 Hello 문자열을 자동으로 꺼내어 .po 파일과 .mo 파일을 만든다.
wp-content/plusins/ someplugin 디렉토리에 languages 디렉토리를 하나 생성한다.
이 디렉토리는 국제화를 위한 언어 파일이 위치하는 곳이다.
Poedit를 사용하여 만들어진 .mo 파일을 넣는다.
참고