Currently variables inside the message id's text substituted to None if
variable name hadn't found in the mapping, like this:

  >>> from zope.i18nmessageid import Message
  >>> from zope.i18n import translate
  >>> message = Message("some text ${variable}", mapping={"typo": "variable"})
  >>> translate(message)
  u'some text None'


  >>> message = Message("some text ${variable}")
  >>> translate(message)
  u'some text ${variable}'

Would it to be better if no substitution will happens if variable name hasn't found in the mapping? So instead of u'some text None' we'll always get u'some text ${variable}'. I think it would be better for debugging purposes and also we'll get some optimizations in case of the empty mapping (seems like the ZPT engine always pass empty dictionary as default value for the mapping) for free.

Dmitry Vasiliev (dima at

Zope3-dev mailing list

Reply via email to