워드프레스 쇼핑몰, 웹사이트

사이트 이미지
쇼핑몰

남성의류 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
웹사이트

회원관리 사이트

회원관리 프러그인을 이용한 학회 홈페이지.

사이트 이미지
쇼핑몰

면도기 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
쇼핑몰

해외 쇼핑몰

해외 대상 쇼핑몰. 다양한 플러그인 사용됨.

사이트 이미지
쇼핑몰

강아지 용품 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

포트폴리오 보기

블로그 인기글

커스텀 디자인

여러 종류의 플러그인을 이용해 페이지와 콘텐츠를 커스텀 디자인

Brizy Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Elementor Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Advanced Custom Field Pro

사용자 정의 필드

커스텀 콘텐츠 작업에 필요한 플러그인

Pods

사용자 정의 콘텐츠 타입

기본 콘텐츠 타입외에 다양한 형태의 콘텐츠 생성.

블로그

워드프레스는 원래 영문으로 만들어졌는데 세계적으로 어떤 나라든 사용할 수 있게 된 것은 원문을 각국의 언어로 변경할 수 있는 시스템이 갖춰져 있기 때문입니다. 그래서 언어파일이란 것이 별도로 존재하고 번역작업을 통해 워드프레스 파일에 포함시키면 해당 언어로 나오게 됩니다. 제가 워드프레스 언어파일 번역에 참여한지는 얼마 안됐지만 참여할 때만 해도 코어 파일들의 번역이 70% 밖에 안돼서 영어 버전은 3.3인데 한글 버전은 3.2 버전으로 사용하고 있었죠. 책을 만들기 위해서 작업중 번역이 이상하게 된 곳을 발견하고는 하나씩 번역을 시작했습니다. 다중사이트 만들기 부분에서 번역이 잘못돼서 다른 뜻으로 해석됐더군요. 그렇게 시작해서 틈나는대로 워드프레스 코어파일에 대한 번역을 마쳐서 3.4 버전이 나올 때에는 영어 버전과 동시에 한글 버전도 사용할 수 있게 됐습니다. 


오픈소스 프로젝트가 그렇듯이 워드프레스 코어 파일이나 언어파일의 번역 작업도 개인의 기여(Contribution)으로만 발전하고 있습니다. 워드프레스 한글 번역팀이 있지만 서로 간에 어떤 긴밀한 관계가 있는 것이 아니라 지금은 거의 저 혼자 번역을 하고 있답니다. 제가 완역을 해서 블로그에 올려놓으니 번역팀원중 한분이 보시고는 한글버전에 포함시켜서 공개했고 저를 번역팀의 일원으로 포함시켰습니다. 그때서야 비로소 한글버전이 영문버전보다 늦는 이유가 번역이 완료되지 않아서라는 것을 알았습니다. 


한글화작업의 문제점은 영어를 순수한 한글로 번역하려는데 있습니다. 예를 들어 header를 머릿글이라고 번역한 것이 있었는데 이용어는 사실 HTML에서 사용하는 용어인데 코딩에서는 머릿글이라고 표현하지 않죠. 보편적으로 영어 그대로 사용해서 "헤더"라고 쓰는게 적절합니다. 순수한 한글로 사용하는 것도 바람직하지만 어색한 표현은 지양해야겠죠. 그리고 "당신"이라는 단어가 너무 많이 들어가 있습니다. 영어에서는 주어과 소유격이 꼭 필요하기 때문에 이런 단어가 반드시 들어가야 하지만 한글은 그렇지 않습니다. 당신은 반말하는 것 같고 듣는 사람이 불쾌할 수도 있는 단어에 속합니다. 직역을 하다보니 모든 You나 Your를 "당신" 또는 "당신의" 라고 번역돼 있습니다. 좀 듣기 좋게 하려고 "귀하" 또는 "귀하의"라고 번역할 수도 있겠지만 이 또한 어색합니다. 그래서 대부분의 경우 한글은 주어를 생략할 수 있기 때문에 오히려 빼는 것이 어색하지 않는 문장이 되더군요. 그래서 어떤 플러그인을 번역할 때 모든 곳에서 "당신"이라는 단어를 빼니 원할하게 표시되더군요. 글을 보는 사람이 "당신"에 해당하기 때문에 굳이 이 단어를 사용하지 않아도 되는 것이죠.


