集成百度翻译(electron javaScript)

本文介绍集成百度翻译,实现自有功能的步骤

一、开发准备

首先需要去百度翻译开发平台官网注册账号,获取访问api需要的应用id和密钥。

官网地址:http://api.fanyi.baidu.com/api/trans/product/index

选择自己需要集成的服务,我这里需要集成的服务是简单的文本翻译,选择文本翻译服务创建一个应用,即可获得请求需要的应用id和密钥,我这里已经创建完了。

官方给出了详细的集成文档,可以下载需要用大的卡法语言demo,进行测试调试

二、javaScript集成方式

我这里介绍前端的集成方式,准备好官方要求的参数,请求即可

代码示例:

export const baiduTranslate = async (config, params) => {
  const query = params.query.join('\n')
  const apiUrl = config.apiUrl
  const appId = config.appId
  const appSecret = config.appSecret
  const salt = new Date().getTime()
  const from = 'auto'
  const to = params.to
  const str = appId + query + salt + appSecret
  const sign = MD5(str)

  const details = {
    appid: appId,
    salt: salt,
    from: from,
    to: to,
    sign: sign,
    q: query
  }

  const formBody = []
  for (const property in details) {
    const encodedKey = encodeURIComponent(property)
    const encodedValue = encodeURIComponent(details[property])
    formBody.push(encodedKey + '=' + encodedValue)
  }

  const requestOptions = {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },
    body: formBody.join('&')
  }

  try {
    const resp = await fetch(apiUrl, requestOptions)

    // 处理可能出现的错误
    if (!resp.ok) {
      console.log(resp)
      return []
    }
    const result = await resp.json()
    if (result['trans_result']) {
      return result['trans_result']
    } else {
      console.log('调取百度翻译错误:' + result['error_msg'])
      return []
    }
  } catch (error) {
    console.error('translate', error)
  }
}

需要注意以下几点:

  1. 请求可以使用GET或POST,如果是POST请求Content-Type一定是application/x-www-form-urlencoded;charset=UTF-8

  1. POST请求时,由于参数体是x-www-form-urlencoded,所以参数是&分隔拼接在url上的

  1. 参数q既是需要翻译的文本,如果想要批量翻译,则多个需要翻译的文本用代码可识别的【\n】分隔。

  1. 参数进行URL encode,但要注意拼接签名用到的q不需要进行URL encode,请求参数结构体中的q必须进行URL encode

  1. 请求的q控制在6000字节以内,约中文2000个字符,如果翻译的文本较多,这里需要分段去做请求,但是百度翻译对于标准版服务,QPS(每秒请求量)=1,如需更大频率,请先进行身份认证,认证通过后可切换为高级版(适用于个人,QPS=10)或尊享版(适用于企业,QPS=100)。

三、查看效果

我是集成在浏览器上,右键翻译页面这个功能,遍历页面上所有的节点,取出需要翻译的文字,切片请求结果,将结果再回填到页面上。

  1. 官方给出详细的错误码列表,如遇返回错误,可以对照错误码列表查找问题

  1. 翻译超额是付费的,根据享受的版本不同,每日免费的字符数不同,超过免费的额度,需要付费才可翻译,详细的流水记录可以在控制台上查看。

简单示例,欢迎大家查阅指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值