【发布时间】:2020-04-08 08:52:53
【问题描述】:
我有一台 Windows 10 计算机,它似乎使用德语区域设置运行,并且显示语言似乎也是德语。 在我的 C# 程序中,当我使用这两个属性时,会得到一些不一致的结果:
Thread.CurrentThread.CurrentUICulture 按预期返回de-DE。
CultureInfo.InstalledUICulture 而是返回 en-US,这不是预期的。
在 Windows 的控制面板或系统设置中,我找不到任何提示,因为似乎安装了 en-US。
我需要知道当前的显示语言是什么,因为如果用户没有在我的程序的命令行上指定任何其他语言(或错误的语言),它应该回退到系统的当前语言使用。
我是否应该简单地将后备指定为
CultureInfo fallback = Thread.CurrentThread.CurrentUICulture;
或者为什么CultureInfo.InstalledUICulture 与我的预期不同?
问候沃尔夫冈
【问题讨论】:
-
它说; “代表随操作系统安装的文化。”所以这意味着您的服务器上安装了英文版的 Windows。它似乎独立于您稍后为显示和输入而安装的文化,并且不应影响(afaik)您的应用程序。默认为
Thread.CurrentThread.CurrentUICulture;似乎没问题。 -
@OguzOzgul,我得看看这个程序,因为它太复杂了,一些愚蠢的人记住了用户的语言选择,并将其用作每个函数的参数需要显示文本。但是使用
Thread.CurrentThread.CurrentUICulture和Thread.CurrentThread.CurrentCulture应该很容易确定正确的语言...
标签: c# windows cultureinfo