allow LanguageSwitcher to support culture and ui culture

This commit is contained in:
sbwalker
2026-02-20 15:11:54 -05:00
parent 12f06a7662
commit 0d4d51448e
5 changed files with 9 additions and 7 deletions

View File

@@ -14,8 +14,9 @@ namespace Oqtane.Services
/// Set the localization cookie
/// </summary>
/// <param name="culture"></param>
/// <param name="uiCulture"></param>
/// <returns></returns>
Task SetLocalizationCookieAsync(string culture);
Task SetLocalizationCookieAsync(string culture, string uiCulture);
}
[PrivateApi("Don't show in the documentation, as everything should use the Interface")]
@@ -23,7 +24,7 @@ namespace Oqtane.Services
{
public LocalizationCookieService(HttpClient http, SiteState siteState) : base(http, siteState) { }
public Task SetLocalizationCookieAsync(string culture)
public Task SetLocalizationCookieAsync(string culture, string uiCulture)
{
return Task.CompletedTask; // only used in server side rendering
}

View File

@@ -56,7 +56,7 @@
var culture = PageState.QueryString["culture"];
if (PageState.Site.Languages.Any(item => item.Code == culture))
{
await LocalizationCookieService.SetLocalizationCookieAsync(culture);
await LocalizationCookieService.SetLocalizationCookieAsync(PageState.Site.CultureCode, culture);
}
NavigationManager.NavigateTo(NavigationManager.Uri.Replace($"?culture={culture}", ""));
}
@@ -66,7 +66,7 @@
{
if (culture != CultureInfo.CurrentUICulture.Name)
{
var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture));
var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(PageState.Site.CultureCode, culture));
var interop = new Interop(JSRuntime);
await interop.SetCookie(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue, 360, true, "Lax");
NavigationManager.NavigateTo(NavigationManager.Uri, true);