Expand description
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:
1 item0 items,2 items,5 items,0.5 itemsetc.
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
use icu::locale::locale;
use icu::plurals::{PluralCategory, PluralRules};
let pr = PluralRules::try_new(locale!("en").into(), Default::default())
.expect("locale should be present");
assert_eq!(pr.category_for(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:
Modules§
- provider
- 🚧 [Unstable] Data provider struct definitions for this ICU4X component.
Structs§
- Plural
CategoryULE ULEtype for PluralCategory- Plural
Elements - A bag of values for different plural cases.
- Plural
Operands - A full plural operands representation of a number. See CLDR Plural Rules for complete operands description.
- Plural
Rules - A struct which provides an ability to retrieve an appropriate
Plural Categoryfor a given number. - Plural
Rules Options - A list of options set by the developer to adjust the behavior of the PluralRules.
- Plural
Rules Preferences - The preferences for plural rules.
Enums§
- Plural
Category - The plural categories are used to format messages with numeric placeholders, expressed as decimal numbers.
- Plural
Rule Type - A type of a plural rule which can be associated with the
PluralRulesstruct.