Commit ed91e099 authored by Michal Čihař's avatar Michal Čihař

MoAdd better plural form descriptions (issue #205)

parent 35770d89
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
# #
from django.db import models from django.db import models
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _, pgettext_lazy
from django.db.models import Sum from django.db.models import Sum
from translate.lang import data from translate.lang import data
from south.signals import post_migrate from south.signals import post_migrate
...@@ -445,6 +445,60 @@ PLURAL_ONE_FEW_MANY_OTHER = 8 ...@@ -445,6 +445,60 @@ PLURAL_ONE_FEW_MANY_OTHER = 8
PLURAL_TWO_OTHER = 9 PLURAL_TWO_OTHER = 9
PLURAL_UNKNOWN = 666 PLURAL_UNKNOWN = 666
# Plural names mapping
PLURAL_NAMES = {
PLURAL_NONE: ('',),
PLURAL_ONE_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Plural'),
),
PLURAL_ONE_FEW_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Few'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_ARABIC: (
pgettext_lazy('Plural form description', 'Zero'),
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Two'),
pgettext_lazy('Plural form description', 'uFew'),
pgettext_lazy('Plural form description', 'Many'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_ONE_TWO_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Two'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_ONE_TWO_THREE_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Two'),
pgettext_lazy('Plural form description', 'Three'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_ONE_TWO_FEW_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Two'),
pgettext_lazy('Plural form description', 'Few'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_ONE_OTHER_ZERO: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Other'),
pgettext_lazy('Plural form description', 'Zero'),
),
PLURAL_ONE_FEW_MANY_OTHER: (
pgettext_lazy('Plural form description', 'One'),
pgettext_lazy('Plural form description', 'Few'),
pgettext_lazy('Plural form description', 'Many'),
pgettext_lazy('Plural form description', 'Other'),
),
PLURAL_TWO_OTHER: (
pgettext_lazy('Plural form description', 'Two'),
pgettext_lazy('Plural form description', 'Other'),
),
}
class Language(models.Model): class Language(models.Model):
PLURAL_CHOICES = ( PLURAL_CHOICES = (
...@@ -494,11 +548,16 @@ class Language(models.Model): ...@@ -494,11 +548,16 @@ class Language(models.Model):
''' '''
Returns label for plural form. Returns label for plural form.
''' '''
if self.plural_type == PLURAL_UNKNOWN: try:
return unicode(PLURAL_NAMES[self.plural_type][idx])
except:
if idx == 0: if idx == 0:
return _('Singular') return _('Singular')
elif idx == 0:
return _('Plural')
return _('Plural form %d') % idx return _('Plural form %d') % idx
@models.permalink @models.permalink
def get_absolute_url(self): def get_absolute_url(self):
return ('weblate.trans.views.show_language', (), { return ('weblate.trans.views.show_language', (), {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment