[Python-Dev] The "i" string-prefix: I18n'ed strings

"Martin v. Löwis" martin at v.loewis.de
Fri Apr 7 00:16:49 CEST 2006


Martin Blais wrote:
>    ...
>    A(P(_("Click here to forget"), href="...
>    ...

I assume that this should be

  P(A(_("Click here to forget"), href="...

instead (i.e. href is a parameter to A, not to P)

> 
> (In my example, I built a library not unlike stan for creating HTML,
> which is where classes A and P come from.)  I find the i18n markup a
> bit annoying, especially when there are many i18n strings close
> together.  My point is: adding parentheses around almost all strings
> gets tiresome and "charges" the otherwise divine esthetics of Python
> source code.

There is a simple solution to that: write it as

P(a("Click here to forget", href="...

and define

def a(content, **kw):
    return A(_(content), **kw)

You could it also write as

P(A_("Click here to forget", href="...

to make it a little more obvious to the reader that there is a
gettext lookup here.

Regards,
Martin


More information about the Python-Dev mailing list