多语言支持Windows窗体应用程序用户界面?

时间:2013-11-28 06:20:23

标签: c# .net winforms

我已经实现了一个Windows窗体应用程序,在此应用程序中包含更多用户输入到应用程序。所以目前在设计中我使用英语作为默认语言..所以现在我想给用户提供多语言支持选项..so我们如何在Windows窗体应用程序中实现它?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用名为satellite assemblies的标准微软功能。只需设置Localizible = true格式,然后将Language = FR设置为法语,即可将其翻译成不同的语言。 IDE将创建多个资源,您将看到每个语言作为exe-file附近的文件夹。要切换语言 - 切换当前文化,然后加载/重新加载表单(通过调用它的构造函数):

System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
Form1 form = new Form1();
form.ShowDialog();

另一种方法是使用现成的东西(抱歉,不要使用它们)。

最后一种可能性是实现自己的本地化。例如,通过使用反射和自定义转换表。通过这种方式,可以快速切换语言 ,将翻译构建到软件中或创建自己的工具来维护翻译。在过去,我有工具从资源生成文本文件,然后返回,以便能够将文件发送给某人。

分步指南:

  • 创建新的winform应用程序,
  • 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”文字。

答案 1 :(得分:0)

  1. 通过“复制所有文件”链接将所有文件复制到本地硬盘。
  2. 打开解决方案VBMultilingualForm.sln。
  3. 在“生成”菜单上,单击“生成解决方案”。
  4. 在“调试”菜单上,单击“启动而不调试”。
  5. 要查看不同文化的资源,请在文本框中键入有效的RFC 1766文化名称,然后单击切换按钮。当鼠标指针悬停在文本框上时,将显示可用文化列表。
  6. 链接:

    http://msdn.microsoft.com/en-us/library/aa289763%28v=vs.71%29.aspx