zoukankan      html  css  js  c++  java
  • 一个网站站点的多语言问题

    在做网站时能常会遇到需要把网站做成多种语言,asp.net2.0提供了良好的处理方式,但发现会有些问题,如果是大型社区并发请求的效率就比较明显了,所以如果用cache或泛型来处理,会快些,把这些资源包进行散列存储
    现在介绍一种并发不算高的处理方式:
    先建一个.txt文件(cn.txt)注意要存成utf-8的格式,要不然会乱码
    在里面输入内容:
    _name=姓名
    _list =显示
    然后,选择开发菜单下面的vs2005>工具下面的>命令提示符
    C:\Program Files\Microsoft Visual Studio 8\VC\>resgen E:\多种资源文件\Resource\cn.txt
    成功后会自动生成一个cn.resources的资源文件。
    新建建一个类,代码如下
    using System;
    using System.Resources;
    using System.Globalization;

    namespace 多种资源文件
    {
        /// <summary>
        /// Class1 的摘要说明。
        /// </summary>
        class ResourceClass
        {
            /// <summary>界面资源对象</summary>
            public ResourceManager  myResManager;

            /// <summary>界面区域对象对象</summary>
            protected CultureInfo myCulture;

           protected string strPath = @"E:\开源项目\多语言\多种资源文件\Resource";  //这里要修改成自己的实际路径

            private string _strLangString = "zh-CN";
            public string LangString
            {
                get { return _strLangString; }
                set { _strLangString = value; }
            }
           string languageFle = "en";
            public ResourceClass()
            {       
               
           
            }
           private  void GetCulture()
           {
               if (myResManager == null || myCulture == null)
               {

                   switch (_strLangString.ToLower())
                   {
                       case "zh-tw":
                           break;
                       case "zh-cn":
                           languageFle = "cn";
                           break;
                       case "en":
                           languageFle = "en";
                           break;
                   }
                   // 建立資源管理器实例
                   this.myResManager = ResourceManager.CreateFileBasedResourceManager(languageFle, this.strPath, null);
                   // 建立区域实例
                   this.myCulture = new CultureInfo(this._strLangString);
               }
           }
            public string GetResource(string strKey)
            {
               GetCulture();
                string strValue = "";
                strValue = myResManager.GetString(strKey,myCulture);
                return strValue;
            }       
        }
    }
    页面上调用示例:
     ResourceClass myClass = new ResourceClass();
            protected void Page_Load(object sender, EventArgs e)
            {
                GetItemText();
            }

    //在页面上放一个dropDownList控件,它的value分面为zh-cn,en等,供用户选择不同的语言
            protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
            {
                GetItemText();
            }
            private void GetItemText()
            {
                myClass.LangString = DropDownList1.SelectedValue.ToString();
                string str = myClass.GetResource("_list");
                this.Label1.Text = str;
                Response.Write(myClass.GetResource("_name"));
            }



  • 相关阅读:
    第三周psp
    作业2
    词频统计 SPEC 20170914 1 1 1 1 1
    psp1111
    第一周大作业1
    mongodb安装操作 (2018/11/12)
    中间件 express生成项目(2018/11/10)
    express环境搭建(2018/11/09)
    后端路由(2018/11/07)
    Node模块的基本使用(2018/11/06)
  • 原文地址:https://www.cnblogs.com/Leung/p/1209348.html
Copyright © 2011-2022 走看看