5 个版本 (破坏性更新)
0.6.0 | 2022 年 5 月 17 日 |
---|---|
0.5.0 | 2022 年 1 月 31 日 |
0.4.0 | 2021 年 11 月 2 日 |
0.3.0 | 2021 年 8 月 2 日 |
0.2.0 | 2021 年 4 月 29 日 |
#7 in #likely
3,167 每月下载量
用于 icu_provider_cldr
1MB
20K SLoC
icu_locale_canonicalizer
icu_locale_canonicalizer
是 ICU4X
组件之一。
此 API 提供了基于 CLDR
数据进行地区标识符规范化的功能。
它目前支持基于 UTS #35: Unicode LDML 3. LocaleId Canonicalization
规范化算法以及最小化和最大化可能子标签算法进行地区标识符规范化,这些算法在 UTS #35: Unicode LDML 3. Likely Subtags
中描述。
最大化方法可能会根据运行 UTS #35: Unicode LDML 3. Likely Subtags
中的 '添加可能子标签' 算法的结果,就地更新传入的地区。
此最小化方法返回一个新的Locale,它是运行UTS #35: Unicode LDML 3. 可能子标签
中“移除可能子标签”算法的结果。
示例
use icu_locale_canonicalizer::{CanonicalizationResult, LocaleCanonicalizer};
use icu_locid::Locale;
let provider = icu_testdata::get_provider();
let lc = LocaleCanonicalizer::new(&provider)
.expect("create failed");
let mut locale : Locale = "ja-Latn-fonipa-hepburn-heploc".parse()
.expect("parse failed");
assert_eq!(lc.canonicalize(&mut locale), CanonicalizationResult::Modified);
assert_eq!(locale.to_string(), "ja-Latn-alalc97-fonipa");
use icu_locale_canonicalizer::{CanonicalizationResult, LocaleCanonicalizer};
use icu_locid::Locale;
let provider = icu_testdata::get_provider();
let lc = LocaleCanonicalizer::new(&provider)
.expect("create failed");
let mut locale : Locale = "zh-CN".parse()
.expect("parse failed");
assert_eq!(lc.maximize(&mut locale), CanonicalizationResult::Modified);
assert_eq!(locale.to_string(), "zh-Hans-CN");
let mut locale : Locale = "zh-Hant-TW".parse()
.expect("parse failed");
assert_eq!(lc.maximize(&mut locale), CanonicalizationResult::Unmodified);
assert_eq!(locale.to_string(), "zh-Hant-TW");
use icu_locale_canonicalizer::{CanonicalizationResult, LocaleCanonicalizer};
use icu_locid::Locale;
let provider = icu_testdata::get_provider();
let lc = LocaleCanonicalizer::new(&provider)
.expect("create failed");
let mut locale : Locale = "zh-Hans-CN".parse()
.expect("parse failed");
assert_eq!(lc.minimize(&mut locale), CanonicalizationResult::Modified);
assert_eq!(locale.to_string(), "zh");
let mut locale : Locale = "zh".parse()
.expect("parse failed");
assert_eq!(lc.minimize(&mut locale), CanonicalizationResult::Unmodified);
assert_eq!(locale.to_string(), "zh");
更多信息
有关开发、作者身份、贡献等方面的更多信息,请访问ICU4X 主页
。
依赖项
~0.7–1.4MB
~29K SLoC