ZhConverter (Simplified, Traditional)

08 Sep 2013

c#

대만에 Localization(이라고 쓰고 번역이라고 읽는다)을 담당하시는 분이 있었는데 사람이 부족하다고 중국 번역도 시키고 있다. ~~대만은 번체, 중국은 간체를 사용하는데 이론상으로는 어느 정도 수준에서 글자의 1:1 치환으로 두 언어간 변환이 가능하다고 한다. (후술하자면 단어 치환으로 번역할 경우 논조가 달라지므로, 해당 결과물은 제대로 사용할 수 없다고 한다.)

그런데도 그걸 사람이 하고 있다면 참 안 좋은 일이겠지.

중국개발팀은 대만/중국 빌드 2개를 관리해야 한다. 즉 branch가 2개라는거다. 처음에 한 번 대만어를 일괄 중국어로 번역해야 할 필요가 있었는데 그 때에는 그나마 담당자도 없어서 그냥 내가 구글 번역기로 일괄 번역 돌려서 중국쪽 branch에 commit하였다. 현재 대만 빌드는 서비스 중, 중국 빌드는 CBT 준비 중이다. 이 상황에서 대만과 중국 양 쪽에 모두 어떤 문자열이 추가되어야 한다고 해보자. 그러면 L10N 담당자는 한 쪽에는 대만어로, 한 쪽에는 중국어로 작업을 2번 해야 한다. 왜냐하면 양 branch에 해당 문자열이 들어가는 시점이 미묘하게 다르고, 모든 내역이 들어간다는 보장이 없기 때문이다.

버전으로만 볼 때 대만 빌드보다 중국 빌드가 더 나중 버전이다. 그리고 나중에 대만도 중국 빌드를 사용한다고 한다. 즉, 중국 빌드에도 문자열을 대만어로 작업해 놓아야 추후에 문제가 없다는 것! 그야말로 안타까운 노가다의 현장이다. 어쨌든 기계적으로 수행할 수 있는 일을 사람이 하는 것은 참 좋지 않은 일이므로 이 부분을 자동화하고자 한다. 그러려면 번체/간체 변환기가 필요하다.

MediaWiki 쪽에서는 이미 해당 기능이 사용되고 있다고 한다. 그리고 누가 그걸 java로 구현해놨다. java-zhconverter

별로 믿음직스럽지는 않지만 결과를 보고도 맞는지 틀리는지 내가 알 수 없으니 일단 믿고 써보자. 사내 툴들은 대부분 C#으로 개발되어있으므로 이걸 가져다 쓰려면 C#으로 porting해야 한다.

그래서 porting했다.

comments powered by Disqus