[Python-Dev] Re: Re: Alternative Implementation for
PEP292:SimpleString Substitutions
Fredrik Lundh
fredrik at pythonware.com
Sun Sep 5 17:58:14 CEST 2004
Barry wrote:
> Not true. I had a very specific reason for making Templates subclasses
> of unicode. Read the Internationalization section of the PEP.
this section?
The implementation supports internationalization magic by keeping
the original string value intact. In fact, all the work of the
special substitution rules are implemented by overriding the
__mod__() operator. However the string value of a Template (or
SafeTemplate) is the string that was passed to its constructor.
This approach allows a gettext-based internationalized program to
use the Template instance as a lookup into the catalog; in fact
gettext doesn't care that the catalog key is a Template. Because
the value of the Template is the original $-string, translators
also never need to use %-strings. The right thing will happen at
run-time.
I don't follow: if you're passing a template to gettext, do you really
get a template back?
if that's really the case, is being able to write "_(Template(x))" really
that much of an advantage over writing "Template(_(x))" ?
if that's really the case, you can still get the same effect from a template
factory function, or a trivial modification of gettext.
</F>
More information about the Python-Dev
mailing list