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 DOM模型操作
Dec 28 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
Jun 14 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
javascript函数声明和函数表达式区别分析
Dec 02 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
JS获取input file绝对路径的方法(推荐)
Aug 02 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
Angularjs 1.3 中的$parse实例代码
Sep 14 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
React+TypeScript+webpack4多入口配置详解
Aug 08 Javascript
使用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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python生成器(Generator)详解
2015/04/13 Python
Python 爬虫图片简单实现
2017/06/01 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
校运会广播稿100字
2014/01/27 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
销售提升方案
2014/06/07 职场文书
海洋科学专业求职信
2014/08/10 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
政风行风建设整改方案
2014/10/27 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Golang 字符串的常见操作
2022/04/19 Golang