Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本地化C#控件中的其他字符串_C#_Visual Studio_Localization - Fatal编程技术网

本地化C#控件中的其他字符串

本地化C#控件中的其他字符串,c#,visual-studio,localization,C#,Visual Studio,Localization,我有一个本地化的控件。我正在使用VS Net designer,最后使用MyControl.cs、MyControl.designer.cs、MyControl.resx和一些MyControl.xx.resx作为非默认语言 显示的某些字符串是动态的,我需要对其调用string.Format(例如我有“Hello,你今天想{0}吗?”,我可以使用“阅读一本书”或“观看电视”对其进行格式化)。我应该如何处理这些动态字符串 现在,我在设计器的标签中添加了要格式化的字符串,但我不知道将替换字符串放在何

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

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

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

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

  • 如果安全(即VS网络设计器是否会干扰它们,就像我不应该手动修改InitializeComponent方法一样)
  • 如何访问这些字符串(在InitializeComponent中,我看到它如何用于控件
    resources.ApplyResources(this.myLabel,“myLabel”)
    ,但是我可以拥有一个与控件无关的字符串,并且可以避免使用魔术字符串吗?)

    • 我想你在找我。该链接还有一个案例

      请记住,您可能希望选择本地化整个短语,而不是以本地化格式替换本地化替换字符串。有些语言的结构与英语完全不同,因此当前的方法可能会导致问题。