S1.04.3Binary plural-model insufficiencydesign

Singular/plural pairs cannot cover most languages

Aliases: binary plural model · singular-plural branching · plural-rule coverage

What it is

Binary plural-model insufficiency occurs when a product stores only “quantity equals one” and “all other quantities.” That model cannot express locales requiring zero, two, few, or many, and it imposes an English-like distinction on languages that organize number differently. The defect is not a shortage of translated nouns; the message data model has collapsed global grammar into two states.

Why it happens

A binary implementation commonly evaluates count == 1 in business logic and chooses between two strings. The localization layer then receives neither the source number's plural-rule operands nor permission to add locale categories; decimals, ordinals, and modular conditions have already been discarded. Adding fields in a translation tool cannot recover information when runtime passes only a Boolean. Locale-based selection instead preserves the value until message formatting and applies the target rule there.

Where it stops holding

“Cannot cover most languages” is an architectural warning, not a claim that every language has three or more forms. Some locales produce only other, while others use exactly one/other. For an only-other locale, two branches are redundant and become correct only when mapped to the same output; the Boolean interface still misrepresents the grammar and cannot expand. This does not imply that the current English UI is already wrong.

Applying it

  • Pass the quantity and formatting options to the localized-message layer and let current-locale CLDR rules choose the category; do not precompute a singular/plural Boolean.
  • Store category-keyed resources with required other; let tooling request categories generated by each locale instead of exposing six global empty slots.
  • Model cardinal, ordinal, and exact-value product exceptions separately rather than overloading a “singular” field.
  • Enumerate every category the runtime can generate per supported locale and render representative values; require no missing or unreachable branches and correct output at integer and decimal boundaries.

Related

  • Same group: S1.04.1 Languages have different numbers of plural forms · S1.04.2 Noun gender affects articles and adjectives · S1.04.4 Zero quantities need a distinct expression
  • Adjacent: S1.06 Word-order problems in concatenated strings · S4.04 Continuous localization integration
  • Search terms: plural message selection · binary plural model · CLDR categories

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/S1.04.3