translate icon indicating copy to clipboard operation
translate copied to clipboard

Compare TTK plurals against CLDR

Open unho opened this issue 8 years ago • 2 comments

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/

unho avatar Feb 22 '17 11:02 unho

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);

nijel avatar Mar 22 '18 16:03 nijel

Nice!

unho avatar Mar 24 '18 17:03 unho