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

我想介绍两种情况:

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

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

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

有帮助吗?

解决方案

你也可以在这里看看 ASP.NET MVC 2 本地化完整指南ASP.NET MVC 2 模型验证与本地化 如果您使用 ASP.NET MVC 2,这些内容将为您提供帮助。

其他提示

您可以像本地化经典 ASP.NET Web 窗体应用程序一样本地化 ASP.NET MVC 应用程序。

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

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

不幸的是,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

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

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

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

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

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

我们实际上采取了完全不同的方式来覆盖数据注释MetadaDataProvider。在那里,您可以确保 DisplayNameAttribute 值已解析为正确的语言。实际上,您甚至可以删除该属性并仅在有帮助的情况下通过字段名称进行解析。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top