Simple number, currency, type and date formatters based on the Internationalization API.
- Intl object (ECMAScript Internationalization API) see the support.
- You can include the polyfill when supporting older environments.
- Or use the Financial Times polyfill service at cdn.polyfill.io.
npm install --save vi18n
import VI18N from 'vi18n';
// const locale = new VI18N(culture, options);
const nl = new VI18N(); // Default locale is 'nl-NL' (Dutch)
const uk = new VI18N('en-GB');
// overriding default settings with options
const ch = new VI18N('de-ch', { number: { maximumFractionDigits: 2 } });
const nl = new VI18N('nl-NL', { percent: { minimumFractionDigits: 2 } });
const jp = new VI18N('ja', { currency: { currency: 'JPY' } });
const uk = new VI18N('en-GB', {
time: { timeZone: 'etc/UTC' },
currency: { currency: 'GBP' },
});
const us = new VI18N('en-US', {
time: { hour: 'numeric' },
currency: { currency: 'USD' } ,
});
The options
parameter can contain the following configuration objects:
number
percent
currency
time
See MDN: NumberFormat for possible values for the number
, percent
and currency
configuration objects.
See MDN: DateTimeFormat for possible values for the time
configuration object.
nl.formatNumber(12.50); // '12,50'
uk.formatNumber(12.50); // '12.50'
nl.formatCurrency(12.50); // '€ 12,50'
uk.formatCurrency(12.50); // '£12.50'
nl.formatPercent(0.75); // '75%'
uk.formatPercent(0.75); // '75%'
var date = new Date();
nl.formatDate(date); // '2-9-2015'
uk.formatDate(date); // '02/09/2015'
nl.formatTime(date); // '12:38:09'
uk.formatTime(date); // '12:38:09'
nl.getDecimalSeparator(); // ','
nl.getThousandSeparator(); // '.'
// Possible representations are 'narrow', 'short' or 'long' (default).
uk.getMonths() // [ 'January', 'February', 'March', etc. ]
uk.getMonths('short') // [ 'Jan', 'Feb', 'Mar', etc. ]
uk.getMonths('narrow') // [ 'J', 'F', 'M', etc. ]
uk.getDays() // [ 'Sunday', 'Monday', 'Tuesday', etc. ]
uk.getDays('short') // [ 'Sun', 'Mon', 'Tue', etc. ]
uk.getDays('narrow') // [ 'S', 'M', 'T', etc. ]
// Check for native browser support or the presence of a polyfill.
VI18N.isSupported();
MIT © VI Company