explaingit

formatjs/formatjs

14,708TypeScript

TLDR

FormatJS is a family of JavaScript libraries that help web apps display dates, numbers, currencies, plurals, and translated text correctly in many different languages.

Mindmap

A visual breakdown will appear here once this repo is fully enriched.

In plain English

FormatJS is a family of JavaScript libraries that help web apps display dates, numbers, currencies, plurals, and translated text correctly in many different languages. This repository is a monorepo, which means it holds the source code for all the FormatJS packages in one place rather than splitting them across separate repos. The best known package in the set is react-intl, which is widely used by React applications to handle internationalisation. The README itself is mostly a long table that catalogues every package the project publishes to npm, with links to each one's version badge, changelog, and licence. The list groups roughly into three kinds of tools. There are runtime polyfills under the @formatjs prefix, which fill in pieces of the official ECMAScript Intl standard that some browsers or older JavaScript engines lack. These include intl-datetimeformat for dates and times, intl-numberformat for numbers, intl-pluralrules for plural forms, intl-relativetimeformat for phrases like "3 days ago", intl-listformat for joining lists, intl-displaynames for language and region names, intl-locale, intl-segmenter, intl-getcanonicallocales, and intl-localematcher. The second group is the core message-formatting machinery. The @formatjs/icu-messageformat-parser package reads ICU MessageFormat, an industry standard syntax that lets translators write strings with placeholders, gender choices, and plural variants. The intl-messageformat package then runs those parsed messages. On top of that sits @formatjs/intl as a framework-agnostic API, and react-intl as the React-specific layer. The third group covers tooling for development. The @formatjs/cli and @formatjs/cli-lib let you extract translatable strings out of source code into files for translators. There are also a Babel plugin, a TypeScript transformer, and an ESLint plugin so that build pipelines and editors can lint and pre-process FormatJS calls automatically. The README points readers at a Slack workspace for support and at a CONTRIBUTING file for development instructions, and notes that the project has CI tests and runs browser-matrix testing through Sauce Labs.

Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.