asp.net全球化——让你的网站在中英文中自由切换
2013-12-12 14:56
435 查看
由于最近的一笔单子,为客户做的是代理签证、办理移民的网站,需要用到中英文切换,把我这个从未涉及过这一领域的人儿给小小的吓住了。不过吓归吓,还是要着手做的嘛。
中文的、英文的、百度上、谷歌上,到处搜这方面的资料,终于有点明白这属于全球化。
先是研究在web.config里加上
接下来在研究如何通过代码修改这个值的时候,这条路没走得下去。
不死心,接着研究通过App_GlobalResources的方式,添加中英文的资源文件。终于算是走对一半了,可是最后遇到的问题是,用以下这样的代码要么只显示中文,要么只显示英文,把我给气得。
查看当前页面的culture值是什么,又是我想要的那个,为什么就是不变呢。
可是如果我在头部加上以下的代码的时候,改中文是中文,改英文是英方,我就奇了怪了,问题出在哪里了。
其实也是要感谢两篇文章
一是/article/10186587.html
二是http://msdn.microsoft.com/zh-cn/library/bz9tc508(v=vs.80).aspx
其实前几天就看过第二篇文章,没有在意,今天再回看,突然明白了。
受这段代码的启发,我最后是这样成功滴。
先在项目中添加这个文件夹,同时创建两个资源文件,一个中文,一个英文。
以下是两个资源文件的内容 :
我在要用的时候是这样滴
在app_code里增加一个basepage文件,如下所示:
最后,在每一个需要引用的页里修改
本来引用的system.web.ui,page,现在改成引用basepage.
页面上,想怎么换就怎么换啦。
Master页里增加:
页面效果看一看:
要中文是中文,要英文是英文,是不是一下子心情爽朗了许多呢!
中文的、英文的、百度上、谷歌上,到处搜这方面的资料,终于有点明白这属于全球化。
先是研究在web.config里加上
<system.web> <globalization Culture="en-us" UICulture="en-us" /> </system.web>
接下来在研究如何通过代码修改这个值的时候,这条路没走得下去。
不死心,接着研究通过App_GlobalResources的方式,添加中英文的资源文件。终于算是走对一半了,可是最后遇到的问题是,用以下这样的代码要么只显示中文,要么只显示英文,把我给气得。
Text="<% $ Resources:Resource, UserName %>"
查看当前页面的culture值是什么,又是我想要的那个,为什么就是不变呢。
可是如果我在头部加上以下的代码的时候,改中文是中文,改英文是英方,我就奇了怪了,问题出在哪里了。
<%@ Page Culture="en-us" UICulture="en-us" %>
其实也是要感谢两篇文章
一是/article/10186587.html
二是http://msdn.microsoft.com/zh-cn/library/bz9tc508(v=vs.80).aspx
其实前几天就看过第二篇文章,没有在意,今天再回看,突然明白了。
<%@ Page Language="VB" uiculture="auto" %> <%@ Import Namespace="System.Threading" %> <%@ Import Namespace="System.Globalization" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server"> Protected Overrides Sub InitializeCulture() If Request.Form("ListBox1") IsNot Nothing Then Dim selectedLanguage As String = _ Request.Form("ListBox1") UICulture = Request.Form("ListBox1") Culture = Request.Form("ListBox1") Thread.CurrentThread.CurrentCulture = _ CultureInfo.CreateSpecificCulture(selectedLanguage) Thread.CurrentThread.CurrentUICulture = New _ CultureInfo(selectedLanguage) End If MyBase.InitializeCulture() End Sub </script> <html> <body> <form id="form1" runat="server"> <div> <asp:ListBox ID="ListBox1" runat="server"> <asp:ListItem Value="en-US" Selected="True">English</asp:ListItem> <asp:ListItem Value="es-MX">Español</asp:ListItem> <asp:ListItem Value="de-DE">Deutsch</asp:ListItem> </asp:ListBox><br /> <asp:Button ID="Button1" runat="server" Text="Set Language" meta:resourcekey="Button1" /> <br /> <asp:Label ID="Label1" runat="server" Text="" meta:resourcekey="Label1" /> </div> </form> </body> </html>
受这段代码的启发,我最后是这样成功滴。
先在项目中添加这个文件夹,同时创建两个资源文件,一个中文,一个英文。
以下是两个资源文件的内容 :
我在要用的时候是这样滴
<asp:Literal ID="Literal14"Text="<% $ Resources:Resource, UserName %>"runat="server"></asp:Literal>
在app_code里增加一个basepage文件,如下所示:
最后,在每一个需要引用的页里修改
本来引用的system.web.ui,page,现在改成引用basepage.
页面上,想怎么换就怎么换啦。
Master页里增加:
<a href="?currentculture=zh-cn">中文(中国)</a> <a href="?currentculture=en-us">English(USA)</a>
页面效果看一看:
要中文是中文,要英文是英文,是不是一下子心情爽朗了许多呢!
相关文章推荐
- asp.net mvc 用自定义的RazorViewEngine实现主题的自由切换遇到的问题!
- 不使用FLASH,怎样用用ASP.net在网站上实现图片切换?
- asp.net MVC 切换网站主题
- 自己写的asp.net网站在URL传值过程中隐藏真正值的方法
- ASP.NET MVC: 修改ViewLocator来动态切换模板
- ASP.NET网站限制访问频率
- visual studio 2012打开提示 未能将网站×××配置为使用 ASP.NET 4.5 和 尚未在Web服务器上注册,您需要手动将Web服务器配置为使用ASP.NET 4.5,问题解决
- ASP.NET 2.0网站专案同时使C#与VB.NET之技巧(新书连载)
- 由“ASP.NET网站限制访问频率”想到的两点问题(转)
- asp.net网站下载功能页面代码
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
- 通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行(转)
- 做完一个小网站的一点经验总结(2):asp.netaccess程序运行环境的配置
- 为 Asp.net 网站新增发送手机短信功能
- ASP.NET MVC实现网站验证码功能(上)
- Asp.Net 网站优化 数据库优化措施 使用主从库(下)
- [转]基于微软平台IIS/ASP.NET开发的大型网站有哪些?
- asp.net 防止图片被其它网站盗链
- 做完一个小网站的一点经验总结(2):asp.netaccess程序运行环境的配置
- 解决IIS部署asp/asp.net网站无法浏览并出现w3wp.exe调试问题