【问题标题】:How to Apply Globalization On Web User Control in asp.net c#如何在asp.net c#中在Web用户控件上应用全球化
【发布时间】:2013-10-21 11:24:24
【问题描述】:

我已经在默认页面上应用了全球化,但它没有应用在 Web 用户控件上。 我创建了 Header.ascx 并放置了两个链接按钮,一个用于英语,第二个用于西班牙语。 我在 header.ascx 表单上使用代码,代码如下...。

此代码为英文

 protected void lbtnEng_Click(object sender, EventArgs e)
    {

        HttpCookie cookie = new HttpCookie("CultureInfo");
        cookie.Value = "en";
        Response.Cookies.Add(cookie);
        Thread.CurrentThread.CurrentCulture = new CultureInfo("en");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");
        Server.Transfer(Request.Path);

    }

西班牙语代码

protected void lbtnSpan_Click(object sender, EventArgs e)
{

    HttpCookie cookie = new HttpCookie("CultureInfo");
    cookie.Value = "es-mx";
    Response.Cookies.Add(cookie);
   Thread.CurrentThread.CurrentCulture =  new CultureInfo("es-mx");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-mx");
    Server.Transfer(Request.Path);
  }

此代码会更改默认页面标签文本上的语言,但不会更改 Web 用户控件标签上的语言 在默认页面上声明控件

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

和网页控制

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

【问题讨论】:

    标签: asp.net c#-4.0 globalization webusercontrol


    【解决方案1】:

    您一次只能设置一种语言。为了完成您的任务。使用静态字符串或获取一个由键值对组成的资源文件。这是提交密钥的示例。

    ResourceFileForStaticStrings.resx
    
    Key                   Value
    submitEnglish         Submit
    submitSpanish         Presentar
    

    将其存储在会话或 cookie 中:试试下面的一个

    System.Threading.Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo(Session("es").ToString)  
    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(Session("es").ToString)
    

    【讨论】:

    • 是的,我创建了两个资源文件,一个是英语的 Resource.resx,第二个是西班牙语的 Resource.es-mx.resx,在这个文件中还设置了键和值
    • 我知道您已经创建了 2 个资源文件。但问题是你不能一次设置两种语言。为了在一页中显示超过 2 种语言。因此,如上所述,创建单独的资源文件。
    • 当我们单击链接按钮并创建两个单独的文件时,我没有得到我设置的一种语言,一个是用于英语的 resource.resx,第二个是用于西班牙语的 Resource.es-mx
    • 我认为您将在一页中显示两种语言。我说的对吗?
    • 不,我正在创建两个链接按钮,一个是英语,第二个是西班牙语,当用户点击西班牙语然后网站翻译成西班牙语时,就像我上面提到的那样,我创建了两个资源文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多