어느날 HN을 보다가 JS: The Right Way란 사이트를 보게 되었습니다. 저는 이미 비슷한 제목의 사이트인 PHP: The Right Way를 알고 있었기에 꽤 재밌을 것 같다는 느낌을 받았습니다. 사실 전체적으로는 PHP쪽에 비해서 권하는 사항들이 약한 편입니다. 이는 상대적으로 PHP가 Legacy가 더 심한 문화권이기 때문이라고 생각합니다.
저는 사이트를 대략적으로 훑어보고는 이런 생각을 한 것 같습니다.
“이렇게 좋은 사이트들을 한국어로도 볼 수 있으면 좋겠다.”
그리고 나는 겁도 없이 i18n을 하자고 이슈를 남겼습니다. 다음날 메일함을 봤을때 메일이 여러통 와있을때는 “아차, 내가 무슨 말을 꺼낸거지?” 싶었죠. 하지만 이왕 시작된 이슈, 실제로 제대로 진행하기 위해 팔을 걷어붙였습니다.
가장 먼저, i18n
을 위한 브랜치가 완성되기 전까지 사전 작업을 하기 위해 Google Drive를 이용했습니다.
번역을 위해 스프레드시트에 사용된 영어 표현을 거의 다 옮겨왔습니다.
이 문서의 번역에 관심이 있는 사람들이 이상한 모임 #dev-frontend
채널에 많이 계셨는데, 이 시트를 공유하자마자 엄청난 속도로 번역이 시작됬습니다.
하지만 마냥 좋은 것은 아니었습니다. 익명 수정이 가능하다는 점을 노리고 트롤링이 시작된 것입니다. 몇가지 사례를 꼽아보자면 아래와 같습니다.
원문 | 트롤링 | 비고 |
---|---|---|
Hey, you! | 야 너 | 이렇게 건방진 표현이 아니었습니다 |
JavaScript Garden | 자바스크립트 공원 | 블로그 이름입니다 |
Human JavaScript | 인간 자바스크립트 | 책 이름입니다. 국내 미발매 |
Secrets of the JavaScript Ninja | 닌자 자바스크립트의 비밀 | 책 이름입니다. 번역서명은 자바스크립트 닌자 비급 |
Who To Follow | 스토커 | 팔로우 할만한 사람들을 추천해주는 듯한 맥락의 내용입니다 |
Creational Design Patterns | 창의적인 디자인 패턴 | 디자인 패턴의 종류를 말하는 부분입니다 |
Choose your path | 너의 길을 가라 | index 페이지의 제목입니다 |
밤중에 번역을 하다가 이런 개그성 트롤링을 보고 웃느라 기운이 다 빠질 정도였습니다. Google Drive를 사용해서 번역을 하면 익명성의 뒤에 숨어서 이런 고약한 장난을 치는 사람이 나올 수 밖에 없습니다. 간단한 번역 작업이라면 신원이 확인된 사람에게만 문서를 수정할 권한을 주면 되겠지만 복잡한 번역 작업에서는 역시 위험성을 피할 수 없습니다.
그 다음날, i18n
브랜치가 준비가 완료되었다고 합니다.
나는 바로 GitHub으로 번역을 떠서 옮기기 시작했습니다.
일단은 내가 한 번역부터 옮기고, 다른 번역자분들의 PR을 기다리고 있었는데 많은분들이 “PR을 남기기 귀찮으니 대신 옮겨달라.” 라고 하셨습니다.
GitHub을 통해 여러 사람과 번역을 하게 되면 트롤링은 덜하지만 Git을 사용해야한다는 것 자체가 귀찮음으로 작용하기 때문에 번역 참여 의지를 꺾는다는 것을 알게 되었습니다.
그럼 번역은 어떻게 해야 깔끔할까요?
내 생각엔 일단 번역할 내용을 gettext 같은 방법으로 유의미한 단위로 나누어서 추출해야합니다.
이번 번역은 문서가 단순해서 gettext가 필요 없었지만 조금만 더 컸더라도 필요했을거라고 생각합니다.
유의미한 단위로 나눠야 한다는 것은 이런 이야기입니다.
만약 “I like this post.”라는 문장이 있는데 이것을 _('I') + _('like') + _('this') + _('post')
라고 해버리면 아무짝에도 쓸모가 없을 것입니다.
그렇게 얻어진 TEXT들을 효과적으로 협업할 수 있는 도구를 사용하는 것이 좋을 것 같습니다. 트위터나 페이스북의 자사 서비스 번역 시스템이 그나마 좋은 예가 될 수 있을 것 같습니다. 그 외에도 번역 관리도구가 여러가지 있는 것 같으니 참고하면 좋을 것 같습니다.
참고로 필자는 트위터 번역에 (심심해서) 몇 단어 참가해봤었는데, 어느 단어가 어디에서 나오는지 문맥을 알 수 없어서 번역하기 힘들었던 기억도 있습니다. 이 경우 번역할 대상이 되는 문장(혹은 단어)를 너무 포괄적인 단어를 썼거나, 다른 언어에서는 여러가지로 번역될 수 있는 경우입니다. 이런 경우는 번역을 하려는 쪽에서는 답이 없어보이고, 번역할 문장을 제공해주는 쪽에서 좀 더 세심한 배려를 해줘야 할 것 같습니다.