9 个稳定版本

1.5.0 2024 年 5 月 28 日
1.4.0 2023 年 11 月 16 日
1.3.2 2023 年 10 月 3 日
1.3.0 2023 年 9 月 23 日
1.0.0-beta12022 年 8 月 5 日

国际化 (i18n) 中排名 #50

Download history 20141/week @ 2024-04-26 20411/week @ 2024-05-03 20458/week @ 2024-05-10 21149/week @ 2024-05-17 25558/week @ 2024-05-24 23909/week @ 2024-05-31 380687/week @ 2024-06-07 506313/week @ 2024-06-14 243587/week @ 2024-06-21 144647/week @ 2024-06-28 92522/week @ 2024-07-05 89150/week @ 2024-07-12 88677/week @ 2024-07-19 86144/week @ 2024-07-26 97478/week @ 2024-08-02 83321/week @ 2024-08-09

每月下载量 371,469
用于 91 个 Crates(直接使用 23 个)

Unicode-3.0

1MB
21K SLoC

icu_locid_transform crates.io

基于 CLDR 数据的区域标识符规范化。

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

它目前支持基于 UTS #35: Unicode LDML 3. LocaleId Canonicalization 的规范化算法,以及 UTS #35: Unicode LDML 3. Likely Subtags 中描述的最小化和最大化子标签算法。

“最大化方法”可能会根据运行“添加可能子标签”算法的结果,就地更新传入的区域设置,该算法来自UTS #35: Unicode LDML 3. 可能子标签

“最小化方法”返回一个新的区域设置,该设置是运行UTS #35: Unicode LDML 3. 可能子标签中“移除可能子标签”算法的结果。

示例

use icu::locid::Locale;
use icu::locid_transform::{LocaleCanonicalizer, TransformResult};

let lc = LocaleCanonicalizer::new();

let mut locale: Locale = "ja-Latn-fonipa-hepburn-heploc"
    .parse()
    .expect("parse failed");
assert_eq!(lc.canonicalize(&mut locale), TransformResult::Modified);
assert_eq!(locale, "ja-Latn-alalc97-fonipa".parse::<Locale>().unwrap());
use icu::locid::locale;
use icu::locid_transform::{LocaleExpander, TransformResult};

let lc = LocaleExpander::new();

let mut locale = locale!("zh-CN");
assert_eq!(lc.maximize(&mut locale), TransformResult::Modified);
assert_eq!(locale, locale!("zh-Hans-CN"));

let mut locale = locale!("zh-Hant-TW");
assert_eq!(lc.maximize(&mut locale), TransformResult::Unmodified);
assert_eq!(locale, locale!("zh-Hant-TW"));
use icu::locid::locale;
use icu::locid_transform::{LocaleExpander, TransformResult};
use writeable::assert_writeable_eq;

let lc = LocaleExpander::new();

let mut locale = locale!("zh-Hans-CN");
assert_eq!(lc.minimize(&mut locale), TransformResult::Modified);
assert_eq!(locale, locale!("zh"));

let mut locale = locale!("zh");
assert_eq!(lc.minimize(&mut locale), TransformResult::Unmodified);
assert_eq!(locale, locale!("zh"));

更多信息

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

依赖项

~0.7–1.3MB
~27K SLoC