net2.0+xml实现多语言开发333

原创 2007年10月06日 20:28:00

 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

                                                                                                                                     

 

 

iOS多语言功能开发小结

当前xcode版本7.2 手机端 iOS 9.3        我们的项目已经非常庞大了,也上线了,老板突然说要加一个多语言功能,在他眼里程序员就是个魔术师,点一个按钮然后项目所有的中文字就变成...
  • qq_30513483
  • qq_30513483
  • 2016年04月08日 17:33
  • 482

网站设计--多语言网站实现方案

多语言网站实现方案   1,静态:就是为每种语言分别准备一套页面文件,要么通过文件后缀名来区分不同语言,要么通过子目录来区分不同语言。   例如对于首页文件index_en.htm提供英语界面,i...
  • cengjingcanghai123
  • cengjingcanghai123
  • 2014年05月23日 10:45
  • 1800

Android的多语言实现

以前就知道Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源什么的,但是一直没有实际使用过。 最近公司的项目要用到多语言于,是就研究了一下——果然很简单啊。 要使用多语言,首先肯...
  • barryhappy
  • barryhappy
  • 2014年04月11日 12:37
  • 19140

干净搞定delphi多语言-兼论设计模式

        随着全球化程度加深,软件越来越像蒲公英,到处飘散、扎根。这其中要解决的是不同语言的显示问题。我们当然希望一套程序,可以不修改代码就可以支持不同的语言,不要去维护很多的版本。      ...
  • acrodelphi
  • acrodelphi
  • 2005年01月11日 10:38
  • 8344

ASP.NET MVC:多语言的三种技术处理策略

背景 本文介绍了多语言的三种技术处理策略,每种策略对应一种场景,这三种场景是: 多语言资源信息只被.NET使用。 多语言资源信息只被Javascript使用。 多语言资源信息同时被....
  • dyllove98
  • dyllove98
  • 2013年08月01日 20:24
  • 1751

关于软件开发中的多语言问题

当进入一个IT行业之后,发现我们开发的软件远比学校的东西要多。软件中的内容也变得越来越庞大,我们也不能再以抱着写HelloWorld的心态去写代码。毕竟那些只是很小的一个测试而已。而工程庞大,甚至要发...
  • u014582865
  • u014582865
  • 2016年03月29日 20:22
  • 545

TP多语言

一、行为扩展 多语言:同样的内容,由于在不同的地区我们显示不同的翻译结果 总结一下:ThinpPHP给我们提供了哪些扩展 1,给我们封装好的功能类:Image.class.php   Uploa...
  • whjwhja6
  • whjwhja6
  • 2013年05月31日 22:58
  • 1300

ASP.NET MVC 多语言方案

前言: 好多年没写文章了,工作很忙,天天加班, 每天都相信不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动~~~~ 直到后来发生了邮箱事件,我竟然...
  • binyao02123202
  • binyao02123202
  • 2014年01月15日 16:12
  • 4751

使用VB6资源文件开发多国语言应用攻略

使用VB6资源文件开发多国语言应用
  • fulcrumtech
  • fulcrumtech
  • 2016年06月17日 12:12
  • 651

VB程序多国语言的实现

国际化的发展对软件的多国语言也提出了要求,今天要对公司的一个软件做英文界面。 老大给我说了简单的实现方式:读写文件。 功能要求: 1在设置界面上有语言选项,选择相应的选项时,界面上所有的显示及可能显示...
  • ss00_2012
  • ss00_2012
  • 2013年11月19日 17:15
  • 1276
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:net2.0+xml实现多语言开发333
举报原因:
原因补充:

(最多只允许输入30个字)