2009-05-20 10 views
1

私は、ASP.NETが文化を変える場所の簡単な例を実装しようとしています。 Default.aspx.resxとDefault.aspx.fr.resx:ASP.NET開発サーバーがブラウザの文化を無視する

<asp:Label ID="TextBox1" runat="server" meta:resourcekey="Greeting"></asp:Label> 

私はApp_LocalResourcesで2つのファイルを持っている:私は私のラベルは、このようになりますのWindows 7、IE 8、およびVS 2008を実行していますよ。

これらの文字列の値は "Greeting.Text"で、値は "Hello!"に設定されています。 1ページで「Bonjour!」もう片方に。

ブラウザのデフォルト言語としてfr-FRを使用するように設定しました。 F5またはShift-F5を使用してASP.NET開発サーバーを使用してページを開くと、ブラウザーの言語ダイアログで設定した内容に関係なく、ページがen-USとして自分のカルチャを認識しているように見えます。

Googleはフランス語で表示されるため、ブラウザは正しく設定されています。

ラベルをページに追加し、ラベルのテキストをCurrentCultureまたはCurrentUICultureの名前に設定すると、私はen-USを取得します。これは明らかに私が入力したものではありません。

これはなぜ正しく動作していないのですか?

答えて

5

ASP.NETはデフォルトでブラウザに基づいて自動的にカルチャを変更しません。あなたのweb.configファイルにこれを追加します。残りの部分は同様に、おそらく良いアイデアですが

<configuration> 
    <system.web> 
     <globalization culture="auto" 
         enableBestFitResponseEncoding="false" 
         fileEncoding="utf-8" 
         requestEncoding="utf-8" 
         responseEncoding="utf-8" 
         responseHeaderEncoding="utf-8" 
         uiCulture="auto"/> 
    </system.web> 
</configuration> 

注意、culture="auto"uiCulture="auto"は、あなたが探しているもののために重要なビットです。また、ドキュメントに表示されるenableClientBasedCulture属性は、現時点ではASP.NETで使用されていません。

関連する問題