2012-04-02 9 views
2

Ich bin ein wenig verwirrt auf i18n Übersetzungen in Py-Dateien. Ich habe eine Zeichenfolge, wo was übersetzt werden muss, ist bereits in der Plone-Domain in plone.pot, also möchte ich die Domäne angeben, die nur für diese Übersetzung plone ist. Wenn ich Folgendes tue, erhalte ich einen Fehler. Und dies wird in einer Seitenvorlage gerendert, so dass Sie die Übersetzungsfunktion nicht aufrufen müssen, ist das korrekt?i18n Übersetzung mit einer anderen Domäne in .py Dateien

raise ValueError(_(u'Some string', domain='plone')) 

    TypeError: __call__() got an unexpected keyword argument 'domain' 

Wie soll das gemacht werden? Danke vielmals!

Antwort

8

Sie benötigen zwei verschiedene Nachrichten Fabriken haben, das heißt, wo Sie

from zope.i18nmessageid import MessageFactory 
_ = MessageFactory('my.package') 

tun sollten Sie auch die Plone eine Instanziierung sein.

_p = MessageFactory('plone') 

Dann würde _p('Contributors') Ihnen die übersetzte Zeichenfolge geben.

Werfen Sie einen Blick here auch.

+0

Werden Nachrichtenfactories anders als _ von i18ndude gefunden, wenn .pot-Dateien aktualisiert werden? –

+1

@DavidGlick iirc Sie geben die Domäne an, die Sie möchten i18ndude – ggozad

+0

Was ist mit dem Erwerb in Plone? wenn ich nur _ (u'Some string ') und es in meinem aktuellen App-Paket nicht gefunden wurde, würde es nicht gehen und dann versuchen,' Einige Zeichenfolge 'in Plones (in plone.pot) zu finden? Würde das auch funktionieren? – JCarter

Verwandte Themen