基礎(chǔ)介紹
python官方文檔使用sphinx構(gòu)建景殷,它是一個(gè)python庫仇祭,可以把寫好的文檔生成網(wǎng)頁、PDF等格式梆暖,也可交由社區(qū)翻譯伞访,翻譯后可生成對(duì)應(yīng)語言的文檔。
transifex是一個(gè)支持多人合作翻譯的網(wǎng)站式廷,可在網(wǎng)頁進(jìn)行翻譯咐扭,也可使用命令同步到本地翻譯再提交。不同版本的軟件之間往往有相同的字符串滑废,這種情況transifex會(huì)自動(dòng)匹配到其他版本中的字符串蝗肪。
python的文檔翻譯托管在transifex上,想?yún)⑴c的話蠕趁,可以到python.org申請帳號(hào)薛闪,簽字同意協(xié)議,并申請成為開發(fā)者俺陋,然后就可以到transifex找到python團(tuán)隊(duì)并申請加入了豁延,申請的時(shí)候記得寫上相關(guān)的python.org帳號(hào)信息,并發(fā)私信給管理員腊状。
通過管理員驗(yàn)證后诱咏,就能開始進(jìn)行網(wǎng)頁翻譯了。
如果想在本地翻譯缴挖,或在本地生成文檔袋狞,就要把相應(yīng)的po文件下載下來了。
翻譯工作流
原始的rst文件可由
? ?sphinx-build -b gettext . _pot
生成.pot文件,放在_pot文件夾中苟鸯。
然后生成po文件(這一步不需要自己操作)同蜻,編輯po文件
sphinx可以直接處理po文件,也可以用命令msgfmt處理成mo文件早处,然后就能編譯了
生成文檔
首先下載python源碼湾蔓,比如翻譯3.6版本的,就到github下載Tag為3.6的cpython砌梆,寫此文時(shí)刻最新的是3.6.3默责。下載后,其中Doc文件夾就是文檔了咸包,可以使用sphinx相關(guān)工具生成文檔傻丝。
進(jìn)入Doc目錄后,運(yùn)行命令:
? ? sphinx-build -D language=zh_CN -b html . _html
就能把中文文檔構(gòu)建到_html文件夾中诉儒,-D表示額外參數(shù),-b表示構(gòu)建目標(biāo)亏掀,此處為網(wǎng)頁忱反。
同步po文件
網(wǎng)頁上翻譯的po文件有456個(gè)左右,一個(gè)一個(gè)點(diǎn)下載滤愕,操作量太大了温算。可以使用python的軟件包:transifex-client间影,來進(jìn)行同步注竿。
首先關(guān)聯(lián)python團(tuán)隊(duì)的python-36項(xiàng)目:
tx set --auto-remote "https://www.transifex.com/python-doc/python-36"
這個(gè)過程比較長,網(wǎng)絡(luò)慢魂贬。
下載后的文件也不能直接用……于是稍作修改巩割,用正則替換,把原來的
translations/python-36.about/<lang>.po
換成locales/<lang>/LC_MESSAGES/about.po
注意付燥,還有些有子文件夾宣谈,比如library--xml要改成
locales/<lang>/LC_MESSAGES/library/xml.po
然后tx pull -l zh_CN就能把所有文件同步下來了,網(wǎng)頁翻譯后可再次運(yùn)行键科,更新翻譯后的文件闻丑。如果在本地進(jìn)行翻譯,也可做相應(yīng)push操作勋颖。
有了本地生成的網(wǎng)頁嗦嗡,翻譯工作方便多了,可隨時(shí)編譯查看饭玲,找找感覺