2

ASP.NET MVCアプリケーションを作成し、プロジェクトのabout.aspxページに2つのリソースファイルを追加しました。次のようになります。

altフォルダ構造

次に、About.aspxページを次のように変更しました。

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <h2><%= GetLocalResourceObject ("About")%></h2>
    <p>
        <%= GetLocalResourceObject ("PutContentHere")%>
    </p>
</asp:Content>

Firefoxのロケールをhi-INに変更した後、aboutページを実行しようとしましたが、デフォルトのテキスト(英語)が表示されます。問題を見つけていただけますか?

4

1 に答える 1

3

CurrentCultureおよびは、ブラウザのレポートに応じて自動的に変更されることはありCurrentUICultureません。次のことを指定する必要があります。

protected override void OnInit(EventArgs e)
{
    try
    {
        System.Threading.Thread.CurrentThread.CurrentUICulture = 
                          CultureInfo.GetCultureInfo(Request.UserLanguages[0]);
        System.Threading.Thread.CurrentThread.CurrentCulture = 
                          System.Threading.Thread.CurrentThread.CurrentUICulture;
    }
    catch (Exception ex)
    {
        // handle the exception
    }
    base.OnInit(e);
}

Thread.CurrentCulture選択できる言語の一部(たとえば「en」)は、「ニュートラル」カルチャと呼ばれるものを許可しないため、割り当てようとすると例外が発生することに注意してください。要するに、中立的な文化とは、言語のみを識別し、地理的な地域は識別しない文化です。これについて詳しくは、クラスのドキュメントをCultureInfoご覧ください。

于 2009-07-18T09:00:20.723 に答える