[Python-Dev] Replacement for print in Python 3.0

Bob Ippolito bob at redivi.com
Wed Sep 7 21:07:07 CEST 2005


On Sep 7, 2005, at 7:11 AM, Guido van Rossum wrote:
> On 9/7/05, Barry Warsaw <barry at python.org> wrote:
>>> On Wed, 2005年09月07日 at 05:23, Stephen J. Turnbull wrote:
>>>>>>> But print-ng looks
>>> like becoming the OOWTDI for a lot of applications. IMO it's 
>>> just too
>>> early to give up on print-ng becoming the one obvious way to do 
>>> it for
>>> a lot of i18n apps, too.
>>>>>>> +1. I have a gut feeling that we can make it easy for 
>> monolinguists to
>> use printng without caring or even knowing about i18n, but also 
>> make it
>> relatively painless to integrate i18n into an application or library.
>> However I haven't had time to really explore that idea.
>>>> I certainly didn't mean to rule that out. But I doubt that the only
> text to be i18n'd will occur in printf format strings. (In fact, I
> expect that few apps requiring i18n will be so primitive as to use
> *any* printf calls at all.)

In my experience, implementing i18n with *existing* Python (2.3 at 
the time) features was not a big deal.
We used a translation company to translate all of the strings, and 
they had no problem with normal Python %(format)s strings. We gave 
it to them in an excel spreadsheet, and converted it to Apple 
".strings" style files (which we parse directly in the Windows 
version). Granted, we highlighted all of the "%(format)s" in the 
spreadsheet so it was clear what should be preserved.
It worked like this:
def _(stringToBeLocalized):
 return anAppropriateString
and all formatted strings in the code looked like this:
_('default english string %(variable)s') % someDict
from real world production code:
_(u'Installing this software requires %(requiredSpace)s of space.\n 
\nYou have selected to install this software on the iPod "%(podName) 
s" (%(totalFree)s available)') % {
 u'requiredSpace': self.installer.getRequiredFreeDiskSpace(),
 u'podName': self.podName,
 u'totalFree': space,
}
I was also able to easily automate the process of extracting strings 
to create that spreadsheet. I wrote a simple script that parsed the 
Python modules and looked for function calls of "_" whose only 
argument was a constant string. Worked great, and it was easy to write.
-bob


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /