各位都在什么源码站上在线看代码?

2018-10-31 06:04:55 +08:00
 xuanwu

做的在线源码翻译插件现只支持了 GitHub. 下面打算做码云的. 还有其他建议的吗?

13060 次点击
所在节点    程序员
115 条回复
pabupa
2018-10-31 12:08:48 +08:00
我在东北玩泥巴~
ray1888
2018-10-31 12:10:12 +08:00
在线看代码好像有 sourcegraph 插件了吧,虽然自己来说造轮子还是挺好的
janus77
2018-10-31 12:36:24 +08:00
在打扰之前想问个问题:
两个方法一个叫 selectA,一个叫 chooseA,同时存在,你翻译出来以后别人找不到自己想要的怎么办?
xuanwu
2018-10-31 12:45:34 +08:00
@flyingghost 多谢宝贵建议!

关于 0, 基本同意. 个人估计用户群还是很大的, 应该在万级以上.

> 按层级翻译(比如类名 > 方法名 > 变量名)。细节实现就放着好了。层级设置可控就更好了。

很同意. 其实之前还做了一个 Java 实现的对 Java 源码进行层级翻译的服务: https://zhuanlan.zhihu.com/p/45236358 主要难点是源码分析. 那个服务基于 Roaster, 它支持类 /方法 /变量的分析(实现细节除外), 这已经可以做到层级可控, 但问题是扩展到其他语言工作量较大(即使用 antlr4)

> 对于命名的翻译,一定别忘了借鉴下划线、驼峰等天然分词符。人家都帮你分好了不用白不用。

应该已经实现了, 如`loadData`->`加载数据`, `gtk_window_set_default_size`-> `gtk_窗口_设置_默认_大小`

> 仅针对快速阅读理解来说,注释的重要性远大于源码实现细节。

嗯, 但这个插件项目现在是很简单的直译, 暂未发现 JS 的机翻库, 与第四点一同恐怕要慢慢积累技术(命名本身也存在上下文问题, 如 #29 指出的)才能接近句级别翻译.

> 一定要做语法解析,至少做到词法解析吧。源码这种东西,千万不能按文本处理。

上面那个 Java 源码翻译服务做了. 这个插件暂时倚靠的是在线代码网站本身的解析(直接挖它 HTML 中的代码段, 进行直接的词级替换. 所有高亮都用的相同 CSS 规则). 除了关键词之外, 命名部分和自然语言的机翻有何区别呢? 能想到的就是方法名更倾向于动词短语, 类 /变量名更倾向于名词短语, 还有吗?
Admstor
2018-10-31 12:51:28 +08:00
意义何在...
编译还要翻译回去??
xuanwu
2018-10-31 12:52:49 +08:00
@janus77 多谢提醒. 已为重名检验添加 issue: https://github.com/program-in-chinese/webextension_github_code_translator/issues/16

刚实测:
`SelectItem` -> `选定项`
`chooseItem` -> `选取项`
现在这个英汉词典数据还蛮给力的, 实测中暂时没有发现重名情况.
xuanwu
2018-10-31 12:56:10 +08:00
@Admstor 嗯, 其实设想中的一个目标是"让用户可以选择是否中文化关键词": https://github.com/program-in-chinese/webextension_github_code_translator/issues/3
如果关键词不汉化, 理想情况下翻译出的结果应该可以编译(假设该语言支持 Unicode 命名, 大多数排行靠前的应该都有支持的编译器)
Alexhohom
2018-10-31 13:05:18 +08:00
如果做好了还是很不错的,加油!
xuanwu
2018-10-31 13:13:59 +08:00
@misaka19000 关键词的翻译确实很值得商榷. 之前有相关讨论: https://github.com/program-in-chinese/overview/issues/40
欢迎推荐更合适的翻译.
Mmmmc
2018-10-31 13:47:04 +08:00
你做出了我做不出的东西, 感觉还不错, 不过大家好像并不怎么喜欢罢了
jay4497
2018-10-31 14:15:16 +08:00
如果能精准逆向也不错,中文写代码,然后翻译成实际代码,直接编译运行了。。。
micean
2018-10-31 14:19:12 +08:00
如果是在线浏览代码的插件,我希望是能够直接跳转到相应类、方法的页面,就像 IDE 的 ctrl+左键
babedoll
2018-10-31 14:19:41 +08:00
楼主想法很好!如果限定一下,只翻译注释的内容怎么样?比较代码还是英文的比较习惯
loshine1992
2018-10-31 14:28:16 +08:00
我还以为是 octotree 这种插件,然后还想说需要 gitlab 支持。。

结果。。
xuanwu
2018-10-31 14:33:41 +08:00
@jay4497 多数语言的编译器已经支持中文命名了吧, 为何还要"翻译成实际代码"?
xuanwu
2018-10-31 14:40:17 +08:00
@micean
@ray1888 并非在线浏览代码, 而是对网页中的代码段进行命名和少数文本常量的翻译.

@babedoll 请见 #11 和 #64, 长句翻译还远.

@loshine1992 多谢. 也许可以作为批量翻译功能的参考.
waytoshine
2018-10-31 14:53:58 +08:00
乍一看,我和大家的反应是一致的——“楼主是来搞笑的吗?”
后来我仔细看了一下楼主做的东西,思考了一下,我觉得楼主做的事其实是一件很牛逼并且有迹可循(意思是这件事是有意义的)、别的国家有在做相同事情的人(日本,了解到作者的知乎专栏后看到的)的事情。
那么可能大家会有一些问题,比如说:
“易语言和作者的插件的区别?”
答:
“易语言 - 用中文编 C++的代码;
楼主做的是 - 用中文编所有市面上的存在语言的代码。”

还有建议楼主可以参考一下易语言,感觉易语言是你这种插件的 C++方向的终极形态了,楼主怎么看呢?
xuanwu
2018-10-31 15:38:30 +08:00
@waytoshine 插件更侧重的是对命名部分的翻译.
关键词汉化视觉效果与易语言接近. 但个人认为中文语法的编程语言还远未成熟. 参考专栏里那个"抚子"语言, 就有不少源于日语自然语言的特色语法, 如无空格设计, '它'的使用等等.
AlkTTT
2018-10-31 15:56:02 +08:00
我觉得可以只翻译方法名,但是是在后面备注,而不是直接替换,其他的如 public,static 什么的,这些大家都清楚什么意思。
方法里面的源码最好不要翻译,翻译过来会有语法错误。
方法上面的注释,这个翻译过来才是最棒的
楼主加油
xuanwu
2018-10-31 16:01:58 +08:00
@AlkTTT
> 但是是在后面备注,而不是直接替换

嗯, 也许可以支持几种显示模式

> 方法里面的源码最好不要翻译,翻译过来会有语法错误。

如果不翻译关键词( #67), 仅是命名翻译之后, 应该不会有语法错误

> 方法上面的注释,这个翻译过来才是最棒的

见 #11 和 #64, 长句翻译还远.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/502820

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX