diff --git a/babel/localedata/__init__.py b/babel/localedata/__init__.py index e6df0c4d1..c48b9f586 100644 --- a/babel/localedata/__init__.py +++ b/babel/localedata/__init__.py @@ -81,11 +81,14 @@ def load(name, merge_inherited=True): if name == 'root' or not merge_inherited: data = {} else: - parts = name.split('_') - if len(parts) == 1: - parent = 'root' - else: - parent = '_'.join(parts[:-1]) + from babel.core import get_global + parent = get_global('parent_exceptions').get(name) + if not parent: + parts = name.split('_') + if len(parts) == 1: + parent = 'root' + else: + parent = '_'.join(parts[:-1]) data = load(parent).copy() filename = os.path.join(_dirname, '%s.dat' % name) fileobj = open(filename, 'rb') diff --git a/babel/numbers.py b/babel/numbers.py index 01af774dd..d1f647252 100644 --- a/babel/numbers.py +++ b/babel/numbers.py @@ -258,7 +258,7 @@ def format_currency(number, currency, format=None, locale=LC_NUMERIC): >>> format_currency(1099.98, 'USD', locale='en_US') u'$1,099.98' >>> format_currency(1099.98, 'USD', locale='es_CO') - u'1.099,98\\xa0US$' + u'US$1.099,98' >>> format_currency(1099.98, 'EUR', locale='de_DE') u'1.099,98\\xa0\\u20ac' diff --git a/tests/test_numbers.py b/tests/test_numbers.py index 02332fbc7..6fe67c04e 100644 --- a/tests/test_numbers.py +++ b/tests/test_numbers.py @@ -243,7 +243,7 @@ def test_format_currency(): assert (numbers.format_currency(1099.98, 'USD', locale='en_US') == u'$1,099.98') assert (numbers.format_currency(1099.98, 'USD', locale='es_CO') - == u'1.099,98\xa0US$') + == u'US$1.099,98') assert (numbers.format_currency(1099.98, 'EUR', locale='de_DE') == u'1.099,98\xa0\u20ac') assert (numbers.format_currency(1099.98, 'EUR', u'\xa4\xa4 #,##0.00',