Bring languages.csv closer to CLDR

Make languages.csv follow CLDR for plurals and introduce
extraplurals.csv which defines known alternatives (mostly used by
Gettext).

Signed-off-by: Michal Čihař <michal@cihar.com>
This commit is contained in:
Michal Čihař 2018-01-26 13:17:42 +01:00
parent 94451a6889
commit 82fbe8d9e5
4 changed files with 45 additions and 12 deletions

View file

@ -68,7 +68,7 @@ de | German | nplurals=2; plural=n != 1; | ✔ | ✔ | ✔ | ✔
de\_AT | Austrian German | nplurals=2; plural=n != 1; | ✔ | | |
de\_CH | Swiss High German | nplurals=2; plural=n != 1; | ✔ | | |
doi | Dogri | nplurals=2; plural=n != 1; | | | ✔ | ✔
dsb | Lower Sorbian | nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \|\| n%100>=20) ? 1 : 2; | nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 \|\| n % 100 == 4) ? 2 : 3)); | | |
dsb | Lower Sorbian | nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 \|\| n % 100 == 4) ? 2 : 3)); | ✔ | | |
dv | Dhivehi | nplurals=2; plural=n != 1; | ✔ | | |
dz | Dzongkha | nplurals=1; plural=0; | ✔ | | ✔ | ✔
ee | Ewe | nplurals=2; plural=n != 1; | ✔ | | |
@ -116,13 +116,13 @@ guw | Gun | nplurals=2; plural=n > 1; | ✔ | | |
gv | Manx | nplurals=4; plural=(n % 10 == 1) ? 0 : ((n % 10 == 2) ? 1 : ((n % 100 == 0 \|\| n % 100 == 20 \|\| n % 100 == 40 \|\| n % 100 == 60 \|\| n % 100 == 80) ? 2 : 3)); | ✔ | | |
ha | Hausa | nplurals=2; plural=n != 1; | ✔ | | ✔ | ✔
haw | Hawaiian | nplurals=2; plural=n != 1; | ✔ | | |
he | Hebrew | nplurals=2; plural=n != 1; | nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3)); | ✔ | ✔ | ✔
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);
hil | Hiligaynon | nplurals=2; plural=n != 1; | | | |
hne | Chhattisgarhi | nplurals=2; plural=n != 1; | | | ✔ | ✔
ho | Hiri Motu | nplurals=2; plural=n != 1; | | | |
hr | Croatian | nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \|\| n%100>=20) ? 1 : 2; | ✔ | ✔ | ✔ | ✔
hsb | Upper Sorbian | nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \|\| n%100>=20) ? 1 : 2; | nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 \|\| n % 100 == 4) ? 2 : 3)); | | |
hsb | Upper Sorbian | nplurals=4; plural=(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 \|\| n % 100 == 4) ? 2 : 3)); | ✔ | | |
ht | Haitian | nplurals=2; plural=n != 1; | | | | ✔
hu | Hungarian | nplurals=2; plural=n != 1; | ✔ | ✔ | ✔ | ✔
hy | Armenian | nplurals=2; plural=n > 1; | ✔ | | nplurals=2; plural=(n != 1); | nplurals=1; plural=0;
@ -166,7 +166,7 @@ ksb | Shambala | nplurals=2; plural=n != 1; | ✔ | | |
ksh | Colognian | nplurals=3; plural=n==0 ? 0 : n==1 ? 1 : 2; | ✔ | | |
ku | Kurdish | nplurals=2; plural=n != 1; | ✔ | | ✔ | ✔
kv | Komi | nplurals=2; plural=n != 1; | | | |
kw | Cornish | nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3; | nplurals=3; plural=(n == 1) ? 0 : ((n == 2) ? 1 : 2); | | ✔ | ✔
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;
ky | Kyrgyz | nplurals=2; plural=n != 1; | ✔ | | ✔ | ✔
la | Latin | nplurals=2; plural=n != 1; | | | |
lag | Langi | nplurals=3; plural=(n == 0) ? 0 : ((n == 1) ? 1 : 2); | ✔ | | |
@ -176,9 +176,9 @@ li | Limburgish | nplurals=2; plural=n != 1; | | | |
lkt | Lakota | nplurals=1; plural=0; | ✔ | | |
ln | Lingala | nplurals=2; plural=n > 1; | ✔ | | ✔ | ✔
lo | Lao | nplurals=1; plural=0; | ✔ | | ✔ | ✔
lt | Lithuanian | nplurals=4; plural=n==1 ? 0 : n%10>=2 && (n%100<10 \|\| n%100>=20) ? 1 : n%10==0 \|\| (n%100>10 && n%100<20) ? 2 : 3; | nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 \|\| n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 \|\| n % 100 > 19)) ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 \|\| n%100>=20) ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 \|\| n%100>=20) ? 1 : 2); | nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 \|\| n%100>=20) ? 1 : 2);
lt | Lithuanian | nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 \|\| n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 \|\| n % 100 > 19)) ? 1 : 2); | ✔ | ✔ | ✔ | ✔
lu | Luba-Katanga | nplurals=2; plural=n != 1; | | | |
lv | Latvian | nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2; | nplurals=3; plural=(n % 10 == 0 \|\| n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2); | ✔ | ✔ | ✔
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);
mai | Maithili | nplurals=2; plural=n != 1; | | | ✔ | ✔
mas | Masai | nplurals=2; plural=n != 1; | ✔ | | |
me | Montenegrin | nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 \|\| n%100>=20) ? 1 : 2; | | | ✔ | ✔

