From 401bba0c7a0f2b32c8845d2bf8530516148aaa8d Mon Sep 17 00:00:00 2001 From: Tisfeng Date: Sun, 25 Feb 2024 10:28:08 +0800 Subject: [PATCH 1/2] fix: validate Bing service always fails (#422) * fix: validate Bing service always fail * perf: use from instead of self.queryModel.queryFromLanguage * perf: enable new SwiftUI Settings by default --- Easydict/Feature/Service/Bing/EZBingService.m | 4 ---- Easydict/Feature/Service/Model/EZQueryService.m | 4 ++-- Easydict/NewApp/Configuration/Configuration+Defaults.swift | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Easydict/Feature/Service/Bing/EZBingService.m b/Easydict/Feature/Service/Bing/EZBingService.m index 2b08d0ed1..5483b8200 100644 --- a/Easydict/Feature/Service/Bing/EZBingService.m +++ b/Easydict/Feature/Service/Bing/EZBingService.m @@ -104,10 +104,6 @@ - (BOOL)isEnglishWordToChinese:(NSString *)text from:(nonnull EZLanguage)from to } - (void)bingTranslate:(NSString *)text useDictQuery:(BOOL)useDictQuery from:(nonnull EZLanguage)from to:(nonnull EZLanguage)to completion:(nonnull void (^)(EZQueryResult *, NSError *_Nullable))completion { - if ([self prehandleQueryTextLanguage:text from:from to:to completion:completion]) { - return; - } - self.isDictQueryResult = NO; if (useDictQuery) { [self.request translateTextFromDict:text completion:^(NSDictionary * _Nullable json, NSError * _Nullable error) { diff --git a/Easydict/Feature/Service/Model/EZQueryService.m b/Easydict/Feature/Service/Model/EZQueryService.m index 2a1646fea..f73bd5275 100644 --- a/Easydict/Feature/Service/Model/EZQueryService.m +++ b/Easydict/Feature/Service/Model/EZQueryService.m @@ -178,8 +178,8 @@ - (BOOL)prehandleQueryTextLanguage:(NSString *)text } } - NSString *fromLanguage = [self languageCodeForLanguage:self.queryModel.queryFromLanguage]; - NSString *toLanguage = [self languageCodeForLanguage:self.queryModel.queryTargetLanguage]; + NSString *fromLanguage = [self languageCodeForLanguage:from]; + NSString *toLanguage = [self languageCodeForLanguage:to]; BOOL unsupportedLanguage = NO; diff --git a/Easydict/NewApp/Configuration/Configuration+Defaults.swift b/Easydict/NewApp/Configuration/Configuration+Defaults.swift index 240aed001..0c9b4d549 100644 --- a/Easydict/NewApp/Configuration/Configuration+Defaults.swift +++ b/Easydict/NewApp/Configuration/Configuration+Defaults.swift @@ -55,7 +55,7 @@ extension Defaults.Keys { static let clearInput = Key("EZConfiguration_kClearInputKey", default: true) static let keepPrevResultWhenEmpty = Key("EZConfiguration_kKeepPrevResultKey", default: true) static let selectQueryTextWhenWindowActivate = Key("EZConfiguration_kSelectQueryTextWhenWindowActivate", default: false) - static let enableBetaNewApp = Key("EZConfiguration_kEnableBetaNewAppKey", default: false) + static let enableBetaNewApp = Key("EZConfiguration_kEnableBetaNewAppKey", default: true) static let enableBetaFeature = Key("EZBetaFeatureKey", default: false) From 1eaa5ab2949572d822646d6e0b718b173a74d7e6 Mon Sep 17 00:00:00 2001 From: tisfeng Date: Sun, 25 Feb 2024 00:52:04 +0800 Subject: [PATCH 2/2] fix: check isEnglishWord method is wrong --- Easydict/Feature/Service/Apple/EZAppleService.m | 2 +- .../EZCategory/NSString/NSString+EZUtils.h | 1 + .../EZCategory/NSString/NSString+EZUtils.m | 15 +++++---------- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/Easydict/Feature/Service/Apple/EZAppleService.m b/Easydict/Feature/Service/Apple/EZAppleService.m index e2a681b15..cfad04389 100644 --- a/Easydict/Feature/Service/Apple/EZAppleService.m +++ b/Easydict/Feature/Service/Apple/EZAppleService.m @@ -752,7 +752,7 @@ - (EZLanguage)getMostConfidentLanguage:(NSDictionary *)d } } } - NSLog(@"Spell check failed, use Most Confident Language: %@", ezLanguage); + NSLog(@"No spell checking, use Most Confident Language: %@", ezLanguage); return ezLanguage; } diff --git a/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.h b/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.h index cea96945c..90f3965ab 100644 --- a/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.h +++ b/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.h @@ -58,6 +58,7 @@ static NSArray *const EZDashCharacterList = @[ @"—", @"-", @"–" ]; - (BOOL)isEnglishWordWithLanguage:(EZLanguage)language; +/// Just use regex to check English word, ^[a-zA-Z]+$ - (BOOL)isEnglishWord; - (BOOL)isEnglishWordWithMaxWordLength:(NSUInteger)maxWordLength; diff --git a/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.m b/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.m index 5a119c5df..9494781fe 100644 --- a/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.m +++ b/Easydict/Feature/Utility/EZCategory/NSString/NSString+EZUtils.m @@ -246,16 +246,11 @@ - (BOOL)isEnglishWordWithMaxWordLength:(NSUInteger)maxWordLength { } - (BOOL)isEnglishPhrase { - if (self.length > EZEnglishWordMaxLength) { - return NO; - } - - NSInteger wordCount = [self wordCount]; - if (wordCount <= 2) { - return YES; - } - - return NO; + // hello word + NSString *text = [self stringByReplacingOccurrencesOfString:@" " withString:@""]; + BOOL isEnglishPhraseLength = [text isEnglishWordWithMaxWordLength:EZEnglishWordMaxLength * 2]; + BOOL isPhraseWordCount = [self wordCount] <= 2; + return isEnglishPhraseLength && isPhraseWordCount; } - (BOOL)isWord {