Internationalize your web apps on the client & server.


Annie took 1,000 photos on April 10, 2020.

Get Started

FormatJS is a set of JavaScript libraries.

FormatJS is a modular collection of JavaScript libraries for internationalization that are focused on formatting numbers, dates, and strings for displaying to people. It includes a set of core libraries that build on the JavaScript Intl built-ins and industry-wide i18n standards, plus a set of integrations for common template and component libraries.

FormatJS Integrations
FormatJS Core Libs

Integrates with other libraries.

For most web projects, internationalization happens in the template or view layer, so we've built integrations with common template and component libraries: React, Ember, Handlebars, and Dust.

Learn more about Integrations

Formats numbers, dates, and string messages.

Display numbers with separators.

1000.95 1,000.95 English 1 000,95 French

Display dates and times correctly.

new Date() 4/10/2020 English (US) 10/4/2020 French

Display dates relative to "now".

"2020-3-11" last month 1 month ago 31 days ago

Pluralize labels in strings.

numComments no comments 1 comment 1,000 comments

Runs in the browser and Node.js.

FormatJS has been tested in all the major browsers on both desktop and mobile devices. Careful attention has been applied to make sure the libraries work in ES3 browsers all the way down to IE 6.

For many web apps rendering happens on the server, so we made sure FormatJS works perfectly in Node.js. This allows developers to use FormatJS on both the server and client-side of their apps.

Built on standards.

FormatJS is aligned with: ECMAScript Internationalization API (ECMA-402), Unicode CLDR, and ICU Message syntax. By building on these industry standards, FormatJS leverages APIs in modern browsers and works with the message syntax used by professional translators.

Get Started