5 releases
0.1.4 | Feb 28, 2023 |
---|---|
0.1.3 | Jan 4, 2023 |
0.1.2 | Oct 2, 2022 |
0.1.1 | Sep 10, 2022 |
0.1.0 | Sep 10, 2022 |
#219 in Internationalization (i18n)
6,727 downloads per month
Used in 2 crates
(via ayaka-runtime)
19KB
285 lines
language-matcher
There's no language matcher in icu4x
.
And, if you have noticed, the language matching data in the JSON data of CLDR is broken.
This is a language matcher based on the XML data of CLDR. The distance value is multiplied by 10 to show the difference by paradigm locales.
use icu_locid::langid;
use language_matcher::LanguageMatcher;
let matcher = LanguageMatcher::new();
assert_eq!(matcher.distance(langid!("zh-CN"), langid!("zh-Hans")), 0);
assert_eq!(matcher.distance(langid!("zh-HK"), langid!("zh-MO")), 40);
let accepts = [
langid!("en"),
langid!("ja"),
langid!("zh-Hans"),
langid!("zh-Hant"),
];
assert_eq!(
matcher.matches(langid!("zh-CN"), &accepts),
Some((&langid!("zh-Hans"), 0))
);
lib.rs
:
A language matcher with CLDR.
The "sync" feature of icu_provider
is enabled because we like Sync.
Dependencies
~4.5MB
~78K SLoC