I’m trying to implement a simple example of where ASP.NET changes culture. I’m running Windows 7, IE 8, and VS 2008. My Label looks like this:
<asp:Label ID="TextBox1" runat="server" meta:resourcekey="Greeting"></asp:Label>
I have two files in App_LocalResources: Default.aspx.resx and Default.aspx.fr.resx.
In them, I have a string value called “Greeting.Text” and the value is set to “Hello!” in one page, and “Bonjour!” in the other.
I have my browser set to prefer fr-FR as the default language. When I open the page using the ASP.NET Development Server through F5 or Shift-F5, the page is apparently recognizing my culture as en-US, regardless of what I set in the Languages dialog for the browser.
That being said, the browser is configured correctly, as Google shows up in French.
When I add a label to the page and set the Text of the label to the CurrentCulture or CurrentUICulture’s name, I get en-US, which is obviously not what I had entered.
Does anybody have any idea why this isn’t working properly?
ASP.NET does not automatically change culture based on the browser by default. Add this to your web.config:
Note, the
culture="auto"anduiCulture="auto"are the important bits for what you are looking for, although the rest is probably a good idea as well. Also note, the enableClientBasedCulture attribute you may see in the documentation is not used by ASP.NET at the current time.