使用虛擬地區設定進行可本地化測試
虛擬地區 設定內建於 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,以建置它所顯示的地區設定清單。 不過,根據預設,系統無法辨識上述四個虛擬地區設定,因此 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 登錄沒有任何作用。 不過,您仍然可以使用偽地區設定的名稱來呼叫未列舉的 NLS API,以填充您的使用者介面 (UI)。