windows - 从控制面板获取用户首选语言列表的正确方法是什么?
问题描述
在 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
。我不知道它是从哪里得到的。(或者为什么意大利语不见了。)
GetUserDefaultLocaleName
API 确实返回正确en-NZ
,但它似乎也是从其他地方得到的——当我在控制面板中重新排列语言列表时,注册表会更新,但 API 返回值不会改变。
我确实想要完整的语言列表,而不仅仅是一个答案。(另外,出于好奇,API 是从哪个控制面板获得答案的?)
解决方案
推荐阅读
- javascript - 回调数组作为 Promise?
- typescript - 在 TypeScript 的 switch 语句中使用 const 枚举索引接口并推断类型
- javascript - Chrome消息:“接收端不存在”和“端口在收到响应之前关闭”
- .net - 展平 msbuild 项目输出中包含的文件
- javascript - 如何获取 getElementsByClassName() 给出的数组中元素的索引?
- sql - 如何在 Postgres 中创建一个循环遍历数据的表
- python - 如果字段大于 12,如何让模型方法自动运行
- android - 为什么 Volley 响应被接收为“[”而不是 JSON
- android - 滚动后,CustomScrollView 内的 Flutter SliverGrid 子项崩溃
- flutter - 如何为 Flutter Web 更新 pub 包 webdev