我正在努力让我的应用程序支持多种语言。我已经制作了一些附属程序集,现在我想测试一下在法国机器上运行时应用程序的样子。
在[控制面板 - >区域和语言选项]中,我可以在区域选项选项卡中选择法语(法国),然后在高级选项卡中选择法语(法国)。
但这还不足以让我的应用程序认为它是法语。
如果我将此代码添加到主函数的开头,
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
CultureInfo^ ci1 = Thread::CurrentThread->CurrentCulture;
CultureInfo^ ci2 = Thread::CurrentThread->CurrentUICulture;
然后ci1-&gt;名称为fr-FR
,但ci2-&gt;名称为en-US
。
不幸的是,对于我来说,要使用法国卫星装配,CurrentUICulture必须是fr-FR
。
我不想将CurrentUICulture设置为与代码中的CurrentCulture相同的一个 - 我想使用控制面板或其他东西更改默认值。
我在t'internet上看过很多关于如何在CurrentUICulture发生变化时检测事件的帖子,只是告诉我如何改变它!
答案 0 :(得分:2)
这可能会也可能不会,这取决于您的Windows安装。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/441487wx(v=vs.100).aspx中的“隐式设置CurrentUICulture属性”部分。有关各种Windows版本行为的其他信息,请参阅http://msdn.microsoft.com/en-us/library/dd374098(VS.85).aspx。
答案 1 :(得分:2)
请参阅How To Change the language used to display menus and dialogs in MUI:
Windows MUI使用户可以轻松使用 更改用户界面(菜单和 对话框)成为最好的语言 适合他们。最多33种不同 语言可以安装在 机器由管理员(任何用户 使用管理权限) muisetup.exe程序。
.NET的CurrentUICulture
反映了这种设置。
答案 2 :(得分:0)
Windows 8的答案有所改变(这些步骤在8.1上完成)。
您应该可以在Control Panel > Clock, Language, and Region > Language中将显示语言更改为其他语言。注意“应该。”
我有一段时间在我的控制台应用中更改CurrentUICulture
。为了改变它,我结束了:
CurrentUICulture
不同,所以可能还有更多故事最后,CurrentUICulture
终于不再是英语了!我不确定哪一步解决了这个问题,但重启是必要的。
CurrentCulture
实际上很容易改变。点击确定/应用时,较早的格式化步骤将更改它,不需要重启,混淆或诅咒!