]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Fallback count="other" format in format_currency()
authorJun Omae <jun66j5@gmail.com>
Sat, 7 May 2022 15:50:21 +0000 (00:50 +0900)
committerAarni Koskela <akx@iki.fi>
Tue, 10 May 2022 05:30:54 +0000 (07:30 +0200)
babel/numbers.py
tests/test_numbers.py

index 6e15fd3a8f9ab78e981ed1aaa7454e5014ac115c..904ebbeef30976d4b355df938bf9ff3b72ae85a0 100644 (file)
@@ -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)
 
 
index a77efc4024755244f4d79e24fa20a1226c35b990..3fab394df7068a51ef4dd05f8e26afc2f3c90a88 100644 (file)
@@ -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():