3
This commit is contained in:
@@ -11,6 +11,16 @@
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/// 语言码类型(集中管理,避免在各处散落写 @"en"/@"zh-Hans")
|
||||
typedef NSString *KBLanguageCode NS_EXTENSIBLE_STRING_ENUM;
|
||||
|
||||
/// 项目内统一使用的语言常量
|
||||
FOUNDATION_EXPORT KBLanguageCode const KBLanguageCodeEnglish; // @"en"
|
||||
FOUNDATION_EXPORT KBLanguageCode const KBLanguageCodeSimplifiedChinese; // @"zh-Hans"
|
||||
|
||||
/// 默认支持的语言列表(目前为 @[KBLanguageCodeEnglish, KBLanguageCodeSimplifiedChinese])
|
||||
FOUNDATION_EXPORT NSArray<KBLanguageCode> *KBDefaultSupportedLanguageCodes(void);
|
||||
|
||||
/// 当前语言变更通知(不附带 userInfo)
|
||||
extern NSString * const KBLocalizationDidChangeNotification;
|
||||
|
||||
@@ -20,18 +30,18 @@ extern NSString * const KBLocalizationDidChangeNotification;
|
||||
/// 单例
|
||||
+ (instancetype)shared;
|
||||
|
||||
/// 当前语言代码(如:"en"、"zh-Hans"、"ja")。
|
||||
/// 当前语言代码(如:KBLanguageCodeEnglish、KBLanguageCodeSimplifiedChinese)。
|
||||
/// 默认会在受支持语言中,按系统首选语言择优匹配。
|
||||
@property (nonatomic, copy, readonly) NSString *currentLanguageCode;
|
||||
@property (nonatomic, copy, readonly) KBLanguageCode currentLanguageCode;
|
||||
|
||||
/// 支持的语言代码列表。默认 @[@"en", @"zh-Hans"]。
|
||||
/// 支持的语言代码列表。默认 `KBDefaultSupportedLanguageCodes()`。
|
||||
/// 建议在启动早期设置;或设置后再调用 `-setCurrentLanguageCode:persist:` 以刷新。
|
||||
@property (nonatomic, copy) NSArray<NSString *> *supportedLanguageCodes;
|
||||
@property (nonatomic, copy) NSArray<KBLanguageCode> *supportedLanguageCodes;
|
||||
|
||||
/// 设置当前语言。
|
||||
/// @param code 语言代码
|
||||
/// @param persist 是否持久化到共享钥匙串(以便 App 与扩展共享该选择)
|
||||
- (void)setCurrentLanguageCode:(NSString *)code persist:(BOOL)persist;
|
||||
- (void)setCurrentLanguageCode:(KBLanguageCode)code persist:(BOOL)persist;
|
||||
|
||||
/// 清除用户选择,恢复为系统最佳匹配。
|
||||
- (void)resetToSystemLanguage;
|
||||
@@ -45,7 +55,7 @@ extern NSString * const KBLocalizationDidChangeNotification;
|
||||
value:(nullable NSString *)value;
|
||||
|
||||
/// 基于一组“偏好语言”计算最佳支持语言。
|
||||
- (NSString *)bestSupportedLanguageForPreferred:(NSArray<NSString *> *)preferred;
|
||||
- (KBLanguageCode)bestSupportedLanguageForPreferred:(NSArray<NSString *> *)preferred;
|
||||
|
||||
- (void)reloadFromSharedStorageIfNeeded;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user