<워드프레스 기여자들>


번역에 있어서 가장 빠르게 적용되는 나라는 프랑스더군요. 일본도 빠르고요. 워드프레스가 새로운 버전으로 업데이트되면서 한글은 며칠이 지나야 업데이트됩니다. 다른 언어의 버전들을 각 사이트에 방문해보니 프랑스는 불과 몇분만에 업데이트되죠. 뭔가 작업을 해줘야하는데 한국팀은 어찌된 일인지 늦더군요. 저는 번역만 작업하기 때문에 밀린 것도 바로 업데이트 해놓죠.



워드프레스의 번역과 관련된 사이트는 GlotPress라고 합니다. 워드프레스닷오그의 아이디만 있으면 참여할 수 있습니다. 참여자는 번역만 할 수 있고 저와같은 번역사나 밸리데이터는 다른 사람이 번역한 것을 승인하거나 거절할 수 있습니다. 그런데 어떤 체계가 잡혀있지 않아서 다른 분이 번역을 해놓으면 어떤 통지도 없어서 매일 들어가 봐야 누가 번역해놓았는지 알 수가 있죠. 저도 바쁘다보면 오랫만에 들어가보는데 WordPress for iOS를 어떤 분이 몇줄 번역하셨길래 필요하신가보다 하고 전체 번역을 완료했습니다. 사용해보지 않아서 잘못된 번역이 있을 수 있는데 애플 스마트폰이 없으니 사용해볼 수도 없어서 검증이 필요한 상황입니다.


워드프레스 번역은 위 사이트에서만 할 수 있는 것이 아니라 별도의 프로그램을 설치하면 번역을 수정하거나 개조할 수도 있습니다. 번역이 완벽한 것이 아니어서 수정하고자 할 때는 다음의 프로그램을 사용합니다.




http://www.poedit.net/download.php


위 링크를 클릭하면 프로그램을 내려받을 수 있는 사이트로 이동합니다. OS에 따라서 맞는 버전을 선택하고 내려받습니다. 설치를 한 다음 번역을 수정하고자 하는 파일은 선택합니다.



각종 언어파일은 wp-content 폴더에 해당 프로그램에 맞게 들어가 있습니다. 워드프레스 코어파일에 대한 언어파일은 languages 폴더에 있고 각 플러그인의 언어파일은 해당 플러그인 폴더에 있습니다. 플러그인도 languages폴더를 두고 이곳에 언어파일을 넣는 경우도 있지만 플러그인 폴더 안에 두는 경우도 있습니다. 테마도 마찬가지입니다. 테마의 경우는 대부분이 해당 테마 폴더에 languages 폴더에 두는 경우가 많습니다. 이러한 언어 폴더도 없고 언어파일도 없는 경우는 Poedit으로 언어파일을 직접 만들어서 번역해야합니다.



워드프레스 코어 파일에 대한 언어파일은 languages 폴더에 있습니다. 관리자화면의 언어파일, 다중사이트용 언어파일, 국가 도시의 언어파일, 전체 사이트에 대한 언어파일이 있습니다. A라는 로고가 있는 아이콘의 파일이 Poedit으로 편집할 수 있는 파일입니다. 이 파일을 열고 검색해서 수정한 다음 저장하면 컴퓨터가 알아들을 수 있는 기계어로 변하는 컴파일된 파일이 mo라는 확장자를 가진 파일로 동시에 저장됩니다. 그러니 실제로 필요한 파일은 mo파일이죠. 다만 번역 수정을 위해서 위와같이 po파일도 같이 포함하는 경우가 대부분입니다.



