|
|
|
@ -4,6 +4,7 @@ using System.Globalization; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using DeviceDetectorNET; |
|
|
|
using Microsoft.AspNetCore.Builder; |
|
|
|
using Microsoft.AspNetCore.Localization; |
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
@ -57,7 +58,7 @@ public class DefaultAbpRequestLocalizationOptionsProvider : |
|
|
|
? new RequestLocalizationOptions() |
|
|
|
: new RequestLocalizationOptions |
|
|
|
{ |
|
|
|
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), |
|
|
|
DefaultRequestCulture = GetDefaultRequestCulture(defaultLanguage, languages), |
|
|
|
SupportedCultures = languages |
|
|
|
.Select(l => l.CultureName) |
|
|
|
.Distinct() |
|
|
|
@ -87,15 +88,22 @@ public class DefaultAbpRequestLocalizationOptionsProvider : |
|
|
|
return _requestLocalizationOptions; |
|
|
|
} |
|
|
|
|
|
|
|
private static RequestCulture DefaultGetRequestCulture(string? defaultLanguage, IReadOnlyList<LanguageInfo> languages) |
|
|
|
private static RequestCulture GetDefaultRequestCulture(string? defaultLanguage, IReadOnlyList<LanguageInfo> languages) |
|
|
|
{ |
|
|
|
if (defaultLanguage == null) |
|
|
|
{ |
|
|
|
var firstLanguage = languages.First(); |
|
|
|
var firstLanguage = languages.FirstOrDefault() ?? new LanguageInfo("en", "en"); |
|
|
|
return new RequestCulture(firstLanguage.CultureName, firstLanguage.UiCultureName); |
|
|
|
} |
|
|
|
|
|
|
|
var (cultureName, uiCultureName) = LocalizationSettingHelper.ParseLanguageSetting(defaultLanguage); |
|
|
|
|
|
|
|
if (languages.Any() && languages.All(l => l.CultureName != cultureName)) |
|
|
|
{ |
|
|
|
var firstLanguage = languages.First(); |
|
|
|
return new RequestCulture(firstLanguage.CultureName, firstLanguage.UiCultureName); |
|
|
|
} |
|
|
|
|
|
|
|
return new RequestCulture(cultureName, uiCultureName); |
|
|
|
} |
|
|
|
|
|
|
|
@ -106,4 +114,4 @@ public class DefaultAbpRequestLocalizationOptionsProvider : |
|
|
|
_requestLocalizationOptions = null; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|