Module icu::locale_canonicalizer
source · [−]Expand description
This API provides functionality to canonicalize locale identifiers based
upon CLDR
data.
It currently supports the minimize and maximize likely subtags algorithms
as described in UTS #35: Unicode LDML 3. Likely Subtags
.
Examples
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");
Modules
The collection of code for locale canonicalization.
Data provider struct definitions for this ICU4X component.
Structs
LocaleCanonicalizer implementation.
Enums
Used to track the result of a canonicalization operation that potentially modifies its argument in place.