我曾与全球化设置在过去的工作,但不是.NET环境,这是这个问题的话题之内。我所看到的肯定是由于知识,我还没有学,所以我会在下面欣赏照明。


设定: 我的默认语言设置为英语(EN-US明确)。我在我的开发系统(操作系统)增加了第二语言(丹麦),然后打开语言栏,所以我可以随意选择任。


我选择了丹麦的语言栏,然后打开记事本上,发现恢复到英语语言栏上的语言。据我所知,语言设置的每个应用程序的,所以它似乎是记事本设置默认回英文。 (我发现奇怪的,因为Windows和由此记事本是用来在世界各地。)关闭记事本返回的语言栏丹麦上的设置。然后,我开始了我的开放自定义WinForm应用程序 - 我知道不设置语言 - 它的的英语恢复为丹麦打开时,然后回到丹麦时终止

问#1A:如何,我得到一经推出我的WinForm应用程序继承语言栏的当前设置?我的实验似乎表明,每一个应用程序启动用系统默认的,需要用户手动更改一旦应用程序正在运行 - 这似乎是想要将工作与一种以上语言的人的一大不便

问#1B:如果一个必须的,事实上,手动在多语言情景设置语言,如何更改我的默认系统语言(例如丹麦),所以我可以测试我的应用程序的另一种语言推出?


我添加当前语言的显示在我的这个下一个实验应用。具体来说,我设置设置其工具提示MouseEnter所以每次我鼠标移到我想我应该看到当前的语言设置标签上CultureInfo.CurrentCulture.Name处理程序。由于设置语言之前,我启动我的应用程序没有工作,我启动它,然后将语言设置为丹麦语。我发现有些事情(比如在文本框输入)没有履行这一丹麦设置。但是,鼠标悬停在仪表标签仍然显示EN-US!

问#2A:为什么而我的应用程序的其他部分似乎认识到变化CultureInfo.CurrentCulture.Name没有反映我的语言栏的变化? (尝试CultureInfo.CurrentUICulture.Name产生相同的结果。)

问#2B:有没有在语言栏上的变化火灾,所以我可以我的应用程序中识别事件时,语言设置更改


2010.05.13更新

由Eric从微软(见下面他的回答)提供的短暂而甜蜜的信息直接只解决了我的四个问题一个(#2A),但它提供的只是我需要进一步深入研究的动力,并找出休息。对于谁也可以通过这种迷惑他人谋取利益,这里是我发现的:

答案#1A:应用程序继承默认输入语言的设置,的的你的语言栏上指定的语言。一旦你的应用程序正在运行,则改变了语言栏的将会的立即被你的应用程序注意到了。

<强>答案#1B:设置的默认输入语言通过区域和语言选项控制面板>>语言选项卡>>详细说明>>设置标签>>默认输入的语言进行

<强>答案#2A:按埃里克回答,目前培养是从被反射的语言栏上的当前输入语言不同;打字的文本框是由当前输入语言仅影响。

<强>答案#2B:没有为任何一个输入语言或电流培养改变通知没有预定义的事件。这里需要注意的一个重要事实是,输入语言而当前区域性变化并不更改会自动立即识别。您必须重新启动了当前的文化改变应用程序生效 - 除非你能看到的变化,并就此采取行动自己。为此我发现了一个MSDN文章( CultureInfo类面面观),其提供了这样的钩,以通知的变化。

scroll top