Flow.Launcher/Flow.Launcher.Avalonia/Converters/TranslationConverter.cs
Hongtao Zhang 36e3530a59 Add internationalization support for Avalonia UI
- Create Internationalization service that parses WPF XAML language files
- Load translations from main Languages/ folder and all plugin Languages/ folders
- Add LocalizeExtension markup extension and Translator helper for XAML/code
- Fix IPublicAPI.GetTranslation to use the i18n service for plugin context menus
- Update MainWindow to use localized placeholder text
2026-01-15 01:10:53 -08:00

28 lines
894 B
C#

using Avalonia.Data.Converters;
using System;
using System.Globalization;
namespace Flow.Launcher.Avalonia.Resource;
/// <summary>
/// Converter to translate a key to its localized string in XAML bindings.
/// Usage: Text="{Binding Key, Converter={StaticResource TranslationConverter}}"
/// Or simpler: Use the Translator.GetString(key) helper from code-behind
/// </summary>
public class TranslationConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo? culture)
{
if (value is string key && !string.IsNullOrEmpty(key))
{
return Translator.GetString(key);
}
return parameter?.ToString() ?? "[No Translation]";
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo? culture)
{
throw new NotSupportedException();
}
}