start
Table of Contents

Plural Forms

On this page, we’re putting together a list of the plural forms appropriate to each language. If your language isn’t represented, or if the information is inaccurate or inadequate in some way, please edit it or add to it. Launchpad also has plural information about many languages. See it here.

This combination of our experience and ideas is a very useful internationalization tool.

PLEASE NOTE: Many of these equations contain the word “or” instead of the correct “||” operator. Before you can use these equations, you need to replace the “or” with “||”.

A

ISO English name Plurals header in .po files
af Afrikaans nplurals=2; plural=(n != 1)
am Amharic nplurals = 2; plural=(n > 1)
ar Arabic nplurals=6; n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n>=3 && n<=10 ? 3 : n>=11 && n<=99 ? 4 : 5
az Azerbaijani nplurals=2; plural=(n != 1)

B

be Belarusian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)
bg Bulgarian nplurals=2; plural=(n != 1)
bn Bengali nplurals=2; plural=(n != 1)
bo Tibetan nplurals=1; plural=0
bs Bosnian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)

C

ca Catalan nplurals=2; plural=(n != 1)
cs Czech nplurals=3; plural=(n==1) ? 0 : (n>=2 && n< =4) ? 1 : 2
cy Welsh nplurals=4; plural= (n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3

D

da Danish nplurals=2; plural=(n != 1)
de German nplurals=2; plural=(n != 1)
dz Dzongkha nplurals=1; plural=0

E

el Greek nplurals=2; plural=(n != 1)
en English nplurals=2; plural=(n != 1)
eo Esperanto nplurals=2; plural=(n != 1)
es Spanish nplurals=2; plural=(n != 1)
et Estonian nplurals=2; plural=(n != 1)
eu Basque nplurals=2; plural=(n != 1)

F

fa Persian nplurals=1; plural=0
fi Finnish nplurals=2; plural=(n != 1)
fil Filipino nplurals=2; plural=n > 1
fo Faroese nplurals=2; plural=(n != 1)
fr French nplurals=2; plural=(n > 1)
fur Friulian nplurals=2; plural=(n != 1)
fy Frisian nplurals=2; plural=(n != 1)

G

ga Irish nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2
gl Galician nplurals=2; plural=(n != 1)
gu Gujarati nplurals=2; plural=(n != 1)
gun Gun nplurals=1; plural = (n > 1)

H

ha Hausa nplurals=2; plural=(n != 1)
he Hebrew nplurals=2; plural=(n != 1)
hi Hindi 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 or n%100>=20) ? 1 : 2)
hu Hungarian nplurals=1; plural=0

I

id Indonesian nplurals=1; plural=0
is Icelandic nplurals=2; plural=(n != 1)
it Italian nplurals=2; plural=(n != 1)

J

ja Japanese nplurals=1; plural=0

K

ka Georgian nplurals=1; plural=0
km Khmer nplurals=1; plural=0
ko Korean nplurals=1; plural=0
ku Kurdish nplurals=2; plural=(n!= 1)

L

lb Letzeburgesch nplurals=2; plural=(n != 1)
ln Lingala nplurals=2; plural=n>1;
lt Lithuanian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 or n%100>=20) ? 1 : 2)
lv Latvian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)

M

mn Mongolian nplurals=2; plural=(n != 1)
mr Marathi nplurals=2; plural=(n != 1)
ms Malay nplurals=1; plural=0
mt Maltese nplurals=4; plural=(n==1 ? 0 : n==0 or ( n%100>1 && n%100<11) ? 1 : (n%100>10 && n%100<20 ) ? 2 : 3)

N

nah Nahuatl nplurals=2; plural=(n != 1)
nb Norwegian Bokmal nplurals=2; plural=(n != 1)
ne Nepali nplurals=2; plural=(n != 1)
nl Dutch nplurals=2; plural=(n != 1)
nn Norwegian Nynorsk nplurals=2; plural=(n != 1)
no Norwegian (old code) nplurals=2; plural=(n != 1)
nso Northern Sotho nplurals=2; plural=(n > 1)

O

or Oriya nplurals=2; plural=(n != 1)

P

pa Punjabi nplurals=2; plural=(n != 1)
pl Polish nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)
pt Portuguese nplurals=2; plural=(n != 1)
pt_BR Brazilian Portuguese nplurals=2; plural=(n > 1)

R

ro Romanian nplurals=3; plural=(n==1 ? 0 : (n==0 or (n%100 > 0 && n%100 < 20)) ? 1 : 2);
ru Russian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)

S

sk Slovak nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2
sl Slovenian nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 or n%100==4 ? 2 : 3)
so Somali nplurals=2; plural=n != 1
sq Albanian nplurals=2; plural=(n != 1)
sr Serbian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)
sv Swedish nplurals=2; plural=(n != 1)

T

ta Tamil nplurals=2; plural=(n != 1)
ti Tigrinya nplurals=2; plural=n > 1
tk Turkmen nplurals=2; plural=(n != 1)
tr Turkish nplurals=1; plural=0

U

uk Ukrainian nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10< =4 && (n%100<10 or n%100>=20) ? 1 : 2)

V

vi Vietnamese nplurals=1; plural=0

W

wa Walloon nplurals=2; plural=(n > 1)

Z

zh Chinese nplurals=1; plural=0

zh means all districts and all variants of Chinese, such as zh_CN, zh_HK, zh_TW and so on.

Note: In rare cases where plural form introduces difference in personal pronoun (such as her vs. they, we vs. I), the plural form is different:

zh Chinese nplurals=2; plural=(n > 1)