icu_plurals crates.io

icu_plurals is one of the ICU4X components.

This API provides functionality to determine the plural category appropriate for a given number in a given language.

For example in English language, when constructing a message such as { num } items, the user has to prepare two variants of the message:

The former variant is used when the placeholder variable has value 1, while the latter is used for all other values of the variable.

Unicode defines Language Plural Rules as a mechanism to codify those variants and provides data and algorithms to calculate appropriate Plural Category.

Examples

```rust use iculocidmacros::langid; use icu_plurals::{PluralRules, PluralRuleType, PluralCategory};

let lid = langid!("en");

let provider = icutestdata::getprovider();

let pr = PluralRules::try_new(lid, &provider, PluralRuleType::Cardinal) .expect("Failed to construct a PluralRules struct.");

asserteq!(pr.select(5usize), PluralCategory::Other); ```

Plural Rules

The crate provides the main struct PluralRules which handles selection of the correct Plural Category for a given language and Plural Type.

Plural Category

Every number in every language belongs to a certain Plural Category. For example, Polish language uses four:

Plural Rule Type

Plural rules depend on the use case. This crate supports two types of plural rules:

More Information

For more information on development, authorship, contributing etc. please visit ICU4X home page.