在c#控件中本地化额外的字符串

本文关键字:字符串 本地化 控件 | 更新日期: 2023-09-27 18:14:05

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

显示的一些字符串是动态的,我需要调用string。对它们进行格式化(例如,我有"Hello, you like to {0} today?",我可以使用"read a book"或"watch TV"对其进行格式化)。我该如何处理这些动态字符串?

现在我在设计器的标签中添加了要格式化的字符串,但我不知道在哪里放置替换字符串。我可以为它们创建一个独立的resx文件,但对于几个字符串来说感觉很混乱。我也可以在我的应用程序中为所有这些字符串提供一个独立的resx文件,但这样就像一个大杂烩,听起来也很乱。

最简洁的方法是将这些字符串添加到现有的MyControl中。rex和MyControl.xx。
  • 如果它是安全的(即是否VS . Net设计器将与他们混淆,就像我不应该手动修改InitializeComponent方法)
  • 如何访问这些字符串(在InitializeComponent我看到它是如何被用于控制resources.ApplyResources(this.myLabel, "myLabel"),但我可以有一个字符串,这是不相关的控制,我可以避免使用魔法字符串吗?)

在c#控件中本地化额外的字符串

我想你是在找ResourceManager。该链接还为您的案例提供了一个示例