diff --git a/src/modules/launcher/Wox.Core/Resource/Internationalization.cs b/src/modules/launcher/Wox.Core/Resource/Internationalization.cs
index 9f865cb539..53cce9174c 100644
--- a/src/modules/launcher/Wox.Core/Resource/Internationalization.cs
+++ b/src/modules/launcher/Wox.Core/Resource/Internationalization.cs
@@ -99,6 +99,22 @@ namespace Wox.Core.Resource
}
+ public bool PromptShouldUsePinyin(string languageCodeToSet)
+ {
+ var languageToSet = GetLanguageByLanguageCode(languageCodeToSet);
+
+ if (Settings.ShouldUsePinyin)
+ return false;
+
+ if (languageToSet != AvailableLanguages.Chinese && languageToSet != AvailableLanguages.Chinese_TW)
+ return false;
+
+ if (MessageBox.Show("Do you want to turn on search with Pinyin?", string.Empty, MessageBoxButton.YesNo) == MessageBoxResult.No)
+ return false;
+
+ return true;
+ }
+
private void RemoveOldLanguageFiles()
{
var dicts = Application.Current.Resources.MergedDictionaries;
diff --git a/src/modules/launcher/Wox.Infrastructure/Alphabet.cs b/src/modules/launcher/Wox.Infrastructure/Alphabet.cs
index 487c0a4b0a..4754394cbc 100644
--- a/src/modules/launcher/Wox.Infrastructure/Alphabet.cs
+++ b/src/modules/launcher/Wox.Infrastructure/Alphabet.cs
@@ -162,7 +162,7 @@ namespace Wox.Infrastructure
if (word.Length > 40)
{
- Log.Debug($"|Wox.Infrastructure.StringMatcher.ScoreForPinyin|skip too long string: {word}");
+ //Skip strings that are too long string for Pinyin conversion.
return false;
}
diff --git a/src/modules/launcher/Wox.Infrastructure/UserSettings/Settings.cs b/src/modules/launcher/Wox.Infrastructure/UserSettings/Settings.cs
index 7714768f00..94a1639d65 100644
--- a/src/modules/launcher/Wox.Infrastructure/UserSettings/Settings.cs
+++ b/src/modules/launcher/Wox.Infrastructure/UserSettings/Settings.cs
@@ -25,8 +25,7 @@ namespace Wox.Infrastructure.UserSettings
///
/// when false Alphabet static service will always return empty results
///
- public bool ShouldUsePinyin { get; set; } = true;
-
+ public bool ShouldUsePinyin { get; set; } = false;
internal StringMatcher.SearchPrecisionScore QuerySearchPrecision { get; private set; } = StringMatcher.SearchPrecisionScore.Regular;
diff --git a/src/modules/launcher/Wox/ViewModel/SettingWindowViewModel.cs b/src/modules/launcher/Wox/ViewModel/SettingWindowViewModel.cs
index 504e7bdfae..f9160df9f0 100644
--- a/src/modules/launcher/Wox/ViewModel/SettingWindowViewModel.cs
+++ b/src/modules/launcher/Wox/ViewModel/SettingWindowViewModel.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -77,6 +77,33 @@ namespace Wox.ViewModel
}
}
+ public string Language
+ {
+ get
+ {
+ return Settings.Language;
+ }
+ set
+ {
+ InternationalizationManager.Instance.ChangeLanguage(value);
+
+ if (InternationalizationManager.Instance.PromptShouldUsePinyin(value))
+ ShouldUsePinyin = true;
+ }
+ }
+
+ public bool ShouldUsePinyin
+ {
+ get
+ {
+ return Settings.ShouldUsePinyin;
+ }
+ set
+ {
+ Settings.ShouldUsePinyin = value;
+ }
+ }
+
public List QuerySearchPrecisionStrings
{
get