首先,这是一个java web项目.所以我们要创建一个web项目,使用工具eclipse.

创建完成项目后,在WebContent下创建css和js文件夹,用来存放静态资源文件,在WebContent下新建一个jsp页面,用来做翻译的页面.

前台写的很渣,就不献丑了,有一点要记住,就是一般情况下用link标签引入css文件,用script引入js文件.这是我的前台页面,抄的百度翻译(省略版),毕竟我不是要做一个百度

  1. 这个是jsp源码

    index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>百度翻译</title><script type="text/javascript" src="js/jquery-3.2.1.js"></script><link rel="icon" type="image/png"href="//fanyi.bdstatic.com/static/translation/img/favicon/favicon-32x32_ca689c3.png"sizes="32x32" />
<link rel="icon" type="image/png"href="//fanyi.bdstatic.com/static/translation/img/favicon/favicon-16x16_e1883cf.png"sizes="16x16" />
<link rel="shortcut icon" type="image/x-icon"href="//fanyi.bdstatic.com/static/translation/img/favicon/favicon_d87cd2a.ico" />
<link rel="bookmark" type="image/x-icon"href="//fanyi.bdstatic.com/static/translation/img/favicon/favicon_d87cd2a.ico" /><link rel="stylesheet" type="text/css" href="./css/main.css">   </head>
<body><img class="img_baidu"src="//fanyi.bdstatic.com/static/translation/img/header/logo_cbfea26.png"alt="" /><br /><div class="div_body"></div><br /><div class="div_from"><select id="from"><option value="auto">   自动检测    </option><option value="zh"> 中文  </option><option value="en"> 英语  </option><option value="yue">    粤语  </option><option value=" wyw">   文言文 </option><option value=" jp  ">  日语  </option><option value=" kor ">  韩语  </option><option value=" fra ">  法语  </option><option value=" spa ">  西班牙语    </option><option value=" th  ">  泰语  </option><option value=" ara ">  阿拉伯语    </option><option value=" ru  ">  俄语  </option><option value=" pt  ">  葡萄牙语    </option><option value=" de  ">  德语  </option><option value=" it  ">  意大利语    </option><option value=" el  ">  希腊语 </option><option value=" nl  ">  荷兰语 </option><option value=" pl  ">  波兰语 </option><option value=" bul ">  保加利亚语   </option><option value=" est ">  爱沙尼亚语   </option><option value=" dan ">  丹麦语 </option><option value=" fin ">  芬兰语 </option><option value=" cs  ">  捷克语 </option><option value=" rom ">  罗马尼亚语   </option><option value=" slo ">  斯洛文尼亚语  </option><option value=" swe ">  瑞典语 </option><option value=" hu  ">  匈牙利语    </option><option value=" cht ">  繁体中文    </option><option value=" vie ">  越南语 </option></select></div><div class="div_to"><select id="to"><option value=" zh  ">  中文  </option><option value=" en  ">  英语  </option><option value=" yue ">  粤语  </option><option value=" wyw ">  文言文 </option><option value=" jp  ">  日语  </option><option value=" kor ">  韩语  </option><option value=" fra ">  法语  </option><option value=" spa ">  西班牙语    </option><option value=" th  ">  泰语  </option><option value=" ara ">  阿拉伯语    </option><option value=" ru  ">  俄语  </option><option value=" pt  ">  葡萄牙语    </option><option value=" de  ">  德语  </option><option value=" it  ">  意大利语    </option><option value=" el  ">  希腊语 </option><option value=" nl  ">  荷兰语 </option><option value=" pl  ">  波兰语 </option><option value=" bul ">  保加利亚语   </option><option value=" est ">  爱沙尼亚语   </option><option value=" dan ">  丹麦语 </option><option value=" fin ">  芬兰语 </option><option value=" cs  ">  捷克语 </option><option value=" rom ">  罗马尼亚语   </option><option value=" slo ">  斯洛文尼亚语  </option><option value=" swe ">  瑞典语 </option><option value=" hu  ">  匈牙利语    </option><option value=" cht ">  繁体中文    </option><option value=" vie ">  越南语 </option></select> &nbsp; &nbsp; &nbsp; <input type="button" value="翻译" id="but_Trans"><br /></div><br /><textarea id="query" onclick="this.value='';focus()">此处为输入翻译的内容</textarea><textarea id="result" readonly="readonly"></textarea></div>
</body>
<script type="text/javascript">$(function(){$("#but_Trans").click(function(){var query = $("#query").val();var from = $("#from").val();var to = $("#to").val();$.ajax({url:"/Trans/trans",type:"POST",data:{query:query,from:from,to:to},success:function(result){var json = $.parseJSON(result);var dst = "";for (var i = 0; i < json.trans_result.length; i++) {dst += json.trans_result[i].dst; + "<br/>"}$("#result").html(dst);}}); });});</script>
</html>

