14 个版本 (7 个稳定版)

1.5.0 2024年5月28日
1.4.0 2023年11月16日
1.3.2 2023年10月3日
1.2.0 2023年4月14日
0.1.0 2020年10月15日

401国际化(i18n) 中排名

Download history 4266/week @ 2024-05-02 4100/week @ 2024-05-09 4094/week @ 2024-05-16 4247/week @ 2024-05-23 4544/week @ 2024-05-30 4358/week @ 2024-06-06 3466/week @ 2024-06-13 3813/week @ 2024-06-20 4375/week @ 2024-06-27 3885/week @ 2024-07-04 5389/week @ 2024-07-11 6880/week @ 2024-07-18 7093/week @ 2024-07-25 14675/week @ 2024-08-01 27337/week @ 2024-08-08 24999/week @ 2024-08-15

每月75,173次下载
43 个crate中(15 个直接) 使用

Unicode-3.0

1MB
20K SLoC

icu_plurals crates.io

确定给定语言中给定数字的适当复数类别。

此模块作为其自身的crate(icu_plurals)和作为icu crate的一部分发布。有关ICU4X项目的更多详细信息,请参阅后者。

例如,在英语中,当构造如{ num } items的消息时,用户必须准备消息的两个变体

  • 1项目
  • 0 items2 items5 items0.5 items等。

前一种变体用于占位符变量的值为1时,而后一种变体用于变量的所有其他值。

Unicode 定义了 语言复数规则 作为对这些变体的编码机制,并提供了计算适当的 PluralCategory 的数据和算法。

示例

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");

assert_eq!(pr.category_for(5_usize), PluralCategory::Other);

复数规则

该库提供主要结构体 PluralRules,用于处理给定语言和 PluralRuleType 的正确 PluralCategory 选择。

复数类别

每种语言中的每一个数字都属于一个特定的 PluralCategory。例如,波兰语使用四种

复数规则类型

复数规则取决于使用场景。此库支持两种类型的复数规则

  • Cardinal: 3 doors1 month10 dollars
  • Ordinal: 1st place10th day11th floor

更多信息

有关开发、作者身份、贡献等方面的更多信息,请访问 ICU4X 主页

依赖项

~1.1–1.7MB
~34K SLoC