vi18n

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

Usage no npm install needed!

<script type="module">
  import vi18n from 'https://cdn.skypack.dev/vi18n';
</script>

README

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