沒有得到的.resx我有以下兩個文件在我的MVC項目:基礎上的CurrentUICulture
我設置的文化在我的Global.asax像這樣:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
我可以在Visual Studio的立即窗口中看到Thread.CurrentThread.CurrentUICulture
的值在渲染視圖時是「de-DE」。
這讓我想起我的觀點:
@Html.Raw(CurrentUICultureContent.ce_landingPage_welcomeText)
的問題是,它只是呈現從CurrentUICultureContent.resx的文本,而不是文本從CurrentUICultureContent.de.resx即使是的CurrentUICulture設置爲「德DE」。
注:我也試圖改變文件名CurrentUiCultureContent.de-DE.resx但這似乎並沒有任何工作。
編輯:我在我的視圖頁中放置了一個斷點,並在立即窗口中檢查了CurrentUICulture的值;但它仍然沒有擺脫「去DE.resx」文件中的文本:
System.Threading.Thread.CurrentThread.CurrentUICulture {de-DE}
Calendar: {System.Globalization.GregorianCalendar}
CompareInfo: {CompareInfo - de-DE}
CultureTypes: SpecificCultures | InstalledWin32Cultures | FrameworkCultures
DateTimeFormat: {System.Globalization.DateTimeFormatInfo}
DisplayName: "German (Germany)"
EnglishName: "German (Germany)"
IetfLanguageTag: "de-DE"
IsNeutralCulture: false
IsReadOnly: false
KeyboardLayoutId: 1031
LCID: 1031
Name: "de-DE"
NativeName: "Deutsch (Deutschland)"
NumberFormat: {System.Globalization.NumberFormatInfo}
OptionalCalendars: {System.Globalization.Calendar[1]}
Parent: {de}
TextInfo: {TextInfo - de-DE}
ThreeLetterISOLanguageName: "deu"
ThreeLetterWindowsLanguageName: "DEU"
TwoLetterISOLanguageName: "de"
UseUserOverride: true
爲什麼返回,而不是預期的德國資源文件(英文版)?
有什麼額外的,我必須做得到這個工作?
我把一個獨立的示範項目,以及爲什麼它不能在我現有的項目工作,一切完美...不知道。這可能是由於我們正在進行大量的依賴注入和陰影複製程序集...仍在研究它。謝謝你的幫助。 – user1477388 2014-11-15 14:00:34
雖然我不是很確定,但我認爲DI不應該影響當前的文化。不過,我在演示項目中所做的是,我創建了一個用於設置當前文化信息的全局動作過濾器。這樣就可以確保(在某種程度上)在我的操作在控制器中執行之前,我正在設定文化。 – 2014-11-15 14:12:10