统一语言值
This commit is contained in:
@@ -60,6 +60,9 @@ extern NSString * const KBLocalizationDidChangeNotification;
|
||||
/// 基于一组“偏好语言”计算最佳支持语言。
|
||||
- (KBLanguageCode)bestSupportedLanguageForPreferred:(NSArray<NSString *> *)preferred;
|
||||
|
||||
/// 当前请求使用的语言标识(与 Accept-Language 保持一致)。
|
||||
- (NSString *)currentLanguageHeaderValue;
|
||||
|
||||
- (void)reloadFromSharedStorageIfNeeded;
|
||||
|
||||
@end
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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<NSString *, NSString *> *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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user