어쩌다보니 Django 공식 문서의 번역을 하게 되었다. 3주 전인가, PSF와 Python 코어 개발자분과 메일, 화상으로 얘기하다보니 내가 너무 나이브하다라는 생각이 조금 들었기 때문인 것 같다. 10년 내내 Django 덕을 봤는데, 뭔가 보태준 건 없는 죄책감?인가 싶어 시작했는데, 지금 생각해보니 불안감인 것 같다. Django를 사용하는 기업들이 많이 줄어들었고, 그로 인해 교육기관들의 교육 프로그램도 변화했고, 결과적으로 우리팀의 백엔드 채용이 어려워질 것이라는, 그래서 무언가 보탬이 되어야 하지 않을까? 라는 생각의 흐름에 가까웠다.
Django 역시 Python Software Foundation 처럼 Django Software Foundation에 의해 운영되는 오픈 소스인데, 개인 후원에 대해서는 구체적인 언급이 많지 않아서, 실질적인 도움을 주자라는 생각으로 번역을 하게 되었다. 이것 역시 지금 생각해보면, 교육기관이 많이 줄어드니까 혼자서 공부하는 사람들이라도 Django를 어렵지 않게 배웠으면 하는, 이기적인 마음이 없지는 않았던 것 같기도 하다.
이 글을 쓰는 이유 역시 Django의 한국어 번역 상태가 내가 조금씩 해본다고 해서 드라마틱하게 달라질 수 있을 정도로 적은 양이 아니기 때문에, 혹시라도 누군가 번역을 시작하게 되면 좀 쉽게 접근하길 원해서 쓰는 글이기도 하다.
번역 도움이 많이 필요한가?
장고 공식 문서의 첫 페이지는 잘 번역되어 있다. 그리고 위의 스크린샷은 튜토리얼의 첫번째 페이지이다. 페이지 상단에서 벌써 3개의 문제가 나왔는데, 관리가 안되어 번역이 안된 단락이 1개 있고, 번역 과정에서 경로 지정이 잘못되어 번역 대신 tag가 나오는 부분이 1개, 기계 번역인지 조사가 없는 부분 1개 등이 있다.
한때 번역이 집중적으로 되었다가, 버전이 올라가는 과정을 충분히 따라가지 못해 변경사항들이 누락되는 정도의 문제일 수 있지만, 메이저 버전이 두번 오르는 동안 동일한(4.2에선 정상, 5.0, 5.1에서는 스크린샷과 동일) 걸 보면, 5.2가 나올때도 비슷한 상황일 것 같다.
여러 자원봉사자들의 노력에 의해 만들어진 결과물이다 보니, 번역이 덜되었거나 누락된 부분들보다는 번역 퀄리티의 일관성 문제가 더 중요하다고 느꼈다. 스토리지와 저장공간 같이 한번 지칭된 단어가 일관되게 사용되어야 학습할때 혼란이 없는데, 이런 같은 의미의 단어가 혼재되어 사용되는 부분들이 조금씩 있었다. 특히 튜토리얼 페이지다보니..
어떻게 시작하나?
아무튼 시작하게 되었는데, 혹시나 관심있으신 분들이 따라하실 수 있도록 장고에서 요구하는 내용을 간단하게 정리하면 아래와 같다.
- https://www.transifex.com/에 가입하기
- transifex에서 Django > Korean 팀에 가입 신청하기
- https://forum.djangoproject.com/ 에 가입하기
- 장고 포럼에 인삿말과 가입 요청 올리기
- 번역 시작하기
Transifex? https://www.transifex.com/
다양한 글로벌 오픈소스와 서비스 등에서 번역 업무를 지원받기 위해 등록되는 곳이다. Sentry 처럼 특정 기업이 요청을 올려두는 곳도 있고, 게임 쪽에서 비공식 한글 패치를 위해 작업할 때도 쓰이는 것 같다. 회원가입을 하면, 어느 프로젝트에 참여할지 선택하라고 나오는데 바로 장고가 나오니 선택하면 된다. Django의 Korean 팀에 가입 요청을 보내두면 되고, 아래 과정까지 모두 마무리되어야 승인이 되는 것 같다. (추정)
Django Forum https://forum.djangoproject.com/
장고가 형태와 무관하게 Contribution을 받기 위해 운영하는 공간이다. 오픈소스에 기여하는 방법이 다양한 만큼 다양한 주제별로 카테고리를 구분해두었다. 반드시 번역이 아니더라도 장고를 쓰다가 막혔거나 어려움이 있는 개발자들에게 대신 해결방법을 알려주는 등의 기여도 오픈소스 활성화에 중요한 부분이다 보니, 장고에서도 꾸준히 운영 및 관리해주고 있다.
회원가입을 하고 나면, 화면 상단의 Categories 에서 Django Internals
를 누르고, 그다음 subcategories 선택화면에서 Internationalization
을 선택하면 장고의 언어 현지화를 위한 카테고리로 이동된다. 이 카테고리에서 글을 작성하면 되는데, 나는 아래와 같이 올렸다.
subject: Request to join Korean localization transifex team.
Hello, I’d like to join the team for Korean localization of Django.
Last month, I felt some guilty cause i’ve received a lot of help from Django, but I’ve realized that I haven’t given much back to the Django community. Noticing the lack of Korean translations, I decided to contribute little bit.
My Transifex ID is yonggill.
Thanks.
번역 시작하기
하루정도 지나면 Django Software Foundation의 구성원 중 한명이 (아마도?) 승인해 준다. 현재 Korean팀의 관리자가 조직 전체를 관리하지는 않는 것 같고, claudep 이라는 모더레이터가 korean 팀에 직접 승인해주는 것 같다. (아마도..)
승인되고 나면 이렇게 전체 장고 프로젝트의 번역이 필요한 리스트가 나오고, 각각의 카테고리 내에서 얼마나 번역이 진행됬는지 보여준다. 나는 주로 howto 또는 faq를 건드리고 있는데, 카테고리를 선택하고 나면 아래와 같은 화면이 나온다.
좌측에서 번역할 문장을 선택하면, 중앙 상단에 번역할 텍스트의 코드내 위치가 출력되고, 정중앙에 번역된 텍스트를 입력한 뒤 번역을 저장하면 끝이다. 🎉
아쉽게도 번역을 위해선 전후 맥락을 보는게 중요한데, 이건 어떻게 보는건지 못찾아서, 그냥 장고 코드(장고 코드 자체)에서 해당 번역글을 찾아 영문을 읽고 번역하는게 지금의 내 프로세스다. 번역이 원활하게 이뤄지려면 용어 사전도 구축하고, 상호 검토와 협업 등이 이뤄져야 할텐데 어디서 논의되고 있는지, 누가 어떻게 관리하고 있는지 모르다 보니, 최대한 보편성을 갖춘 문장으로 번역하고 있다. (시간은 오래걸린다..)
오픈소스에 기여할 수 있는 방법 중에, 내 현실에 가장 가깝게 놓여있는 걱정(=장고가 한국에서 사장되는)을 해결하려면 뉴비의 유입과 장고를 쓰는 기업들의 폭풍 성장인데, 후자는 노력한다고 되는일이 아닌 것 같아서, 전자를 노려보려고 한다. 하루에 2 문단 정도는 번역하자고 생각하고 있는데, 아직 몇일 안되서 좀더 오래 열심히 하길 바라는 마음으로 글로 남겨본다.