16 个版本 (8 个重大更新)
0.9.5 | 2024年5月11日 |
---|---|
0.9.4 | 2023年12月13日 |
0.9.1 | 2022年10月19日 |
0.9.0 | 2020年5月6日 |
0.4.1 | 2019年7月29日 |
#18 in 国际化(i18n)
188,181 每月下载量
在 306 个 crate 中使用 (87 直接使用)
605KB
12K SLoC
unic-langid
unic-langid
是一个用于管理 Unicode 语言标识符 的 API。
该 crate 提供了一种从字符串创建结构体、操作其字段、规范化和将其序列化为字符串的方法。
用法
use unic_langid::LanguageIdentifier;
let loc: LanguageIdentifier = "en-US".parse().expect("Parsing failed.");
assert_eq!(loc.language(), "en");
assert_eq!(loc.script(), None);
assert_eq!(loc.region(), Some("US"));
loc.set_script(Some("latn"));
assert_eq!(&loc.to_string(), "en-Latn-US");
use unic_langid::LanguageIdentifier;
let langid = LanguageIdentifier::from_parts(
Some("en"),
None,
None,
Some(&["nedis", "macos"])
).expect("Parsing failed.");
assert_eq!(&langid.to_string(), "en-macos-nedis")
宏
unic-langid
可以通过编译 features = ["macros"]
来使用宏,这启用了 langid!
宏
use unic_langid::langid;
// The `const` assignment will currently work only
// if the langid doesn't contain any variants.
const EN_US: LanguageIdentifier = langid!("en-US");
fn main() {
let de_at = langid!("de-AT");
assert_eq!(&de_at.to_string(), "de-AT")
assert_eq!(&EN_US.to_string(), "en-US")
}
该宏允许在编译时解析和验证字面量语言标识符。
状态
该 crate 在 well-formed
级别上基本完成。下一批工作将致力于 API 成熟度。
参与贡献
unic-langid
是开源的,使用 Apache License,版本 2.0。我们鼓励每个人都查看我们的代码,并将听取您的反馈。
依赖关系
~0.3–0.8MB
~19K SLoC