From 20dcb6fb47f63ae38eeebf8ee44746bc42b12e22 Mon Sep 17 00:00:00 2001 From: "Shawn Yuan (from Dev Box)" Date: Wed, 24 Dec 2025 11:17:17 +0800 Subject: [PATCH] add localization support --- .../AdvancedPasteXAML/Controls/PromptBox.xaml | 5 ++-- .../PasteAIUsageToStringConverter.cs | 30 +++++++++++++++++++ .../Strings/en-us/Resources.resw | 6 ++++ .../PasteAIUsageToStringConverter.cs | 30 +++++++++++++++++++ .../SettingsXAML/Views/AdvancedPastePage.xaml | 7 +++-- .../Settings.UI/Strings/en-us/Resources.resw | 12 ++++++++ 6 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/Converters/PasteAIUsageToStringConverter.cs create mode 100644 src/settings-ui/Settings.UI/Converters/PasteAIUsageToStringConverter.cs diff --git a/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/Controls/PromptBox.xaml b/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/Controls/PromptBox.xaml index 2f371556d3..da4d101c89 100644 --- a/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/Controls/PromptBox.xaml +++ b/src/modules/AdvancedPaste/AdvancedPaste/AdvancedPasteXAML/Controls/PromptBox.xaml @@ -335,6 +335,7 @@ + @@ -623,9 +624,9 @@ CornerRadius="{StaticResource ControlCornerRadius}"> + Text="{x:Bind Usage, Mode=OneWay, Converter={StaticResource PasteAIUsageToStringConverter}}" /> PasteAIUsageExtensions.FromConfigString(s), + PasteAIUsage u => u, + _ => PasteAIUsage.ChatCompletion, + }; + + return ResourceLoaderInstance.ResourceLoader.GetString($"PasteAIUsage_{usage}"); + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + throw new NotImplementedException(); + } +} diff --git a/src/modules/AdvancedPaste/AdvancedPaste/Strings/en-us/Resources.resw b/src/modules/AdvancedPaste/AdvancedPaste/Strings/en-us/Resources.resw index f365778321..a856cc2ab7 100644 --- a/src/modules/AdvancedPaste/AdvancedPaste/Strings/en-us/Resources.resw +++ b/src/modules/AdvancedPaste/AdvancedPaste/Strings/en-us/Resources.resw @@ -372,4 +372,10 @@ Unable to load Foundry Local model: {0} {0} is the model identifier. Do not translate {0}. + + Chat completion + + + Text to image + \ No newline at end of file diff --git a/src/settings-ui/Settings.UI/Converters/PasteAIUsageToStringConverter.cs b/src/settings-ui/Settings.UI/Converters/PasteAIUsageToStringConverter.cs new file mode 100644 index 0000000000..6aaec31d59 --- /dev/null +++ b/src/settings-ui/Settings.UI/Converters/PasteAIUsageToStringConverter.cs @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using Microsoft.PowerToys.Settings.UI.Helpers; +using Microsoft.PowerToys.Settings.UI.Library; +using Microsoft.UI.Xaml.Data; + +namespace Microsoft.PowerToys.Settings.UI.Converters; + +public sealed partial class PasteAIUsageToStringConverter : IValueConverter +{ + public object Convert(object value, Type targetType, object parameter, string language) + { + var usage = value switch + { + string s => PasteAIUsageExtensions.FromConfigString(s), + PasteAIUsage u => u, + _ => PasteAIUsage.ChatCompletion, + }; + + return ResourceLoaderInstance.ResourceLoader.GetString($"PasteAIUsage_{usage}_Label"); + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + throw new NotImplementedException(); + } +} diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml index 10d9261ea6..0733523df8 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/AdvancedPastePage.xaml @@ -40,6 +40,7 @@ + + Text="{x:Bind Usage, Mode=OneWay, Converter={StaticResource PasteAIUsageToStringConverter}}" />