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 파일을 넣는다.

참고