3

ウェブサイトの言語を変更したいときに問題があります。これにはグローバル リソースを使用します。デフォルトの言語を使用すると、正しいテキストが表示されます。問題ありません。

しかし、カルチャを変更すると、ASP.NET コントロール プロパティのテキストが更新されません。理由がわかりません。

このコードは完璧に機能します

<h1><%= Resources.Default.Register %></h1>

しかし、残念なことに、このコードはその言語を変更しません

<asp:Button ID="Button2" runat="server" Text="<%$ Resources:Default, Register %>" />

このように、LinkBut​​ton をクリックして言語を変更します。

protected void lbNL_Click(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");

            Page.Culture = "nl-BE";
            Page.UICulture = "nl-BE";

        }

手伝ってくれませんか

ヴィンセント

4

1 に答える 1

2

これは、言語を英語 (デフォルト) からフランス語に変更する方法です。

<h3><asp:Label runat="server" ID="lblWelcome" Text="<%$ Resources:Resource, Welcome %>" /></h3>

asp:Label や asp:Literal などのコントロールを使用する必要があります。

また、私のグローバル リソース ファイルは App_GlobalResources フォルダーにあり、Resource.fr.resxと呼ばれます。Welcome は、リソース ファイル内のキーの名前です。

また、文化情報をフランス語に変更するときは、2 文字のコードfrを使用しています。

** * ** ** * 編集 * * * * * * * * *

これはあなたの問題かもしれません。InitializeCulture をオーバーライドする必要がある場合があります。

protected override void InitializeCulture()
{
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nl-BE");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE");

    base.InitializeCulture();
}
于 2012-04-18T19:00:57.553 に答える