[워드프레스] 테마에서 Poedit로 번역할 문장 뽑아오는 방법

워드프레스는 국제화(지역화?)가 잘 돼 있다. 기본 제공하는 언어 함수를 통해 문장을 번역하면 된다. 물론, 워드프레스 역시 GNU gettext 프레임워크를 사용하는 거다.

여튼간에 대부분의 테마는 POT라는 파일을 제공한다. 이 파일을 바탕으로 테마를 번역하면 된다. (Poedit에서 ‘POT 파일로부터 새로운 카탈로그 작성’을 선택해서 불러오면 될 거다. 아마. 해 보진 않았는데 설마 그렇게 하라고 만들어 둔 메뉴겠지;;)

그런데 POT 파일이 없는 경우 좀 골때린다. 테마 파일에 있는 언어별 번역 함수인 __(), _e(), _x(), _ex() 함수의 인자값들을 죄다 긁어서 수동으로 만드는 건 끔찍한 일 아닌가?! 그런데 괜한 걱정이었다. Poedit 자체에 바로 그런 일을 자동으로 해 주는 기능이 포함돼 있었다.

이제부터 테마 폴더에서 번역할 문장들을 가져오는 방법을 설명한다. underscores 테마를 기본으로 설명할 거다. 일단 테마를 다운받아서 폴더에 압축을 푼다.

그리고 Poedit를 실행하고 ‘파일 > 새 카탈로그’를 선택한다.

카탈로그 속성을 세팅하는 창이 뜬다. ‘번역 속성’ 탭에는 적당히 넣어 준다. 한국어로 번역할 것이므로 언어는 ko_KR로 넣어 준다. (워드프레스의 언어 코드를 넣어 주면 된다. WordPress in Your Language에서 자기 국가명 뒤의 괄호 안에 있는 게 코드명이다.)

문자코드와 소스 코드 문자코드는 모두 UTF-8로 선택하면 되고, ‘문장내 복수 표시 형식’은 뭔진 잘 모르겠는데 Translating Plural Forms with Poedit를 보니 아래처럼 쓰라고 해서 똑같이 써 준 거다.

nplurals=2; plural=n != 1;

그 다음 중요한 게 바로 소스 경로다. 테마의 폴더를 지정해 주면 되는데, 아래처럼 폴더 모양 아이콘을 누르면 새 폴더를 추가할 수 있다. 골때리는 게, 탐색기 형식으로 폴더를 선택하는 게 아니라 그냥 문자열로 폴더 경로를 써 줘야 한다. 알아서 잘 복사해서 붙여넣기를 하면 되겠다.

아래는 소스 경로를 넣은 결과 화면을 캡쳐한 것이다.

소스 키워드는 언어별 문장을 출력하는 데 사용되는 함수의 이름을 적어 주는 곳이다. gettext 같은 게 기본으로 들어가 있는데 다 지우고 새로 넣어 준다.

워드프레스에서는 언어별 문장을 출력하는 데 __(), _e(), _x(), _xe() 함수를 사용한다. 뭔 말인지 궁금하면 번역에 관한 워드프레스 공식 설명 중 Localization Technology 항목을 보길.

그러니까 다 지우고 아래처럼 __, _e, _x, _ex 라고 세팅을 해 주면 된다.

이제 세팅이 끝났으니 확인을 누른다. 그러면 갑자기 ‘다른 이름으로 저장’이 뜬다. 나도 ‘이게 뭐여?’ 하고 당황했다. 언어 파일을 어따 저장할 건지 묻는 거였다. 당연히 테마 폴더 하위의 languages 폴더에 넣으면 된다.

저장 버튼을 누르면 아래처럼 ‘업데이트 요약’이 뜬다. 번역 대상 문자열을 좌악 보여 주는 것이다. 그냥 ‘확인’을 눌러 주면 된다.

그러면 이제 번역을 시작하면 되는 거다.

추가로 알아둘 만한 것. Poedit의 기본설정에 들어가서 ‘편집기’ 탭의 ‘동작’ 중에 ‘저장할 때, .mo 파일 자동 생성’을 체크해 둬야 한다. 그래야 mo 파일이 만들어지고, 워드프레스가 번역한 걸 인식하게 된다.

만약 PHP 코드에서 __() 함수 같은 걸로 번역할 문장을 몇 개 추가했다고 치자. 그러면 Poedit에서 ‘업데이트’를 눌러 준다. 그러면 새롭게 추가된 문장을 po 파일에 추가해 준다. 즉, 일일이 신경써서 po 파일을 갱신할 필요가 없는 거다. 자동으로 해 준다. 사람은 번역 자체에만 집중하면 된다.

카탈로그 속성을 보고 싶다면 언제든 ‘카탈로그 > 속성’으로 들어가서 보면 된다. 소스 폴더도 추가하거나 뺄 수 있다. 소스 폴더를 추가한 뒤에 업데이트하면 또 문장들을 추출해 오고 그런다.

👇 카테고리 글 목록

대표글

“[워드프레스] 테마에서 Poedit로 번역할 문장 뽑아오는 방법” 에 하나의 답글

  1. […] 블로그에 긁어서 모으는 플러그인을 만들었다. 번역용 텍스트를 뽑아냈다. 그리고 한국어 언어 파일을 만들었다. 그런데 적용을 어떻게 하는지 […]

댓글 남기기