• 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);
            }
        }
  • 相关阅读:
    Log4net源码分析(一)
    找不到具有绑定 WSHttpBinding 的终结点的与方案 http 匹配的基址。注册的基址方案是 []。
    C#线程锁使用全功略
    C#泛型版的超级优化的快速排序算法和插入排序、二分查找算法
    用WM_COPYDATA实现进程通信
    构建插件式的应用程序框架(二)-订立契约
    Ajax网站安全,谁来保证
    构建插件式的应用程序框架(三)-动态加载
    构建插件式的应用程序框架(八)-视图服务的简单实现
    插件架构学习体会(一) 宿主程序说:插件你得听我的
  • 原文地址:https://www.cnblogs.com/taotaonwsuaf/p/3544098.html
Copyright © 2020-2023  润新知