'로케일'에 해당되는 글 2건

  1. 2009.12.16 한글화와 언어 정보 (2)
  2. 2009.06.05 AIK7과 설치 응답 파일 4 - 응답 파일과 언어팩 적용 윈도7

한글화와 언어 정보

Total Commander Korean Forum :: XPG Community 사이트에서 플러그인을 살펴보다가 NFO Viewer 플러그인의 한글화된 파일이 있어서 다운로드를 하게 되었다. 한글화가 얼마나 잘 되었는지 알고 싶어서 리소스 해커(Resource HackerTM) 프로그램을 이용하여 열어보았다.

그런데 한글화된 그 플러그인의 언어 정보가 한글이 아닌 중국어였다. 다시 말해 대화상자 등의 메시지는 한글로 바꾸었으나, 정작 가장 중요한 언어 정보는 중국어인 상태로 놔두었다. 이럴 경우 한글 윈도에서는 제대로 보이지만, 중국어 윈도에서는 한글이 깨져서 나타날 수도 있다.

  • 참고 : 이 글에서는 실제로 수정하는 방법에 대해서는 다루지 않습니다.

언어 정보는 어디에?

리소스 해커에서 파일을 열면 언어 정보는 어디에서 살필 수 있을까? 이 정보는 주로 왼쪽 창에서 Version Info라는 항목을 살펴보면 알 수 있다. 대부분의 프로그램의 리소스에는 이 항목이 나타나고 있습니다.

버전 정보(Version Info) 부분에 나타난 언어 정보

버전 정보(Version Info) 부분에 나타난 언어 정보

우선 왼쪽 창에서 파랑게 된 숫자 부분을 보자. 2052라고 되어 있다. 오른쪽 창에서 BLOCK "StringFileInfo" 부분과 BLOCK "VarFileInfo" 부분을 보자. 특히 밑줄을 그은 부분을 잘 살펴야 한다.
BLOCK "StringFileInfo" 부분에서 밑줄 그은 BLOCK "080404b0" 부분과 아래의 BLOCK "VarFileInfo" 부분의 VALUE "Translation", 0x0804 0x04B0 부분을 살펴보면 무언가 눈에 들어오는 게 있다. 그렇다. 거기에 나타난 십육진수의 값이 같다. 그렇다면 위의 2052 부분은? 바로 0x0804이다. 엄밀히 말하면 왼쪽 창의 십진수 값대로 십육진수 값을 정하게 된다. 가끔 이 값이 틀리는 경우도 있는데, 그렇더라도 대부분 정상적으로 메시지를 출력해 준다. 다만 알 수 없는 문제가 생길 수도 있으므로 혹시라도 발견한 경우가 있다면, 그러한 값을 고쳐 주면 된다.

이때 "Translation", 0x0804 0x04B0 부분에서 앞의 십육진수는 언어 정보이고, 뒤의 십육진수는 코드페이지 정보입니다.

언어 정보

뭉뚱그려서 언어 정보라고 썼지만, 마이크로소프트에서는 이것을 LCID(Locale Identifier)라고 부릅니다. 이 정보는 엄밀히 말하면 언어 정보라기보다는 지역 정보와 언어 정보의 혼용에 가깝습니다.

인터넷에서 검색하여 찾아낸 언어 정보는 다음과 같습니다. 원본 페이지는 Language (Resource)입니다. 원문에는 8자로 되어 있으나, 코드페이지 부분이 잘못되어 있어서 삭제하였다.

[code text; tab-size:32; smart-tabs: true] Arabic 0401 Bulgarian 0402 Catalan 0403 Traditional Chinese 0404 Czech 0405 Danish 0406 German 0407 Greek 0408 U.S. English 0409 Castilian English 040A Finnish 040B French 040C Hebrew 040D Hungarian 040E Icelandic 040F Italian 0410 Japanese 0411 Korean 0412 Dutch 0413 Norwegian - Bokm?l 0414 Polish 0415 Brazilian Portugese 0416 Phaeto-Romanic 0417 Romanian 0418 Russian 0419 Croato-Serbian (Latin) 041A Slovak 041B Albanian 041C Swedish 041D Thai 041E Turkish 041F Urdu 0420 Bahasa 080A Simplified Chinese 0804 Swiss German 0807 U.K. English 0809 Mexican Spanish 080A Belgian French 080C Swiss Italian 0810 Belgian Dutch 0813 Norwegian - Nynorsk 0814 Portugese 0816 Serbo-Croatian (Cyrillic) 081A Canadian French 0C0C Swiss French 100C [/code]

