diff options
Diffstat (limited to 'src/Ryujinx.Ava/UI/Helpers')
| -rw-r--r-- | src/Ryujinx.Ava/UI/Helpers/LocalizedNeverConverter.cs | 43 | ||||
| -rw-r--r-- | src/Ryujinx.Ava/UI/Helpers/NullableDateTimeConverter.cs | 38 |
2 files changed, 43 insertions, 38 deletions
diff --git a/src/Ryujinx.Ava/UI/Helpers/LocalizedNeverConverter.cs b/src/Ryujinx.Ava/UI/Helpers/LocalizedNeverConverter.cs new file mode 100644 index 00000000..73789698 --- /dev/null +++ b/src/Ryujinx.Ava/UI/Helpers/LocalizedNeverConverter.cs @@ -0,0 +1,43 @@ +using Avalonia.Data.Converters; +using Avalonia.Markup.Xaml; +using Ryujinx.Ava.Common.Locale; +using Ryujinx.Ui.Common.Helper; +using System; +using System.Globalization; + +namespace Ryujinx.Ava.UI.Helpers +{ + /// <summary> + /// This <see cref="IValueConverter"/> makes sure that the string "Never" that's returned by <see cref="ValueFormatUtils.FormatDateTime"/> is properly localized in the Avalonia UI. + /// After the Avalonia UI has been made the default and the GTK UI is removed, <see cref="ValueFormatUtils"/> should be updated to directly return a localized string. + /// </summary> + internal class LocalizedNeverConverter : MarkupExtension, IValueConverter + { + private static readonly LocalizedNeverConverter _instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is not string valStr) + { + return ""; + } + + if (valStr == "Never") + { + return LocaleManager.Instance[LocaleKeys.Never]; + } + + return valStr; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotSupportedException(); + } + + public override object ProvideValue(IServiceProvider serviceProvider) + { + return _instance; + } + } +} diff --git a/src/Ryujinx.Ava/UI/Helpers/NullableDateTimeConverter.cs b/src/Ryujinx.Ava/UI/Helpers/NullableDateTimeConverter.cs deleted file mode 100644 index e9193761..00000000 --- a/src/Ryujinx.Ava/UI/Helpers/NullableDateTimeConverter.cs +++ /dev/null @@ -1,38 +0,0 @@ -using Avalonia.Data.Converters; -using Avalonia.Markup.Xaml; -using Ryujinx.Ava.Common.Locale; -using System; -using System.Globalization; - -namespace Ryujinx.Ava.UI.Helpers -{ - internal class NullableDateTimeConverter : MarkupExtension, IValueConverter - { - private static readonly NullableDateTimeConverter _instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value == null) - { - return LocaleManager.Instance[LocaleKeys.Never]; - } - - if (value is DateTime dateTime) - { - return dateTime.ToLocalTime().ToString(culture); - } - - throw new NotSupportedException(); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return _instance; - } - } -} |
