Read supported cultures from appsettings.json

This commit is contained in:
hishamco
2020-09-29 21:23:22 +03:00
parent 437170671f
commit 2924e7849f
4 changed files with 36 additions and 6 deletions

View File

@ -1,14 +1,43 @@
using System;
using System.Globalization;
using System.Linq;
using System.Reflection;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Oqtane.Infrastructure;
using Oqtane.Infrastructure.Localization;
namespace Oqtane.Extensions
{
public static class ApplicationBuilderExtensions
{
private static readonly string DefaultCultureKey = "Localization:DefaultCulture";
private static readonly string SupportedCulturesKey = "Localization:SupportedCultures";
public static IApplicationBuilder UseOqtaneLocalization(this IApplicationBuilder app)
{
var configuration = app.ApplicationServices.GetService<IConfiguration>();
var defaultCulture = configuration.GetSection(DefaultCultureKey).Value;
var supportedCultures = configuration.GetSection(SupportedCulturesKey).Get<string[]>();
if (supportedCultures.Length > 0)
{
LocalizationSettings.SupportedCultures.AddRange(supportedCultures);
}
LocalizationSettings.DefaultCulture = defaultCulture;
CultureInfo.CurrentUICulture = new CultureInfo(defaultCulture);
app.UseRequestLocalization(options => {
options.SetDefaultCulture(defaultCulture)
.AddSupportedUICultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);
});
return app;
}
public static IApplicationBuilder ConfigureOqtaneAssemblies(this IApplicationBuilder app, IWebHostEnvironment env)
{
var startUps = AppDomain.CurrentDomain