0

デフォルト ページにグローバリゼーションを適用しましたが、Web ユーザー コントロールには適用されません。私は Header.ascx を作成し、2 つの linkBut​​ton を英語用に 1 つ、スペイン語用に 2 つ配置しました。私は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>

および Web コントロールで

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

1 に答える 1

0

一度に設定できる言語は 1 つだけです。タスクを達成するには、静的文字列を使用するか、キーと値のペアで構成されるリソース ファイルを 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)
于 2013-10-21T11:41:58.510 に答える