2011-11-10 16 views
0

我有一个本地化的控件。我正在使用VS Net设计器,并以MyControl.cs,MyControl.Designer.cs,MyControl.resx和一些MyControl.xx.resx为非默认语言。本地化C#控制中的其他字符串

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

现在我添加了字符串格式在设计师的标签,但我不知道在哪里把替换字符串。我可以为他们创建一个独立的resx文件,但对于一些字符串来说感觉就像一团糟。在我的应用程序中,我也可以为所有这些字符串创建一个独立的resx文件,但这就像一个杂烩,听起来也很麻烦。

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

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

请记住,您可能希望选择本地化整个短语,而不是用本地化格式替换本地化替换字符串。一些语言的结构与英语不同,这种方法可能会导致问题。 –

回答

0

我认为您在寻找ResourceManager。该链接还有一个示例适用于您的案例