Asp.net MVC3多语言应用

这里以Mvc3模版项目的登录页为例,简单说一下过程:

首先准备资源文件,即语言包。为web site项目添加Resource文件夹,然后在Resource文件夹下添加两个resx文件,如:

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

接着分别为这两个文件添加名称/值,如:

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客
 

资源文件第三步,用命令行工具ResGen.exe将这两个resx文件生成同名的resources文件,如zh-CN.resourcesen-US.resources,生成后将这两个resources文件放到Resource目录下,关于ResGen.exe工具的用法,这里偷一下懒,不做介绍,可以去找相关资料。

 

至此,资源文件(语言包)就做好啦,下面就是在项目中的使用了。

 

第一步、写一个静态的GetLang方法,以便服务器端代码使用,然后写一个HtmlHelper扩展方法,以便在前端代码viewjs中使用,如:

Asp.net MVC3多语言应用 - 子言 - 子言的博客
 

方法中获取语言包的路径当然就是前面设置的路径,相信大家明白。

 

第二步、为动态切换语言,要在Global.asax文件中添加Application_AcquireRequestState事件,如:

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

 

第三步、在HomeController中添加ChangeLanguage方法,很简单、就一句代码,如:

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

然后就是View了,改写LogOn,如:

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

 

好了,运行看看:

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客

 

Asp.net MVC3多语言应用 - 子言 - 子言的博客
posted on 2013-03-12 17:38  记性特差  阅读(270)  评论(0编辑  收藏  举报