위의 자료에서 십육진수 0x0804Simplified Chinese를 나타낸다. 이때 Simplified Chinese중국어 간체자의 영어 표기이다. 이것을 한글화 한다면 메시지뿐만 아니라 이 정보도 바꾸어 주어야 한다. 그러나 왼쪽 창에 나타나는 값(LCID 값)을 고치려면 언어 변경을 해야만 한다. 변경할 때는 십진수와 십육진수를 혼동하지 않아야 합니다.

좀 더 자세한 정보는 MSDN :: List of Localized MS Operating Systems 문서를 살펴보기 바랍니다.

코드페이지 정보

코드페이지 정보를 알아보기 쉽게 정리한 자료는 MSDN에서 찾을 수 있다. MSDN 자료는 십진수로 나타나 있으므로 십육진수를 십진수로 고쳐서 보아야 한다. 0x04B0은 십진수 1200으로 바꿀 수 있다.

Identifier .NET Name 추가 정보
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications

윈도에서 한글화를 할 때 한글로 나타낼 수 있는 코드페이지는 1200(04b0, utf-16), 949(03B5, ks_c_5601-1987), 1361(0551, Johap) 등이며, 이 가운데 1200(04b0, utf-16), 949(03B5, ks_c_5601-1987)이 주로 쓰인다. 유니코드를 지원한다면 1200(04b0, utf-16)을 써야 하며, 유니코드를 지원하지 않는다면 949(03B5, ks_c_5601-1987)를 써야 한다.
위의 경우 처음부터 유니코드로 되어 있으므로 그것을 그대로 유지하여 쓰는 것이 좋다.

좀 더 자세한 정보는 MSDN :: List of Localized MS Operating Systems 문서를 살펴보기 바랍니다.

그밖에 살펴야 할 사항

리소스 해커를 이용하여 프로그램을 한글화할 때 그밖에도 살펴야 할 사항이 있다.

언어 정보

2052가 LCID 값이며, LANG_CHINESE 문자열이 언어 정보를 나타내는 문자열이다.

왼쪽 창의 2052 값이 LCID 값이며, LANG_CHINESE 문자열이 언어 정보를 나타내는 문자열이다.

가장 먼저 앞서 말한 LCID 값을 고쳐주어야 한다. 왼쪽 창에 나타난 LCID 값을 고치려면 언어 변경을 해야만 합니다. 변경할 때는 십진수와 십육진수를 혼동하지 않아야 합니다.

언어 정보를 가진 문자열 및 상수

각각의 메시지마다 언어 정보가 들어 있습니다. 바로 언어 정보를 가진 문자열이죠. MSDN :: Language Identifier Constants and Strings 문서에서 그 값을 찾을 수 있습니다. 이 값을 참조하여 메시지마다 그 정보를 고쳐 주어야 합니다. 이 값은 MS의 비주얼스튜디오가 아니더라도 공통으로 사용되고 있으므로 외우지는 못하더라도 그런 것이 있다는 사실은 기억해야 합니다. 만약 이것을 고친 뒤에 제대로 나오지 않는다면, 문자열을 상수값으로 고쳐주면 됩니다.

예컨대, 그림에서 LANG_CHINESE 대신에 LANG_KOREAN를 썼는데, 화면에 한글을 제대로 표시하지 못한다면, 그것의 실제 값인 0x12를 쓰면 한글을 올바르게 나타낼 수 있다.
한편 위 그림에서 LANG_CHINESE 뒤에 오는 십육진수는 SUBLANG이라고 하며, 하나의 언어에 여러 가지 문자 코드가 존재할 때 사용한다. 이 SUBLANG 값은 앞서 오는 언어 상수 값에 영향을 받으므로, 이 값이 같다고 같은 의미를 가진다고 오해하지 않아야 한다. 다시 말해 다음 두 코드에서 0x1은 서로 다른 의미를 가진다.

