Lines Matching refs:plural
35 # J. David Ibanez implemented plural forms. Bruno Haible fixed some bugs.
63 # Expression parsing for plural form selection.
70 # http://git.savannah.gnu.org/cgit/gettext.git/tree/gettext-runtime/intl/plural.y
86 def _tokenize(plural):
87 for mo in re.finditer(_token_pattern, plural):
93 raise ValueError('invalid token in plural form: %s' % value)
100 return ValueError('unexpected token in plural form: %s' % value)
102 return ValueError('unexpected end of plural form')
128 raise ValueError('unbalanced parenthesis in plural form')
180 def c2py(plural):
181 """Gets a C expression as used in PO files for plural forms and returns a
185 if len(plural) > 1000:
186 raise ValueError('plural form expression is too long')
188 result, nexttok = _parse(_tokenize(plural))
199 raise ValueError('plural form expression is too complex')
213 raise ValueError('plural form expression is too complex')
341 self.plural = lambda n: int(n != 1) # germanic plural by default
394 elif k == 'plural-forms':
396 plural = v[1].split('plural=')[1]
397 self.plural = c2py(plural)
432 tmsg = self._catalog[(msgid1, self.plural(n))]
455 tmsg = self._catalog[ctxt_msg_id, self.plural(n)]