프로그램을 지역화하는 방법이 궁금합니다.
안녕하세요. 군인이 되어 한동안 KLDP에 드나들지 않았던 대학생입니다.
(뭐 입대 전에도 다른 분들이 기억하실만큼 활동했던 것 같진 않지만)
저를 소개하자면, 저는 게임 프로그래머를 목표로 하는 사람이고,
iOS App, 게임, 일반 프로그램 등 다양한 프로그램을 만들어보며 공부하고 있습니다.
군인의 신분으로 공부하기가 쉽지 않긴 하지만 나름 틈날 때마다 몰래 책 들여다보면서
배웠던 내용을 잊지 않게끔 노력하고 있습니다. ㅎㅎ (물론 일도 열심히 합니당)
아무튼 제가 입대 직전 가장 관심있게 바라보던 부분이 게임의 한글화 부분이었습니다.
(중학교 때부터 게임 제작과 함께 달성하고 싶었던 인생 목표 중의 하나였기도 했습니다)
입대 전에 다른 포털사이트에서 게임 한글화와 관련해 여러 정보를 뒤져봤지만
제대로 이를 설명해주는 블로그나 사이트를 찾는 게 쉽지 않더군요.
나름 공부해보려고 'Reverse Engineering Vible'과 같은 리버싱 관련 책을 사서
맨 땅에 헤딩하듯 공부해보려고도 했습니다만 이렇다 할 성과는 없는 상황입니다.
제목에 프로그램을 지역화하는 방법이라고 적었는데, 일반 응용 프로그램을 한글화하는 방법도 궁금하여 그렇게 적었습니다.
콘솔 에뮬레이터를 이용한 게임의 한글화보다, PC에서 플레이 가능한 게임의 한글화를 공부하고 싶습니다.
이와 관련해 좋은 문서나 자료가 있을지 KLDP 분들께 도움을 청합니다. 읽어주셔서 감사합니다.
.
취미로 한글화를 하던 사람입니다.(주로 말씀하신 콘솔 게임이지만)
PC 나 콘솔 게임이나 기본적인 방식은 전혀 다르지 않습니다. 게임 대사의 유니코드 지원 여부, 폰트 출력 방식 등을 보고
필요에 따라서 바꿔줘야 할 부분은 바꿔주어야 하고 다음으로 대사 코드를 한글 코드로 된 대사로 바꾸는 작업(노가다) 입니다.
다만 디버깅이 가능은 하지만 조금 어려운 콘솔 게임에 비하여 PC 의 경우에는
좀 더 쉬운 디버깅(물론 제 개인적인 생각입니다. z80/arm 등 보다는 x86 디버깅을 오래 해 와서 더 쉽습니다.)
이 가능하다는 점에서 수월하게 작업을 할 수 있다는 점에서 좋습니다.
그리고 리버스 엔지니어링 책을 보시는데, 사실 PC 한글화에 있어서 필수 요소라고
부를 수는 없습니다. 워낙 툴도 많고 방식도 다양하기 때문에 굳이 코드 참조 또는 패치를 하지 않아도
한글화는 가능합니다. 자세히 설명드리기는 어려울 거 같고 딱히 추천해 드릴 문서나 자료도 없네요.
그리고 이런 글은 kldp 보다는 네이버의 한식구 같은 카페에 가시는 것을 추천합니다.
답변 감사합니다.
한글화 관련해서 저도 다른 쪽을 찾아보긴 했는데,
예전에 있던 좋은 글들은 모두 문을 닫은 사이트였고
요즘 올라오는 글들은 어떻게 PC 게임을 한글화해야 하는가에 대해
구체적으로 설명해주고 있지 않습니다.
(한글화 사이트가 문을 닫은 이유와 같다는 소문을 들었습니다.)
모두 개론적인 내용에 대해서만 수박 겉핥기 식으로 다루고
그나마도 하다보면 된다는 식으로만 글을 마무리하더라구요.
게임보이 에뮬레이터로 실행하는 롬 파일 게임의 한글화는 문서가 있는데,
제가 궁금한 PC 게임 한글화에 대해서는 아무리 찾아도 정보가 없네요.
검색하니 The Game Localization Handbook이라는 외국 서적이 나오긴 하던데
가격이 지나치게 비싸고 도서관에도 없는 것 같아 보기는 힘들 것 같더군요.
개인적으로는 요즘같은 시대에 인터넷이라는 정보의 바다에서
한글화와 같이 재미있어보이는 주제를 검색으로 간단히 찾을 수 없다는 게
정말 안타까운 일이 아닐 수 없다는 생각도 듭니다.
한글화를 해보셨다시니 그 방법에 대해 자세히 여쭤보고 싶었지만
이미 어렵다고 하시니 아쉬운 마음만 크네요.
소중한 답변 정말 감사합니다.
저는 이렇게 생각했습니다.
한글화 팀이 여럿 있으니 한번 접촉해보시는 것도..
(일단 본 리플은 순수히 제 사견임을 미리 말씀드립니다.)
제가 느낀 바로는 국내 PC게임의 한글화는 철저히 비공개 방식으로 운영되는 것 같습니다. 특히 그 한글화 작업에 들어가는 노가다나 코드분석 등을 중요한 지적 자산으로 생각하고 있기 때문에, 한글화가 끝난 파일과 모듈은 공개를 할지언정 과정에 대해선 아주 기본적인 것도 좀처럼 외부로 공개를 하지 않더군요. (제 느낌입니다. 근거는 없습니다.)
또한 법적인 문제도 존재합니다. 저작권이 있는 프로그램을 리버스 엔지니어링으로 수정한다는 것 자체가 소위 핵 프로그램과 마찬가지의 취급을 받을 수 있습니다. 또한 게임 제작사들이 데이터 임의 수정을 방지하기 위해 보안기술을 사용하게 되는데 이를 뚫는 방법이 공개되면 이역시 문제가 되겠죠. 특성상 일반에의 공개가 어려운 정보들이기 때문에 찾기가 어려운 것입니다. 결국 찾는다 해도 혼자 맨땅에서 헤딩을 해야 하는 일반론적 기술이거나, 아니면 이미 한참 오래되어 도태된 기술만 나오게 되는 것이죠. 이게 바로 글쓰신 분의 현재 상황인듯 하고요.
물론 개중에는 모드 제작방법이 공개돼있어서 모드 형태로 한글화가 가능하다거나, 잘 알려진 파일 형식 또는 텍스트 형태로 관련 데이터가 저장되어 있는 게임들도 있지만, 이런 쪽을 만지는 것에는 전혀 흥미가 없으실 것으로 생각합니다. 제 생각에는 리버스 엔지니어링쪽을 실제 예와 함께 공부하고 싶으신 것 같거든요.. 맞나요?
그럼 남은 방법은 무엇이겠습니까? 바로 직접 그 팀에 들어가는 것입니다. 디버깅과 코딩에 자신이 있으시다면 큰 어려움은 없지 않을까 싶습니다. 많은 한글화팀중에 주류는 제가 보기엔 일본산 성인 게임의 한글화입니다. 카페나 인터넷 커뮤니티 등을 잘 찾아다니시면 참여방법이 나오지 않을까 싶네요. 다만 말씀드렸다시피 코드를 직접 수정하게 되면 불법의 소지가 있다는 점, 절대 잊지 마시기 바랍니다.
--
답변 감사합니다.
리버스 엔지니어링을 실제 예와 함께 공부하고 싶어보인다는 말씀은 정확하십니다.
(저같은 경우는 목표가 리버싱 공부보다 한글화 자체에 초점이 있긴 합니다만)
한글화가 검색만으로 답을 얻을 양지의 기술은 아니라는 생각은 하고 있었지만
어째선지 팀에 직접 들어가 정보를 얻는 건 일부러 거부하고 있었는데,
mirheekl님 댓글을 읽고 팀에 직접 들어가는 것이 더 낫다고 마음을 고쳤습니다.
다만 걱정은, 제가 지금 군대에 있어 컴퓨터로 직접 테스트해보기 애매한 상황이거니와
제 프로그래밍 실력이 팀에 들어갈 수 있을 정도가 되는지 기준도 모르기에
팀에 바로 들어갈 수가 없다는 점입니다.
게임 한글화 어떻게 하면 되는가 - 땅땅치킨(http://cafe.naver.com/hansicgu/2202)
한글화에 대한 정보를 찾다 그나마 얻은 개론적인 내용이 이것이어서
Reverse Engineering Vible로 어셈블리와 리버싱을 동시에 시작하려했지만 실패했었는데,
혹 한글화 팀에 들어가서 올바른 활동을 할 수 있기 위해 제가 배워놓아야 할 기술이 있다면
이에 대해 알려주시면 감사하겠습니다.
정말 좋은 답변 감사드립니다.
어쩌다보니 로그아웃되었네요;
로그인한 줄 알고 글 썼다가 로그인 안 되어있으면 뭔가 찝찝합니다... 흑
저는 이렇게 생각했습니다.
다른 방법으로는...
다른 방법으로는 애초부터 현지화 가능한 프로그램을 만들어보시는 수가 있겠지요?
손쉬운 예로 WoW 애드온이 있습니다. 애드온을 만들어서 영어와 한국어 지원을 넣어보시는 수가 있겠습니다.
답변 감사합니다.
음... 그러니까 현지화 가능한 프로그램을 직접 개발한 다음
이 프로그램을 다시 리버싱해서 한글화하는 방법을 익히라고 하신 건지요?
저는 이렇게 생각했습니다.
현지화를 하는 방법이 궁금하시다면...
현지화를 하는 방법이 궁금하신데 리버스 엔지니어링엔 큰 관심이 없으시다면 그냥 다짜고짜 현지화를 해보시는 게 나을 수도 있으리란 생각에서 드린 말씀이었습니다.
WoW 애드온의 경우는 보통 영문 버전으로 해외에서 개발이 되고, 사용자가 알아서 한국어 버전으로 현지화되는 것이 보통입니다.
보통 파일을 다운 받아서 열어보시면 어딘가에 koKR.lua 파일과 enUS.lua 파일이 있을 것입니다. enUS.lua 파일에는 영어 원문이 들어 있고 koKR.lua 파일은 UTF-8 형식으로 번역을 담고 있습니다.
두 파일의 형식이 비슷할 때도 있지만 미묘하게 다를 수도 있으므로, esES나 deDE등 다른 언어 번역 파일이 기존에 있으면 참고하시면 좋습니다.
현지화에 있어서 고려해야 할 것은:
이런 걸 고려해서 번역을 넣습니다. 번역 결과가 잘 반영되면 이젠 번역이 잘 됐는지를 따져야겠죠.
Firefox / Chrome / Emacs / Vim
Firefox / Chrome / Emacs / Vim 현지화는 어떻게 되고 있는지
Gnome/KDE에 딸려오는 게임들 현지화는 어떻게 되고 있는지
이런 쪽도 한번쯤은 생각해보시는 것도 나쁘지 않을 것 같습니다.
답변 감사합니다.
소중한 답변 감사합니다. 더 찾아보겠습니다. ㅎㅎ
저는 이렇게 생각했습니다.
댓글 달기