How Many Plural Forms a Language Actually Needs
9 min read · updated August 11, 2026
The answer ranges from one to six, it is published as data rather than decided by grammarians, and the number for a given language is a property of a dataset version rather than of the language itself. All of which matters if you are sizing a translation job.
What the question actually means
“How many plural forms does a language have” is ambiguous between two questions. A linguist’s answer describes the number system: singular, dual, paucal, plural. A software answer asks something narrower and more useful — how many variants of a message do I need to write so that every count produces correct text? Those are different numbers. Slovene has a genuine grammatical dual and needs four message variants; Polish has no dual and also needs four.
The software answer is standardised. The Unicode Consortium publishes plural rules as part of CLDR, with six possible category names — zero, one, two, few, many, other — and per-language rules that map a number to one of them. Every language has other; the rest are present only if the language needs them. The authoritative view is Unicode’s language plural rules chart, and the project itself is at cldr.unicode.org.
The category names carry no meaning. many in Polish includes 0 and 12; one in Russian includes 21 and 101. They are labels for sets of numbers, and the sets are the data.
Languages by category count
Grouped by how many cardinal categories CLDR assigns them, as published at the time of writing:
1 form other
Chinese, Japanese, Korean, Thai, Vietnamese, Indonesian, Malay,
Burmese, Lao, Georgian(*)
→ one string covers every count
2 forms one, other
English, German, Dutch, Swedish, Danish, Norwegian, Italian,
Greek, Hungarian, Finnish, Estonian, Turkish, Swahili, Bulgarian,
Hebrew(*), Portuguese, Spanish(*), French(*)
3 forms Latvian zero, one, other
Romanian one, few, other
Icelandic one, other + ... (see the chart; -1/-21 behave as one)
4 forms Russian, Ukrainian, Polish, Czech, Slovak, Croatian, Serbian,
Lithuanian one, few, many, other
Slovene one, two, few, other
5 forms Irish one, two, few, many, other
Maltese one, two, few, many, other
6 forms Arabic zero, one, two, few, many, other
Welsh zero, one, two, few, many, other
(*) marks a language whose category set has been revised in CLDR — see below.Two shapes of language sit at the extremes for opposite reasons. Chinese and Japanese need one form because they do not mark number on nouns at all — count is carried by numerals and classifiers, so the noun phrase does not change; that mechanism is in why Japanese has no grammatical plural. Welsh needs six because specific numerals mutate the following word, so 3 and 6 produce different surface strings from 4, 5 and 7; that is in Welsh pluralization rules. Arabic needs six because it has a genuine dual plus distinct agreement bands for 3–10 and 11–99.
For sizing work, the number that matters is not the maximum but the distribution across your target locales. A product shipping in English, German, French, Spanish and Italian has almost no plural work to do, because every one of those is a two-category language and the strings map one to one. Add Polish, Russian and Czech and every string containing a count doubles in variants; add Arabic and Welsh and it triples. So the plural cost of a localisation project is close to zero up to a point and then steps sharply, and the step is a property of which languages you added rather than of how many.
Intl.PluralRules(locale).resolvedOptions().pluralCategories, or the ICU equivalent in your language, which reads the same CLDR data your runtime shipped with and stays correct across upgrades. The table above is for estimating the size of a job, not for implementing one.The dataset has changed, and will again
This is the part that makes a plural-category count a refresh fact rather than a permanent one. Spanish and French sat at two categories for years and later gained a many category — not because the languages changed, but because CLDR extended the model to cover compact decimal notation, where forms like “1 millón” behave differently from small integers. Hebrew has also been revised. Icelandic and a few others have rules that read oddly because they encode a genuine oddity (Icelandic treats numbers ending in 1 as one except 11).
Two practical consequences. If you have hand-written plural logic derived from CLDR at some point in the past, it is now a fork, and it will disagree with any library that has updated. And if you are budgeting a translation job by counting strings times forms, get the form count from the CLDR version your product will actually ship with, because a language gaining a category means every plural string in it needs a new variant.
Ordinals are a separate rule set
CLDR publishes two plural-rule sets per language, and almost everyone forgets the second. Cardinals answer “3 files”; ordinals answer “3rd file”, and they use the same category names with entirely different rules.
English cardinals: one, other (1 file / 2 files)
English ordinals: one, two, few, other
1st → one (also 21st, 31st, 101st)
2nd → two (also 22nd, 32nd)
3rd → few (also 23rd, 33rd)
4th → other (also 11th, 12th, 13th)
new Intl.PluralRules("en", { type: "ordinal" }).select(23); // "few"So English, which needs two cardinal forms, needs four ordinal ones — and a system that stores “English has two plural forms” as a configuration value will produce “23th” somewhere. Other languages differ again: many have a single ordinal category because the ordinal is formed with a suffix that does not vary.
What the categories do not cover
A plural-rules library answers exactly one question: which message variant does this number select. Four things it does not do, each of which has been mistaken for a library bug.
- Grammatical case. Slavic and Finno-Ugric languages change the noun again depending on its role in the sentence.
2 plikiis right as a subject and wrong after most prepositions. The category is correct; the string in it is not. - Gender-based noun classes. Polish masculine-personal nouns take different forms from everything else at the same counts, and CLDR does not model it.
- Classifiers. Japanese, Chinese, Korean and Thai choose a counter word by the type of thing being counted. One plural category, many counters, and the choice is per-noun.
- Mutation and sandhi. Welsh mutation is partly captured because it correlates with specific numerals; Irish initial mutation and similar systems elsewhere are only partly expressible this way.
In each case the fix is the same and it is a data-modelling one: the plural branch must contain a complete, already-inflected phrase for that branch, produced by someone who knows the language, rather than a stem plus an interpolated number. If a model is producing those branches, ask it for the inflected forms explicitly rather than for a translated sentence — the argument made concretely in Polish plural forms for 1, 2–4 and 5+.