Awesome
plurals-cldr - plurals support for JS
Key benefits:
- Competely automated code generation from CLDR on update.
- Generated code automatically tested with CLDR fixtures.
- Both
cardinal
andordinal
forms supported. - Rules for all languages are stored in single file in very compact form.
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