[code cpp] LANGUAGE LANG_KOREAN, 0x1 [/code] [code cpp] LANGUAGE LANG_CHINESE, 0x1 [/code]

참고로 위 화면의 LANGUAGE LANG_CHINESE, 0x2는 다음과 같다.

[code cpp] LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED [/code]

글꼴 바꾸기

마지막으로 글꼴을 살펴야 합니다. 간혹 글꼴 정보가 엉뚱하게 되어 있는 경우가 있다. 보통은 시스템 기본값을 쓰도록 글꼴을 설정하지 않을 때도 있는데, 차라리 그럴 경우에는 괜찮다. 그런데 엉뚱한 글꼴을 지정한 경우에는? 시스템에서 잘 처리해 주기를 바라야 한다.

위 그림에서는 글꼴 정보가 FONT 9, "宋?"라고 나타나 있습니다. 이것은 아마도 중국어의 송체를 가리킵니다. 메모장 등에서 SimSun으로 나타나는 글꼴이죠. 이것을 "굴림" 또는 "굴림체"로 바꾸어 주면 좋습니다.
그런데 이때 주의할 점이 있습니다. 보통 외국어 글꼴이 9포인트이며, 한글로는 10포인트로 바뀔 경우가 많습니다. 그러나 강제로 "굴림"과 같은 글꼴을 지정하면 글꼴 크기는 그대로 9포인트가 됩니다. 이때 10포인트로 바꾸어도 되고, 그대로 두어도 됩니다. 일단 바꾼 뒤 화면에 나타나는 모습을 보고 다시 고쳐도 됩니다.

관련 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


Trackback 0 Comment 2

AIK7과 설치 응답 파일 4 - 응답 파일과 언어팩 적용 윈도7

AIK7에서 설치 응답 파일을 만들어 한국어 언어팩이 적용된 윈도7에 적용해 보았다. 그런데 설치 메시지가 모조리 영어로 나와서 응답 파일에 한국어를 적용한 의미를 갖지 못했다. 그래서 이번에는 무인 설치 설정 레퍼런스(Unattended Installation Settings Reference)를 살펴보기에 앞서 한국어를 적용한 설치본에서 한국어를 한글로 설치 과정에서 출력할 수 있게 응답 파일을 고쳐보기로 했다.

윈도 설정과 언어 및 국가

윈도 비스타 및 윈도7(이하 '윈도')의 설정과 언어 문제는 약간 미묘하다. 전적으로 특정 언어에 국한하는 문제도 있고, 특정 국가에 국한하는 문제도 있다. 아무튼 설치 과정에서 한국어를 한글로 나타내려면 boot.wim에 한국어를 적용하면 되지만, 응답 파일에서 영어로 표기하도록 했다면 애써 한국어를 적용한 작업이 무효로 되고 만다. 이것은 설치한 뒤에 시스템과 사용자가 영어를 쓰도록 했다면 역시 마찬가지 결과를 보이게 된다.

이러한 일을 당하지 않으려면 응답 파일에서 언어 설정과 국가 설정을 반드시 한국(한국어)로 설정해야 하며, 이 글에서는 그 설정 방법을 다루기로 한다.

기본 환경

지금까지 실험해 왔던 환경을 그대로 사용할 예정이다. 앞의 다른 글을 읽지 않은 이들을 위해 다시 적는다.

기본적으로 윈도7의 최소 요구사항 가운데 다음 두 가지를 만족한다고 가정하고 실험하였다.

  • RAM 1G(32비트), RAM 2G(64비트)
  • HDD 40G(32/64비트)[각주:1]

