syslocale: setlocale for LC_COLLATE requires encoding to be considered valid.
authorJoe Wreschnig <joe.wreschnig@gmail.com>
Mon, 15 Feb 2010 05:39:44 +0000 (21:39 -0800)
committerJoe Wreschnig <joe.wreschnig@gmail.com>
Mon, 15 Feb 2010 05:39:44 +0000 (21:39 -0800)
collate/syslocale.py

index 4a67044..1ee2924 100644 (file)
@@ -35,9 +35,10 @@ class Collator(collate._abcollator.Collator):
     def __init__(self, locale_code, encoding=None):
         locale_code, encoding = collate._locale.getpair(locale_code, encoding)
         try:
-            locale.setlocale(locale.LC_COLLATE, locale_code)
+            setlocale = locale_code + "." + encoding
+            locale.setlocale(locale.LC_COLLATE, setlocale)
         except locale.Error:
-            raise collate.errors.InvalidLocaleError(locale_code)
+            raise collate.errors.InvalidLocaleError(setlocale)
         self.locale = locale.getlocale(locale.LC_COLLATE)[0]
         self.encoding = collate._locale.encoding(encoding)