플러그인이나 테마에 보면 언어 폴더에 위처럼 확장자가 pot인 파일이 있습니다. 영어로된 원본 파일로 이 파일을 Poedit에 열고 번역을 한 다음 저장할 때 po 파일로 저장하면 mo파일도 같이 만들어집니다. 그런데 파일이름이 중요합니다. 위에서는 twentyeleven이라고 돼있지만 이대로 이름을 사용하면 인식하지 못합니다. 위처럼 ko_KR이 들어가야하고 테마나 플러그인에 따라서 파일이름이 들어가는 경우도 많습니다. 파일이름이 다르면 인식하지 못하므로 어떤 플러그인은 파일이름을 무엇으로 해야할지 몰라서 구글 검색해서 찾아야하는 경우도 있습니다.


어제 어떤 방문자님이 이 테마의 어떤 단어를 바꾸고 싶다고 문의를 했는데 테마파일을 수정할지 아니면 함수를 수정할지 궁금해 했습니다. 해당 파일의 원문을 수정해도 되지만 만약 이런 파일들이 업데이트되면 수정한 것도 제거되기 때문에 언어파일을 수정하는 것이 제일 좋다고 했습니다. 만일 이 언어파일도 수정하면 이것도 날아가버리죠. 하지만 언어파일이 업데이트 되는 경우는 거의 없습니다. 


그러면 방문자님이 원하는 단어로 수정하는 방법을 알아보겠습니다. ko_KR.po파일을 클릭하면 Poedit에 열립니다.



방문자님이 수정하고자 하는 단어는 "생각"이었습니다. 이것은 기본테마에서 댓글 부분에 나타나는 단어로 원문은 thought입니다. 이것을 "댓글"로 수정하고자 했습니다. 그러면 Ctrl+F 키를 누르고 "생각"으로 검색해서 한글 부분을 "댓글"로 수정한 다음 Ctrl+S키를 누르면 바로 수정되고 블로그 화면에서 보면 바로 수정된 것이 나타납니다. 언어파일은 테마파일에 속하는 파일이 아니기 때문에 내용이 삭제돼도 블로그가 작동되는데는 문제가 없습니다. 방문자님은 수정하면 블로그가 망가질까봐 망설이더군요. 전혀 문제가 없습니다. 한글 부분을 전체 지우더라도 영어로 나타납니다. 


영어의 경우는 단수 복수의 개념이 분명해서 위처럼 단수 문장, 복수 문장이 따로 있습니다. 하지만 한글은 그렇지 않죠. 꼭 필요한 경우만 복수로 사용하는데 워드프레스에서 이런 부분도 번역이 잘못됐습니다. 영어의 Tags를 한글로 "태그들"로 번역이 됐고 Categories는 "카테고리들"로 번역돼있는데 제가 워드프레스 번역사이트에서 수정해 놨지만 아직 반영되고 있지는 않습니다. 다음 버전인 3.5에서 반영되리라 생각합니다.


새로운 번역파일 만들기


남이 손도 대지 않은 전혀 새로운 플러그인이나 테마를 번역해야할 때가 있을 수 있습니다. 대부분의 테마는 번역을 위해 언어 폴더에 영문 언어파일을 두고 있지만 그렇지 않은 경우도 많아서 어떻게 번역을 시작할지 난감하죠. 이런 경우에 Poedit을 사용해서 테마파일에서 언어파일을 가져와서 영문 파일을 만들어야합니다. 기본테마의 언어파일을 다른 곳으로 이동해 놓고 이 파일들이 없다고 가정하고 해보겠습니다.



우선 번역파일의 저작권을 나타내기 위해서 자신의 정보를 입력하는 것이 좋습니다. 뭐 저작권이랄 것은 없지만 그래도 처음 만든 사람이 "나"라는 것은 표시해주는 것이 좋겠죠. Poedit을 열고 파일-->기본설정을 클릭하면 위와같은 창이 나옵니다. 처음 설치할 때도 이런 화면이 나오므로 설정해 놓는 것이 좋습니다. 이름과 이메일을 입력하고 사용자 언어를 선택한 다음 저장합니다. 



