diff --git a/Oqtane.Client/Oqtane.Client.csproj b/Oqtane.Client/Oqtane.Client.csproj
index da11a472..72024f75 100644
--- a/Oqtane.Client/Oqtane.Client.csproj
+++ b/Oqtane.Client/Oqtane.Client.csproj
@@ -31,6 +31,7 @@
+
diff --git a/Oqtane.Client/Program.cs b/Oqtane.Client/Program.cs
index cc85b9b9..4c2d1201 100644
--- a/Oqtane.Client/Program.cs
+++ b/Oqtane.Client/Program.cs
@@ -10,6 +10,7 @@ using System.Runtime.Loader;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
+using Microsoft.AspNetCore.Localization;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.JSInterop;
using Oqtane.Modules;
@@ -94,7 +95,8 @@ namespace Oqtane.Client
var host = builder.Build();
var jsRuntime = host.Services.GetRequiredService();
var interop = new Interop(jsRuntime);
- var culture = await interop.GetLocalStorage("OqtaneCulture");
+ var localizationCookie = await interop.GetCookie(CookieRequestCultureProvider.DefaultCookieName);
+ var culture = CookieRequestCultureProvider.ParseCookieValue(localizationCookie).UICultures[0].Value;
var localizationService = host.Services.GetRequiredService();
var cultures = await localizationService.GetCulturesAsync();
diff --git a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor
index e1d16002..6f748e88 100644
--- a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor
+++ b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor
@@ -1,6 +1,7 @@
@namespace Oqtane.Themes.Controls
@inherits ThemeControlBase
-@using System.Globalization
+@using System.Globalization
+@using Microsoft.AspNetCore.Localization;
@using Oqtane.Models
@inject ILocalizationService LocalizationService
@inject NavigationManager NavigationManager
@@ -36,7 +37,8 @@
if (culture != CultureInfo.CurrentUICulture.Name)
{
var interop = new Interop(JSRuntime);
- await interop.SetLocalStorage("OqtaneCulture", culture);
+ var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture));
+ await interop.SetCookie(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue, 360);
NavigationManager.NavigateTo(NavigationManager.Uri, forceLoad: true);
}
diff --git a/Oqtane.Client/UI/Interop.cs b/Oqtane.Client/UI/Interop.cs
index 10c37d44..3964b070 100644
--- a/Oqtane.Client/UI/Interop.cs
+++ b/Oqtane.Client/UI/Interop.cs
@@ -1,5 +1,4 @@
using Microsoft.JSInterop;
-using Oqtane.Models;
using System.Threading.Tasks;
namespace Oqtane.UI
@@ -233,33 +232,5 @@ namespace Oqtane.UI
return Task.CompletedTask;
}
}
-
- public async Task GetLocalStorage(string name)
- {
- try
- {
- var value = await _jsRuntime.InvokeAsync("Oqtane.Interop.getLocalStorage", name);
-
- return value;
- }
- catch
- {
- return null;
- }
- }
-
- public Task SetLocalStorage(string name, string value)
- {
- try
- {
- _jsRuntime.InvokeVoidAsync("Oqtane.Interop.setLocalStorage", name, value);
-
- return Task.CompletedTask;
- }
- catch
- {
- return Task.CompletedTask;
- }
- }
}
}
diff --git a/Oqtane.Server/Extensions/ApplicationBuilderExtensions.cs b/Oqtane.Server/Extensions/ApplicationBuilderExtensions.cs
index 67676d16..81ca19ac 100644
--- a/Oqtane.Server/Extensions/ApplicationBuilderExtensions.cs
+++ b/Oqtane.Server/Extensions/ApplicationBuilderExtensions.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Globalization;
+using System;
using System.Linq;
using System.Reflection;
using Microsoft.AspNetCore.Builder;
@@ -31,8 +30,6 @@ namespace Oqtane.Extensions
var defaultCulture = localizationManager.GetDefaultCulture();
var supportedCultures = localizationManager.GetSupportedCultures();
- CultureInfo.CurrentUICulture = new CultureInfo(defaultCulture);
-
app.UseRequestLocalization(options => {
options.SetDefaultCulture(defaultCulture)
.AddSupportedUICultures(supportedCultures)
diff --git a/Oqtane.Server/Pages/_Host.cshtml b/Oqtane.Server/Pages/_Host.cshtml
index ecf906e4..cf2d69f0 100644
--- a/Oqtane.Server/Pages/_Host.cshtml
+++ b/Oqtane.Server/Pages/_Host.cshtml
@@ -1,17 +1,9 @@
@page "/"
@namespace Oqtane.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
-@using System.Globalization
-@using Microsoft.AspNetCore.Localization
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
@model Oqtane.Pages.HostModel
-
-@{
- // Set localization cookie
- var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(CultureInfo.CurrentCulture, CultureInfo.CurrentUICulture));
- HttpContext.Response.Cookies.Append(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue);
-}
diff --git a/Oqtane.Server/wwwroot/js/interop.js b/Oqtane.Server/wwwroot/js/interop.js
index e71f4b81..2e4092e4 100644
--- a/Oqtane.Server/wwwroot/js/interop.js
+++ b/Oqtane.Server/wwwroot/js/interop.js
@@ -362,11 +362,5 @@ Oqtane.Interop = {
setInterval(function () {
window.location.href = url;
}, wait * 1000);
- },
- getLocalStorage: function (name) {
- return window.localStorage[name];
- },
- setLocalStorage: function (name, value) {
- window.localStorage[name] = value;
}
};