Dmitry Vasiliev wrote:
Jim Fulton wrote:

IMO, if a template an element with both i18n:translate and tal:content
and the value inserted is not a message id, the template's domain will
be used.  This seems like a bad idea.  It can hide failures to provide
message ids because everything ultimately gets a domain.  I'm working on
tools to help people see when text hasn't been internationalized and the
implicit use of of the template's domain makes these tools less useful.

Basically, the domain given in the template source applies to the source
only and shouldn't be used for data coming from elsewhere.

I propose that we should never use the templates domain when inserting data via tal:content. Note however, if the tal expression results in the use of the
template's example text, the templates domain should be used.


Maybe we should translate *only* a message id values in case of i18n:translate and tal:content/tal:replace and print a warning for any other values?

I think we should do the translation in either case.  But the translation
for a string or a id with an unknown domain should just return the original,
with interpolation, if necessary.  Perhaps we should have a warning in
dev mode.  We should also think about how development tools can be used to
help with this. The test language support I checked in yesterday should
help, I think.

> Moreover it's Zope-3.1 behavior.

What is Zope-3.1 behavior?

> For Zope-3.2 there was a
bug report at partially fixed by me. Now I'm not sure the fix was a good idea. Main disadvantage I see is that it leads to bad i18n style for users.

This example is particularly agregious.  Still, I think your fix is necessary.
I think we need better tools for checking i18n and l10n.


Jim Fulton           mailto:[EMAIL PROTECTED]       Python Powered!
CTO                  (540) 361-1714  
Zope Corporation
Zope3-dev mailing list

Reply via email to