转载-支持中英文多语言浏览的MVC网站实例
2013-02-20 21:20
288 查看
思路大概是这样的,将翻译成不同语言的词句以xml键值对的格式分别存在不同文件夹下,扩展MVC HtmlHelper, 在扩展方法里根据用户当前访问Action所在的路径以及当前所选的语言类型读取语言文件夹下的xml文件,再通过HtmlHelper传过来的key获取对应的value。若找不到,则将key自动添加到相应的文件里面。切换语言时将所选的语言类型保存在Session,再Redirect。
写一个静态类LangHelper,用以操作语言文件。本例中,将中文、英文语言文件分别保存在网站根目录下Resources下的zh-cn和en文件夹里面,文件类型为res。为防止每次访问都去读取操作那些语言文件,我声明一个Dictionary静态变量,用来保存访问过的语言文件里的key\value,在下次(别的用户)访问时先从已保存在服务器内存的静态字典中读取。这样就加快了访问速度。
View Code
View Code
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
View Code
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"项目分析
- 开源框架完美组合之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
- thinkphp框架之关于网站语言包的设置和使用(多语言支持)
- 配置SharePoint 2007网站支持多语言
- 重写代码生成器支持模板(多层架构,MVC),多语言c#,java;支持mysql和sqlserver,动态编译
- 怎么用wordpress建中英文双语及多语言切换的网站
- 让asp.net网站支持多语言,使用资源文件
- 海洋工作室——网站建设专家:让 MVC 支持 CuteEditor Using CuteEditor under MVC
- PHP实例——字符串分割(完美支持中英文,兼容mb_substr)
- 简约大气的AnyCodeX在线编程网站全新升级啦!支持九种语言,多文件,标准输入,命令行参数,代码下载。还有语法高亮,语法纠错,代码块折叠以及全屏模式哦!
- MVC:如何设计多语言支持
- ASP.NET MVC多语言 仿微软网站效果
- 转载:ASP.NET MVC扩展自定义视图引擎支持多模板&动态换肤skins机制
- 【转载】利用压缩网页来提升网站浏览速度
- dedecms织梦做中英文(多语言)网站步骤详解