Handle plural forms with Intl.PluralRules or ICU MessageFormat

SkillDev tools

Pluralization is a skill for AI agents that reviews code for correct handling of plural forms across locales. It flags string concatenation involving counts, singular/plural branching, and i18n library configurations that would produce grammatically wrong output in languages with more plural categories than English.

Available today. Use it from your connected AI after setup.

Have an agent that can load skills, and a codebase that renders counts or uses an i18n library.

Then ask your AI: use the Handle plural forms with Intl.PluralRules or ICU MessageFormat skill

What your AI can do with it

  • Find places where a count value is concatenated with a string
  • Flag ternaries that pick only between singular and plural
  • Check i18next and react-intl messages for missing plural keys
  • Review translation files and components that render counts
  • Suggest Intl.PluralRules or ICU MessageFormat replacements
  • Explain CLDR plural categories and why languages differ

Getting started

  1. Have an agent that can load skills, and a codebase that renders counts or uses an i18n library.
  2. Add the pluralization skill to the agent's available skills.
  3. Ask the agent to review string concatenation involving counts, translation key lookups, or i18n configurations.
  4. Apply the suggested fixes using Intl.PluralRules or ICU MessageFormat plural syntax.
  5. Consult references/rule.md in the skill for implementation details and framework-specific guidance.

What this skill tells your AI

The instructions your AI receives, as published by thedaviddias/front-end-checklist in skills/pluralization/SKILL.md and read by ahel’s review.

Pluralization rules vary dramatically across languages — what works as a simple singular/plural branch in English produces grammatically wrong output in Arabic, Russian, Polish, and dozens of other languages. Shipping incorrect plurals signals low translation quality and breaks trust with native speakers in target markets.

Quick Reference

  • English has 2 plural forms but Arabic has 6 and Russian has 3
  • Never concatenate a count with a string like '"You have " + count + " items"'
  • Use Intl.PluralRules to select the right message key per locale
  • ICU MessageFormat in react-intl or i18next handles plural selection automatically

Check

Find all places in this codebase where a count value is concatenated with a string or where only singular/plural branching is used, without Intl.PluralRules or ICU plural syntax.

Fix

Replace count string concatenation and binary singular/plural logic with Intl.PluralRules-based key selection or ICU MessageFormat plural syntax so that all CLDR plural categories are covered for every target locale.

Explain

Explain why languages have different numbers of plural forms, what CLDR plural categories are, and how Intl.PluralRules and ICU MessageFormat solve pluralization correctly across locales.

Code Review

Review translation files and components that render counts. Flag any strings that concatenate a number with text, any ternary that picks only between "singular" and "plural", and any i18next or react-intl message that is missing plural keys required by the target locale.


For full implementation details, code examples, and framework-specific guidance, see references/rule.md.

Rule page: https://frontendchecklist.io/en/rules/i18n/pluralization

Signals

GitHub stars
74k
Forks
7k
Last commit
Aug 2026

Questions

Why is simple singular/plural branching not enough?
Languages differ in how many plural forms they have: English has 2, Arabic has 6, and Russian has 3. A binary branch produces grammatically wrong output in many target locales.
What should replace count string concatenation?
Use Intl.PluralRules to select the right message key per locale, or ICU MessageFormat plural syntax in libraries like react-intl or i18next, which handles plural selection automatically.
How long does it take to use?
The estimated time listed in the skill metadata is 25 minutes.
Advanced
Item type
skill
Key
pluralization
Source
github.com/thedaviddias/front-end-checklist