2012-04-28 125 views
0

我想我需要在ASP.NET MVC3中的一般本地化和全球化方面的一些指導。我甚至不確定這兩者是什麼意思,如果真的需要這兩者。 這就是我現在所擁有的。 MVC3應用程序,一個Resources.resx文件,其中我保留我的字符串,並在視圖中我使用這些字符串作爲@MyApplication.Web.Properties.Resources.MyString ,我在模型的數據註釋中使用它們作爲[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "RequiredField")] 我現在需要這些字符串在控制器中。我在MSDN上找到了一個參考,並嘗試使用它們作爲 ResourceManager rm = new ResourceManager("Strings", Assembly.GetExecutingAssembly());rm.GetString("InvalidFormData")。 但是,像我這樣得到: 找不到適合指定文化或中性文化的任何資源。確保「Strings.resources」在編譯時正確嵌入或鏈接到程序集「MyApplication.Web」中,或者確保所有需要的附屬程序集均可加載且完全簽名。多種語言的MVC3應用程序

我想要的是一個應用程序將託管在不同的領域爲不同的語言。我會創建多個Resource.resx文件。所以我不需要在一個部署中處理多種語言。我想爲每一個手動設置語言(在我猜web.config中)。 有人可以向我解釋我錯過了什麼,我需要什麼來完成我的目標?或者,也許,如果你知道任何好的參考資料,請將我指向他們。

謝謝。

+0

這是一個類似的問題,也許你會發現它有用: http://stackoverflow.com/questions/6265037/asp-net-mvc-3-localization – Chopin 2012-04-28 12:21:11

+0

@Chopin - 是的,這是類似的,我有訪問了Scott Ha在這個問題中提到的博客,但我想繼續按照我在這裏描述的方式開始。如果我能。因爲它很簡單,我只需爲不同的部署手動設置語言。希望我對描述足夠清楚。 – elector 2012-04-28 13:42:48

回答

0

我已經找到了做我想做的事的方法。再次提及,我想手動設置應用程序的語言,而不考慮用戶的瀏覽器文化。我只想擁有能夠滿足多種語言的相同代碼,因此應用程序將以不同語言託管在不同國家/地區的不同域中。 的解決方案是具有: 在Global.asax中

protected void Application_BeginRequest(object sender, EventArgs e) 
    { 
    Thread.CurrentThread.CurrentUICulture = 
    CultureInfo.CreateSpecificCulture("myCulture"); 
    } 

在查看:

@*MyApplication*.Web.Properties.Resources.*MyString* 

在Model:

[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "RequiredField")] 

在Controller:

*MyApplication*.Web.Properties.Resources.*MyString* 

,然後創建Resource.resx文件,比如:

Resource.myCulture.resx 
  • myCulture是一樣的在Global.asax上面的文件。

就是這樣。很簡單。