以编程方式强制.NET应用程序的文化

时间:2012-09-28 21:06:04

标签: c# .net globalization

我发现很多关于以编程方式强制.NET WinForm程序(C#,.NET 4.5)文化的帖子。

有没有办法在没有代码的情况下强迫文化?

2 个答案:

答案 0 :(得分:4)

Windows 7上的过程(对话框和名称已多次更改):

  • 开始+控制面板
  • 点击地区和语言
  • 点击"管理"标签
  • 点击"更改系统区域设置"按钮
  • 选择一个以"英语"开头的语言环境并与您的客户生活在一起。

在此之后启动的任何程序都将使用您在此对话框中选择的默认文化进行初始化,并将执行附属程序集。

请注意,按照注释中的建议更改Thread.CurrentThread.CurrentCulture和CurrentUICulture属性不是真正的替代品。 Threadpool线程仍然将自己初始化为系统区域设置。一个非常讨厌的问题,最终在.NET 4.5中得到修复,增加了CultureInfo.DefaultThreadCurrentCulture和DefaultThreadCurrentUICulture属性。

请注意,许多本机Windows对话框(如MessageBox和OpenFileDialog)仍将以您的操作系统语言显示文本。您需要购买Windows Ultimate许可证并安装语言包才能进行更改。 MSDN订阅是获取用户引导的同一语言特定操作系统的好方法。

答案 1 :(得分:0)

可能对你有用的另一个奇怪的选择是创建bootstrap exe,它将设置bot文化设置(CurrentCulture和CurrentUICulture),然后加载你的实际exe并调用正确类的Main函数。具有仅在主线上设置文化的所有缺点,但可以作为权宜之计措施。