【问题标题】:change the current system locale programing更改当前系统语言环境编程
【发布时间】:2016-01-06 00:38:03
【问题描述】:

我正在为必须将系统区域设置为“en-US”的程序构建安装程序。

我可以使用以下行读取当前状态:

CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture

但是当我尝试更改它时,它不起作用。这就是我尝试改变它的方式:

if (!currentCulture.Name.Equals("en-US"))
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

任何建议如何正确地做到这一点? (我要使用这个安装程序的服务器只是 win-2012 服务器)。

谢谢。

【问题讨论】:

  • 也许你也想设置Thread.CurrentThread.CurrentUICulture

标签: c# locale windows-server-2012


【解决方案1】:

目前的文化分为两种:

  1. 当前文化
  2. 当前的 UI 文化

为了彻底改变文化,你必须同时改变它们。

阅读MSDN 的帖子。

【讨论】:

  • 我把它们都改了,还是在代码完成后,在下一次运行中系统区域设置返回原点。
  • 系统区域设置总是在重启时返回到区域设置源,但每次在应用程序的入口点都必须覆盖当前区域性。但在这种情况下,为什么不使用 Invariant Culture?
  • Botea Bogdan 能否请您进一步解释一下“不变文化”是什么意思?
  • 我可以,但您阅读this post 会更快。如果您还有其他问题,尽管问:)
猜你喜欢
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
相关资源
最近更新 更多