iculocalecanonicalizer crates.io

icu_locale_canonicalizer is one of the [ICU4X] components.

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].

The maximize method potentially updates a passed in locale in place depending up the results of running the 'Add Likely Subtags' algorithm from [UTS #35: Unicode LDML 3. Likely Subtags].

This minimize method returns a new Locale that is the result of running the 'Remove Likely Subtags' algorithm from [UTS #35: Unicode LDML 3. Likely Subtags].

Examples

```rust use iculocalecanonicalizer::{CanonicalizationResult, LocaleCanonicalizer}; use icu_locid::Locale;

let provider = icutestdata::getprovider(); let lc = LocaleCanonicalizer::new(&provider) .expect("create failed");

let mut locale : Locale = "zh-CN".parse() .expect("parse failed"); asserteq!(lc.maximize(&mut locale), CanonicalizationResult::Modified); asserteq!(locale.to_string(), "zh-Hans-CN");

let mut locale : Locale = "zh-Hant-TW".parse() .expect("parse failed"); asserteq!(lc.maximize(&mut locale), CanonicalizationResult::Unmodified); asserteq!(locale.to_string(), "zh-Hant-TW"); ```

```rust use iculocalecanonicalizer::{CanonicalizationResult, LocaleCanonicalizer}; use icu_locid::Locale;

let provider = icutestdata::getprovider(); let lc = LocaleCanonicalizer::new(&provider) .expect("create failed");

let mut locale : Locale = "zh-Hans-CN".parse() .expect("parse failed"); asserteq!(lc.minimize(&mut locale), CanonicalizationResult::Modified); asserteq!(locale.to_string(), "zh");

let mut locale : Locale = "zh".parse() .expect("parse failed"); asserteq!(lc.minimize(&mut locale), CanonicalizationResult::Unmodified); asserteq!(locale.to_string(), "zh"); ```

More Information

For more information on development, authorship, contributing etc. please visit ICU4X home page.