[Python-checkins] cpython (3.3): Issue #20027: Fixed locale aliases for devanagari locales.

serhiy.storchaka python-checkins at python.org
Thu Dec 26 20:22:19 CET 2013


http://hg.python.org/cpython/rev/7615c009e925
changeset:   88201:7615c009e925
branch:      3.3
parent:      88197:fbc1a39b68e4
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Thu Dec 26 21:20:59 2013 +0200
summary:
  Issue #20027: Fixed locale aliases for devanagari locales.

files:
  Lib/locale.py                 |   7 ++++---
  Lib/test/test_locale.py       |  14 ++++++++++++++
  Misc/NEWS                     |   2 ++
  Tools/i18n/makelocalealias.py |   6 ++++++
  4 files changed, 26 insertions(+), 3 deletions(-)


diff --git a/Lib/locale.py b/Lib/locale.py
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -1320,7 +1320,7 @@
     'korean.euc':                           'ko_KR.eucKR',
     'ks':                                   'ks_IN.UTF-8',
     'ks_in':                                'ks_IN.UTF-8',
-    'ks_in at devanagari':                     'ks_IN at devanagari.UTF-8',
+    'ks_in at devanagari':                     'ks_IN.UTF-8 at devanagari',
     'kw':                                   'kw_GB.ISO8859-1',
     'kw_gb':                                'kw_GB.ISO8859-1',
     'kw_gb.iso88591':                       'kw_GB.ISO8859-1',
@@ -1485,8 +1485,9 @@
     'rw_rw':                                'rw_RW.ISO8859-1',
     'rw_rw.iso88591':                       'rw_RW.ISO8859-1',
     'sd':                                   'sd_IN.UTF-8',
-    'sd at devanagari':                        'sd_IN at devanagari.UTF-8',
-    'sd_in at devanagari':                     'sd_IN at devanagari.UTF-8',
+    'sd at devanagari':                        'sd_IN.UTF-8 at devanagari',
+    'sd_in':                                'sd_IN.UTF-8',
+    'sd_in at devanagari':                     'sd_IN.UTF-8 at devanagari',
     'se_no':                                'se_NO.UTF-8',
     'serbocroatian':                        'sr_RS.UTF-8 at latin',
     'sh':                                   'sr_RS.UTF-8 at latin',
diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -421,6 +421,20 @@
         self.check('ca_ES at valencia', 'ca_ES.ISO8859-1 at valencia')
         self.check('ca at valencia', 'ca_ES.ISO8859-1 at valencia')
 
+    def test_devanagari_modifier(self):
+        self.check('ks_IN.UTF-8 at devanagari', 'ks_IN.UTF-8 at devanagari')
+        self.check('ks_IN at devanagari', 'ks_IN.UTF-8 at devanagari')
+        self.check('ks at devanagari', 'ks_IN.UTF-8 at devanagari')
+        self.check('ks_IN.UTF-8', 'ks_IN.UTF-8')
+        self.check('ks_IN', 'ks_IN.UTF-8')
+        self.check('ks', 'ks_IN.UTF-8')
+        self.check('sd_IN.UTF-8 at devanagari', 'sd_IN.UTF-8 at devanagari')
+        self.check('sd_IN at devanagari', 'sd_IN.UTF-8 at devanagari')
+        self.check('sd at devanagari', 'sd_IN.UTF-8 at devanagari')
+        self.check('sd_IN.UTF-8', 'sd_IN.UTF-8')
+        self.check('sd_IN', 'sd_IN.UTF-8')
+        self.check('sd', 'sd_IN.UTF-8')
+
 
 class TestMiscellaneous(unittest.TestCase):
     def test_getpreferredencoding(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,8 @@
 Library
 -------
 
+- Issue #20027: Fixed locale aliases for devanagari locales.
+
 - Issue #20067: Tkinter variables now work when wantobjects is false.
 
 - Issue #19020: Tkinter now uses splitlist() instead of split() in configure
diff --git a/Tools/i18n/makelocalealias.py b/Tools/i18n/makelocalealias.py
--- a/Tools/i18n/makelocalealias.py
+++ b/Tools/i18n/makelocalealias.py
@@ -23,6 +23,12 @@
         if line[:1] == '#':
             continue
         locale, alias = line.split()
+        # Fix non-standard locale names, e.g. ks_IN at devanagari.UTF-8
+        if '@' in alias:
+            alias_lang, _, alias_mod = alias.partition('@')
+            if '.' in alias_mod:
+                alias_mod, _, alias_enc = alias_mod.partition('.')
+                alias = alias_lang + '.' + alias_enc + '@' + alias_mod
         # Strip ':'
         if locale[-1] == ':':
             locale = locale[:-1]

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list