Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
June 8, 2023 17:18
June 8, 2023 16:19
June 8, 2023 16:19

The experience and subtlety of your program's text can be important. Messageformat is a mechanism for handling both pluralization and gender in your applications. It can also lead to much better translations, as it's designed to support all the languages included in the Unicode CLDR.

This monorepo provides packages supporting JS implementations of both ICU MessageFormat (MF1) and Unicode MessageFormat 2 (MF2):

ICU MessageFormat 1 Packages

Unicode MessageFormat 2 Packages

Getting Started (MF1)

Depending on your situation, consult one or more of the following guides:

Alternatively, take a look at our examples or dig into the API documentation if you're looking to do something more involved.

Our Format Guide will help with the ICU MessageFormat Syntax, and the Usage Guide provides some further options for integrating messageformat to be a part of your workflow around UI texts and translations.

Messageformat is an OpenJS Foundation project, and we follow its Code of Conduct.

OpenJS Foundation