现在做了一个数据库,里面有产品特性和介绍,是简体字
如何利用asp.net实现本地化,通过选择按钮,实现产品资料转为繁体和英文?
谢谢

解决方案 »

  1.   

    补充,在Product.aspx页面有一个GridView,能否将数库中提取的产品信息本地化为繁体字和英文
      

  2.   

    不是,因为产品项比较多,英文和繁体中文肯定是要存在数据库里的,但是不知道怎么做比较方便
    方案一,数据库的一张产品表中加上繁体和英文字段,
    方案二,做三张表,一张表全为英文,一张表全为简体中文,一张表全为繁体中文
    但是,怎么才能用resx文件,在一张页面上分别调用出不同的语言呢?
      

  3.   

       public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!this.IsPostBack)
                {
                    string language = "en-us";
                    if (Session["Language"] != null) language = (string)Session["Language"];                if (Session["Language"] == null)
                    {
                        if (this.Request.Headers.Count > 0)
                        {
                            if (this.Request.Headers.GetValues("Accept-Language").Length > 0)  //浏览器端的区域
                                language =this.Request.Headers.GetValues("Accept-Language")[0].ToLower();
                        }
                    }                if (DropDownList1.Items.FindByValue(language) == null) language = this.DropDownList1.Items[0].Value;//如果浏览器端的区域不在列表中,那么取列表中第一个值                for (int i = 0; i < this.DropDownList1.Items.Count; i++)
                    {
                        if (DropDownList1.Items[i].Value.ToLower() == language.ToLower())
                        {
                            DropDownList1.SelectedIndex = i;
                            break;
                        }
                    }
                    
                    Resources.Resource1.Culture = new System.Globalization.CultureInfo(language);
                    Session["Language"] = language;
                }
                ResourcesChange.setSj(this);  //设置相关组件的事件
            }        protected void DropDownList1_TextChanged(object sender, EventArgs e)
            {
                Session["Language"] = DropDownList1.Items[DropDownList1.SelectedIndex].Value;
                Resources.Resource1.Culture = new System.Globalization.CultureInfo(DropDownList1.Items[DropDownList1.SelectedIndex].Value);
            }
        }
        static class ResourcesChange //静态类用来制定组件事件
        {
            static public void Image1_PreRender(object sender, EventArgs e)
            {
                //查找相应资源
                if ((sender is System.Web.UI.WebControls.Button))
                {
                    System.Web.UI.WebControls.Button button = (System.Web.UI.WebControls.Button)sender;
                    string id = Resources.Resource1.ResourceManager.GetString(button.ID.ToString(), Resources.Resource1.Culture);
                    if (id!=null)
                        button.Text = id;
                }
                if (sender is System.Web.UI.WebControls.Image)
                {
                    Image senderImage = (Image)sender;
                    string id = Resources.Resource1.ResourceManager.GetString(senderImage.ID.ToString(), Resources.Resource1.Culture);
                    if (id != null)
                        senderImage.ImageUrl = "MyImg.aspx?id=" + id;
                }
            }        static public void setSj(System.Web.UI.Control sender)
            {            foreach (System.Web.UI.Control c in sender.Controls)
                {
                    if ((c is System.Web.UI.WebControls.Image) ||(c is System.Web.UI.WebControls.Button))
                        c.PreRender += Image1_PreRender;
                    if (c.HasControls())
                        setSj(c);
                }
            }
        }
    在下面连接中有源码下载
    http://www.mybuffet.cn/CSharpAspNet.aspx
      

  4.   

    直接下吧
    http://www.mybuffet.cn/Demo/CSharpforNet/%B9%DC%C0%ED%D4%B1/20091029104625_MyWeb.rar
    http://www.mybuffet.cn