Eugene Crosser <cros...@average.org> added the comment:

I don't know if the solution suggested in the report is right, but I can 
confirm the the current logic of getdefaultlocale() produces wrong results.

I have
  LANG=en_US.UTF-8
  LANGUAGE=en_US:en
  LC_CTYPE=ru_RU.UTF-8
  LC_COLLATE=ru_RU.UTF-8
which means, according to the documentation, "Do everything in English, but 
recognize Russian words and sort according to Russian alphabet".

All other software honors that semantics, except Python that returns Russian as 
the overall default locale:

Python 2.7.1+ (r271:86832, Feb 24 2011, 15:00:15) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> print locale.getdefaultlocale()
('ru_RU', 'UTF8')

I believe that because LC_CTYPE controls only one specific aspect of the 
locale, it either should not be used at all, or used only as the last resort 
when locale cannot be determined from LANG or LANGUAGE. I think that the 
current search order "envvars=('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE')" is 
wrong.

----------
nosy: +crosser

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue6981>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to