I've run across a behaviour regarding CurrentUICulture which doesn't seem normal.
Here's the case:
UICulture for the website is set to "en" in web.config:
<globalization uiCulture="en" requestEncoding="utf-8" responseEncoding="utf-8" resourceProviderFactoryType="EPiServer.Framework.Localization.LocalizationServiceResourceProviderFactory, EPiServer.Framework.AspNet" />
When browsing a page in a language (culture) that is defined as a language resource like this
then the CurrentUICulture is "sq", which is the current browsing language (Shqip) like so:
But, when the language is not defined as a resource, like this:
then the CurrentUICulture value becomes "en", like so:
This is not standard behaviour I believe.
Compared to the same (or very similar anyway) configuration in Alloy when the browsing language (Spanish) is not defined as a resource language:
then CurrentUICulture is "es", as excepted.
I've really been scratching my head about this, since it affects the language fallback behaviour (one fallback behaviour for languages defined as resources, and another one for languages not defined).
The website is running on CMS 11.20.2.
If anyone can help me shed some light on this it'd be much appreciated!
If I recall the solution for this correctly the Thread.CurrentThread implementation haven't really been implemented properly in CMS.
In order to use it you'll need to set it in some initialization or middleware
Thread.CurrentThread.CurrentUICulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;
Thread.CurrentThread.CurrentCulture = EPiServer.Globalization.ContentLanguage.PreferredCulture;