Intl RelativeTimeFormat
A spec-compliant polyfill/ponyfill for Intl.RelativeTimeFormat fully tested by the official ECMAScript Conformance test suite
Installation
npm install @f-fjs/intl-relativetimeformat
Requirements
This package requires the following capabilities:
NOTE: formatToParts
only works on Node 10+ due to lack of Intl.NumberFormat.prototype.formatToParts
natively
Usage
Ponyfill
To use the ponyfill, import it along with its data:
import IntlRelativeTimeFormat from '@f-fjs/intl-relativetimeformat';
// locale-data for zh
IntlRelativeTimeFormat.__addLocaleData(
require('@f-fjs/intl-relativetimeformat/dist/locale-data/zh.json')
);
// locale-data for zh
IntlRelativeTimeFormat.__addLocaleData(
require('@f-fjs/intl-relativetimeformat/dist/locale-data/en.json')
);
new IntlRelativeTimeFormat('zh-CN').format(-1, 'second'); // '1秒钟前'
Polyfill
To use the polyfill, just import it to make sure that a fully functional Intl.RelativeTimeFormat is available in your environment:
import '@f-fjs/intl-relativetimeformat/polyfill';
import '@f-fjs/intl-relativetimeformat/dist/locale-data/de'; // Add locale data for de
If you want to polyfill all locales (e.g for Node):
import '@f-fjs/intl-relativetimeformat/polyfill-locales';
Tests
This library is fully test262-compliant.