vue cli3 调用百度翻译API翻译页面的实现示例


Posted in Javascript onSeptember 13, 2019

首先说下,本人为在校大三狗一只,缺少实战开发经验,然后用语什么的也不标准,就按我自己的想法写的,有什么不对的地方欢迎指导指导哈

然后直接开始吧

在需要翻译的地方做上标记,这里用的是添加名为"text-dom"的class的方法。比如:

<div class="text-dom">原文:</div>

定义储存数据的data

data() {
  return {
   before: {
    q: "", //输入的原文
    to: "" //选择目标语言
   }, //保存初始数据
   appid: "2019*********2613", //百度翻译开放平台的个人AppId
   salt: "14*******88", //随机数
   q: "", //请求翻译文本
   from: "aotu", //源语言
   to: "en", //目标语言
   sign: "", //签名
   userkey: "y0Ly*********gJSAs", //百度翻译开放平台的个人密匙
   fyjg: "" //翻译结果
  };
 },

页面渲染完成时,获取页面上的待翻译原文内容

mounted() {
  /* 获取页面所有原文本存放到数组 */
  var textDomArr = new Array();
  $(".text-dom").each(function() {
   textDomArr.push($(this).text());
  });
  /* 拼接所有原文本,并用@符号分隔*/
  var textAllBefore = textDomArr.join("@");
  /* 清除原文本其他符号 */
  var textAll = textAllBefore.replace(/[::\|\\\*^%$#\-]/g, "");
  /* 储存原文本到data中 */
  this.before.q = textAll;
 },

创建一个翻译函数

methods: {
  fanyi() {
   /* 待翻译文本 传入url */
   this.q = this.before.q;
   /* 从页面获取选择的目标语言 传入url */
   this.to = this.before.to;
   /* md5加密,生成签名 */
   this.sign = md5(this.appid + this.q + this.salt + this.userkey);
   /* 对待翻译字符做url编码 */
   this.q = encodeURIComponent(this.before.q);
   /* 请求翻译 */
   this.axios
    .get(
     "/sell/api/trans/vip/translate" +
      "?q=" +
      this.q +
      "&from=" +
      this.from +
      "&to=" +
      this.to +
      "&appid=" +
      this.appid +
      "&salt=" +
      this.salt +
      "&sign=" +
      this.sign
    )
    /* 得到返回数据 */
    .then(res => {
     this.fyjg = res.data.trans_result[0].dst; //得到翻译结果

     /* 把翻译结果分割成数组 */
     var yiwenArr = new Array();
     yiwenArr = this.fyjg.split("@");
     //console.log(yiwenArr);

     /* 用译文替换页面原文 */
     var n = 0;
     $(".text-dom").each(function() {
      $(this).text(yiwenArr[n]);
      n++;
     });
    });
  }
 }

html部分可以用select切换翻译的目标语言

<select v-model="before.to" @change="fanyi()">
    <option value="zh">简体中文</option>
    <option value="cht">繁体中文</option>
    <option value="yue">粤语</option>
    <option value="en">英语</option>
    <option value="kor">韩语</option>
    <option value="jp">日语</option>
    <option value="fra">法语</option>
   </select>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
上传的js验证(图片/文件的扩展名)
Apr 25 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
Sep 06 Javascript
moment.js轻松实现获取当前日期是当年的第几周
Feb 05 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
jquery.qtip提示信息插件用法简单实例
Jun 17 Javascript
JavaScript中自带的 reduce()方法使用示例详解
Aug 10 Javascript
Form表单上传文件(type=&quot;file&quot;)的使用
Aug 03 Javascript
vue-cli 如何打包上线的方法示例
May 08 Javascript
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
使用VScode 插件debugger for chrome 调试react源码的方法
Sep 13 #Javascript
layui实现把数据表格时间戳转换为时间格式的例子
Sep 12 #Javascript
深入了解JavaScript 防抖和节流
Sep 12 #Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 #Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 #Javascript
浅谈bootstrap layer.open中end的使用方法
Sep 12 #Javascript
layer iframe 设置关闭按钮的方法
Sep 12 #Javascript
You might like
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php正则表达式(regar expression)
2011/09/10 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
分页栏的web标准实现
2011/11/01 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
实现vuex原理的示例
2020/10/21 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
python妙用之编码的转换详解
2017/04/21 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
Django框架模板用法入门教程
2019/11/04 Python
python常用排序算法的实现代码
2019/11/08 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
高级销售员求职信
2013/10/25 职场文书
消防器材管理制度
2014/01/28 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
产品销售计划书
2014/05/04 职场文书
大学生找工作求职信
2014/07/09 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
通报表扬范文
2015/01/17 职场文书
小学教师教学随笔
2015/08/14 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
代码解析React中setState同步和异步问题
2021/06/03 Javascript