using Avalonia.Data.Converters; using Cowain.Base.Helpers; using Ke.Bee.Localization.Localizer.Abstractions; using System.Globalization; namespace Cowain.Base.Converters; /// /// 枚举值本地化转换器 /// public class I18nLocalizeConverter : IValueConverter { private readonly ILocalizer _l; public I18nLocalizeConverter() { _l = ServiceLocator.GetRequiredService(); } /// /// 字符串转换为本地化文本 /// /// 枚举值 /// /// 对应的本地化前缀 /// /// public object? Convert(object? value, Type targetType, object? prefix, CultureInfo culture) { if (value == null) return "未配置"; var key = $"{prefix}.{value}"; var result = _l[key]; // 如果本地化内容为空或与 key 相同,则返回原始 value 字符串 if (string.IsNullOrEmpty(result) || result == key) return value.ToString(); return result; } public object? ConvertBack(object? value, Type targetType, object? prefix, CultureInfo culture) { return null; } }