summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--babel/numbers.py6
-rw-r--r--tests/test_numbers.py6
2 files changed, 11 insertions, 1 deletions
diff --git a/babel/numbers.py b/babel/numbers.py
index 6e15fd3..904ebbe 100644
--- a/babel/numbers.py
+++ b/babel/numbers.py
@@ -127,7 +127,11 @@ def get_currency_name(currency, count=None, locale=LC_NUMERIC):
plural_form = loc.plural_form(count)
plural_names = loc._data['currency_names_plural']
if currency in plural_names:
- return plural_names[currency][plural_form]
+ currency_plural_names = plural_names[currency]
+ if plural_form in currency_plural_names:
+ return currency_plural_names[plural_form]
+ if 'other' in currency_plural_names:
+ return currency_plural_names['other']
return loc.currencies.get(currency, currency)
diff --git a/tests/test_numbers.py b/tests/test_numbers.py
index a77efc4..3fab394 100644
--- a/tests/test_numbers.py
+++ b/tests/test_numbers.py
@@ -413,6 +413,12 @@ def test_format_currency():
assert (numbers.format_currency(1099.98, 'USD', format=None,
locale='en_US')
== u'$1,099.98')
+ assert (numbers.format_currency(1, 'USD', locale='es_AR')
+ == u'US$\xa01,00') # one
+ assert (numbers.format_currency(1000000, 'USD', locale='es_AR')
+ == u'US$\xa01.000.000,00') # many
+ assert (numbers.format_currency(0, 'USD', locale='es_AR')
+ == u'US$\xa00,00') # other
def test_format_currency_format_type():