Skip to content

Commit ab46905

Browse files
authored
Change how the Simplified Chinese language is displayed (Tyrrrz#820)
1 parent 5805936 commit ab46905

3 files changed

Lines changed: 50 additions & 3 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using System;
2+
using System.ComponentModel.DataAnnotations;
3+
using System.Globalization;
4+
using System.Reflection;
5+
using Avalonia.Data.Converters;
6+
7+
namespace YoutubeDownloader.Converters;
8+
9+
public class EnumDisplayConverter : IValueConverter
10+
{
11+
public static EnumDisplayConverter Instance { get; } = new();
12+
13+
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
14+
{
15+
if (value is Enum enumValue)
16+
{
17+
var memberInfo = enumValue.GetType().GetMember(enumValue.ToString());
18+
if (memberInfo.Length > 0)
19+
{
20+
var displayAttr = memberInfo[0].GetCustomAttribute<DisplayAttribute>();
21+
if (displayAttr?.Name is not null)
22+
return displayAttr.Name;
23+
}
24+
25+
return enumValue.ToString();
26+
}
27+
28+
return default(string);
29+
}
30+
31+
public object ConvertBack(
32+
object? value,
33+
Type targetType,
34+
object? parameter,
35+
CultureInfo culture
36+
) => throw new NotSupportedException();
37+
}

YoutubeDownloader/Localization/Language.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.ComponentModel.DataAnnotations;
2+
13
namespace YoutubeDownloader.Localization;
24

35
public enum Language
@@ -8,5 +10,7 @@ public enum Language
810
German,
911
French,
1012
Spanish,
13+
14+
[Display(Name = "Simplified Chinese")]
1115
ChineseSimplified,
1216
}

YoutubeDownloader/Views/Dialogs/SettingsView.axaml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
ToolTip.Tip="{Binding LocalizationManager.ThemeTooltip}">
3030
<TextBlock DockPanel.Dock="Left" Text="{Binding LocalizationManager.ThemeLabel}" />
3131
<ComboBox
32-
Width="150"
32+
Width="160"
3333
DockPanel.Dock="Right"
3434
ItemsSource="{Binding AvailableThemes}"
3535
SelectedItem="{Binding Theme}" />
@@ -42,10 +42,16 @@
4242
ToolTip.Tip="{Binding LocalizationManager.LanguageTooltip}">
4343
<TextBlock DockPanel.Dock="Left" Text="{Binding LocalizationManager.LanguageLabel}" />
4444
<ComboBox
45-
Width="150"
45+
Width="160"
4646
DockPanel.Dock="Right"
4747
ItemsSource="{Binding AvailableLanguages}"
48-
SelectedItem="{Binding Language}" />
48+
SelectedItem="{Binding Language}">
49+
<ComboBox.ItemTemplate>
50+
<DataTemplate>
51+
<TextBlock Text="{Binding Converter={x:Static converters:EnumDisplayConverter.Instance}}" />
52+
</DataTemplate>
53+
</ComboBox.ItemTemplate>
54+
</ComboBox>
4955
</DockPanel>
5056

5157
<!-- Auto-updates -->

0 commit comments

Comments
 (0)