Asp.net MVC 2 网站轻松实现多语言支持

news/2024/5/13 19:47:37/文章来源:https://blog.csdn.net/weixin_30455067/article/details/96219855

  本文短地址:http://zdd.me/aspnetmultilingual

 

  现在的网站大多数都支持多语言,为不同语言的用户访问网站提供方便。我在前几天用asp.net mvc 2 做了一个网站同时提供了中文和英文的支持,在这里将我的网站的多语言的实现方式与各位网友分享一下,也希望有更好的实现方式的网友能够赐教。

  新建一个asp.net mvc 2 项目,先看一下mvc 2项目的初始结构asp.net mvc 2 项目初始结构

 

  • Views 用于呈现用户界面,通常是aspx和ascx或html文件,这里一般不涉及程序的逻辑处理
  • Scripts 用于存在js脚本文件
  • Models 中包含了程序的核心数据,这里一般包括数据实体,数据验证,数据库访问等
  • Controllers 是 Models 和 Views 之间的数据交互的桥梁,即收集来自Views 处理后交给Models,并将来自 Models 的数据传给 Views 呈现出来。
  • Content 一般用于存放程序中用到的图片和CSS文件

 

在新建的项目中添加一个 Resources 文件夹,这个就是用来存放多语言的资源文件(Resources File)的。为了方便管理资源文件,在 Resources 文件夹中添加上Home、Account、Shared、Models 等子目录,分别存放对应的资源文件。项目建好了,接下来就开始实现多语言支持。

  本文主要演示多语言的实现方式,因此在这里只实现Shared视图中的Site.Master页面的多语言支持。在Resources/Shared文件夹中添加一个资源文件,命名为 Shared.resx ,这个文件里存放网站的默认语言(在这里是简体中文);再添加一个命名为 Shared.en-us.resx 的文件,这个文件使网站实现英语支持。资源文件的命名格式为 <文件名>.<语言名称>.resx 。

添加完资源文件后,首先将资源文件的 Access Modifier 改成 Public 。然后添加下面的字符串。 在Shared.en-us.resx中加入对应的英语。

将 Access Modifier 改成 Public

加入字符串资源

资源文件的默认命名空间是 项目名称.文件夹名称 ,我们将它的命名空间改成 ViewResources

2010042409283949.png

现在我们就可以在页面中使用资源文件中的内容了,下面就将Site.Master中的字符改为使用资源文件中的字符,使用方式如下图所示:

2010042409350140.png

按 Ctrl + F5 运行程序,可以看到Site.Master中的字符已经改成中文了。接着实现中文和英文之间的切换:

在 Global.asax.cs 文件中加入下面方法