View file

@ -13,11 +13,27 @@ Language definitions used by [Weblate][w] and free to use by others.
* Imported from translate-toolkit and Weblate
* Used by [Weblate][w] for language definitions

## extraplurals.csv

* Additional plural variants for some Languages

## cldr.csv

* Based purely on the CLDR data
* Generated using https://github.com/mlocati/cldr-to-gettext-plural-rules

## gettext.csv

* Based on Gettext defaults

## translate.csv

* Extracted from translate-toolkit

## l10n-guide.csv

* Extracted from the l10n guide

## languages-po

* Directory containing PO files with langauge names translations

17
extraplurals.csv Normal file
View file

@ -0,0 +1,17 @@
br;Breton;2;n > 1
cgg;Chiga;1;0
cy;Welsh;2;(n==2) ? 1 : 0
cy;Welsh;4;(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3
dsb;Lower Sorbian;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
fil;Filipino;2;(n > 1)
ga;Irish;3;n==1 ? 0 : n==2 ? 1 : 2
he;Hebrew;2;(n != 1)
hsb;Upper Sorbian;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
jv;Javanese;2;(n != 1)
ka;Georgian;1;0
kw;Cornish;4;(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3
lt;Lithuanian;4;n==1 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3
lt;Lithuanian;3;(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)
lv;Latvian;3;n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2
se;Northern Sami;2;(n != 1)
sl;Slovenian;4;(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0)
1 br Breton 2 n > 1
2 cgg Chiga 1 0
3 cy Welsh 2 (n==2) ? 1 : 0
4 cy Welsh 4 (n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3
5 dsb Lower Sorbian 3 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
6 fil Filipino 2 (n > 1)
7 ga Irish 3 n==1 ? 0 : n==2 ? 1 : 2
8 he Hebrew 2 (n != 1)
9 hsb Upper Sorbian 3 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
10 jv Javanese 2 (n != 1)
11 ka Georgian 1 0
12 kw Cornish 4 (n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3
13 lt Lithuanian 4 n==1 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3
14 lt Lithuanian 3 (n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)
15 lv Latvian 3 n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2
16 se Northern Sami 2 (n != 1)
17 sl Slovenian 4 (n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0)

View file

@ -60,7 +60,7 @@ de;German;2;n != 1
de_AT;Austrian German;2;n != 1
de_CH;Swiss High German;2;n != 1
doi;Dogri;2;n != 1
dsb;Lower Sorbian;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
dsb;Lower Sorbian;4;(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3))
dv;Dhivehi;2;n != 1
dz;Dzongkha;1;0
ee;Ewe;2;n != 1
@ -108,13 +108,13 @@ guw;Gun;2;n > 1
gv;Manx;4;(n % 10 == 1) ? 0 : ((n % 10 == 2) ? 1 : ((n % 100 == 0 || n % 100 == 20 || n % 100 == 40 || n % 100 == 60 || n % 100 == 80) ? 2 : 3))
ha;Hausa;2;n != 1
haw;Hawaiian;2;n != 1
he;Hebrew;2;n != 1
he;Hebrew;4;(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3))
hi;Hindi;2;n > 1
hil;Hiligaynon;2;n != 1
hne;Chhattisgarhi;2;n != 1
ho;Hiri Motu;2;n != 1
hr;Croatian;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
hsb;Upper Sorbian;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
hsb;Upper Sorbian;4;(n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3))
ht;Haitian;2;n != 1
hu;Hungarian;2;n != 1
hy;Armenian;2;n > 1
@ -158,7 +158,7 @@ ksb;Shambala;2;n != 1
ksh;Colognian;3;n==0 ? 0 : n==1 ? 1 : 2
ku;Kurdish;2;n != 1
kv;Komi;2;n != 1
kw;Cornish;4;(n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3
kw;Cornish;3;(n == 1) ? 0 : ((n == 2) ? 1 : 2)
ky;Kyrgyz;2;n != 1
la;Latin;2;n != 1
lag;Langi;3;(n == 0) ? 0 : ((n == 1) ? 1 : 2)
@ -168,9 +168,9 @@ li;Limburgish;2;n != 1
lkt;Lakota;1;0
ln;Lingala;2;n > 1
lo;Lao;1;0
lt;Lithuanian;4;n==1 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3
lt;Lithuanian;3;(n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 1 : 2)
lu;Luba-Katanga;2;n != 1
lv;Latvian;3;n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2
lv;Latvian;3;(n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2)
mai;Maithili;2;n != 1
mas;Masai;2;n != 1
me;Montenegrin;3;n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2

1 aa Afar 2 n != 1
60 de_AT Austrian German 2 n != 1
61 de_CH Swiss High German 2 n != 1
62 doi Dogri 2 n != 1
63 dsb Lower Sorbian 3 4 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 (n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3))
64 dv Dhivehi 2 n != 1
65 dz Dzongkha 1 0
66 ee Ewe 2 n != 1
108 gv Manx 4 (n % 10 == 1) ? 0 : ((n % 10 == 2) ? 1 : ((n % 100 == 0 || n % 100 == 20 || n % 100 == 40 || n % 100 == 60 || n % 100 == 80) ? 2 : 3))
109 ha Hausa 2 n != 1
110 haw Hawaiian 2 n != 1
111 he Hebrew 2 4 n != 1 (n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && n % 10 == 0) ? 2 : 3))
112 hi Hindi 2 n > 1
113 hil Hiligaynon 2 n != 1
114 hne Chhattisgarhi 2 n != 1
115 ho Hiri Motu 2 n != 1
116 hr Croatian 3 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2
117 hsb Upper Sorbian 3 4 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2 (n % 100 == 1) ? 0 : ((n % 100 == 2) ? 1 : ((n % 100 == 3 || n % 100 == 4) ? 2 : 3))
118 ht Haitian 2 n != 1
119 hu Hungarian 2 n != 1
120 hy Armenian 2 n > 1
158 ksh Colognian 3 n==0 ? 0 : n==1 ? 1 : 2
159 ku Kurdish 2 n != 1
160 kv Komi 2 n != 1
161 kw Cornish 4 3 (n==1) ? 0 : (n==2) ? 1 : (n == 3) ? 2 : 3 (n == 1) ? 0 : ((n == 2) ? 1 : 2)
162 ky Kyrgyz 2 n != 1
163 la Latin 2 n != 1
164 lag Langi 3 (n == 0) ? 0 : ((n == 1) ? 1 : 2)
168 lkt Lakota 1 0
169 ln Lingala 2 n > 1
170 lo Lao 1 0
171 lt Lithuanian 4 3 n==1 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3 (n % 10 == 1 && (n % 100 < 11 || n % 100 > 19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? 1 : 2)
172 lu Luba-Katanga 2 n != 1
173 lv Latvian 3 n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2 (n % 10 == 0 || n % 100 >= 11 && n % 100 <= 19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2)
174 mai Maithili 2 n != 1
175 mas Masai 2 n != 1
176 me Montenegrin 3 n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2