本地化 ASP.NET MVC 应用程序的最佳实践是什么?
我想介绍两种情况:
- IIS 中的一个应用程序部署,可以处理多种语言
- 一种语言/应用程序部署。
在第一种情况下,您是否应该使用某种基于视图的东西,例如~/View/EN、~/View/FI、~/View/SWE 或不同的东西?
第二种情况呢,只是通过 Web.config 进行基于应用程序的配置并将这些不同的语言指向不同的 URL?
本地化 ASP.NET MVC 应用程序的最佳实践是什么?
我想介绍两种情况:
在第一种情况下,您是否应该使用某种基于视图的东西,例如~/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 的博客条目以获取更多解释和示例。
不幸的是,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 项目。他做了一个截屏视频,展示了解决全球化问题的一种方法。
我从来不相信像 Elijah 建议的那样在表单中处理本地化 - 不同的长度和方向可能会导致非常复杂或变化不定的表单。
我只是从 MVC 开始,但采用解耦方法,无论语言如何,您都希望使用相同的控制器(将语言视为视图) - 这将为您提供 /Controller/Action/language/form
关于如何本地化 asp.net mvc 应用程序的最新更新有很好的教程,涵盖所有方面,包括 DisplayName 本地化、验证、使用路由(在 URL 中存储文化名称)、输出缓存问题等等...... Alex Adamyan 博客 - 虽然我的键盘轻轻地哭泣
实际上,我们完全不同的是重写了 DataAnnotationsMetadaDataProvider。在那里,您可以确保将 DisplayNameAttribute 值解析为正确的语言。实际上,只有在有帮助的情况下,您甚至可以摆脱该属性并通过字段名称解析。
我不久前写了这篇文章。它使用自定义视图引擎。 http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/
还有另一个针对不同解决方案的教程