commit
05a98a9854
|
@ -5,6 +5,7 @@ using Oqtane.Modules;
|
||||||
using Oqtane.Models;
|
using Oqtane.Models;
|
||||||
using Oqtane.Themes;
|
using Oqtane.Themes;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Microsoft.AspNetCore.Http.Extensions;
|
using Microsoft.AspNetCore.Http.Extensions;
|
||||||
|
@ -19,13 +20,20 @@ namespace Oqtane.Pages
|
||||||
private IConfiguration _configuration;
|
private IConfiguration _configuration;
|
||||||
private readonly SiteState _state;
|
private readonly SiteState _state;
|
||||||
private readonly IAliasRepository _aliases;
|
private readonly IAliasRepository _aliases;
|
||||||
|
private readonly ILocalizationManager _localizationManager;
|
||||||
private readonly ILanguageRepository _languages;
|
private readonly ILanguageRepository _languages;
|
||||||
|
|
||||||
public HostModel(IConfiguration configuration, SiteState state, IAliasRepository aliases, ILanguageRepository languages)
|
public HostModel(
|
||||||
|
IConfiguration configuration,
|
||||||
|
SiteState state,
|
||||||
|
IAliasRepository aliases,
|
||||||
|
ILocalizationManager localizationManager,
|
||||||
|
ILanguageRepository languages)
|
||||||
{
|
{
|
||||||
_configuration = configuration;
|
_configuration = configuration;
|
||||||
_state = state;
|
_state = state;
|
||||||
_aliases = aliases;
|
_aliases = aliases;
|
||||||
|
_localizationManager = localizationManager;
|
||||||
_languages = languages;
|
_languages = languages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,25 +53,21 @@ namespace Oqtane.Pages
|
||||||
// if culture not specified and framework is installed
|
// if culture not specified and framework is installed
|
||||||
if (HttpContext.Request.Cookies[CookieRequestCultureProvider.DefaultCookieName] == null && !string.IsNullOrEmpty(_configuration.GetConnectionString("DefaultConnection")))
|
if (HttpContext.Request.Cookies[CookieRequestCultureProvider.DefaultCookieName] == null && !string.IsNullOrEmpty(_configuration.GetConnectionString("DefaultConnection")))
|
||||||
{
|
{
|
||||||
Uri uri = new Uri(Request.GetDisplayUrl());
|
var uri = new Uri(Request.GetDisplayUrl());
|
||||||
var alias = _aliases.GetAlias(uri.Authority + "/" + uri.LocalPath.Substring(1));
|
var alias = _aliases.GetAlias(uri.Authority + "/" + uri.LocalPath.Substring(1));
|
||||||
_state.Alias = alias;
|
_state.Alias = alias;
|
||||||
|
|
||||||
// set default language for site
|
// set default language for site if the culture is not supported
|
||||||
var language = _languages.GetLanguages(alias.SiteId).Where(item => item.IsDefault).FirstOrDefault();
|
var languages = _languages.GetLanguages(alias.SiteId);
|
||||||
if (language != null)
|
if (languages.All(l => l.Code != CultureInfo.CurrentUICulture.Name))
|
||||||
{
|
{
|
||||||
HttpContext.Response.Cookies.Append(
|
var defaultLanguage = languages.Where(l => l.IsDefault).SingleOrDefault() ?? languages.First();
|
||||||
CookieRequestCultureProvider.DefaultCookieName,
|
|
||||||
CookieRequestCultureProvider.MakeCookieValue(
|
SetLocalizationCookie(defaultLanguage.Code);
|
||||||
new RequestCulture(language.Code)));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HttpContext.Response.Cookies.Append(
|
SetLocalizationCookie(_localizationManager.GetDefaultCulture());
|
||||||
CookieRequestCultureProvider.DefaultCookieName,
|
|
||||||
CookieRequestCultureProvider.MakeCookieValue(
|
|
||||||
new RequestCulture(_configuration.GetSection("Localization").GetValue("DefaultCulture", Constants.DefaultCulture))));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -176,5 +180,12 @@ namespace Oqtane.Pages
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetLocalizationCookie(string culture)
|
||||||
|
{
|
||||||
|
HttpContext.Response.Cookies.Append(
|
||||||
|
CookieRequestCultureProvider.DefaultCookieName,
|
||||||
|
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user