diff --git a/umbraco/presentation/umbracobase/baseHttpModule.cs b/umbraco/presentation/umbracobase/baseHttpModule.cs index 458ba63312..18a1bdcb83 100644 --- a/umbraco/presentation/umbracobase/baseHttpModule.cs +++ b/umbraco/presentation/umbracobase/baseHttpModule.cs @@ -92,6 +92,8 @@ namespace umbraco.presentation.umbracobase if (myExtension.isAllowed) { + TrySetCulture(); + string response = invokeMethod(myExtension, urlArray); // since return value is arbitrary (set by implementor), check length before checking for error if (response.Length >= 7) @@ -225,6 +227,23 @@ namespace umbraco.presentation.umbracobase } + private static void TrySetCulture() + { + string domain = HttpContext.Current.Request.Url.Host; //Host only + if (TrySetCulture(domain)) return; + + domain = HttpContext.Current.Request.Url.Authority; //Host with port + if (TrySetCulture(domain)) return; + } + + private static bool TrySetCulture(string domain) + { + var uDomain = cms.businesslogic.web.Domain.GetDomain(domain); + if (uDomain == null) return false; + System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(uDomain.Language.CultureAlias); + return true; + } + }