cldr-plurals-runtime-js

1.2.0 • Public • Published

cldr-plurals-runtime-js

Build Status

Javascript runtime methods for CLDR plural rules (see camertron/cldr-plurals).

Installation

gem install cldr-plurals-runtime-js

Usage

const runtime = require('cldr-plurals-runtime');

Functionality

The CLDR data set contains plural information for numerous languages in an expression-based format defined by Unicode's TR35. The document describes how to determine the various parts of a number and how to use those parts to determine the plural rule. The parts as they appear in TR35 are:

Symbol Value
n absolute value of the source number (integer and decimals).
i integer digits of n.
v number of visible fraction digits in n, with trailing zeros.
w number of visible fraction digits in n, without trailing zeros.
f visible fractional digits in n, with trailing zeros.
t visible fractional digits in n, without trailing zeros.

cldr-plurals-runtime-js is an implementation of these calculations in Javascript. Rules can be compiled into Javascript using the cldr-plurals rubygem:

require 'cldr-plurals'
 
rules = CldrPlurals::Compiler::RuleList.new(:ru).tap do |rule_list|
  rule_list.add_rule(:one, 'v = 0 and i % 10 = 1 and i % 100 != 11')
  rule_list.add_rule(:few, 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14')
  rule_list.add_rule(:many, 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14')
end
 
js_code = rules.to_code(:javascript)

Once you've produced the Javascript code for the rule list, you can execute them like so:

const runtime = require('cldr-plurals-runtime');
const rule = function() { ... }  // code generated above by cldr-plurals
console.log(rule('3', runtime))  // => "few"

Requirements

No external requirements.

Running Tests

jasmine-node spec/ should do the trick.

Authors

Package Sidebar

Install

npm i cldr-plurals-runtime-js

Weekly Downloads

1

Version

1.2.0

License

MIT

Unpacked Size

15.3 kB

Total Files

10

Last publish

Collaborators

  • camertron