我使用下面的短文添加了多語言。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