使用虛擬地區設定進行當地語系化測試
虛擬地區 設定內建於 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)。