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)

Download history 37862/week @ 2024-05-03 38286/week @ 2024-05-10 35697/week @ 2024-05-17 38616/week @ 2024-05-24 35648/week @ 2024-05-31 37568/week @ 2024-06-07 34871/week @ 2024-06-14 34591/week @ 2024-06-21 34191/week @ 2024-06-28 36383/week @ 2024-07-05 40949/week @ 2024-07-12 40069/week @ 2024-07-19 40819/week @ 2024-07-26 44490/week @ 2024-08-02 46964/week @ 2024-08-09 49250/week @ 2024-08-16

188,181 每月下载量
306 个 crate 中使用 (87 直接使用)

MIT/Apache

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