xTranslator

 

1. 개요
2. 상세
3. 사용법과 주요 기능
3.1. 태그/ID 기능
3.2. Fuz Map
3.3. 정규 표현식 (Regular Expression)
3.4. 번역 추출 기능
3.5. 비교 가역 처리
4. 주의 사항


1. 개요


베데스다 소프트웍스의 게임인 엘더스크롤 시리즈와 폴아웃 시리즈 게임들의 한국어 번역에 꼭 필요한 프로그램이다. 쉽게 게임과 모드의 영어를 한국어와 같은 다른 언어로 번역(변경)할 수 있게 해준다. 정식 명칭은 xTranslator 로 tesvTranslator, fallout4Translator, sseTranslator 등 여러 버전이 있다. 이름과는 달리 스카이림 스페셜 에디션에 대응하는 sseTranslator 로 스카이림 레전더리 에디션, 폴아웃 뉴베가스, 폴아웃 4 모드들도 번역이 가능하다. 다만 안타깝게도 엘더스크롤 4: 오블리비언과 폴아웃 3 이전 모드들은 번역 지원이 안된다.

2. 상세


esp 뿐만 아니라 스카이림 메인 esm 파일[1]의 하위 string 파일도 번역할 수 있다. 이 프로그램으로 esm, esp, string, txt, pex 확장자의 파일들을 번역할 수 있다. 보통 esm, esp, string 파일만 번역하는 경우가 많은데, Mod Configuration Menu 에 나오는 텍스트나 각종 메뉴 텍스트들은 txt와 pex 파일 안에 들어 있으므로 이것도 다 번역해야 완벽하게 번역이 된다.

3. 사용법과 주요 기능



3.1. 태그/ID 기능


태그/ID 기능을 이용해 각 레코드마다 마커를 표시할 수 있다.
태그/ID 기능 사용하기
* 원하는 줄을 클릭한다. 쉬프트+좌클릭 하면 한꺼번에 연속된 줄을 선택하고, 컨트롤+좌클릭 하면 여러 줄을 비연속적으로 선택할 수 있다.
* 마우스를 우클릭 해 '선택한 줄: 태그/ID 정의하기(I) F9'를 선택한다.
* 01번 칸을 선택한다. 원하는 칸을 선택해도 된다.
* 해당 줄 왼쪽에 병뚜껑 모양의 표시가 생겼다면, 왼쪽 상단의 검색창 오른쪽에 있는 병뚜껑 모양 아이콘인 '검색 대상: 태그/ID'를 우클릭한다.
* 선택했던 01번 칸을 한번 좌클릭하고 확인을 누른다. (두번 좌클릭하면 역선택 상태가 된다.)
* 이제 검색창 오른쪽에 있는 병뚜껑 모양 아이콘을 좌클릭하면 해당 선택한 줄만 화면에 표시된다. (두번 좌클릭했다면 해당 선택한 줄만 제외하고 화면에 표시된다.)
* 태그/ID 기능을 그만 사용하고 싶으면 줄을 마우스 우클릭해 '선택한 줄: 태그/ID 초기화(D) F10'을 선택하면 된다.

3.2. Fuz Map


Fuz Map을 이용해 크리에이션 엔진의 음성 파일인 Fuz 파일을 불러와 문장과 비교하며 들어볼 수 있다.
NPC/Fuz Map 기능 사용하기
* 하단 메시지창 위에 있는 버튼 중 로그 버튼 옆에 있는 NPC/Fuz Map 버튼을 누른다.
* 대사를 들어보길 원하는 아무 ILSTRING 대사 줄을 더블 클릭해 '검색 및 편집' 창을 연다.
* 오른쪽 3시 방향에 있는 스피커 모양 아이콘을 누르면 선택한 줄의 fuz 오디오 파일을 재생해 들어볼 수 있다.

3.3. 정규 표현식 (Regular Expression)


xTranslator는 정규 표현식도 지원한다.
정규표현식을 이용해 여러 줄을 동시에 일괄 수정할 수도 있다. 프로그램 상단의 도구(Y)→RegEx 정규표현식 번역 툴(G)를 누르면 정규 표현식 번역 도구를 사용할 수 있다. 가둔데의 '정규표현식' 란에 정규 표현식을 입력하게 되며, 그 다음 '대체' 란에는 '%1', '%2'... '%n' 과 같은 식으로 입력하게 되는데 이 퍼센트 기호가 붙은 번호는 블록번호를 의미하게 된다.
  • \
    키는 ']'키 옆에 있는 '|'키(역슬래시키 또는 원화키)이다.
