2009-05-20 2 views
1

Я пытаюсь реализовать простой пример того, как ASP.NET меняет культуру. Я бегу Windows 7, IE 8 и VS 2008. My Label выглядит следующим образом:ASP.NET Development Server игнорирует культуру браузера

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

У меня есть два файла в App_LocalResources: Default.aspx.resx и Default.aspx.fr.resx.

В них у меня есть строковое значение, называемое «Greeting.Text», а значение равно «Hello!». на одной странице и «Bonjour!» в другом.

У меня был мой браузер, предпочитающий fr-FR как язык по умолчанию. Когда я открываю страницу с помощью ASP.NET Development Server через F5 или Shift-F5, эта страница, по-видимому, распознает мою культуру как 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 в настоящее время.

Смежные вопросы