多國語言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檔的檔頭也要同時修改