Skip to content

Plurals suport for JS, autogenerated from CLDR.

License

Notifications You must be signed in to change notification settings

box-id/plurals-cldr

 
 

Repository files navigation

plurals-cldr - plurals support for JS

Build Status NPM version Coverage Status

Key benefits:

  • Competely automated code generation from CLDR on update.
  • Generated code automatically tested with CLDR fixtures.
  • Both cardinal and ordinal forms support.
  • Rules for all languages are stored in single file in very compact form.

Installation

node.js:

$ npm install plurals-cldr

browser:

$ bower install plurals-cldr

Rebuild

make clean
make generate

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('plural-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.

References

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

License

Mit.

About

Plurals suport for JS, autogenerated from CLDR.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 89.9%
  • Makefile 6.0%
  • Smarty 4.1%