net2.0+xml实现多语言开发333
来源:互联网 发布:数据质量评估维度 编辑:程序博客网 时间:2024/06/05 23:47
method :
1.Index.aspx
<form id="form1" runat="server">
<div>
<asp:Label ID="lanuage" runat="server">Label</asp:Label>
<asp:DropDownList ID="drp_language" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drp_language_SelectedIndexChanged"
Width="152px">
</asp:DropDownList>
<asp:Button ID="btnLogon" runat="server" Text="Button" OnClick="btnLogon_Click" /></div>
</form>
2.index.aspx.cs
public partial class index : System.Web.UI.Page
{
public static string strName;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
init();
}
}
private void init()
{
drp_language.DataSource = TangramMiniWeb.ResourceManager.GetSupportedLanguages();
drp_language.DataTextField = "name";
drp_language.DataValueField = "key";
drp_language.DataBind();
if (drp_language.Items.Count > 0)
{
strName = drp_language.SelectedValue;
ShowText(drp_language.Items[0].Value);
}
}
private void ShowText(string userlanguage)
{
btnLogon.Text = TangramMiniWeb.ResourceManager.GetString("GO", userlanguage);
//strName = btnLogon.Text = MultLanuage.ResourceManager.GetString("btnLogon", userlanguage);
lanuage.Text = TangramMiniWeb.ResourceManager.GetString("lanuage", userlanguage);
}
protected void drp_language_SelectedIndexChanged(object sender, EventArgs e)
{
ShowText(drp_language.SelectedValue);
strName = drp_language.SelectedValue;
}
protected void btnLogon_Click(object sender, EventArgs e)
{
Session["selectvalue"] = drp_language.SelectedValue.ToString();
Response.Redirect("tan/Default.aspx");
}
}
3.基类的代码 ResourceManager.cs
public class ResourceManager
{
public ResourceManager()
{
//
}
public static string GetString(string name,string userLanguages)
{
//通过指定属性名返回包含此属性名相关信息的hash表
Hashtable source=LoadSorce(userLanguages);
if (source != null)
{
//不为空就返回其值
return source[name].ToString();
}
else
{
//为空
return "";
}
}
//获取语言目录数据,返回一个数据视图
public static DataView GetSupportedLanguages()
{
string cacheKey = "Languages";
//判断当前数据缓存中是否为空
if(HttpContext.Current.Cache[cacheKey]==null)
{
//获取xml文件存放的物理路径
string PathFile=System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath+"/Languages/languages.xml");
DataSet objDataSet=new DataSet();
//
objDataSet.ReadXml(PathFile);
CacheDependency dp = new CacheDependency(PathFile);
HttpContext.Current.Cache.Insert(cacheKey,objDataSet.Tables[0].DefaultView,dp,DateTime.MaxValue, TimeSpan.Zero);
}
return (DataView)HttpContext.Current.Cache[cacheKey];
}
//获取语言语句字典
public static Hashtable LoadSorce(string userLanguages)
{
//获取xml文件存放的物理路径
string PathFile=System.Web.HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath+"/Languages/"+userLanguages+"/Resources.xml");
//建一个XML DOCUMENT的实例对象
System.Xml.XmlDocument LagXml=new XmlDocument();
//导入要操作的XML文件
LagXml.Load(PathFile);
//
Hashtable supportedLanguages;
//建立HASHTABLE的对象实例
supportedLanguages = new Hashtable();
//遍历XML文件中的所有子节点
foreach (XmlNode n in LagXml.SelectSingleNode("root").ChildNodes)
{
if (n.NodeType != XmlNodeType.Comment)
{
//把子节点的键/值对添加到hashtable中
supportedLanguages.Add(n.Attributes["name"].Value,n.InnerText);
}
}
//返回hashtable
return supportedLanguages;
}
}
4.配制web.config
<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<xhtmlConformance mode="Legacy"/>
5.global.asax
global.asax.cs
global.asax.resx
6.建立资源文件
建个文件夹为Languages
再建三个数据文件 en-us resourcesEN-US.xml
zh-cn resourcesZH-CN.xml
zh-tw resourcesZH-TW.xml
(share xml files) Language.xml
这个小测试是成功的。
我现在要把全站都用中文和英文业显示,那方法为
就拿一个about.aspx这个网页来说吧,我说我的个人方法
先作完about.aspx的中文页面,然后调用我那个语言的基类,再写这个about.aspx的XML的2种语言的XML的文件吗。
最后每一个页面都要这样完成.
yaqi
- net2.0+xml实现多语言开发333
- asp.net2.0+xml实现多语言开发!
- 利用.net2.0的资源文件实现多语言开发!
- net2.0的资源文件实现多语言开发! 2222
- 利用.net2.0的资源文件实现多语言开发!
- net2.0多语言网页的实现
- net2.0多语言网页的实现
- ASP。NET2.0网站实现多语言方法
- asp.net2.0实现语言切换
- ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)
- asp.net2.0多语言版本转换
- asp.net2.0多语言版本网站软件的实现--青蛙非王子(lostfrog)
- 在ASP.NET2.0中实现多语言解决方案的完整细节
- 在ASP.Net2.0中实现多语言界面的方法
- NET2.0 Remoting 开发
- 用VS2005实现ASP.NET2.0移动开发(3)
- 用VS2005实现ASP.NET2.0移动开发(2)
- 用VS2005实现ASP.NET2.0移动开发(1)
- IT面试场上的常见问题
- Response.Redirect 打开新窗口的两种方法
- DLL 添加MFC 支持
- 国庆作业
- 女生告诉男生怎么样泡妹妹——《追MM秘籍》
- net2.0+xml实现多语言开发333
- 修改mysql的表结构
- 很久注册的,现在才来开通博客
- 使用@IDENTITY
- IBM WebSphere Application Server 诊断和调优
- QT4 designer生成的头文件的优化
- 马克吐温教你写博客
- 35岁以前把下面十件事做好
- 数据结构学习笔记--迷宫