Plurals
The PluralFormatter uses language-specific pluralization rules to choose different text for singular and plural forms.  Some languages can have as many as 5 different forms.
Example
Smart.Format("There {0:plural:is 1 item|are {} items}.", number);
// outputs "There is 1 item." or "There are 2 items."
Syntax details
{ Number : plural(lang) : singular | plural | more... }
| Number | :plural | (lang) | singular | plural | more... | 
|---|---|---|---|---|---|
Any Number, like int or double | 
"plural" or "p" or implicit | 2-letter language code | the singular text | the plural text | more plural forms | 
- English has two plural forms: 1 is singular, everything else is plural. However, some languages have complex rules, with as many as 6 plural forms! Special cases for 0, 2-4, or singular used for 21, 31, etc. So, for these languages, you should specify all plural forms, in smallest-to-largest order (eg. zero|one|two|few|many)
 - The default language rule is english.  To use a specific rule, there are 3 ways:
- Change the default: 
Smart.Default.GetFormatterExtension<PluralLocalizationFormatter>().DefaultTwoLetterISOLanguageName = "ru"; - Supply a culture info: 
Smart.Format(GetCultureInfo("ru"), "{0:банан|банана|бананов}", args...) - Specify the (lang) like this: 
{0:plural(ru):банан|банана|бананов} 
 - Change the default: