LocaleExtension.cs 722 B

123456789101112131415161718192021222324252627282930
  1. using Avalonia.Data;
  2. using Avalonia.Markup.Xaml;
  3. using Avalonia.Markup.Xaml.MarkupExtensions;
  4. using System;
  5. namespace Ryujinx.Ava.Common.Locale
  6. {
  7. internal class LocaleExtension : MarkupExtension
  8. {
  9. public LocaleExtension(string key)
  10. {
  11. Key = key;
  12. }
  13. public string Key { get; }
  14. public override object ProvideValue(IServiceProvider serviceProvider)
  15. {
  16. string keyToUse = Key;
  17. ReflectionBindingExtension binding = new($"[{keyToUse}]")
  18. {
  19. Mode = BindingMode.OneWay,
  20. Source = LocaleManager.Instance
  21. };
  22. return binding.ProvideValue(serviceProvider);
  23. }
  24. }
  25. }