Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
c7355fa4
Commit
c7355fa4
authored
Dec 27, 2013
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #20046: Locale alias table no longer contains entities which can be
calculated. Generalized support of the euro modifier.
parent
78f2ccda
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
109 additions
and
426 deletions
+109
-426
Lib/locale.py
Lib/locale.py
+40
-426
Lib/test/test_locale.py
Lib/test/test_locale.py
+39
-0
Misc/NEWS
Misc/NEWS
+3
-0
Tools/i18n/makelocalealias.py
Tools/i18n/makelocalealias.py
+27
-0
No files found.
Lib/locale.py
View file @
c7355fa4
...
...
@@ -344,14 +344,32 @@ def _replace_encoding(code, encoding):
# Convert the encoding to a C lib compatible encoding string
norm_encoding
=
encodings
.
normalize_encoding
(
encoding
)
#print('norm encoding: %r' % norm_encoding)
norm_encoding
=
encodings
.
aliases
.
aliases
.
get
(
norm_encoding
,
norm_encoding
=
encodings
.
aliases
.
aliases
.
get
(
norm_encoding
.
lower
()
,
norm_encoding
)
#print('aliased encoding: %r' % norm_encoding)
encoding
=
locale_encoding_alias
.
get
(
norm_encoding
,
norm_encoding
)
encoding
=
norm_encoding
norm_encoding
=
norm_encoding
.
lower
()
if
norm_encoding
in
locale_encoding_alias
:
encoding
=
locale_encoding_alias
[
norm_encoding
]
else
:
norm_encoding
=
norm_encoding
.
replace
(
'_'
,
''
)
norm_encoding
=
norm_encoding
.
replace
(
'-'
,
''
)
if
norm_encoding
in
locale_encoding_alias
:
encoding
=
locale_encoding_alias
[
norm_encoding
]
#print('found encoding %r' % encoding)
return
langname
+
'.'
+
encoding
def
_append_modifier
(
code
,
modifier
):
if
modifier
==
'euro'
:
if
'.'
not
in
code
:
return
code
+
'.ISO8859-15'
_
,
_
,
encoding
=
code
.
partition
(
'.'
)
if
encoding
in
(
'ISO8859-15'
,
'UTF-8'
):
return
code
if
encoding
==
'ISO8859-1'
:
return
_replace_encoding
(
code
,
'ISO8859-15'
)
return
code
+
'@'
+
modifier
def
normalize
(
localename
):
""" Returns a normalized locale code for the given locale
...
...
@@ -403,7 +421,7 @@ def normalize(localename):
if
code
is
not
None
:
#print('lookup without modifier succeeded')
if
'@'
not
in
code
:
return
code
+
'@'
+
modifier
return
_append_modifier
(
code
,
modifier
)
if
code
.
split
(
'@'
,
1
)[
1
].
lower
()
==
modifier
:
return
code
#print('second lookup failed')
...
...
@@ -427,7 +445,8 @@ def normalize(localename):
if
code
is
not
None
:
#print('lookup without modifier and encoding succeeded')
if
'@'
not
in
code
:
return
_replace_encoding
(
code
,
encoding
)
+
'@'
+
modifier
code
=
_replace_encoding
(
code
,
encoding
)
return
_append_modifier
(
code
,
modifier
)
code
,
defmod
=
code
.
split
(
'@'
,
1
)
if
defmod
.
lower
()
==
modifier
:
return
_replace_encoding
(
code
,
encoding
)
+
'@'
+
defmod
...
...
@@ -643,6 +662,14 @@ locale_encoding_alias = {
'jis'
:
'JIS7'
,
'jis7'
:
'JIS7'
,
'ajec'
:
'eucJP'
,
'koi8c'
:
'KOI8-C'
,
'microsoftcp1251'
:
'CP1251'
,
'microsoftcp1255'
:
'CP1255'
,
'microsoftcp1256'
:
'CP1256'
,
'88591'
:
'ISO8859-1'
,
'88592'
:
'ISO8859-2'
,
'88595'
:
'ISO8859-5'
,
'885915'
:
'ISO8859-15'
,
# Mappings from Python codec names to C lib encoding names
'ascii'
:
'ISO8859-1'
,
...
...
@@ -670,10 +697,18 @@ locale_encoding_alias = {
'utf_8'
:
'UTF-8'
,
'koi8_r'
:
'KOI8-R'
,
'koi8_u'
:
'KOI8-U'
,
'cp1251'
:
'CP1251'
,
'cp1255'
:
'CP1255'
,
'cp1256'
:
'CP1256'
,
# XXX This list is still incomplete. If you know more
# mappings, please file a bug report. Thanks.
}
for
k
,
v
in
sorted
(
locale_encoding_alias
.
items
()):
k
=
k
.
replace
(
'_'
,
''
)
locale_encoding_alias
.
setdefault
(
k
,
v
)
#
# The locale_alias table maps lowercase alias names to C locale names
# (case-sensitive). Encodings are always separated from the locale
...
...
@@ -786,55 +821,33 @@ locale_encoding_alias = {
locale_alias
=
{
'a3'
:
'az_AZ.KOI8-C'
,
'a3_az'
:
'az_AZ.KOI8-C'
,
'a3_az.koi8c'
:
'az_AZ.KOI8-C'
,
'a3_az.koic'
:
'az_AZ.KOI8-C'
,
'af'
:
'af_ZA.ISO8859-1'
,
'af_za'
:
'af_ZA.ISO8859-1'
,
'af_za.iso88591'
:
'af_ZA.ISO8859-1'
,
'am'
:
'am_ET.UTF-8'
,
'am_et'
:
'am_ET.UTF-8'
,
'american'
:
'en_US.ISO8859-1'
,
'american.iso88591'
:
'en_US.ISO8859-1'
,
'ar'
:
'ar_AA.ISO8859-6'
,
'ar_aa'
:
'ar_AA.ISO8859-6'
,
'ar_aa.iso88596'
:
'ar_AA.ISO8859-6'
,
'ar_ae'
:
'ar_AE.ISO8859-6'
,
'ar_ae.iso88596'
:
'ar_AE.ISO8859-6'
,
'ar_bh'
:
'ar_BH.ISO8859-6'
,
'ar_bh.iso88596'
:
'ar_BH.ISO8859-6'
,
'ar_dz'
:
'ar_DZ.ISO8859-6'
,
'ar_dz.iso88596'
:
'ar_DZ.ISO8859-6'
,
'ar_eg'
:
'ar_EG.ISO8859-6'
,
'ar_eg.iso88596'
:
'ar_EG.ISO8859-6'
,
'ar_in'
:
'ar_IN.UTF-8'
,
'ar_iq'
:
'ar_IQ.ISO8859-6'
,
'ar_iq.iso88596'
:
'ar_IQ.ISO8859-6'
,
'ar_jo'
:
'ar_JO.ISO8859-6'
,
'ar_jo.iso88596'
:
'ar_JO.ISO8859-6'
,
'ar_kw'
:
'ar_KW.ISO8859-6'
,
'ar_kw.iso88596'
:
'ar_KW.ISO8859-6'
,
'ar_lb'
:
'ar_LB.ISO8859-6'
,
'ar_lb.iso88596'
:
'ar_LB.ISO8859-6'
,
'ar_ly'
:
'ar_LY.ISO8859-6'
,
'ar_ly.iso88596'
:
'ar_LY.ISO8859-6'
,
'ar_ma'
:
'ar_MA.ISO8859-6'
,
'ar_ma.iso88596'
:
'ar_MA.ISO8859-6'
,
'ar_om'
:
'ar_OM.ISO8859-6'
,
'ar_om.iso88596'
:
'ar_OM.ISO8859-6'
,
'ar_qa'
:
'ar_QA.ISO8859-6'
,
'ar_qa.iso88596'
:
'ar_QA.ISO8859-6'
,
'ar_sa'
:
'ar_SA.ISO8859-6'
,
'ar_sa.iso88596'
:
'ar_SA.ISO8859-6'
,
'ar_sd'
:
'ar_SD.ISO8859-6'
,
'ar_sd.iso88596'
:
'ar_SD.ISO8859-6'
,
'ar_sy'
:
'ar_SY.ISO8859-6'
,
'ar_sy.iso88596'
:
'ar_SY.ISO8859-6'
,
'ar_tn'
:
'ar_TN.ISO8859-6'
,
'ar_tn.iso88596'
:
'ar_TN.ISO8859-6'
,
'ar_ye'
:
'ar_YE.ISO8859-6'
,
'ar_ye.iso88596'
:
'ar_YE.ISO8859-6'
,
'arabic'
:
'ar_AA.ISO8859-6'
,
'arabic.iso88596'
:
'ar_AA.ISO8859-6'
,
'as'
:
'as_IN.UTF-8'
,
'as_in'
:
'as_IN.UTF-8'
,
'az'
:
'az_AZ.ISO8859-9E'
,
...
...
@@ -843,35 +856,20 @@ locale_alias = {
'be'
:
'be_BY.CP1251'
,
'be@latin'
:
'be_BY.UTF-8@latin'
,
'be_by'
:
'be_BY.CP1251'
,
'be_by.cp1251'
:
'be_BY.CP1251'
,
'be_by.microsoftcp1251'
:
'be_BY.CP1251'
,
'be_by.utf8@latin'
:
'be_BY.UTF-8@latin'
,
'be_by@latin'
:
'be_BY.UTF-8@latin'
,
'bg'
:
'bg_BG.CP1251'
,
'bg_bg'
:
'bg_BG.CP1251'
,
'bg_bg.cp1251'
:
'bg_BG.CP1251'
,
'bg_bg.iso88595'
:
'bg_BG.ISO8859-5'
,
'bg_bg.koi8r'
:
'bg_BG.KOI8-R'
,
'bg_bg.microsoftcp1251'
:
'bg_BG.CP1251'
,
'bn_in'
:
'bn_IN.UTF-8'
,
'bo_in'
:
'bo_IN.UTF-8'
,
'bokmal'
:
'nb_NO.ISO8859-1'
,
'bokm
\
xe5
l'
:
'nb_NO.ISO8859-1'
,
'br'
:
'br_FR.ISO8859-1'
,
'br_fr'
:
'br_FR.ISO8859-1'
,
'br_fr.iso88591'
:
'br_FR.ISO8859-1'
,
'br_fr.iso885914'
:
'br_FR.ISO8859-14'
,
'br_fr.iso885915'
:
'br_FR.ISO8859-15'
,
'br_fr.iso885915@euro'
:
'br_FR.ISO8859-15'
,
'br_fr.utf8@euro'
:
'br_FR.UTF-8'
,
'br_fr@euro'
:
'br_FR.ISO8859-15'
,
'bs'
:
'bs_BA.ISO8859-2'
,
'bs_ba'
:
'bs_BA.ISO8859-2'
,
'bs_ba.iso88592'
:
'bs_BA.ISO8859-2'
,
'bulgarian'
:
'bg_BG.CP1251'
,
'c'
:
'C'
,
'c-french'
:
'fr_CA.ISO8859-1'
,
'c-french.iso88591'
:
'fr_CA.ISO8859-1'
,
'c.ascii'
:
'C'
,
'c.en'
:
'C'
,
'c.iso88591'
:
'en_US.ISO8859-1'
,
...
...
@@ -879,343 +877,131 @@ locale_alias = {
'c_c.c'
:
'C'
,
'ca'
:
'ca_ES.ISO8859-1'
,
'ca_ad'
:
'ca_AD.ISO8859-1'
,
'ca_ad.iso88591'
:
'ca_AD.ISO8859-1'
,
'ca_ad.iso885915'
:
'ca_AD.ISO8859-15'
,
'ca_ad.iso885915@euro'
:
'ca_AD.ISO8859-15'
,
'ca_ad.utf8@euro'
:
'ca_AD.UTF-8'
,
'ca_ad@euro'
:
'ca_AD.ISO8859-15'
,
'ca_es'
:
'ca_ES.ISO8859-1'
,
'ca_es.iso88591'
:
'ca_ES.ISO8859-1'
,
'ca_es.iso885915'
:
'ca_ES.ISO8859-15'
,
'ca_es.iso885915@euro'
:
'ca_ES.ISO8859-15'
,
'ca_es.utf8@euro'
:
'ca_ES.UTF-8'
,
'ca_es@euro'
:
'ca_ES.ISO8859-15'
,
'ca_fr'
:
'ca_FR.ISO8859-1'
,
'ca_fr.iso88591'
:
'ca_FR.ISO8859-1'
,
'ca_fr.iso885915'
:
'ca_FR.ISO8859-15'
,
'ca_fr.iso885915@euro'
:
'ca_FR.ISO8859-15'
,
'ca_fr.utf8@euro'
:
'ca_FR.UTF-8'
,
'ca_fr@euro'
:
'ca_FR.ISO8859-15'
,
'ca_it'
:
'ca_IT.ISO8859-1'
,
'ca_it.iso88591'
:
'ca_IT.ISO8859-1'
,
'ca_it.iso885915'
:
'ca_IT.ISO8859-15'
,
'ca_it.iso885915@euro'
:
'ca_IT.ISO8859-15'
,
'ca_it.utf8@euro'
:
'ca_IT.UTF-8'
,
'ca_it@euro'
:
'ca_IT.ISO8859-15'
,
'catalan'
:
'ca_ES.ISO8859-1'
,
'cextend'
:
'en_US.ISO8859-1'
,
'cextend.en'
:
'en_US.ISO8859-1'
,
'chinese-s'
:
'zh_CN.eucCN'
,
'chinese-t'
:
'zh_TW.eucTW'
,
'croatian'
:
'hr_HR.ISO8859-2'
,
'cs'
:
'cs_CZ.ISO8859-2'
,
'cs_cs'
:
'cs_CZ.ISO8859-2'
,
'cs_cs.iso88592'
:
'cs_CZ.ISO8859-2'
,
'cs_cz'
:
'cs_CZ.ISO8859-2'
,
'cs_cz.iso88592'
:
'cs_CZ.ISO8859-2'
,
'cy'
:
'cy_GB.ISO8859-1'
,
'cy_gb'
:
'cy_GB.ISO8859-1'
,
'cy_gb.iso88591'
:
'cy_GB.ISO8859-1'
,
'cy_gb.iso885914'
:
'cy_GB.ISO8859-14'
,
'cy_gb.iso885915'
:
'cy_GB.ISO8859-15'
,
'cy_gb@euro'
:
'cy_GB.ISO8859-15'
,
'cz'
:
'cs_CZ.ISO8859-2'
,
'cz_cz'
:
'cs_CZ.ISO8859-2'
,
'czech'
:
'cs_CZ.ISO8859-2'
,
'da'
:
'da_DK.ISO8859-1'
,
'da.iso885915'
:
'da_DK.ISO8859-15'
,
'da_dk'
:
'da_DK.ISO8859-1'
,
'da_dk.88591'
:
'da_DK.ISO8859-1'
,
'da_dk.885915'
:
'da_DK.ISO8859-15'
,
'da_dk.iso88591'
:
'da_DK.ISO8859-1'
,
'da_dk.iso885915'
:
'da_DK.ISO8859-15'
,
'da_dk@euro'
:
'da_DK.ISO8859-15'
,
'danish'
:
'da_DK.ISO8859-1'
,
'danish.iso88591'
:
'da_DK.ISO8859-1'
,
'dansk'
:
'da_DK.ISO8859-1'
,
'de'
:
'de_DE.ISO8859-1'
,
'de.iso885915'
:
'de_DE.ISO8859-15'
,
'de_at'
:
'de_AT.ISO8859-1'
,
'de_at.iso88591'
:
'de_AT.ISO8859-1'
,
'de_at.iso885915'
:
'de_AT.ISO8859-15'
,
'de_at.iso885915@euro'
:
'de_AT.ISO8859-15'
,
'de_at.utf8@euro'
:
'de_AT.UTF-8'
,
'de_at@euro'
:
'de_AT.ISO8859-15'
,
'de_be'
:
'de_BE.ISO8859-1'
,
'de_be.iso88591'
:
'de_BE.ISO8859-1'
,
'de_be.iso885915'
:
'de_BE.ISO8859-15'
,
'de_be.iso885915@euro'
:
'de_BE.ISO8859-15'
,
'de_be.utf8@euro'
:
'de_BE.UTF-8'
,
'de_be@euro'
:
'de_BE.ISO8859-15'
,
'de_ch'
:
'de_CH.ISO8859-1'
,
'de_ch.iso88591'
:
'de_CH.ISO8859-1'
,
'de_ch.iso885915'
:
'de_CH.ISO8859-15'
,
'de_ch@euro'
:
'de_CH.ISO8859-15'
,
'de_de'
:
'de_DE.ISO8859-1'
,
'de_de.88591'
:
'de_DE.ISO8859-1'
,
'de_de.885915'
:
'de_DE.ISO8859-15'
,
'de_de.885915@euro'
:
'de_DE.ISO8859-15'
,
'de_de.iso88591'
:
'de_DE.ISO8859-1'
,
'de_de.iso885915'
:
'de_DE.ISO8859-15'
,
'de_de.iso885915@euro'
:
'de_DE.ISO8859-15'
,
'de_de.utf8@euro'
:
'de_DE.UTF-8'
,
'de_de@euro'
:
'de_DE.ISO8859-15'
,
'de_lu'
:
'de_LU.ISO8859-1'
,
'de_lu.iso88591'
:
'de_LU.ISO8859-1'
,
'de_lu.iso885915'
:
'de_LU.ISO8859-15'
,
'de_lu.iso885915@euro'
:
'de_LU.ISO8859-15'
,
'de_lu.utf8@euro'
:
'de_LU.UTF-8'
,
'de_lu@euro'
:
'de_LU.ISO8859-15'
,
'deutsch'
:
'de_DE.ISO8859-1'
,
'dutch'
:
'nl_NL.ISO8859-1'
,
'dutch.iso88591'
:
'nl_BE.ISO8859-1'
,
'ee'
:
'ee_EE.ISO8859-4'
,
'ee_ee'
:
'ee_EE.ISO8859-4'
,
'ee_ee.iso88594'
:
'ee_EE.ISO8859-4'
,
'eesti'
:
'et_EE.ISO8859-1'
,
'el'
:
'el_GR.ISO8859-7'
,
'el_gr'
:
'el_GR.ISO8859-7'
,
'el_gr.iso88597'
:
'el_GR.ISO8859-7'
,
'el_gr@euro'
:
'el_GR.ISO8859-15'
,
'en'
:
'en_US.ISO8859-1'
,
'en.iso88591'
:
'en_US.ISO8859-1'
,
'en_au'
:
'en_AU.ISO8859-1'
,
'en_au.iso88591'
:
'en_AU.ISO8859-1'
,
'en_be'
:
'en_BE.ISO8859-1'
,
'en_be@euro'
:
'en_BE.ISO8859-15'
,
'en_bw'
:
'en_BW.ISO8859-1'
,
'en_bw.iso88591'
:
'en_BW.ISO8859-1'
,
'en_ca'
:
'en_CA.ISO8859-1'
,
'en_ca.iso88591'
:
'en_CA.ISO8859-1'
,
'en_gb'
:
'en_GB.ISO8859-1'
,
'en_gb.88591'
:
'en_GB.ISO8859-1'
,
'en_gb.iso88591'
:
'en_GB.ISO8859-1'
,
'en_gb.iso885915'
:
'en_GB.ISO8859-15'
,
'en_gb@euro'
:
'en_GB.ISO8859-15'
,
'en_hk'
:
'en_HK.ISO8859-1'
,
'en_hk.iso88591'
:
'en_HK.ISO8859-1'
,
'en_ie'
:
'en_IE.ISO8859-1'
,
'en_ie.iso88591'
:
'en_IE.ISO8859-1'
,
'en_ie.iso885915'
:
'en_IE.ISO8859-15'
,
'en_ie.iso885915@euro'
:
'en_IE.ISO8859-15'
,
'en_ie.utf8@euro'
:
'en_IE.UTF-8'
,
'en_ie@euro'
:
'en_IE.ISO8859-15'
,
'en_in'
:
'en_IN.ISO8859-1'
,
'en_nz'
:
'en_NZ.ISO8859-1'
,
'en_nz.iso88591'
:
'en_NZ.ISO8859-1'
,
'en_ph'
:
'en_PH.ISO8859-1'
,
'en_ph.iso88591'
:
'en_PH.ISO8859-1'
,
'en_sg'
:
'en_SG.ISO8859-1'
,
'en_sg.iso88591'
:
'en_SG.ISO8859-1'
,
'en_uk'
:
'en_GB.ISO8859-1'
,
'en_us'
:
'en_US.ISO8859-1'
,
'en_us.88591'
:
'en_US.ISO8859-1'
,
'en_us.885915'
:
'en_US.ISO8859-15'
,
'en_us.iso88591'
:
'en_US.ISO8859-1'
,
'en_us.iso885915'
:
'en_US.ISO8859-15'
,
'en_us.iso885915@euro'
:
'en_US.ISO8859-15'
,
'en_us@euro'
:
'en_US.ISO8859-15'
,
'en_us@euro@euro'
:
'en_US.ISO8859-15'
,
'en_za'
:
'en_ZA.ISO8859-1'
,
'en_za.88591'
:
'en_ZA.ISO8859-1'
,
'en_za.iso88591'
:
'en_ZA.ISO8859-1'
,
'en_za.iso885915'
:
'en_ZA.ISO8859-15'
,
'en_za@euro'
:
'en_ZA.ISO8859-15'
,
'en_zw'
:
'en_ZW.ISO8859-1'
,
'en_zw.iso88591'
:
'en_ZW.ISO8859-1'
,
'eng_gb'
:
'en_GB.ISO8859-1'
,
'eng_gb.8859'
:
'en_GB.ISO8859-1'
,
'english'
:
'en_EN.ISO8859-1'
,
'english.iso88591'
:
'en_EN.ISO8859-1'
,
'english_uk'
:
'en_GB.ISO8859-1'
,
'english_uk.8859'
:
'en_GB.ISO8859-1'
,
'english_united-states'
:
'en_US.ISO8859-1'
,
'english_united-states.437'
:
'C'
,
'english_us'
:
'en_US.ISO8859-1'
,
'english_us.8859'
:
'en_US.ISO8859-1'
,
'english_us.ascii'
:
'en_US.ISO8859-1'
,
'eo'
:
'eo_XX.ISO8859-3'
,
'eo_eo'
:
'eo_EO.ISO8859-3'
,
'eo_eo.iso88593'
:
'eo_EO.ISO8859-3'
,
'eo_xx'
:
'eo_XX.ISO8859-3'
,
'eo_xx.iso88593'
:
'eo_XX.ISO8859-3'
,
'es'
:
'es_ES.ISO8859-1'
,
'es_ar'
:
'es_AR.ISO8859-1'
,
'es_ar.iso88591'
:
'es_AR.ISO8859-1'
,
'es_bo'
:
'es_BO.ISO8859-1'
,
'es_bo.iso88591'
:
'es_BO.ISO8859-1'
,
'es_cl'
:
'es_CL.ISO8859-1'
,
'es_cl.iso88591'
:
'es_CL.ISO8859-1'
,
'es_co'
:
'es_CO.ISO8859-1'
,
'es_co.iso88591'
:
'es_CO.ISO8859-1'
,
'es_cr'
:
'es_CR.ISO8859-1'
,
'es_cr.iso88591'
:
'es_CR.ISO8859-1'
,
'es_do'
:
'es_DO.ISO8859-1'
,
'es_do.iso88591'
:
'es_DO.ISO8859-1'
,
'es_ec'
:
'es_EC.ISO8859-1'
,
'es_ec.iso88591'
:
'es_EC.ISO8859-1'
,
'es_es'
:
'es_ES.ISO8859-1'
,
'es_es.88591'
:
'es_ES.ISO8859-1'
,
'es_es.iso88591'
:
'es_ES.ISO8859-1'
,
'es_es.iso885915'
:
'es_ES.ISO8859-15'
,
'es_es.iso885915@euro'
:
'es_ES.ISO8859-15'
,
'es_es.utf8@euro'
:
'es_ES.UTF-8'
,
'es_es@euro'
:
'es_ES.ISO8859-15'
,
'es_gt'
:
'es_GT.ISO8859-1'
,
'es_gt.iso88591'
:
'es_GT.ISO8859-1'
,
'es_hn'
:
'es_HN.ISO8859-1'
,
'es_hn.iso88591'
:
'es_HN.ISO8859-1'
,
'es_mx'
:
'es_MX.ISO8859-1'
,
'es_mx.iso88591'
:
'es_MX.ISO8859-1'
,
'es_ni'
:
'es_NI.ISO8859-1'
,
'es_ni.iso88591'
:
'es_NI.ISO8859-1'
,
'es_pa'
:
'es_PA.ISO8859-1'
,
'es_pa.iso88591'
:
'es_PA.ISO8859-1'
,
'es_pa.iso885915'
:
'es_PA.ISO8859-15'
,
'es_pa@euro'
:
'es_PA.ISO8859-15'
,
'es_pe'
:
'es_PE.ISO8859-1'
,
'es_pe.iso88591'
:
'es_PE.ISO8859-1'
,
'es_pe.iso885915'
:
'es_PE.ISO8859-15'
,
'es_pe@euro'
:
'es_PE.ISO8859-15'
,
'es_pr'
:
'es_PR.ISO8859-1'
,
'es_pr.iso88591'
:
'es_PR.ISO8859-1'
,
'es_py'
:
'es_PY.ISO8859-1'
,
'es_py.iso88591'
:
'es_PY.ISO8859-1'
,
'es_py.iso885915'
:
'es_PY.ISO8859-15'
,
'es_py@euro'
:
'es_PY.ISO8859-15'
,
'es_sv'
:
'es_SV.ISO8859-1'
,
'es_sv.iso88591'
:
'es_SV.ISO8859-1'
,
'es_sv.iso885915'
:
'es_SV.ISO8859-15'
,
'es_sv@euro'
:
'es_SV.ISO8859-15'
,
'es_us'
:
'es_US.ISO8859-1'
,
'es_us.iso88591'
:
'es_US.ISO8859-1'
,
'es_uy'
:
'es_UY.ISO8859-1'
,
'es_uy.iso88591'
:
'es_UY.ISO8859-1'
,
'es_uy.iso885915'
:
'es_UY.ISO8859-15'
,
'es_uy@euro'
:
'es_UY.ISO8859-15'
,
'es_ve'
:
'es_VE.ISO8859-1'
,
'es_ve.iso88591'
:
'es_VE.ISO8859-1'
,
'es_ve.iso885915'
:
'es_VE.ISO8859-15'
,
'es_ve@euro'
:
'es_VE.ISO8859-15'
,
'estonian'
:
'et_EE.ISO8859-1'
,
'et'
:
'et_EE.ISO8859-15'
,
'et_ee'
:
'et_EE.ISO8859-15'
,
'et_ee.iso88591'
:
'et_EE.ISO8859-1'
,
'et_ee.iso885913'
:
'et_EE.ISO8859-13'
,
'et_ee.iso885915'
:
'et_EE.ISO8859-15'
,
'et_ee.iso88594'
:
'et_EE.ISO8859-4'
,
'et_ee@euro'
:
'et_EE.ISO8859-15'
,
'eu'
:
'eu_ES.ISO8859-1'
,
'eu_es'
:
'eu_ES.ISO8859-1'
,
'eu_es.iso88591'
:
'eu_ES.ISO8859-1'
,
'eu_es.iso885915'
:
'eu_ES.ISO8859-15'
,
'eu_es.iso885915@euro'
:
'eu_ES.ISO8859-15'
,
'eu_es.utf8@euro'
:
'eu_ES.UTF-8'
,
'eu_es@euro'
:
'eu_ES.ISO8859-15'
,
'fa'
:
'fa_IR.UTF-8'
,
'fa_ir'
:
'fa_IR.UTF-8'
,
'fa_ir.isiri3342'
:
'fa_IR.ISIRI-3342'
,
'fi'
:
'fi_FI.ISO8859-15'
,
'fi.iso885915'
:
'fi_FI.ISO8859-15'
,
'fi_fi'
:
'fi_FI.ISO8859-15'
,
'fi_fi.88591'
:
'fi_FI.ISO8859-1'
,
'fi_fi.iso88591'
:
'fi_FI.ISO8859-1'
,
'fi_fi.iso885915'
:
'fi_FI.ISO8859-15'
,
'fi_fi.iso885915@euro'
:
'fi_FI.ISO8859-15'
,
'fi_fi.utf8@euro'
:
'fi_FI.UTF-8'
,
'fi_fi@euro'
:
'fi_FI.ISO8859-15'
,
'finnish'
:
'fi_FI.ISO8859-1'
,
'finnish.iso88591'
:
'fi_FI.ISO8859-1'
,
'fo'
:
'fo_FO.ISO8859-1'
,
'fo_fo'
:
'fo_FO.ISO8859-1'
,
'fo_fo.iso88591'
:
'fo_FO.ISO8859-1'
,
'fo_fo.iso885915'
:
'fo_FO.ISO8859-15'
,
'fo_fo@euro'
:
'fo_FO.ISO8859-15'
,
'fr'
:
'fr_FR.ISO8859-1'
,
'fr.iso885915'
:
'fr_FR.ISO8859-15'
,
'fr_be'
:
'fr_BE.ISO8859-1'
,
'fr_be.88591'
:
'fr_BE.ISO8859-1'
,
'fr_be.iso88591'
:
'fr_BE.ISO8859-1'
,
'fr_be.iso885915'
:
'fr_BE.ISO8859-15'
,
'fr_be.iso885915@euro'
:
'fr_BE.ISO8859-15'
,
'fr_be.utf8@euro'
:
'fr_BE.UTF-8'
,
'fr_be@euro'
:
'fr_BE.ISO8859-15'
,
'fr_ca'
:
'fr_CA.ISO8859-1'
,
'fr_ca.88591'
:
'fr_CA.ISO8859-1'
,
'fr_ca.iso88591'
:
'fr_CA.ISO8859-1'
,
'fr_ca.iso885915'
:
'fr_CA.ISO8859-15'
,
'fr_ca@euro'
:
'fr_CA.ISO8859-15'
,
'fr_ch'
:
'fr_CH.ISO8859-1'
,
'fr_ch.88591'
:
'fr_CH.ISO8859-1'
,
'fr_ch.iso88591'
:
'fr_CH.ISO8859-1'
,
'fr_ch.iso885915'
:
'fr_CH.ISO8859-15'
,
'fr_ch@euro'
:
'fr_CH.ISO8859-15'
,
'fr_fr'
:
'fr_FR.ISO8859-1'
,
'fr_fr.88591'
:
'fr_FR.ISO8859-1'
,
'fr_fr.iso88591'
:
'fr_FR.ISO8859-1'
,
'fr_fr.iso885915'
:
'fr_FR.ISO8859-15'
,
'fr_fr.iso885915@euro'
:
'fr_FR.ISO8859-15'
,
'fr_fr.utf8@euro'
:
'fr_FR.UTF-8'
,
'fr_fr@euro'
:
'fr_FR.ISO8859-15'
,
'fr_lu'
:
'fr_LU.ISO8859-1'
,
'fr_lu.88591'
:
'fr_LU.ISO8859-1'
,
'fr_lu.iso88591'
:
'fr_LU.ISO8859-1'
,
'fr_lu.iso885915'
:
'fr_LU.ISO8859-15'
,
'fr_lu.iso885915@euro'
:
'fr_LU.ISO8859-15'
,
'fr_lu.utf8@euro'
:
'fr_LU.UTF-8'
,
'fr_lu@euro'
:
'fr_LU.ISO8859-15'
,
'fran
\
xe7
ais'
:
'fr_FR.ISO8859-1'
,
'fre_fr'
:
'fr_FR.ISO8859-1'
,
'fre_fr.8859'
:
'fr_FR.ISO8859-1'
,
'french'
:
'fr_FR.ISO8859-1'
,
'french.iso88591'
:
'fr_CH.ISO8859-1'
,
'french_france'
:
'fr_FR.ISO8859-1'
,
'french_france.8859'
:
'fr_FR.ISO8859-1'
,
'ga'
:
'ga_IE.ISO8859-1'
,
'ga_ie'
:
'ga_IE.ISO8859-1'
,
'ga_ie.iso88591'
:
'ga_IE.ISO8859-1'
,
'ga_ie.iso885914'
:
'ga_IE.ISO8859-14'
,
'ga_ie.iso885915'
:
'ga_IE.ISO8859-15'
,
'ga_ie.iso885915@euro'
:
'ga_IE.ISO8859-15'
,
'ga_ie.utf8@euro'
:
'ga_IE.UTF-8'
,
'ga_ie@euro'
:
'ga_IE.ISO8859-15'
,
'galego'
:
'gl_ES.ISO8859-1'
,
'galician'
:
'gl_ES.ISO8859-1'
,
'gd'
:
'gd_GB.ISO8859-1'
,
'gd_gb'
:
'gd_GB.ISO8859-1'
,
'gd_gb.iso88591'
:
'gd_GB.ISO8859-1'
,
'gd_gb.iso885914'
:
'gd_GB.ISO8859-14'
,
'gd_gb.iso885915'
:
'gd_GB.ISO8859-15'
,
'gd_gb@euro'
:
'gd_GB.ISO8859-15'
,
'ger_de'
:
'de_DE.ISO8859-1'
,
'ger_de.8859'
:
'de_DE.ISO8859-1'
,
'german'
:
'de_DE.ISO8859-1'
,
'german.iso88591'
:
'de_CH.ISO8859-1'
,
'german_germany'
:
'de_DE.ISO8859-1'
,
'german_germany.8859'
:
'de_DE.ISO8859-1'
,
'gl'
:
'gl_ES.ISO8859-1'
,
'gl_es'
:
'gl_ES.ISO8859-1'
,
'gl_es.iso88591'
:
'gl_ES.ISO8859-1'
,
'gl_es.iso885915'
:
'gl_ES.ISO8859-15'
,
'gl_es.iso885915@euro'
:
'gl_ES.ISO8859-15'
,
'gl_es.utf8@euro'
:
'gl_ES.UTF-8'
,
'gl_es@euro'
:
'gl_ES.ISO8859-15'
,
'greek'
:
'el_GR.ISO8859-7'
,
'greek.iso88597'
:
'el_GR.ISO8859-7'
,
'gu_in'
:
'gu_IN.UTF-8'
,
'gv'
:
'gv_GB.ISO8859-1'
,
'gv_gb'
:
'gv_GB.ISO8859-1'
,
'gv_gb.iso88591'
:
'gv_GB.ISO8859-1'
,
'gv_gb.iso885914'
:
'gv_GB.ISO8859-14'
,
'gv_gb.iso885915'
:
'gv_GB.ISO8859-15'
,
'gv_gb@euro'
:
'gv_GB.ISO8859-15'
,
'he'
:
'he_IL.ISO8859-8'
,
'he_il'
:
'he_IL.ISO8859-8'
,
'he_il.cp1255'
:
'he_IL.CP1255'
,
'he_il.iso88598'
:
'he_IL.ISO8859-8'
,
'he_il.microsoftcp1255'
:
'he_IL.CP1255'
,
'hebrew'
:
'he_IL.ISO8859-8'
,
'hebrew.iso88598'
:
'he_IL.ISO8859-8'
,
'hi'
:
'hi_IN.ISCII-DEV'
,
'hi_in'
:
'hi_IN.ISCII-DEV'
,
'hi_in.isciidev'
:
'hi_IN.ISCII-DEV'
,
...
...
@@ -1223,23 +1009,17 @@ locale_alias = {
'hne_in'
:
'hne_IN.UTF-8'
,
'hr'
:
'hr_HR.ISO8859-2'
,
'hr_hr'
:
'hr_HR.ISO8859-2'
,
'hr_hr.iso88592'
:
'hr_HR.ISO8859-2'
,
'hrvatski'
:
'hr_HR.ISO8859-2'
,
'hu'
:
'hu_HU.ISO8859-2'
,
'hu_hu'
:
'hu_HU.ISO8859-2'
,
'hu_hu.iso88592'
:
'hu_HU.ISO8859-2'
,
'hungarian'
:
'hu_HU.ISO8859-2'
,
'icelandic'
:
'is_IS.ISO8859-1'
,
'icelandic.iso88591'
:
'is_IS.ISO8859-1'
,
'id'
:
'id_ID.ISO8859-1'
,
'id_id'
:
'id_ID.ISO8859-1'
,
'in'
:
'id_ID.ISO8859-1'
,
'in_id'
:
'id_ID.ISO8859-1'
,
'is'
:
'is_IS.ISO8859-1'
,
'is_is'
:
'is_IS.ISO8859-1'
,
'is_is.iso88591'
:
'is_IS.ISO8859-1'
,
'is_is.iso885915'
:
'is_IS.ISO8859-15'
,
'is_is@euro'
:
'is_IS.ISO8859-15'
,
'iso-8859-1'
:
'en_US.ISO8859-1'
,
'iso-8859-15'
:
'en_US.ISO8859-15'
,
'iso8859-1'
:
'en_US.ISO8859-1'
,
...
...
@@ -1247,46 +1027,23 @@ locale_alias = {
'iso_8859_1'
:
'en_US.ISO8859-1'
,
'iso_8859_15'
:
'en_US.ISO8859-15'
,
'it'
:
'it_IT.ISO8859-1'
,
'it.iso885915'
:
'it_IT.ISO8859-15'
,
'it_ch'
:
'it_CH.ISO8859-1'
,
'it_ch.iso88591'
:
'it_CH.ISO8859-1'
,
'it_ch.iso885915'
:
'it_CH.ISO8859-15'
,
'it_ch@euro'
:
'it_CH.ISO8859-15'
,
'it_it'
:
'it_IT.ISO8859-1'
,
'it_it.88591'
:
'it_IT.ISO8859-1'
,
'it_it.iso88591'
:
'it_IT.ISO8859-1'
,
'it_it.iso885915'
:
'it_IT.ISO8859-15'
,
'it_it.iso885915@euro'
:
'it_IT.ISO8859-15'
,
'it_it.utf8@euro'
:
'it_IT.UTF-8'
,
'it_it@euro'
:
'it_IT.ISO8859-15'
,
'italian'
:
'it_IT.ISO8859-1'
,
'italian.iso88591'
:
'it_IT.ISO8859-1'
,
'iu'
:
'iu_CA.NUNACOM-8'
,
'iu_ca'
:
'iu_CA.NUNACOM-8'
,
'iu_ca.nunacom8'
:
'iu_CA.NUNACOM-8'
,
'iw'
:
'he_IL.ISO8859-8'
,
'iw_il'
:
'he_IL.ISO8859-8'
,
'iw_il.iso88598'
:
'he_IL.ISO8859-8'
,
'ja'
:
'ja_JP.eucJP'
,
'ja.jis'
:
'ja_JP.JIS7'
,
'ja.sjis'
:
'ja_JP.SJIS'
,
'ja_jp'
:
'ja_JP.eucJP'
,
'ja_jp.ajec'
:
'ja_JP.eucJP'
,
'ja_jp.euc'
:
'ja_JP.eucJP'
,
'ja_jp.eucjp'
:
'ja_JP.eucJP'
,
'ja_jp.iso-2022-jp'
:
'ja_JP.JIS7'
,
'ja_jp.iso2022jp'
:
'ja_JP.JIS7'
,
'ja_jp.jis'
:
'ja_JP.JIS7'
,
'ja_jp.jis7'
:
'ja_JP.JIS7'
,
'ja_jp.mscode'
:
'ja_JP.SJIS'
,
'ja_jp.pck'
:
'ja_JP.SJIS'
,
'ja_jp.sjis'
:
'ja_JP.SJIS'
,
'ja_jp.ujis'
:
'ja_JP.eucJP'
,
'japan'
:
'ja_JP.eucJP'
,
'japanese'
:
'ja_JP.eucJP'
,
'japanese-euc'
:
'ja_JP.eucJP'
,
'japanese.euc'
:
'ja_JP.eucJP'
,
'japanese.sjis'
:
'ja_JP.SJIS'
,
'jp_jp'
:
'ja_JP.eucJP'
,
'ka'
:
'ka_GE.GEORGIAN-ACADEMY'
,
'ka_ge'
:
'ka_GE.GEORGIAN-ACADEMY'
,
...
...
@@ -1295,27 +1052,18 @@ locale_alias = {
'ka_ge.georgianrs'
:
'ka_GE.GEORGIAN-ACADEMY'
,
'kl'
:
'kl_GL.ISO8859-1'
,
'kl_gl'
:
'kl_GL.ISO8859-1'
,
'kl_gl.iso88591'
:
'kl_GL.ISO8859-1'
,
'kl_gl.iso885915'
:
'kl_GL.ISO8859-15'
,
'kl_gl@euro'
:
'kl_GL.ISO8859-15'
,
'km_kh'
:
'km_KH.UTF-8'
,
'kn'
:
'kn_IN.UTF-8'
,
'kn_in'
:
'kn_IN.UTF-8'
,
'ko'
:
'ko_KR.eucKR'
,
'ko_kr'
:
'ko_KR.eucKR'
,
'ko_kr.euc'
:
'ko_KR.eucKR'
,
'ko_kr.euckr'
:
'ko_KR.eucKR'
,
'korean'
:
'ko_KR.eucKR'
,
'korean.euc'
:
'ko_KR.eucKR'
,
'ks'
:
'ks_IN.UTF-8'
,
'ks_in'
:
'ks_IN.UTF-8'
,
'ks_in@devanagari'
:
'ks_IN.UTF-8@devanagari'
,
'kw'
:
'kw_GB.ISO8859-1'
,
'kw_gb'
:
'kw_GB.ISO8859-1'
,
'kw_gb.iso88591'
:
'kw_GB.ISO8859-1'
,
'kw_gb.iso885914'
:
'kw_GB.ISO8859-14'
,
'kw_gb.iso885915'
:
'kw_GB.ISO8859-15'
,
'kw_gb@euro'
:
'kw_GB.ISO8859-15'
,
'ky'
:
'ky_KG.UTF-8'
,
'ky_kg'
:
'ky_KG.UTF-8'
,
'lithuanian'
:
'lt_LT.ISO8859-13'
,
...
...
@@ -1326,157 +1074,78 @@ locale_alias = {
'lo_la.mulelao1'
:
'lo_LA.MULELAO-1'
,
'lt'
:
'lt_LT.ISO8859-13'
,
'lt_lt'
:
'lt_LT.ISO8859-13'
,
'lt_lt.iso885913'
:
'lt_LT.ISO8859-13'
,
'lt_lt.iso88594'
:
'lt_LT.ISO8859-4'
,
'lv'
:
'lv_LV.ISO8859-13'
,
'lv_lv'
:
'lv_LV.ISO8859-13'
,
'lv_lv.iso885913'
:
'lv_LV.ISO8859-13'
,
'lv_lv.iso88594'
:
'lv_LV.ISO8859-4'
,
'mai'
:
'mai_IN.UTF-8'
,
'mai_in'
:
'mai_IN.UTF-8'
,
'mi'
:
'mi_NZ.ISO8859-1'
,
'mi_nz'
:
'mi_NZ.ISO8859-1'
,
'mi_nz.iso88591'
:
'mi_NZ.ISO8859-1'
,
'mk'
:
'mk_MK.ISO8859-5'
,
'mk_mk'
:
'mk_MK.ISO8859-5'
,
'mk_mk.cp1251'
:
'mk_MK.CP1251'
,
'mk_mk.iso88595'
:
'mk_MK.ISO8859-5'
,
'mk_mk.microsoftcp1251'
:
'mk_MK.CP1251'
,
'ml'
:
'ml_IN.UTF-8'
,
'ml_in'
:
'ml_IN.UTF-8'
,
'mr'
:
'mr_IN.UTF-8'
,
'mr_in'
:
'mr_IN.UTF-8'
,
'ms'
:
'ms_MY.ISO8859-1'
,
'ms_my'
:
'ms_MY.ISO8859-1'
,
'ms_my.iso88591'
:
'ms_MY.ISO8859-1'
,
'mt'
:
'mt_MT.ISO8859-3'
,
'mt_mt'
:
'mt_MT.ISO8859-3'
,
'mt_mt.iso88593'
:
'mt_MT.ISO8859-3'
,
'nb'
:
'nb_NO.ISO8859-1'
,
'nb_no'
:
'nb_NO.ISO8859-1'
,
'nb_no.88591'
:
'nb_NO.ISO8859-1'
,
'nb_no.iso88591'
:
'nb_NO.ISO8859-1'
,
'nb_no.iso885915'
:
'nb_NO.ISO8859-15'
,
'nb_no@euro'
:
'nb_NO.ISO8859-15'
,
'ne_np'
:
'ne_NP.UTF-8'
,
'nl'
:
'nl_NL.ISO8859-1'
,
'nl.iso885915'
:
'nl_NL.ISO8859-15'
,
'nl_be'
:
'nl_BE.ISO8859-1'
,
'nl_be.88591'
:
'nl_BE.ISO8859-1'
,
'nl_be.iso88591'
:
'nl_BE.ISO8859-1'
,
'nl_be.iso885915'
:
'nl_BE.ISO8859-15'
,
'nl_be.iso885915@euro'
:
'nl_BE.ISO8859-15'
,
'nl_be.utf8@euro'
:
'nl_BE.UTF-8'
,
'nl_be@euro'
:
'nl_BE.ISO8859-15'
,
'nl_nl'
:
'nl_NL.ISO8859-1'
,
'nl_nl.88591'
:
'nl_NL.ISO8859-1'
,
'nl_nl.iso88591'
:
'nl_NL.ISO8859-1'
,
'nl_nl.iso885915'
:
'nl_NL.ISO8859-15'
,
'nl_nl.iso885915@euro'
:
'nl_NL.ISO8859-15'
,
'nl_nl.utf8@euro'
:
'nl_NL.UTF-8'
,
'nl_nl@euro'
:
'nl_NL.ISO8859-15'
,
'nn'
:
'nn_NO.ISO8859-1'
,
'nn_no'
:
'nn_NO.ISO8859-1'
,
'nn_no.88591'
:
'nn_NO.ISO8859-1'
,
'nn_no.iso88591'
:
'nn_NO.ISO8859-1'
,
'nn_no.iso885915'
:
'nn_NO.ISO8859-15'
,
'nn_no@euro'
:
'nn_NO.ISO8859-15'
,
'no'
:
'no_NO.ISO8859-1'
,
'no@nynorsk'
:
'ny_NO.ISO8859-1'
,
'no_no'
:
'no_NO.ISO8859-1'
,
'no_no.88591'
:
'no_NO.ISO8859-1'
,
'no_no.iso88591'
:
'no_NO.ISO8859-1'
,
'no_no.iso885915'
:
'no_NO.ISO8859-15'
,
'no_no.iso88591@bokmal'
:
'no_NO.ISO8859-1'
,
'no_no.iso88591@nynorsk'
:
'no_NO.ISO8859-1'
,
'no_no@euro'
:
'no_NO.ISO8859-15'
,
'norwegian'
:
'no_NO.ISO8859-1'
,
'norwegian.iso88591'
:
'no_NO.ISO8859-1'
,
'nr'
:
'nr_ZA.ISO8859-1'
,
'nr_za'
:
'nr_ZA.ISO8859-1'
,
'nr_za.iso88591'
:
'nr_ZA.ISO8859-1'
,
'nso'
:
'nso_ZA.ISO8859-15'
,
'nso_za'
:
'nso_ZA.ISO8859-15'
,
'nso_za.iso885915'
:
'nso_ZA.ISO8859-15'
,
'ny'
:
'ny_NO.ISO8859-1'
,
'ny_no'
:
'ny_NO.ISO8859-1'
,
'ny_no.88591'
:
'ny_NO.ISO8859-1'
,
'ny_no.iso88591'
:
'ny_NO.ISO8859-1'
,
'ny_no.iso885915'
:
'ny_NO.ISO8859-15'
,
'ny_no@euro'
:
'ny_NO.ISO8859-15'
,
'nynorsk'
:
'nn_NO.ISO8859-1'
,
'oc'
:
'oc_FR.ISO8859-1'
,
'oc_fr'
:
'oc_FR.ISO8859-1'
,
'oc_fr.iso88591'
:
'oc_FR.ISO8859-1'
,
'oc_fr.iso885915'
:
'oc_FR.ISO8859-15'
,
'oc_fr@euro'
:
'oc_FR.ISO8859-15'
,
'or'
:
'or_IN.UTF-8'
,
'or_in'
:
'or_IN.UTF-8'
,
'pa'
:
'pa_IN.UTF-8'
,
'pa_in'
:
'pa_IN.UTF-8'
,
'pd'
:
'pd_US.ISO8859-1'
,
'pd_de'
:
'pd_DE.ISO8859-1'
,
'pd_de.iso88591'
:
'pd_DE.ISO8859-1'
,
'pd_de.iso885915'
:
'pd_DE.ISO8859-15'
,
'pd_de@euro'
:
'pd_DE.ISO8859-15'
,
'pd_us'
:
'pd_US.ISO8859-1'
,
'pd_us.iso88591'
:
'pd_US.ISO8859-1'
,
'pd_us.iso885915'
:
'pd_US.ISO8859-15'
,
'pd_us@euro'
:
'pd_US.ISO8859-15'
,
'ph'
:
'ph_PH.ISO8859-1'
,
'ph_ph'
:
'ph_PH.ISO8859-1'
,
'ph_ph.iso88591'
:
'ph_PH.ISO8859-1'
,
'pl'
:
'pl_PL.ISO8859-2'
,
'pl_pl'
:
'pl_PL.ISO8859-2'
,
'pl_pl.iso88592'
:
'pl_PL.ISO8859-2'
,
'polish'
:
'pl_PL.ISO8859-2'
,
'portuguese'
:
'pt_PT.ISO8859-1'
,
'portuguese.iso88591'
:
'pt_PT.ISO8859-1'
,
'portuguese_brazil'
:
'pt_BR.ISO8859-1'
,
'portuguese_brazil.8859'
:
'pt_BR.ISO8859-1'
,
'posix'
:
'C'
,
'posix-utf2'
:
'C'
,
'pp'
:
'pp_AN.ISO8859-1'
,
'pp_an'
:
'pp_AN.ISO8859-1'
,
'pp_an.iso88591'
:
'pp_AN.ISO8859-1'
,
'pt'
:
'pt_PT.ISO8859-1'
,
'pt.iso885915'
:
'pt_PT.ISO8859-15'
,
'pt_br'
:
'pt_BR.ISO8859-1'
,
'pt_br.88591'
:
'pt_BR.ISO8859-1'
,
'pt_br.iso88591'
:
'pt_BR.ISO8859-1'
,
'pt_br.iso885915'
:
'pt_BR.ISO8859-15'
,
'pt_br@euro'
:
'pt_BR.ISO8859-15'
,
'pt_pt'
:
'pt_PT.ISO8859-1'
,
'pt_pt.88591'
:
'pt_PT.ISO8859-1'
,
'pt_pt.iso88591'
:
'pt_PT.ISO8859-1'
,
'pt_pt.iso885915'
:
'pt_PT.ISO8859-15'
,
'pt_pt.iso885915@euro'
:
'pt_PT.ISO8859-15'
,
'pt_pt.utf8@euro'
:
'pt_PT.UTF-8'
,
'pt_pt@euro'
:
'pt_PT.ISO8859-15'
,
'ro'
:
'ro_RO.ISO8859-2'
,
'ro_ro'
:
'ro_RO.ISO8859-2'
,
'ro_ro.iso88592'
:
'ro_RO.ISO8859-2'
,
'romanian'
:
'ro_RO.ISO8859-2'
,
'ru'
:
'ru_RU.UTF-8'
,
'ru.koi8r'
:
'ru_RU.KOI8-R'
,
'ru_ru'
:
'ru_RU.UTF-8'
,
'ru_ru.cp1251'
:
'ru_RU.CP1251'
,
'ru_ru.iso88595'
:
'ru_RU.ISO8859-5'
,
'ru_ru.koi8r'
:
'ru_RU.KOI8-R'
,
'ru_ru.microsoftcp1251'
:
'ru_RU.CP1251'
,
'ru_ua'
:
'ru_UA.KOI8-U'
,
'ru_ua.cp1251'
:
'ru_UA.CP1251'
,
'ru_ua.koi8u'
:
'ru_UA.KOI8-U'
,
'ru_ua.microsoftcp1251'
:
'ru_UA.CP1251'
,
'rumanian'
:
'ro_RO.ISO8859-2'
,
'russian'
:
'ru_RU.ISO8859-5'
,
'rw'
:
'rw_RW.ISO8859-1'
,
'rw_rw'
:
'rw_RW.ISO8859-1'
,
'rw_rw.iso88591'
:
'rw_RW.ISO8859-1'
,
'sd'
:
'sd_IN.UTF-8'
,
'sd@devanagari'
:
'sd_IN.UTF-8@devanagari'
,
'sd_in'
:
'sd_IN.UTF-8'
,
'sd_in@devanagari'
:
'sd_IN.UTF-8@devanagari'
,
'se_no'
:
'se_NO.UTF-8'
,
'serbocroatian'
:
'sr_RS.UTF-8@latin'
,
'sh'
:
'sr_RS.UTF-8@latin'
,
...
...
@@ -1490,37 +1159,26 @@ locale_alias = {
'sinhala'
:
'si_LK.UTF-8'
,
'sk'
:
'sk_SK.ISO8859-2'
,
'sk_sk'
:
'sk_SK.ISO8859-2'
,
'sk_sk.iso88592'
:
'sk_SK.ISO8859-2'
,
'sl'
:
'sl_SI.ISO8859-2'
,
'sl_cs'
:
'sl_CS.ISO8859-2'
,
'sl_si'
:
'sl_SI.ISO8859-2'
,
'sl_si.iso88592'
:
'sl_SI.ISO8859-2'
,
'slovak'
:
'sk_SK.ISO8859-2'
,
'slovene'
:
'sl_SI.ISO8859-2'
,
'slovenian'
:
'sl_SI.ISO8859-2'
,
'sp'
:
'sr_CS.ISO8859-5'
,
'sp_yu'
:
'sr_CS.ISO8859-5'
,
'spanish'
:
'es_ES.ISO8859-1'
,
'spanish.iso88591'
:
'es_ES.ISO8859-1'
,
'spanish_spain'
:
'es_ES.ISO8859-1'
,
'spanish_spain.8859'
:
'es_ES.ISO8859-1'
,
'sq'
:
'sq_AL.ISO8859-2'
,
'sq_al'
:
'sq_AL.ISO8859-2'
,
'sq_al.iso88592'
:
'sq_AL.ISO8859-2'
,
'sr'
:
'sr_RS.UTF-8'
,
'sr@cyrillic'
:
'sr_RS.UTF-8'
,
'sr@latin'
:
'sr_RS.UTF-8@latin'
,
'sr@latn'
:
'sr_CS.UTF-8@latin'
,
'sr_cs'
:
'sr_CS.UTF-8'
,
'sr_cs.iso88592'
:
'sr_CS.ISO8859-2'
,
'sr_cs.iso88592@latn'
:
'sr_CS.ISO8859-2'
,
'sr_cs.iso88595'
:
'sr_CS.ISO8859-5'
,
'sr_cs.utf8@latn'
:
'sr_CS.UTF-8@latin'
,
'sr_cs@latn'
:
'sr_CS.UTF-8@latin'
,
'sr_me'
:
'sr_ME.UTF-8'
,
'sr_rs'
:
'sr_RS.UTF-8'
,
'sr_rs.utf8@latn'
:
'sr_RS.UTF-8@latin'
,
'sr_rs@latin'
:
'sr_RS.UTF-8@latin'
,
'sr_rs@latn'
:
'sr_RS.UTF-8@latin'
,
'sr_sp'
:
'sr_CS.ISO8859-2'
,
'sr_yu'
:
'sr_RS.UTF-8@latin'
,
...
...
@@ -1529,29 +1187,15 @@ locale_alias = {
'sr_yu.iso88595'
:
'sr_CS.ISO8859-5'
,
'sr_yu.iso88595@cyrillic'
:
'sr_CS.ISO8859-5'
,
'sr_yu.microsoftcp1251@cyrillic'
:
'sr_CS.CP1251'
,
'sr_yu.utf8@cyrillic'
:
'sr_RS.UTF-8'
,
'sr_yu@cyrillic'
:
'sr_RS.UTF-8'
,
'ss'
:
'ss_ZA.ISO8859-1'
,
'ss_za'
:
'ss_ZA.ISO8859-1'
,
'ss_za.iso88591'
:
'ss_ZA.ISO8859-1'
,
'st'
:
'st_ZA.ISO8859-1'
,
'st_za'
:
'st_ZA.ISO8859-1'
,
'st_za.iso88591'
:
'st_ZA.ISO8859-1'
,
'sv'
:
'sv_SE.ISO8859-1'
,
'sv.iso885915'
:
'sv_SE.ISO8859-15'
,
'sv_fi'
:
'sv_FI.ISO8859-1'
,
'sv_fi.iso88591'
:
'sv_FI.ISO8859-1'
,
'sv_fi.iso885915'
:
'sv_FI.ISO8859-15'
,
'sv_fi.iso885915@euro'
:
'sv_FI.ISO8859-15'
,
'sv_fi.utf8@euro'
:
'sv_FI.UTF-8'
,
'sv_fi@euro'
:
'sv_FI.ISO8859-15'
,
'sv_se'
:
'sv_SE.ISO8859-1'
,
'sv_se.88591'
:
'sv_SE.ISO8859-1'
,
'sv_se.iso88591'
:
'sv_SE.ISO8859-1'
,
'sv_se.iso885915'
:
'sv_SE.ISO8859-15'
,
'sv_se@euro'
:
'sv_SE.ISO8859-15'
,
'swedish'
:
'sv_SE.ISO8859-1'
,
'swedish.iso88591'
:
'sv_SE.ISO8859-1'
,
'ta'
:
'ta_IN.TSCII-0'
,
'ta_in'
:
'ta_IN.TSCII-0'
,
'ta_in.tscii'
:
'ta_IN.TSCII-0'
,
...
...
@@ -1559,49 +1203,33 @@ locale_alias = {
'te'
:
'te_IN.UTF-8'
,
'tg'
:
'tg_TJ.KOI8-C'
,
'tg_tj'
:
'tg_TJ.KOI8-C'
,
'tg_tj.koi8c'
:
'tg_TJ.KOI8-C'
,
'th'
:
'th_TH.ISO8859-11'
,
'th_th'
:
'th_TH.ISO8859-11'
,
'th_th.iso885911'
:
'th_TH.ISO8859-11'
,
'th_th.tactis'
:
'th_TH.TIS620'
,
'th_th.tis620'
:
'th_TH.TIS620'
,
'thai'
:
'th_TH.ISO8859-11'
,
'tl'
:
'tl_PH.ISO8859-1'
,
'tl_ph'
:
'tl_PH.ISO8859-1'
,
'tl_ph.iso88591'
:
'tl_PH.ISO8859-1'
,
'tn'
:
'tn_ZA.ISO8859-15'
,
'tn_za'
:
'tn_ZA.ISO8859-15'
,
'tn_za.iso885915'
:
'tn_ZA.ISO8859-15'
,
'tr'
:
'tr_TR.ISO8859-9'
,
'tr_tr'
:
'tr_TR.ISO8859-9'
,
'tr_tr.iso88599'
:
'tr_TR.ISO8859-9'
,
'ts'
:
'ts_ZA.ISO8859-1'
,
'ts_za'
:
'ts_ZA.ISO8859-1'
,
'ts_za.iso88591'
:
'ts_ZA.ISO8859-1'
,
'tt'
:
'tt_RU.TATAR-CYR'
,
'tt_ru'
:
'tt_RU.TATAR-CYR'
,
'tt_ru.koi8c'
:
'tt_RU.KOI8-C'
,
'tt_ru.tatarcyr'
:
'tt_RU.TATAR-CYR'
,
'turkish'
:
'tr_TR.ISO8859-9'
,
'turkish.iso88599'
:
'tr_TR.ISO8859-9'
,
'uk'
:
'uk_UA.KOI8-U'
,
'uk_ua'
:
'uk_UA.KOI8-U'
,
'uk_ua.cp1251'
:
'uk_UA.CP1251'
,
'uk_ua.iso88595'
:
'uk_UA.ISO8859-5'
,
'uk_ua.koi8u'
:
'uk_UA.KOI8-U'
,
'uk_ua.microsoftcp1251'
:
'uk_UA.CP1251'
,
'univ'
:
'en_US.utf'
,
'universal'
:
'en_US.utf'
,
'universal.utf8@ucs4'
:
'en_US.UTF-8'
,
'ur'
:
'ur_PK.CP1256'
,
'ur_in'
:
'ur_IN.UTF-8'
,
'ur_pk'
:
'ur_PK.CP1256'
,
'ur_pk.cp1256'
:
'ur_PK.CP1256'
,
'ur_pk.microsoftcp1256'
:
'ur_PK.CP1256'
,
'uz'
:
'uz_UZ.UTF-8'
,
'uz_uz'
:
'uz_UZ.UTF-8'
,
'uz_uz.iso88591'
:
'uz_UZ.ISO8859-1'
,
'uz_uz.utf8@cyrillic'
:
'uz_UZ.UTF-8'
,
'uz_uz@cyrillic'
:
'uz_UZ.UTF-8'
,
've'
:
've_ZA.UTF-8'
,
've_za'
:
've_ZA.UTF-8'
,
...
...
@@ -1613,35 +1241,21 @@ locale_alias = {
'vi_vn.viscii111'
:
'vi_VN.VISCII'
,
'wa'
:
'wa_BE.ISO8859-1'
,
'wa_be'
:
'wa_BE.ISO8859-1'
,
'wa_be.iso88591'
:
'wa_BE.ISO8859-1'
,
'wa_be.iso885915'
:
'wa_BE.ISO8859-15'
,
'wa_be.iso885915@euro'
:
'wa_BE.ISO8859-15'
,
'wa_be@euro'
:
'wa_BE.ISO8859-15'
,
'xh'
:
'xh_ZA.ISO8859-1'
,
'xh_za'
:
'xh_ZA.ISO8859-1'
,
'xh_za.iso88591'
:
'xh_ZA.ISO8859-1'
,
'yi'
:
'yi_US.CP1255'
,
'yi_us'
:
'yi_US.CP1255'
,
'yi_us.cp1255'
:
'yi_US.CP1255'
,
'yi_us.microsoftcp1255'
:
'yi_US.CP1255'
,
'zh'
:
'zh_CN.eucCN'
,
'zh_cn'
:
'zh_CN.gb2312'
,
'zh_cn.big5'
:
'zh_TW.big5'
,
'zh_cn.euc'
:
'zh_CN.eucCN'
,
'zh_cn.gb18030'
:
'zh_CN.gb18030'
,
'zh_cn.gb2312'
:
'zh_CN.gb2312'
,
'zh_cn.gbk'
:
'zh_CN.gbk'
,
'zh_hk'
:
'zh_HK.big5hkscs'
,
'zh_hk.big5'
:
'zh_HK.big5'
,
'zh_hk.big5hk'
:
'zh_HK.big5hkscs'
,
'zh_hk.big5hkscs'
:
'zh_HK.big5hkscs'
,
'zh_tw'
:
'zh_TW.big5'
,
'zh_tw.big5'
:
'zh_TW.big5'
,
'zh_tw.euc'
:
'zh_TW.eucTW'
,
'zh_tw.euctw'
:
'zh_TW.eucTW'
,
'zu'
:
'zu_ZA.ISO8859-1'
,
'zu_za'
:
'zu_ZA.ISO8859-1'
,
'zu_za.iso88591'
:
'zu_ZA.ISO8859-1'
,
}
#
...
...
Lib/test/test_locale.py
View file @
c7355fa4
...
...
@@ -384,6 +384,7 @@ class NormalizeTest(unittest.TestCase):
def
test_english
(
self
):
self
.
check
(
'en'
,
'en_US.ISO8859-1'
)
self
.
check
(
'EN'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en.iso88591'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_US'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_us'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_GB'
,
'en_GB.ISO8859-1'
)
...
...
@@ -392,7 +393,10 @@ class NormalizeTest(unittest.TestCase):
self
.
check
(
'en_US:UTF-8'
,
'en_US.UTF-8'
)
self
.
check
(
'en_US.ISO8859-1'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_US.US-ASCII'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_US.88591'
,
'en_US.ISO8859-1'
)
self
.
check
(
'en_US.885915'
,
'en_US.ISO8859-15'
)
self
.
check
(
'english'
,
'en_EN.ISO8859-1'
)
self
.
check
(
'english_uk.ascii'
,
'en_GB.ISO8859-1'
)
def
test_hyphenated_encoding
(
self
):
self
.
check
(
'az_AZ.iso88599e'
,
'az_AZ.ISO8859-9E'
)
...
...
@@ -412,10 +416,12 @@ class NormalizeTest(unittest.TestCase):
def
test_euro_modifier
(
self
):
self
.
check
(
'de_DE@euro'
,
'de_DE.ISO8859-15'
)
self
.
check
(
'en_US.ISO8859-15@euro'
,
'en_US.ISO8859-15'
)
self
.
check
(
'de_DE.utf8@euro'
,
'de_DE.UTF-8'
)
def
test_latin_modifier
(
self
):
self
.
check
(
'be_BY.UTF-8@latin'
,
'be_BY.UTF-8@latin'
)
self
.
check
(
'sr_RS.UTF-8@latin'
,
'sr_RS.UTF-8@latin'
)
self
.
check
(
'sr_RS.UTF-8@latn'
,
'sr_RS.UTF-8@latin'
)
def
test_valencia_modifier
(
self
):
self
.
check
(
'ca_ES.UTF-8@valencia'
,
'ca_ES.UTF-8@valencia'
)
...
...
@@ -436,6 +442,39 @@ class NormalizeTest(unittest.TestCase):
self
.
check
(
'sd_IN'
,
'sd_IN.UTF-8'
)
self
.
check
(
'sd'
,
'sd_IN.UTF-8'
)
def
test_euc_encoding
(
self
):
self
.
check
(
'ja_jp.euc'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.eucjp'
,
'ja_JP.eucJP'
)
self
.
check
(
'ko_kr.euc'
,
'ko_KR.eucKR'
)
self
.
check
(
'ko_kr.euckr'
,
'ko_KR.eucKR'
)
self
.
check
(
'zh_cn.euc'
,
'zh_CN.eucCN'
)
self
.
check
(
'zh_tw.euc'
,
'zh_TW.eucTW'
)
self
.
check
(
'zh_tw.euctw'
,
'zh_TW.eucTW'
)
def
test_japanese
(
self
):
self
.
check
(
'ja'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja.jis'
,
'ja_JP.JIS7'
)
self
.
check
(
'ja.sjis'
,
'ja_JP.SJIS'
)
self
.
check
(
'ja_jp'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.ajec'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.euc'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.eucjp'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.iso-2022-jp'
,
'ja_JP.JIS7'
)
self
.
check
(
'ja_jp.iso2022jp'
,
'ja_JP.JIS7'
)
self
.
check
(
'ja_jp.jis'
,
'ja_JP.JIS7'
)
self
.
check
(
'ja_jp.jis7'
,
'ja_JP.JIS7'
)
self
.
check
(
'ja_jp.mscode'
,
'ja_JP.SJIS'
)
self
.
check
(
'ja_jp.pck'
,
'ja_JP.SJIS'
)
self
.
check
(
'ja_jp.sjis'
,
'ja_JP.SJIS'
)
self
.
check
(
'ja_jp.ujis'
,
'ja_JP.eucJP'
)
self
.
check
(
'ja_jp.utf8'
,
'ja_JP.UTF-8'
)
self
.
check
(
'japan'
,
'ja_JP.eucJP'
)
self
.
check
(
'japanese'
,
'ja_JP.eucJP'
)
self
.
check
(
'japanese-euc'
,
'ja_JP.eucJP'
)
self
.
check
(
'japanese.euc'
,
'ja_JP.eucJP'
)
self
.
check
(
'japanese.sjis'
,
'ja_JP.SJIS'
)
self
.
check
(
'jp_jp'
,
'ja_JP.eucJP'
)
class
TestMiscellaneous
(
unittest
.
TestCase
):
def
test_getpreferredencoding
(
self
):
...
...
Misc/NEWS
View file @
c7355fa4
...
...
@@ -44,6 +44,9 @@ Core and Builtins
Library
-------
- Issue #20046: Locale alias table no longer contains entities which can be
calculated. Generalized support of the euro modifier.
- Issue #20027: Fixed locale aliases for devanagari locales.
- Issue #20067: Tkinter variables now work when wantobjects is false.
...
...
Tools/i18n/makelocalealias.py
View file @
c7355fa4
...
...
@@ -7,6 +7,7 @@
"""
import
locale
import
sys
# Location of the alias file
LOCALE_ALIAS
=
'/usr/share/X11/locale/locale.alias'
...
...
@@ -65,9 +66,35 @@ def print_differences(data, olddata):
(
k
,
olddata
[
k
],
data
[
k
]))
# Additions are not mentioned
def
optimize
(
data
):
locale_alias
=
locale
.
locale_alias
locale
.
locale_alias
=
data
.
copy
()
for
k
,
v
in
data
.
items
():
del
locale
.
locale_alias
[
k
]
if
locale
.
normalize
(
k
)
!=
v
:
locale
.
locale_alias
[
k
]
=
v
newdata
=
locale
.
locale_alias
errors
=
check
(
data
)
locale
.
locale_alias
=
locale_alias
if
errors
:
sys
.
exit
(
1
)
return
newdata
def
check
(
data
):
# Check that all alias definitions from the X11 file
# are actually mapped to the correct alias locales.
errors
=
0
for
k
,
v
in
data
.
items
():
if
locale
.
normalize
(
k
)
!=
v
:
print
(
'ERROR: %a -> %a != %a'
%
(
k
,
locale
.
normalize
(
k
),
v
),
file
=
sys
.
stderr
)
errors
+=
1
return
errors
if
__name__
==
'__main__'
:
data
=
locale
.
locale_alias
.
copy
()
data
.
update
(
parse
(
LOCALE_ALIAS
))
data
=
optimize
(
data
)
print_differences
(
data
,
locale
.
locale_alias
)
print
()
print
(
'locale_alias = {'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment