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


Использование псевдо-языковых стандартов для тестирования локализации

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

Примечание.

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

Имена псевдолоков: qps-ploc, 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 без перечисления с именами псевдо-языковых стандартов для заполнения пользовательского интерфейса (пользовательский интерфейс).