mirror of
https://github.com/jayfunc/BetterLyrics.git
synced 2026-01-12 19:08:33 +08:00
fix: language display
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
xmlns:helper="using:BetterLyrics.WinUI3.Helper"
|
||||
xmlns:local="using:BetterLyrics.WinUI3.Controls"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:models="using:BetterLyrics.WinUI3.Models"
|
||||
xmlns:ui="using:CommunityToolkit.WinUI"
|
||||
mc:Ignorable="d">
|
||||
|
||||
@@ -28,14 +29,9 @@
|
||||
IsExpanded="True">
|
||||
<ComboBox ItemsSource="{x:Bind helper:LanguageHelper.SupportedDisplayLanguages}" SelectedIndex="{x:Bind ViewModel.AppSettings.GeneralSettings.LanguageCode, Mode=TwoWay, Converter={StaticResource DisplayLanguageCodeToIndexConverter}}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="globalization:Language">
|
||||
<DataTemplate x:DataType="models:ExtendedLanguage">
|
||||
<StackPanel Orientation="Horizontal" Spacing="6">
|
||||
<TextBlock Text="{x:Bind DisplayName}" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Bottom"
|
||||
FontSize="12"
|
||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||
Text="{x:Bind NativeName}" />
|
||||
<TextBlock Text="{x:Bind Name}" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
|
||||
@@ -230,14 +230,9 @@
|
||||
<controls:SettingsCard x:Uid="SettingsPageTargetLanguage" IsEnabled="{x:Bind ViewModel.AppSettings.TranslationSettings.IsTranslationEnabled, Mode=OneWay}">
|
||||
<ComboBox ItemsSource="{x:Bind helper:LanguageHelper.SupportedTranslationTargetLanguages}" SelectedIndex="{x:Bind ViewModel.SelectedTargetLanguageIndex, Mode=TwoWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate x:DataType="globalization:Language">
|
||||
<DataTemplate x:DataType="models:ExtendedLanguage">
|
||||
<StackPanel Orientation="Horizontal" Spacing="6">
|
||||
<TextBlock Text="{x:Bind DisplayName}" />
|
||||
<TextBlock
|
||||
VerticalAlignment="Bottom"
|
||||
FontSize="12"
|
||||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||||
Text="{x:Bind NativeName}" />
|
||||
<TextBlock Text="{x:Bind Name}" />
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace BetterLyrics.WinUI3.Converter
|
||||
{
|
||||
if (value is string langCode)
|
||||
{
|
||||
return LanguageHelper.SupportedDisplayLanguages.FindIndex(x => x.LanguageTag == langCode);
|
||||
return LanguageHelper.SupportedDisplayLanguages.FindIndex(x => x.LanguageCode == langCode);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace BetterLyrics.WinUI3.Converter
|
||||
{
|
||||
if (value is int index)
|
||||
{
|
||||
return LanguageHelper.SupportedDisplayLanguages.ElementAt(index).LanguageTag;
|
||||
return LanguageHelper.SupportedDisplayLanguages.ElementAt(index).LanguageCode;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BetterLyrics.WinUI3.Helper;
|
||||
using BetterLyrics.WinUI3.Models;
|
||||
using NTextCat;
|
||||
using NTextCat.Commons;
|
||||
using System.Collections.Generic;
|
||||
@@ -13,80 +14,88 @@ namespace BetterLyrics.WinUI3.Helper
|
||||
private static readonly RankedLanguageIdentifierFactory _factory = new();
|
||||
private static readonly RankedLanguageIdentifier _identifier;
|
||||
|
||||
public static List<Language> SupportedTranslationTargetLanguages { get; set; } =
|
||||
public static List<ExtendedLanguage> SupportedTranslationTargetLanguages { get; set; } =
|
||||
[
|
||||
new Language("ar"),
|
||||
new Language("az"),
|
||||
new ExtendedLanguage("ar"),
|
||||
new ExtendedLanguage("az"),
|
||||
|
||||
new Language("bg"),
|
||||
new Language("bn"),
|
||||
new ExtendedLanguage("bg"),
|
||||
new ExtendedLanguage("bn"),
|
||||
|
||||
new Language("ca"),
|
||||
new Language("cs"),
|
||||
new ExtendedLanguage("ca"),
|
||||
new ExtendedLanguage("cs"),
|
||||
|
||||
new Language("da"),
|
||||
new Language("de"),
|
||||
new ExtendedLanguage("da"),
|
||||
new ExtendedLanguage("de"),
|
||||
|
||||
new Language("el"),
|
||||
new Language("en"),
|
||||
new Language("eo"),
|
||||
new Language("es"),
|
||||
new Language("et"),
|
||||
new Language("eu"),
|
||||
new ExtendedLanguage("el"),
|
||||
new ExtendedLanguage("en"),
|
||||
new ExtendedLanguage("eo"),
|
||||
new ExtendedLanguage("es"),
|
||||
new ExtendedLanguage("et"),
|
||||
new ExtendedLanguage("eu"),
|
||||
|
||||
new Language("fa"),
|
||||
new Language("fi"),
|
||||
new Language("fr"),
|
||||
new ExtendedLanguage("fa"),
|
||||
new ExtendedLanguage("fi"),
|
||||
new ExtendedLanguage("fr"),
|
||||
|
||||
new Language("ga"),
|
||||
new Language("gl"),
|
||||
new ExtendedLanguage("ga"),
|
||||
new ExtendedLanguage("gl"),
|
||||
|
||||
new Language("he"),
|
||||
new Language("hi"),
|
||||
new Language("hu"),
|
||||
new ExtendedLanguage("he"),
|
||||
new ExtendedLanguage("hi"),
|
||||
new ExtendedLanguage("hu"),
|
||||
|
||||
new Language("id"),
|
||||
new Language("it"),
|
||||
new ExtendedLanguage("id"),
|
||||
new ExtendedLanguage("it"),
|
||||
|
||||
new Language("ja"),
|
||||
new ExtendedLanguage("ja"),
|
||||
|
||||
new Language("ko"),
|
||||
new Language("ky"),
|
||||
new ExtendedLanguage("ko"),
|
||||
new ExtendedLanguage("ky"),
|
||||
|
||||
new Language("lt"),
|
||||
new Language("lv"),
|
||||
new ExtendedLanguage("lt"),
|
||||
new ExtendedLanguage("lv"),
|
||||
|
||||
new Language("ms"),
|
||||
new ExtendedLanguage("ms"),
|
||||
|
||||
new Language("nb"),
|
||||
new Language("nl"),
|
||||
new ExtendedLanguage("nb"),
|
||||
new ExtendedLanguage("nl"),
|
||||
|
||||
new Language("pt-BR"),
|
||||
new Language("pl"),
|
||||
new Language("pt"),
|
||||
new ExtendedLanguage("pt-BR"),
|
||||
new ExtendedLanguage("pl"),
|
||||
new ExtendedLanguage("pt"),
|
||||
|
||||
new Language("ro"),
|
||||
new Language("ru"),
|
||||
new ExtendedLanguage("ro"),
|
||||
new ExtendedLanguage("ru"),
|
||||
|
||||
new Language("sk"),
|
||||
new Language("sl"),
|
||||
new Language("sq"),
|
||||
new Language("sr"),
|
||||
new Language("sv"),
|
||||
new ExtendedLanguage("sk"),
|
||||
new ExtendedLanguage("sl"),
|
||||
new ExtendedLanguage("sq"),
|
||||
new ExtendedLanguage("sr"),
|
||||
new ExtendedLanguage("sv"),
|
||||
|
||||
new Language("th"),
|
||||
new Language("tl"),
|
||||
new Language("tr"),
|
||||
new ExtendedLanguage("th"),
|
||||
new ExtendedLanguage("tl"),
|
||||
new ExtendedLanguage("tr"),
|
||||
|
||||
new Language("uk"),
|
||||
new Language("ur"),
|
||||
new ExtendedLanguage("uk"),
|
||||
new ExtendedLanguage("ur"),
|
||||
|
||||
new Language("vi"),
|
||||
new ExtendedLanguage("vi"),
|
||||
|
||||
new Language("zh"),
|
||||
new ExtendedLanguage("zh"),
|
||||
];
|
||||
|
||||
public static List<Language> SupportedDisplayLanguages { get; set; } = ApplicationLanguages.ManifestLanguages.Select(x => new Language(x)).ToList();
|
||||
public static List<ExtendedLanguage> SupportedDisplayLanguages { get; set; } =
|
||||
[
|
||||
new ExtendedLanguage("", App.ResourceLoader!.GetString("SettingsPageSystemLanguage")),
|
||||
new ExtendedLanguage("en-US", "English"),
|
||||
new ExtendedLanguage("ja-JP"),
|
||||
new ExtendedLanguage("ko-KR"),
|
||||
new ExtendedLanguage("zh-CN", "简体中文"),
|
||||
new ExtendedLanguage("zh-TW", "繁體中文"),
|
||||
];
|
||||
|
||||
static LanguageHelper()
|
||||
{
|
||||
@@ -120,22 +129,17 @@ namespace BetterLyrics.WinUI3.Helper
|
||||
|
||||
public static string GetDefaultTargetTranslationLanguageCode()
|
||||
{
|
||||
var found = SupportedTranslationTargetLanguages.Find(x => ApplicationLanguages.Languages.FirstOrDefault()?.Contains(x.LanguageTag) == true);
|
||||
var found = SupportedTranslationTargetLanguages.Find(x => ApplicationLanguages.Languages.FirstOrDefault()?.Contains(x.LanguageCode) == true);
|
||||
if (found == null)
|
||||
{
|
||||
return "en";
|
||||
}
|
||||
else
|
||||
{
|
||||
return found.LanguageTag;
|
||||
return found.LanguageCode;
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetDefaultDisplayLanguageCode()
|
||||
{
|
||||
return ApplicationLanguages.Languages.FirstOrDefault() ?? "en-US";
|
||||
}
|
||||
|
||||
public static string GetOrderChar(string text)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(text)) return "#";
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Globalization;
|
||||
|
||||
namespace BetterLyrics.WinUI3.Models
|
||||
{
|
||||
public class ExtendedLanguage
|
||||
{
|
||||
public string Name { get; private set; }
|
||||
public string LanguageCode { get; private set; }
|
||||
|
||||
public ExtendedLanguage(string languageCode, string? name = null)
|
||||
{
|
||||
LanguageCode = languageCode;
|
||||
Name = name ?? new Language(languageCode).NativeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ namespace BetterLyrics.WinUI3.Models.Settings
|
||||
{
|
||||
public partial class GeneralSettings : ObservableRecipient
|
||||
{
|
||||
[ObservableProperty][NotifyPropertyChangedRecipients] public partial string LanguageCode { get; set; } = LanguageHelper.GetDefaultDisplayLanguageCode();
|
||||
[ObservableProperty][NotifyPropertyChangedRecipients] public partial string LanguageCode { get; set; } = "";
|
||||
[ObservableProperty][NotifyPropertyChangedRecipients] public partial string LXMusicServer { get; set; } = string.Empty;
|
||||
[ObservableProperty][NotifyPropertyChangedRecipients] public partial List<string> ShowOrHideLyricsWindowShortcut { get; set; } = new List<string> { "Ctrl", "Alt", "H" };
|
||||
[ObservableProperty][NotifyPropertyChangedRecipients] public partial bool ExitOnLyricsWindowClosed { get; set; } = false;
|
||||
|
||||
@@ -1219,7 +1219,7 @@ If you encounter any problems, please go to the Settings page, About tab, and vi
|
||||
<data name="SettingsPageStrokeFontColor.Header" xml:space="preserve">
|
||||
<value>Stroke color</value>
|
||||
</data>
|
||||
<data name="SettingsPageSystemLanguage.Content" xml:space="preserve">
|
||||
<data name="SettingsPageSystemLanguage" xml:space="preserve">
|
||||
<value>Default</value>
|
||||
</data>
|
||||
<data name="SettingsPageTargetLanguage.Header" xml:space="preserve">
|
||||
|
||||
@@ -1219,7 +1219,7 @@
|
||||
<data name="SettingsPageStrokeFontColor.Header" xml:space="preserve">
|
||||
<value>ストロークカラー</value>
|
||||
</data>
|
||||
<data name="SettingsPageSystemLanguage.Content" xml:space="preserve">
|
||||
<data name="SettingsPageSystemLanguage" xml:space="preserve">
|
||||
<value>デフォルト</value>
|
||||
</data>
|
||||
<data name="SettingsPageTargetLanguage.Header" xml:space="preserve">
|
||||
|
||||
@@ -1219,7 +1219,7 @@
|
||||
<data name="SettingsPageStrokeFontColor.Header" xml:space="preserve">
|
||||
<value>윤곽선 색상</value>
|
||||
</data>
|
||||
<data name="SettingsPageSystemLanguage.Content" xml:space="preserve">
|
||||
<data name="SettingsPageSystemLanguage" xml:space="preserve">
|
||||
<value>기본</value>
|
||||
</data>
|
||||
<data name="SettingsPageTargetLanguage.Header" xml:space="preserve">
|
||||
|
||||
@@ -1219,7 +1219,7 @@
|
||||
<data name="SettingsPageStrokeFontColor.Header" xml:space="preserve">
|
||||
<value>描边颜色</value>
|
||||
</data>
|
||||
<data name="SettingsPageSystemLanguage.Content" xml:space="preserve">
|
||||
<data name="SettingsPageSystemLanguage" xml:space="preserve">
|
||||
<value>默认</value>
|
||||
</data>
|
||||
<data name="SettingsPageTargetLanguage.Header" xml:space="preserve">
|
||||
|
||||
@@ -1219,7 +1219,7 @@
|
||||
<data name="SettingsPageStrokeFontColor.Header" xml:space="preserve">
|
||||
<value>描邊顏色</value>
|
||||
</data>
|
||||
<data name="SettingsPageSystemLanguage.Content" xml:space="preserve">
|
||||
<data name="SettingsPageSystemLanguage" xml:space="preserve">
|
||||
<value>預設</value>
|
||||
</data>
|
||||
<data name="SettingsPageTargetLanguage.Header" xml:space="preserve">
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace BetterLyrics.WinUI3.ViewModels
|
||||
|
||||
AppleMusicMediaUserToken = PasswordVaultHelper.Get(Constants.App.AppName, Constants.AppleMusic.MediaUserTokenKey) ?? "";
|
||||
|
||||
SelectedTargetLanguageIndex = LanguageHelper.SupportedTranslationTargetLanguages.ToList().FindIndex(x => x.LanguageTag == AppSettings.TranslationSettings.SelectedTargetLanguageCode);
|
||||
SelectedTargetLanguageIndex = LanguageHelper.SupportedTranslationTargetLanguages.ToList().FindIndex(x => x.LanguageCode == AppSettings.TranslationSettings.SelectedTargetLanguageCode);
|
||||
|
||||
IsLastFMAuthenticated = _lastFMService.IsAuthenticated;
|
||||
LastFMUser = _lastFMService.User;
|
||||
@@ -231,7 +231,7 @@ namespace BetterLyrics.WinUI3.ViewModels
|
||||
|
||||
partial void OnSelectedTargetLanguageIndexChanged(int value)
|
||||
{
|
||||
AppSettings.TranslationSettings.SelectedTargetLanguageCode = LanguageHelper.SupportedTranslationTargetLanguages[value].LanguageTag;
|
||||
AppSettings.TranslationSettings.SelectedTargetLanguageCode = LanguageHelper.SupportedTranslationTargetLanguages[value].LanguageCode;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user