背景 "對現有開源項目的代碼進行翻譯(文件名/命名/註釋) · Issue 107 · program in chinese/overview" 簡單地說, 通過翻譯源碼, 提高項目代碼可讀性(對於母語為中文的開發者). 併在此過程中小結源碼翻譯輔助工具的需求. 源碼庫分支: "program in ...
背景
對現有開源項目的代碼進行翻譯(文件名/命名/註釋) · Issue #107 · program-in-chinese/overview
簡單地說, 通過翻譯源碼, 提高項目代碼可讀性(對於母語為中文的開發者). 併在此過程中小結源碼翻譯輔助工具的需求.
源碼庫分支: program-in-chinese/vue
源碼分析參考文檔: Vue.js 技術揭秘 | Vue.js 技術揭秘
14個重命名的文件列表
core/vdom/helpers/normalize-children->規格化子節點
core/vdom/create-element->創建元素
core/vdom/vnode->虛擬節點
platforms/web/entry-runtime-with-compiler->入口-運行時-帶編譯器
platforms/web/runtime/index->索引
core/index->索引
core/instance/index->索引
core/instance/inject->註入
core/instance/lifecycle->生命周期
core/instance/proxy->代理
core/instance/events->事件
core/instance/render->渲染
core/instance/state->狀態
core/instance/init->初始化
大概翻譯過程
- fork原代碼庫, clone到本地, 預設分支為dev. 在此基礎上新建分支"translate-source". 運行npm test通過所有測試.
- 逐章閱讀參考文檔, 將涉及的文件重命名. 在此之前運行npm run dev, 可以監控文件修改並自動編譯, 根據編譯錯誤修改對應文件
- 在剛開始時做了太多修改, 運行npm test時發現問題難以排錯, 因此現在採取每個文件重命名後第二步構建成功後就運行npm test, 通過後就commit. 奇怪的是之前的問題再沒出現.
源碼庫基本統計
src目錄中236個文件, 16893行JavaScript代碼
參考: How do you list number of lines of every file in a directory in human readable format.
源碼根目錄下運行命令:
$ wc -l `find src -type f`
小結
估計30個小時重命名所有src下文件(包括文檔初步學習時間). 下一步嘗試重命名源碼中的中文命名, 已預估所有源碼翻譯時間, 相信由於對源碼和基本術語瞭解更多之後, 翻譯方法有改進空間, 速度也會加快.
源碼翻譯是一種簡單的重構, 對測試用例範圍覆蓋要求較高. 唯一碰到不穩定的測試用例已有報告: tests fail from clean environment · Issue #7130 · vuejs/vue
暫時沒有發現難以解決的技術問題. 不過命名風格還在小結中, 比如帶"-"的文件名, 有些單詞構成短語, 但另一些沒有. 比如"create-element", 翻譯成"創建-元素"就覺得"-"是冗餘的, 因此略去為"創建元素". 而"entry-runtime-with-compiler", 暫時翻為"入口-運行時-帶編譯器", 但也許"帶編譯器的運行時入口"更自然些.