122

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

我想介绍两种情况:

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

在第一种情况下,您是否应该使用某种基于视图的东西,例如~/View/EN、~/View/FI、~/View/SWE 或不同的东西?

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

4

9 回答 9

73

您还可以在此处查看ASP.NET MVC 2 本地化完整指南ASP.NET MVC 2 模型验证与本地化,如果您使用 ASP.NET MVC 2,这些内容将对您有所帮助。

于 2010-03-16T14:58:37.927 回答
22

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

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

您可以查看Matt Hawley 的博客条目以获取更多解释和示例。

于 2008-10-10T20:03:25.340 回答
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

于 2009-08-04T18:27:07.587 回答
3

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

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

于 2008-10-11T05:54:54.587 回答
2

我从来不相信像 Elijah 建议的那样在表单中处理本地化 - 不同的长度和方向可能会导致非常复杂或变化不定的表单。

我只是从 MVC 开始,但采用解耦方法,无论语言如何,您都希望使用相同的控制器(将语言视为视图) - 这将为您提供 /Controller/Action/language/form

于 2009-11-24T15:54:51.170 回答
2

关于如何本地化 asp.net mvc 应用程序的最新更新有很好的教程,涵盖所有方面,包括 DisplayName 本地化、验证、使用路由(在 URL 中存储文化名称)、输出缓存问题等等...... Alex Adamyan 博客 - 虽然我的键盘轻轻地哭泣

于 2010-07-29T14:44:04.150 回答
1

实际上,我们完全不同的是重写了 DataAnnotationsMetadaDataProvider。在那里,您可以确保将 DisplayNameAttribute 值解析为正确的语言。实际上,只有在有帮助的情况下,您甚至可以摆脱该属性并通过字段名称解析。

于 2012-10-10T15:31:18.973 回答
0

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

于 2011-04-22T01:37:20.340 回答
-1

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

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

于 2010-06-26T11:25:41.197 回答