몇가지 유용한 정규 표현식 예제는 다음과 같다.
기본적으로 아래 식들은 원문의 띄어쓰기 상태에 따라 적용이 될때도 있고 안될 때도 있다. 그럴 경우
(\W+)
([\[\(\{\|].+?[\|\]\}\)])
사이, %1과 %2 사이의 띄어쓰기를 지우거나 추가하여 표현식이 먹히도록 수정해보자. 또한 괄호 안에 쉼표가 있다던지 하는 예외상황에서는 작동하지 않는다. 이 경우
([\[\(\{\|])(.+?)([\,])(.+?)([\|\]\}\)])
같은 식을 입력해야 하나, 사용이 복잡하므로 권장하진 않는다.
* 가운데에 괄호가 있는 단어, 괄호 뒤로 보내기
정규표현식란:
(\W+)([\[\(\{\|].+?[\|\]\}\)])(\W+)

대체란: %1%3 %2
결과: '강철 (Steel) 검 - 최하급 공포' → '강철 검 - 최하급 공포 (Steel)'
* 가운데에 괄호가 있는 단어, 괄호 지우기
정규표현식란:
(\W+) ([\[\(\{\|].+?[\|\]\}\)])(\W+)

대체란: %1%3
결과: '강철 (Steel) 검 - 최하급 공포' → '강철 검 - 최하급 공포'
* 끝에 괄호가 있는 단어, 괄호 지우기
정규표현식란:
(\W+)([\[\(\{\|].+?[\|\]\}\)])

대체란: %1
결과: '로키어 (Lokir)' → '로키어'
정규표현식은 이 정규표현식 번역 도구 내에서만 쓸 수 있는게 아니라 검색할 때에도 사용할 수 있다. 프로그램 왼쪽 상단의 검색란(번역(T) 밑에 있는 입력 상자) 왼쪽에 붙어 있는 돋보기 아이콘을 누르면 돋보기가 (.+) 아이콘으로 바뀌는데, 이 상태에서 특수문자를 입력하면 원하는 대로 검색을 할 수 있다. 몇가지 유용한 정규 표현식 검색 예제는 다음과 같다.
* 단어나 문장 뒤에 공란이 있는 레코드 찾기
검색란:
$
(스페이스바 공란 입력후 $ 기호 입력. '|'키가 아니라 쉬프트 4키를 누르면 나오는 달러 기호이다.)
결과: '바일님, 부탁이 있습니다._' → '바일님, 부탁이 있습니다.'
* 단어나 문장 앞에 공란이 있는 레코드 찾기
검색란:
^
(^ 기호 입력 후 스페이스바 공란 입력. 쉬프트 6키를 누르면 나오는 기호이다. ^ 기호는 [^[a-z]] 같이 대괄호 안에서는 부정의 의미로 쓰이기도 한다.)
결과: '_저 조건에 제국은 어떤 조건을 제안하시겠습니까?' → '저 조건에 제국은 어떤 조건을 제안하시겠습니까?'
* 특정 글자가 들어간 단어나 문장 찾기
검색란:
(.*)원하는 글자(.*))

이런 검색 연산에서 * 별표(애스터리스크) 기호는 보통 '모든 값'을 의미한다.
* 한글이 들어간 단어나 문장 찾기
검색란:
([가-힣]+)

카페판 폰트 파일은 완성형 인코딩 방식을 따르기 때문에 저 글자 범위 안에 다 들어온다. 자세한 글자 목록은 완성형/한글 목록/KS X 1001 참고.

3.4. 번역 추출 기능


번역 추출 기능을 이용해 했던 작업을 별도 파일로 백업해 둘 수 있다. 이 기능을 이용하면 스카이림 번역을 한글이나 워드 등에서 불러오기 해서 작업을 할 수도 있다. 방법은 다음과 같다.
xTranslator 파일을 한글로 불러오는 방법
* xTranslator에서 파일(F)→번역 추출하기(V))→XML 파일(X) 클릭
* 내보내기 옵션에서 전체 줄 선택 후 확인을 눌러 저장
* 한글을 열어 저장한 XML 파일을 불러오기 (파일이 커서 불러오는데 '''시간이 수분 이상 오래 소요'''되나, 기다리면 불러오기가 되긴 된다.)
* 불러오기가 완료되었으면 일단 저장한다.
이제 원하는 수정 작업을 해주면 된다. 한글에서 F8키를 누르면 맞춤법 검사 기능을 사용할 수 있는데, xTranslator보다 쉽게 맞춤법 검사가 가능하다. 되도록이면 맞춤법 검사 창에서 닫기 버튼 밑의 설정 아이콘을 눌러 검사언어에서 영어는 체크 해제하고 사용하길 바란다. 이렇게 하면 xml 태그는 검사하지 않게 된다. 맞춤법 검사가 끝났으면 다시 이 파일을 xTranslator가 읽어들일 수 있는 파일로 변환해야 한다.
한글 파일을 xTranslator로 불러오는 방법
* 다른이름으로 저장(Alt+V)
* '''저장창에서 파일 형식을 xml이 아니라 txt로 지정후 저장'''
* '''텍스트 문서 종류 창에서 기타 인코딩 선택 후 유니코드(UTF-8) 선택후 저장'''
* '''저장한 txt 파일의 확장자를 xml로 바꿈'''
* xTranslator를 열어 파일(F)→번역 추출하기(U))→XML 파일(xTranslator)(X) 클릭
* 확장자를 바꾼 xml 파일을 선택후 열기
* XML 덮어쓰기 창에서 덮어씌기는 '전체줄', Mode는 'FormID 레퍼런스 사용' 선택후 확인 클릭

