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代码
Jul 01 Javascript
js DOM模型操作
Dec 28 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
Feb 23 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
jquery div模态窗口的简单实例
May 28 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
vue.js实现插入数值与表达式的方法分析
Jul 06 Javascript
如何使用less实现随机下雪动画详解
Jan 02 Javascript
详解基于原生JS验证表单组件xy-form
Aug 20 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 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
短波收音机简介
2021/03/01 无线电
php实现的发送带附件邮件类实例
2014/09/22 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js中把JSON字符串转换成JSON对象最好的方法
2014/03/21 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
简单的分页代码js实现
2016/05/17 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
各个系统下的Python解释器相关安装方法
2015/10/12 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
Python中整数的缓存机制讲解
2019/02/16 Python
Python中url标签使用知识点总结
2020/01/16 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
诉讼代理人授权委托书
2014/04/08 职场文书
销售口号大全
2014/06/11 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
财务部岗位职责范本
2015/04/14 职场文书
海上钢琴师观后感
2015/06/03 职场文书
单位车辆管理制度
2015/08/05 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers