====== 翻译 Web ======
更新时间:2022 年 4 月 29 日
文本消息支持翻译功能,包含按需翻译和自动翻译。
* 按需翻译:收到消息时,接收方将消息内容翻译成目标语言。
* 自动翻译:用户发送消息时,SDK 根据设置的目标语言自动翻译消息内容,然后将消息原文和译文一并发送给消息接收方。
**注意:**
翻译服务由 Microsoft Azure Translator API 提供支持。可以在 [[https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support|Microsoft Azure Translator Language Suppor]] 页面查看目前支持的语言。
===== 前提条件 =====
开始前,请确保满足以下条件:
- 完成 ''%%4.0.4 以上版本%%'' SDK 初始化,详见 [[ccim:web:quickstart|快速开始]]。
- 了解环信即时通讯 IM API 的[[https://docs-im.easemob.com/ccim/limitation|使用限制]]。
- 已联系商务开通翻译功能。
===== 技术原理 =====
Web SDK 支持你通过调用 API 在项目中实现如下功能:
* ''%%getSupportedLanguages%%'':获取支持的翻译语言;
* ''%%translateMessage%%'':翻译文本消息;
* 设置自动翻译。
按需翻译文本消息示例如下:
{{:ccim:web:web_chat_control.png|}}
===== 实现方法 =====
==== 获取翻译服务支持的语言 ====
翻译前需获取翻译服务支持的语言,示例代码如下:
conn.getSupportedLanguages().then(res => console.log(res))
==== 翻译消息 ====
先调用 ''%%getSupportedLanguages%%'' 获取每种语言对应 code,然后可以将文本翻译成一种或多种目标语言。
示例代码如下:
conn.translateMessage('hello', ['zh']).then(res => console.log(res))
==== 发消息时自动翻译 ====
设置目标语言后,在发送消息时 SDK 会自动将文本翻译为目标语言,并将目标语言一并发送出去。
示例代码如下:
// 发送消息。
let option = {
chatType: 'singleChat',
type: 'txt',
to: 'userId',
msg: 'hello',
msgConfig:{ languages: ['zh'] } // 设置目标语言。
}
let msg = WebIM.message.create(option);
conn.send(msg)
// 接收消息。
conn.addEventHandler('MESSAGE', {
onTextMessage: (message) => {
console.log('message', message.translations)
}
})