该任务的本质是确定用户区域设置的特征(如国家、语言、日期和时间格式等)。我似乎找到了前进的方向:我使用 GetUserDefaultLocaleName() 获取语言环境名称,然后将其与定义要返回的特征的常量(如 LOCALE_ICOUNTRY、LOCALE_ILANGUAGE 等)一起传递给 GetLocaleInfoEx()。最后一个函数返回一个包含十六进制数字的字符串,我不知道如何处理它。唯一可用的来源是来自 Microsoft 的文档,但老实说,我在那里也找不到任何东西。只有名称接近我的问题的主题,但描述略有不同。
这是获取语言标识符的方法:
在 Yuri 扔掉的链接上,您可以看到该值对应的内容。以我为例,结果是0x0409,对应SUBLANG_ENGLISH_US 如果需要获取国家名称,例如可以使用
LOCALE_SLOCALIZEDCOUNTRYNAME参数:就我而言,此代码输出美国。要获取语言和方言的名称,例如英语(美国),请使用参数
LOCALE_SLOCALIZEDDISPLAYNAME