我有一台安装了多种语言的Windows 7计算机 控制面板 地区和语言 键盘和语言 安装/卸载语言
使用时更改显示语言 控制面板 地区和语言 键盘和语言 选择显示语言 一切都正确显示。
我需要阅读选择了哪种语言。 我发现的注册表项都指向原始语言(0409)英语 - 美国不是所选语言(0404)中文 - 台湾。
有谁知道如何找到所选语言LCID? 如果我能得到LCID,我可以显示用英语选择的语言(这是我的最终目标)。
答案 0 :(得分:1)
编辑:
正如Mark Ransom建议的那样,您可以使用GetUserDefaultLCID
int wmain()
{
LCID lcid = GetUserDefaultLCID();//LOCALE_USER_DEFAULT;
cout << "lcid: " << lcid << endl;
wchar_t buf[100];
if (GetLocaleInfo(lcid, LOCALE_ILANGUAGE, buf, 100)) wcout << buf << endl;
if (GetLocaleInfo(lcid, LOCALE_SENGLANGUAGE, buf, 100)) wcout << buf << endl;
if (GetLocaleInfo(lcid, LOCALE_SISO639LANGNAME, buf, 100)) wcout << buf << endl;
return 0;
}
在我的Windows 8上输出:
lcid: 1028
0404
Chinese (Traditional)
zh
此外,如果用户在程序运行过程中更改了系统语言,则会向应用程序发送WM_INPUTLANGCHANGE
消息:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms632629%28v=vs.85%29.aspx