【问题标题】:Multiple languages support for WindowsFormApplication UserInterface? [closed]Windows 窗体应用程序用户界面支持多种语言? [关闭]
【发布时间】:2013-11-29 14:48:28
【问题描述】:

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

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

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

    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”字样。

    【讨论】:

    • 嗨..我尝试了示例代码..但它不起作用...!
    • 在答案中添加了工作指南,告诉我什么不起作用。
    • ok...Thnx... 现在可以使用了 :)
    【解决方案2】:
    1. 通过复制所有文件链接将所有文件复制到本地硬盘。
    2. 打开解决方案 VBMultilingualForm.sln。
    3. 在“构建”菜单上,单击“构建解决方案”。
    4. 在“调试”菜单上,单击“不调试就开始”。
    5. 要查看不同文化的资源,请在文本框中输入有效的 RFC 1766 文化名称,然后单击切换按钮。当鼠标指针悬停在文本框上时,将显示可用文化列表。

    链接:

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

    【讨论】:

    • 嗨..我需要复制哪些文件(意味着你告诉复制所有文件链接)?
    • k..但我没有在我的系统中找到那个解决方案文件:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多