您没有在Plone的[genericsetupprofile注册]中为...指定i18n翻译域

时间:2012-09-20 18:02:41

标签: plone zope

在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:域名没有出现或者如何摆脱警告?

1 个答案:

答案 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不同。 : - )