From ad4bead1bd2d2d07c5e7a9be3c9df536f54cdbe3 Mon Sep 17 00:00:00 2001 From: Dong Bin Date: Fri, 3 Jan 2025 15:02:26 +0800 Subject: [PATCH] feat: add helper method to set locale resources. --- src/Semi.Avalonia/SemiTheme.axaml.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/Semi.Avalonia/SemiTheme.axaml.cs b/src/Semi.Avalonia/SemiTheme.axaml.cs index d65130c..0891467 100644 --- a/src/Semi.Avalonia/SemiTheme.axaml.cs +++ b/src/Semi.Avalonia/SemiTheme.axaml.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Styling; @@ -60,4 +61,22 @@ public class SemiTheme : Styles } return _localeToResource[new CultureInfo("zh-cn")]; } + + public static void OverrideLocaleResources(Application application, CultureInfo culture) + { + if (!_localeToResource.TryGetValue(culture, out var resources)) return; + foreach (var kv in resources) + { + application.Resources[kv.Key] = kv.Value; + } + } + + public static void OverrideLocaleResources(StyledElement element, CultureInfo culture) + { + if (!_localeToResource.TryGetValue(culture, out var resources)) return; + foreach (var kv in resources) + { + element.Resources[kv.Key] = kv.Value; + } + } } \ No newline at end of file