File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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' : 'sd_IN@devanagari.UTF-8' ,
1489- 'sd_in@devanagari' : 'sd_IN@devanagari.UTF-8' ,
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' ,
Original file line number Diff line number Diff 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
425439class TestMiscellaneous (unittest .TestCase ):
426440 def test_getpreferredencoding (self ):
Original file line number Diff line number Diff line change @@ -29,6 +29,8 @@ Core and Builtins
2929Library
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
Original file line number Diff line number Diff 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. ks_IN@devanagari.UTF-8
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 ]
You can’t perform that action at this time.
0 commit comments