리소스 해커로 언어 정보 편집
영어나 외국어로 된 프로그램의 메시지을 한글로 바꾼 뒤에 그 언어 정보는 원래대로 두는 실수를 하는 때가 있다. 보통 때는 전혀 문제가 없으나, 간혹 문제가 생기는 경우도 있습니다. 이렇게 언어 정보가 틀려 있는 프로그램의 언어 정보를 리소스 해커(Resource HackerTM)를 이용하여 고쳐보도록 하겠습니다.
먼저 Total Commander Korean Forum :: XPG Community 사이트에서 NFO Viewer 플러그인을 다운로드합니다.
- 참고 : 용어 및 일반적인 사항에 대한 설명은 이전 글 한글화와 언어 정보를 참조하기 바랍니다.
언어 정보 편집 순서
프로그램 리소스에서 언어 정보를 고치는 작업의 순서는 다음과 같습니다.
- 프로그램의 언어 정보 고치기
- 메뉴의 언어 정보 고치기
- 대화상자의 언어 정보 고치기
- 대화상자의 글꼴 정보 고치기
프로그램의 언어 정보 고치기
리소스 해커에서 파일을 열어서 가장 먼저 할 일은 프로그램 전체에 적용되는 언어 정보를 고치는 작업입니다. 프로그램 전체에 적용되는 언어정보는 아래 자료 화면에서, 주로 왼쪽 창에서 Version Info라는 항목을 살펴보면 찾을 수 있습니다.
버전 정보(Version Info)와 언어 정보
다음과 같은 순서로 작업을 합니다.
- nfoviewer_kor.wlx 파일을 리소스 해커에서 엽니다.
- Version Info를 클릭하고, 1을 클릭하고, 2052를 클릭하면 위와 같은 화면을 볼 수 있습니다.
- 오른쪽 창에서 BLOCK "StringFileInfo" 부분과 BLOCK "VarFileInfo" 부분을 찾습니다. "Translation", 0x0804 0x04B0 부분에서 앞의 십육진수는 언어 정보이고, 뒤의 십육진수는 코드페이지 정보입니다.
- MSDN :: List of Localized MS Operating Systems 문서를 참조하여 언어 정보(LCID)와 코드페이지 정보를 알아둡니다.
- 참고로 한국어의 LCID는 십육진수로 0x0412, 십진수로는 1042입니다. 그리고 코드페이지는 십진수로 949, 십육진수로는 0x03B5입니다. 다만 이번 경우에는 0x04B0(utf-16, 유니코드)을 그대로 유지합니다.
- "Translation", 0x0804 0x04B0 부분을 "Translation", 0x0412 0x04B0라고 고칩니다.
- BLOCK "080404b0" 부분을 BLOCK "041204b0"라고 고칩니다.
-
왼쪽 창에서 언어 정보(LCID)를 2052(중국어 간자체)에서 1042(한국어 통합완성형)로 고칩니다.
언어 변경
새 리소스 언어 입력
- 스크립트 컴파일을 클릭한다. 이 작업을 하면 지금까지 했던 작업 결과가 적용된다.
- 저장한다.
메뉴의 언어 정보 고치기
메뉴는 대부분 글꼴 정보를 포함하고 있지 않습니다. 그 까닭은 메뉴는 대부분 비주얼스튜디오와 같은 IDE(개발 환경)에서 자동으로 만들어주기 때문이며, 또한 그 과정에서 시스템에서 기본으로 정해준 글꼴을 사용하도록 설정되어 있기 때문입니다. 물론 프로그램을 짤 때 사용자가 수동으로 바꿀 수는 있으며, 또한 메뉴 글꼴 전체를 사용자 시스템에서 고칠 수도 있습니다.
[디스플레이지 등록 정보]의 [고급 화면 배색]에서 [메뉴] 항목을 수정하는 화면
이 글에서는 그런 시스템 정보는 전혀 다루지 않지만, 참고 삼아 알려드렸습니다.
메뉴 항목과 언어 정보
메뉴에 대한 언어 정보를 고치는 과정은 다음과 같습니다.
- nfoviewer_kor.wlx 파일을 리소스 해커에서 엽니다.
- Version Info를 클릭하고, 101을 클릭하고, 2052를 클릭하면 위와 같은 화면을 볼 수 있습니다.
- MSDN :: List of Localized MS Operating Systems 문서를 참조하여 언어 정보(LCID)와 코드페이지 정보를 알아둡니다.
- 왼쪽 창에서 언어 정보(LCID)를 2052(중국어 간자체)에서 1042(한국어 통합완성형)로 고칩니다.
- 오른쪽 창에서 LANGUAGE LANG_CHINESE, 0x2 부분을 찾습니다. 이것을 LANGUAGE LANG_KOREAN, 0x1라고 고칩니다. 이때 마지막 0x2는 SUBLANG_KOREAN 또는 0x01로 고쳐도 됩니다.
- 스크립트를 컴파일한 뒤에 저장합니다. 이때 스크립트를 컴파일하면 LANGUAGE LANG_KOREAN, SUBLANG_KOREAN 이라고 바뀐 부분이 LANGUAGE LANG_KOREAN, 0x1로 바뀝니다. 이것은 정상이므로 걱정하지 않아도 됩니다.
이 프로그램(nfoviewer_kor.wlx)에는 메뉴가 하나뿐이지만, 대부분의 프로그램은 메뉴가 여러 개로 되어 있다.
대화상자의 언어 정보 고치기
프로그램을 만들게 되면 현재 화면에 보이는 창으로 작업을 할 수 없는 때가 생기거나 메시지를 사용자에게 전달해야 하는 때가 있다. 이때 생성하는 것이 바로 대화상자이다. 대화상자에는 언어 정보와 함께 글꼴 정보가 함께 포함되는 때가 많다.
이 프로그램(nfoviewer_kor.wlx)에는 대화상자가 하나뿐이지만, 대부분의 프로그램은 대화상자가 여러 개로 되어 있다.
대화상자 항목과 언어 정보
작업하는 순서는 다음과 같습니다.
- 앞서 작업한 메뉴를 참조하여 대화상자의 언어 정보(LCID)와 코드페이지 정보를 고칩니다.
- 글꼴 정보에서 FONT 9, "宋?"를 FONT 9, "굴림" 또는 FONT 10, "굴림"으로 고칩니다.
- 스크립트를 컴파일한 뒤에 저장합니다.
그밖에 살펴야 할 사항
일단 이렇게 바꾸었으면, 메시지가 정상적으로 출력되는지를 확인해야 합니다. 이 작업에 앞서 반드시 원본을 백업해 두기 바랍니다. 백업은 선택이 아닌 필수입니다.
관련 문서
내부 문서
외부 문서
- Total Commander Korean Forum :: XPG Community :: [WLX] Nfoviewer
- 리소스 해커(Resource HackerTM) 웹페이지
- MSDN :: Code Page Identifiers 문서
- MSDN :: List of Localized MS Operating Systems 문서
- MSDN :: Language Identifier Constants and Strings 문서
- Language (Resource) 문서
이 글은 스프링노트에서 작성되었습니다.