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

Skip to content

Commit 5eb0153

Browse files
Issue #20027: Fixed locale aliases for devanagari locales.
1 parent d97c01f commit 5eb0153

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
@@ -1320,7 +1320,7 @@ def getpreferredencoding(do_setlocale = True):
13201320
'korean.euc': 'ko_KR.eucKR',
13211321
'ks': 'ks_IN.UTF-8',
13221322
'ks_in': 'ks_IN.UTF-8',
1323-
'ks_in@devanagari': 'ks_IN@devanagari.UTF-8',
1323+
'ks_in@devanagari': 'ks_IN.UTF-8@devanagari',
13241324
'kw': 'kw_GB.ISO8859-1',
13251325
'kw_gb': 'kw_GB.ISO8859-1',
13261326
'kw_gb.iso88591': 'kw_GB.ISO8859-1',
@@ -1485,8 +1485,9 @@ def getpreferredencoding(do_setlocale = True):
14851485
'rw_rw': 'rw_RW.ISO8859-1',
14861486
'rw_rw.iso88591': 'rw_RW.ISO8859-1',
14871487
'sd': 'sd_IN.UTF-8',
1488-
'sd@devanagari': '[email protected]',
1489-
'sd_in@devanagari': '[email protected]',
1488+
'sd@devanagari': 'sd_IN.UTF-8@devanagari',
1489+
'sd_in': 'sd_IN.UTF-8',
1490+
'sd_in@devanagari': 'sd_IN.UTF-8@devanagari',
14901491
'se_no': 'se_NO.UTF-8',
14911492
'serbocroatian': 'sr_RS.UTF-8@latin',
14921493
'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
@@ -421,6 +421,20 @@ def test_valencia_modifier(self):
421421
self.check('ca_ES@valencia', 'ca_ES.ISO8859-1@valencia')
422422
self.check('ca@valencia', 'ca_ES.ISO8859-1@valencia')
423423

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

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

Misc/NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ Core and Builtins
2929
Library
3030
-------
3131

32+
- Issue #20027: Fixed locale aliases for devanagari locales.
33+
3234
- Issue #20067: Tkinter variables now work when wantobjects is false.
3335

3436
- 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)