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小数计算出现近似值的解决办法
Feb 06 Javascript
JavaScript插件化开发教程 (二)
Jan 27 Javascript
javascript轻量级库createjs使用Easel实现拖拽效果
Feb 19 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
详解使用vue实现tab 切换操作
Jul 03 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
自己动手封装一个React Native多级联动
Sep 19 Javascript
关于单文件组件.vue的使用
Sep 20 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 Javascript
详解如何在Javascript和Sass之间共享变量
Nov 13 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
ASP知识讲座四
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
详解python with 上下文管理器
2020/09/02 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
初三学习决心书
2014/03/11 职场文书
汽车广告策划方案
2014/05/31 职场文书
百万英镑观后感
2015/06/09 职场文书
python本地文件服务器实例教程
2021/05/02 Python
利用Python+OpenCV三步去除水印
2021/05/28 Python
Python socket如何解析HTTP请求内容
2022/02/12 Python
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
mysql数据库隔离级别详解
2022/06/16 MySQL
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers