首页 > 解决方案 > 从控制面板获取用户首选语言列表的正确方法是什么?

问题描述

在 Windows 10(和旧版本——这似乎已在 Win8 中引入?)的“语言设置”控制面板中,有一个“首选语言”列表。以编程方式获取该列表的正确方法是什么?

我可以看到它存储在注册表中HKEY_CURRENT_USER\Control Panel\International\User Profile\Languages,但我认为不打算直接读取它。

GetUserPreferredUILanguages我找到了一个听起来像是正确的 API ——但它返回了错误的结果。

具体来说,在控制面板和注册表项中,我目前有列表en-NZ en-US it-IT,但 API 返回en-GB en-US。我不知道它是从哪里得到的。(或者为什么意大利语不见了。)

GetUserDefaultLocaleNameAPI 确实返回正确en-NZ,但它似乎也是从其他地方得到的——当我在控制面板中重新排列语言列表时,注册表会更新,但 API 返回值不会改变。

我确实想要完整的语言列表,而不仅仅是一个答案。(另外,出于好奇,API 是从哪个控制面板获得答案的?)

标签: windowswinapilocalizationglobalization

解决方案


推荐阅读