3.5. 비교 가역 처리


esp, string, sst, xml 파일 등을 덮어씌우기 하였을 때 레코드가 너무 많아 무엇이 바뀌었는지 확인하기 힘들 수 있다. 이럴 때는 다음과 같이 하면 된다.
비교 가역 처리 하는 방법
*Ctrl+A키를 눌러 전체 선택 후 우클릭하여 '선택한 줄: 번역 승인하기(P) F1' 클릭
*도구(Y) → 원문↔번역문 비교 가역 처리하기(Y) → 원문-번역문이 (불일치) 하는 줄(Y)) 클릭
*위의 네모난 아이콘들 중 파란색인 '보기: 승인번역된 줄' 체크 해제.
*오류 레코드가 너무 많으면 오른쪽에 있는 노란 삼각형 안에 느낌표가 있는 아이콘 '표시: 경고' 체크 해제
이렇게 하면 원문과 번역문이 다른 레코드를 한눈에 볼 수 있게 된다.

4. 주의 사항


일부 기능은 경로 설정을 제대로 해줘야 사용할 수 있다.
옵션에 있는 탭 중에서 '사전과 언어환경' 탭에서 설정하는 경로는 Skyrim.exe, Skyrim.esm, Skyrim - Interface.bsa 경로를 확인할 때 쓰인다. 위의 데이터 폴더는 Skyrim - Interface.bsa 안에 있는 skyrim_english.STRINGS 원문 언어 파일을 불러오는 경로로, 아래의 스트링 폴더는 번역문 언어 파일이 저장될 폴더 경로를 지정하는 것이다. 보통 데이터 폴더는 전자는 보통
steamapps\common\Skyrim Special Edition
폴더로, 스트링 폴더는
steamapps\common\Skyrim Special Edition\Data
폴더로 설정해주면 되나, 사용자가 임의로 변경할 수도 있다.
'옵션' 탭에 있는 esp/esm 백업 칸은 기본적으로 비활성화되어 있는데, 여기에 원하는 폴더 경로를 입력해주면 번역한 모드의 백업파일이 저장된다. Unofficial Skyrim Special Edition Patch.esp.2019_10_14_18_05_54 이런 식의 파일이 생길 것이다.
'고급옵션' 탭에서는 불러올 Fuz 파일 경로를 설정할 수 있다. 위의 칸에는
^%basename% - voices_en0.*$
을, 아래 칸에는
steamapps\common\Skyrim Special Edition\Data
을 입력하면 된다.
번역기 사용시 주의사항이 몇가지 있다. 대표적인 예중 하나로 ID 유형 중에 종족(RACE) 내용을 한국어로 번역할 때는 맨앞에 한칸을 비워둬야 하는 것이 있다. 그렇지 않으면 CTD가 발생한다고 한다. 그리고 앞처럼 치명적인 문제는 아니지만 연금술포션(ALCH), 갑옷(ARMO), 마법부여효과(ENCH), 광원(LIGH), 마법(SPEL), 무기(WEAP) 등 각종 명칭을 번역할 시 단어 맨뒤 끝에 빈 칸이 들어가면 게임 안에서는 아이템 앞에 한칸이 추가되어 나오니 되도록이면 지워주는게 좋다. 용언(WOOP)도 번역하면 ㅁㅁㅁ 같이 깨질 수 있으니 번역하지 않는게 좋다.[2] 각 ID 유형에 대한 설명은 다음 글을 참고하자.
또 다른 버그로는 일괄 번역을 할 시 한 두개 문자열이 전혀 엉뚱한 문자열로 번역된다. 대표적인게 솔스트하임 버그로 아우리엘의 활이 솔스트하임이나 solstheim으로 번역되어 나오는 현상이 자주 일어난다. 비단 아우리엘의 활 뿐만 아니라 다른 문자열도 솔스트하임으로 자주 번역된다. 그 외에도 문장이 열쇠 - 벤콘게리크로 번역되어 나오기도 하는 등, 일괄 번역을 맹신하면 안된다. 반드시 상호참조해 가면서 작업하도록 하자.
프로그램에서 제공하는 일괄 변경 기능도 문제가 있는데, 원인은 알 수 없으나 책같이 긴 문장의 경우 일괄 변경 기능 사용시 뒷문장이 삭제되는 경우가 있다고 한다. 일괄 변경 기능을 너무 맹신하지 말자.


[1] Skyrim.esm, Update.esm, Dawnguard.esm 등...[2] 용언의 경우 설정창에서 별도의 설정을 해줘야 한다.