tlk를 편집할 수 있는 프로그램을 만들어봤습니다. .NET FrameWork 버젼 2.0이상을 반드시 설치해야 작동합니다.
드래곤 에이지 툴셋이 정식으로 나왔지만 검색도 안되고 여간 불편한게 아니더군요. 공식 포럼에서 보길 토크테이블을 xml이나 엑셀 파일로 변환할 수 있다고 본거 같은데 어떻게 하는지 모르겠더군요. 그래서 번역하기 편하게 텍스트 파일로 입출력을 할 수 있게 만들어 봤습니다.
먼저 한글 폰트는 드래곤 에이지가 설치된 폴더에 압축을 푸시면 됩니다. 'packages\core\override' 폴더에 설치가 됩니다. 이 폴더에 'core_en-us.tlk' 파일을 복사해서 편집하시면 원본을 손대지 않고 게임에 적용 할 수 있습니다. 'singleplayer_en-us.tlk'은 'modules\single player\override' 폴더에 복사하시면 됩니다.
'singleplayer_en-us.tlk' 파일은 다 번역을 해야하겠고, 'core_en-us.tlk' 파일은 어느정도까지 적용이 되는지 모르겠군요. 둘다 화면에 보이는거 찾아서 하시면 될거 같습니다.
ps) dlg 대사 추출기를 포함 했습니다. dlg 파일들은 data 폴더에 보시면 erf 파일등에 들어있습니다.
- 설명
드래곤 에이지 오리진의 'dlg' 파일의 정보를 이용해 'tlk' 파일의 내용을 각 'dlg' 파일별로
대화 순서대로 출력합니다. 'dlg' 파일에 없는 대사들은 다른 파일에 출력합니다.
텍스트 파일 입력은 dao_tlkeditor v0.3 이상을 이용합니다.
- 사용법:
dlg 파일 한개 추출:
dao_dlgexport -e <dlg file> <tlk file>
예) dao_dlgexport -e cutscene_intro.dlg singleplayer_en-us.tlk
'cutscene_intro.txt' 파일에 대사를 순서대로 저장한다.
디렉토리에 있는 dlg 파일들을 한 파일에 추출:
dao_dlgexport -ef <directory> <tlk file>
예) dao_dlgexport -ef dialog singleplayer_en-us.tlk
'dialog' 디렉토리 안의 'dlg' 파일들의 대사를 'singleplayer_en-us_dlg.txt' 파일에
각 'dlg' 파일별로 저장한다. 'singleplayer_en-us_other.txt' 파일에는 추출되지
않은 나머지 문장이 저장된다.
디렉토리에 있는 dlg 파일들을 하위 디렉토리에 각 dlg 파일별로 추출:
dao_dlgexport -efs <directory> <tlk file>
예) dao_dlgexport -ef dialog singleplayer_en-us.tlk
'dialog' 디렉토리 안의 'dlg' 파일들의 대사를 'dialog_out' 디렉토리에 각 'dlg' 파일 별로
따로 저장한다. 'singleplayer_en-us_other.txt' 파일에는 추출되지 않은 나머지 문장이
저장된다.
- 옵션 설명:
-e <dlg file> <tlk file>
한개의 <dlg file>에서 대화 순서를 읽어 <tlk file>의 문장을 텍스트 파일로 추출한다.
-ef <directory> <tlk file>
<directory> 안의 'dlg' 파일들에서 대화 순서를 읽어 <tlk file>의 문장을 각 'dlg' 파일별로
한개의 텍스트 파일('tlkFileName_dlg.txt')에 전부 추출한다.
'tlkFileName_other.txt' 파일에는 추출되지 않은 나머지 문장이 저장된다.
-efs <directory> <tlk file>
<directory> 안의 'dlg' 파일들에서 대화 순서를 읽어 <tlk file>의 문장을 각 'dlg' 파일별로
'dirName_out' 디렉토리 안에 추출한다.
'tlkFileName_other.txt' 파일에는 추출되지 않은 나머지 문장이 저장된다.
- 번역시 주의 사항
먼저 텍스트 파일은 반드시 'UTF-8'으로 저장 및 불러오셔야합니다.
//*******************************************
//
// File name : player.dlg
//
//*******************************************
{숫자} // speaker: xxx, listener: yyy
내용...
{숫자} // speaker: xxx, listener: yyy
내용...
{숫자} // speaker: xxx, listener: yyy
내용...
{숫자} // speaker: xxx, listener: yyy
내용...
텍스트 파일은 위와 같은 형식으로 되어있습니다.
'{숫자}' 앞에 공백 이외에 오면 안됩니다. 그리고 그 다음 줄에 내용이 와야합니다.
내용은 '{숫자}' 다음 줄의 한줄만 인식하고 나머지는 무시합니다. 내용 앞의 공백(space)과 탭(tap)은
제거됩니다. '\n'은 줄바꿈 문자를 뜻합니다. 엔터와 같은 효과입니다.
'speaker'는 말하는 사람, 'listener'는 듣는 사람을 얘기합니다. 번역하실때 참고하시면 됩니다.
'OWNER'일 경우 파일 이름을 보시면 대충 알 수 있습니다. 없는 경우는 앞뒤 문맥을 보고 파악하시면
됩니다. 'dlg' 파일들은 각 data 디렉토리 안에 erf 파일에 들어있습니다.
- FAQ
프로그램이 실행이 안되면 .NET FrameWork v2.0 이상을 설치하시기 바랍니다.
- 설명
드래곤 에이지 오리진의 tlk 파일의 내용을 텍스트 파일로 추출해줍니다.
텍스트 파일을 편집하고 다시 tlk로 입력할 수 있습니다.
- 사용법:
텍스트 추출: dao_tlkeditor -e <tlk 파일> [txt 파일]
예) dao_tlkeditor -e core_en-us.tlk
core_en-us.txt 파일에 내용을 출력
텍스트 입력: dao_tlkeditor -i <txt 파일> <tlk 파일>
dao_tlkeditor -in <txt 파일> <tlk 파일>
예) dao_tlkeditor -i core_en-us.txt core_en-us.tlk
core_en-us.tlk 파일에 새로 내용을 입력
디렉토리 안의 모든 텍스트 입력: dao_tlkeditor -if <directory> <tlk 파일>
dao_tlkeditor -ifn <directory> <tlk 파일>
예) dao_tlkeditor -if dlg_text core_en-us.tlk
'dlg_text' 디렉토리 안의 모든 '.txt' 파일을 읽어 core_en-us.tlk 파일에 저장
- 옵션 설명:
-e <tlk 파일> [txt 파일]
원본 <tlk 파일>에서 내용을 [txt 파일]로 추출합니다. [txt 파일]을 입력하지
않으면 <tlk 파일>과 같은 이름으로 생성합니다.
-i <txt 파일> <tlk 파일>
원본 <tlk 파일>에 <txt 파일>에 있는 내용을 입력합니다. 입력된 파일은 새로
생성됩니다. 일부 내용 정보만 넣으면 그 내용만 바뀝니다. 원본 <tlk 파일>은
백업됩니다.
-in <txt 파일> <tlk 파일>
'-i' 옵션과 같은 기능을 하지만 내용 앞에 내용 참조 번호를 추가합니다.
번역에 대한 피드백에 유용합니다.
-if <directory> <tlk 파일>
원본 <directory>안의 모든 '.txt' 파일에 있는 내용을 입력합니다. 입력된 파일은 새로
생성됩니다. 일부 내용 정보만 넣으면 그 내용만 바뀝니다. 원본 <tlk 파일>은 백업됩니다.
-ifn <diretory> <tlk 파일>
'-if' 옵션과 같은 기능을 하지만 내용 앞에 내용 참조 번호를 추가합니다.
번역에 대한 피드백에 유용합니다.
- 번역시 주의 사항
먼저 텍스트 파일은 반드시 'UTF-8'으로 저장 및 불러오셔야합니다.
{숫자}
내용...
텍스트 파일은 위와 같은 형식으로 되어있습니다.
'{숫자}' 앞뒤에 공백 이외에 오면 안됩니다. 그리고 그 다음 줄에 내용이 와야합니다.
내용은 '{숫자}' 다음 줄의 한줄만 인식하고 나머지는 무시합니다.
내용 앞의 공백(space)와 탭(tap)은 제거됩니다.
'\n'은 줄바꿈 문자를 뜻합니다. 엔터와 같은 효과입니다.
- FAQ
프로그램이 실행이 안되면 .NET FrameWork v2.0 이상을 설치하시기 바랍니다.