一尘不染

如何在Winforms中制作多语言应用程序?

c#

我有一个应用程序,我需要在该应用程序中使用两种语言。例如 :

  • 英语
  • 阿拉伯

但是我不知道该怎么办。有人可以帮我吗?

我需要一些示例C# Windows Forms


阅读 212

收藏
2020-05-19

共1个答案

一尘不染

表格的 使用LocalizableLanguage性质

Form类具有LocalizableLanguage属性。如果将Localizableproperty
设置为true,则可以添加控件以形成默认语言的表单,并设置属性为默认语言。然后,您可以选择其他语言并更改这些语言的属性。这样,值或可本地化的属性将存储在用于不同区域性的单独资源文件中。

注意:如果属性装饰有[Localizable(true)]属性,则该属性被视为可本地化。例如,BackColor属性不可本地化,但是Text属性可本地化。

使用Resx资源文件本地化消息和图像

该项目Rseources.ResxProperties文件夹下有一个文件,可用于本地化图像和消息。您也可以将.resx资源文件添加到项目中。例如,您可以创建一个Strings.resx文件,并添加一些字符串键和值,然后将其复制为strings.en.resxstrings.fa.resx这些语言和编辑值。然后,您可以使用这些资源值,例如:

MessageBox.Show(Properties.Resources.AreYouSure);

将使用当前的UI文化语言显示AreYouSurefrom Resources.Resx文件的值。

如果找不到用于区域性的资源密钥或找不到用于资源文件的指定区域性,Resx则将使用文件中性区域性中的密钥值。

在运行时更改语言

您可以将应用程序的区域性设置为Persian使用:

System.Threading.Thread.CurrentThread.CurrentCulture =
    System.Globalization.CultureInfo.GetCultureInfo("fa");

System.Threading.Thread.CurrentThread.CurrentUICulture =
    System.Globalization.CultureInfo.GetCultureInfo("fa");

您应该在应用程序的开头或显示表单之前放置​​上面的代码。

更多信息

有关更多信息和示例:

2020-05-19