rules = rules.items()
found = set()
self.abstract = []
- for key, expr in rules:
+ for key, expr in sorted(list(rules)):
if key not in _plural_tags:
raise ValueError('unknown tag %r' % key)
elif key in found:
technically limited to integers and returns indices rather than tags.
>>> to_gettext({'one': 'n is 1', 'two': 'n is 2'})
- 'nplurals=3; plural=((n == 2) ? 1 : (n == 1) ? 0 : 2)'
+ 'nplurals=3; plural=((n == 1) ? 0 : (n == 2) ? 1 : 2)'
:param rule: the rules as list or dict, or a `PluralRule` object
:return: an equivalent gettext-style plural expression
def test_to_gettext():
assert (plural.to_gettext({'one': 'n is 1', 'two': 'n is 2'})
- == 'nplurals=3; plural=((n == 2) ? 1 : (n == 1) ? 0 : 2)')
+ == 'nplurals=3; plural=((n == 1) ? 0 : (n == 2) ? 1 : 2)')
def test_in_range_list():