From 5a91b143b604ead3a3988aecbdd6a86e3622dc46 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Fri, 8 Nov 2024 15:41:24 -0500 Subject: [PATCH] resolved issue when setting initial culture cookie --- Oqtane.Server/Components/App.razor | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index 3747b66f5..e8c7ca76a 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -192,26 +192,29 @@ _bodyResources += ParseScripts(site.BodyContent); // set culture if not specified - string culture = Context.Request.Cookies[Shared.CookieRequestCultureProvider.DefaultCookieName]; - if (culture == null) + string cultureCookie = Context.Request.Cookies[Shared.CookieRequestCultureProvider.DefaultCookieName]; + if (cultureCookie == null) { // get default language for site if (site.Languages.Any()) { // use default language if specified otherwise use first language in collection - culture = (site.Languages.Where(l => l.IsDefault).SingleOrDefault() ?? site.Languages.First()).Code; + cultureCookie = (site.Languages.Where(l => l.IsDefault).SingleOrDefault() ?? site.Languages.First()).Code; } else { - culture = LocalizationManager.GetDefaultCulture(); + // fallback language + cultureCookie = LocalizationManager.GetDefaultCulture(); } - SetLocalizationCookie(culture); + // convert language code to culture cookie format (ie. "c=en|uic=en") + cultureCookie = Shared.CookieRequestCultureProvider.MakeCookieValue(new Models.RequestCulture(cultureCookie)); + SetLocalizationCookie(cultureCookie); } // set language for page - if (!string.IsNullOrEmpty(culture)) + if (!string.IsNullOrEmpty(cultureCookie)) { - _language = Shared.CookieRequestCultureProvider.ParseCookieValue(culture).Culture.Name; + _language = Shared.CookieRequestCultureProvider.ParseCookieValue(cultureCookie).Culture.Name; } // create initial PageState @@ -577,7 +580,7 @@ } } - private void SetLocalizationCookie(string culture) + private void SetLocalizationCookie(string cookieValue) { var cookieOptions = new Microsoft.AspNetCore.Http.CookieOptions { @@ -589,7 +592,7 @@ Context.Response.Cookies.Append( Shared.CookieRequestCultureProvider.DefaultCookieName, - Shared.CookieRequestCultureProvider.MakeCookieValue(new Models.RequestCulture(culture)), + cookieValue, cookieOptions ); }