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 相关文章推荐
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
Dec 04 Javascript
jQuery实现拖拽效果插件的方法
Mar 23 Javascript
JavaScript中String.prototype用法实例
May 20 Javascript
Javascript中的数据类型之旅
Oct 18 Javascript
js检查是否关闭浏览器的方法
Aug 02 Javascript
jQuery为动态生成的select元素添加事件的方法
Aug 29 Javascript
Vue2单一事件管理组件通信
May 09 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
Oct 09 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
JavaScript入门教程 Cookies
2009/01/31 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
在pycharm中实现删除bookmark
2020/02/14 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
学校司机岗位职责
2013/11/14 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
基层工作经验证明样本
2014/11/16 职场文书
2015世界地球日活动总结
2015/02/09 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers