/vi18n

Simple number, currency and date formatters based on the Internationalization API.

Primary LanguageJavaScriptMIT LicenseMIT

VI18N

npm Build Status Coverage Status

Simple number, currency, type and date formatters based on the Internationalization API.

Requirements

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