使用虛擬地區設定進行當地語系化測試
虛擬地區 設定內建于 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 Vista 到 1709 版和包含 Windows 10 版的系統,解決方案是藉由將金鑰新增至 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) 。
相關主題
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應