The proposal is to create one and only one interface to the right I18N
function. The need for lazy_gettext is a particularity here and since it is more common to have "_" than "lazy_gettext", this is the preferred interface, IMHO.

If you are using I18N in your project, it will benefit you as well. If you
aren't, you won't even notice the change.

What are your objections with that change?

My main objection is with magically mapping "_" to *anything*, whether it be gettext, lazy_gettext, or whatever. I understand and know that it is common in many other platforms/worlds to use a similar mapping for I18N functions, but that doesn't mean that its necessarily okay for TurboGears to do the same thing... at least not magically.

In addition, a large class of TurboGears users when they first see code with "_('some string to translate')" could easily misunderstand the "_" as syntax, or be totally confused what it means or where it came from.

A simple "from whatever import lazy_gettext as _" at the top of files where this is needed is much much more explicit, and would likely save lots of confusion. Explicit is better than implicit -- even when convention on other platforms says otherwise.

Thats my only beef, and I am actually kind of surprised that no one else is bothered by this in least! All a matter of taste, probably :)

--
Jonathan LaCour
http://cleverdevil.org


Reply via email to