支持中英文多语言浏览的MVC网站实例
2013-02-20 14:32
447 查看
思路大概是这样的,将翻译成不同语言的词句以xml键值对的格式分别存在不同文件夹下,扩展MVC HtmlHelper, 在扩展方法里根据用户当前访问Action所在的路径以及当前所选的语言类型读取语言文件夹下的xml文件,再通过HtmlHelper传过来的key获取对应的value。若找不到,则将key自动添加到相应的文件里面。切换语言时将所选的语言类型保存在Session,再Redirect。
写一个静态类LangHelper,用以操作语言文件。本例中,将中文、英文语言文件分别保存在网站根目录下Resources下的zh-cn和en文件夹里面,文件类型为res。为防止每次访问都去读取操作那些语言文件,我声明一个Dictionary静态变量,用来保存访问过的语言文件里的key\value,在下次(别的用户)访问时先从已保存在服务器内存的静态字典中读取。这样就加快了访问速度。
View Code
在View中的使用如: Html.String("Username"),在common.res语言文件里面就会添加一条 <add key="Username" value="Username" />记录,将zh-cn文件夹下的common.res里这条记录的value改为"用户名",则当用户在中英文之间切换时就会按不同语言显示。
效果图一:
效果图二:
不知有没有更好的方法,欢迎指教!
写一个静态类LangHelper,用以操作语言文件。本例中,将中文、英文语言文件分别保存在网站根目录下Resources下的zh-cn和en文件夹里面,文件类型为res。为防止每次访问都去读取操作那些语言文件,我声明一个Dictionary静态变量,用来保存访问过的语言文件里的key\value,在下次(别的用户)访问时先从已保存在服务器内存的静态字典中读取。这样就加快了访问速度。
View Code
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Web; using System.Web.Mvc; using System.Xml.Linq; namespace Utility { public static class Extensions { /// <summary> /// 在Mvc View中调用 /// </summary> /// <param name="htmlHelper"></param> /// <param name="key"></param> /// <returns></returns> public static string String(this HtmlHelper htmlHelper, string key) { return htmlHelper.Encode(GetLangString(key)); } /// <summary> /// 在C#代码中使用 /// </summary> /// <param name="key"></param> /// <returns></returns> public static string LangString(string key) { return GetLangString(key); } private static string GetLangString(string key) { string langType = GlobalizeUtil.GetCurrentLanguage(); return LangHelper.GetLangString(key, langType); } } }
在View中的使用如: Html.String("Username"),在common.res语言文件里面就会添加一条 <add key="Username" value="Username" />记录,将zh-cn文件夹下的common.res里这条记录的value改为"用户名",则当用户在中英文之间切换时就会按不同语言显示。
效果图一:
效果图二:
不知有没有更好的方法,欢迎指教!
相关文章推荐
- 转载-支持中英文多语言浏览的MVC网站实例
- "开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo"项目分析
- 这可能是目前最方便的网站中英文切换(理论支持所有语言)
- Asp.net MVC 2 网站轻松实现多语言支持
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
- PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- .net实例:网站发布后,在IIS中浏览提示:无法找到该页...404错误。
- dedecms织梦做中英文(多语言)网站详解
- 使用Cookies保存网站历史浏览记录实例
- php实例之简单的网站浏览统计
- 利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理
- 使用Cookies保存网站历史浏览记录实例代码
- 网站设计之asp.net网站多语言版本[实例下载]
- 如果网页内容需要支持多语言,你会怎么做?在设计和开发多语言网站时,有哪些问题你必须要考虑?
- 在ASP.NET MVC中通过URL路由实现对多语言的支持
- Go语言练习:网络编程实例——简易图片上传网站
- MVC:如何设计多语言支持