Portable locale usage
vlastimil.brom at gmail.com
Tue Sep 6 15:13:17 CEST 2011
2011/9/6 ssegvic <sinisa.segvic at fer.hr>:
> I am musing on how to write portable Python3 code which would
> take advantage of the standard locale module.
> For instance, it would be very nice if we could say something like:
> # does not work!
> locale.setlocale(locale.LC_ALL, (myISOCountryCode,
> Up to now, I have found ways to set locale on Linux and Windows:
> import locale
> locale.setlocale(locale.LC_ALL, 'hr_HR.utf8') # works on linux
> locale.setlocale(locale.LC_ALL, 'hrv_HRV.1250') # works on windows
> I have noticed that locale defines a dictionary locale.locale_alias,
> and that it contains the following promising keys: 'hr_hr',
> 'hrvatski', 'hr'.
> Unfortunately, both on Windows and Linux all these keys
> are bound to the same outdated string 'hr_HR.ISO8859-2'.
> My questions are the following:
> 1. Is there a way for writing portable Python code dealing with
> (as sketched in the beginning)?
> 2. If not, is there anything wrong with that idea?
> 3. What is the status of locale.locale_alias (official documentation
> does not mention it)?
There may be some differences btween OSes end the versions, but using
python 2.7 and 3.2 on Win XP and Win7 (Czech)
I get the following results for setlocale:
However, "hr" is not recognised on this systems:
>>> locale.setlocale(locale.LC_ALL, "hr")
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "locale.pyc", line 531, in setlocale
Error: unsupported locale setting
More information about the Python-list