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 { /// /// This makes sure that the string "Never" that's returned by is properly localized in the Avalonia UI. /// After the Avalonia UI has been made the default and the GTK UI is removed, should be updated to directly return a localized string. /// 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; } } }