Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cldr-plurals-runtime-js

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cldr-plurals-runtime-js

Javascript runtime for CLDR plural rules generated by camertron/cldr-plurals.

  • 1.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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:

SymbolValue
nabsolute value of the source number (integer and decimals).
iinteger digits of n.
vnumber of visible fraction digits in n, with trailing zeros.
wnumber of visible fraction digits in n, without trailing zeros.
fvisible fractional digits in n, with trailing zeros.
tvisible 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

Keywords

FAQs

Package last updated on 24 Nov 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc