消息文本翻译
从 5.24.0 版本起,IMLib SDK(融云即时通讯能力库)支持对文本消息和纯文本内容进行翻译。您可以设置用户级别的翻译语言和自动翻译状态,也可为不同会话单独配置翻译策略。
IMLib SDK 提供了两个批量翻译接口:
translateMessagesWithParams:completionHandler:
:用于翻译文本消息(RCTextMessage
)内容。translateTextsWithParams:completionHandler:
:用于翻译任意文字内容。
提示
翻译功能需网络连接,请确保设备网络通畅。批量翻译内容可能耗时较长,接口不会直接返回翻译结果。请通过设置 RCTranslationDelegate
代理接收翻译内容。
开启翻译服务
请前往融云控制台开启翻译功能。
用户级全局设置
全局设置对同一用户的所有登录设备生效。一端设置后,其他设备可通过 RCTranslationDelegate
代理获得变更通知。
设置翻译目标语言
通过 setTranslationLanguage:completionHandler:
接口可设置用户级别的翻译目标语言。支持的语种请参考翻译语言代码列表 。未设置时,默认目标语言为中文(zh
)。
参数说明
参数 | 类型 | 说明 |
---|---|---|
language | NSString | 翻译目标语言的语言代码 |
completionHandler | Block | 结果回调 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] setTranslationLanguage:@"zh"
completionHandler:^(RCErrorCode code) {
if (code == RC_SUCCESS) {
// 设置翻译语言成功
} else {
// 设置翻译语言失败
}
}];
获取翻译语言
通过 getTranslationLanguage:errorBlock:
接口可获取当前用户级别的翻译目标语言。
参数说明
参数 | 类型 | 说明 |
---|---|---|
successBlock | Block | 成功回调 |
errorBlock | Block | 失败回调 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] getTranslationLanguage:^(NSString * _Nonnull language) {
// 获取翻译语言成功
NSLog(@"当前翻译语言: %@", language);
} errorBlock:^(RCErrorCode errorCode) {
// 获取翻译语言失败
NSLog(@"getTranslationLanguage: code:%ld", errorCode);
}];
标记自动翻译状态
注意
IMLib SDK 本身不包含自动翻译功能,仅用于向应用的业务逻辑提供开关存储和多端状态同步。
通过 setAutoTranslateState:completionHandler:
接口可标记用户级别的自动翻译状态。
参数说明
参数 | 类型 | 说明 |
---|---|---|
isEnable | BOOL | 是否标记为自动翻译 |
completionHandler | Block | 结果回调 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] setAutoTranslateState:YES
completionHandler:^(RCErrorCode code) {
if (code == RC_SUCCESS) {
// 标记自动翻译状态成功
} else {
// 标记自动翻译状态失败
}
}];
获取自动翻译状态
通过 getAutoTranslateEnabled:errorBlock:
接口可获取当前用户级别的自动翻译状态。