Pluralization
If you want to reach a global audience, you need to consider how your product design and code will work for different languages and scripts. One of the challenges you may face is how to handle pluralization. Pluralization accommodates different plural rules across languages. It allows for the display of different messages depending on the quantity selected. These different messages are based on the plural rules of the language.
It's not just singular and plural
For most Western countries, the term plural usually means more than one, or, if we want to think about it in a more technical way, anything that’s countable and different from one (we say, for example, “zero Pins”, even though it’s not necessarily more than one).
There are
different types of plurals depending on the language. English has two plural forms: singular and plural, “one Pin” and “five Pins.” Many languages share this simple duality, but quite a few don’t. Chinese has one plural form, and so does Japanese. Russian has four, and Arabic has six!
What is Pluralization?
Pluralization (p11n) is the process of changing nouns from singular to plural form. Pluralization is complex and surprisingly diverse across languages. It’s the problem we face with i18n keys, which contain a numeric parameter.
When localizing plurals, we often have a dynamic count integer that we use to determine which form to pick. For example, 1 → “one Pin”, 2 → “two Pins”.
Looking at English, we have our two forms, “one” and “other” in localization lingo. Here, we’d need two versions of the message:
- One → “You’ve created 1 Pin so far!”
- Other → “You’ve created 30 Pins so far!”
- Approach 1, for required placeholders: (currently used at Pinterest) is grammatically incorrect but commonly used and acceptable. This approach has been used for in-app strings because a placeholder representing the integer is needed and can’t be omitted. This approach shouldn’t be used in site content where pluralization doesn’t require using placeholders for integers (ex: Help Center, Policy, Marketing content).
- Approach 2, when placeholders aren’t required: is grammatically correct but could be challenging when used for in-app strings because it requires omitting integer placeholders.
For required placeholders
This approach is grammatically incorrect yet commonly used and acceptable pluralization (includes integers for 0/1/2). Currently used in Pinterest in-app strings.
Group of intergers | Intergers range | English source | Arabic | Back-translation |
---|---|---|---|---|
zero | 0 | We have created {0} pins | لقد أنشأنا {٠} من المنشورات | We have created {0} from pins |
one | 1 | We have created {0} pin | لقد أنشأنا منشوراً {١} | We have created pin {1} |
two | 2 | We have created {0} pins | قد أنشأنا منشورين {٢} | We have created pins {2} |
few | 3-10 | We have created {0} pins | لقد أنشأنا {٣} منشورات | We have created {3} pins |
many | 11-99, 101+ | We have created {0} pins | لقد أنشأنا {١١} منشوراً | We have created {11} pins |
other | 100, 1000, 10,000+ | We have created {0} pins | لقد أنشأنا {١٠٠} منشورٍ | We have created {100} pins |
Note: when applying this rule, we should allow translators to move the integer placeholder position and also share the rule with examples in the Pinterest Style Guide.
When placeholders aren't required
This approach is the grammatically correct pluralization (omits integers for 0/1/2).
Group of intergers | Intergers range | English source | Arabic | Back-translation |
---|---|---|---|---|
zero | 0 | We have created {0} pins | لم ننشئ أي منشور | We have not created any pins |
one | 1 | We have created {0} pin | لقد أنشأنا منشوراً واحداً | We have created pin one |
two | 2 | We have created {0} pins | لقد أنشأنا منشورين اثنين | We have created pins two |
few | 3-10 | We have created {0} pins | لقد أنشأنا {٣} منشورات | We have created {3} pins |
many | 11-99, 101+ | We have created {0} pins | لقد أنشأنا {١١} منشوراً | We have created {11} pins |
other | 100, 1000, 10,000+ | We have created {0} pins | لقد أنشأنا {١٠٠} منشورٍ | We have created {100} pins |
- The Internationalization Team—engineering specifically—should check CLDR (Common Locale Data Repository) to see how this could be implemented for in-app strings
- When translating for larger contents (websites), the second approach, the grammatically correct one, should be implemented
How does pluralization work?
Pluralization allows for the display of different messages depending on the quantity selected. These different messages are based on the plural rules of the language. CLDR uses short, mnemonic tags for these plural categories:
- zero
- one (singular)
- two (dual)
- few (paucal)
- many (also used for fractions if they have a separate class)
- other (required—general plural form—also used if the language only has a single form)
When you have a dynamic string with a placeholder for a numeric value appended to a text (ex: {numPins} Pins), you need to always pluralize your string, even if you know that the number will always be greater than zero.
Mapping to CLDR forms
When writing the source string in English, the singular string “You have {numberMessage} message” maps to CLDR's one form and the plural string “You have {numberMessage}” messages maps to CLDR's other form.
Some languages like Japanese will use a single form (other) in the localized message, whereas Russian will use four forms (one, few, many and other) and Arabic will use six forms (zero, one, two, few, many and other).
See CLDR Plural Rules for more details.
English
en.properties
French
fr.properties
Japanese
ja.properties
Russian
ru.properties
Java Code Snippet
Also see the full documentation at L10nMessages, a Pinterest open source project.
Pluralization in the different Pinterest platforms
Each platform at Pinterest has a special function/macro to handle pluralization:
- Pinboard Wiki page
- Webapp Wiki page
- Android official documentation
- iOS: briefly mentioned in the Working with Localization Wiki page
Real life examples
Source and target examples of wrong pluralization. Correct output should be “1 day”
Timestamp wrongly pluralized
Related
International design
About International Design abreviations and its meaning
RTL guidelines
A guide to designing surfaces with RTL languages in mind