在线演示地址: 源代码翻译

两部分如下.

独立的Java代码翻译库

续前文代码翻译尝试-使用Roaster解析和生成Java源码

源码库: program-in-chinese/java_code_translator

功能

在前文基础上: 重构; 完善测试(基本涵盖主要接口); 小改进 - 支持数组类型的属性和方法返回类型的翻译, 如"String[]" -> "字符串[]"

源码节选

翻译Java代码.java, 按类/Bean属性/方法三部分翻译命名. 仍不处理方法内容.

  public static String 翻译源码结构(String 源码) {
JavaClassSource 类结构;
try {
类结构 = 取类结构(源码);
} catch (ParserException e) {
return e.getLocalizedMessage();
} 翻译类(类结构);
翻译属性(类结构);
翻译方法(类结构); return 类结构.toUnformattedString();
}

部署

暂未发布到Maven, 在部署时, 运行'mvn install'安装jar包到本地(服务器同样).

Spring Boot实现源码服务

续前文Java源码英翻中库以及服务原型

源码库: program-in-chinese/code_translator_service, maven依赖上面的库java_code_translator

前端部分暂时合在同一库"前端"文件夹: program-in-chinese/code_translator_service

功能

  • 前端方面

    • 实现了最简单的前端, 左边输入源码, 右边显示翻译结果
    • 支持语法高亮: 基于CodeMirror, 包括行号, 关键词高亮, 类名等等. 它支持100多编程语言, 适于今后添加其他语言支持.

源码节选

前端-Java模式语法高亮:

	var 输入 = CodeMirror.fromTextArea(document.getElementById("英文源码输入"), {
mode : "text/x-java",
lineNumbers : true,
matchBrackets : true
});
输入.setSize(500, 500);

前端-访问后台

$(document).ready(function() {
$("#翻译按钮").click(function() {
输出.setValue("处理中...");
$.post("http://74.91.17.250:8091/", {
code : 输入.getValue()
}, function(结果) {
输出.setValue(结果.内容);
}, "json");
});
});

后台部分-翻译控制器.java

@RestController
public class 翻译控制器 { private static final Logger 笔录 = LoggerFactory.getLogger(翻译控制器.class); @CrossOrigin(origins = "http://74.91.17.250:9000")
@RequestMapping(value = "/", method = RequestMethod.POST)
@ResponseBody
public 翻译 翻译(@RequestParam(name = "code", required = false, defaultValue = "") String 英文源码) {
笔录.info("输入: " + 英文源码);
return new 翻译(翻译Java代码.翻译源码结构(英文源码));
}
}

部署

后台部分

打包: mvn package

运行: nohup java -jar target/code_translator_service-0.0.1-SNAPSHOT.jar --server.port=8091 &

前端部分

服务器: 将'前端'的public部分拷贝到tomcat(设置port为9000).

本地调试: 运行'spring run app.groovy'即在8080启动前端服务; 需修改post地址为"http://localhost:8091/", 以正确配置CORS.

