智能文本翻译
IMLib SDK(融云即时通讯能力库)自 5.24.0 版本起,内置了翻译功能。与原有 IM 翻译插件不同,内置翻译功能不限于新加坡数据中心,且无需额外安装依赖。
IMLib SDK 提供了两个批量翻译接口:
translateMessagesWithParams:用于翻译文本消息(RC:TxtMsg)内容。translateTextsWithParams:用于翻译任意文字内容。
提示
批量翻译内容可能耗时较长,接口不会直接返回翻译结果。请通过监听 Events.TRANSLATE_RESPONSE 事件获取翻译内容。由于服务有并发限制,同一批次的翻译内容会分批下发,事件也会多次触发。
开启翻译服务
请前往融云控制台开启翻译功能。
用户级全局设置
全局设置对同一用户的所有登录设备生效。一端设置后,其他设备可通过 Events.USER_SETTINGS_CHANGED 事件监听变更。
设置翻译目标语言
调用 setTranslationLanguage 设置全局目标翻译语言。支持的语种请参考翻译语言代码列表 。未设置时,默认目标语言为中文(zh) 。
JavaScript
RongIMLib
.setTranslationLanguage('en')
.then((res) => {
if (res.isOk) {
console.log('设置成功');
} else {
console.log('设置失败:', res.code);
}
})
查询翻译目标语言
调用 getTranslationLanguage 查询当前全局默认的目标语言。
JavaScript
RongIMLib
.getTranslationLanguage()
.then((res) => {
if (res.isOk) {
console.log('查询成功,当前目标语言配置:', res.data);
} else {
console.log('查询失败:', res.code);
}
})
标记自动翻译状态
注意
IMLib SDK 本身不包含自动翻译功能,仅用于向应用的业务逻辑提供开关存储和多端状态同步。
调用 setAutoTranslateEnabled 可标记用户级的自动翻译状态。
JavaScript
RongIMLib
.setAutoTranslateEnabled(true)
.then((res) => {
if (res.isOk) {
console.log('设置成功');
} else {
console.log(`设置失败:${res.code}`);
}
})
查询自动翻译状态
调用 getAutoTranslateEnabled 查询当前用户级自动翻译状态。
JavaScript
RongIMLib
.getAutoTranslateEnabled()
.then((res) => {
if (res.isOk) {
console.log('查询成功,当前自动翻译状态:', res.data ? '开启' : '关闭');
} else {
console.log('查询失败:', res.code);
}
})
监听全局配置变更
通过事件监听全局配置变更。
JavaScript
RongIMLib.addEventListener(Events.USER_SETTINGS_CHANGED, (evt) => {
switch (evt.key) {
case RongIMLib.UserSettingsChangedKey.TranslationLanguage:
console.log(`默认翻译语言变更:${evt.value}`);
break;
case RongIMLib.UserSettingsChangedKey.AutoTranslateEnable:
console.log(`自动翻译状态变更:${evt.value}`);
break;
}
});
会话级翻译策略
注意
IMLib SDK 本身不包含自动翻译功能,仅用于向应用的业务逻辑提供开关存储和多端状态同步。
IMLib SDK 支持会话级配置,可针对不同会话单独设置自动翻译策略。会话级配置对同一用户的所有设备生效,变更后其他设备可通过监听 Events.CONVERSATION 事件获取通知。