from babel import localedata
from babel._compat import pickle, string_types
+from babel.plural import PluralRule
__all__ = ['UnknownLocaleError', 'Locale', 'default_locale', 'negotiate_locale',
'parse_locale']
_global_data = None
+_default_plural_rule = PluralRule({})
def _raise_no_data_error():
>>> Locale('ru').plural_form(100)
'many'
"""
- return self._data['plural_form']
+ return self._data.get('plural_form', _default_plural_rule)
def default_locale(category=None, aliases=LOCALE_ALIASES):
assert p(7) == 'few'
assert p(8) == 'few'
assert p(9) == 'few'
+
+
+def test_locales_with_no_plural_rules_have_default():
+ from babel import Locale
+ aa_plural = Locale.parse('aa').plural_form
+ assert aa_plural(1) == 'other'
+ assert aa_plural(2) == 'other'
+ assert aa_plural(15) == 'other'