2024년 5월 11일 토요일

소프트웨어 번역 전략 (26)

소프트웨어 국제화에서 가장 중요하며 많은 비용이 드는 것이 번역이다.

번역도 전략이 필요하다. 소프트웨어 번역을 어떻게 해야 하는지 알아보자.


영어 버전을 먼저


우리는 흔히 한국어 버전의 소프트웨어를 먼저 만들어 놓고, 나중에 영어 버전을 만들곤 한다.

이렇게 되면 메시지의 key가 한국어가 된다.

영어와 한국어 2개의 언어만 지원을 할 때는 문제가 안된다.

하지만, 여기에 프랑스어 하나를 추가하면 문제가 된다.

번역가에게 한국어를 프랑스어로 번역하도록 시켜야 하기 때문이다.

물론 번역한 영어를 주고 프랑스어로 번역하게 할 수도 있다.

이렇게 하면 항상 한국어를 영어로 번역한 후에 다른 언어로 번역을 해야 하는 2단계 과정을 거쳐야 한다.

그리고 영어 번역을 수정하면 다른 모든 언어의 번역을 다시 수정해야 한다.

그래서 전세계 거의 모든 번역가 표준의 삼는 영어를 기준으로 해야 한다.

소프트웨어의 첫번째 버전은 영어를 기준으로 만들어야 하며, 한국어버전만 필요한 경우에도 미래에 국제화가 필요하다면 영어, 한국어를 지원하는 소프트웨어를 만들어야 한다.

만약에 영어를 잘 못하는 개발자라면 영어 메시지를 만들어내기 어려울 수 있다.

요즘은 Google번역기와 같은 자동 번역기의 품질이 상당히 좋아서 한국어를 바로 영어로 번역할 수 있다. 검토 후에 문제가 없으면 바로 사용할 수 있다.

영어 검수는 추후 일괄적으로 한번 하면 되기 때문에 개발자들이 메시지 입력 시 자동번역기를 이용하는 것도 좋은 방법이다. 


번역 프로세스


주변에서 흔히 벌어지는 소프트웨어 번역 프로세스는 다음과 같다.

  • 1년에 걸쳐서 소프트웨어 개발을 완료한다.
  • 2개월에 걸쳐서 소프트웨어를 번역한다.
  • 1개월에 걸쳐서 테스트를 한다. 번역이 잘못된 것을 발견한다.
  • 번역을 수정하고, 다시 테스트를 하고 출시한다.

이렇게 하면 계획된 일정에 소프트웨어를 출시하기 어렵다.

번역을 마지막에 한꺼번에 하게 되면 화면 배치가 많이 깨져서 대대적인 수정을 해야 한다. 똑같은 문장이라도 한국어는 대체로 짧다. 한국어를 영어, 특히 독일어로 번역을 하면 2배 또는 3배까지 길어진다. 그래서 번역을 고려하여 UI 배치를 해야 한다.

소프트웨어가 70% 정도 개발이 되었을 때 먼저 1차로 번역을 하고, 90% 정도 개발이 되었을 때 2차 번역을 한다. 마지막으로 구현이 완료 되었을 때 최종 번역을 한다.

이렇게 70%, 90%, 100% 단계별로 번역을 하면, 소프트웨어 구현과 거의 동시에 번역도 완료가 되어 있어서 번역 때문에 소프트웨어 출시가 늦어지는 일은 없다.

소프트웨어 개발 계획을 세울 때 번역 일정도 같이 수립하고 번역 업체도 미리 섭외하여 일정에 지장이 없도록 해야 한다.


번역 방법


번역을 하는 방법은 몇가지가 있다. 각각 장단점이 있으니 비교하여 선택하자.


전문 번역자(회사) 이용

전문 번역회사를 이용하거나 번역자를 채용할 수도 있다. 
소프트웨어 개발 프로세스 상 번역은 항상 벌어지는 일이 아니기 때문에 아주 큰 회사가 아니면 번역가를 보유하기가 어렵다. 그리고 언어별로 모든 번역가를 채용하는 것이 어렵기 때문에 대부분의 회사는 전문 번역 회사를 이용하거나 병행한다.

번역 회사를 고를 때는 해당 언어에 대해서 능숙한 것 외에도 해당 분야에 경험이 많은 회사를 고르는 것이 좋다. 금융, 의료 등 전문 용어를 많이 사용하는 소프트웨어는 아무나 번역을 할 수는 없다. 전문 번역가의 경우 비용이 더 들어가지만 그만큼 번역 품질이 높다.


소셜 번역

전문 번역가는 아니지만 Flitto와 같은 앱을 통해서 전세계 일반인들에게 작은 비용을 주고 번역을 시키는 방법이 있다. 
대규모 번역을 시키는 것은 어렵지만, 작은 소프트웨어에서 작은 번역을 싸게 맡길 수 있는 장점이 있다.

자동 번역기

AI의 발달과 함께 자동 번역기는 엄청나게 발전했다.
구글 번역기, DeepL 등은 번역 품질이 매우 좋다. 
POEDIT의 유료 버전은 자동 번역을 매우 빠르게 한다.
무료이거나 저렴한 것이 장점이지만, 품질을 보장하기 어려운 것이 단점이다.


정확한 번역

동일한 단어라도 상황에 따라서 다른 뜻으로 사용되는 경우는 매우 흔하다.
Ruler라는 단어만 하더라도 '자'가 될 수도 있고, '지배자'가 될 수도 있다.
Ruler를 그냥 번역해달라고 요청을 하면, 원하지 않는 방향으로 번역될 가능성이 높다.
이럴 때는 '번역 가이드'를 같이 전달하는 것이 좋다.
'번역 가이드'는 영어로 전달해야 한다. 그래야 전세계 번역가가 잘 이해할 수 있다.
Ruler의 번역 가이드는 'a stick to measure the length'와 같이 적으면 된다.

'번역 가이드'는 소스코드에 해당 message를 사용하는 곳에 같이 작성하면 된다.

그럼, 개발자들은 해당 용어를 사용할 때, 이 용어가 잘못 번역될 가능성이 있는 단어인지 잘 생각해야 한다. 여러 뜻을 가진 단어라면 '번역 가이드'를 추가하거나 오해가 없는 확실한 단어로 교체하는 것도 좋다.

물론 소스코드에서 message를 추출하고 '번역 가이드'도 같이 추출하는 것은 완전 자동화 되어야 한다.


번역 검수


프랑스어로 번역을 할 때 외주를 맡기는 것은 우리가 프랑스어를 잘 모르기 때문이다. 그래서 번역을 해와도 프랑스어가 제대로 번역된 것인지 알기가 어렵다.

그래서 번역이 제대로 되었는지 확인을 하려면 번역 검수 절차를 거쳐야 한다.
소프트웨어를 해외 총판을 통해서 판매를 할 경우 해외 총판의 원어민에게 검수를 시키면 좋다. 따는 우리의 해외 우수 고객에게 미리 써보게 하는 필드 테스트를 진행할 수도 있다. 이 때 번역이 잘못되었거나 좀 이상한 것은 꼼꼼히 봐달라고 부탁을 하면 된다.

이렇게 검수 과정을 거쳐야 품질 좋은 소프트웨어를 만들 수 있다.

지금까지의 모든 과정을 소프트웨어 개발 계획을 수립할 때 미리 감안해서 계획을 수립해야 한다.