Files
ersatztv/ErsatzTV/DatabaseRequestCultureProvider.cs
T
Jason DoveandGitHub 607d9b0662 add ui localization framework (#2809)
* move dark/light mode toggle to ui settings page

* separate current culture (formatting) and ui culture (language)

* add some more sample translations

* update changelog

* fix cancellation token
2026-02-03 13:52:52 -06:00

28 lines
1016 B
C#

using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Interfaces.Repositories;
using Microsoft.AspNetCore.Localization;
namespace ErsatzTV;
public class DatabaseRequestCultureProvider(AcceptLanguageHeaderRequestCultureProvider defaultProvider)
: RequestCultureProvider
{
public override async Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext httpContext)
{
var configElementRepository = httpContext.RequestServices.GetService<IConfigElementRepository>();
var defaultResult = await defaultProvider.DetermineProviderCultureResult(httpContext);
string configuredLanguage = await configElementRepository.GetValue<string>(
ConfigElementKey.PagesLanguage,
httpContext.RequestAborted)
.IfNoneAsync("en");
if (defaultResult != null)
{
return new ProviderCultureResult(defaultResult.Cultures, [configuredLanguage]);
}
return new ProviderCultureResult(configuredLanguage);
}
}