vi18n
v4.0.0
Published
Simple number, currency and date formatters based on the Internationalization API
Downloads
106
Maintainers
Readme
VI18N
Simple number, currency, type and date formatters based on the Internationalization API.
Requirements
- 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.
Installation
npm install --save vi18n
Examples
Creating a locale
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.
Number formatting
nl.formatNumber(12.50); // '12,50'
uk.formatNumber(12.50); // '12.50'
Currency formatting
nl.formatCurrency(12.50); // '€ 12,50'
uk.formatCurrency(12.50); // '£12.50'
Percent formatting
nl.formatPercent(0.75); // '75%'
uk.formatPercent(0.75); // '75%'
Date and time formatting
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'
Decimal and thousand separator
nl.getDecimalSeparator(); // ','
nl.getThousandSeparator(); // '.'
Months and days
// 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. ]
Static methods
// Check for native browser support or the presence of a polyfill.
VI18N.isSupported();
License
MIT © VI Company