번역, GitHub를 만나다(2) - 번역 플랫폼과 Crowdin

in #kr-dev8 years ago (edited)

안녕하세요. @dakeshi 입니다. 지난 포스팅에 이어서, 번역, GitHub를 만나다 시리즈 두 번째 포스팅입니다.

지난 포스팅에서는 GitHub 환경에서 번역 프로젝트를 어떻게 관리하고, 어떤 방식으로 진행하는지 알아봤습니다. 그리고, GitHub에서 번역 프로젝트를 진행할 경우 진행 현황 관리, 번역 지원자 진입 장벽, 원문 업데이트 대응 등의 문제가 발생할 수 있다고 언급했습니다.

이번 포스팅에서는 번역 플랫폼과 GitHub를 연동했을 때 번역 프로젝트 환경이 얼마나 개선될 수 있는지 살펴보고, 대표적인 번역 플랫폼인 Crowdin의 주요 기능과 단점, 운영 팁 등을 알아보도록 하겠습니다.

이 문서는 Crowdin 설치, 설정 방법보다는 GitHub와의 연동(GitHub Integration)에 초점을 맞췄습니다. 기회가 되면, 이 부분은 별도로 포스팅하겠습니다.

번역 플랫폼 연동

Crowdin, Transifex 등을 비롯한 대부분의 번역 플랫폼에서는 GitHub와의 연동(integration)을 지원합니다. 번역 플랫폼에서는 번역, 번역 참가자 관리, 리뷰, 용어집 생성/관리, 번역 진행현황 관리 등의 기능을 기본적으로 제공합니다.

대부분의 번역 플랫폼은 유료 서비스 모델이지만, 오픈 소스 라이센스로 운영하는 번역 프로젝트에 대해 무료 이용 혜택을 주는 번역 플랫폼이 꽤 있습니다. 특히, 플랫폼마다 오픈 소스 번역 프로젝트에 대한 지원 정책이 약간씩 다르기 때문에 플랫폼 도입 전에 해당 플랫폼의 지침을 반드시 확인하시길 바랍니다.

참고로 Crowdin의 경우, 이메일로 오픈 소스 번역 프로젝트에 대한 플랜 지원 신청을 해야하며, Transifex는 플랫폼에서 프로젝트를 설정할 때 오픈 소스 프로젝트를 선택할 수 있는 옵션이 제공됩니다.

우선, 번역 플랫폼과 GitHub 번역 프로젝트를 연동했을 때 어떠한 변화가 나타나는지 알아볼까요?

번역 프로젝트 진행 현황 관리

대부분의 번역 플랫폼에서는 단어(word)를 기준으로 번역 진행 상황을 평가합니다. 번역된 단어가 증가할수록 특정 파일의 번역률은 100%에 가까워지고, 번역 완료된 파일이 늘어나면 번역 프로젝트 진행률은 함께 증가하게 됩니다.

GitHub만 이용했다면 issue와 milestones를 이용해 수동으로 처리해야만 했던 작업입니다. 대부분의 번역 플랫폼에서는 프로젝트 진행 현황을 기본 기능으로 제공하고 있습니다.

예시 1. Crowdin, 특정 파일의 단어 수와 번역률을 보여주고 있습니다.
01_crowdin_progression

예시 2. Transifex, 일자별 번역 활동 현황과 전체 프로젝트 진행 상황을 한 눈에 파악할 수 있습니다.
01_transifex_progression

일반인도 쉽게 번역할 수 있는 UI

번역 플랫폼을 도입하면 git 명령어를 모르는 사람들도 쉽게 번역 프로젝트에 참가할 수 있습니다. 번역 플랫폼에서 제공되는 UI는 온라인 에디터와 유사해서 사용자들이 편리하게 이용할 수 있습니다.

예시 3. Crowdin, 번역 대상 문장과 번역문을 입력할 수 있는 창이 함께 제공되며, 코멘트 및 추천 번역 기능도 활용할 수 있습니다.
01_crowdin_translation_ui

원문 업데이트 대응

번역 원문에 변경사항이 발생한 경우, 최신 내용이 포함된 원문 파일을 업로드하기만 하면 번역 원문을 최신 버전으로 유지할 수 있습니다.

예시 4. Crowdin, 업데이트된 번역 원문은 다른 색(여기서는 분홍색)으로 표시되며 기존 번역은 유지됩니다. 따라서 변경된 부분만 번역하면 됩니다.
01_crowdin_update

그 밖의 기능들

  • 원문과 번역문 간 괄호, 특수 문자 불일치 자동 체크
  • 용어집 생성/관리
  • 번역 히스토리 관리
  • 번역문 개선 의견(suggestion), 코멘트를 이용한 토론

Crowdin 주요 기능

이번에는 대표적인 번역 플랫폼인 Crowdin의 주요 기능에 대해 알아보겠습니다.

