소스 엔진은 거의 대부분 메모장 파일만 뜯어 고쳐도 한글화가 쉽게 되는 특징이 있습니다.
하지만 막상 처음 해보시는 분들은 어떤 식으로 만져줘야 할지 고민인 경우가 많을텐데
좀 더 심화적으로 어떻게 파일을 수정해야 할지 알아보겠습니다.

 

메모장 파일 수정 방법

보통 게임 내에 출력되는 글자들은 메모장 파일에 저장되어 있으며
거의 대부분의 게임들은 'Resource' 폴더 안에 '게임이름_english.txt' 형태로 존재합니다.

(예: Program Files (x86)\Steam\steamapps\common\게임이름\게임이름\resource\게임이름_english.txt)
파일 내부를 열어보면 대략 이런 형태의 문장들이 나타납니다.

{
"Language" "English" 
"Tokens"
{
"App_SpecialOffers" "Special Offers"
"App_Friends" "Friends"
"App_Games" "Play Games"
"App_Storefront" "Browse Games"
"App_Servers" "Servers"
"App_Browser" "Web browser"
"Admin_Servers"  "My Servers"
"App_Account" "Account"
"App_Settings" "Settings"
"App_Monitor" "Monitor"
"App_News" "News"
}
}  

여기서 어디를 수정해줘야 게임에서 한글이 출력될까요? 

아마 눈치 채신 분들은 아시겠지만

{
"Language" "Korean"
"Tokens"
{
"App_SpecialOffers" "특별 할인"
"App_Friends" "친구"
"App_Games" "게임 플레이하기"
"App_Storefront" "게임 검색"
"App_Servers" "서버"
"App_Browser" "웹 브라우저"
"Admin_Servers"  "내 서버"
"App_Account" "계정"
"App_Settings" "설정"
"App_Monitor" "모니터"
"App_News" "뉴스"
}  
}

뒤에 있는 따옴표 안에 들어있는 문장들을 수정하고 저장해주시면 됩니다.
특히 따옴표에 주의하세요. 따옴표를 하나라도 빼 먹으면 한글이 제대로 출력되지 않습니다.

그리고 밸브사에서 공식으로 번역한 파일의 경우

"lang"
{
"Language" "korean"
"Tokens"
{
"App_SpecialOffers" "특별 할인"
"[english]App_SpecialOffers" "Special Offers"
"App_Friends" "친구"
"[english]App_Friends" "Friends"
"App_Games" "게임 플레이하기"
"[english]App_Games" "Play Games"
"App_Servers" "서버"
"[english]App_Servers" "Servers"
"App_Browser" "웹 브라우저"
"[english]App_Browser" "Web browser"
"Admin_Servers" "내 서버"
"[english]Admin_Servers" "My Servers"
"App_Account" "계정"
"[english]App_Account" "Account"
"App_Settings" "설정"
"[english]App_Settings" "Settings"
"App_Monitor" "모니터"
"[english]App_Monitor" "Monitor"
"App_News" "뉴스"
"[english]App_News" "News"
"App_Storefront" "게임 검색"
"[english]App_Storefront" "Browse Games"
}
}

이런식으로 밑에 "[english]~ 형식으로 원문이 따로 또 존재하는데, 

저런 식으로 번역을 해도 상관은 없습니다만 
따로 툴이 없으면 일일이 노가다로 붙여 넣어야 하고, 
자칫 중간에 실수로 따옴표 하나를 빼 먹는다 거나 더 추가하는 경우 
그 부분을 기준으로 밑에 있는 모든 문장들이 통째로 한글 출력이 안될 가능성이 높아서 

별로 썩 추천하는 번역 방법은 아닙니다.
특히나 저렇게 번역을 하면 업데이트 된 영어 원문과 대조하며 추가된 문장과 빠진 문장을 찾기가 상당히 힘듭니다.

 

특수 문자

또 계속 번역을 하다 보면 몇 가지 이상한 문자들을 마주쳐서 곤혹을 겪게 됩니다.
일단 대표적인 어떤 특수문자들이 있는지 알려드리겠습니다.

\n
이건 문장의 줄을 띄우는 역할을 합니다. 
\n\n 이렇게 두 개씩 존재하면 줄을 두 번 띄운다는 의미입니다.
물론 이 기호를 안 쓰고 그냥 띄우는 게임도 존재하고요.

