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 日

国际化 (i18n) 中排名 #25

Download history 54170/week @ 2024-05-03 49635/week @ 2024-05-10 57955/week @ 2024-05-17 58386/week @ 2024-05-24 61868/week @ 2024-05-31 407655/week @ 2024-06-07 531588/week @ 2024-06-14 276554/week @ 2024-06-21 170018/week @ 2024-06-28 116753/week @ 2024-07-05 126027/week @ 2024-07-12 117493/week @ 2024-07-19 115718/week @ 2024-07-26 109376/week @ 2024-08-02 103142/week @ 2024-08-09 97164/week @ 2024-08-16

每月下载量 448,111
用于 267 个 Crates (直接使用 43)

Unicode-3.0

570KB
10K SLoC

icu_locid crates.io

解析、操作和序列化 Unicode 语言和区域标识符。

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

该模块提供了将字符串解析为按照 UTS #35: Unicode LDML 3. Unicode Language and Locale Identifiers 定义的规范良好的语言或区域标识符的算法。

Locale 是用于存储有关语言、脚本、地区、变体和扩展信息的最常见结构。在几乎所有情况下,此结构应作为所有区域管理操作的基单位使用。

LanguageIdentifierLocale 的严格子集,在 Unicode 扩展 不相关的一小范围内情况中可能很有用。

如果有疑问,请使用 Locale

示例

use icu::locid::Locale;
use icu::locid::{
    locale,
    subtags::{language, region},
};

let mut loc: Locale = locale!("en-US");

assert_eq!(loc.id.language, language!("en"));
assert_eq!(loc.id.script, None);
assert_eq!(loc.id.region, Some(region!("US")));
assert_eq!(loc.id.variants.len(), 0);

loc.id.region = Some(region!("GB"));

assert_eq!(loc, locale!("en-GB"));

有关更多详细信息,请参阅 LocaleLanguageIdentifier

更多信息

有关开发、作者、贡献等信息,请访问 ICU4X 主页

依赖项

~260–790KB
~18K SLoC