dev

Plural module is a small script that replaces {{plural:}}. You can manually set language or the script will parse content page's language.

Installation

About

Most of the languages have the same ruleset for plural logic as English, but others don't.

As the example: French have a little bit different ruleset or Polish, Romanian, Serbian, and Russian have 3 plural forms in total. {{plural:}} magic word can provide only one ruleset on a single page and it's dependent on content page's language.

Usage

Usage in a template
{{Plural|<amount>|<1st form>|<2nd form>|<3rd form (optional)>|<...>|<6th form (optional)>|lang = <language (optional, page's language by default)>}}
Usage in a module
local plural = require("Dev:Plural").getPlural

plural{ ["lang"] = "language code", amount, "1st form", "2nd form", "3rd form", ..., "6th form" }

Examples

Code Result Note
{{Plural|0|house|houses}} houses Takes $lang parameter from page's language (en for this page).
{{Plural|0|house|houses}} house
{{Plural|1|house|houses}} houses
{{Plural|0|maison|maisons|lang=fr}} maison French has a little bit different ruleset
{{Plural|1|maison|maisons|lang=fr}} maison
{{Plural|2|maison|maisons|lang=fr}} maisons
{{Plural|-1|house|houses}} house Also works for negative numbers
{{Plural|-2|house|houses}} houses
{{Plural|3.14|house|houses}} houses Also works for fractional numbers
* 0 {{Plural|0|дом|дома|домов|lang=ru}}
* 1 {{Plural|1|дом|дома|домов|lang=ru}}
* 2 {{Plural|2|дом|дома|домов|lang=ru}}
* 3 {{Plural|3|дом|дома|домов|lang=ru}}
* 4 {{Plural|4|дом|дома|домов|lang=ru}}
* 5 {{Plural|5|дом|дома|домов|lang=ru}}
* 6 {{Plural|6|дом|дома|домов|lang=ru}}
* 7 {{Plural|7|дом|дома|домов|lang=ru}}
* 8 {{Plural|8|дом|дома|домов|lang=ru}}
* 9 {{Plural|9|дом|дома|домов|lang=ru}}
* 10 {{Plural|10|дом|дома|домов|lang=ru}}
* 11 {{Plural|11|дом|дома|домов|lang=ru}}
* 12 {{Plural|12|дом|дома|домов|lang=ru}}
* 13 {{Plural|13|дом|дома|домов|lang=ru}}
* 14 {{Plural|14|дом|дома|домов|lang=ru}}
* 15 {{Plural|15|дом|дома|домов|lang=ru}}
* 16 {{Plural|16|дом|дома|домов|lang=ru}}
* 17 {{Plural|17|дом|дома|домов|lang=ru}}
* 18 {{Plural|18|дом|дома|домов|lang=ru}}
* 19 {{Plural|19|дом|дома|домов|lang=ru}}
* 20 {{Plural|20|дом|дома|домов|lang=ru}}
* 21 {{Plural|21|дом|дома|домов|lang=ru}}
* 22 {{Plural|22|дом|дома|домов|lang=ru}}
* 23 {{Plural|23|дом|дома|домов|lang=ru}}
* 24 {{Plural|24|дом|дома|домов|lang=ru}}
* 25 {{Plural|25|дом|дома|домов|lang=ru}}
  • 0 домов
  • 1 дом
  • 2 дома
  • 3 дома
  • 4 дома
  • 5 домов
  • 6 домов
  • 7 домов
  • 8 домов
  • 9 домов
  • 10 домов
  • 11 домов
  • 12 домов
  • 13 домов
  • 14 домов
  • 15 домов
  • 16 домов
  • 17 домов
  • 18 домов
  • 19 домов
  • 20 домов
  • 21 дом
  • 22 дома
  • 23 дома
  • 24 дома
  • 25 домов
Russian language has complex ruleset:
  1. If the amount of items ends with 1, but is not ended with 11, then use the first form.
  2. If the amount of items ends with 2, 3, or 4, but is not ended with 12, 13, or 14, then use the second form.
  3. Otherwise, use the third form.
Text above can be found here (edit)