Files
Umbraco-CMS/src/Umbraco.Web.Common/Localization/UmbracoRequestLocalizationOptions.cs
Nikolaj Geisle 125247fddb Updated classes according to review
Signed-off-by: Nikolaj Geisle <niko737@edu.ucl.dk>
2021-10-04 09:40:57 +02:00

41 lines
1.5 KiB
C#

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
{
/// <summary>
/// Custom Umbraco options configuration for <see cref="RequestLocalizationOptions"/>
/// </summary>
public class UmbracoRequestLocalizationOptions : IConfigureOptions<RequestLocalizationOptions>
{
private GlobalSettings _globalSettings;
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoRequestLocalizationOptions"/> class.
/// </summary>
public UmbracoRequestLocalizationOptions(IOptionsSnapshot<GlobalSettings> globalSettings)
{
_globalSettings = globalSettings.Value;
}
/// <inheritdoc/>
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<IRequestCultureProvider>();
}
options.RequestCultureProviders.Insert(0, new UmbracoBackOfficeIdentityCultureProvider(options));
options.RequestCultureProviders.Insert(1, new UmbracoPublishedContentCultureProvider(options));
}
}
}