15个版本 (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日

#406 in 国际化 (i18n)

Download history 74/week @ 2024-04-21 43/week @ 2024-04-28 132/week @ 2024-05-05 55/week @ 2024-05-12 31/week @ 2024-05-19 50/week @ 2024-05-26 42/week @ 2024-06-02 24/week @ 2024-06-09 30/week @ 2024-06-16 19/week @ 2024-06-23 6/week @ 2024-06-30 12/week @ 2024-07-07 19/week @ 2024-07-14 10/week @ 2024-07-21 51/week @ 2024-07-28 9/week @ 2024-08-04

每月91次下载
5 个Crates中(直接使用3个) 使用

MIT/Apache

650KB
12K SLoC

unic-locale 构建状态 覆盖率状态

unic-locale 是管理 Unicode Locale Identifiers 的API。

该库提供了一种从字符串创建结构体、操作其字段、规范化和序列化为字符串的方法。

用法

use unic_locale::{Locale, ExtensionType};

let loc: Locale = "en-US-u-hc-h12".parse()
    .expect("Parsing.failed");

assert_eq!(loc.language(), "en");
assert_eq!(loc.script(), None);
assert_eq!(loc.region(), Some("US"));

loc.extensions.unicode.set_keyword("ca", "buddhist")
    .expect("Setting extension failed.");

let val = loc.extensions.unicode.keyword("ca")
    .expect("Getting extension value failed.")
    .collect::<Vec<_>>();

assert_eq!(val, vec!["buddhist"]);

assert_eq!(&loc.to_string(), "en-US-u-ca-buddhist-hc-h12");

unic-locale 可以通过 features = ["macros"] 编译,这将启用 locale!

use unic_locale::locale;

let loc = locale!("en-US-u-hc-h24");

assert_eq!(&loc.to_string(), "en-US-u-hc-h24")

该宏允许在编译时解析和验证字面量区域标识符。

状态

该库提供基本块,但非常基础。

特别是,支持的扩展列表非常有限,操作它们的易用性应得到改善。

参与

unic-locale 是开源的,采用Apache License 2.0许可。我们鼓励大家查看我们的代码,并将倾听您的反馈。

依赖关系

~0.4–0.8MB
~20K SLoC