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 相关文章推荐
JavaScript中Math对象使用说明
Jan 16 Javascript
javascript常见用法总结
May 22 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
浅谈jQuery中height与width
Jul 06 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
Jul 27 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 Javascript
微信小程序 button样式设置为图片的方法
Jun 19 Javascript
Vue OpenLayer测距功能的实现
Apr 20 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
基于mysql的bbs设计(一)
2006/10/09 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
Symfony控制层深入详解
2016/03/17 PHP
关于php开启错误提示的总结
2019/09/24 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
详解Python中for循环的使用方法
2015/05/14 Python
python魔法方法-自定义序列详解
2016/07/21 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
《海伦?凯勒》教学反思
2014/04/17 职场文书
股东授权委托书范本
2014/09/13 职场文书
大连星海广场导游词
2015/02/10 职场文书
生日宴会祝酒词
2015/08/10 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
电频谱管理的原则是什么
2022/02/18 无线电
Win2008系统搭建DHCP服务器
2022/06/25 Servers