[I18n-sig] Re: gettext in the standard library
Martin von Loewis
loewis@informatik.hu-berlin.de
Mon, 4 Sep 2000 23:00:13 +0200 (MET DST)
> > > def _(s):
> > > return unicode(s, "utf-8")
> That was just an example of how you could add the decoding
> functionality to the _ function.
>
> You would of course also add a gettext.gettext call
> somewhere in there which translates the string first
> (possibly recoding it to some other encoding for the
> table lookup first).
So it would be
def _(s):
gettext.gettext(unicode(s,"utf-8"))
then??? There is no reason to do such a thing. First, you take a good
UTF-8 string, transform it into a Unicode object; then gettext must
encode the Unicode object into some byte string (possibly using
UTF-8), as there msgids are stored as bytes on the disk (i.e. using
some encoding).
If you put UTF-8 in your source as msgid, you can *directly* invoking
gettext, without needing to create a temporary Unicode object first.
Even if there is some pragma utf-8 some day, it would be still more
straight-forward to write
_("<utf-8 bytes>")
than
_(u"<utf-8 bytes>")
as gettext would need some clue what byte encoding it needs to use,
whereas the byte encoding is obvious in the first case.
Regards,
Martin