【问题标题】:Why do I have EN-US CultureUiInfo where everything set to UK?为什么我有所有设置为英国的 EN-US CultureUiInfo?
【发布时间】:2013-11-06 13:52:57
【问题描述】:

我的开发机器是 W7 64。在区域和语言我有:

  • 格式:英语(英国)
  • 当前位置:英国
  • 默认输入语言:英语(英国)

但是当我查询 Thread.CurrentThread ..

CultureInfo 是 en-GB,CultureUiInfo 是 en-US

美国来自哪里??

【问题讨论】:

  • 一些线索可以在这里找到:at MSDN。即:DefaultThreadCurrentUICulture 是什么?如果为空,GetUserDefaultUILanguage 返回什么?
  • 默认值为 null,Get 返回 en-US。显然问题不在.NET 中,而是在我的PC 设置中。谢谢

标签: c# windows-7 .net-4.5


【解决方案1】:

假设您指的是Thread.CurrentThread.CurrentUICulture,此属性默认为您的操作系统显示语言的文化,大概是en-US

根据您的 Windows 版本和版本,您可以安装 additional language packs 和/或重新安装其他语言版本的 Windows 以更改显示语言。

但是,据我所知,不存在特定的英式英语版本的 Windows。

【讨论】:

  • 一定是这个。还要注意Thread.CurrentThread.CurrentUICultureCultureInfo.CurrentUICulture总是一样的(如果你换一个线程,另一个也会改变)
  • 我在问题(项目符号列表)中写了 Region 和 Languages 的所有设置。你指的是什么“显示语言”?在操作系统设置方面?谢谢。还有你们错了。因为当我的代码使用标准格式输出日期时,它会以美国格式写入。显然这是错误的。我以前从来没有遇到过这种情况,我相信成千上万的英国开发人员已经到处抱怨了……事实并非如此……W7的这种特殊安装有问题
  • Windows display language“Windows 在用户界面中的向导、对话框、菜单和其他项目中使用的语言”。我已经解释了如何通过安装其他语言包或重新安装不同语言版本的 Windows(取决于您拥有的 Windows)来更改此语言。 Thread.CurrentThread.CurrentCulture 默认为您在区域设置中指定的区域性(“格式”)。如果您未指定文化,这也是 .NET 用于格式化日期的文化。
  • 区域设置在 W7 中不存在。有地区和语言。上述功能的所有设置已经在我的问题的最上面进行了描述,它们都是英国....问题是美国来自哪里...好吗?谢谢。
  • @BoppityBop:在英语 Windows 7 中:控制面板-> 区域和语言-> 键盘和语言-> 安装/卸载语言-> 安装显示语言,但正如我所说,我不相信那里存在特定的 en-GB 版本。当您切换显示语言时,Thread.CurrentThread.CurrentUICulture 的默认值会更改以匹配显示语言,显然,当您使用英文版 Windows 时,CultureInfo 使用的是 en-US
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2018-06-28
  • 2011-06-05
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多