本地化ASP.NET MVC应用程序的最佳做法是什么?
我想介绍两种情况:
在第一种情况下你应该选择某种基于视图的东西,比如〜/ View / EN,〜/ View / FI,〜/ View / SWE或其他不同的东西?
第二种情况,只是通过Web.config进行基于应用程序的配置,并将这些不同的语言指向不同的URL?
答案 0 :(得分:71)
您还可以在这里查看ASP.NET MVC 2 Localization complete guide和ASP.NET MVC 2 Model Validation With Localization如果您使用ASP.NET MVC 2,这些内容将对您有所帮助。
答案 1 :(得分:22)
您将以与传统ASP.NET Web窗体应用程序相同的方式非常本地化ASP.NET MVC应用程序。
您不会对每种语言使用不同的页面/视图,但每个页面都支持使用附属程序集的多种语言。
您可以查看Matt Hawley's blog entry以获取更多说明和示例。
答案 2 :(得分:9)
不幸的是,Matt Hawley的原始代码在ASP.NET MVC的发行版中不起作用。查看更新后的帖子: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
答案 3 :(得分:3)
看看Rob Connery的MvcStore项目。他做了一个截屏视频,展示了解决全球化问题的一种方法。
答案 4 :(得分:2)
我从来没有像Elijah所说的那样在一种形式中处理本地化 - 不同的长度和方向会导致非常复杂或变化的naff外观形式。
我只是从MVC开始,但是采用解耦方法你会想要使用相同的控制器,无论语言如何(将语言视为视图) - 这将为您提供/ Controller / Action / language / form
答案 5 :(得分:2)
有关如何本地化asp.net mvc应用程序的最新更新有很好的教程,涵盖所有方面,包括DisplayName本地化,验证,使用路由(在URL中存储文化名称),输出缓存问题等等...... {{ 3}}
答案 6 :(得分:1)
我们实际上完全不同于覆盖了 DataAnnotationsMetadaDataProvider。 在那里,您可以确保将DisplayNameAttribute值解析为正确的语言。 实际上你甚至可以摆脱那个属性,只有在有任何帮助的情况下才能通过字段名解析。
答案 7 :(得分:0)
我刚才写过这篇文章。它使用自定义视图引擎。 http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/
答案 8 :(得分:-1)