|
|
|
@ -1,4 +1,5 @@ |
|
|
|
using System.Collections.Generic; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Globalization; |
|
|
|
using System.Linq; |
|
|
|
using JetBrains.Annotations; |
|
|
|
@ -47,7 +48,7 @@ namespace Microsoft.AspNetCore.Builder |
|
|
|
.UseMiddleware<AbpCorrelationIdMiddleware>(); |
|
|
|
} |
|
|
|
|
|
|
|
public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app) |
|
|
|
public static IApplicationBuilder UseAbpRequestLocalization(this IApplicationBuilder app, Action<RequestLocalizationOptions> optionsAction = null) |
|
|
|
{ |
|
|
|
IReadOnlyList<LanguageInfo> languages; |
|
|
|
string defaultLanguage; |
|
|
|
@ -61,28 +62,27 @@ namespace Microsoft.AspNetCore.Builder |
|
|
|
defaultLanguage = settingProvider.GetOrNull(LocalizationSettingNames.DefaultLanguage); |
|
|
|
} |
|
|
|
|
|
|
|
if (!languages.Any()) |
|
|
|
{ |
|
|
|
return app.UseRequestLocalization(); |
|
|
|
} |
|
|
|
var options = !languages.Any() |
|
|
|
? new RequestLocalizationOptions() |
|
|
|
: new RequestLocalizationOptions |
|
|
|
{ |
|
|
|
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), |
|
|
|
|
|
|
|
SupportedCultures = languages |
|
|
|
.Select(l => l.CultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray(), |
|
|
|
|
|
|
|
SupportedUICultures = languages |
|
|
|
.Select(l => l.UiCultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray() |
|
|
|
}; |
|
|
|
|
|
|
|
optionsAction?.Invoke(options); |
|
|
|
|
|
|
|
var options = new RequestLocalizationOptions |
|
|
|
{ |
|
|
|
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), |
|
|
|
|
|
|
|
SupportedCultures = languages |
|
|
|
.Select(l => l.CultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray(), |
|
|
|
|
|
|
|
SupportedUICultures = languages |
|
|
|
.Select(l => l.UiCultureName) |
|
|
|
.Distinct() |
|
|
|
.Select(c => new CultureInfo(c)) |
|
|
|
.ToArray() |
|
|
|
}; |
|
|
|
|
|
|
|
return app.UseRequestLocalization(options); |
|
|
|
} |
|
|
|
|
|
|
|
|