task 기능

GitHub milestones와 유사한 기능입니다. 특정 파일에 대해 번역자를 배정할 수 있고, 번역자 간 업무 분담률을 설정할 수도 있습니다. 단, 번역자, 파일들은 다중 선택할 수 있지만, 파일-번역자 1:1 매칭은 별도의 task 생성을 통해서만 가능합니다.

또한, 일정 관리 기능이 있어서 해당 task의 작업의 진행률과 활성화 여부를 쉽게 파악할 수 있습니다.

예시 5, Crowdin, task 별 진행 상황을 Todo, In Progress, Done 그룹으로 관리할 수 있습니다.
task_config

task에 대해 여러 명의 번역자를 배정하면, 번역 과정에서 서로의 번역 제안 구문들을 확인하여 번역을 진행하게 되므로 공동 번역/리뷰 효과가 발생하고 번역 시간도 줄어들 것입니다.

pull request 관리(Crowdin)

Crowdin에서 번역 변경사항(번역 추가/삭제/변경/리뷰 완료 등) 발생 시 GitHub 브랜치를 대상으로 pull request(이하 PR)를 생성합니다.

  • 프로젝트 기본 설정은 Crowdin에서 작업 중이거나 관리자가 승인한 번역 파일에 대해 github I18n_master 브랜치(crowdin에서는 service branch라고 부른다)를 대상으로 PR을 생성합니다.
  • 기본 설정에서는 10분 이내에 변경사항이 없으면 PR 생성되지 않습니다.
  • 기본 설정에서는 번역이 완료되지 않은 파일도 PR에 포함될 수 있습니다.
  • Crowdin 관리자가 승인한(approve) 번역 파일에 대해서만 PR을 생성하기 위해서는 project setting-general-export 에서 export only approved translations 체크해야 합니다.

Crowdin에서 생성된 PR 관리(GitHub)

  • PR merge 후에 I18n_master 브랜치를 삭제해야 합니다.
    Crowdin에서 생성된 PR은 rebase를 진행하지 않기 때문에 PR merge 후에 I18n_master 브랜치를 삭제하지 않으면 merge 이후에 발생하는 PR에서 이전에 merge한 파일들이 다시 추가되어 나타납니다. 따라서 PR merge 후에는 반드시 I18n_master 브랜치를 삭제해야 합니다.

Crowdin 제약사항

  • 단방향 동기화
    Crowdin 의 변경 사항은 GitHub에 반영할 수 있지만, GitHub에서 직접 번역한 내용을 Crowind에 반영할 수는 없습니다.(최초 동기화는 예외)
  • 제한적인 업로드 파일 포맷
    번역 프로젝트를 시작하는 시점에서는 큰 문제가 되지는 않겠지만 이미 번역된 파일들이 있는 경우 업로드 파일 포맷 제한은 문제가 될 수 있습니다. 특히 번역 프로젝트에서 많이 사용되는 Markdown 포맷을 업로드할 수 없다는 점이 가장 치명적입니다.
  • ``` 코드 태그 동기화(Markdown)
    Markdown 문서에서는 4 space, ```, ```go 등 다양한 형태로 코드 태그를 표현할 수 있습니다. 하지만 현재 Crowdin 환경에서는 코드 태그로 ``` 을 사용한 Markdown 문서 동기화 진행시 해당 코드 태그가 빠지는 버그가 발생하고 있습니다. 4 space를 함께 사용하거나 ```go, ```swift 등으로 해당 코드 태그를 수정하면 이 문제를 해결할 수 있습니다.

Crowdin 관련 팁

  • 독립적인 branch 사용하기
    추후 확장성이나 번역 플랫폼 변경 가능성을 고려했을 때 master branch 대신 crowdin 과 같은 독립적인 branch 를 생성하여 Crowdin 을 연동하는 것을 추천합니다.

  • 승인된 번역 파일에 대해서만 PR 생성하기
    기본 설정에서는 번역이 완료되지 않은 파일에 대해서 PR이 생성될 수 있습니다. 따라서 review, proof reading이 끝난 파일(approve 처리된)에 대해서만 PR을 생성하는 것을 추천합니다.

맺음말

지금까지 번역 플랫폼의 주요 특징과 Crowdin의 장단점, 운영 노하우에 대해서 살펴보았습니다. 업로드 파일이 제한적이라는 점만 제외하면 도입 시 상당히 만족도가 높은 플랫폼이라고 생각합니다. help center 실시간 채팅으로 도움을 받을 수 있다는 점도 굉장히 매력적인 요소 중의 하나입니다.

다음 시간에는 또 다른 번역 플랫폼인 Transifex에 대해서 살펴보도록 하겠습니다.

Coin Marketplace

STEEM 0.13
TRX 0.34
JST 0.034
BTC 113638.48
ETH 4343.45
SBD 0.86