在Plone启动时,我收到来自定制产品的警告
/Users/mikko/code/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/fields.py:416:
UserWarning: You did not specify an i18n translation domain for the 'title' field in /Users/mikko/code/xxx-dev/src/xxx-eggs/Products.xxxExternal/Products/xxxExternal/configure.zcml
但是在configure.zcml
中设置了i18:domain
。我还直接用一些额外的属性设置它,以确保:
<configure xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:i18n="http://namespaces.zope.org/i18n"
i18n:domain="xxxPatient"
>
<include package=".browser" />
<include package="plone.app.z3cform" />
<!-- Register the installation GenericSetup extension profile -->
<genericsetup:registerProfile
name="default"
title="xxxExternal"
directory="profiles/default"
provides="Products.GenericSetup.interfaces.EXTENSION"
i18n:attributes="title; description"
i18n:domain="xxxPatient"
/>
</configure>
这是发出警告的相关代码:
def fromUnicode(self, u):
context = self.context
domain = getattr(context, 'i18n_domain', '')
if not domain:
domain = 'untranslated'
import pdb ; pdb.set_trace()
warnings.warn(
"You did not specify an i18n translation domain for the "\
"'%s' field in %s" % (self.getName(), context.info.file )
)
v = super(MessageID, self).fromUnicode(u)
知道为什么i18n:域名没有出现或者如何摆脱警告?
答案 0 :(得分:5)
请注意,代码正在查找带有下划线的i18n_domain
,但您将其指定为i18n:domain
,而不是命名空间值。
以下作品:
<configure xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="xxxPatient"
>
<include package=".browser" />
<include package="plone.app.z3cform" />
<!-- Register the installation GenericSetup extension profile -->
<genericsetup:registerProfile
name="default"
title="xxxExternal"
directory="profiles/default"
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
</configure>
在国际化方面,ZCML与ZPT不同。 : - )