2018-10-19 Chrome插件实现GitHub代码离线翻译v0.0.4
續(xù)前文Chrome插件實現GitHub代碼翻譯v0.0.3. 添加了對駝峰命名的支持. 由于調用瀏覽器插件-離線英漢詞典進行詞匯翻譯, 因此也不依賴于任何在線翻譯服務.
Chrome插件: 官網鏈接
支持所有編程語言
因為并不需要對源代碼進行語法分析(之前Java源碼英翻中進展-內測上線中使用了語法分析, 工作量大很多), 因此原則上已經支持所有編程語言的源代碼. 但對一些編程語言效果更好, 見下面效果.
Java: 源碼來源
Python: 源碼來源
C: 源碼來源 接下去添加C的關鍵詞翻譯后, include/char就不會那么坑了.
[2018-10-19-github源碼翻譯_c_0.0.4]({{ "/assets/2018-10-19-github源碼翻譯_c_0.0.4.png" | absolute_url }})
階段小結
翻譯方面做下去會遇到和自然語言機器翻譯類似的問題. 當然會比自然語言好一些, 因為命名往往使用的是最正式(非口語化)的詞匯, 連接詞的使用也較少, 而且基本沒有完整語句. 即便如此, 也會存在詞匯的歧義, 比如詞性問題, 比如頂圖例子中BasicCalculator, Basic在內建詞典中有名詞/形容詞幾種詞義:
n. 基本原理, 要素, 基本規(guī)律 a. 基本的, 堿性的 (計算機)BASIC語言現在的算法是直接用首個詞義, 就是名詞的"基本原理". 再比如"tell"在沒有后接名詞時應該是取vi釋義:
vt. 告訴, 說, 吩咐, 斷定, 知道 vi. 講述, 泄密, 告發(fā), 表明改進就需要加入自然語言處理的方法.
源碼
文本處理.js中駝峰命名拆分:
function 拆分駱駝命名(命名) {// 參考: https://stackoverflow.com/a/7599674/1536803return 命名.split(/(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/); }轉載于:https://www.cnblogs.com/program-in-chinese/p/10504062.html
總結
以上是生活随笔為你收集整理的2018-10-19 Chrome插件实现GitHub代码离线翻译v0.0.4的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 各种快速幂(qaq)
- 下一篇: netty 为什么用nio 不用 aio