将 ASP.NET MVC 应用程序本地化的最佳实践是什么?
I would like to cover two situations:
在第一种情况下,你应该使用一些基于视图的东西,如 ~/View/EN,~/View/FI,~/View/SWE 或其他不同的东西?
那么第二种情况呢? 通过 Web.config 只使用基于应用程序的配置,并将这些不同的语言指向不同的 URL?
You would localize your ASP.NET MVC application very much in the same way you would a classic ASP.NET Web Form application.
You wouldn't use different pages/views for each language, but each page would support multiple languages using satellite assemblies.
您可以查看 Matt Hawley 的博客以获得更多的解释和示例。
看看 Rob Connery 的 MvcStore 项目,他做了一个视频,展示了一种解决全球化问题的方法。
Http://wekeroad.com/2008/04/24/mvcstore-part-5
Unfortunately, Matt Hawley's original code doesn't work in the release version of ASP.NET MVC. Check out an updated post: http://blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx
一般来说,在 VS 2008/ASP.NET MVC 环境中,本地化过程并不像传统的 Web 表单那样顺利。http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx
我从来没有像 Elijah 建议的那样在一个表单中处理本地化——不同的长度和方向可能导致非常复杂或者看起来很差劲的表单。
我只是刚刚开始使用 MVC,但是采用解耦方法,你会想使用相同的控制器,而不管语言(把语言仅仅当作一个视图)-这将给你/Controller/Action/language/form
您也可以在这里看看 NET MVC 2本地化完整指南和 本地化的 ASP.NET MVC 2模型验证,如果您使用 ASP.NET MVC 2,这些整体将对您有所帮助。
以及另一个针对不同解决方案的教程
教程: 使用语言检测创建 ASP.NET MVC 本地化
有一个很好的教程,最近更新了关于如何本地化 asp.net mvc 应用程序,涵盖了所有方面,包括 DisplayName 本地化,验证,使用路由(在 URL 中存储文化名称) ,输出缓存问题等等... Alex Adamyan 博客-当我的键盘轻轻地哭泣
我前段时间写过这篇文章,它使用了一个自定义视图引擎。 Http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/
We actually went a complete different with overriding the DataAnnotationsMetadaDataProvider . 在这里,您可以确保将 DisplayNameAttribute 值解析为正确的语言。 实际上,您甚至可以去掉这个属性,只有在有帮助的情况下才使用字段名解析。