zoukankan      html  css  js  c++  java
  • .NET多语言切换,配置

    法一:

    1.

    1>在每个页面中

    <%@page %>中引入Culture="auto" UICulture="auto"

    如:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Culture="auto" UICulture="auto"%>

     2>web.Config中配置。

           这样无需再每个页面中配置

            <system.web>

              <globalizationculture="auto"uiCulture="auto"/>

            </system.web>

    2.添加资源文件  Resource.resx:中文文件,其中的内容名称为控件ID,值为中文

                   Resource.en.resx:英文文件,其中的内容名称为控件ID,值为英文

     注意:资源文件名是规定好的。

           资源文件必须在系统的App_GlobalResources文件夹中(右击解决方案下的一行,添加ASP.NET文件夹添加App_GlobalResources文件夹)

     

    3.需要多语言的控件其Text=“<%$ Resources:Resource,Label1 %>   其中  Resource既为资源文件的第一个单词,Label1为控件的ID    

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

     

    4. 从前台传标志为中文或英文的标志给后台,由于利用的是改变电脑的默认语言去读取不同资源文件的。所以传给后台的标志也是规定好的。

     

       这里利用DropDownList向后台传值,将DDL的选中的VALUE值传给后台。

    若多个页面要用可以将其值写入Session

     

      如:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">

                <asp:ListItem Selected="True" Value="zh-CN">中文</asp:ListItem>

                <asp:ListItem Value="en-US">english</asp:ListItem>

            </asp:DropDownList>

      5.后台处理。

    应为需要翻译需要在页面加载前执行,覆盖方法InitializeCulture();

    设置电脑的默认语言。

    如:

    string lan = Request["DropDownList1"];//取DDl的Value值

    Session[“lan”]=lan;

            if(!string.IsNullOrEmpty(lan)){//若Value值不为空,设置电脑的默认语言。

                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lan);

                Thread.CurrentThread.CurrentUICulture = new CultureInfo(lan);

    }

     

     

    6.其他页面要用时就可以先执行方法InitializeCulture();

    string lan = Session[“lan”]//取DDl的Session值

            if(!string.IsNullOrEmpty(lan)){//若Value值不为空,设置电脑的默认语言。

                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lan);

                Thread.CurrentThread.CurrentUICulture = new CultureInfo(lan);

              }

  • 相关阅读:
    .NetTiers不支持UDT的解决方式
    CreateRemoteThread的问题
    使用.NetTiers的事务
    how do i using c# to obtain call stack on crash?
    使用C#为进程创建DUMP文件
    GTD软件
    c#调用c++的dll
    使用PowerDesigner生成数据库
    笨鸟学iOS开发(2)ApplicationSettings
    让IIS支持中文名
  • 原文地址:https://www.cnblogs.com/wybshyy/p/13783859.html
Copyright © 2011-2022 走看看