Milestone Schedule

Plural Rules

Languages vary in how they handle plurals of nouns or unit expressions ("hour" vs "hours", and so on). Some languages have two forms, like English; some languages have only a single form; and some languages have multiple forms. CLDR uses short, mnemonic tags for these plural categories:

  • zero
  • one (singular)
  • two (dual)
  • few (paucal)
  • many
  • other (general plural form -- also used if the language only has a single form, or for fractions if they are different)
See Language Plural Rules for the categories for each language in CLDR.

These categories are used to provide localized units, with a more natural ways of expressing phrases that vary in plural form, such as "1 hour" vs "2 hours". While they cannot express all the intricacies of natural languages, they allow for more natural phrasing than constructions like "1 hour(s)".

Reporting Defects

When you find errors or omissions in this data, please report the information with a bug report. Please give examples of how the forms may differ. You don't have to give the exact rules, but it is extremely helpful! Here's an example:  
Sample Bug Report
The draft Ukrainian (uk) plural rules are:
one: 1, 21, 31, 41, 51, 61...
few: 2-4, 22-24, 32-34...
other: 0, 5-20, 25-30, 35-40...; 1.31, 2.31, 5.31...

Although rules for integer values are correct, there needs to be four categories,
with an extra one for fractions. For example:

1 день
2 дні
5 днів
1.31 дня
2.31 дня
5.31 дня

Determining Plural Categories

The CLDR plural categories do not necessarily match the traditional grammatical categories. Instead, the categories are determined by changes required in a phrase or sentence if a numeric placeholder changes value. 

Minimal pairs

The categories are can be investigated by looking a minimal pairs: where a change in value forces a change in the other words. For example, the following is a minimal pair for English, establishing a difference in category between "1" and "2".
  • NUMBER book
  • NUMBER books
Some languages, like Bengali, do not change the form of the following noun when the numeric value changes. However, they do change the form of referents. So a minimal pair in Bengali looks something like:
  • I saw NUMBER fish, and ate it
  • I saw NUMBER fish, and ate them.
Even where nouns are invariant, other parts of a sentence might change. That is sufficient to establish a minimal pair. For example, even if all nouns in English were invariant (like 'fish' or 'sheep'), the verb changes are sufficient to establish a minimal pair.
  • NUMBER fish is swimming
  • NUMBER fish are swimming
In many cases, a single noun doesn't exhibit all the numeric forms. For example, in Welsh the following is a minimal pair that separates 0 and 1:
  • 0 cadair
  • 1 gadair
That word does not differ for 1 and 2, but a different word establishes a minimal pair for those two numbers:
  • 1 peint
  • 2 beint
So the above two minimal pairs establish that Welsh requires at least 3 forms.

The minimal pairs are those that are required for correct grammar. So because 0 and 1 don't have to form a minimal pair (it is ok—even though often not optimal—to say "0 people") , 0 doesn't establish a separate category. However, implementations are encouraged to provide the ability to have special plural messages for 0 in particular, so that more natural language can be used:
  • None of your friends are online.
    rather than
  • You have 0 friends online.
So the first step is to see how many different case are required, based on minimal pairs, such as:

{0} год 1 год
{0} лет 5 лет
{0} года 2 года

In some languages, fractions require a separate category. For example, Ukrainian in the example above.

The next step is to determine the rules: which numbers go into which categories.

Integers

Test a variety of integers. Look for cases where the 'teens' (11-19) behave differently. Many languages only care about the last 2 digits only, or the last digit only.

Fractions

Fractions are often a bit tricky to determine: languages have very different behavior for them. In some languages the fraction is ignored (when selecting the category), in some languages the final digits of the fraction are important, in some languages a number changes category just if there are visible trailing zeros. Make sure to try out a range of fractions to make sure how the numbers behave: values like 1 vs 1.0 may behave differently, as may numbers like 1.1 vs 1.2 vs 1.21, and so on.

Choosing Plural Category Names

In some sense, the names for the categories are somewhat arbitrary. Yet for consistency across languages, the following guidelines should be used when selecting the plural category names.
  1. If no forms change, then stop (there are no plural rules — everything gets 'other')
  2. 'one': Use the category 'one' for the form used with 1.
    • If everything else has the same form, stop (everything else gets 'other')
  3. 'two': Use the category 'two' for the form used with 2, if it is limited to numbers that end with '2'.
    • If everything else has the same form, stop (everything else gets 'other')
  4. 'zero': Use the category 'zero' for the form used with 0, if it is limited to numbers that end with '0'.
    • If everything else has the same form, stop (everything else gets 'other')
  5. 'few': Use the category 'few' for the form used with the least remaining number (such as '4')
    • If everything else has the same form, stop (everything else gets 'other')
  6. 'many': Use the category 'many' for the form used with the least remaining number (such as '10')
    • If everything else has the same form, stop (everything else gets 'other')
  7. 'other': If the languages has a separate category for fractions, use 'other' for that. The remaining plurals should go into 'many'
  8. If there are more categories needed for the language, describe what those categories need to cover in the bug report.

Important Notes

These categories are only mnemonics -- the names don't necessarily imply the exact contents of the category. For example, for both English and French the number 1 has the category one (singular). In English, every other number has a plural form, and is given the category other. French is similar, except that the number 0 also has the category one and not other or zero, because the form of units qualified by 0 is also singular.

This is worth emphasizing: A common mistake is to think that "one" is only for only the number 1. Instead, "one" is a category for any number that behaves like 1. So in some languages, for example, one → numbers that end in "1" (like 1, 21, 151) but that don't end in 11 (like "11, 111, 10311).

Note that these categories may be different from the forms used for pronouns or other parts of speech. In particular, they are solely concerned with changes that would need to be made if different numbers, expressed with decimal digits, are used with a sentence. If there is a dual form in the language, but it isn't used with decimal numbers, it should not be reflected in the categories. That is, the key feature to look for is: 

If you were to substitute a different number for "1" in a sentence or phrase, would the rest of the text be required to change? For example, in a caption for a video:

"Duration: 1 hour" → "Duration: 3.2 hours"

Plural rule syntax

Comments