2011-11-10 15 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。該鏈接還有一個示例適用於您的案例