다음을 통해 공유


지역화 가능성 테스트에 의사 로캘 사용

의사 로캘 은 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 Vista부터 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(사용자 인터페이스)를 채울 수 있습니다(위의 코드 예제 참조).