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之对系统的toFixed()方法的修正
May 08 Javascript
学习ExtJS TextField常用方法
Oct 07 Javascript
javascript来定义类的规范小结
Nov 19 Javascript
jQuery插件开发详细教程
Jun 06 Javascript
纯JavaScript代码实现文本比较工具
Feb 17 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 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
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
一些常用的php简单命令代码集锦
2007/09/24 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
PHPThumb图片处理实例
2014/05/03 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
基于Python中的yield表达式介绍
2019/11/19 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
介绍一下游标
2012/01/10 面试题
《孔子拜师》教学反思
2014/02/24 职场文书
公证委托书格式
2014/09/13 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年幼儿园教研工作总结
2014/12/04 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
golang中字符串MD5生成方式总结
2021/07/04 Golang
python处理json数据文件
2022/04/11 Python