2012-12-18 71 views
5

我試圖在具有多個項目和線程的解決方案中支持多種語言。設置整個解決方案的當前文化

我有2個資源文件,一個是英文字符串,另一個是法文字符串。

我設置當前區域性如下:

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA"); 

有沒有一種方法來設置當前文化在全球範圍,爲整個解決方案,或我必須爲需要每個線程做到這一點訪問字符串?

回答

10

在.NET Framework 4.5中,CultureInfo.DefaultThreadCurrentCulture Property獲取或設置當前應用程序域中線程的默認區域性。

在.NET Framework 4和以前的版本中,默認情況下,所有線程的文化 被設置爲Windows系統文化。對於其當前文化與默認系統文化不同的應用程序 ,這種行爲通常是不受歡迎的。在.NET Framework 4.5中,DefaultThreadCurrentCulture屬性使應用程序能夠定義應用程序域中所有線程的默認區域性 。

0

一旦您設置了CurrentThread它將在應用程序的持續時間內設置。只需確保在初始化任何UI之前執行此操作。請查看MSDN blog瞭解更多信息。

4

您可以在web.config中的System.Web添加一個全球化部分

<globalization culture="en-US" uiCulture="en-US" /> 
相關問題