← home

워드프레스 – 어색한 번역 교정과 효과적인 번역파일 관리

어드민 페이지에서 필요한 부분만 번역을 교정/추가. 효과적인 번역파일 유지관리 플러그인

번역과 관련하여 조금은 독특한 플러그인을 소개드리려 합니다.
‘BCP Custom Translate’라는 플러그인인데요, 워드프레스 플러그인 저장소에 등록하지 않고 자체적으로만 사용하던 것을 공유합니다.

워드프레스의 언어를 한글(혹은 다른 언어)로 설정해서 블로그를 운영해보신 분들은 크게 공감하리라 생각하는데요, 누락된 번역을 추가하거나 어색한 부분을 바로 잡고 싶을 때가 있을 것입니다. 예를들어 “Featured Image”는 “특성 이미지”로 번역되었는데요, Featured Image는 포스트를 대표하는 이미지(Representative image) 설정시 사용됩니다. 워드프레스 2.9 버전까지는 Post Thumbnail이라 불렀는데, 사이즈 관점의 Thumbnail 보다 더 정확한 의미로서 현재  “Featured Image”라고 부르고 있습니다. 그래서 평소 저는 “대표 이미지”로 번역을 수정하고 있습니다. 굳이 설명하자니 말이 길어졌지만, 종종 평소에 사용하지 않는 말 혹은 표현을 자주 발견할 수 있습니다. 평소 우리가 상대방과 대화할 때 “당신은” 같은 주어를 생략하는데, 영문을 번역하다보니 “당신의 댓글은 검토중입니다.”와 같이 다소 어색한 표현들이 많이 있습니다. 개인 블로그 같으면 별로 신경 안쓰겠지만, 고객의 웹사이트를 만들 때 이런 번역을 그냥 지나칠 수는 없을 것입니다.

문제 1.
가장 쉬운 방법은 Poedit라는 프로그램을 이용하는 것입니다. 번역 카탈로그 파일인 .po 파일을 열어서 수정하고 저장하면 자동으로 바이너리 파일인 .mo 파일 생성해줍니다. (워드프레스는 .mo파일을 로드하여 번역 버전을 검색합니다.) 하지만 Poedit에서는 직접 새로운 번역 대상을 추가할 수 없고, 알 수 없는 잦은 에러로 .mo 파일을 생성할 수 없을 때가 있습니다.

문제 2.
워드프레스를 업그레이드하게 되면, 언어 파일 역시 새로운 버전으로 교체됩니다. 그러면 Poedit으로 열심히 교정했던 버전은… 사라집니다. 기존 버전을 백업해두었다가 다시 교체하는 것도 해결방법이 되지 못합니다. 새로운 버전에는 반드시 새롭게 추가되거나 수정된 번역들이 있을테니까요. 그리고 그 양이 얼마나 되는지는 번역한 사람만 알겠죠. 전문가가 아닌 이상 두 버전 병합은 거의 불가능합니다.

방법 1.
새로운 번역 파일을 만들어서 필요한 부분만 교정/추가하여 기본 번역 파일과 워드프레스상에서 병합되도록 하는 것이 가장 좋은 방법입니다. 이렇게하면 기본 번역 파일의 업그레이드를 걱정할 필요가 없고, 새로운 사이트를 만들때마다 번역 문제로 인한 시간/스트레스를 확 줄일 수 있습니다.
* 번역파일 만들기: 일반 편집기로 .po 확장자로 파일을 만들어서 콘텐츠를 작성하고 터미널에서 msgfmt라는 명령으로 .mo파일을 생성해주면 됩니다. 단, msgfmt를 실행하려면 gettext 라이브러리가 설치되어있어야 합니다.

문제 3.
하지만 문제는… Poedit으로 하든, msgfmt 커맨드로 실행하든, 너무 번거롭다는 것입니다. 저는 얼마전 클라이언트로부터 ‘공개적으로 사용하는 이름’을 ‘필명’으로 짧게 바꾸어달라는 요청을 받았습니다. ko_KR.po를 열어서 찾아바꾸면 아주 쉬운일이지만, ‘문제 2’에서 설명하였듯이 업그레이드를 고려하여 ‘방법 1’처럼 새로 파일을 만들어 병합해주어야합니다. 그런데 단어하나 고치기 위해 해야할 일이 너무 많습니다. 파일을 만들어 올리고, 워드프레스 어딘가에서는 병합하는 훅을 걸어주어야합니다.

방법 2.

BCP Custom Translate

비스킷프레스에서 만든 ‘BCP Custom Translate’는 어드민 페이지에서 원하는 부분만 번역을 교정/추가할 수 있습니다. 워드프레스의 기본 번역파일 뿐 아니라 테마, 플러그인의 번역도 교정/추가할 수 있습니다.
그럼 설치하고 간단히 테스트해보도록 하겠습니다.

