What is the ICU Message Format?

ICU Message Format

ICU Message Format is a way of writing messages in software so that they’re smart enough to adapt. ICU comes from the International Components for Unicode project, by the way. The Message Format knows how to handle plurals, genders, and other quirks of language. Because translation is just the tip of the iceberg when it comes to true localization. Here are a few essential things you need to know about this format.

What the ICU Message Format does

In short, the ICU Message Format matters in localization because it takes care of all the messy details of language and text. We’re talking about things like:

  • Date and time formatting, showing “August 19, 2025” in the U.S., but “19 August 2025” in Europe.
  • Pluralization, as in making sure “1 file” and “2 files” (or the even more complex rules in other languages) sound right.
  • Number formatting, such as deciding whether to write “1,000.50” or “1.000,50.”
  • Currency formatting, like putting the dollar sign before the amount in the U.S. but after it in other regions.
  • Gender-specific forms, which means adjusting grammar depending on whether the subject is male, female, or neutral.
  • Sorting and searching text, as in ensuring that when you search or alphabetize in one language, the rules match that language’s expectations.
  • Custom variables, like plugging in names, numbers, or app-specific values while keeping the sentence natural.

What it looks like

The syntax of ICU messages is built around variables enclosed in curly braces { }, which represent dynamic content like numbers, names, or dates. These variables can be further formatted using specific rules inside the braces.

Another useful feature is the select format, which allows changing parts of the message based on a variable’s value, such as gender or status.

Why it matters for localization

The ICU Message Format avoids the need for translators to guess at the context of a string. The syntax makes it clear what variables are available and what conditions are being handled. The format allows for complex grammatical rules, like those for plurals, gender, or number ranges, to be handled correctly in every language, preventing awkward or incorrect phrases.

The beauty of this system is that it allows the translator to handle all the grammatical rules of their language without the developer having to write complex conditional logic in the code. The developer provides the template and the variables, and the translator provides the localized text for each case.

Wrapping up

ICU Message Format is supported by many popular development frameworks such as React Intl and Angular, and it’s used by major companies like Google and Microsoft. It allows developers and translators to work more efficiently together, and by using it, users will receive messages that respect their language’s unique grammar. If you’re looking to streamline and standardize localization, consider this format.

Ready to power up localization?

Subscribe to the POEditor platform today!
See pricing