메뉴에서 파일-->새 카탈로그를 선택하면 창이 나타납니다. 각 정보를 입력하고 마지막의 "문장내 복수 표시 형식"에 위처럼 입력해야 단수 복수 형식으로 번역란이 나타납니다.



소스 경로 탭을 클릭하면 위와같이 나옵니다. 경로에서 두번째 아이콘을 클릭하고 점을 두개 입력합니다. 상대주소로 인식하기 위한 것입니다. 테마 폴더에 언어 폴더가 있으므로 상위폴더에 있는 각종 템플릿 파일에서 언어파일을 가져오고자 하는 것이죠. 만일 언어폴더를 만들지 않고 테마폴더에 언어파일을 만들고자 한다면 점 하나만 입력합니다.



소스 키워드 탭을 클릭하고 세번째 아이콘을 세번 클릭해서 아래의 세가지 항목, _ , gettext, gettext_noop 을 제거합니다.



다시 두번째 아이콘을 클릭해서 밑줄(underscore)를 두개 입력하고, 다시 아이콘을 클릭해서 "_e"를 입력, 같은 방법으로 sprintf, printf를 입력합니다. 이들은 워드프레스 테마나 플러그인에서 언어파일로 나타나는 스트링을 표시할 때 사용하는 용어입니다. 즉 이런 용어들이 있는 부분에서 글자를 잡아온다는 것입니다. 테마의 한 파일을 열어보면 아래와 같이 위의 글자들이 있습니다. 확인을 클릭합니다.





언어 폴더로 이동해서 파일이름을 default.po로 된 것을 ko_KR.po로 바꾸고 저장버튼을 클릭합니다.



프로그래스바가 잠시 나왔다가 사라지면서 위와같이 나옵니다. 많은 텍스트가 있는 경우는 가져오는데 시간이 걸립니다. 박스안에 추가될 내용이 있습니다. 확인을 클릭합니다.



좌측에 가져온 영문이 나타납니다. 번역을 하고 저장을 하는데 에러가 나는 경우 메시지를 보면 몇번째 줄에서 에러가 있다고 하는데 이 줄을 찾으려면 위처럼 줄번호 보이기에 체크하면 우측에 번호가 표시됩니다.


번역하면서 단축키를 사용하면 훨씬 편리합니다. 소스텍스트를 그대로 복사할 경우 Ctrl+B키를 누르면되고 한줄의 이동은 Ctrl+상하 방향키를 누릅니다. 저장을 하면 그동안 번역된 것들이 하단으로 이동합니다. 그외 내용들은 이 프로그램이 간단한 구조이므로 실제로 해보면서 파악하시면 됩니다. 


주의 할 것은 변수가 %s처럼 여러개 나오는 경우 순서를 바꾸면 안됩니다. 예를 들어 다음과 같이 영문이 있을 경우 어떻게 번역해야할지 난감합니다. 우리말 번역으로는 업데이트됨: %s의 %s라고 번역을 하지만 실제로 보면 이 순서는 바뀌어있죠.


Updated: %s of %s 


만일 위 내용이 출력되는 것이 Updated: data of  theme 이었다면 한글로 번역한 것은 "테마의 데이터"가 아니라 "데이터의 테마"가 되고 맙니다. 이처럼 변수는 순서가 중요합니다. 극단적인 예라서 번역이 힘들지만 "%s %s에서"라고 해야 어색하지 않습니다.


이렇게 같은 변수가 나오는 경우는 드물고 대부분의 경우는 %s$1, %s$2로 변수가 있어서 순서가 바뀌어도 번역을 편하게 할 수 있도록 돼있습니다. 이렇게 번역이 잘못된 경우가 발생할 수 있으므로 번역하면서 실제로 어떻게 보이는지 확인하면서 해야합니다.