C#:如何将winforms按钮的文本绑定到资源

Svi*_*ish 6 c# text internationalization winforms

我们有一个资源文件,其中包含许多翻译过的字符串,在我们的应用程序中使 是否有更好的方法将例如按钮的文本绑定到某个字符串?

目前我们通常只是在构造函数,Load事件处理程序或其中一个调用的方法中执行类似的操作:

someButton.Text = CommonTexts.SomeString;
someMenuItem.Text = CommonTexts.SomeOtherString;
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?也许在设计师?或者这是推荐的做法吗?


只是为了让您知道我们如何进行实际翻译:我们有一个只包含resx文件的类库项目.主要的resx文件是用英语写的(当然).然后,我们在名为ResEx的应用程序中打开这些基本resx文件,我们(或其他人)将其翻译成其他语言.编译时,Visual Studio会自动为每种语言创建程序集,这些程序集将根据当前文化集自动使用.这非常有效,所以我真的不需要关于如何进行翻译的信息(虽然我总是对改进当然感到好奇).我要问的是,是否有更好的方法可以将资源组件中的翻译字符串转换为所有各种Text属性.

Bha*_*kar 3

你可以做:

using System.Resources;
using System.Reflection;

Assembly assembly = this.GetType().Assembly;
resman = new ResourceManager("StringResources.Strings", assembly);
btnButton.Text = resman.GetString("ButtonName");
Run Code Online (Sandbox Code Playgroud)

  • 这有点像我已经做的那样,除了更复杂:p (3认同)