跳到主要内容

版本:5.X

IM 翻译插件

注意

  • IMLib 从 5.1.2 版本开始支持翻译插件。
  • 该插件暂仅适用于使用新加坡数据中心的应用。详见海外数据中心

融云即时通讯业务提供翻译插件,可为 IMLib SDK 快速接入外部翻译服务,由融云服务端负责对接外部翻译服务供应商的鉴权、API 调用、账号管理、计费等流程。翻译插件支持翻译文本。

目前已支持接入 Google 翻译服务。

翻译流程

服务开通

该功能为付费增值服务。如有需求,请前往控制台 IM 翻译页面开通服务。

关于 IM 翻译服务费用,详见 IM 翻译计费说明

客户端鉴权

客户端需要持有有效的 JWT Token,才能向融云请求翻译结果。

您的 App 服务端需要调用融云服务端 API 接口获取 JWT Token,然后返回给客户端。详见服务端文档获取 JWT Token

注意

翻译插件鉴权专用的 JWT Token 不同于 IM 用户连接 IM 服务的 Token,请注意区分。

JWT

JWT 全称 JSON web Token,是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准。 JWT 包含 header、payload、signature 三部分。通过解析 payload 部分可获取到 Token 有效期和 UserId 等信息。

获取和刷新 JWT Token 流程图

IMKit 使用翻译插件

Web IMKit 暂不支持使用翻译插件。

IMLib 使用翻译插件

  1. 安装插件

    示例代码

    • NPM 方式:

      npm install @rongcloud/engine @rongcloud/imlib-next @rongcloud/plugin-translate -S
    • CDN 方式:

      <script src="https://cdn.ronghub.com/RCTranslate-1.0.1.prod.js"></script>
  2. 初始化,并连接融云 IM 服务。

    示例代码

    import * as RCTranslate from '@rongcloud/plugin-translate'
    import * as RongIMLib from '@rongcloud/imlib-next'

    // 初始化 IM
    RongIMLib.init({ appkey: '<appkey>' })
    const translateClient = RongIMLib.installPlugin(RCTranslate.installer)
    RongIMLib.connect('<token>').then(res => {
    if (res.code === 0) {
    console.log('连接成功')
    }
    })
  3. 在用户登录成功之后,需先判断当前是否已开通翻译服务。

    示例代码

    translateClient.isSupport()
  4. 在确认支持翻译服务之后,可以开始进行客户端鉴权。App 需要向自身的应用服务器发起请求,由应用服务器调用融云服务端 API 获取 JWT Token。App 获取 JWT Token 后,通过 setAuthToken 接口设置到 SDK 中。

    示例代码

    translateClient.setAuthToken('<鉴权token>')
  5. 调用 translateText 翻译文本

    示例代码

    const params = {
    content: '', // 要翻译的文本
    target: RCTranslate.LanguageVerify.zh_CN, // 目标语言类型
    source: RCTranslate.LanguageVerify.en // 源语言类型
    }
    translateClient.translateText(params).then(({code, data}) => {
    if (code === RCTranslate.TranslateCode.TranslateCodeSuccess) {
    // data: 翻译结果
    console.log('翻译成功', data)
    } else {
    // code: 失败状态码
    console.log('翻译失败', code)
    }
    })

    注意

    源语言类型为可选参数。Google 翻译服务会自动识别待翻译文本的源语言,并仅以识别结果为准。

支持的语言类型

翻译插件支持的语言可参见文档中列出的语言列表。

Google 翻译服务

翻译插件已支持通过 Google Cloud Translation 服务翻译以下语言。更多细节,您可以直接参考 Google Cloud Translation 官方文档:语言列表

语言枚举值(已替换 ISO-639 语言代码中的 - 为 _)
南非荷兰语af
阿尔巴尼亚语sq
阿姆哈拉语am
阿拉伯语ar
亚美尼亚文hy
阿萨姆语as
艾马拉语ay
阿塞拜疆语az
班巴拉语bm
巴斯克语eu
白俄罗斯语be
孟加拉文bn
博杰普尔语bho
波斯尼亚语bs
保加利亚语bg
加泰罗尼亚语ca
宿务语ceb
中文(简体)zh_CN 或 zh
中文(繁体)zh_TW
科西嘉语co
克罗地亚语hr
捷克语cs
丹麦语da
迪维希语dv
多格来语doi
荷兰语nl
英语en
世界语eo
爱沙尼亚语et
埃维语ee
菲律宾语(塔加拉语)fil
芬兰语fi
法语fr
弗里斯兰语fy
加利西亚语gl
格鲁吉亚语ka
德语de
希腊文el
瓜拉尼人gn
古吉拉特文gu
海地克里奥尔语ht
豪萨语ha
夏威夷语haw
希伯来语he 或 iw
印地语hi
苗语hmn
匈牙利语hu
冰岛语is
伊博语ig
伊洛卡诺语ilo
印度尼西亚语id
爱尔兰语ga
意大利语it
日语ja
爪哇语jv 或 jw
卡纳达文kn
哈萨克语kk
高棉语km
卢旺达语rw
贡根语gom
韩语ko
克里奥尔语kri
库尔德语ku
库尔德语(索拉尼)ckb
吉尔吉斯语ky
老挝语lo
拉丁文la
拉脱维亚语lv
林格拉语ln
立陶宛语lt
卢干达语lg
卢森堡语lb
马其顿语mk
迈蒂利语mai
马尔加什语mg
马来语ms
马拉雅拉姆文ml
马耳他语mt
毛利语mi
马拉地语mr
梅泰语(曼尼普尔语)mni_Mtei
米佐语lus
蒙古文mn
缅甸语my
尼泊尔语ne
挪威语no
尼杨扎语(齐切瓦语)ny
奥里亚语(奥里亚)or
奥罗莫语om
普什图语ps
波斯语fa
波兰语pl
葡萄牙语(葡萄牙、巴西)pt
旁遮普语pa
克丘亚语qu
罗马尼亚语ro
俄语ru
萨摩亚语sm
梵语sa
苏格兰盖尔语gd
塞佩蒂语nso
塞尔维亚语sr
塞索托语st
修纳语sn
信德语sd
僧伽罗语si
斯洛伐克语sk
斯洛文尼亚语sl
索马里语so
西班牙语es
巽他语su
斯瓦希里语sw
瑞典语sv
塔加路语(菲律宾语)tl
塔吉克语tg
泰米尔语ta
鞑靼语tt
泰卢固语te
泰语th
蒂格尼亚语ti
宗加语ts
土耳其语tr
土库曼语tk
契维语(阿坎语)ak
乌克兰语uk
乌尔都语ur
维吾尔语ug
乌兹别克语uz
越南语vi
威尔士语cy
班图语xh
意第绪语yi
约鲁巴语yo
祖鲁语zu

状态码

状态码原因
26200翻译成功
26201翻译失败,融云鉴权失败 鉴权失败或者 token 过期
26202翻译失败,翻译功能服务商鉴权失败 融云服务器的原因,token 无效
26203翻译失败,翻译功能服务商返回失败 具体服务商失败码信息
26204翻译失败,翻译功能未在融云开启
26205翻译失败,融云限流
26206翻译失败,Server 没有鉴权 token 的 sercret 需要在控制台开启
34100没有设置 authToken 或者 authToken 为 空串
34101待翻译文本内容为空
34102目标语言为空