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