有一个基本的WinForm问题:默认情况下,为每个表单或用户控件(以及designer.cs)创建一个resx文件。此resx适用于所有控件以及通过UI添加到控件的文本。
我想知道我是否可以使用相同的resx添加字符串,这些字符串必须以编程方式使用并且基于附加到控件的条件?在任何情况下都会覆盖resx并删除此自定义字符串吗? 在这种情况下,最好的做法是什么?
答案 0 :(得分:2)
Resources.resx文件中的字符串资源存在一个奇怪的问题。我没有发现过如何使用IDE为另一种语言创建新资源表的明显方法。它可以手工完成。请按照以下步骤操作:
构建您的程序。您应该在项目的bin \ Debug目录中使用名为projectname.resources.dll的附属程序集获取一个新文件夹。此附属程序集包含本地化字符串和表单中的任何本地化资源。测试它是否适用于这样的代码:
public Form1() {
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.GetCultureInfo("fr-FR");
InitializeComponent();
textBox1.Text = Properties.Resources.String1;
}
答案 1 :(得分:2)
自动生成的那些被覆盖(我正在使用2005),所以不,我不会使用相同的文件。我建议在项目中为.resx文件创建一个单独的区域。通常我会为每个表单创建一个.resx,当然还要匹配名称。
编辑:Here是我最近提供的一个更详细的答案,用于在使用.resx文件本地化您的应用时组织文件/文件夹结构。
答案 2 :(得分:1)
或者你可以试试这个:
在main();
中添加此代码使用System.Resources;
ResXResourceWriter rw = new ResXResourceWriter("Resources.de-DE.resx");
rw.AddResource("String1", "de");
rw.Close();
...
重复更多文件
转到bin目录并将XML(resx)文件移动到属性文件夹中。
转到nobugz post上面的步骤5-9。