All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
delphi类运算符is和as的使用实例
Visual C++ 6.0教程:函数重载概述
[delphi语法4]delphi中if语句的使用实例
asp.net2.0中关于ASP.NET,网站管理工具无法连接sql,server,数据库的处理_[Asp.Net教程]
在ASP.NET中为GridView添加删除提示框_[Asp.Net教程]
菜鸟到高手:SQL开发进阶常用精妙语句_[SQL,Server教程]
随机显示数据库记录_[Asp.Net教程]
系统安全之SA弱口令带来的安全隐患_[SQL Server教程]
C#,3.0新特征之创建和初始化集合对象_[Asp.Net教程]
抓取网页中的链接_[Asp.Net教程]
Reading number is top 10 pictures
Average female college students3
非常漂亮的泳装美女
看看什么叫美景
Hunan road lawenforcement vehicle pursue overload car caused the car turn and man is died
Sora aoi on twitter5
Absolutely shocked. National geographic 50 animal photographys5
A man's favorite things1
The money of more than 100 countries and regions3
Chinese paper-cut grilles art appreciation2
住院一星期,检测费两万
Download software ranking
Tram sex maniac 2 (H) rar bag2
Ashlynn Video1
SP3 for SQL2000
The hero
Boxer Classic video1
Unix video tutorial1
WebService在.NET中的实战应用教学视频 → 第3集
Tram sex maniac 2 (H) rar bag1
Ashlynn Video2
I for your crazy
归海一刀 published in(发表于) 2014/1/30 0:58:50 Edit(编辑)
ASP.NET中多国语言的实现_[Asp.Net教程]

ASP.NET中多国语言的实现_[Asp.Net教程]

ASP.NET中多国语言的实现_[Asp.Net教程]

现在的程序越来越要考虑国际化了,对于网站的开发也经常要考虑国际化的问题。
常见的国际化的需求主要就是两个方面:
1、不同的国家页面布局不同
2、不同的国家要显示当国的文字
在ASP.NET2.0中实现这两种需求的方法很多,我今天就总结其中一种方法的具体实现。


对应需求1我们可以使用母版页来实现,对于需求2可以使用资源文件的方式来实现。
在母版页中定义好页面布局和各种语言的转换链接,每种语言定义一个母版页,比如中文就叫Chinese.master,英文就叫English.master
Chinese.master 示例
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Chinese.master.cs" Inherits="Front_ChineseMasterPage" %>





首页



中文
English
日本語

















bbbbb







ccccc











其他语言的母版页也是类似


然后可以在每个aspx的Page_PreInit事件中调用共通的方法来进行语言的动态转换
protected void Page_PreInit(object sender, EventArgs e)
{
Util.ChangeLanguage(Request, this);
}
public static void ChangeLanguage(HttpRequest Request, Page page)
{
string strLanguage = Request.QueryString.Get("language");
if (strLanguage != null)
{
page.Session[Util.SESSION_LANGUAGE] = strLanguage;
}
strLanguage = page.Session[Util.SESSION_LANGUAGE] as string;
string strMasterPage = "~/Front/MasterPage/" + strLanguage + ".master";
page.MasterPageFile = strMasterPage;


string strUICulture = "";
switch (strLanguage)
{
case "English":
strUICulture = "en-us";
break;
case "Japanese":
strUICulture = "ja";
break;
}
page.UICulture = strUICulture;
}主要就是在ChangeLanguage方法中首先改变页面的母版页,然后再改变页面的区域


然后可以在Global.asax全局的Session_Start事件中设置初始语言:
void Session_Start(object sender, EventArgs e)
{
Session[Util.SESSION_LANGUAGE] = "Chinese";
}我这个例子中是直接设置初始为中文语言,当然也可以根据客户端的环境来动态设置的:
void Session_Start(object sender, EventArgs e)
{
switch (Session.LCID)
{
case 0x0009:
Session[Util.SESSION_LANGUAGE] = "English";
break;
case 0x0011:
Session[Util.SESSION_LANGUAGE] = "Japanese";
break;
default:
Session[Util.SESSION_LANGUAGE] = "Chinese";
break;
}
//Session[Util.SESSION_LANGUAGE] = "Chinese";
}
通过以上步骤我们已经可以动态改变页面布局(母版页)和页面的区域了。


下面新建三个全局的资源文件:Resource.resx,Resource.en-us.resx,Resource.ja.resx
在三个资源文件中都加入TestString这个键值,value值写上不同的语言
然后我们就可以在自己的Page页面中使用这个资源文件了:
<%@ Page Language="C#" MasterPageFile="~/Front/MasterPage/Chinese.master" AutoEventWireup="true"
CodeFile="index.aspx.cs" Inherits="index" %>







也就是说以后出现文字或和区域有关的图片的时候都要在不同的资源文件中定义好,然后在页面中使用<% Resources:Resource,TestString %>的方式取值


虽然麻烦了一点,但还是比较方便的,有此需求的可以参考一下,如果有更好的实现方案也欢迎讨论。

来源:http://www.cnblogs.com/firstyi







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.