Plural/Mediawiki plural rules
This page is a draft and may contain errors. Last updated 9 April 2012. This page has not been updated to reflect the switch to CLDR plurals in 2012-09, nor the breaking changes in CLDR 24 and CLDR26
The table shows the MediaWiki plural rules for all languages enabled for localisation at translatewiki.net.
The default rules are those for English, with one form for the number 1 and another for all other numbers.
At present the plural rules in Mediawiki haven't considered decimal numbers - except for a few languages. This means that decimal numbers may or may not work as expected by falling in to one of the plural forms (usually the last one, other). Actually since switch to CLDR decimal numbers have better support.
The rule reference in the column 'Group' follows the references in CLDR, with a suffix 'a' where the rules in Mediawiki and CLDR differ. Needs updating.
Language | Code | Group | Rules | Examples | Note |
---|---|---|---|---|---|
Afar | aa | Default | |||
Abkhazian | ab | Default | |||
Achinese | ace | Default | |||
Adyghe | ady | Default | |||
Tunisian Arabic | aeb | Default | |||
Afrikaans | af | Default | |||
अहिराणी | ahr | Default | |||
Akan | ak | Default | |||
Alabama | akz | Default | |||
Gheg Albanian | aln | Default | |||
Tosk | als | Default | |||
Amharic | am | one-zero | <=1 other |
0, 1 2, 3... |
|
Aragonese | an | Default | |||
Old English | ang | Default | |||
Angika | anp | Default | |||
Arabic | ar | arabic | 0 1 2 mod 100 in 3..10 mod 100 in 11..99 other |
0 1 2 3-10, 103-110, 203-210.. 11-99, 111-199, 211.. 100-102, 200-202, 300.. |
|
Aramaic | arc | Default | |||
Mapuche | arn | Default | |||
Araona | aro | Default | |||
Algerian Arabic | arq | Default | |||
Moroccan Arabic | ary | Default | |||
Egyptian Arabic | arz | Default | |||
Assamese | as | Default | |||
Asturian | ast | Default | |||
Avaric | av | Default | |||
Kotava | avk | Default | |||
Aymara | ay | Default | |||
Azerbaijani | az | Default | |||
Bashkir | ba | Default | |||
Bavarian | bar | Default | |||
Batak Toba | bbc | Default | |||
Southern Balochi | bcc | Default | |||
Central Bikol | bcl | Default | |||
Belarusian | be | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40... |
1 |
Belarusian (Taraškievica orthography) | be-tarask | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40... |
1 |
Betawi | bew | Default | |||
Badaga | bfq | Default | |||
Bulgarian | bg | default | Default | ||
Western Balochi | bgn | Default | |||
Bhojpuri | bho | one-zero | <=1 other |
0, 1 2, 3... |
|
Bislama | bi | Default | |||
Banjar | bjn | Default | |||
Bambara | bm | Default | |||
Bangla | bn | Default | |||
Tibetan | bo | Default | |||
Bishnupriya | bpy | Default | |||
Bakhtiari | bqi | Default | |||
Breton | br | Default | |||
Brahui | brh | Default | |||
Bosnian | bs | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40.. |
|
Iriga Bicolano | bto | Default | |||
Buginese | bug | Default | |||
Russia Buriat | bxr | Default | |||
Catalan | ca | Default | |||
Chavacano | cbk-zam | Default | |||
Min Dong Chinese | cdo | Default | Plural checks disabled | ||
Chechen | ce | Default | |||
Cebuano | ceb | Default | |||
Chamorro | ch | Default | |||
Choctaw | cho | Default | |||
Cherokee | chr | Default | |||
Cheyenne | chy | Default | |||
Central Kurdish | ckb | Default | |||
Corsican | co | Default | |||
Capiznon | cps | Default | |||
Cree | cr | Default | |||
Crimean Turkish | crh | Default | |||
Czech | cs | Rule L | n is 1 n in 2-4 other |
1 2-4 0, 5.. |
|
Kashubian | csb | Default | |||
Church Slavic | cu | Rule AAa | n mod 10 is 1 n mod 10 is 2 n mod 10 in 3-4 other |
1, 11, 21.. 2, 12, 22.. 3-4, 13-14, 23-24.. 0, 5-10, 15-20.. |
|
Chuvash | cv | Default | |||
Welsh | cy | Rule Q | 0 1 2 3 6 other |
0 1 2 3 6 4, 5, 7, 8... |
|
Danish | da | Default | |||
German | de | Default | |||
Zazaki | diq | Default | |||
Lower Sorbian | dsb | Rule ACa | n mod 100 is 1 n mod 100 is 2 n mod 100 in 3-4 other |
1, 101, 201.. 2, 102, 202... 3-4, 103-104, 203-204.. 0, 5-100, 105-200.. |
|
Central Dusun | dtp | Default | |||
Divehi | dv | Default | |||
Dzongkha | dz | Default | |||
Ewe | ee | Default | |||
Emilian | egl | Default | |||
Greek | el | Default | |||
Emiliano-Romagnolo | eml | Default | |||
English | en | 1 other |
1 0, 2, 3... |
||
Esperanto | eo | default | Default | ||
Spanish | es | Default | |||
Central Yupik | esu | Default | |||
Estonian | et | default | Default | ||
Basque | eu | Default | |||
Extremaduran | ext | Default | |||
Persian | fa | Default | |||
Fulah | ff | Default | |||
Finnish | fi | default | Default | ||
Tornedalen Finnish | fit | Default | |||
Fijian | fj | Default | |||
Faroese | fo | Default | |||
French | fr | one-zero | <=1 other |
0, 1 2, 3... |
|
Cajun French | frc | Default | |||
Arpitan | frp | Default | |||
Northern Frisian | frr | Default | |||
Friulian | fur | Default | |||
Western Frisian | fy | Default | |||
Irish | ga | has-duala Broken link! |
n is 0 n is 1 2-6, 12-16, 21-26, 31-36... 7-10, 17-19, 27-29... other |
0 1 2-6, 12-16, 21-26, 31-36... 7-10, 17-19, 27-29... other |
see Talk page for details |
Gagauz | gag | Default | |||
Alekano | gah | Default | |||
Gan Chinese | gan | default | Default | ||
Zoroastrian Dari | gbz | Default | |||
Guadeloupean Creole French | gcf | Default | |||
Scottish Gaelic | gd | Rule Xa | 1 2 11 12 3..10, 13..19 0, 20.. |
1 2 11 12 3..10, 13..19 0, 20.. |
|
Galician | gl | Default | |||
Gilaki | glk | Default | |||
Guarani | gn | Default | |||
Goan Konkani | gom | Default | |||
Gothic | got | Default | |||
Ancient Greek | grc | Default | |||
Swiss German | gsw | Default | |||
Gujarati | gu | Default | |||
Wayuu | guc | Default | |||
Frafra | gur | Default | |||
Manx | gv | Rule Wa | n mod 20 is 0 and n is not 0 n mod 10 is 1 n mod 10 is 2 other |
20, 40.. 1, 11, 21.. 2, 12, 22.. 0, 3-10, 13-19.. |
|
Hausa | ha | Default | |||
Hakka Chinese | hak | Default | |||
Hawaiian | haw | Default | |||
Hebrew | he | has-dual | 1 2 other |
1 2 0, 3.. |
|
Hindi | hi | one-zero | <=1 other |
0, 1 2, 3... |
|
Fiji Hindi | hif | Default | |||
Hiligaynon | hil | Default | |||
छत्तीसगढ़ी | hne | Default | |||
Hiri Motu | ho | Default | |||
Croatian | hr | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40... |
|
Upper Sorbian | hsb | Rule ACa | n mod 100 is 1 n mod 100 is 2 n mod 100 in 3-4 other |
1, 101, 201.. 2, 102, 202... 3-4, 103-104, 203-204.. 0, 5-100, 105-200.. |
|
Xiang Chinese | hsn | Default | |||
Haitian Creole | ht | Default | |||
Hungarian | hu | default | Default | ||
Armenian | hy | one-zero | <=1 other |
0, 1 2, 3... |
|
Herero | hz | Default | |||
Interlingua | ia | Default | |||
Indonesian | id | Default | |||
Interlingue | ie | Default | |||
Igbo | ig | Default | |||
Sichuan Yi | ii | Default | |||
Inupiaq | ik | Default | |||
Iloko | ilo | Default | |||
Ingush | inh | Default | |||
Ido | io | Default | |||
Icelandic | is | Default | |||
Italian | it | Default | |||
Inuktitut | iu | default | Default | ||
Japanese | ja | default | Default | ||
Jamaican Creole English | jam | Default | |||
Lojban | jbo | Default | |||
Jutish | jut | Default | |||
Javanese | jv | Default | |||
Georgian | ka | Default | |||
Kara-Kalpak | kaa | default | Default | ||
Kabyle | kab | Default | |||
Kabardian | kbd | Default | |||
Kabuverdianu | kea | Default | |||
Kongo | kg | Default | |||
Kaingang | kgp | Default | |||
Khowar | khw | Default | |||
Kikuyu | ki | Default | |||
Kirmanjki | kiu | Default | |||
Kuanyama | kj | Default | |||
Kazakh | kk | default | Default | ||
Kalaallisut | kl | Default | |||
Khmer | km | default | Default | ||
Kannada | kn | Default | |||
Korean | ko | Default | |||
Komi-Permyak | koi | Default | |||
Kanuri | kr | Default | |||
Karachay-Balkar | krc | Default | |||
Krio | kri | Default | |||
Kinaray-a | krj | Default | |||
Karelian | krl | Default | |||
Kashmiri | ks | Default | |||
Bafia | ksf | Default | |||
Colognian | ksh | Rule U | 1 other 0 |
1 2, 3, 4... 0 |
|
Kurdish | ku | default | Default | ||
Komi | kv | Default | |||
Cornish | kw | Default | |||
Kyrgyz | ky | Default | |||
Latin | la | default | Default | ||
Ladino | lad | Default | |||
Luxembourgish | lb | Default | |||
Lak | lbe | Default | |||
Lezghian | lez | Default | |||
Lingua Franca Nova | lfn | Default | |||
Ganda | lg | Default | |||
Limburgish | li | Default | |||
Ligurian | lij | Default | |||
Livonian | liv | Default | |||
Ladin | lld | Default | |||
Lombard | lmo | Default | |||
Lingala | ln | one-zero | <=1 other |
0, 1 2, 3... |
|
Lao | lo | Default | |||
Lozi | loz | Default | |||
Lithuanian | lt | Rule J | n mod 10 is 1 and n mod 100 not in 11..19 n mod 10 in 2..9 and n mod 100 not in 11..19 other |
1, 21, 31... 2-9, 22-29, 32-39... 0, 10-20, 30, 40... |
1 |
Latgalian | ltg | Default | |||
Mizo | lus | Default | |||
Latvian | lv | Rule Fa | n mod 10 is 1 and n mod 100 is not 11 other |
1, 21, 31, ... 101, 121... 0, 2, 3... |
|
Literary Chinese | lzh | Default | |||
Laz | lzz | Default | |||
Maithili | mai | Default | |||
Basa Banyumasan | map-bms | Default | |||
Moksha | mdf | Default | |||
Morisyen | mfe | Default | |||
Malagasy | mg | one-zero | <=1 other |
0, 1 2, 3... |
|
Marshallese | mh | Default | |||
Eastern Mari | mhr | Default | |||
Maori | mi | Default | |||
Mi'kmaq | mic | Default | |||
Minangkabau | min | Default | |||
Macedonian | mk | Rule Pa | n mod 10 is 1 and n mod 100 is not 11 other |
1, 21, 31, ... 101, 121... 0, 2, 3... |
|
Malayalam | ml | default | Default | ||
Mongolian | mn | Default | |||
Manchu | mnc | Default | |||
Manipuri | mni | Default | |||
Moldovan | mo | Rule I | 1 n is 0 OR n is not 1 AND n mod 100 in 1..19 other |
1 0, 2..19, 101..119, 201.. 20..100, 120.. |
|
Marathi | mr | Default | |||
Western Mari | mrj | Default | |||
Malay | ms | Default | |||
Maltese | mt | Rule O | 1 n is 0 or n mod 100 in 2..10 n mod 100 in 11..19 other |
1 0, 2-10, 102-110, .. 11-19, 111-119, .. 20-101, 120-201, .. |
|
Musi | mui | Default | |||
Muscogee | mus | Default | |||
Mirandese | mwl | Default | |||
Mentawai | mwv | Default | |||
Burmese | my | default | Default | ||
Erzya | myv | Default | |||
Mazanderani | mzn | Default | |||
Nauru | na | Default | |||
Nāhuatl | nah | Default | |||
Min Nan Chinese | nan | Default | |||
Neapolitan | nap | Default | |||
Norwegian Bokmål | nb | Default | |||
Low German | nds | Default | |||
Nepali | ne | Default | |||
Newari | new | Default | |||
Ndonga | ng | Default | |||
Niuean | niu | Default | |||
Ao Naga | njo | Default | |||
Dutch | nl | Default | |||
Norwegian Nynorsk | nn | Default | |||
Novial | nov | Default | |||
N’Ko | nqo | Default | |||
Norman | nrm | Default | |||
Northern Sotho | nso | one-zero | <=1 other |
0, 1 2, 3... |
|
Navajo | nv | Default | |||
Nyanja | ny | Default | |||
Occitan | oc | Default | |||
Oromo | om | Default | |||
Odia | or | Default | |||
Ossetic | os | default | Default | ||
Punjabi | pa | Default | |||
Pangasinan | pag | Default | |||
Pampanga | pam | Default | |||
Papiamento | pap | Default | |||
Picard | pcd | Default | |||
Pennsylvania German | pdc | Default | |||
Plautdietsch | pdt | Default | |||
Palatine German | pfl | Default | |||
Pali | pi | Default | |||
Norfuk / Pitkern | pih | Default | |||
Pijin | pis | Default | |||
Pökoot | pko | Default | |||
Polish | pl | Rule M | 1 n mod 10 in 2-4 and n mod 100 not in 12-14 other |
1 2-4, 22-24, .. 102.. 0, 5-21, 25-31, .. 105.. |
|
Piedmontese | pms | Default | |||
Western Punjabi | pnb | Default | |||
Pontic | pnt | Default | |||
Nawat | ppl | Default | |||
Prussian | prg | Default | |||
Pashto | ps | Default | |||
Portuguese | pt | Default | |||
Quechua | qu | Default | |||
Chimborazo Highland Quichua | qug | Default | |||
Rapanui | rap | Default | |||
Romagnol | rgn | Default | |||
Riffian | rif | Default | |||
ရခိုင် | rki | Default | |||
Romansh | rm | Default | |||
Vlax Romani | rmy | Default | |||
Rundi | rn | Default | |||
Romanian | ro | Rule I | 1 n is 0 OR n is not 1 AND n mod 100 in 1..19 other |
1 0, 2..19, 101..119, 201.. 20..100, 120.. |
|
Tarantino | roa-tara | Default | |||
Rotuman | rtm | Default | |||
Russian | ru | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40.. |
1 |
Rusyn | rue | Default | |||
Aromanian | rup | Default | |||
Megleno-Romanian | ruq | Default | |||
Kinyarwanda | rw | Default | |||
ʔucināguci | ryu | Default | |||
Sanskrit | sa | Default | |||
Sakha | sah | Default | |||
Santali | sat | Default | |||
Saurashtra | saz | Default | |||
Sardinian | sc | Default | |||
Sicilian | scn | Default | |||
Scots | sco | Default | |||
Sindhi | sd | Default | |||
Sassarese Sardinian | sdc | Default | |||
Northern Sami | se | has-dual | 1 2 other |
1 2 0, 3, 4... |
|
Seri | sei | Default | |||
Sango | sg | Default | |||
Samogitian | sgs | Rule ABa | n mod 10 is 1 and n mod 100 is not 11 n mod 10 is 2 and n mod 100 is not 12 o or n mod 100 is 0 or n mod 100 in 10-19 other |
1, 21, 31.. 101, 121.. 2, 22, 32.. 102, 122.. 0, 10-19, 100, 110-119.. 3-9, 20, 23-30.. |
|
Serbo-Croatian | sh | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40.. |
1 |
Tachelhit | shi | default | Default | ||
Shan | shn | Default | |||
Sinhala | si | Default | |||
Slovak | sk | Rule L | 1 2..4 other |
1 2, 3, 4 0, 5, 6... |
|
Slovenian | sl | Rule Na | n mod 100 is 1 n mod 100 is 2 n mod 100 in 3-4 other n is 0 |
1, 101, 201, 301, 402.. 2, 102, 202, 302, 402.. 3-4, 103-104, 203-204.. 5-100, 105-200.. 0 |
|
Lower Silesian | sli | Default | |||
Selayar | sly | Default | |||
Samoan | sm | Default | |||
Southern Sami | sma | has-dual | 1 2 other |
1 2 0, 3, 4.. |
|
Shona | sn | Default | |||
Somali | so | Default | |||
Albanian | sq | Default | |||
Serbian | sr | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40.. |
1 |
Sranan Tongo | srn | Default | |||
Swati | ss | Default | |||
Southern Sotho | st | Default | |||
Saterland Frisian | stq | Default | |||
Sundanese | su | Default | |||
Swedish | sv | Default | |||
Swahili | sw | Default | |||
Comorian | swb | Default | |||
Säggssch | sxu | Default | |||
Silesian | szl | Default | |||
Tamil | ta | Default | |||
Tulu | tcy | Default | |||
Telugu | te | Default | |||
Tetum | tet | Default | |||
Tajik | tg | default | Default | ||
Thai | th | Default | |||
Tigrinya | ti | one-zero | <=1 other |
0, 1 2, 3... |
|
Turkmen | tk | Default | |||
Tsakhur | tkr | Default | |||
Tagalog | tl | one-zero | <=1 other |
0, 1 2, 3... |
|
Talysh | tly | Default | |||
Tswana | tn | Default | |||
Tongan | to | Default | |||
Tok Pisin | tpi | Default | |||
Turkish | tr | default | Default | ||
Kokborok (Tripuri) | trp | Default | |||
Turoyo | tru | Default | |||
Tsonga | ts | Default | |||
Tsakonian | tsd | Default | |||
Tatar | tt | Default | |||
Muslim Tat | ttt | Default | |||
Tumbuka | tum | Default | |||
Twi | tw | Default | |||
Tweants | twd | Default | |||
Tahitian | ty | Default | |||
Tuvinian | tyv | default | Default | ||
Central Atlas Tamazight | tzm | Default | |||
Udmurt | udm | Default | |||
Uyghur | ug | Default | |||
Ukrainian | uk | Rule K | n mod 10 is 1 and n mod 100 is not 11 n mod 10 in 2..4 and n mod 100 not in 12..14 n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14 |
1, 21, 31, 41, 51, 61... 2-4, 22-24, 32-34... 0, 5-20, 25-30, 35-40.. |
1 |
Urdu | ur | Default | |||
Uzbek | uz | Default | |||
Venda | ve | Default | |||
Venetian | vec | Default | |||
Veps | vep | Default | |||
Vietnamese | vi | Default | |||
West Flemish | vls | Default | |||
Main-Franconian | vmf | Default | |||
Volapük | vo | Default | |||
Votic | vot | Default | |||
Võro | vro | Default | |||
Walloon | wa | one-zero | <=1 other |
0, 1 2, 3... |
|
Waray | war | Default | |||
Wallisian | wls | Default | |||
Wolof | wo | Default | |||
Wu Chinese | wuu | Default | |||
Kalmyk | xal | Default | |||
Xhosa | xh | Default | |||
Mingrelian | xmf | Default | |||
Eastern Yiddish | ydd | Default | |||
Yiddish | yi | Default | |||
Yoruba | yo | Default | |||
Ненэцяʼ вада | yrk | Default | |||
Nheengatu | yrl | Default | |||
Maaya T'aan | yua | Default | |||
Cantonese | yue | default | Default | ||
Zhuang | za | Default | |||
Zeelandic | zea | Default | |||
Chinese | zh | default | Default | ||
Zulu | zu | Default |
- Note 1: An alternative ruleset has been defined for this language, with 2 forms; n is 1 and n is not 1.