在.py文件中使用不同的域进行i18n转换

时间:2012-04-02 13:20:20

标签: python internationalization translation plone

我对py文件中的i18n翻译感到有点困惑。我有一个字符串,其中需要翻译的内容已经存在于plone.pot中的plone域中,因此我想指定仅为该翻译指定域的域名。当我执行以下操作时,出现错误。并且,这确实在页面模板中呈现,因此不需要调用translate函数,这是正确的吗?

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

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

应该怎么做?非常感谢!

1 个答案:

答案 0 :(得分:8)

您需要有两个不同的消息工厂,即您在哪里

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

你也应该实例化Plone。

_p = MessageFactory('plone')

然后_p('Contributors')会给你翻译的字符串。

看看here