2015-05-06 41 views
3

我已經創建了一個schemaextender軟件包,其中我試圖覆蓋bikaplone域的某些字符串。我的新包的來源是在這裏:https://github.com/rockfruit/bika.uw.giti18n消息:來自多個PO文件的消息的優先順序

的安裝方法,我建議和使用(適用於所有的Plone插件/實例)是這樣的:

  • 安裝Plone的UnifiedInstaller。
  • 修改'eggs ='和'develop ='行,包含「bika.lims」和「bika.uw」。
  • 運行斌/擴建

採用這種安裝方法,我重寫不重寫。在zope.i18n中,我發現translationdomain.py總是優先選擇原始翻譯,並且只在原始bika目錄中沒有相同的字符串時才使用schemaextender包中的那些字符串(即,對於在擴展的Python或TAL代碼中翻譯的消息打包本身;在所有的Bika或Plone代碼中,我的新目錄都被忽略)。

我讀過buildout.cfg中的zcml = section可能被用來強制zcml加載順序改變,從而導致消息被優先於先前加載的包。所以,我曾嘗試如下修改,但是從bika.lims目錄仍然是首選:

zcml = 
    Products.CMFPlone 
    bika.uw 
    bika.lims 

現在,這裏有一個線索,我發現。上面鏈接到的github倉庫在根上有一個buildout.cfg,它不使用UnifiedInstaller,而是直接下載Plone和其他依賴項。它不包含zcml =行。

git clone https://github.com/rockfruit/bika.uw.git 
cd bika.uw 
virtualenv . 
./bin/pip install zc.buildout 
bin/buildout 
bin/zeoserver fg & # no idea why 'start' does not work 
bin/zeoclient fg 

我的問題是::但令人驚訝的使用這種安裝方法時(對我來說)翻譯覆蓋兩個域的工作(就像買了一個!)我在做什麼錯了,正常的和推薦的安裝程序會阻止我的翻譯覆蓋文件採取正確的優先順序?

我很尷尬地承認,但我會無論如何:這讓我感到困惑

我粘貼了下面我現有的buildout.cfg,其中今天早上我試圖模仿bika.uw.git/buildout.cfg文件的行爲,但沒有成功。


[buildout] 

# buildout-original.cfg is the Plone 4.3.4 zeocluster unified-installer file. 
extends = 
    buildout-original.cfg 

zeo-address = 8081 
client1-address = 8085 
client2-address = 8086 

effective-user = campbell 
buildout-user = campbell 
user=admin:adminsecret 

need-sudo = no 
var-dir=${buildout:directory}/var 
backups-dir=${buildout:directory}/backups 
deprecation-warnings = on 
verbose-security = on 

eggs = 
    bika.uw 
    bika.lims 
    pudb 
    i18ndude 
    test 
    robot 
    zest.releaser 

develop += 
    /home/campbell/Plone/repos/bika.uw 
    /home/campbell/Plone/repos/bika.lims 

parts = 
    zeoserver 
    client1 
    client2 
    backup 
    zopepy 
    unifiedinstaller 

zcml = 

[zeoserver] 
<= zeoserver_base 
recipe = plone.recipe.zeoserver 
zeo-address = 127.0.0.1:${buildout:zeo-address} 
zserver-threads = 1 

[client1] 
<= client_base 
recipe = plone.recipe.zope2instance 
zeo-address = ${zeoserver:zeo-address} 
http-address = ${buildout:client1-address} 
resources = ${buildout:directory}/resources 
locales = ${buildout:directory}/locales 

[client2] 
<= client_base 
recipe = plone.recipe.zope2instance 
zeo-address = ${zeoserver:zeo-address} 
http-address = ${buildout:client2-address} 
resources = ${buildout:directory}/resources 
locales = ${buildout:directory}/locales 

[versions] 
Cheetah = 2.2.1 
plone.recipe.command = 1.1 
plone.recipe.precompiler = 0.6 
plone.recipe.unifiedinstaller = 4.3.1 
Products.DocFinderTab = 1.0.5 
ZopeSkel = 2.21.2 
collective.recipe.backup = 2.14 
zopeskel.dexterity = 1.5.3 
zopeskekel.dexterity = 1.5.3 
zopeskel.diazotheme = 1.1 

回答

0

我想我的talk我在2012年在阿納姆的Plone會議作出了名單仍然是準確的。這是po文件的加載順序:

  1. 區域設置= $ {擴建:目錄} /區域設置
  2. ZCML = your.package
  3. 產品按字母順序,直到幷包括Products.CMFPlone
  4. 包註冊與z3c。autoinclude
  5. 其餘產品
  6. 的i18n文件夾(由PlacelessTranslationService完成)的

在您的情況:從ZCML參數中刪除Products.CMFPlone。它混合了訂單。