Browse Source

define supported ui cultures/languages in a single location

pull/2814/head
Jason Dove 6 months ago
parent
commit
9a8167d222
No known key found for this signature in database
  1. 17
      ErsatzTV/Localization.cs
  2. 7
      ErsatzTV/Pages/Settings/UISettings.razor
  3. 5
      ErsatzTV/Startup.cs

17
ErsatzTV/Localization.cs

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
namespace ErsatzTV;
public static class Localization
{
public static readonly List<CultureLanguage> 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);
}

7
ErsatzTV/Pages/Settings/UISettings.razor

@ -29,9 +29,10 @@ @@ -29,9 +29,10 @@
<MudText>Language</MudText>
</div>
<MudSelect @bind-Value="_uiSettings.Language">
<MudSelectItem Value="@("en-us")">English</MudSelectItem>
<MudSelectItem Value="@("pl")">Polski</MudSelectItem>
<MudSelectItem Value="@("pt-br")">Português (Brasil)</MudSelectItem>
@foreach (Localization.CultureLanguage cultureLanguage in Localization.SupportedLanguages)
{
<MudSelectItem Value="@cultureLanguage.Culture">@cultureLanguage.Language</MudSelectItem>
}
</MudSelect>
</MudStack>
</MudContainer>

5
ErsatzTV/Startup.cs

@ -605,10 +605,9 @@ public class Startup @@ -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()));

Loading…
Cancel
Save