翻译功能
从 5.24.0 版本起,IMLib SDK(融云即时通讯能力库)支持对文本消息和纯文本内容进行翻译。您可以设置用户级别的翻译语言和自动翻译开关,也可为不同会话单独配置翻译策略。
开启翻译服务
请前往融云控制台开启翻译功能。
消息翻译结果
RCIMIWTextMessage
新增了 translateInfo
属性,用于存储翻译结果信息。
RCIMIWTranslateInfo 属性说明
属性 | 类型 | 说明 |
---|---|---|
translatedText | String? | 翻译后的内容 |
status | RCIMIWTranslateStatus? | 翻译状态(无、翻译中、成功、失败) |
targetLanguage | String? | 翻译目标语言 |
翻译状态枚举
RCIMIWTranslateStatus
枚举定义了翻译的各种状态:
none
:无翻译状态translating
:翻译中success
:翻译成功failed
:翻译失败
示例代码
Dart
// 检查文本消息是否有翻译信息
if (message.content is RCIMIWTextMessage) {
RCIMIWTextMessage textMessage = message.content as RCIMIWTextMessage;
RCIMIWTranslateInfo? translateInfo = textMessage.translateInfo;
if (translateInfo != null) {
switch (translateInfo.status) {
case RCIMIWTranslateStatus.success:
// 翻译成功,可以显示翻译结果
String? translatedText = translateInfo.translatedText;
String? targetLanguage = translateInfo.targetLanguage;
print('翻译成功: $translatedText (目标语言: $targetLanguage)');
break;
case RCIMIWTranslateStatus.translating:
// 翻译中,显示加载状态
print('翻译中...');
break;
case RCIMIWTranslateStatus.failed:
// 翻译失败,显示错误信息
print('翻译失败');
break;
default:
break;
}
}
}
会话翻译策略
RCIMIWConversation
新增了 translateStrategy
属性,用于标识会话级别的翻译策略。
会话翻译策略属性
属性 | 类型 | 说明 |
---|---|---|
translateStrategy | RCIMIWTranslateStrategy? | 会话的翻译策略 |
翻译策略枚举
RCIMIWTranslateStrategy
枚举定义了会话的翻译策略:
defaultFollowUser
:默认策略,会跟随用户级别的自动翻译方式autoOn
:自动翻译,该会话中的消息会自动翻译autoOff
:手动翻译,该会话中的消息不会自动翻译
示例代码
Dart
// 检查会话的翻译策略
RCIMIWTranslateStrategy? strategy = conversation.translateStrategy;
switch (strategy) {
case RCIMIWTranslateStrategy.defaultFollowUser:
// 使用默认策略,跟随用户级别设置
print('使用默认翻译策略');
break;
case RCIMIWTranslateStrategy.autoOn:
// 该会话开启自动翻译
print('该会话开启自动翻译');
break;
case RCIMIWTranslateStrategy.autoOff:
// 该会话关闭自动翻译
print('该会话关闭自动翻译');
break;
default:
break;
}