使用ajax进行前后台的调用,参数主要有from(自动识别区) , to(你想要翻译成的语言) , query(你要翻译的句子),这里有个小技巧,select中option有很多,所有我利用了excel的快捷性进行了复制,然后字体语言什么的都是百度翻译api文档中复制的,要想使用百度翻译功能也必须在api中注册才能使用,这个是路径(http://api.fanyi.baidu.com/api/trans/product/apidoc),具体效果如下:
是不是很简单呢! ^_^

接下来是具体的java代码了.首先呢,把百度提供的apiDEMO下载下,下载地址还是上面的路径,一开始我以为会是类似jar包的东西,BUT,居然是java源码,哈哈哈,没错,就是java文件…..

我呢,为了项目的模块和分层(其实就一个翻译),我的项目结构是这样的,将下载下的java文件添加到项目中,同时controller进行数据的传递,util进行翻译(相当于一个dao,不过不是接口,他的作用就是用来返回结果的,具体的翻译实现还是api下的文件实现的),然后config目录下,我是用来存放我的appid和密钥的.

TransUtil.java

import java.util.ResourceBundle;import songyu.li.api.TransApi;public class TransUtil {public final static  String APP_ID ;public final static  String SECRET_KEY;static {ResourceBundle rb = ResourceBundle.getBundle("api_config");APP_ID = rb.getString("APP_ID");SECRET_KEY = rb.getString("SECRET_KEY");}public static String getResult(String query , String from , String to) {TransApi api = new TransApi(APP_ID, SECRET_KEY);return api.getTransResult(query, from, to);}}

ps:通过ResourceBundle来读取config下的配置文件api_config.properties,然后静态加载到常量中.(config文件就不展示了,毕竟appid和密钥还是隐私的)

TransController.java

import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import xxxx.xxxx.utils.TransUtil;/*** 翻译Controller 前台ajax传过来的值通过@webservlet("/trans")进入Controller** @ClassName : TransController* @Description : TODO(这里是对当前类的描述)* @author : * @date : 2018年3月23日下午3:11:04**/
@WebServlet("/trans")
public class TransController extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String query = req.getParameter("query");String from = req.getParameter("from");String to = req.getParameter("to");String result = TransUtil.getResult(query, from.trim(), to.trim());resp.getWriter().println(result);}}

ps:controller继承了HttpServlet ,重写了dopost方法,通过req.getParameter(“name”)来获取参数的值(注意:在进行name获取的时候,由于我是从excel中复制过去的,所有在数据的前后都是有\t 的,接到的值都有空格,这个时候就使用到了String的trim()方法,它就是用来去掉数据前后的空格的),通过resp.getWriter().println(result)来返回到ajax中,默认返回一个字符串,需要再前台进行字符串解析成json然后取出数据.下面这个就是是默认返回的String格式的数据.

具体的源码:https://github.com/LeeSongYu/Trans (去config目录版)

