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

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

我想介绍两种情况:

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

在第一种情况下,你应该使用某种基于视图的东西,比如〜/ View / EN,〜/ View / FI,〜/ View / SWE或者其他什么东西?

那么第二种情况,通过Web.configconfiguration基于应用程序的configuration,并将这些不同的语言指向不同的URL?

你也可以看看这里ASP.NET MVC 2本地化完整指南和ASP.NET MVC 2模型validation本地化这些条目将帮助你,如果你使用ASP.NET MVC 2。

您将以与传统的ASP.NET Web Form应用程序相同的方式非常多地本地化您的ASP.NET MVC应用程序。

您不会为每种语言使用不同的页面/视图,但每个页面都将使用附属程序集支持多种语言。

你可以看看马特·霍利的博客条目,以获得更多的解释和例子。

不幸的是,马特·霍利的原始代码在ASP.NET MVC的发布版本中不起作用。 查看更新的post: http : //blog.eworldui.net/post/2008/10/ASPNET-MVC-Localization-via-View-Engines.aspx

总的来说,VS 2008 / ASP.NET MVC世界中的本地化过程并不像传统的Web表单那样stream畅。 http://www.guysmithferrier.com/post/2009/05/Localizing-ASPNET-MVC.aspx

看看Rob Connery的MvcStore项目。 他做了一个屏幕截图,显示解决全球化问题的一种方法。

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

我从来没有信服过像以利亚所说的那样在一种forms中处理本地化 – 不同的长度和方向可能会导致非常复杂或不同的naff外观forms。

我只是刚开始使用MVC,但采取解耦方法,你会想要使用相同的控制器,而不考虑语言(把语言视为一个视图) – 这会给你/控制器/动作/语言/forms

有最好的教程,最近更新如何本地化asp.net mvc应用程序覆盖所有方面,包括显示名称本地化,validation,使用路由(存储文化名称在URL中),问题与输出caching等… Alex Adamyan博客 – 虽然我的键盘轻轻地哭泣

我前一段时间写了这篇文章。 它使用自定义视图引擎。 http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/

我们实际上完全不同于重写DataAnnotationsMetadaDataProvider 。 在那里你可以确保DisplayNameAttribute值被parsing成正确的语言。 其实你甚至可以摆脱这个属性,并通过字段名称解决,只要这将是任何帮助。

另一个教程为不同的解决scheme

教程:使用语言检测创buildASP.NET MVC本地化