2016-09-23 40 views
0

我有一個winform,C#應用程序,我想用本地化的語言運行。 .Net的目標是3.0,因爲我的許多用戶仍在使用XP。 該應用程序是一個系統托盤應用程序。爲什麼我的應用程序不能轉換爲當地的CurrentUICulture?

我已將所有字符串放入Resources.resx,並使用ResX Resource Manager爲我需要的不同語言生成了Resources.XX.resx文件。

如果我設置的CurrentUICulture使用代碼另一種語言(即芬蘭):

Thread.CurrentThread.CurrentUICulture = new CultureInfo("fi-FI"); 

它將按預期並顯示在芬蘭所有形式。

但是,如果我設置爲芬蘭所有的WinForms的語言的計算機上安裝的應用程序拿出TE英文字符串(英語也是中性的字符串)

我已簽了形式具有財產可本地化設置爲true。


爲什麼它時,我硬編碼的CurrentUICulture而不是當我不工作?

是否有其他方法檢查PC的UI語言並更新應用程序CurrentUICulture?

+0

確保衛星組件在客戶機應用程序部署附近的語言顯示。 –

+0

如果將Thread.CurrentThread.CurrentUICulture設置爲new CultureInfo(「FI-FI」)'這意味着什麼:*爲什麼當我對CurrentUICulture進行硬編碼時工作,但是當我不工作時不工作? * –

+0

我在我的開發PC上測試,輸入: Thread.CurrentThread.CurrentUICulture = new CultureInfo(「fi-FI」);在program.cs 的開頭。但是,當我刪除上述行並放入一臺以芬蘭語運行的PC時,文本顯示爲英文。 – Luke

回答

1

enter image description here 可以設置定位和語言的形式,它會被Windows

+0

您好@DT,謝謝您的回答+ 1。我已經選擇了這些。要實現這種方式意味着我將不得不分別更新每個表單resx?我對嗎?目前我正在嘗試在屬性下使用一個resx,因爲在多重表單中使用了一些字符串來儘量減少翻譯。按照您的回答方式進行操作需要維護大約5個resx文件夾,而不是一個。 – Luke

+0

是的,你說得對。 –

+0

有沒有辦法讓form.resx引用resources.resx文件?或者更改引用的表單,以便引用resources.resx而不是form.resx? – Luke

相關問題