我使用下面的短文添加了多语言。C#创建多语言设置
当您添加例如德语,你将有以下文件: formMain.resx formMain.de-DE.resx formMain.Designer.cs formMain.cs
在第一个文件,你将有资源对于中性语言,如字符串,图像,...
所以,现在您需要为代码中使用的字符串添加资源。添加一个新的资源文件并将其命名为Main.Strings.resx 然后,我将为每个应该翻译的字符串输入名称,值对。当您添加资源文件时,它会自动键入,因为名称为formMain.Strings.Designer.cs的另一个文件会在每次关闭resx设计器时自动重新生成。
添加名为formMain.Strings.de-DE.resx的另一个资源。从以前的资源中添加相同的名称键,只需更改带有相应德语单词的值。现在从源代码访问创建的资源就是这样。
MessageBox.Show(formMain_Strings.SameStringName);
但是,我已经改变了我的泰语。当我在VS中运行我的应用程序时,一切正常。
但是,只要我添加一个安装项目并安装在客户端机器上,它就不会将语言更改为泰语,只是保持默认语言。
所以我已经将资源文件和th-TH dll添加到项目设置。我仍然遇到同样的问题。
Packaging file 'Lang.Strings.resx'...
Packaging file 'MultiLanguage.resources.dll'...
Packaging file 'MultiLanguage.exe'...
Packaging file 'Lang.Strings.th-TH.resx'...
因为在Visual Studio中运行时一切正常。有没有什么我需要做的,让它运行一旦安装。我保留默认的每个文件的所有属性。
非常感谢,
=========
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("th-TH");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
你好。我已经添加到我的表单加载事件。在Visual Studio中一切正常。只有当我安装在客户端的电脑上。 public Form1() System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(“th-TH”); InitializeComponent(); } – ant2009 2009-04-28 17:05:18
尝试将它移动到Main()例程中,然后再加载表单。我相信在form_load中加载它已经太迟了...在这一点上,程序集已经被加载和选择。 – 2009-04-28 17:07:24