Skip to content

Commit

Permalink
Added Karakalpak language with a hack (for now)
Browse files Browse the repository at this point in the history
  • Loading branch information
BartoszCichecki committed May 20, 2023
1 parent 25840af commit ad36e14
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
7 changes: 2 additions & 5 deletions LenovoLegionToolkit.WPF/Pages/SettingsPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using Humanizer;
using LenovoLegionToolkit.Lib;
using LenovoLegionToolkit.Lib.Controllers;
using LenovoLegionToolkit.Lib.Extensions;
Expand Down Expand Up @@ -60,13 +59,11 @@ private async Task RefreshAsync()

var loadingTask = Task.Delay(TimeSpan.FromMilliseconds(500));

var languages = LocalizationHelper.Languages.OrderBy(ci => ci.Name, StringComparer.InvariantCultureIgnoreCase).ToArray();
var languages = LocalizationHelper.Languages.OrderBy(LocalizationHelper.LanguageDisplayName, StringComparer.InvariantCultureIgnoreCase).ToArray();
var language = await LocalizationHelper.GetLanguageAsync();
if (languages.Length > 1)
{
_langComboBox.SetItems(languages,
language,
cc => LocalizationHelper.ForceLeftToRight(cc.NativeName.Transform(cc, To.TitleCase)));
_langComboBox.SetItems(languages, language, LocalizationHelper.LanguageDisplayName);
_langComboBox.Visibility = Visibility.Visible;
}
else
Expand Down
13 changes: 13 additions & 0 deletions LenovoLegionToolkit.WPF/Utils/LocalizationHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using Humanizer;
using LenovoLegionToolkit.Lib.Utils;
using LenovoLegionToolkit.WPF.Resources;
using LenovoLegionToolkit.WPF.Windows.Utils;
Expand Down Expand Up @@ -39,6 +40,8 @@ public static class LocalizationHelper
new("uk"),
new("vi"),
new("zh-hans"),
// HACK: Karakalpak is not a recognized culture by msbuild, so we use this one as workaround instead.
new("uz-latn-uz")
};

public static FlowDirection Direction => Resource.Culture?.TextInfo.IsRightToLeft ?? false
Expand All @@ -59,6 +62,16 @@ public static string ShortDateFormat
}
}

public static string LanguageDisplayName(CultureInfo culture)
{
var name = culture.NativeName.Transform(culture, To.TitleCase);

if (culture.IetfLanguageTag.Equals("uz-latn-uz", StringComparison.InvariantCultureIgnoreCase))
name = "Karakalpak";

return ForceLeftToRight(name);
}

public static string ForceLeftToRight(string str)
{
if (Resource.Culture?.TextInfo.IsRightToLeft ?? false)
Expand Down

0 comments on commit ad36e14

Please sign in to comment.