[Zope3-dev] Use case not covered for translation of message ids
Godefroid Chapelle
gotcha at bubblenet.be
Sat Sep 18 10:18:49 EDT 2004
Hi
While working at the mountain sprint on the port of message ids to Z2,
we found that the following code is badly processed by zope 3:
<div tal:content="string:My content item is of type ${type_msgid}." />
Currently, the message id is not translated : the id is concatenated to
the text in the string expression.
It can be said that the above example is contrived as the text above
will never be translated.
The ideal code should be :
<div i18n:translate="">My content item is of type <span
tal:replace="type_msgid" i18n:name="type" />.</div>
Anyway, in the first case, the developer has made its part of the i18n
job : he has stated that type is to be translated. Even if the template
designer did not make his part, we think the message id should be
translated.
Please find hereunder a fix to the class StringExpr of
zope/tales/expressions.py which allows the user to see the translated
message id.
from zope.i18n.messageid import MessageID
def __call__(self, econtext):
vvals = []
for var in self._vars:
v = var(econtext)
if isinstance(v, MessageID):
v = econtext.translate(v, domain=v.domain,
mapping=v.mapping, default=v.default)
vvals.append(v)
return self._expr % tuple(vvals)
--
Godefroid with Jurgen Kartnaller
More information about the Zope3-dev
mailing list