服务很简单, 只为演示这个库, 源码在: program-in-chinese/code_translator_service. 在Postman测试效果:
演示服务地址: 74.91.17.250:8091 . POST请求的参数名是code, 值就是需要翻译的英文源码. 返回翻译后的源码.
注:
- 只支持语法正确的Java源码翻译. 否则直接返回分析错误信息.
- 现在汉化范围很有限, 主要集中在类型/方法名, 尚未处理其他如方法内容等
- 代码很粗放, 下面打算在继续改进之前先整理一下.
在前文代码翻译尝试-使用Roaster解析和生成Java源码的基础上, 作了一些改进. 主要有:
- 对一般词汇使用普通英汉词典进行直译(优先选取计算机领域词义或者第一个词义)
- 支持术语词典, 比如'instance', 上面的英汉词典中的第一个词义是'建议', 于是在术语词典中添加此项, 暂时译为'个例'
- 支持驼峰命名和下划线分隔法命名
- 各种忽略. 详见命名翻译.java:
- 一些歧义太多的词, 如to for of
- 单字符字段如M
- 对释义进行清理, 如括号中的内容, 特殊符号等等
接下去的改进方面:
- 提高翻译质量方面
- 继续扩大术语词典内容. 将在术语词典API项目 · Issue #85 · program-in-chinese/overview更新进度
- 添加一些简单的词序重组规则. 比如现在'afterSave'译为'在之后保存', 最好改为'保存之后'之类, 但这牵涉到较复杂的自然语言处理.
- 改进源码分析方面
- 添加对一些变量, 方法类型进行翻译
- 支持复杂类型的翻译, 比如Person[], List
- 前端方面
- 第一步是做一个最简单的前端, 左边输入源码, 右边显示翻译结果
- 支持Outline模式, 就是类似IDE中只显示类的属性/接口列表, 这样也许更易于对一个类有个一目了然的了解
- 支持语法高亮
欢迎尝鲜/反馈/参与添加术语等.