多國語言i18n -- override

Plone提供強大的多國語言i18n功能,在一般情況下,大部份的內容都以翻譯完成,但遇到翻譯不合使用要變更的時候,該如何做呢?

簡單的方式可以直接到filesystem,搜尋到po檔,直接更改內容,但這樣的方式,在系統版本更新的時候,之前的翻譯會被覆蓋掉,所以會有問題

較好的做法如下:

1、開啟一個addon, example:

cd src/
../bin/zopeskel archetype projectname.i18n

2.修改projectname.i18n/projectname/i18n/configure.zcml

<configure
xmlns:i18n="http://namespaces.zope.org/i18n">
###加入以下這行###
<i18n:registerTranslations directory="locales" />
</configure>

3.建立locales目錄,這個步驟可以偷懶一下,直接copy系統翻譯好的資料夾來用,example:

cd projectname.i18n/project/i18n
cp -r buildout-cache/eggs/plone.app.locales-4.3.2-py2.7.egg/plone/app/locales/locales/ ./

###目錄依實際情況不一

 

4.編輯po檔,內容就依需求刪改即可

nano src/projectname.i18n/projectname/i18n/locales/zh_TW/LC_MESSAGES/plone.po

5.編輯buildout.cfg

eggs =
projectname.i18n
zcml =
projectname.i18n
develop =
src/projectname.i18n

6.重啟plone後翻譯即生效

bin/plonectl restart

7.如果翻譯沒生效,到後台看看,將projectname.i18n模組停用再啟用,應該就OK了

註1:plone.po,代表i18n domain是plone,各contype type的i18n domain可以在zmi->portal_types中查到,依i18n domain不同,po檔的檔頭也要同時修改

註2:升級改版後,如果有需要更新,可以利用 i18ndude 來同步內容,再修正