C#Win窗体的本地化

本文关键字:本地化 窗体 C#Win | 更新日期: 2023-09-27 18:28:29

我正在开发一个需要本地化的WinForm应用程序。如果我尝试将表单的Localizable属性设置为True,并为所有语言设置文本,那么一切都很好。

我想要的是在一个单独的文件夹中维护所有语言资源文件(每个表单一个文件)。

-Project
   -Resources
      -Language
          frmFirstForm.en-US.resx
          frmFirstForm.en-GB.resx
          frmSecondForm.en-US.resx
          frmSecondForm.en-GB.resx
   frmFirst.cs
   frmSecond.cs

在我的资源文件中,我定义了所有字符串如下:

**Key              Value**
lblName          Name
lblAddress       Address
.....

关键是我的控件名称,我还将在资源文件中保留特定于表单的字符串。现在的问题是,当我编译解决方案时,它确实会生成语言文件,但在运行应用程序时,它只显示默认值。我甚至不知道本地化的资源文件是否已加载。此外,虽然我指定了两个单独的表单文件,但在编译时,系统为一个项目的每种语言只生成一个资源文件(意味着FirstForm和SecondForm没有单独的资源文件)。

是否有任何方法可以根据指定的本地化线程更改表单控件?

我已经在我的主应用程序Program.cs文件中添加了以下行:

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

请建议我如何进行这项工作。。

C#Win窗体的本地化

@Ashish:这正是你想要的!!!!