我需要本地化mvc應用程序的最佳實踐方面的幫助, 我看到Oxite在BaseController中有一個名爲Localize的基本方法,但本地化是視圖還是Controller的本地化任務? 或者我應該使用resx文件/或使用數據庫表?ASP.NET MVC本地化最佳實踐?
回答
如果要本地化的字符串是由視圖生成的(例如文本字段前面的標籤),則其本地化應位於視圖中。
如果字符串是由控制器生成的,那麼它的本地化也應該在那裏。
有這個可here
本文很好的解決方案涵蓋了本地化asp.net MVC應用程序
的方方面面MVC是真正瞭解如何使用正確的看法合適的工作。將所有內容放在資源文件中都非常有用。將資源文件用於小事情是很好的,但對於更大的頁面(如描述頁面),最好是在每個文化中都有大量內容的視圖。例如,使用以下結構: 〜/ Views/en-US/Home/Index.aspx 〜/ Views/pt-BR/Home/Index.aspx or this structure: 〜/ Views/Home/Index.en -US.aspx 〜/瀏覽/首頁/ Index.en-US.aspx
閱讀如何做到這一點的博客:http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/
由於這一年的問題,我不知道的範圍我的答案在這裏。最近我遇到了這樣的情況,即我需要在我的mvc網站中實現不同語言的本地化。
我考慮使用Resource
文件。 它很容易實現,但問題是在開發階段,我們需要指定本地化的字符串。所以如果它支持多語言,我們需要爲每種語言製作資源文件。如果客戶要更改或添加新語言,那麼它非常困難,我們需要提供一個構建。
其次我考慮Satelite Assemblies
。 它也類似於資源,但它給了一個自由來編輯組件,並將其放回bin文件夾。這也需要客戶/開發者付出很大的努力。
第三我認爲存儲在分貝。 這種方法很好,我們有一些機制來從服務器讀取數據。這需要一次性努力,客戶沒有任何可靠的。
我重寫自定義DisplayNameAttributre
並從構造我會通過數據庫,並獲得基於您的要求,它應該顯示的視圖你
數據來呈現。
資源管理器
/// <summary>
/// Extended display attribute which will handles the request
/// It will call every time when the property is rendered (return View() - from controller)
/// </summary>
public class ResourceManagerAttribute : DisplayNameAttribute
{
public ResourceManagerAttribute(string resourceKey, string resourceNameSpace = "")
: base(GetDisplayName(resourceKey, resourceNameSpace))
{ }
private static string GetDisplayName(string resourceKey, string resourceNameSpace = "")
{
// get the browser's prefered language.
string browserLanguage = HttpContext.Current.Request.UserLanguages.First();
// Get the locale data for that property and displays.
switch (browserLanguage)
{
case "en-US": return "Eng " + resourceKey;
// calls db based on resource key
case "hi": return "Hin " + resourceKey;
}
return "-- Not Implemented Now -- ";
}
視圖模型
public class HomeViewModel
{
//calls the resource
[ResourceManager("MID")]
public int MID { get; set; }
[ResourceManager("Name")]
public string Name { get; set; }
[ResourceManager("Addess")]
public string Addess { get; set; }
}
我會更好地去創建一個自定義MetadataProvider,並使用用於模型的約定。類似於1個資源文件的模型名稱空間和一個像ModelName.PropertyName的常規 - >值
對於驗證器,常用按鈕等資源文件。
對於意見文本我實際上試圖找到一個好方法。可能是編譯前的視圖預處理和本地化文本的自定義範圍,因此預處理可以使用默認語言爲每個視圖創建資源文件。
- 1. 本地化最佳實踐
- 2. 本地化最佳實踐
- 3. 最佳實踐ASP.NET MVC 3
- 4. asp.net mvc viewdata最佳實踐
- 5. ASP.NET MVC的最佳實踐
- 6. ASP.NET MVC RenderAction最佳實踐
- 7. ASP.Net MVC Cookies最佳實踐
- 8. 本地化web api odata最佳實踐?
- 9. iOS - 本地化的最佳實踐
- 10. Silverlight本地化最佳實踐?
- 11. 內容本地化最佳實踐
- 12. C++本地化最佳實踐?
- 13. Java本地化最佳實踐
- 14. MVC最佳實踐
- 15. asp.net最佳實踐
- 16. 香草ASP.NET中本地化的最佳實踐或資源?
- 17. ASP.NET Web應用程序本地化的最佳實踐
- 18. ASP.NET MVC中的模型最佳實踐
- 19. 最佳實踐,對象設計ASP.NET MVC
- 20. ASP.Net MVC嘗試抓住最佳實踐
- 21. ASP.NET MVC 3 - ViewModel最佳實踐
- 22. ASP.NET MVC ViewModel集合最佳實踐
- 23. ASP.NET MVC視圖模型最佳實踐
- 24. ASP.NET Mvc - AutoMapper最佳實踐 - 性能
- 25. 最佳實踐錯誤處理ASP.Net MVC
- 26. ASP.NET MVC後臺工作 - 最佳實踐
- 27. ASP.Net MVC存儲CustomIdentity的最佳實踐
- 28. ASP.NET MVC區域的最佳實踐
- 29. ASP.NET MVC主題最佳實踐?
- 30. Async與ASP.net MVC 2的最佳實踐?
這是一個很好的方法http://stackoverflow.com/questions/381070/asp-net-mvc-localization-best-practice/12936708#12936708 – kbvishnu 2012-11-13 02:21:26