translate
translate copied to clipboard
Compare TTK plurals against CLDR
TTK sets plurals data in https://github.com/translate/translate/blob/master/translate/lang/data.py#L29-L202 but some of them might not align with CLDR: http://mlocati.github.io/cldr-to-gettext-plural-rules/
The differences can be seen here: https://github.com/WeblateOrg/language-data/blob/master/PLURALS_DIFF.md (but it's comparing more sources and more languages)
Here is reduced table listing only the differences, it also includes default Gettext rules (if they exist) and L10n guide ones:
Code | Name | CLDR plurals | Gettext plurals | L10n guide | Translate toolkit |
---|---|---|---|---|---|
as | Assamese | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
bn | Bengali | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
br | Breton | nplurals=5; plural=(n % 10 == 1 && n % 100 != 11 && n % 100 != 71 && n % 100 != 91) ? 0 : ((n % 10 == 2 && n % 100 != 12 && n % 100 != 72 && n % 100 != 92) ? 1 : ((((n % 10 == 3 || n % 10 == 4) || n % 10 == 9) && (n % 100 < 10 || n % 100 > 19) && (n % 100 < 70 || n % 100 > 79) && (n % 100 < 90 || n % 100 > 99)) ? 2 : ((n != 0 && n % 1000000 == 0) ? 3 : 4))); | nplurals=2; plural=(n > 1); | nplurals=2; plural=n > 1; | |
cgg | Chiga | nplurals=2; plural=n != 1; | nplurals=1; plural=0; | nplurals=1; plural=0; | |
cy | Welsh | nplurals=6; plural=(n==0) ? 0 : (n==1) ? 1 : (n==2) ? 2 : (n==3) ? 3 :(n==6) ? 4 : 5; | nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3; | nplurals=2; plural=(n==2) ? 1 : 0; | |
ff | Fulah | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
fil | Filipino | nplurals=2; plural=n != 1 && n != 2 && n != 3 && (n % 10 == 4 || n % 10 == 6 || n % 10 == 9); | nplurals=2; plural=(n > 1); | nplurals=2; plural=(n > 1); | |
gu | Gujarati | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
he | Hebrew | nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3)); | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); |
hi | Hindi | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
hy | Armenian | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=1; plural=0; | |
is | Icelandic | nplurals=2; plural=n % 10 != 1 || n % 100 == 11; | ✔ | nplurals=2; plural=(n != 1); | |
jv | Javanese | nplurals=1; plural=0; | nplurals=2; plural=(n != 0); | nplurals=2; plural=(n != 1); | |
ka | Georgian | nplurals=2; plural=n != 1; | nplurals=1; plural=0; | nplurals=1; plural=0; | |
kab | Kabyle | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | ||
kn | Kannada | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
kw | Cornish | nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2); | nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3; | nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3; | |
lv | Latvian | nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); |
mr | Marathi | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
nqo | N’Ko | nplurals=1; plural=0; | nplurals=2; plural=(n > 1); | ||
nso | Pedi | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
pa | Punjabi | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
pt | Portuguese | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); |
se | Northern Sami | nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2); | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
si | Sinhala | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
ug | Uyghur | nplurals=2; plural=n != 1; | nplurals=1; plural=0; | nplurals=1; plural=0; | |
uz | Uzbek | nplurals=2; plural=n != 1; | nplurals=2; plural=(n > 1); | nplurals=2; plural=(n > 1); | |
wo | Wolof | nplurals=1; plural=0; | ✔ | nplurals=2; plural=(n != 1); | |
yo | Yoruba | nplurals=1; plural=0; | nplurals=2; plural=(n != 1); | nplurals=2; plural=(n != 1); | |
zu | Zulu | nplurals=2; plural=n > 1; | nplurals=2; plural=(n != 1); |
Nice!