diff --git a/ErsatzTV/Localization.cs b/ErsatzTV/Localization.cs new file mode 100644 index 000000000..dad7e4ab9 --- /dev/null +++ b/ErsatzTV/Localization.cs @@ -0,0 +1,17 @@ +namespace ErsatzTV; + +public static class Localization +{ + public static readonly List SupportedLanguages = + [ + new("en-us", "English"), + new("pl", "Polski"), + new("pt-br", "Português (Brasil)") + ]; + + public static string DefaultCulture => "en-us"; + + public static string[] UiCultures => SupportedLanguages.Map(cl => cl.Culture).ToArray(); + + public sealed record CultureLanguage(string Culture, string Language); +} diff --git a/ErsatzTV/Pages/Settings/UISettings.razor b/ErsatzTV/Pages/Settings/UISettings.razor index e6fa9d409..9815d0c1c 100644 --- a/ErsatzTV/Pages/Settings/UISettings.razor +++ b/ErsatzTV/Pages/Settings/UISettings.razor @@ -29,9 +29,10 @@ Language - English - Polski - Português (Brasil) + @foreach (Localization.CultureLanguage cultureLanguage in Localization.SupportedLanguages) + { + @cultureLanguage.Language + } diff --git a/ErsatzTV/Startup.cs b/ErsatzTV/Startup.cs index b18631538..09dedf951 100644 --- a/ErsatzTV/Startup.cs +++ b/ErsatzTV/Startup.cs @@ -605,10 +605,9 @@ public class Startup { CultureInfo[] cinfo = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures); string[] supportedCultures = cinfo.Select(t => t.Name).Distinct().ToArray(); - string[] supportedUiCultures = ["en-us", "pl", "pt-br"]; options.AddSupportedCultures(supportedCultures) - .AddSupportedUICultures(supportedUiCultures) - .SetDefaultCulture("en-us"); + .AddSupportedUICultures(Localization.UiCultures) + .SetDefaultCulture(Localization.DefaultCulture); options.AddInitialRequestCultureProvider( new DatabaseRequestCultureProvider( new AcceptLanguageHeaderRequestCultureProvider()));