您的位置:首页 > 编程语言 > ASP

转:ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发

2017-04-06 09:34 537 查看

说说传统做法的缺点

1、做过多语言的都知道这玩意儿太花时间

2、多语言架构一般使用资源文件、XML或者存储数据库来实现。这样就在一定程序上降低了性能

3、页面的可读性变差,需要和资源文件进行来回切换

4、修改麻烦

5、样式兼容难调

6、JS如何处理

另类做法

传统做法看上去高大上实质上维护起来确实很费力,所以有一部分人就采用了另类做法直接做二套页面。总体来说上面一种和下面一种可以说半斤八两。

上面一种显的有点档次,但维护成本并不低,页面可读性差,样式兼容难调,唯一优点是页面代码逻辑只有一套,只在这一点上占了优势。

另类做法升级版

为了快速开发和易维护性我对另类方法进行了2点升级

1、重写MVC默认视图引擎

在Gobal Application_Start中添加自定义视图引擎,只看红圈内容



return view时会根据Cookie里面的语言后缀找到相应的cshtml文件,BestViewEngine具体内容如下:

  

2、添加扩展函数让一个js支持多种语言的cshtml (例如:index.js 可以用在 index.cshtml和index_en.cshtml)

  

cshtml中如何使用这个扩展函数(如下图)



JS里面调用PageLanguage属性



目录结构如下,当用户访问 /Role/index ,我们COOKIE里面存的是 en 那么 return view 本来找到的是 index.cshtml 经过我们的重写就会找到

index_en.cshtml



如果要添加更多语言我们只要添加相应的cshtml和cookie,JS和后台代码全部一致

回顾一下代码:

index_en.cshtml



index.cshtml



统一的JS(只看红圈部分便可)



是不是比资源文件好维护呢?性能也是最高不是吗?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: