ICU plural validator

Paste an ICU MessageFormat message, pick a language — get syntax errors, missing plural categories and a preview of every branch.

ICU message:
Language:
Insert an example
Need to translate this file, not just convert it?
Upload your localization file to Localization.One — AI translates your strings into 100+ languages in minutes. Free plan included.
Translate my file with AI

What is ICU MessageFormat?

ICU MessageFormat is the industry standard for handling plurals, genders and placeholders in UI strings. It is supported by react-intl (FormatJS), i18next, Angular, Fluent, Java, PHP and most localization libraries.

A plural message chooses one of several branches depending on a number. The branch keywords (zero, one, two, few, many, other) are defined per language by the Unicode CLDR — English needs only 'one' and 'other', Russian needs 'one', 'few' and 'many', Arabic uses all six.

{count, plural,
    one {You have # unread message}
    other {You have # unread messages}
}

The most common mistakes are a missing 'other' branch (a hard error in ICU), plural categories the target language never uses, and unbalanced braces. This validator catches all of them and shows which categories each language actually requires.