%s %s1 %s2 %s3 %s1
이건 게임 상에서 숫자나 아이템, 유저의 닉네임 등을 표시할 때 사용합니다.

%내용% , {내용}
조작 키를 나타낼 때 사용하기도 하고 경험치를 표시할 때 쓰기도 합니다.
보통 안에 _ (언더스코어) 문자가 포함된 경우가 많기 때문에
이런 문자가 보일 경우 절대 내용물은 건드리지 않는 것이 좋습니다.

다중 언어를 지원하는 게임의 경우 개발자들이 맨 위에 설명을 적어 놓아 그걸 참고해서 보면 좋습니다.

여태 여러 소스엔진 게임을 번역하면서 본 건 이게 전부인 듯싶지만 혹시 제가 모르는 특수 문자가 더 있을지 모릅니다.

 

저장 방법

메모장 파일을 저장할 때는 굳이 꼭 '게임이름_english'가 아니더라도 '게임이름_korean'과 '게임이름_koreana'로 저장해도 적용이 됩니다. 
이 방법을 권장하는 이유가 게임 업데이트 시 english 파일로 저장을 해두면 파일이 덮어 씌워져서 내용물이 다 날아갑니다.

또 자칫 잘못 수정할 경우 영어 원문이 없어서 글자가 이상하게 뜨는 경우도 있고요.

korean과 koreana의 차이는 각각 청소년용 계정과 성인용 계정에 적용되는 차이인데요.
둘 다 만들어주면 좋고, 하나만 만든다면 koreana로 만들어주는 게 더 낫습니다.
아무래도 대부분의 스팀 계정들은 성인용이라 korean만 있으면 한국어가 적용이 안되더군요. (반대도 마찬가지)


다만 일부 게임의 경우 Korean, Koreana로 이름을 변경하면 인식을 못하는 게임도 종종 있습니다.
이럴 경우 아래와 같은 방식으로 적용이 가능합니다.

라이브러리에 있는 게임을 마우스 오른쪽 클릭해서 속성... → 시작 옵션 설정...으로 들어가서
시작 옵션에 -language korean 또는 -language koreana를 적으시면 한국어 출력이 가능합니다.

하지만 경우에 따라 몇몇 문장들은 번역을 하여도 게임 상에 안 뜨는 경우도 가끔 있습니다.
이 경우에는 res 확장자 파일을 건드려줘야 합니다.

이제 한번 res 파일을 수정하는 방법을 알아봅시다.

 

res 확장자 파일 수정

res 확장자도 메모장 파일과 같은 경로에 있는 경우가 흔합니다.
res 확장자는 메모장 및 워드패드로 아주 손쉽게 열 수 있습니다.
저는 좀 더 깔끔하게 보기 위해 워드패드로 열어서 봅니다.

res 파일을 열고 Ctrl + F키를 눌러 labeltext를 찾으면
그 뒤에 #***_*** 형식으로 된 문장이 아닌 원문이 나오는 경우가 있는데,
이걸 그냥 생으로 뜯어 고치는 방법이 있고, 좀 더 번거로운 방법으로 수정하는 방법도 있습니다.

 

res 파일 수정 방법

예}

