5 个版本
0.1.4 | 2023 年 2 月 28 日 |
---|---|
0.1.3 | 2023 年 1 月 4 日 |
0.1.2 | 2022 年 10 月 2 日 |
0.1.1 | 2022 年 9 月 10 日 |
0.1.0 | 2022 年 9 月 10 日 |
#209 in 国际化 (i18n)
36 每月下载量
在 2 个 Crates 中使用 (通过 ayaka-runtime)
19KB
285 行
language-matcher
在 icu4x
中没有语言匹配器。并且,如果您注意到了,CLDR JSON 数据中的语言匹配数据是有问题的。
这是一个基于 CLDR XML 数据的语言匹配器。距离值乘以 10 以显示范式区域之间的差异。
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
:
基于 CLDR 的语言匹配器。
由于我们喜欢 Sync,因此启用了 icu_provider
的 "sync" 功能。
依赖关系
~4.5MB
~80K SLoC