자동 설치 도구는 Windows Automated Installation Kit for Windows 7를 사용하였다. 정확하게는 Windows System Image Manager(흔히 Windows SIM; 시스템 이미지 관리자)을 사용하였다. AIK7을 위해 추가 공간이 필요하며, 또한 작업을 위해 9GB 정도가 더 필요하다.

실험 목표

일단 이것도 실험이니 목표가 있어야겠다.

  1. 설치 과정에서 한글로 나오게 한다.

    위와 같이 영어(로마자)로 나오는 화면을 한국어(한글)로 나오도록 바꾼다.
  2. 설치한 뒤에 한글로 나오게 한다. : 다만 이것은 설정하지 않아도 한글로 나온다. 이미 한국어 언어팩을 적용할 때 화면 표시 언어도 한글(한국어)로 설정했기 때문이다.
  3. 키보드 종류를 한국어 키보드 (103/106키)로 설정한다. 위 그림에서 보면 Korean Keyboard (103/106 Key)라는 부분은 내가 수정한 것이다. 이게 처음부터 103/106키였다면 아예 이 화면이 나오지 않아야 한다. 아울러 위 화면에서 선택하는 것을 모두 자동 선택하게 설정한다.
  4. 오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다. : 이상하게 메뉴가 자꾸 깨지고 있다.
    이상하게 나타나는 오픈 캡처의 메뉴

    이상하게 나타나는 오픈 캡처의 메뉴

언어 설정

설치 과정과 설치한 뒤 화면에 나타날 언어 설정하는 것은 로케일(Locale; 지역)이나 랭귀지(Language; 언어)와 관련이 있습니다. 이와 관련한 구성 요소는 Microsoft-Windows-International-CoreMicrosoft-Windows-International-Core-WinPE 입니다.

이 작업을 위해 이미 윈도 시스템 이미지 관리자를 실행했다고 가정하고 설명하겠습니다.

윈도 설치 프로그램과 언어 설정

윈도 설치 프로그램과 관련한 언어 및 지역화 구성 요소는 Microsoft-Windows-International-Core-WinPE 입니다. 테크넷 문서에서는 다음과 같이 설명하였습니다.

The Microsoft-Windows-International-Core-WinPE component specifies the default language, locale, and other international settings to use during Windows Setup or Windows Deployment Services installations.

위의 내용을 한국어로 옮기면, "Microsoft-Windows-International-Core-WinPE 구성 요소는 윈도 설정 또는 윈도 배포 서비스 설치를 하는 동안 사용할 기본 언어, 지역화 및 다른 국제화 설정을 지정합니다."라는 뜻이다.

지난번 작업에서 만든 AutoUnattend.xml 응답 파일을 윈도 시스템 이미지 관리자에서 불러옵니다. 여기에는 이미 Microsoft-Windows-International-Core-WinPE 구성 요소가 설정되어 있습니다.

Microsoft-Windows-International-Core-WinPE 등록 정보

Microsoft-Windows-International-Core-WinPE 등록 정보 : 현재는 대부분 영어이다.

