From where CultureInfo.CurrentCulture reads culture

the MSDN says

The culture is a property of the executing thread. This read-only property is equivalent to retrieving the CultureInfo object returned by the Thread.CurrentCulture property. When a thread is started, its culture is initially determined by calling the Windows GetUserDefaultLocaleName function.

In other words, it’s based on the Thread, witch has a context… in the ASP.NET context, that comes from the Locale used in the client Browser first if using Server Variables or the System Settings on everything else.

Under this Web context you can get it using the Server.Variables method on HTTP_ACCEPT_LANGUAGE and you will get something like:

en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4

Witch states that the client browser has 3 languages set, where the first one is en-US.

Everything from System.Globalization comes from the System definitions just like the image below shows:

enter image description here

code above is:

<p>
    <pre>System.Globalization.CultureInfo.CurrentCulture</pre> 
    is @System.Globalization.CultureInfo.CurrentCulture.EnglishName
</p>

No matter what browser is in use, the definition for System.Globalization will always come from the Operating System definition

enter image description here

Leave a Comment