CultureInfo.InstalledUICulture vs Thread.CurrentThread.CurrentUICulture vs 区域设置

CultureInfo.InstalledUICulture vs Thread.CurrentThread.CurrentUICulture vs regional settings

这里我有一台 windows 10 电脑,似乎是 运行 德语区域设置,显示语言似乎也是德语。 在我的 C# 程序中,当我使用这两个属性时,我得到了一些不一致的结果:

Thread.CurrentThread.CurrentUICulture returns de-DE 符合预期。 CultureInfo.InstalledUICulture 而不是 returns en-US,这不是预期的。

在 windows 的控制面板或系统设置中我找不到任何提示,因为 en-US 似乎已安装。

我需要知道当前的显示语言是什么,因为如果用户没有在我的程序的命令行上指定任何其他语言(或错误的语言),它应该回退到当前显示的语言系统正在使用。

我是否应该简单地将回退指定为

CultureInfo fallback = Thread.CurrentThread.CurrentUICulture;

或者为什么 CultureInfo.InstalledUICulture 与我预期的不同?

问候沃尔夫冈

解决这个问题最好的办法就是依靠

Thread.CurrentThread.CurrentUICulture

这是语言相关文本的正确设置,而

Thread.CurrentThread.CurrentCulture

表示日期和时间以及数字和货币的格式