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 相关文章推荐
动态加载iframe
Jun 16 Javascript
许愿墙中用到的函数
Oct 07 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
JS获取浏览器语言动态加载JS文件示例代码
Oct 31 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
详解Javascript获取缓存和清除缓存API
May 25 Javascript
基于jQuery封装的分页组件
Jun 26 jQuery
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
vue3如何优雅的实现移动端登录注册模块
Mar 29 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
php入门学习知识点三 PHP上传
2011/07/14 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
JS中常用的正则表达式
2016/09/29 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python selenium文件上传下载功能代码实例
2020/04/13 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
银行个人求职自荐信范文
2013/12/16 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
运动会广播稿200字
2014/10/18 职场文书
教师个人培训总结
2015/02/11 职场文书
2015年安全生产工作总结范文
2015/04/02 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
党员反四风学习心得体会
2016/01/22 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL