diff --git a/Oqtane.Client/Services/LocalizationCookieService.cs b/Oqtane.Client/Services/LocalizationCookieService.cs
index 6ebbdc76..2d6b258f 100644
--- a/Oqtane.Client/Services/LocalizationCookieService.cs
+++ b/Oqtane.Client/Services/LocalizationCookieService.cs
@@ -14,8 +14,9 @@ namespace Oqtane.Services
/// Set the localization cookie
///
///
+ ///
///
- 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
}
diff --git a/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
index d049e436..98420061 100644
--- a/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
+++ b/Oqtane.Client/Themes/Controls/Theme/LanguageSwitcher.razor
@@ -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);
diff --git a/Oqtane.Server/Infrastructure/LocalizationManager.cs b/Oqtane.Server/Infrastructure/LocalizationManager.cs
index 9ffd2708..58c48bd5 100644
--- a/Oqtane.Server/Infrastructure/LocalizationManager.cs
+++ b/Oqtane.Server/Infrastructure/LocalizationManager.cs
@@ -4,7 +4,6 @@ using System.IO;
using System.Linq;
using System.Reflection;
using Microsoft.Extensions.Options;
-using Oqtane.Models;
using Oqtane.Shared;
namespace Oqtane.Infrastructure
diff --git a/Oqtane.Server/Migrations/Tenant/10010002_AddCultureCode.cs b/Oqtane.Server/Migrations/Tenant/10010002_AddCultureCode.cs
index 0b411227..81bb9cbf 100644
--- a/Oqtane.Server/Migrations/Tenant/10010002_AddCultureCode.cs
+++ b/Oqtane.Server/Migrations/Tenant/10010002_AddCultureCode.cs
@@ -18,9 +18,11 @@ namespace Oqtane.Migrations.Tenant
{
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
siteEntityBuilder.AddStringColumn("CultureCode", 10, true);
+ siteEntityBuilder.UpdateData("CultureCode", $"'{Shared.Constants.DefaultCulture}'");
var userEntityBuilder = new UserEntityBuilder(migrationBuilder, ActiveDatabase);
userEntityBuilder.AddStringColumn("CultureCode", 10, true);
+ userEntityBuilder.UpdateData("CultureCode", $"'{Shared.Constants.DefaultCulture}'");
}
protected override void Down(MigrationBuilder migrationBuilder)
diff --git a/Oqtane.Server/Services/LocalizationCookieService.cs b/Oqtane.Server/Services/LocalizationCookieService.cs
index 1bedfc6f..13a3205b 100644
--- a/Oqtane.Server/Services/LocalizationCookieService.cs
+++ b/Oqtane.Server/Services/LocalizationCookieService.cs
@@ -16,9 +16,9 @@ namespace Oqtane.Services
_accessor = accessor;
}
- public Task SetLocalizationCookieAsync(string culture)
+ public Task SetLocalizationCookieAsync(string culture, string uiCulture)
{
- var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture));
+ var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture, uiCulture));
_accessor.HttpContext.Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue, new CookieOptions
{