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学习笔记(五)正则表达式
Apr 08 Javascript
Javascript实现滑块滑动改变值的实现代码
Apr 12 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
jQuery中大家不太了解的几个方法
Mar 04 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
vue 将页面公用的头部组件化的方法
Dec 18 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
JavaScript实现背景自动切换小案例
Sep 27 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
Thinkphp中Create方法深入探究
2014/06/16 PHP
php制作简单模版引擎
2016/04/07 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
在python shell中运行python文件的实现
2019/12/21 Python
django rest framework 过滤时间操作
2020/07/12 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
大学生工作求职信
2014/06/23 职场文书
励志演讲稿300字
2014/08/21 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
Python pandas求方差和标准差的方法实例
2021/08/04 Python
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python