From a2943d083beae73cf45156459d5b483346262cf1 Mon Sep 17 00:00:00 2001 From: hishamco Date: Wed, 13 Jan 2021 18:43:26 +0300 Subject: [PATCH] Set culture when added language set to current --- .../Modules/Admin/Languages/Add.razor | 18 ++++++++++++++++++ .../Themes/Controls/LanguageSwitcher.razor | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Oqtane.Client/Modules/Admin/Languages/Add.razor b/Oqtane.Client/Modules/Admin/Languages/Add.razor index efd5f22b..02b8e0c2 100644 --- a/Oqtane.Client/Modules/Admin/Languages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Languages/Add.razor @@ -1,6 +1,7 @@ @namespace Oqtane.Modules.Admin.Languages @inherits ModuleBase @using System.Globalization +@using Microsoft.AspNetCore.Localization @inject NavigationManager NavigationManager @inject ILocalizationService LocalizationService @inject ILanguageService LanguageService @@ -65,6 +66,11 @@ { language = await LanguageService.AddLanguageAsync(language); + if (language.IsCurrent) + { + await SetCultureAsync(language.Code); + } + await logger.LogInformation("Language Added {Language}", language); NavigationManager.NavigateTo(NavigateUrl()); @@ -76,4 +82,16 @@ AddModuleMessage(Localizer["Error Adding Language"], MessageType.Error); } } + + private async Task SetCultureAsync(string culture) + { + if (culture != CultureInfo.CurrentUICulture.Name) + { + var interop = new Interop(JSRuntime); + 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/Themes/Controls/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor index dd92bf15..bd4ac6fc 100644 --- a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor +++ b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor @@ -1,7 +1,7 @@ @namespace Oqtane.Themes.Controls @inherits ThemeControlBase @using System.Globalization -@using Microsoft.AspNetCore.Localization; +@using Microsoft.AspNetCore.Localization @using Oqtane.Models @inject ILanguageService LanguageService @inject NavigationManager NavigationManager