On Sep 7, 2005, at 7:11 AM, Guido van Rossum wrote: > On 9/7/05, Barry Warsaw <[EMAIL PROTECTED]> 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 _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com