Home

Awesome

plurals-cldr - plurals support for JS

CI NPM version Coverage Status

Key benefits:

Note

If you wish more high abstraction level of i18n support, see babelfish.

Installation

$ npm install plurals-cldr

API

.(locale, number)

Returns form name for given number. Number can be passed as string to keep tailing decimal zeros. If locale not supported, returns null.

var plural = require('plurals-cldr');

// Get cardinal form name
//
// Params:
//
// - locale
// - number (Number|String)
//
plural('ru', 0)   // -> 'many'
plural('ru', 1)   // -> 'one'
plural('ru', 2)   // -> 'few'
plural('ru', 19)  // -> 'many'
plural('ru', 0.5) // -> 'other'

.forms(locale)

Returns array of available forms for specified locale. If locale not supported, returns null.

.indexOf(locale, number)

Returns index of form for specified locale. That's convenient, if you wish to implement lookup from compact ordered list, like babelfish does.

If locale not supported, function returns -1.

Order of forms is the same for all languages: zero, one, two, few, many, other. Remove unavailable forms, and you will get indexes of each.

.ordinal(), .ordinal.forms(), ordinal.indexOf()

The same as above, but for ordinal forms.

Update CLDR version (for developers)

npm run cldr-check
npm run cldr-update

References

  1. CLDR downloads
  2. Latest chart
  3. Syntax description