한글화에 앞서...
저의 안드로이드 한글화에 대한 지식은 인터넷에서 얻은 것이 전부라서 전문적인 지식이 있는 것은 아닙니다. JAVA깔고 이클립스깔고 우분투 깔고 이것저것 해 보면서 저에게 가장 알맞고 편한 방법을 찾아낸 것이기 때문에 각자의 컴퓨터 환경에 따라 저의 방법이 수많은 오류를 뱉어내며 안 될 수도 있습니다. 제가 작업하는 환경은 Windows 7 32bit에 java (jre6, jdk1.6.0_32)가 설치 되어 있는 환경임을 미리 말씀드립니다.
준비물
일단 APK를 한글화하려면 아래 준비물들이 필요합니다. 제가 쓰는 프로그램들로 링크를 걸어 놓았습니다. APK를 컴파일/디컴파일 하시려면 컴퓨터에 java가 설치되어있어야 합니다.
1. APKTOOL (IODES님의 ICS APKTOOL : http://www.styleroot.com/index.php?mid=pds&package_srl=29441 )
2. 압축 프로그램 (7zip : http://www.7-zip.org/ )
3. 텍스트 편집기 (Notepad++ : http://notepad-plus-plus.org/download/ )
참고 사항 - 개념 이해하시기 위해 사전에 보시기 바랍니다.
http://www.startpda.kr/zbxe/index.php?document_srl=1894495&mid=tip&listStyle=viewer
http://www.startpda.kr/zbxe/index.php?document_srl=1895997&mid=tip&listStyle=viewer
중요 개념 설명
일반적으로 안드로이드 앱의 폴더구조 중 res/values/strings.xml 이라는 파일이 해당 앱에서 사용하는 문자열을 저장하고 있습니다.
res/values-ko/폴더를 만들어 그 속의 strings.xml파일을 수정하는 방법으로 앱의 한글화를 하실 수 있습니다. 어플마다 res/values-ko-rKR같은 디렉토리도 포함하고 있는 경우가 있는데 필요에 따라 추가 혹은 수정해 주시면 됩니다.
헌데 문제는 APK를 압축 해제 해 보시면 안에 values관련 폴더를 찾아 볼 수가 없습니다. 이 파일들은 resources.arsc 라는 파일에 저장이 되어있는데 resources.arsc파일 안을 들여다 보려면 APK파일을 디컴파일 하셔야 됩니다. 한글화 과정에서 가장 중요한 부분이기도 하고 가장 골 떄리는 부분이기도 합니다. 아래에서는 제가 사용하는 툴로 컴파일/티컴파일 과정을 설명 드리도록 하겠습니다.
APK 디컴파일하기
우선 위에서 받은 ICS APKTool를 적당한 폴더에 압축을 푸시고 그 폴더 안에 디컴파일할 파일들을 넣어 놓습니다. 꼭 같은 폴더에 넣을 필요는 없습니다.
ICS APKTool이 실행된 모습입니다.
APK 디컴파일 부분의 APK파일에서 찾아보기를 클릭하셔서 디컴파일 할 파일을 찾습니다. 그리고 대상경로에는 디컴파일 후 파일들이 위치할 경로를 선택해 줍니다. 대상 경로로 지정된 폴더 안에 APK의 파일명으로 된 폴더가 생기며 APK내부 파일들이 저장이 됩니다.
*주의 : 같은 이름의 APK파일을 두번 이상 디컴파일 할 시에 오류가 나타납니다. 파일명을 수정 한 후 디컴파일 해 주시면 됩니다.
경로 지정 후 디컴파일 버튼을 눌러주시면 아래와 같은 화면이 뜨면서 디컴파일을 시작합니다.
작업 완료 화면이 나타나고 지정해 준 경로로 가보면 APK파일의 내부 파일들이 디컴파일 되어 있는 모습을 보실 수 있습니다.
res/폴더로 이동해 보면 아래와 같이 압축 파일로 열었을 때에는 보이지 않던 values폴더들이 있는 것을 보실 수 있습니다. 여기에 한글화 작업을 한 폴더를 추가해 주시면 됩니다.
저는 주로 순정 파일에서 한글화 폴더를 복사해 넣고 그 안에 있는 strings.xml파일을 수정하는 방법으로 한글화를 진행합니다. 필요에 따라서는 다른 언어의 values폴더와 비교하며 작업을 진행하기도 합니다.
자세한 한글 파일 수정 방법을 이글을 참고해 주시기 바랍니다.
http://www.startpda.kr/zbxe/index.php?document_srl=1895997&mid=tip&listStyle=viewer
APK컴파일 하기
한글 파일을 추가를 마치셨으면 APK파일을 다시 컴파일 해 주어야 합니다. ICS APKTool을 다시 실행 하셔서 소스 폴더에는 아까 디컴파일에서 나올 폴더를 지정해 주시고 대상경로에는 컴파일 되어 나올 파일이 저장될 유치를 지정해 주시면 됩니다. 패키지 사인 체크 박스를 체크하시고 컴파일 버튼을 눌러 주시면 됩니다.
컴파일 작업 진행 중인 모습입니다. 저는 이 과정에서 오류가 많이 났었는데...대상 경로를 바꿔주며 계속 시도를 하니깐 컴파일 되더군요.
이렇게 컴파일 한 APK파일을 바로 휴대전화나 롬에 넣어서 사용하면 좋겠지만 이 파일을 바로 사용하게 되면 많은 오류들을 뿜어 내며 심지어는 어플 자체가 실행이 안 되는 경우도 생기게 됩니다. 그래서 아래 과정을 거쳐야 APK를 사용하실 수 있습니다.
resources.arsc 옮겨 넣기
자 이제 거의 마무리 단계입니다. 수정한 APK파일에서 원본 APK파일로 resources.arsc파일을 복사해 주어야 합니다.
앞에서 수정한 APK파일을 7-zip을 이용하여 열어줍니다. *절대 압축을 풀시면 안 됩니다.
아래와 그림과 같이 resources.arsc파일이 들어 있는 것을 보실 수 있습니다.
이 파일을 원본 APK파일에 넣기 위해서 원본 파일도 7-zip을 이용하여 열어 줍니다. *절대 압축을 풀시면 안 됩니다.
그리고 수정된 APK 파일에서 resources.arsc파일을 끌어다 원본 APK파일로
파일을 끌어다 놓으면 확인 창이 뜨는데 예를 눌러 주시면 됩니다. 그리고 7-zip의 파일창을 닫아 주시면 됩니다. 롬의 zip파일을 바로 열었을 경우에는 APK파일이 업데이트 되었다는 창이 뜨는데 이 경우도 예 를 눌러 주시면 됩니다.
이제 한글화 작업이 다 끝이 났습니다. 수정된 원본 APK파일을 휴대전화에 넣고 잘 되는지 실행해 보시면 됩니다.
마무리
컴파일/디컴파일 과정은 경험해 보니깐 되게 까다롭고 귀찮고 짜증나는 작업입니다. 한번 시도 해 보고 안 된다고 하실 분들은 애초에 시도를 안 하시는게 정신 건강에 좋습니다. 그리고 제가 적어놓은 방법이 가장 최선의 방법은 아니기 때문에 이 방법이 안 된다면 다른 방법을 찾아보고 시도해 보시기 바랍니다.