지역화 가능성 테스트에 의사 로캘 사용
의사 로캘 은 WINDOWS Vista 이상에 기본 제공되므로 NLS(국가별 언어 지원) API를 통해 액세스할 수 있습니다. 의사 로캘을 사용하여 애플리케이션의 지역화 가능성을 테스트할 수 있습니다. 이 항목에는 의사 코드를 사용하기 위한 절차가 포함되어 있습니다.
참고 항목
의사 로캘에 대해 특별한 고려가 필요한 한 가지 작업은 이를 열거하는 것입니다. 코드에서 또는 제어판 지역 및 언어 옵션 부분에 있는지 여부입니다. 이 항목의 뒷부분에서 자세히 알아보세요.
의사 로캘의 이름은 "qps-ploc", "qps-ploca" 및 "qps-plocm"입니다. Windows 10을 기준으로 의사 로캘 "qps-Latn-x-sh"도 사용할 수 있습니다.
의사 로캘에 대한 정보 검색
GetLocaleInfoEx를 사용하여 의사 로캘에 대한 정보를 검색할 수 있습니다. 함수에 특정 의사 로캘의 이름을 전달합니다(위의 이름 목록 참조). 예를 들어 미러된 의사 로캘에 대한 "qps-plocm"입니다.
wchar_t languageIdentifier[5];
int rc{ ::GetLocaleInfoEx(L"qps-plocm", LOCALE_ILANGUAGE, languageIdentifier, 5) };
의사 로캘과 함께 LocaleNameToLCID 사용
의사 로캘 이름으로 NLS 매핑 함수 LocaleNameToLCID 를 호출할 수 있습니다.
LCID lcid{ ::LocaleNameToLCID(L"qps-plocm", 0) };
열거형에 의사 로캘 사용
애플리케이션에서 EnumSystemLocalesEx를 호출하여 시스템에서 인식하는 로캘을 열거할 수 있습니다. 또한 제어판 지역 및 언어 옵션 부분은 EnumSystemLocalesEx를 호출하여 표시되는 로캘 목록을 작성합니다. 그러나 기본적으로 위에 나열된 4개의 의사 로캘은 시스템에서 인식되지 않으므로 EnumSystemLocalesEx에서 반환되지 않습니다.
참고 항목
Windows 10 버전 1709 이상: Windows 레지스트리에 키를 추가하여 의사 로캘을 사용하도록 설정합니다. 편집은 운영 체제에 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls
설치된 언어에 대한 키로 이루어집니다. 아래에 표시된 각 키는 사용 중인 의사 로캘에 해당하는 16진수 LCID입니다. 각 값은 문자열 형식(REG_SZ)입니다.
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Locale]
"00000501"="1" // qps-ploc (Windows Vista and later)
"000005fe"="7" // qps-ploca (Windows Vista and later)
"00000901"="1" // qps-Latn-x-sh (Windows 10 and later)
"000009ff"="d" // qps-plocm (Windows Vista and later)
Windows 10 버전 1803 이상: Windows 레지스트리를 편집해도 효과가 없습니다. 그러나 의사 로캘의 이름으로 열거되지 않는 NLS API를 호출하여 UI(사용자 인터페이스)를 채울 수 있습니다.