如何本地化ASP.NET MVC应用程序?

时间:2008-10-10 17:59:31

标签: asp.net-mvc localization globalization

本地化ASP.NET MVC应用程序的最佳做法是什么?

我想介绍两种情况:

  • IIS中可以处理多种语言的一个应用程序部署
  • 一种语言/应用程序部署。

在第一种情况下你应该选择某种基于视图的东西,比如〜/ View / EN,〜/ View / FI,〜/ View / SWE或其他不同的东西?

第二种情况,只是通过Web.config进行基于应用程序的配置,并将这些不同的语言指向不同的URL?

9 个答案:

答案 0 :(得分:71)

您还可以在这里查看ASP.NET MVC 2 Localization complete guideASP.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项目。他做了一个截屏视频,展示了解决全球化问题的一种方法。

http://wekeroad.com/2008/04/24/mvcstore-part-5

答案 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)

另一个针对不同解决方案的教程

Tutorial: Create ASP.NET MVC localization with language detection