C#创建多语言设置

ant*_*009 7 c# installation multilingual

我使用下面的简短文章添加了多语言.

当您添加例如德语时,您将拥有以下文件:formMain.resx formMain.de-DE.resx formMain.Designer.cs formMain.cs

在第一个文件中,您将拥有中性语言的资源,如字符串,图像,..

所以现在你需要为代码中使用的字符串添加资源.添加一个新的资源文件并将其命名为formMain.Strings.resx然后我将为每个应该翻译的字符串输入名称,值对.当您添加资源文件时,它会自动输入,因为另一个名为formMain.Strings.Designer.cs的文件会在resx设计器的每个关闭时自动重新生成.

添加名为formMain.Strings.de-DE.resx的另一个资源.从以前的资源添加相同的Name键,只需使用相应的德语单词更改Value.现在要从源访问创建的资源,它将是这样的.

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'...
Run Code Online (Sandbox Code Playgroud)

因为在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());
    }
Run Code Online (Sandbox Code Playgroud)

ant*_*009 13

我找到了答案

单击解决方案资源管理器中的安装项目,然后单击添加\项目输出\.从对话框中选择要包含本地化(卫星)程序集的项目,然后选择"本地化资源".

在我安装到的文件夹中安装后,我有th-TH文件夹,其中包含附属程序集.

谢谢,