ga / Irish / Gaeilge

In summary, compared to CLDR:

  • you've added an "zero" form: no problem it can be specified after the default plural, using an explicit selector "zero=" ("0=" would be different: it would only override "other" for the exact value 0, while "zero=" would also override any other value with the same class as 0; but in the example above, this does not make a difference, except possibly with small non-zero decimal numbers lower than 1 like "0.1" or the numeric value "0.00" with explicit decimals: do they map also to the "zero" class or do they continue to be like "other" plurals?)
  • you're not clear about how you map 11, it seems to be also "other" in your new table (this would still match CDLR).
  • you've dropped form "two", merging it into form "few" for paucal

This means that for a few words we'll need an exception in:

{{PLURAL:$1|one|few|many|other}}, or
{{PLURAL:$1|one|few|many|other|zero=zero}}

by adding an explicit numeric case (because the labelled selector "two" would become unusable):

{{PLURAL:$1|one|2=two|few|many|other}}, or
{{PLURAL:$1|one|2=two|few|many|other|zero=zero}}.

This also means adding a ruleset to know how to interpret the second form (two or "few) and the followings (when they have no explicit selector)


The alternative is to request to MediaWiki to consider the selector "two" as optional (but it needs to be explicit with a label to override "few", and if it is not specified it will fallback to the value for the selector for "few" if present, other it will then fallback the value given for "other"); just like the selector "zero" would be optional (but it needs to have an explicit selector, otherwise it must fallback only to "other").

In that case the situation is simpler (ruleset no longer needed to handle the rare exceptions for "zero" and "two" as additional overrides):

{{PLURAL:$1|one|few|many|other|two=two}}, or
{{PLURAL:$1|one|few|many|other|two=two|zero=zero}}.

But then the basic rule order is just reduced to 4 orderable forms (not needing explicit selectors):

{{PLURAL:$1|one|few|many|other}}</nowiki>, so that

here we can still drop unnecessary items, while preserving the standard order:

{{PLURAL:$1|one|few|other}}, or
{{PLURAL:$1|one|other}}</nowiki> or
{{PLURAL:$1|other}}</nowiki> (for invariable cases), or

Or add specific overrides anywhere (except for "other") using explicit (numeric or symbolic) selectors:

{{PLURAL:$1|other|10=ten}}</nowiki>, or
{{PLURAL:$1|other|two=two}}</nowiki> (the cases "one", "few" and "many' will fallback to "other")

But note that alternate rulesets (based only on counting how many forms are specified to "guess" what this means) are deprecated in MediaWiki: this means that the solution using explicit selectors for overrides is preferable, and that a single ruleset with up to 4 forms by default ("one", "few", many", "other" in that order, only the last being preserved and implicit at end of list without needing any explicit "other" selector) is the best solution (and it can significantly help translators by reducing the number of cases to handle).

This means that MediaWiki must know how it fallbacks from a missing form: it is not necessarily a fallback to "other" but to another existing selector: the common selectors "zero", "one", two", "few", "many", "other" form a directed graph (a tree whose nodes are pointing down to the same root which is the "other" node), and that all other selectors (with exact numeric values) are overrides having precedence before matching the standard selectors with their predefined rules and their fallback tree.


Such solution would also be useful for Slavic languages. It could also handle other language-specific selectors such as changes of elision/mutation, numbers with variable grammatical cases, or different usages

You also spoke about counting persons as an exception to the bormal ruleset: how can we specify a "usage" or "context" parameter inside a "PLURAL:" parser call, do we need a "rules=" selector taking specific values whic are not a textual form but a selector for a different ruleset, such as "rules=people" dour counting persons, or "rules=math" for maths, or "rules=sci" in sciences like units of measurements, or "rules=honor" for honorfic variants, or "rules=incl/excl" for or not counting ourself inclusively, or "rules=frac" for fractions, or "rules=mil" in French for the alternate form for thousands used in ordinal years in calendar dates ?

Verdy p (talk)04:41, 18 March 2022