1. 持續(xù)本地化集成
傳統(tǒng)的本地化集成,通常是需要在項目結束之后,才開始這項工作,這對于快速開發(fā),限制了版本迭代,增加了整個項目控制的復雜性。
持續(xù)本地化集成(Continuous Localization Integration),遵循著持續(xù)化規(guī)則,以代碼倉庫為中心,自動析取所有需要本地化的字符串,同步到一個可視化的翻譯平臺,并將翻譯平臺的翻譯結果同步會代碼倉庫,各部門分工協(xié)作,無縫配合,可以使整個項目的快速迭代,縮短版本開發(fā)周期。
2. 收費服務
支持收費服務
支持開源的免費服務
weblate托管在github
支持本地服務器安裝,可自行安裝托管代碼
支持收費服務
支持開源的免費服務
提供從注冊開始,兩周的免費試用
試用期間可以體驗所有功能
試用結束后,必須選擇付費服務
3. 開源軟件(免費)
- Mojito(Box)
Box公司開源的一個持續(xù)本地化平臺
依靠開源社區(qū)完成主要的功能和后續(xù)的產品的維護。
項目托管到Github上。
采用Java語言
數(shù)據(jù)庫后端支持MySQL
- Serge(Evernote)
Evernote(印象筆記)開源的一個持續(xù)本地化平臺
接口的擴展性比較強
命令行接口
支持多種翻譯平臺(Pootle,官方推薦)
社區(qū)比較活躍,Github 的 Issues 能得到快速回復
支持多種后端數(shù)據(jù)庫,MySQL,Sqlite等
采用Perl語言
項目托管到Github上
4. Serge + Pootle
Serge(String Extraction and Resource Generation Engine)
安裝過程可以在serge.io上有對應的教程,但是有幾點需要注意的地方(我踩過的坑)
-
cpan
和cpanm
Serge 是一個由Perl
語言開發(fā)的項目,其使用cpanm
安裝所有的依賴包,并生成可執(zhí)行文件。熟悉Perl
的人可能非常的熟悉cpan
和cpanm
兩個依賴包管理工具。本人作為一個不熟悉Perl
的移動端開發(fā)人員,在初始化cpan
的時候,遇到了一個比較大的麻煩。
簡單的了解一下cpan
和cpnam
,在Mac系統(tǒng)上,默認的搭載了Perl
和cpan
。但是,如果你從來沒有使用過cpan
,第一次運行的時候,cpan
會去初始化它的基本配置。
如果有移動端(iOS)開發(fā)經驗的人,可以類比一下Cocoapods的安裝。
初始化cpan的時候,可以會詢問你權限的問題,提供三種,獨立lib,sudo,手動。如果你是新手,個人建議采用sudo的方式,cpan
默認的是第一種,這種情況下,需要更改你的PATH
,有可能會帶來很多的問題,我在安裝的時候,就一路采用默認的方式,結果導致了cpanm
安裝之后,找不到命令,不知道是我操作的不對,還是對Mac兼容性的問題。
如果想了解更多的使用方法和規(guī)則,可以查看 cpan 和 cpanm.
- PATH的影響
由于本人的電腦上配置了Macports和Homebrew兩個第三方軟件的安裝和管理工具,導致了本機上的PATH
錯綜復雜,Perl
命令都很難找到,包括其對應的Lib路徑。
解決方法,把在 Macports 和 Homebrew 上安裝的Perl
全部強制卸載,使用系統(tǒng)搭載的Perl
, 在 Mac OS 10.12上,搭載的是5.18,由于在Mac OS 10.11 后,Mac 系統(tǒng)采用了SIP,來保護系統(tǒng)軟件的完整性,系統(tǒng)的perl
不能更換。但是,5.18已經夠Serge的運行的最低依賴, serge要求,perl要大于5.10。
- Pootle 對Sqlite的支持問題
Pootle按照官方的文檔已經部署完成,但是,在運行serge pull-ts
的時候,使用無法更新對應的.po文件,從而就無法更新repo,導致翻譯的結果,沒法push到項目的遠程倉庫。
一直以為是Serge的問題,但是后來發(fā)現(xiàn)不是,是Pootle的問題。Pootle在初始化Sqlite數(shù)據(jù)庫的時候,可能內部出錯,但是翻譯的內容無法寫會到數(shù)據(jù)庫,只保留在內存中,所以才導致了,在從Pootle同步到.po文件的時候,內容無法更新。
借鑒了 Build and install 2.7dev from scratch issue,重新運行了一下 pootle initdb
然后就恢復正常了。
官方建議,如果是開發(fā)和發(fā)布服務的時候,不要使用Sqlite作為后端的數(shù)據(jù)庫,更換MySQL或者PostgreSQL。
5. 參考文獻
- Serge
- Pootle
- Weblate
- Transifex
- Crowdin
- Build and install 2.7dev from scratch
- cpan
- cpanm
- Pottle Installation
- How to write a wrapper script to run Pootle's manage.py from within a virtual environment?
- Box開源持續(xù)本土化平臺Mojito [本地化,開源,持續(xù),產品,社區(qū)]
- Serge: A Free, Open Source Platform for Continuous Localization from Evernote