天天看點

手工翻譯Vue.js源碼第一步:14個檔案重命名

手工翻譯Vue.js源碼第一步:14個檔案重命名

背景

對現有開源項目的代碼進行翻譯(檔案名/命名/注釋) · 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->初始化           

大概翻譯過程

  1. fork原代碼庫, clone到本地, 預設分支為dev. 在此基礎上建立分支"translate-source". 運作npm test通過所有測試.
  2. 逐章閱讀參考文檔, 将涉及的檔案重命名. 在此之前運作npm run dev, 可以監控檔案修改并自動編譯, 根據編譯錯誤修改對應檔案
  3. 在剛開始時做了太多修改, 運作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", 暫時翻為"入口-運作時-帶編譯器", 但也許"帶編譯器的運作時入口"更自然些.

2018-11-21

繼續閱讀