在Windows操作系统中,我们可以通过GetSystemDefaultLangID 来获取系统语言,但是可能你不知道的是:到底是修改系统的哪个设置会影响到GetSystemDefaultLangID的返回值!
1、微软官方的描述
https://docs.microsoft.com/en-us/windows/win32/api/winnls/nf-winnls-getsystemdefaultlangid
2、一图胜千言
需要注意的一点:在操作系统中,需要通过以下方式的修改,才能影响到GetSystemDefaultLangID()的返回值。修改“区域”和“语言”是不会改变系统本身的语言的。
3、C++示例代码
#include <stdio.h>
#include <Winnls.h>
#pragma comment(lib,"Kernel32.lib")
int main(void)
{
LANGID langId = GetSystemDefaultLangID();
switch (langId)
{
case 0x0804:
printf("China\n");
break;
case 0x0409:
printf("English\n");
break;
case 0x0416:
printf("Portugal\n");
break;
case 0x0c0a:
printf("Spain\n");
break;
}
return 0;
}
其他参考文章
https://blog.csdn.net/chenlycly/article/details/38620477
https://blog.csdn.net/lonelyrains/article/details/24377981