설정에 나타난 항목을 살펴보겠다. 이 항목은 크게 세 부분으로 나뉜다. 첫째는 로케일 관련 부분, 둘째는 언어 관련 부분, 셋째는 키보드 드라이버 관련 부분이다.

  • 로케일 관련 : 언어 인식자(language identifier) 또는 로케일 아이디(locale ID)를 지정한다. 이때 언어 인식자는 en-US 또는 ko-KR과 같은 값을 일컫으며, 로케일 아이디는 16진수 및 10진수로 이루어진 0409:00000409 또는 0412:00001042[각주:2]와 같은 값을 일컫는다.
    • InputLocale : 키보드 레이아웃과 입력 로케일 시스템을 지정한다.
    • SystemLocale : 유니코드를 지원하지 않는 프로그램에서 사용할 기본 시스템 로케일을 지정한다.
    • UserLocale : 사용자가 이용할 날짜, 시간, 통화, 숫자 표기 등을 설정한다.
    • 설정 : 위 세 항목은 현재 언어 인식자인 en-US로 되어 있는데, 모두 ko-KR로 바꾼다. 다만 InputLocale 항목에서는 로케일 아이디인 0412:00001042로 바꿀 수도 있다. 또한 InputLocale 항목에서는 여러 로케일을 지정할 수 있다. 예컨대 ko-KR; en-US; ja-JP 와 같은 꼴로 모두 표기할 수 있다.
  • 언어 관련
    • SetupUILanguage : 윈도 설치 또는 윈도 배포 서비스를 수행하는 동안 화면에 나타낼 기본 언어를 지정한다.
      • UILanguage : SetupUILanguage 항목의 값을 실제로 지정하는 요소이다. ko-KR을 지정한다.
      • WillShowUI : 사용자 인터페이스를 보여준다. 사용자 인터페이스는 위에서 키보드 종류 등을 설정하는 화면을 가리킨다. 무인 설치에서는 기본적으로 OnError 값이 주어져 있으며, 이는 오류가 발생할 때만 사용자 인터페이스를 보여준다는 뜻이다.
    • UILanguage : 사용자 인터페이스에서 사용할 기본 언어를 지정한다. 한국어를 사용해야 하므로 ko-KR을 지정한다.
    • UILanguageFallback : 시스템 기본 사용자 인터페이스 언어에서 부분 버전 언어팩을 사용하고 있을 때 대체할 언어를 지정한다. 현재 한국어의 경우 윈도 비스타에서는 기본 언어가 en-US, 부분 버전 언어팩은 ko-KR로 적용되어 있다. 윈도7의 상황은 알 수 없지만, 윈도 비스타의 경우와 비슷하리라 생각한다. 그러므로 이 값은 en-US를 지정하거나 공백으로 비워두자(→사용 가능 언어팩 참조).
  • 키보드 드라이버 관련
    • LayeredDriver : 한국어 키보드 또는 일본어 키보드에서 사용할 키보드 드라이버를 지정한다. 숫자를 입력하면 되며, 숫자에 따라 다음과 같은 드라이버를 선택하게 되며, 대부분 5를 입력하면 된다.
      • 1 : PC/AT 확장 키보드 (101/102-Key).
      • 2 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 1).
      • 3 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 2).
      • 4 : 한국어 PC/AT 101키 호환 키보드/MS 내추럴 키보드 (타입 3).
      • 5 : 한국어 키보드 (103/106 Key).
      • 6 : 일본어 키보드 (106/109 Key).

지금까지 Microsoft-Windows-International-Core-WinPE 구성 요소에 대한 설정을 하였다. 지금까지 작업한 내용은 아래와 같이 나타나야 한다.

대부분 한국어로 설정된 Microsoft-Windows-International-Core-WinPE 등록 정보

대부분 한국어로 설정된 Microsoft-Windows-International-Core-WinPE 등록 정보

윈도 시스템과 언어 설정

윈도 시스템과 관련한 언어 및 지역화 구성 요소는 Microsoft-Windows-International-Core 입니다. 테크넷 문서에서는 다음과 같이 설명하였습니다.

The Microsoft-Windows-International-Core component includes the language and input locale settings for the system and the user.

위의 내용을 한국어로 옮기면, "Microsoft-Windows-International-Core 구성 요소는 사용자와 시스템을 위한 언어 및 입력 로케일 설정을 포함하고 있습니다."라는 뜻이다.

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가하기

윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창에 추가하기

위 그림에서 윈도 이미지 창에서 Microsoft-Windows-International-Core 구성 요소를 선택하여 응답 파일 창의 oobeSystem 구성 단계에 추가한다.

참고로 윈도7을 설치한 다음 sysprep (시스프렙)을 이용하여 어떤 시스템에서도 부팅할 수 있는 만능 윈도7을 구성할 사람은 이 윈도의 언어 및 지역화 설정을 specialize 구성단계에 넣어서는 안 되며, 반드시 oobeSystem 구성 단계에 넣어야 한다. 왜냐하면 sysprep을 이용하여 만능 윈도7을 만들려면 generalize(일반화)를 해야 하는데, 그때 specialize 구성 단계에 해당하는 작업은 모두 제거하기 때문이다.

