[Python-Dev] Re: gettext in the standard library (original) (raw)

Barry A. Warsaw bwarsaw@beopen.com
Fri, 18 Aug 2000 17:49:23 -0400 (EDT)


"M" == M <mal@lemburg.com> writes:

M> I know that gettext is a standard, but from a technology POV I
M> would have implemented this as codec wich can then be plugged
M> wherever l10n is needed, since strings have the new .encode()
M> method which could just as well be used to convert not only the
M> string into a different encoding, but also a different
M> language.  Anyway, just a thought...

That might be cool to play with, but I haven't done anything with Python's Unicode stuff (and painfully little with gettext too) so right now I don't see how they'd fit together. My gut reaction is that gettext could be the lower level interface to string.encode(language).

M> What I'm missing in your doc-string is a reference as to how
M> well gettext works together with Unicode. After all, i18n is
M> among other things about international character sets.
M> Have you done any experiments in this area ?

No, but I've thought about it, and I don't think the answer is good. The GNU gettext functions take and return char*'s, which probably isn't very compatible with Unicode. _gettext therefore takes and returns PyStringObjects.

We could do better with the pure-Python implementation, and that might be a good reason to forgo any performance gains or platform-dependent benefits you'd get with _gettext. Of course the trick is using the Unicode-unaware tools to build .mo files containing Unicode strings. I don't track GNU gettext developement close enough to know whether they are addressing Unicode issues or not.

-Barry