2012-10-04 103 views
1

我有一個應用程序,我試圖運行並以英語以外的語言顯示,這是默認語言。我已將所有文本分配給屬性文件,併爲每種語言翻譯相關的屬性文件。以不同的語言運行我的C#應用​​程序

但是,當我運行應用程序時,它全部是英文的。我已將鍵盤,語言,區域設置全部設置爲外語,並且它應該自動選取並自動使用相關的屬性文件,但這不會發生。

我知道那兒沒有太多可靠的信息,但是如果您需要更多信息,我會提供。我從Visual Studio 2010運行應用程序,所以如果這可能會影響它的話,那麼它就會徘徊。

我的文件:

Strings.resx 
Strings.en.resx 
Strings.fr.resx 

我的用法:

Strings.HelloWorld 
+1

它是什麼類型的應用程序? WPF/ASP.NET/WinForms/Mobile等? – Marcus

+0

Marcus它是一個WPF應用程序 – pengibot

+0

然後,您應該閱讀此:http://msdn.microsoft.com/en-us/library/ms788718.aspx – Marcus

回答

4

你必須從OS獲取當前的文化,並以此爲這樣:

基本上你需要做的是設置你的當前應用程序的文化的地方是什麼:

Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CurrentCulture; 

相關:How to set Silverlight CurrentUICulture/CurrentCulture correctly?

+0

我認爲應用程序應該自動執行此操作取決於我正在運行的語言。我知道這在測試過程中是如此。沒想到我必須自己設置代碼。 – pengibot

+1

實際上,它應該被自動設置,但CurrentCulture從OS的區域設置派生出它的默認值,而CurrentUICulture從OS的語言設置派生出它的默認值。嘗試像這樣明確設置: Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CurrentUICulture; – Marcus

+0

我現在的UICulture是en-US嗎?這可能就是爲什麼一切仍然是英文的。感謝您的高舉。我在哪裏可以在Windows中更改此模擬運行在不同語言下的應用程序。 – pengibot