在C#Control中本地化其他字符串

时间:2011-11-10 01:49:53

标签: c# visual-studio localization

我有一个本地化的控件。我正在使用VS Net设计器,最终使用MyControl.cs,MyControl.Designer.cs,MyControl.resx和一些MyControl.xx.resx作为非默认语言。

显示的一些字符串是动态的,我需要在它们上调用string.Format(例如,我有“Hello,你今天想要{0}吗?”,我可以使用“读一本书”来格式化它“或”看电视“)。我该如何处理这些动态字符串?

现在我在设计器的标签中添加了要格式化的字符串,但我不知道放置替换字符串的位置。我可以为他们创建一个独立的resx文件,但只是为了几个字符串感觉就像一团糟。我可以在我的应用程序中为所有这些字符串提供一个独立的resx文件,但它就像一个花香,它听起来也很混乱。

最简单的方法是简单地将这些字符串添加到现有的MyControl.resx和MyControl.xx.resx中,但我不知道:

  • 如果它是安全的(即VS Net设计师是否会弄乱它们,就像我不应该手动修改InitializeComponent方法一样)
  • 如何访问这些字符串(在InitializeComponent中我看到它是如何用于控件resources.ApplyResources(this.myLabel, "myLabel")的,但是我可以使用与控件无关的字符串,并且可以避免使用魔术字符串吗?)< / LI>

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找ResourceManager。该链接还有一个案例的例子