allow LanguageSwitcher to support culture and ui culture
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user