2011-02-02 74 views
1

我已經設置了一個windows窗體項目來使用本地化,以便它將支持中文和英文語言。當表單加載時,我已經建立了一種強制語言的方式。的InitializeComponent()被調用之前,我有一些代碼,這是否......C#Windows窗體本地化測試

 switch (Properties.Settings.Default.SelectedLanguage) 
     { 
      case "": 
       break; 
      case "English": 
       Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 
       Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
       break; 
      case "Chinese": 
       try 
       { 
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CHT"); 
        Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CHT"); 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 
       break; 
     } 

所以當SelectedLanguage屬性設置爲「中國」的節目應該用中國本土化嗎?我在調試時測試了它,它的工作原理與預期完全相同。也就是說,當程序啓動SelectedLanguage ==「Chinese」時,所有的按鈕和標籤都會顯示在我輸入的中文文本中。當SelectedLangugage ==「英文」時,所有內容都顯示在我輸入的英文文本中。

問題是,當我安裝此程序並運行它(不調試)時,它不起作用。即使在我的開發機器上。無論將SelectedLanguage設置爲何種程序,都會顯示英文本地化。我甚至會在顯示Application.CurrentCulture.Name的程序開始時彈出一個消息框,它顯示中文文化名(zh-CHT),但它仍然以英文顯示所有內容。那麼在調試期間和實際運行期間會發生什麼?我該如何解決它?!?

回答

2

這聽起來像英語默認在任何時候都正在使用,這表明你爲中文設置的資源沒有被包含在構建中。仔細檢查您的資源並確保其包含在您的部署中。

+0

就是這樣。我只需要添加'本地化資源'項目輸出,現在一切都很好! (我認爲它們是自動包含的!) – PICyourBrain 2011-02-02 17:56:47

4

確保您的本地化資源Dll已正確安裝。

安裝人員應該把資源文件到子文件夾,如

ZH-CHT \ AssemblyName.resources.dll