워드프레스 플러그인에 언어 파일을 등록하기

트위터를 블로그에 긁어서 모으는 플러그인을 만들었다. 번역용 텍스트를 뽑아냈다. 그리고 한국어 언어 파일을 만들었다. 그런데 적용을 어떻게 하는지 헷갈렸다. 워드프레스의 플러그인 언어 파일 등록 함수 매뉴얼뿐 아니라 다른 플러그인들이 한 걸 뜯어 보고 나서야 성공할 수 있었다.

경험적인 접근이었긴 하지만, 공유한다.

아래 코드는 플러그인 폴더 밑에 languages 라는 폴더를 만들고 거기에 언어 파일을 넣은 경우 코드다. 내 플러그인의 이름은 tweet collection이고 플러그인 폴더이름이 tweet-collection이다. 그리고 텍스트 도메인을 플러그인의 폴더명과 맞춰 줘야 하는 것 같다.

//언어 파일 등록
function tweet_collection_init() {
	load_plugin_textdomain( 'tweet-collection', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
add_action('plugins_loaded', 'tweet_collection_init');

코드 설명을 하겠다.

load_plugin_textdomain() 함수는 현재 변수를 세 개 받는 걸로 돼 있는데, 두번째 변수는 deprecated다. 따라서 두 번째 변수는 false로 주고, 세 번째 변수만 사용하면 된다.

세 번째 변수는 지금 dirname( plugin_basename( __FILE__ ) ) . '/languages' 이렇게 들어가 있는데, echo를 해 보면 tweet-collection/languages 이렇게 나온다. 즉, 플러그인 폴더에서 언어 파일이 있는 폴더의 상대경로를 적어 주면 되는 거다. languages 폴더에 두지 않고 플러그인의 루트 폴더에 언어 파일을 두려면 뒤쪽에 써 놓은 'languages' 부분을 빼면 된다.

언어 파일의 파일명

그 다음으로 신경써야 할 것이 언어 파일의 파일명이다. 파일명은 아래와 같아야 한다.

{$textdomain}-{WPLANG}.po 그리고 {$textdomain}-{WPLANG}.mo

그러니까 실제로 한국어 언어파일의 경우엔,

tweet-collection-ko_KR.po 그리고 tweet-collection-ko_KR.mo

이렇게 되는 거다.

이렇게 하니까 언어 파일이 적용되기 시작했다.

카테고리 글 목록 👉

대표글

댓글 남기기