我试图让我的应用程序支持多种语言。 例如,我制作了一些附属程序集,现在我想testing在法语机器上运行应用程序的样子。
在[控制面板 – >区域和语言选项]中,我可以在区域选项选项卡中select法语(法国),在高级选项卡中select法语(法国)。
但是这还不足以让我的应用程序认为它是法语的。
如果我将这个代码添加到我的主函数的开始,
[STAThreadAttribute] int main(array<System::String ^> ^args) { CultureInfo^ ci1 = Thread::CurrentThread->CurrentCulture; CultureInfo^ ci2 = Thread::CurrentThread->CurrentUICulture;
那么ci1-> Name是fr-FR
但是ci2-> Name是en-US
。
不幸的是,对于我来说,法国的卫星组件被使用,CurrentUICulture是需要fr-FR
。
我不想将CurrentUICulture设置为与CurrentCulture中的代码相同 – 我想使用控制面板或其他设置更改默认值。
我在t'internet上看到很多关于当CurrentUICulture变化时如何检测事件的post,只是没有告诉我如何改变它!
请参阅如何更改用于在MUI中显示菜单和对话框的语言 :
Windows MUI使用户可以方便地将用户界面(菜单和对话框)更改为最适合他们的语言。 管理员(具有管理权限的任何用户)可以使用muisetup.exe程序在机器上安装多达33种不同的语言。
.NET的CurrentUICulture
反映了这个设置。
这可能会也可能不会,这取决于您的Windows安装。 有关详细信息,请参阅http://msdn.microsoft.com/zh-cn/library/441487wx(v=vs.100).aspx中的“隐式设置CurrentUICulture属性”部分。 有关各种Windows版本上的行为的其他信息,请参阅http://msdn.microsoft.com/en-us/library/dd374098(VS.85).aspx 。
Windows 8的答案已经改变了一些(这些步骤在8.1上完成)。
您应该能够在控制面板>时钟,语言和区域>语言中将显示语言更改为另一种语言 。 注意“应该”。
我有一个时间在我的控制台应用程序中更改CurrentUICulture
。 要改变它,我结束了:
CurrentUICulture
不一样,所以可能还有更多的故事 最后,最后的“ CurrentUICulture
英语”不再是英语了! 我不知道哪一步解决了问题,但重启是必要的。
CurrentCulture
其实很容易改变。 更早的格式化步骤会在您点击确定/应用,不重新启动,混淆或诅咒时改变它!