[Python-Dev] Locale-specific formatting
R. David Murray
rdmurray at bitdance.com
Sat Dec 18 05:00:28 CET 2010
On Sat, 18 Dec 2010 00:08:47 +0000, MRAB <python at mrabarnett.plus.com> wrote:
> I had a thought about locale-specific formatting.
>
> Currently, when we want to do locale-specific formatting we use the
> locale module like this:
>
> >>> locale.format("%d", 12345, grouping=False)
> '12345'
> >>> locale.format("%d", 12345, grouping=True)
> '12,345'
>
> This makes it harder to use more than one locale at a time, or one
> which is different from the default.
>
> My thought was that we could specify a locale in the format
> specification mini-language and the parameter list of str.format,
> something like this:
>
> >>> loc = locale.getlocale()
> >>> "{0:@1}".format(12345, loc)
> '12345'
> >>> "{0:, at 1}".format(12345, loc)
> '12,345'
> ...
> >>> "UK says {value:,.1f at uk} and France says
> {value:,.1f at france}".format(value=12345, uk=uk_loc, france=france_loc)
> 'UK says 1,234.5 and France says 1 234,5'
>
> Comments?
There was at least one long thread on this on python-ideas. Probably
worth finding and reading before proceeding with a new discussion... :)
I think it was part of the discussion that ultimately led to PEP 378.
--
R. David Murray www.bitdance.com
More information about the Python-Dev
mailing list