diff --git a/src/common/Common.Search/FuzzSearch/MatchOption.cs b/src/common/Common.Search/FuzzSearch/MatchOption.cs
index 6b4c3f981f..18d977e50a 100644
--- a/src/common/Common.Search/FuzzSearch/MatchOption.cs
+++ b/src/common/Common.Search/FuzzSearch/MatchOption.cs
@@ -2,6 +2,8 @@
// 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.Globalization;
+
namespace Common.Search.FuzzSearch;
public class MatchOption
@@ -9,7 +11,16 @@ public class MatchOption
public bool IgnoreCase { get; set; } = true;
///
- /// Gets or sets a value indicating whether to support Chinese PinYin
+ /// Gets or sets a value indicating whether to support Chinese PinYin.
+ /// Defaults to true when the system UI culture is Simplified Chinese.
///
- public bool ChinesePinYinSupport { get; set; }
+ public bool ChinesePinYinSupport { get; set; } = IsSimplifiedChinese();
+
+ private static bool IsSimplifiedChinese()
+ {
+ var culture = CultureInfo.CurrentUICulture;
+ // Detect Simplified Chinese: zh-CN, zh-Hans, zh-Hans-*
+ return culture.Name.StartsWith("zh-CN", StringComparison.OrdinalIgnoreCase)
+ || culture.Name.StartsWith("zh-Hans", StringComparison.OrdinalIgnoreCase);
+ }
}
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs
index 9f67077c35..dae50b3f3e 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs
@@ -46,18 +46,6 @@ public partial class SettingsModel : ObservableObject
public bool AllowExternalReload { get; set; }
- public bool EnableChinesePinYinSupport
- {
- get => field;
- set
- {
- if (SetProperty(ref field, value))
- {
- FuzzyStringMatcher.ChinesePinYinSupport = value;
- }
- }
- }
-
public Dictionary ProviderSettings { get; set; } = [];
public Dictionary Aliases { get; set; } = [];
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs
index f755855df1..b871ecda44 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs
@@ -141,15 +141,6 @@ public partial class SettingsViewModel : INotifyPropertyChanged
}
}
- public bool EnableChinesePinYinSupport
- {
- get => _settings.EnableChinesePinYinSupport;
- set
- {
- _settings.EnableChinesePinYinSupport = value;
- Save();
- }
- }
public int AutoGoBackIntervalIndex
{
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml
index 040d6eb2ea..eb0264a683 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml
@@ -51,9 +51,6 @@
-
-
-
diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw b/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw
index 930fe6e55a..6ed0a3bfaa 100644
--- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw
+++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw
@@ -344,12 +344,6 @@ Right-click to remove the key combination, thereby deactivating the shortcut.
Preventing disruption of the program running in fullscreen by unintentional activation of shortcut
-
- PinYin Support for Chinese
-
-
- Search Chinese contents with PinYin
-
Highlight search on activate
diff --git a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/FuzzyStringMatcher.cs b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/FuzzyStringMatcher.cs
index 74696ab31b..83d42953c2 100644
--- a/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/FuzzyStringMatcher.cs
+++ b/src/modules/cmdpal/extensionsdk/Microsoft.CommandPalette.Extensions.Toolkit/FuzzyStringMatcher.cs
@@ -2,6 +2,8 @@
// 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.Globalization;
+
using ToolGood.Words.Pinyin;
namespace Microsoft.CommandPalette.Extensions.Toolkit;
@@ -12,9 +14,18 @@ public static class FuzzyStringMatcher
private const int NOMATCH = 0;
///
- /// Gets or sets a value indicating whether to support Chinese PinYin
+ /// Gets a value indicating whether to support Chinese PinYin.
+ /// Automatically enabled when the system UI culture is Simplified Chinese.
///
- public static bool ChinesePinYinSupport { get; set; }
+ public static bool ChinesePinYinSupport { get; } = IsSimplifiedChinese();
+
+ private static bool IsSimplifiedChinese()
+ {
+ var culture = CultureInfo.CurrentUICulture;
+ // Detect Simplified Chinese: zh-CN, zh-Hans, zh-Hans-*
+ return culture.Name.StartsWith("zh-CN", StringComparison.OrdinalIgnoreCase)
+ || culture.Name.StartsWith("zh-Hans", StringComparison.OrdinalIgnoreCase);
+ }
public static int ScoreFuzzy(string needle, string haystack, bool allowNonContiguousMatches = true)
{