2009-05-20 82 views
1

我想實現一個簡單的ASP.NET示例改變文化的例子。我運行Windows 7,IE 8,和VS 2008我的標籤是這樣的:ASP.NET開發服務器忽略瀏覽器文化

<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作爲默認語言。當我通過F5或Shift-F5使用ASP.NET開發服務器打開頁面時,無論我在瀏覽器的「語言」對話框中設置了什麼內容,該頁面顯然都會將我的文化視爲en-US。

這就是說,瀏覽器配置正確,就像谷歌用法語顯示的那樣。

當我向頁面添加標籤並將標籤的文本設置爲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使用。