[英]Set UI Language Windows with SetLocaleInfo
我想更改 windows 系統的默認語言。 從 powershell 開始,有一種方法可以使用
Set-WinUILanguageOverride -Language de-DE
(將語言更改為德語)
但是,我正在尋找相同的 win32 api 調用。 嘗試了SetLocaleInfo
,但沒有用。以下代碼打印 0,因為 SetLocaleInfo 失敗。 GetLastError()
返回了ERROR_INVALID_FLAGS
,但不確定這里需要哪個標志 go 。 謝謝。
int main()
{
LCID lcid = GetSystemDefaultLCID();
cout << "system default >> " << lcid << endl;
wstring regionCode;
//Tatar Russia
lcid = 1092;
regionCode = L"0x0444";
cout << "Tatar Russia " << SetLocaleInfo(lcid, LOCALE_FONTSIGNATURE | LOCALE_SISO639LANGNAME, regionCode.c_str()) << endl;
return 0;
}
正如@Petesh 所說,您使用的兩個LCType
對於SetLocaleInfo
function 無效,並且SetLocaleInfo
沒有可以設置 windows 系統的 UI 語言的有效標志。
根據User Interface Language Management
:
用戶界面語言
要檢索用戶 UI 語言,應用程序可以調用
GetUserDefaultUILanguage
或GetUserPreferredUILanguages
。 應用程序無法更改用戶 UI 語言,因為沒有 function 可以設置它。
所以沒有合適的Windows32 API可以修改windows系統的UI語言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.