客户可以对线上文案进行热更新修复,并避免重新发版成本,直接将补丁下发至指定版本。
客户端补丁发布流程请参考客户端补丁发布。
https://github.com/volcengine/volcengine-specs/tree/master/VolcI18nSDK/0.0.4
源:'https://github.com/volcengine/volcengine-specs.git'
Cocoapods 接入:
pod 'VolcI18nSDK', '0.0.4'
Subspec:
VolcI18nConfig *config = [[VolcI18nConfig alloc] init]; config.version = @"version"; config.deviceId = @"deviceID"; config.geckoAccessKey = @"accessKey"; /// 文案内容cache根目录 config.cacheRootDirectory = @"cacheRootDirectory"; /// 业务前缀需要从国际化翻译平台获取“空间标识“ config.namespace = @"xxx"; config.locale = @"xxx"; config.host = @"xxx";//client-api.multilingual-volc.com config.completionBlock = ^(BOOL succeed, BDSPatchLoadStatus status) { /// 资源加载成功回调 ///在回调函数中对接业务自己的i18n国际化逻辑 }; [[VolcI18nManager sharedInstance] startWithConfig:config];
Note:
其中version,deviceId,geckoAccessKey,cacheRootDirectory 这4个参数系分发相关参数,必须保证一个应用下,初始化的参数是完全一致的
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| version | String | 是 | 应用版本号 |
| geckoAccessKey | String | 是 | 补丁发布Access Key |
| deviceId | String | 否 | 设备ID |
| cacheRootDirectory | String | 否 | 文案内容cache根目录 |
具体请参考客户端补丁发布
如果需要自动把资源拷贝到其他目录,可以设置如下两个参数
VolcI18nConfig *config = [[VolcI18nConfig alloc] init]; config.autoMove = YES; config.autoMoveTargetPath = @"deviceID";
[[VolcI18nManager sharedInstance] setCurrentPatchLocale:@"en" completion:^(BOOL succeed, BDSPatchLoadStatus status) { /// 资源切换成功回调 /// AWELocalizations需要重新加载 [[ALPLocalizationsManager sharedInstance] renewCurrentLanguage]; }];
#import <VolcI18nSDK/VolcI18nManager.h>
+ (instancetype)sharedInstance;
@property (nonatomic, assign) BOOL enable; // default YES
- (void)startWithConfig:(VolcI18nConfig *)config;
- (void)setCurrentPatchLocale:(NSString *)locale completion:(nonnull BDSPatchLoadStatusBlock)completion;
/// 普通文案 BDSLocalizedString(key) /// 带占位符普通文案 BDSLocalizedStringWithFormat(key, ...) /// 带占位符复数文案,返回仍带占位符 BDSPluralizedString(text, ...) /// 带占位符复数文案,返回不带占位符 BDSPluralizedStringWithFormat(text, ...)
/** * @brief 普通文本翻译 * @param string --- key * * 注意:优先使用宏定义调用 */ - (nullable NSString *)translatedStringForString:(nullable NSString *)string; /** * @brief 复数文本翻译 * @param string --- key * @param pluralValues --- 复数值 * * 注意:优先使用宏定义调用,返回值带有占位符,未进行format */ - (nullable NSString *)translatedStringForString:(NSString *)string pluralValues:(NSArray<NSNumber *> *)pluralValues;
BDSPatchLoadStatusGeckoError = -2, BDSPatchLoadStatusUnknown = -1, /// 更新成功 BDSPatchLoadStatusSuccess = 0, /// 更新失败 BDSPatchLoadStatusFailed = 1, /// 无需更新 BDSPatchLoadStatusUnavailable = 2000,
只有在启动或切换语言时才会拉取资源
因为资源是异步加载的,回调中可能需要重新reload
确保分发所需参数在任意位置有相同的设置,否则会触发断言
接入遇到问题,欢迎发起工单进行咨询。