icu_plurals crates.io

Determine the plural category appropriate for a given number in a given language.

This module is published as its own crate (icu_plurals) and as part of the icu crate. See the latter for more details on the ICU4X project.

For example in English, 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 [PluralCategory].

Examples

```rust use icu::locid::locale; use icu::plurals::{PluralCategory, PluralRuleType, PluralRules};

let pr = PluralRules::try_new(&locale!("en").into(), PluralRuleType::Cardinal) .expect("locale should be present");

asserteq!(pr.categoryfor(5_usize), PluralCategory::Other); ```

Plural Rules

The crate provides the main struct [PluralRules] which handles selection of the correct [PluralCategory] for a given language and [PluralRuleType].

Plural Category

Every number in every language belongs to a certain [PluralCategory]. For example, the Polish language uses four:

PluralRuleType

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.