Support plural translations
This adds the support for plural translation.
Only report and ir.message
are concerned as the other types are labels that have no counter.
The plural rule is a Python expression which return an integer following the gettext design.
Another option would have been to use the CLDR Plural Rules because Babel support them and can convert them to Python or Javascript. But they are also less flexible and would require to add Babel as dependency.
The Javascript conversion would be nice but actually we have only 2 messages in the client which would require plural. And we do not have yet a JS library that support ngettext
.
For the report, it is possible to use the Genshi i18n:choose
, i18n:singular
, i18n:plural
and for OpenDocument the gettext
and ngettext
methods are added to the evaluation context.