【发布时间】:2013-11-29 14:48:28
【问题描述】:
我已经实现了一个 windows 窗体应用程序,在这个应用程序中包含更多的用户输入到应用程序。所以目前在设计中我使用英语作为默认语言。所以现在我想给用户一个多语言支持选项..so在windows Form Application中如何实现呢?
【问题讨论】:
我已经实现了一个 windows 窗体应用程序,在这个应用程序中包含更多的用户输入到应用程序。所以目前在设计中我使用英语作为默认语言。所以现在我想给用户一个多语言支持选项..so在windows Form Application中如何实现呢?
【问题讨论】:
您可以尝试使用标准的微软功能,称为satellite assemblies。只需设置表单Localizible = true 并通过设置Language = FR 将其翻译成不同的语言(例如翻译成法语)。 IDE 将创建多个资源,您将在 exe 文件附近看到每种语言作为文件夹。切换语言 - 切换当前文化,然后加载/重新加载表单(通过调用它的构造函数):
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
Form1 form = new Form1();
form.ShowDialog();
另一种方法是使用现成的东西(对不起,不要使用它们)。
最后一种可能性是实现自己的本地化。例如,通过使用反射和自定义转换表。通过这种方式,可以即时切换语言、在软件中构建翻译或创建自己的工具来维护翻译。过去,我有一些工具可以从资源中生成一个文本文件,然后再返回,以便能够将文件发送给某人进行翻译。
分步指南:
label1 添加到form1,form1.Localizable=true,form1.Language = fr并更改label1.Text=FR,form1.Language(这样您应该会再次看到label1.Text=label1),form1上面有“label1”的文字,现在转到 Program.cs:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// add this line
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr");
Application.Run(new Form1());
再次启动应用程序,你会看到form上面有“FR”字样。
【讨论】:
链接:
http://msdn.microsoft.com/en-us/library/aa289763%28v=vs.71%29.aspx
【讨论】: