Skip to Content
Go Back
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 CSS가 어려운 이유 — 프로젝트 중심 실전 CSS 강의 소개 2023-04-13
📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12
📌 [번역] CSS 코드 냄새 2013-01-01

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

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

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

아래 코드는 플러그인 폴더 밑에 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

이렇게 되는 거다.

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

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다