·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> asp.net2.0 国际化

asp.net2.0 国际化

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net2.0 国际化

公司业务需要在国外开展了, 因此以前的系统要做多国语言了, 从网上搜集了好多资料, 最后选择了一个比较简单的方案

1. 打开vs2005, 新建网站,

  首先在配置文件中添加配置:

  <system.web>

    <globalization culture="auto" uiCulture="auto"/>

  </system.web>

  添加asp.net文件夹App_GlobalResources, 添加“资源文件”, 如下图

  

2. 复制Resource.resx, 粘贴到App_GlobalResources文件夹下, 更改名称为Resource.en-us.resx,内容更改如下:

  

3. asp:Label调用

  <asp:Label ID="Label1" runat="server" Text="<%$Resources:Resource,msg1%>"></asp:Label>

4. asp:Button调用

  <asp:Button ID="Button1" runat="server" Text="<%$ Resources:Resource,msg1 %>" OnClientClick="test();" />

5. js调用

  alert("<%=Resources.Resource.msg1 %>");

6 后台调用

  <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>

  Label2.Text = Convert.ToString(GetGlobalResourceObject("Resource", "msg1"));

7. 图片资源

  <asp:Image ID="Image1" runat="server" />

  然后在Page_Load中Image1.ImageUrl = "~/Image.aspx?culture=" + Convert.ToString(session["culture"]);

  

PRotected override void InitializeCulture()    {        base.InitializeCulture();        if (null != Session["culture"])        {            string c = Convert.ToString(Session["culture"]);            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(c);            Thread.CurrentThread.CurrentUICulture = new CultureInfo(c);                    }    }    protected void Page_Load(object sender, EventArgs e)    {        string c = Request["culture"];        System.Drawing.Bitmap img = (System.Drawing.Bitmap)GetGlobalResourceObject("Resource","test");        System.IO.MemoryStream ms = new System.IO.MemoryStream();        img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);        Response.ClearContent();        Response.ContentType = "image/jpeg";        Response.BinaryWrite(ms.ToArray());        img.Dispose();        ms.Dispose();        ms.Flush();    }

8 手动设置语言

  

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">            <asp:ListItem Value="zh-cn">中文</asp:ListItem>            <asp:ListItem Value="en-us">english</asp:ListItem>        </asp:DropDownList>
protected override void InitializeCulture()    {        base.InitializeCulture();        if (null != Session["culture"])        {            string c = Convert.ToString(Session["culture"]);            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(c);            Thread.CurrentThread.CurrentUICulture = new CultureInfo(c);        }    }       protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)    {        string c = DropDownList1.SelectedValue;        if (!string.IsNullOrEmpty(c))        {            Session["culture"] = c;            this.Response.Redirect("~/Default.aspx", true);        }    }