diff --git a/Shared/KBLocalizationManager.h b/Shared/KBLocalizationManager.h index 21b4a0e..41ce8c2 100644 --- a/Shared/KBLocalizationManager.h +++ b/Shared/KBLocalizationManager.h @@ -60,6 +60,9 @@ extern NSString * const KBLocalizationDidChangeNotification; /// 基于一组“偏好语言”计算最佳支持语言。 - (KBLanguageCode)bestSupportedLanguageForPreferred:(NSArray *)preferred; +/// 当前请求使用的语言标识(与 Accept-Language 保持一致)。 +- (NSString *)currentLanguageHeaderValue; + - (void)reloadFromSharedStorageIfNeeded; @end diff --git a/Shared/KBLocalizationManager.m b/Shared/KBLocalizationManager.m index e99b056..92e8115 100644 --- a/Shared/KBLocalizationManager.m +++ b/Shared/KBLocalizationManager.m @@ -159,6 +159,10 @@ static inline NSMutableDictionary *KBLocBaseKCQuery(void) { return self.supportedLanguageCodes.firstObject ?: KBLanguageCodeEnglish; } +- (NSString *)currentLanguageHeaderValue { + return self.currentLanguageCode ?: KBLanguageCodeEnglish; +} + #pragma mark - 内部实现 - (void)applyLanguage:(NSString *)code { diff --git a/keyBoard/Class/Me/VM/KBMyVM.m b/keyBoard/Class/Me/VM/KBMyVM.m index f89e353..c3d8d2f 100644 --- a/keyBoard/Class/Me/VM/KBMyVM.m +++ b/keyBoard/Class/Me/VM/KBMyVM.m @@ -490,17 +490,7 @@ NSString * const KBUserCharacterDeletedNotification = @"KBUserCharacterDeletedNo } - (void)fetchCancelAccountWarningWithCompletion:(KBCancelAccountAgreementCompletion)completion { - KBLanguageCode langCode = [KBLocalizationManager shared].currentLanguageCode; - NSString *locale = @"en-US"; - if ([langCode isEqualToString:KBLanguageCodeTraditionalChinese]) { - locale = @"zh-TW"; - } else if ([langCode isEqualToString:KBLanguageCodeSpanish]) { - locale = @"es-ES"; - } else if ([langCode isEqualToString:KBLanguageCodeIndonesian]) { - locale = @"id-ID"; - } else if ([langCode isEqualToString:KBLanguageCodePortuguese]) { - locale = @"pt-PT"; - } + NSString *locale = [[KBLocalizationManager shared] currentLanguageHeaderValue]; [[KBNetworkManager shared] GET:API_CANCEL_ACCOUNT_WARNING parameters:@{@"locale": locale} diff --git a/keyBoard/Class/Network/KBNetworkManager.m b/keyBoard/Class/Network/KBNetworkManager.m index 58a9b86..6f6cc92 100644 --- a/keyBoard/Class/Network/KBNetworkManager.m +++ b/keyBoard/Class/Network/KBNetworkManager.m @@ -43,7 +43,7 @@ NSErrorDomain const KBNetworkErrorDomain = @"com.company.keyboard.network"; _enabled = NO; // 键盘扩展默认无网络能力,需外部显式开启 _timeout = 10.0; - NSString *lang = [KBLocalizationManager shared].currentLanguageCode ?: KBLanguageCodeEnglish; + NSString *lang = [[KBLocalizationManager shared] currentLanguageHeaderValue]; // 如果还有 query 参数也塞进来 // signParams[@"lang"] = @"zh"; @@ -65,7 +65,7 @@ NSErrorDomain const KBNetworkErrorDomain = @"com.company.keyboard.network"; NSMutableDictionary *headers = [self.defaultHeaders mutableCopy] ?: [NSMutableDictionary dictionary]; // 每次请求动态更新 Accept-Language,确保语言切换后生效 - headers[@"Accept-Language"] = [KBLocalizationManager shared].currentLanguageCode ?: KBLanguageCodeEnglish; + headers[@"Accept-Language"] = [[KBLocalizationManager shared] currentLanguageHeaderValue]; [headers addEntriesFromDictionary:signHeaders ?: @{}]; self.defaultHeaders = headers; }