"OKButton"
{
"ControlName" "Button"
"fieldName" "OKButton"
"xpos" "330"
"ypos" "372"
"wide" "88"
"tall" "24"
"autoResize" "0"
"pinCorner" "0"
"visible" "1"
"enabled" "1"
"tabPosition" "0"
"labelText" "Start"
"textAlignment" "west"
"dulltext" "0"
"brighttext" "0"
"wrap" "0"
"Command" "OK"
"Default" "0"
}
"CancelButton"
{

 

저 Start라 써진 부분을 '시작'이라 번역해서 수정해주시면 되는데, ("labelText" "시작")
그냥 워드패드 자체로 수정을 하게 되면 res 파일로 저장을 하기 힘듭니다.
이 경우 Notepad++같은 프로그램으로 수정을 해줘야 해요.

그리고 수정 후 가장 중요한 부분이 있는데,
파일 인코딩을 ANSI에서 UTF-8로 변환해줘야 합니다.

여러분이 저와 같은 프로그램을 쓰신다면 
저 UTF-8 (BOM 없음)으로 반드시 변환을 해줘야 한글이 안 깨집니다.

특히 Notepad++의 장점은 다른 이름으로 res 확장자 그대로 저장이 가능한 게
큰 장점인 것 같습니다. 여러 편의 기능들도 많고요.
게임 폴더 내에 있는 res 파일을 모조리 열어서 labeltext만 찾는 것도 가능합니다.

 

두 번째 수정 방법

이 방법은 조금 번거롭지만, 만약 잘못 번역했을 경우 위 방법보다 더 수정이 간편한 것이 특징입니다.
또한 인코딩을 변환해줄 필요도 전혀 없고요.

예를 들어 res 파일 안에 

"labelText" "Cancel" 이라는 문장이 있다면
저 Cancel 앞에 #을 추가해주고, (예: "labelText" "#Cancel"
다시 메모장 파일에는 #을 때주고 
"Cancel" "취소" 문장을 추가해주는 방법이 있습니다.

res 파일
txt 파일

이때 규칙이 있는데, res 파일의 경우 반드시 앞에 #을 꼭 붙여줘야 하며, 공백없이 최소한 _ (언더스코어)로 처리를 해줘야 합니다. 물론 아예 언더스토어 없이 그냥 다 붙여서 쓰는 게임사들도 있더군요. (예: "labelText" "#Can_cel")
저 #Cancel의 경우 다른 res 파일 내 문장과 겹치지 않도록 적절히 알아서 만들어주시면 됩니다.
겹치지만 않는다면 간편하게 #1, #2 이런 식으로 해주셔도 상관없어요.
아니면 메모장 파일 안에 이미 '취소'라는 단어가 있어서 차라리 이걸 빌려다 쓰고 싶다면 저 방법의 반대로 해주시면 됩니다.

하지만 모든 게임들이 파일을 밖으로 노출시켜 놓은 건 아닙니다.
Insurgency나 Day of infamy같은 게임의 경우 
txt 파일이나 res 파일을 VPK 파일 안에 넣어서 수정이 힘든 경우도 존재합니다.

VPK 파일의 경우 GCFScape란 프로그램을 통해 손쉽게 파일을 열거나 추출할 수 있고, 
다시 VPK로 언팩하고자 할 경우에는 보통 bin이란 폴더 안에 vpk.exe라는 프로그램이 존재합니다. 
여기다가 VPK 파일로 압축하고자 하는 폴더나 파일을 드래그로 끌어다가 위에 올려놓으면 자동으로 VPK 파일로 압축이 됩니다. 

따로 창작마당과 애드온을 지원하는 게임일 경우 패치에 필요한 파일만 따로 압축을 해서 업로드하는 방법도 있는데, 아쉽게도 제가 봤던 게임들 중 txt 파일이 제대로 적용되는 게임은 없더군요. 
만약 txt 파일 적용도 가능하다면 딱 필요한 파일만 창작마당에 공유하시던가, 아니라면 아직까진 원본 폴더에 패치를 씌우고 통째로 압축해서 배포하는 방법 밖에 없다고 봅니다.

폰트의 경우 구글 등에다가 'clientscheme 폰트 변경'이나 또는 '팀포2 폰트' '레포데 폰트' 등으로 검색해보면 상당히 잘 정리된 몇몇 글들이 검색됩니다.

하지만 게임에 따라 저 게시물에 나오는 방법으로 수정을 해도 안 되는 게임이 존재하더군요. 
특히 vFont라는 확장자를 폰트로 쓰는 게임들은 한글 폰트도 그에 맞춰서 vFont로 변환해줘야 폰트가 적용되는 것 같은데, 
아쉽게도 글꼴 파일을 vFont로 바꾸는 방법은 아무리 검색해도 안 나오더군요. 
만약 있다 하더라도 게임마다 고유의 암호화 키가 있어서 이 키를 모르면 제대로 변환이 안 될 것 같고요. 
아무튼 그냥 일반적인 글꼴 파일로도 손쉽게 변경할 수 있기를 바라는 게 좋을 것 같습니다. 
제가 한창 번역 중인 Contagion이란 게임은 아쉽게도 vFont를 사용해서 폰트 제작이 불가하네요

혹시 잘 이해가 안되는 부분이 있으면 댓글로 문의해주시기 바랍니다. 감사합니다.

Posted by Hanmoa
,