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 {