This commit is contained in:
thepra committed 2023-02-19 00:43:43 +01:00
1 parent 9719a0c0fd
commit 1e66851113
146 files changed
+738 -382

No files matched your search

@@ -0,0 +1,42 @@
using Microsoft.AspNetCore.Localization;
using PrivaPub.StaticServices;
using System.Globalization;
namespace PrivaPub.Services
{
public class RequestLocalizationOptionsService
{
RequestLocalizationOptions RequestLocalizationOptions { get; set; }
readonly AppConfigurationService AppConfigurationService;
public RequestLocalizationOptionsService(AppConfigurationService appConfigurationService)
{
AppConfigurationService = appConfigurationService;
}
public async Task<RequestLocalizationOptions> Get()
{
if (RequestLocalizationOptions != default) return RequestLocalizationOptions;
if (AppConfigurationService.AppConfiguration == default)
await AppConfigurationService.Init();
RequestLocalizationOptions = new RequestLocalizationOptions();
var cultures = AppConfigurationService
.AppConfiguration
.SupportedLanguages
.Select(sl => new CultureInfo(sl))
.ToArray();
RequestLocalizationOptions.DefaultRequestCulture = new(cultures.First(), cultures.First());
RequestLocalizationOptions.SupportedCultures = cultures;
RequestLocalizationOptions.SupportedUICultures = cultures;
RequestLocalizationOptions.RequestCultureProviders = new IRequestCultureProvider[] {
new AcceptLanguageHeaderRequestCultureProvider { Options = RequestLocalizationOptions }
};
RequestLocalizationOptions.ApplyCurrentCultureToResponseHeaders = true;
return RequestLocalizationOptions;
}
}
}