mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
check the culture is supported (#8646)
* check the culture is supported * changed == to equals
This commit is contained in:
committed by
GitHub
parent
eed4a6a11b
commit
7bf78ef852
@@ -7,11 +7,14 @@ namespace Orchard.Localization.Services {
|
|||||||
public class CurrentCultureWorkContext : IWorkContextStateProvider {
|
public class CurrentCultureWorkContext : IWorkContextStateProvider {
|
||||||
private readonly IEnumerable<ICultureSelector> _cultureSelectors;
|
private readonly IEnumerable<ICultureSelector> _cultureSelectors;
|
||||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
private readonly ICultureManager _cultureManager;
|
||||||
|
|
||||||
public CurrentCultureWorkContext(IEnumerable<ICultureSelector> cultureSelectors,
|
public CurrentCultureWorkContext(IEnumerable<ICultureSelector> cultureSelectors,
|
||||||
IHttpContextAccessor httpContextAccessor) {
|
IHttpContextAccessor httpContextAccessor,
|
||||||
|
ICultureManager cultureManager) {
|
||||||
_cultureSelectors = cultureSelectors;
|
_cultureSelectors = cultureSelectors;
|
||||||
_httpContextAccessor = httpContextAccessor;
|
_httpContextAccessor = httpContextAccessor;
|
||||||
|
_cultureManager = cultureManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Func<WorkContext, T> Get<T>(string name) {
|
public Func<WorkContext, T> Get<T>(string name) {
|
||||||
@@ -25,11 +28,13 @@ namespace Orchard.Localization.Services {
|
|||||||
private string GetCurrentCulture() {
|
private string GetCurrentCulture() {
|
||||||
var httpContext = _httpContextAccessor.Current();
|
var httpContext = _httpContextAccessor.Current();
|
||||||
|
|
||||||
|
var supportedCultures = _cultureManager.ListCultures().ToList();
|
||||||
|
|
||||||
var culture = _cultureSelectors
|
var culture = _cultureSelectors
|
||||||
.Select(c => c.GetCulture(httpContext))
|
.Select(c => c.GetCulture(httpContext))
|
||||||
.Where(c => c != null)
|
.Where(c => c != null)
|
||||||
.OrderByDescending(c => c.Priority)
|
.OrderByDescending(c => c.Priority)
|
||||||
.FirstOrDefault(c => !String.IsNullOrEmpty(c.CultureName));
|
.FirstOrDefault(c => !String.IsNullOrEmpty(c.CultureName) && supportedCultures.Any(s => s.Equals(c.CultureName, StringComparison.OrdinalIgnoreCase)));
|
||||||
|
|
||||||
return culture == null ? String.Empty : culture.CultureName;
|
return culture == null ? String.Empty : culture.CultureName;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user