【问题标题】:CultureInfo.InstalledUICulture vs Thread.CurrentThread.CurrentUICulture vs regional settingsCultureInfo.InstalledUICulture vs Thread.CurrentThread.CurrentUICulture vs 区域设置
【发布时间】:2020-04-08 08:52:53
【问题描述】:

我有一台 Windows 10 计算机,它似乎使用德语区域设置运行,并且显示语言似乎也是德语。 在我的 C# 程序中,当我使用这两个属性时,会得到一些不一致的结果:

Thread.CurrentThread.CurrentUICulture 按预期返回de-DECultureInfo.InstalledUICulture 而是返回 en-US,这不是预期的。

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

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

我是否应该简单地将后备指定为

CultureInfo fallback = Thread.CurrentThread.CurrentUICulture;

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

问候沃尔夫冈

【问题讨论】:

  • 它说; “代表随操作系统安装的文化。”所以这意味着您的服务器上安装了英文版的 Windows。它似乎独立于您稍后为显示和输入而安装的文化,并且不应影响(afaik)您的应用程序。默认为Thread.CurrentThread.CurrentUICulture; 似乎没问题。
  • @OguzOzgul,我得看看这个程序,因为它太复杂了,一些愚蠢的人记住了用户的语言选择,并将其用作每个函数的参数需要显示文本。但是使用Thread.CurrentThread.CurrentUICultureThread.CurrentThread.CurrentCulture 应该很容易确定正确的语言...

标签: c# windows cultureinfo


【解决方案1】:

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

Thread.CurrentThread.CurrentUICulture

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

Thread.CurrentThread.CurrentCulture

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

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    相关资源
    最近更新 更多