From: Armin Ronacher Date: Mon, 29 Jul 2013 17:09:07 +0000 (+0200) Subject: Fixed territory aliases not working properly X-Git-Tag: 2.0~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e224a7b134d23a3c89cbb7ad492e684267023934;p=thirdparty%2Fbabel.git Fixed territory aliases not working properly --- diff --git a/CHANGES b/CHANGES index e8d6983a..8b93fd20 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,11 @@ Version 1.4 (bugfix release, release date to be decided) +- Fixed a bug that caused deprecated territory codes not being + converted properly by the subtag resolving. This for instance + showed up when trying to use ``und_UK`` as a language code + which now properly resolves to ``en_GB``. + Version 1.3 ----------- diff --git a/babel/core.py b/babel/core.py index 6e6e6d61..56dbf559 100644 --- a/babel/core.py +++ b/babel/core.py @@ -282,7 +282,7 @@ class Locale(object): language, territory, script, variant = parts language = get_global('language_aliases').get(language, language) - territory = get_global('territory_aliases').get(territory, territory) + territory = get_global('territory_aliases').get(territory, (territory,))[0] script = get_global('script_aliases').get(script, script) variant = get_global('variant_aliases').get(variant, variant) diff --git a/tests/test_core.py b/tests/test_core.py index b4a1ac57..ec3f9ea9 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -111,6 +111,11 @@ class TestLocaleClass: assert l.language == 'de' assert l.territory == 'AT' + l = Locale.parse('und_UK') + assert l.language == 'en' + assert l.territory == 'GB' + assert l.script is None + def test_get_display_name(self): zh_CN = Locale('zh', 'CN', script='Hans') assert zh_CN.get_display_name('en') == 'Chinese (Simplified, China)'