[사례] 이러닝 웹사이트 번역 프로젝트 – XML 파일 번역

XML 파일 번역 프로젝트 
-XML 파일 형태로 된 이러닝 관련 웹사이트 콘텐츠

고객 요구 사항
– 기존 번역물과 상이하지 않게 용어 통일
– 서비스 오픈 전인 고객사 웹사이트에 업로드 요청

의뢰 파일 분석
프로젝트를 진행하기 전 XML 파일의 구조를 먼저 분석했습니다. 번역해야 할 XML 파일의 구조는 아래와 같았습니다.

<?XML version="1.0">
 <sco> 
  <string>
   <source> 
    <![CDATA["내용"]]>
   </source>
   <translation>
    <![CDATA["내용"]]>
   </translation>
  </string> 
   <source> 
    <![CDATA["내용"]]>
   </source>
   <translation>
    <![CDATA["내용"]]>
   </translation>
  </string> 
.
.
.
</sco>  

일부 태그에는 속성도 있었지만, 대략적으로 위와 같은 형태로 반복되는 xml 파일이었습니다. 이미 번역된 부분이 있었기에 <translation>태그에 번역된 내용이 작성되어 있는 경우도 있었습니다. 그리고 이 XML파일은 웹사이트의 콘텐츠가 되기 때문에 다수의 <html>태그도 포함되어 있었습니다.

예상되는 문제점
– 용어 통일
– xml 파일을 어떻게 열고 번역하고 수정할 것인가?
– 작업자(번역가, 리뷰어)가 문서마다 포함되어 있는 html 태그를 누락시킬 수 있음
– 완료된 번역은 어떻게 xml 파일로 다시 편집할 것인가?

“신속하고 꼼꼼한 프로젝트 종료를 위하여”

프로젝트 시작
XML 파일을 신속하고 꼼꼼하게 번역하기 위해서 아래와 같은 방법으로 논의했습니다.

  1. xml 파일을 메모장이나 워드 프로그램을 사용하여 번역 : 이 방법은 파일이 백여개가 넘는 상태에서 번역할 지점을 찾아가며 번역하기에 유용하지 않았습니다.
  2. xml 파일을 에디트 프로그램을 사용하여 번역 : 에디트 플러스나 울트라 에디트 등의 에디팅 프로그램은 수정한 내용이 잘 입력되었는지 확인하는데에는 유용했습니다. 그러나 역시 XML태그에서 번역할 지점을 찾아야하기 때문에 유용하지 않았습니다.
  3. CAT Tool을 사용하여 번역 : 일부 CAT 소프트웨어는 프로그램이 무거워 원활하게 운영하기 쉽지 않았습니다. xml 파일 내에 기존에 번역된 내용이 있어서 추가 작업이 필요하게 되었습니다.
  4. 이번 프로젝트를 위한 자체 프로그램 개발 : 필요한 사항들을 임의대로 만들 수 있기 때문에 유용했습니다. 그러나 개발 시간과 에러 발생 등에 따른 예상치 못한 리스크가 있을 것이라 판단했습니다.

“이 프로젝트를 위한 프로그램 개발”

모든 사항을 검토해봤지만, 1~3번은 편집, 리뷰 등 후처리 과정에서 시간적 손실이 클 것으로 예상되어, 개발 에러에 대한 리스크를 감수하고 4번을 선택하였습니다.

프로젝트 첫 주에는 운영될 프로그램 기획과 개발 그리고 기존에 번역된 번역을 저장하는 것으로 정했습니다.

최대한 빠르게 완료되어야 함으로 프로그램은 php + mysql + jQuery 조합으로 결정하고 진행되었습니다.

php의 simplexml_load_file() 함수로 xml 파일을 온라인에서 열고 CDATA를 파싱하기 위해 옵션에 LIBXML_NOCDATA를 넣었습니다.

“웹에서 XML파일을 열어서 번역”

또한 웹에서 <html>태그가 표현되지 않고 텍스트로 출력되어야 하고, 작업자(번역가, 리뷰어)가 번역, 검수한 내용을 기재하기 위해 textarea를 생성했습니다. 원문도 필요하므로 Source, Target 두가지로 사용자에게 textarea로 출력했습니다. 원문은 혹시 발생할 지 모를 에러를 방지하기 위해 read only로 출력했습니다.

우선 실제 번역될 내용과 기존에 번역된 자료의 구분을 위해 임의의 아이디를 생성하여 기존에 번역된 자료를 데이터베이스에 입력했습니다. 이렇게 입력한 내용은 다른 아이디가 수정할 수 없습니다.

“입력한 내용은 작성한 ID만 수정 가능하고
DB저장은 실시간으로 “

용어를 확인 할 수 있도록 Target Textarea에 Focus on 될 경우 번역할 내용을 검색해서 그동안 번역한 내용과 비교하여 출력해줍니다.

번역가가 번역에만 집중하고, 주변 환경에 의해서 저장에 문제가 생길 경우를 대비해 작성한 번역 내용은 key up 될 때마다 비동기식으로 자동 저장되도록 했습니다. 혹시나 발생할 에러에 옆에 저장 버튼으로도 저장이 가능하고 단축키로도 저장이 가능하도록 했습니다.

Tag 부분 역시 번역가가 태그를 직접적으로 건드리지 않을 수 있도록 새로운 창을 만들었습니다. 비어있는 부분만 작성하면 태그는 함께 저장됩니다.

“리뷰어는 전체 파일에서 용어를 검색하고
용어의 쓰임을 확인하고 수정”

리뷰어가 수정한 부분은 체크하여 추후에 비교할 수 있도록 했습니다. 리뷰어는 모든 파일에서 단어와 문장을 전부 검색할 수 있도록 했습니다. xml 파일을 개별적으로 접근하지 않아도 단어 사용의 흐름을 보고 수정할 수 있도록 했습니다.

“번역과 편집이 완료된 xml 파일을 다운로드”

번역가 리뷰가 완료된 파일은 다시 한번 누락된 내용이 없는지 확인했습니다. 많은 파일을 xml로 편집하기에는 많은 시간을 요구하기 때문에 번역된 파일을 xml로 내보내기 위한 작업을 합니다.

<?
 $doc = new DOMDocument("1.0","UTF-8");
 $sco = $doc -> createElement('sco');
 $sco_attr = $doc ->createAttribute("lanugae");
 $sco_attr = ->value="KO"; 
 $sco->appendChild($sco_attr);
.
.
.
//Loop Start 소스, 번역 내용 입력 
.
.
.
$src ->appendChild($doc->createCDATASection($src_string)); 
$trg ->appendChild($doc->createCDATASection($trg_string));
.
.
.
//Loop Finish

?>

버튼을 클릭하여 번역된 파일을 xml로 내보낼 수 있도록 코드를 작성했습니다.

이렇게 xml로 내보낼 수 있게 된 파일은 고객사 웹사이트에 정상적으로 업로드 되었고 시스템 상에 문제가 없었습니다.

예상보다 신경 쓸 부분이 많은 프로젝트였지만, 예상했던 문제가 큰 문제 없이 잘 처리되어 예정일에 완료되었습니다.

 

 

  • 모든 프로젝트를 프로그램을 개발하여 운영하지는 않습니다.
  • 프로젝트를 위한 내부 사용 툴이었기 때문에 디자인은 하지 않았습니다.

최근 글

이메일 뉴스 레터 영한 번역–eml 파일

프로젝트 개요 마케팅의 일환으로 기업은 지속적으로 고객에게 뉴스 레터를 발송합니다. 마케팅 자료를 번역하는 과정에서 흔히 볼 수 있는 의뢰 파일은 아니지만 eml 파일을 의뢰 받기도...

인디자인 단축키 만들기 – 커스텀 단축키

프로그램 사용이 익숙해지면 마우스 클릭 보다 단축키가 익숙해집니다. 그리고 반복적인 작업에 단축키를 사용하게 되면 보다 빠르게 작업을 완료할 수 있습니다. 사용자가 자주 쓸 것으로...

IT 서비스 영한 번역 프로젝트 – 영상 번역 포함

프로젝트 개요 외국계 기업의 서비스 자료를 한글로 번역하는 프로젝트입니다. 번역 대상 파일은 PDF 파일과 동영상 파일이었습니다. PDF 파일은 단어수를 확인하여 분량을 산출하였고, 동영상 파일은 전체 러닝...

의료기기 매뉴얼 영한 번역 프로젝트 – idml 파일 번역

개요 이 프로젝트는 외국계 기업의 제품 매뉴얼을 한글로 번역하는 프로젝트입니다. 번역 대상으로 제공되었던 파일은 idml 확장자를 가진 파일*이었고 한국 법인은 해당 파일을 확인하지 못한 상태였습니다. 따라서 견적과...

고유명사 및 주소 영문 번역 프로젝트 – 엑셀 파일 번역

개요 엑셀 파일에 카테고리 별로 정리된 대량의 상호명과 주소를 영문으로 번역하는 프로젝트입니다. 사전 예측 문제의 소지가 될 요소 고유명사 번역 주소의 정확한 번역 고유명사 번역 우선 고유명사의 경우에는 로마자...

관련 글