0

我已在默认页面上应用了全球化,但未在 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);
  }

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

<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>
4

1 回答 1

0

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

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)
于 2013-10-21T11:41:58.510 回答