Поделиться через


Использование псевдо-локалей для тестирования локализуемости

Псевдолокали имеются в Windows Vista и в более поздних версиях, так что вы можете получить к ним доступ через API NLS (поддержка национальных языков). Для проверки локализации приложений можно использовать псевдолоки. В этом разделе содержатся процедуры использования псевдокодов.

Примечание.

Одна из задач, требующая особого внимания в случае псевдоязыков, — их перечисление, будь то в вашем коде или в параметрах региональных и языковых настроек панели управления. Подробнее об этом далее в этом разделе.

Имена псевдолокалей: "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 для создания списка отображаемых языков. Однако по умолчанию четыре псевдолокали, перечисленные выше, не распознаются системой, поэтому они не будут возвращены EnumSystemLocalesEx.

Примечание.

Windows 10 версии 1709 и более ранних версий: включите псевдолокали, добавив ключи в реестр Windows. Изменения выполняются под ключом HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls для языков, установленных в операционной системе. Каждый ключ, указанный ниже, представляет собой шестнадцатеричный код 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 не действует. Однако вы по-прежнему можете вызывать не переисчисляемые API NLS с именами псевдо-локализаций для заполнения вашего пользовательского интерфейса (UI).