설치
다운로드 하여 압축을 풀면 ‘bcp-custom-translate.php’ 파일 하나가 들어있을 텐데요, wp-content/mu-plugins에 넣어줍니다. wp-content 폴더에 mu-plugins폴더가 없으면 생성해줍니다. mu-plugins의 ‘mu’는 Must-Use라는 의미로, 일반 플러그인과 달리 무조건 활성화되어 동작하는 플러그인입니다. 따라서 추가적인 활성화 과정은 없습니다.

테스트
어드민 메뉴의 [설정->사용자정의 번역] 페이지에 접속합니다.
처음에는 우측 도메인 목록에 default 하나만 있을텐데요, default는 워드프레스 기본 번역파일을 가리킵니다. 워드프레스의 기본 번역파일의 도메인은 ‘default’이고, 테마와 플러그인도 각각 자신의 도메인을 가짐으로써 서로의 충돌을 피하고 있습니다. 파일 자체도 나뉘어져 있고요. 예를 들어 Twenty Twelve 테마의 도메인은 ‘twentytwelve’ 입니다.

그럼 우선 텍스트입력기에 교정할 번역을 추가해보겠습니다. 좌측 어드민 메뉴중에서 ‘알림판’의 번역을 ‘대시보드’로 바꾸어보겠습니다. 우선 ‘알림판’의 원래 버전이 무엇인지 알아야겠죠? wp-content/languages의 ko_KR.po를 일반 텍스트 편집기로 열어서 ‘알림판’을 검색해봅니다. admin-ko_KR, admin-network-ko_KR(멀티사이트만 해당)은 모두 ko_KR로 모두 병합되는 파일입니다. ko_KR.po에서 검색이 안된다면 나머지 두 파일에서도 검색해보세요.
1800라인 인근에 아래와 같은 블럭이 검색되는군요.

#: wp-includes/deprecated.php:2845 wp-includes/deprecated.php:2847
#: wp-includes/admin-bar.php:257 wp-includes/admin-bar.php:304
#: wp-includes/admin-bar.php:356 wp-admin/index.php:22
#: wp-admin/user/menu.php:10 wp-admin/menu.php:25
msgid "Dashboard"
msgstr "알림판"

여기서 #: 로 시작되는 부분은 레퍼런스입니다. 어디에서 이 번역이 사용되었는지를 알려주는 것입니다. 이 내용은 그닥 필요없기때문에 필요한 부분만 아래와 같이 복사하여 텍스트입력기에 붙여넣고 ‘알림판’을 ‘대시보드’로 고쳐줍니다.

#:
msgid "Dashboard"
msgstr "대시보드"

작성법이 좀 특이해보이지만 별것 아닙니다.
번역하려는 대상 블럭의 시작부분에 ‘#:’ 하나 정도는 꼭 앞서서 있어줘야하고,
msgid는 번역 대상,
msgstr은 번역입니다.

변경 사항을 저장하면 wp-content/languages/bcp-custom에 ko_KR.po와 ko_KR.mo가 생성됩니다. 이 파일은 워드프레스 기본 번역파일과 병합되어 적용되게 됩니다. (languages는 쓰기권한이 있어야합니다. 767혹은 777로 퍼미션을 주어야합니다.)

그럼 이번에는 ‘Twenty Twelve’ 테마를 사용중이라고 가정하고 테마의 번역을 수정해보겠습니다.
Twenty Twelve 테마의 도메인은 ‘twentytwelve’ 입니다. 우측 도메인 추가에서 twentytwelve를 입력하고 추가를 클릭합니다.
빈 텍스트입력기가 나타날텐데요, 여기에 번역을 추가해보겠습니다.
저는 ‘응답’(댓글에서 사용됨)인 것이 좀 어색하여 ‘답글’로 고치고 싶습니다.
테마의 번역파일은 wp-content/languages/themes에 들어있습니다. 검색해보니 원본은 ‘Reply’였군요.

#:
msgid "Reply"
msgstr "답글"

이후에 다른 블로그에도 이 번역을 적용하고 싶다면, mu-plugins에 bcp-custom-translate.php를 넣어주고, wp-content/languages/bcp-custom를 그대로 복사해주면 됩니다. 위 예제와 같이 테마나 플러그인 등의 도메인을 추가했다면 똑같이 도메인을 추가해주기만 하면 됩니다.

* 본 플러그인은 Joss Crowcroft의 phpmo 라이브러리를 포함하고 있습니다.

BCP Custom Translate 다운로드

← home