본문 바로가기

MikuMikuDance/PMX Editor

PMXE 한글화 방법

PMXE 뿐만 아니라 관련 플러그인이나 다른 닷넷 기반 프로그램도 같은 방법으로 한글화 할 수 있습니다.


해당 내용은 PMDEditor 0139 and 0219 english translation 게시물을 참고했습니다.



준비물


1) 먼저 위 게시글에서 가장 아래쪽에 있는 링크로 들어가 PmxEditor_0220c--.7z 압축파일을 다운받습니다.


2) 그리고 Visual Studio 2015 커뮤니티 버전을 다운받습니다.


비주얼 스튜디오가 용량이 제법 되는 관계로 설치하는데 시간이 조금 걸릴거에요. 설치 옵션은 대충 디폴트로

사실 필요한건 Microsoft SDK인데 이것만 구할 수 있는분은 그렇게 해도 상관 없습니다.


3) 유니코드 편집이 가능한 텍스트 에디터


시스템 로캐일이 일본어로 되어 있다면 노트패드로도 문제 없지만, 가능하면 성능 좋은 에디터가 있으면 금상첨화겠죠.

Editplus를 사용하는데 꽤 좋아요. 맘에 드는 분은 라이센스를 사줍시다



한글화 방법


처음 다운받은 압축파일에서 다음 파일이 핵심이 됩니다.


_disasm.bat

_ilasm.bat

_tool.exe

a3.txt


이 중에서 a3.txt는 그냥 빈 텍스트 파일인데 없으면 안되던가 했던 기억이 -_-a



1) 디스어셈블


_disasm.bat 를 실행합니다.


비주얼 스튜디오가 제대로 설치되어 있다면 CMD 윈도우와 함께 다음과 같은 윈도우가 나타납니다.





여기에 한글화를 원하는 프로그램 실행파일 (당연하게도 닷넷 프로그램이어야 합니다.) 혹은 DLL 파일을 드래그&드롭합니다.

(예제는 PMXE)




파일 -> 덤프




덤프 옵션을 묻는 윈도우가 나타날 텐데, 그대로 두고 확인을 누르면 IL 파일을 생성할 위치를 묻습니다.



a1.il 로 저장해 줍니다. (파일 이름은 변경하지 마세요)




이렇게 하면 해당 폴더에 a1.il 파일과 함께 프로그램에 사용된 리소스들이 풀려납니다.



2) 텍스트 출력


_tool.exe 를 실행합니다.



Make List 버튼을 누릅니다.





위와 같은 메세지와 함께 a2.txt 파일이 생성됩니다.




a2.txt 파일은 프로그램에 사용된 원본 텍스트를 담고 있습니다.


위 텍스트 중 일부가 프로그램을 구성하는 메뉴 등에 사용되는데,

모든 텍스트를 전부 번역할 필요는 없고 오히려 그런 경우 문제가 발생하기도 합니다.

그러니 메뉴와 표시되는 내용에 해당하는 텍스트를 구분해 두는것이 좋습니다.


제 경우엔 모든 텍스트 앞에 순번을 붙여서 어느 텍스트가 어느 부분에 사용되는지를 전부 추적하고,

사용되지 않는 부분 (안보이는 부분)은 번역하지 않고 놔두는 방법을 사용했습니다.

(자세한 내용은 PMXE 한글판 게시물 참고)


방법은 여러가지니까 각자 궁리를



3) 번역 & 어셈블


필요한 부분의 번역이 전부 끝났으면 번역된 텍스트를 a3.txt 로 저장합니다.



a2.txt와 a3.txt는 같은 내용이 같은 행에 위치해야 합니다. 줄번호가 틀리면 오류나요.



a3.txt를 만들었다면 다시 _tool.exe로 돌아가서 Make a2.il 버튼을 누릅니다.



잘 되었다면 위와 같은 메세지와 함께 a2.il 파일이 만들어집니다.



이 과정에서 오류가 발생하는 경우가 많은데, 대부분 번역이 잘못되어 있거나 번역된 부분을 쓸 수 없는 경우입니다.

번역시에 몇가지 요령이 필요한데 이부분은 각자의 재량으로 남기겠습니다. 적절하게 수정해서 대처하세요



a2.il 파일이 만들어졌다면 _ilasm.bat 를 실행합니다.



어셈블 관련 메세지가 주루루루룩 뜨면서 a2.exe 파일이 생성됩니다.


a2.il 파일을 만드는데 성공하면 이 부분은 거의 대부분 성공합니다.

다만 이 단계에서 오류가 날 경우 대처하기가 매우 어려워요. 달리 방법이 없습니다.


PMXE의 경우 PmxEditor.exe.config 파일이 딸려 있는데, 이게 없으면 실행이 안됩니다.

이 파일을 복사해 a2.exe.config 로 저장하고 a2.exe를 실행해 보면



한글화가 적용된 PMXE가 만들어 집니다. 두둥~


다만 이 a2.exe 파일은 아이콘이라던가 버전정보 같은 몇몇 리소스가 누락되어 있습니다.

해당 리소소는 별개의 리소스 에디트 툴을 사용해 넣어주세요. 이 부분은 검색해서 재량껏;;


PMXE용 플러그인은 DLL 확장자로 되어있는데,

모든 과정은 동일하게 하되 마지막 어셈블 과정에서 별도로 옵션을 넣어 줍니다.


예를들어 _ilasm_dll.bat 이런 식으로 배치파일을 만들고, /dll 옵션을 추가해 주면 편하죠.


path = %PATH%;"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin"
rem path = %PATH%;"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools"
path = %PATH%;"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319"
cmd /k ilasm  /dll a2




4) 정리


_disasm.bat -> 프로그램을 디스어셈블해서 덤프, a1.il 생성


_tool.exe -> Make List : a1.il 에서 텍스트를 뽑아내 a2.txt 생성


a2.txt를 번역해 a3.txt 생성


_tool.exe -> Make a2.il : a3.txt를 이용해 a2.il 생성


_ilasm.bat -> a2.il 을 어셈블해 a2.exe 생성


마무리




이런 과정이 되겠습니다.


프로그램이 작으면 금방인데, PMXE 처럼 덩치큰 녀석은 번역을 포함해서 시간이 엄청 걸립니다. 몇주일씩 걸리기도




5) 주의사항


모든 텍스트를 번역하기 보다는 메뉴 등 보이는 내용만 번역하는 편이 좋다


텍스트 저장은 UTF-8로


번역된 글이 제대로 어셈블되지 못하는 경우가 많다. 괄호 () 가 들어가거나 특수문자가 들어가거나 하는 경우 특히 심함


리소스가 제대로 들어가지 않으면 실행시 오류를 내는 경우도 있다. 원본에서 리소스를 복사해 붙여넣는 방법을 추천



음.. 뭔가 더 있었던거 같은데 대강 이정도네요.