Microsoft-Windows-International-Core 등록 정보

Microsoft-Windows-International-Core 등록 정보 : 현재는 공백이다.

설정에 나타난 항목은 크게 두 부분으로 나뉜다. 첫째는 로케일 관련 부분, 둘째는 언어 관련 부분이다. 키보드 관련 부분은 없으며, 위 화면에 나타난 부분은 앞의 Microsoft-Windows-International-Core-WinPE 구성 요소를 참조하여 값을 넣기 바랍니다. 이름이 같은 항목에 같은 내용이 들어가게 하면 됩니다.

대부분 한국어로 설정된 Microsoft-Windows-International-Core 등록 정보

대부분 한국어로 설정된 Microsoft-Windows-International-Core 등록 정보

평가 및 실험 결과

4시 53분쯤에 시작하여 5시 20분쯤에 끝난 이번 설치는 설치 시간약 27분으로 종전 40~50분쯤에서 확연히 줄어서 좋았다. 하지만 키보드 설정 등을 제대로 하지 않아 처음에 한글 입력에 애를 먹었다. 결국 한국어 사용자 또는 한국 사용자를 위해서는 키보드, 언어 설정 등이 필요함을 절실하게 느꼈다.

앞서 세운 목표를 다시 새겨보자.

  1. 설치 과정에서 한글로 나오게 한다.
  2. 설치한 뒤에 한글로 나오게 한다.
  3. 키보드 종류를 한국어 키보드 (103/106키)로 설정한다.
  4. 오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다.

설치 과정

설치 과정은 한글로 나타났다(목표 1 달성).

한글로 나타나는 설치 과정

한글로 나타나는 설치 과정

설치 과정에서 맨 처음 나타난 디스크 파티션 설정

설치 과정에서 맨 처음 나타난 디스크 파티션 설정

실제로 설치를 시작하는 Windows 설치 단계

실제로 설치를 시작하는 Windows 설치 단계

설치 완료

설치 완료한 뒤에 바로 한글로 표기되고 있다(목표 2 달성).

한글로 나타나는 시작 메뉴 및 시계

한글로 나타나는 시작 메뉴 및 시계

키보드 종류

키보드 종류를 제어판  한국어 키보드 (103/106키)로 설정하여 윈도가 설치된 뒤에도 그렇게 인식되도록 한다는 목표였다. 그러나 설치를 끝내고 나서 보니 키보드는 한국어 키보드 (103/106키)로 설정되지 않았다.

표준 PS/2 키보드로 설정된 키보드 드라이버

표준 PS/2 키보드로 설정된 키보드 드라이버

목표 3 달성하지 못하였음을 확인하였다. MS테크넷 라이브러리를 검색하고, 나아가 구글링을 하였음에도 키보드를 설치과정에서 설정하는 작업에 대해서는 해답이 없었다.

응용 프로그램의 로케일

오픈캡처의 메뉴가 알아볼 수 있는 문자로 나타나는지를 확인한다는 목표는 달성했다(목표 2 달성). 추가적인 로케일 설정 없이도 오픈캡처에서 한글 메뉴가 잘 나타나고 있다.

추가적인 로케일 설정 없이 한글 메뉴가 잘 나타나는 오픈캡처

추가적인 로케일 설정 없이 한글 메뉴가 잘 나타나는 오픈캡처

다음 할 일

설치 응답 파일에 적용되는 무인 설치 설정 레퍼런스(Unattended Installation Settings Reference)에 대해 알아보자. 이 작업을 통해 키보드 설정에 대해 지속적으로 조사할 생각이다.

관련 문서

내부 문서

외부 문서

이 글은 스프링노트에서 작성되었습니다.


  1. 버추얼박스 가상머신에서 하드디스크를 C/D 드라이브를 분할하는 작업을 할 예정이다. [본문으로]
  2. 0000:00000000와 같은 꼴이며, 앞의 자주색 4자리는 16진수, 뒤의 빨간색 8자리는 십진수이다. [본문으로]
Trackback 0 Comment 0
prev 1 next


티스토리 툴바