This package provides simple implementations for Messageformat using the Intl API.
Features
How to use
These formatters are best used in conjunction with @onigoetz/messageformat
.
However they are fully Typed and you may use them for any other use.
import { parse, createRenderer } from "@onigoetz/messageformat";
import {
dateFormatter,
numberFormatter,
pluralGenerator,
} from "@onigoetz/intl-formatters";
const parsed = parse("{test, plural, offset:3 one{one test} other {# test} }");
const render = createRenderer(
"en",
(locale: T, type) => pluralGenerator(locale, { type }),
(locale: T, options, value: number) =>
numberFormatter(locale, options)(value),
(locale: T, options, value: Date) => dateFormatter(locale, options)(value)
);
render(parsed, { test: 4 });
render(parsed, { test: 7 });
For NodeJS
If you do some generation using NodeJS and wish to use locales other than en
.
I strongly suggest you look at the following page : https://nodejs.org/api/intl.html#intl_providing_icu_data_at_runtime
This page explains how to make sure you have all the right locales loaded to make your formatting.
Browser Support
Intl Base API (Dates, Numbers, Currencies, Relative Time)

Plurals
