Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e190fac

Browse files
Issue #20027: Fixed locale aliases for devanagari locales.
2 parents 1b97ed5 + 5eb0153 commit e190fac

4 files changed

Lines changed: 26 additions & 3 deletions

File tree

Lib/locale.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,7 +1309,7 @@ def getpreferredencoding(do_setlocale = True):
13091309
'korean.euc': 'ko_KR.eucKR',
13101310
'ks': 'ks_IN.UTF-8',
13111311
'ks_in': 'ks_IN.UTF-8',
1312-
'ks_in@devanagari': 'ks_IN@devanagari.UTF-8',
1312+
'ks_in@devanagari': 'ks_IN.UTF-8@devanagari',
13131313
'kw': 'kw_GB.ISO8859-1',
13141314
'kw_gb': 'kw_GB.ISO8859-1',
13151315
'kw_gb.iso88591': 'kw_GB.ISO8859-1',
@@ -1474,8 +1474,9 @@ def getpreferredencoding(do_setlocale = True):
14741474
'rw_rw': 'rw_RW.ISO8859-1',
14751475
'rw_rw.iso88591': 'rw_RW.ISO8859-1',
14761476
'sd': 'sd_IN.UTF-8',
1477-
'sd@devanagari': '[email protected]',
1478-
'sd_in@devanagari': '[email protected]',
1477+
'sd@devanagari': 'sd_IN.UTF-8@devanagari',
1478+
'sd_in': 'sd_IN.UTF-8',
1479+
'sd_in@devanagari': 'sd_IN.UTF-8@devanagari',
14791480
'se_no': 'se_NO.UTF-8',
14801481
'serbocroatian': 'sr_RS.UTF-8@latin',
14811482
'sh': 'sr_RS.UTF-8@latin',

Lib/test/test_locale.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,20 @@ def test_valencia_modifier(self):
422422
self.check('ca_ES@valencia', 'ca_ES.ISO8859-1@valencia')
423423
self.check('ca@valencia', 'ca_ES.ISO8859-1@valencia')
424424

425+
def test_devanagari_modifier(self):
426+
self.check('ks_IN.UTF-8@devanagari', 'ks_IN.UTF-8@devanagari')
427+
self.check('ks_IN@devanagari', 'ks_IN.UTF-8@devanagari')
428+
self.check('ks@devanagari', 'ks_IN.UTF-8@devanagari')
429+
self.check('ks_IN.UTF-8', 'ks_IN.UTF-8')
430+
self.check('ks_IN', 'ks_IN.UTF-8')
431+
self.check('ks', 'ks_IN.UTF-8')
432+
self.check('sd_IN.UTF-8@devanagari', 'sd_IN.UTF-8@devanagari')
433+
self.check('sd_IN@devanagari', 'sd_IN.UTF-8@devanagari')
434+
self.check('sd@devanagari', 'sd_IN.UTF-8@devanagari')
435+
self.check('sd_IN.UTF-8', 'sd_IN.UTF-8')
436+
self.check('sd_IN', 'sd_IN.UTF-8')
437+
self.check('sd', 'sd_IN.UTF-8')
438+
425439

426440
class TestMiscellaneous(unittest.TestCase):
427441
def test_getpreferredencoding(self):

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Core and Builtins
4444
Library
4545
-------
4646

47+
- Issue #20027: Fixed locale aliases for devanagari locales.
48+
4749
- Issue #20067: Tkinter variables now work when wantobjects is false.
4850

4951
- Issue #19020: Tkinter now uses splitlist() instead of split() in configure

Tools/i18n/makelocalealias.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ def parse(filename):
2323
if line[:1] == '#':
2424
continue
2525
locale, alias = line.split()
26+
# Fix non-standard locale names, e.g. [email protected]
27+
if '@' in alias:
28+
alias_lang, _, alias_mod = alias.partition('@')
29+
if '.' in alias_mod:
30+
alias_mod, _, alias_enc = alias_mod.partition('.')
31+
alias = alias_lang + '.' + alias_enc + '@' + alias_mod
2632
# Strip ':'
2733
if locale[-1] == ':':
2834
locale = locale[:-1]

0 commit comments

Comments
 (0)