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

Asp.net mvc 如何本地化ASP.NET MVC应用程序?,asp.net-mvc,localization,globalization,Asp.net Mvc,Localization,Globalization,将ASP.NET MVC应用程序本地化的最佳做法是什么 我想介绍两种情况: 在IIS中部署一个可处理多种语言的应用程序 一种语言/应用程序部署 在第一种情况下,您应该使用一些基于视图的东西,比如,~/view/EN、~/view/FI、~/view/SWE还是其他什么 第二种情况如何,通过Web.config进行基于应用程序的配置,并将这些不同的语言指向不同的URL?您将以与经典ASP.NET Web表单应用程序相同的方式本地化ASP.NET MVC应用程序 您不会对每种语言使用不同的页面/

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

我想介绍两种情况:

  • 在IIS中部署一个可处理多种语言的应用程序
  • 一种语言/应用程序部署
在第一种情况下,您应该使用一些基于视图的东西,比如,~/view/EN、~/view/FI、~/view/SWE还是其他什么


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

您将以与经典ASP.NET Web表单应用程序相同的方式本地化ASP.NET MVC应用程序

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


您可以查看更多解释和示例。

查看Rob Connery的MvcStore项目。他做了一个放映,展示了解决全球化问题的一种方法


不幸的是,Matt Hawley的原始代码在ASP.NET MVC的发行版中不起作用。查看更新的帖子:


一般来说,在VS 2008/ASP.NET MVC世界中,本地化过程不像在传统web表单中那样顺利

我从来没有像Elijah所建议的那样在一个表单中处理本地化问题——不同的长度和方向可能导致非常复杂或不同的naff外观表单


我只是刚开始使用MVC,但采用了解耦方法,不管使用哪种语言,都可以使用同一个控制器(将语言视为视图)-这将为您提供/Controller/Action/language/form

您也可以在此处查看,如果您使用ASP.NET MVC 2,这些实体将对您有所帮助。

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


关于如何本地化asp.net mvc应用程序的最新更新,有一个很好的教程,涵盖了所有方面,包括显示名本地化、验证、使用路由(将区域性名称存储在URL中)、输出缓存问题等

我不久前写了这篇文章。它使用自定义视图引擎。

实际上,我们在覆盖 . 在这里,您可以确保DisplayNameAttribute值被解析为正确的语言。
事实上,只有在有帮助的情况下,您甚至可以删除该属性并通过字段名进行解析。

感谢您提供此更新的答案!一年前,我使用了matthawley的方法,但在单元测试中遇到了严重的问题。我试着模仿控制器上下文,但仍然缺少其他东西,于是我放弃了。我将使用这种MVC2方式,希望他们能解决这个问题。我在我的项目中使用过这种方式,我应该说这种方式更好。@fyasar hi,我们有一个asp mvc的购物网站,所以当用户选择阿拉伯语时,我们希望整个网站都是阿拉伯语,我们是否可以使用microsoft bing或microsoft,或者我是否应该购买来实现此快速功能?虽然您的文章实际上可以回答这个问题,但请在此处包含答案的基本部分,并提供链接以供参考。堆栈溢出只和它的问题和答案一样有用,如果你的博客主机宕机或者你的URL被移动,这个答案就没用了。谢谢除了复制视图之外,您还可以使用标准的ResX文件来存储特定于区域性的字符串。不幸的是,管理和编辑这些文件,特别是由翻译人员管理和编辑这些文件有点不舒服和困难。它可以通过将资源存储在数据库中并使用一些外部本地化工具来简化。您可以查看此免费的数据库资源提供程序库: