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


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

Псевдо-языковые параметры встроены в 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 Vista до Windows 10 версии 1709 включительно можно включить псевдо-языковые параметры путем добавления ключей в реестр Windows.

Изменения выполняются под ключом HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls для языков, установленных в операционной системе. Вы можете сделать эти параметры, чтобы включить псевдо-языковые параметры. Каждый ключ, показанный ниже, представляет собой шестнадцатеричный код LCID, соответствующий включенной псевдолокали. Каждое значение имеет тип string (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 без перечисления с именами псевдо-языковых стандартов (см. примеры кода выше) для заполнения пользовательского интерфейса.