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.
If you wish more high abstraction level of i18n support, see babelfish.
$ npm install plurals-cldr
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'
Returns array of available forms for specified locale. If locale not supported,
returns null
.
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.
The same as above, but for ordinal forms.
npm run cldr-check
npm run cldr-update