using System.Collections.Generic; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.Options; using Umbraco.Core.Configuration.Models; namespace Umbraco.Web.Common.Localization { /// /// Custom Umbraco options configuration for /// public class UmbracoRequestLocalizationOptions : IConfigureOptions { private readonly IOptions _globalSettings; /// /// Initializes a new instance of the class. /// public UmbracoRequestLocalizationOptions(IOptions globalSettings) => _globalSettings = globalSettings; /// public void Configure(RequestLocalizationOptions options) { // set the default culture to what is in config options.DefaultRequestCulture = new RequestCulture(_globalSettings.Value.DefaultUILanguage); // add a custom provider if (options.RequestCultureProviders == null) { options.RequestCultureProviders = new List(); } options.RequestCultureProviders.Insert(0, new UmbracoBackOfficeIdentityCultureProvider()); options.RequestCultureProviders.Insert(1, new UmbracoPublishedContentCultureProvider()); } } }