【发布时间】:2011-02-02 17:32:20
【问题描述】:
我已经设置了一个 windows 窗体项目来使用本地化,以便它支持中文和英文。我已经建立了一种在表单加载时强制使用一种或另一种语言的方式。在调用 InitializeComponent() 之前,我有一些代码可以执行此操作...
switch (Properties.Settings.Default.SelectedLanguage)
{
case "":
break;
case "English":
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
break;
case "Chinese":
try
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CHT");
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CHT");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
break;
}
那么当 SelectedLanguage 属性设置为“中文”时,程序应该使用中文本地化吧?我在调试时对此进行了测试,它完全按预期工作。也就是说,当程序中的 SelectedLanguage == "Chinese" 启动时,所有按钮和标签都以我输入的中文文本显示。当 SelectedLangugage == "English" 时,所有内容都显示在我输入的英文文本中。
问题是当我安装这个程序并运行它(不是调试)它不起作用。即使在我的开发机器上。无论为程序设置什么 SelectedLanguage 总是显示英语本地化。我什至在程序开头放了一个消息框,它显示“Application.CurrentCulture.Name”,它显示了中国文化名称(zh-CHT),但它仍然以英文显示所有内容。那么在调试期间和实际运行期间发生的事情有什么区别呢?我该如何解决?!?
【问题讨论】:
标签: c# winforms testing localization