Permalink
Switch branches/tags
Find file
Fetching contributors…
Cannot retrieve contributors at this time
55 lines (40 sloc) 1.9 KB

Pluralization

:func:`translationstring.Pluralizer` provides a gettext "plural forms" pluralization service.

It is called like so:

The translations argument is required; it should be an object supporting at least the Python :class:`gettext.NullTranslations` API but ideally the :class:`babel.support.Translations` API, which has support for domain lookups like dungettext.

The object returned will be a callable which has the following signature:

The singular and plural arguments passed may be translation strings or unicode strings. n represents the number of elements. domain is the translation domain to use to do the pluralization, and mapping is the interpolation mapping that should be used on the result. The pluralizer will return the plural form or the singular form, translated, as necessary.

Note

if the objects passed are translation strings, their domains and mappings are ignored. The domain and mapping arguments must be used instead. If the domain is not supplied, a default domain is used (usually messages).

If translations is None, a :class:`gettext.NullTranslations` object is created for the pluralizer to use.

The :func:`translationstring.Pluralizer` function accepts an additional optional argument named policy. policy should be a callable which accepts five arguments: translations, singular and plural, n and domain. It must perform the actual pluralization lookup. If policy is None, the :func:`translationstring.dungettext_policy` policy will be used.