更新时间:2022 年 07 月 08 日
文本消息支持翻译功能,包含按需翻译和自动翻译。
注意: 翻译服务由 Microsoft Azure Translator API 提供支持。可以在 Microsoft Azure Translator Language Suppor 页面查看目前支持的语言。
Android SDK 支持你通过调用 API 在项目中实现如下功能:
fetchSupportedLanguages
:获取支持的翻译语言;translateMessage
:翻译文本消息;如下为按需翻译示例:
获取支持的翻译语言的过程如下:
//获取支持的翻译语言。
EMClient.getInstance().chatManager().fetchSupportLanguages(new EMValueCallBack<List<EMLanguage>>(){});
翻译消息需要设置目标语言,翻译调用过程如下:
List<String> languageList = new ArrayList<>();
languageList.add("en");
...
EMClient.getInstance().chatManager().translateMessage(
message,
languageList,
new EMValueCallBack<EMMessage>() {});
翻译成功之后,译文信息会保存到消息中,用户可调用 API 获取译文列表。获取过程如下:
EMTextMessageBody body = (EMTextMessageBody)message.getBody();
List<EMTranslationInfo> infoList = body.getTranslations();
设置消息体的目标翻译语言,发送消息时会将译文放在译文列表里发送给对方,设置过程如下:
...
EMTextMessageBody body = new EMTextMessageBody("文本内容");
body.setTargetLanguages(languageList);
...
同样可调用以下方法获取译文列表:
EMTextMessageBody body = (EMTextMessageBody)message.getBody();
List<EMTranslationInfo> infoList = body.getTranslations();