2018-09-24 Java源码英翻中网页演示的更多相关文章

  1. 2018-10-08 Java源码英翻中进展-内测上线

    创建了一个子域名: http://translate.codeinchinese.com/ 欢迎试用, 如有建议/发现问题欢迎在此拍砖: program-in-chinese/code_transla ...

  2. 2018-09-15 Java源码英翻中库以及服务原型

    服务很简单, 只为演示这个库, 源码在: program-in-chinese/code_translator_service. 在Postman测试效果: 演示服务地址: 74.91.17.250: ...

  3. java源码——统计字符串中字符出现的次数

    对于任意输入的一段字符串,读取并且计算其中所有字符出现的次数. 使用HashMap存储字符和其对应的出现的次数,输出时,对HashMap进行遍历. 难点在于对HashMap的遍历,第一次使用,也是学习 ...

  4. java源码研究--List中的set和add方法区别

    在处理一道题目是,发现他们使用了List 中的set 方法,这个方法我平时很少用到,今天来研究一下,set和add的区别 add(int index,Object obj)方法与set(int ind ...

  5. 常见算法合集[java源码+持续更新中...]

    一.引子 本文搜集从各种资源上搜集高频面试算法,慢慢填充...每个算法都亲测可运行,原理有注释.Talk is cheap,show me the code! 走你~ 二.常见算法 2.1 判断单向链 ...

  6. java源码——0~9十个数字不重复地使用使加法表达式成立

    这个问题是在我写个的几个博客里较为复杂的一个.首先,先看看整个问题的表述. 星号表示0~9的一个数字,而且不允许重复,使得下面的加法表达式成立.输出所有结果. ※ ※ ※ ※ ※    +  2   ...

  7. java源码——文件读写和单词统计

    本文要解决的问题:"键盘输入一段英语语句,将这段话写入content.txt中,然后输出这段话,并且统计语句中英文单词的数目以及各个单词出现的次数." 分析问题知,核心是文件读写和 ...

  8. 24点扑克牌游戏——(含java源码)(GUI实现)

    给出四个数字,要求,在其间添加运算符和括号,使得计算结果等于24. 括号的放置即为决定哪几个数先进行计算.所以,我们先确定首先进行计算的两个相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间 ...

  9. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

随机推荐

  1. LabVIEW(八):程序结构中的循环结构

    1.程序结构分为三种:循环结构.分支结构.顺序结构. 本文主要讨论循环结构. 2.While循环 左下角:循环计数端子i,从0开始计数,每进行一次循环,i自动增加1. 右下角:循环条件端子,当循环达到 ...

  2. 【PHP篇】数组

    1.简介:数组存储方式是键值对 2.声明:$数组变量名=array(2,3,9,3,“546”,“yy”=>”hhhh”,100=>”uu100”): 3.下标注意:可为“字符串”或者整数 ...

  3. ionic2 关于启动后白屏问题跟app启动慢的问题

    问题描述: 在ionic2下创建的项目打包生成apk,运行在真机上,进入启动页然后有5秒左右的白屏情况才进入首页,在真实项目中更严重,启动画面后更有时候十几秒都是白屏,体验性非常差. 在各种搜索之下, ...

  4. mysql 开发基础系列13 选择合适的数据类型(下)

    一.  BloB和Text 1. 合成索引 合成索引可以提高大文本字段BLOB和Text的查询性能, 合成索引是在表中增加一个字段存放散列值,这种技术只能用于精确匹配的查询,可以使用md5()或sha ...

  5. 发福利了!!超过100本的linux免费书籍

    New Books Kindle Fire App Development Essentials iPhone iOS 6 Development Essentials CentOS 6 Essent ...

  6. 【个人杂谈】MacBook Pro的使用心得

    上个月刚买的MacBook Pro,苹果就发新版了.... 从apple香港官网入手了一台MacBook Pro,带到公司,用了差不多一个月吧,这里讲讲我对MacBook的看法吧. 先声明一下两点: ...

  7. web进修之—Hibernate 懒加载(6)

    关于懒加载 在关系数据库设计的时候,我们很多时候把表之间的关系设置为强关联(使用外键进行约束),在Hibernate中利用对象的包含关系进行维护(HIbernate本身就是面向对象的数据库操作模式), ...

  8. spring-boot(二)

    学习文章来自:http://www.ityouknow.com/spring-boot.html web开发 spring boot web开发非常的简单,其中包括常用的json输出.filters. ...

  9. 项目详解2—LVS负载均衡详解

    一.负载均衡集群介绍 1.集群 ① 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技 ...

  10. tensorflow 1.12.0 gpu + python3.6.8 + win10 + GTX1060 + cuda9.0 + cudnn7.4 + vs2017)

    在安装tensorflow-gpu时,也看过不少的博客,讲得乱七八糟的,也不能这样说,只是每个人安装的环境或需求不一样,因此没有找到一个适合自己的教程去安装tensorflow-gpu版本.当然,入手 ...