protected void Application_AcquireRequestState(object sender, EventArgs e){if (HttpContext.Current.Session != null){CultureInfo cultureInfo = (CultureInfo)this.Session["Culture"];// 判断Session中是否有值,没有就设置默认值if (cultureInfo == null){string langName = "zh-cn";if (HttpContext.Current.Request.UserLanguages != null && HttpContext.Current.Request.UserLanguages.Length != 0){langName = HttpContext.Current.Request.UserLanguages[0];}cultureInfo = new CultureInfo(langName);this.Session["Culture"] = cultureInfo;}System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);}}
这个方法在用户访问每个页面时判断用户要使用的语言。我们在 HomeController 中加入修改语言的方法: 
/// <summary>
/// 修改语言
/// </summary>
/// <param name="lang">参数 lang 为用户要使用的语言</param>
/// <param name="returnUrl">参数 returnUrl 用户点击修改语言时停留的页面</param>
/// <returns></returns>
public ActionResult ChangeCulture(string lang, string returnUrl)
{Session["Culture"] = new CultureInfo(lang);return Redirect(returnUrl);
}

然后在 LogOnUserControl.ascx 中加入修改语言的连接:

2010042410051474.png 

至此多语言切换我们已经完全实现了,按 Ctrl + F5 运行程序,就可以中英文之间切换了。

本示例只实现了中文和英文之间的切换,如果想再增加语言只需要增加资源文件即可轻松实现。

 示例程序下载MvcMultilingual.zip

 

 

转载于:https://www.cnblogs.com/forgetu/archive/2010/04/24/aspnet-mvc-multilingual-support.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_766082.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怪异而美丽的网站

怪异而美丽的网站 记录跳闸 记录跳闸是一个漂亮的贝尔兄弟的实验品。 邀请您来解决刮伤用鼠标的滚动轮记录的一系列难题。 聪明的游戏和一个可爱的界面&#xff0c;使这个有趣的在线Flash游戏&#xff0c;因为它是怪异。 声汉堡 这里是最有创造力的和非常规的闪光&#xff0c;我…

Windows安装node环境,部署静态网站

1、进入官网&#xff0c;下载nodejs https://nodejs.org/zh-cn/ 2、安装nodejs win10怎么安装nodejs和npm https://jingyan.baidu.com/article/d169e1860e6d8c436611d89a.html 3、查看版本信息 C:\Users\admin>node -v v12.2.0 4、部署静态网页 在当前页面打开命令行&#x…

创建自定义主机头的网站集

当我们在一个SharePoint Web应用程序中创建新网站集时&#xff0c;虽然我们可以指定网站集的路径&#xff0c;但是网站集的主机头&#xff0c;似乎必须使用Web应用程序所定义的主机头。比如&#xff0c;当在“http://sp2010”这个Web应用程序中创建一个新网站集时&#xff0c;网…

使用django建站系列之登录页面(一)

先秀一下我的登录页&#xff1a; 废话没有&#xff0c;直接上操作步骤。 1&#xff09;建立工程 #django-admin.py startproject MyWeb 2)建立应用 #cd MyWeb/ #django-admin.py startapp app51cto 3)修改settings.py添加app vim MyWeb/settings.py INSTALLED_APPS ( django.c…

WordPress网站制作静态化插件:Cos-Html-Cache介绍

现在很多做网站的新手朋友、甚至网站建设公司都会采用现成的网站管理系统来建站&#xff0c;国内的PageAdmin、Discuz、Ecshop等网站管理系统都已经很成熟&#xff0c;大量的被用于网站建设中&#xff0c;之前小熊优化的小编分别介绍了这些网站管理系统&#xff0c;并且几乎都默…

网站经验谈:网站被降权怎么办 如何恢复权重

虽然百度一再强调百度本身并没有权重一说&#xff0c;但是对于各位站长朋友来说&#xff0c;权重还是衡量一个网站的重要指标之一。一个网站的权重高&#xff0c;代表流量高&#xff0c;收录好&#xff0c;关键词排名也相对较好。那么&#xff0c;这么重要的指标&#xff0c;一…

如何判断一个网站是否被墙

http://www.cnblogs.com/wangkangluo1/archive/2012/04/15/2447921.html 大家都知道GFW 平日作恶多端&#xff0c;一旦有网站不能访问&#xff0c;很多人都把矛头直指它了…. 虽然一般都是它干的&#xff0c;但实际上也不排除一些人别有用心…. 那么下面就来简单判断一下吧… 方…

学用MVC4做网站五:5.2我的文章

文章管理这一块&#xff0c;按照左侧导航这一块向下写 到了“我的文章”这一块。 先还是打开【ArticleController】&#xff0c;添加public ActionResult UserOwn(int id 0, int page 1) 这里的id是指栏目id&#xff0c;可以显示自己发布的指定栏目的文章&#xff0c;默认为0…

企业网站优化切忌心浮气躁

为什么80%的码农都做不了架构师&#xff1f;>>> 互联网时代&#xff0c;大部分的企业都有自己的网站&#xff0c;随着网站管理员的更新换代&#xff0c;企业网站的优化成了遗留问题。很多企业网站域名年龄都有几年以上了&#xff0c;但是从seo的角度来说还是那么烂…

网站用户分析知识总结

本文是《数据蛙三个月强化课》的第七篇总结教程&#xff0c;如果想要了解数据蛙社群&#xff0c;可以阅读给DataFrog社群同学的学习建议。温馨提示&#xff1a;如果您已经熟悉网站用户分析知识,大可不必再看这篇文章&#xff0c;或是只挑选部分文章 一&#xff1a;用户分析概…

浙大海洋法律与治理研究中心网站

近日&#xff0c;为浙江大学海洋法律与治理研究中心开发官方网站正式上线。2012年8月21日&#xff0c;浙江大学海洋法律与治理研究中心成立。中心将汇聚浙江大学跨学科优势资源&#xff0c;适应国家战略需求和促进海洋法制保障&#xff0c;致力打造一支国内顶尖、结构合理的海洋…

curl网站开发指南

转载 http://www.ruanyifeng.com/blog/2011/09/curl.html 我一向以为&#xff0c;curl只是一个编程用的函数库。最近才发现&#xff0c;这个命令本身&#xff0c;就是一个无比有用的网站开发工具&#xff0c;请看我整理的它的用法。curl网站开发指南阮一峰 整理curl是一种命令行…

ASP.NET MVC5 网站开发实践(二) Member区域 - 修改及删除文章

上次做了显示文章列表&#xff0c;再实现修改和删除文章这部分内容就结束了&#xff0c;这次内容比较简单&#xff0c;由于做过了添加文章&#xff0c;修改文章非常类似&#xff0c;就是多了一个TryUpdateModel部分更新模型数据。 目录&#xff1a; ASP.NET MVC5 网站开发实践 …

ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除

本来想接着上次把这篇写完的&#xff0c;没想到后来工作的一些事落下了&#xff0c;放假了赶紧补上。 目录&#xff1a; ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP.NET MVC5 网站开发实践(一) - 框架&#xff08;续&#xff09; 模型、数…

网站创建自定义百度地图

第一步&#xff1a;百度搜索“创建地图-百度地图生成器”或者直接点击链接&#xff1a;http://api.map.baidu.com/lbsapi/creatmap/&#xff0c;打开页面 如下图所示&#xff1a; 第二步&#xff1a;输入你要查找的地址名称&#xff0c;点击查找&#xff0c;如下图所示&#xf…

【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...

【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo 原文:【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo开篇先给大家讲段历史故事&#xff0…

记录支付宝SDK网站支付的对接

说明&#xff1a;此方法仅用SDK的对接 没有使用官方提供的demo 官方SDK的下载地址&#xff1a;https://github.com/alipay/alipay-sdk-php-all 使用框架&#xff1a;thinkphp5.0.24 将支付宝sdk放入框架extend(第三方扩展库)\alipay文件中&#xff1b; 对接SDK的三步曲&#xf…

今天我发现了一个网站有很多的html5手机wap网站模板,在这里分享一下

手机wap静态网页模版仿中国新闻网微官网山东红十字会医院3g手机版网站模版html制作***3G静态wap网站模版html仿南通和美家***网站静态模版参考3g手机网站模版仿广州曙光***3g手机网页模版仿北京航空466医院手机WAP站点3G wap妇科医院网站模板仿北京艾丽斯妇科医院3G手机静态模版…

songtaste网站歌曲真实URL获取

个人挺喜欢songtaste网站的歌曲的&#xff0c;下载方法也层出不穷&#xff0c;可是作为程序员如果不知其中原理的方法真是羞愧。首先简单点的方法当然有google插件这样的嗅探器了&#xff0c;不过这种工具的原理还不是很了解。今天先总结一下songtaste网站部分歌曲的真实下载链…

单页面应用SEO 和 pushstate

2019独角兽企业重金招聘Python工程师标准>>> ----------------引子----------------- 单页应用的优点 跨平台开发&#xff0c;更好的用户体验&#xff0c;让用户在web感受natvie的速度和流畅&#xff1b;经典MVC开发模式&#xff0c;前后端各负其责。一套Server API…