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

演示服务地址: 74.91.17.250:8091 . POST请求的参数名是code, 值就是需要翻译的英文源码. 返回翻译后的源码.

注:

  • 只支持语法正确的Java源码翻译. 否则直接返回分析错误信息.
  • 现在汉化范围很有限, 主要集中在类型/方法名, 尚未处理其他如方法内容等
  • 代码很粗放, 下面打算在继续改进之前先整理一下.

在前文代码翻译尝试-使用Roaster解析和生成Java源码的基础上, 作了一些改进. 主要有:

  • 对一般词汇使用普通英汉词典进行直译(优先选取计算机领域词义或者第一个词义)
  • 支持术语词典, 比如'instance', 上面的英汉词典中的第一个词义是'建议', 于是在术语词典中添加此项, 暂时译为'个例'
  • 支持驼峰命名和下划线分隔法命名
  • 各种忽略. 详见命名翻译.java:
    • 一些歧义太多的词, 如to for of
    • 单字符字段如M
  • 对释义进行清理, 如括号中的内容, 特殊符号等等

接下去的改进方面:

  • 提高翻译质量方面

  • 改进源码分析方面
    • 添加对一些变量, 方法类型进行翻译
    • 支持复杂类型的翻译, 比如Person[], List
  • 前端方面
    • 第一步是做一个最简单的前端, 左边输入源码, 右边显示翻译结果
    • 支持Outline模式, 就是类似IDE中只显示类的属性/接口列表, 这样也许更易于对一个类有个一目了然的了解
    • 支持语法高亮

欢迎尝鲜/反馈/参与添加术语等.

2018-09-15 Java源码英翻中库以及服务原型的更多相关文章

  1. 2018-09-24 Java源码英翻中网页演示

    在线演示地址: 源代码翻译 两部分如下. 独立的Java代码翻译库 续前文代码翻译尝试-使用Roaster解析和生成Java源码 源码库: program-in-chinese/java_code_t ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. java源码剖析: 对象内存布局、JVM锁以及优化

    一.目录 1.启蒙知识预热:CAS原理+JVM对象头内存存储结构 2.JVM中锁优化:锁粗化.锁消除.偏向锁.轻量级锁.自旋锁. 3.总结:偏向锁.轻量级锁,重量级锁的优缺点. 二.启蒙知识预热 开启 ...

随机推荐

  1. textarea 里设置 style="resize:none"

    禁止textarea拉伸的方法是::                                    设置这个 style="resize:none" 属性 例子: < ...

  2. 创建ndarray

    Numpy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的. 创建数组最简单的方法就 ...

  3. 从CSDN到cnblogs

    博客热的年代,我也赶潮流,开了不少,以前的blogbus博客大巴,CSDN,以及MSN space,再到新浪博客,微博... 提笔写的热情越来越少,这次准备重新整理以前在CSTQB.业界分享的一些内容 ...

  4. java 修饰符的访问权限

    private,public,protected,默认不写(firendly) 1.Class类的访问权限: public:可以供所有的类访问. 默认:默认可以称为friendly但是,java语言中 ...

  5. How to untar a TAR file using Apache Commons

    import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress ...

  6. python 3 中的raw_input 报错

    raw_input() was renamed to input()

  7. js文件引用的问题顺带复习css引用

    js文件包含在<script>块中用scr引用,css在link和@import来引用,css不是本篇的重点,直接引用一个博主的总结: “ 区别1:link是XHTML标签,除了加载CSS ...

  8. JavaScript Array+String对象的常用方法

    Array 对象 Array 对象用于在单个的变量中存储多个值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, e ...

  9. SpringBoot JMS(ActiveMQ) 使用实践

    ActiveMQ 1. 下载windows办的activeMQ后,在以下目录可以启动: 2. 启动后会有以下提示 3. 所以我们可以通过http://localhost:8161访问管理页面,通过tc ...

  10. 在openjdk8下看Unsafe源码

    尽管有传言JAVA9可能会移除Unsafe类,但不妨碍我们理解它的原理.因为类不在了,native方法还在那里.就像菜换样了,食材就那些没变.一个好厨师不仅仅需要会做菜,还需要能识别食材特性...来吧 ...