4

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

4

1 回答 1

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

于 2012-09-20T19:50:12.260 回答