使用百度翻译api制作自己的字典相关推荐

  1. python+百度翻译api制作中英文互转的代码应用实例

    本篇文章主要讲解,python+百度翻译api制作中英文互转的代码应用实例 作者:任聪聪 前提准备 1.python 3.9版本 2.注册百度翻译开发者 地址:https://fanyi-api.ba ...

  2. 【新手】基于C++Qt5通过调用百度翻译API制作简易翻译工具

    基于C++Qt5通过调用百度翻译API制作简易翻译工具 目录 基于C++Qt5通过调用百度翻译API制作简易翻译工具 写在前面 步骤: 1.注册百度翻译开放平台账号并开通翻译服务 2.下载安装Qt5和 ...

  3. Python下借助百度翻译API制作一个翻译pdf的小工具-01

    出于需要经常会读一些英语的pdf文档,奈何英语太差只得借助机翻.每次都需要把pdf里的文档复制粘贴到翻译软件里,接着在把结果复制到word文档里,之间还需要排版什么的.今天突然发现百度翻译有一个公开的 ...

  4. 基于调用百度翻译API的简易翻译器(python)

    基于调用百度翻译API的简易翻译器 一.使用自己的百度账号登录百度翻译开放平台获取百度翻译API 使用您的百度账号登录百度翻译开放平台(http://api.fanyi.baidu.com): 注册成 ...

  5. 制作一个Java即时翻译器——网页抓取调用百度翻译API

    第一次在CSDN写博客,想着记录一下自己一些作业过程中的问题和心得,没想到要用Markdown语言写,说实话我还真没用过呢,还要边学边写.话不多说,进入正题. 1.引言 平时在上网浏览网站或者阅读一些 ...

  6. python百度翻译接口_python3 调用百度翻译API翻译英文

    自行申请百度开发者账号import importlib,sys,urllib importlib.reload(sys) import urllib.request import json #导入js ...

  7. C#调用百度翻译API

    使用示例: 百度返回的结果是分段的,可以发送带有换行的文字翻译. 但获取翻译结果时不能带有换行. 含有大量文档注释,按住ctrl然后鼠标点击链接可以跳转到链接 完整的语种列表可以使用包含类Langua ...

  8. Python3.X 调用百度翻译API和有道翻译API

    最近在阅读外文文献时由于自己英文水平不够,看起来很吃力.但是PDF格式的文献复制出来会有很多莫名其妙的换行,所以想自己写一个翻译软件去掉多余的换行并且进行翻译. 首先,我的想法是使用谷歌翻译,但是无奈 ...

  9. 前端js调用百度翻译api接口

    目录 1.到百度翻译开放平台注册自己的账号 2.编辑html代码,设计一个简易的页面 3.远程调用百度翻译api 4.完整代码 5.测试 到百度翻译开放平台注册自己的账号 (1)进入网页:开放平台官网 ...

最新文章

  1. SparkSQL(Spark-1.4.0)实战系列(一)——DataFrames基础
  2. 使用js实现时钟效果
  3. 怎么把路由的#号去掉_VLAN应用篇系列:交换机VLAN间路由与传统单臂路由(子接口)方式...
  4. 【视觉盛宴三】不好意思,这些线材接口的横截面真的没见过
  5. PHP使用header方式实现文件下载
  6. linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区
  7. Robo 3T 安装连接 MongoDB
  8. java 阻塞 socket_java socket非阻塞I/O
  9. centos php 开启libgdgd_CentOS6.5安装Nginx1+MySQL5+PHP5
  10. VMware ESXi/ESX 的内部版本号和版本 (2143832)-2020-10-27更新
  11. bind9局域网其他用户不能解析_linux dns server bind9 内网域名解析
  12. Unity UGUI坐标与世界坐标转换
  13. Airtest多点触控测试
  14. Spring AOP(面向切面)
  15. 猴王问题(项目分析以及项目实现)
  16. B站黑马Python笔记,打卡day3
  17. 二维高斯曲面拟合法求取光斑中心
  18. 计算机原理实验红绿灯转换,微机原理实验交通灯控制实验.doc
  19. 计算机技术在风景园林中的应用和选择,现代信息技术在风景园林中的应用论述(原稿)...
  20. IT嘚吧嘚 盘点2015企业与互联网+的私语

热门文章

  1. sun.misc.Cleaner实现堆外内存回收
  2. Java统计数组中各个数字出现的个数和字符串中各个字符出现的个数
  3. Spring——Spring整合MyBatis
  4. 基于RTSP的流媒体播放器制作(2)
  5. 【爬虫】第一部分 urllib
  6. linux操作系统 第09章 操作系统接口
  7. C语言--第三次作业
  8. Java中夏令时问题
  9. LocalDate和LocalDate比较相隔多少天及相隔几年几月几天
  10. python3编译安装