plural-forms: plural forms lost in translation
error — fails the build
A pipe-separated plural string ("1 item|{{count}} items") came back from translation with fewer forms than the source. The plural rules of the target language stop working — usually every quantity renders the same form.
What triggers it
// en.json
{ "items": "1 item|{{count}} items" }
// ru.json
{ "items": "{{count}} элементов" } // collapsed to one formFixed
// ru.json
{ "items": "1 элемент|{{count}} элемента|{{count}} элементов" }Why it matters
Plural collapse is easy to miss because the string still reads fluently — for one of the quantities. Languages like Russian, Arabic and Polish need more forms than English, not fewer.
How to fix it
Restore every form the target language needs, separated by |. Retranslation via the engine preserves plural structure.
How to silence it
--ignore-keys 'path.to.key' if the collapse is deliberate for that key.
Check for this in CI
npx @shipi18n/cli check ./locales -s en
# SARIF for inline PR annotations:
npx @shipi18n/cli check ./locales -s en -r sarif -o shipi18n.sarifThe structural checks need no API key. Findings of this rule link back to this page from the SARIF helpUri.
Related rules
- placeholder-missing — placeholder dropped from a translation
- untranslated — untranslated strings identical to the source