5 个版本

0.1.4 2022 年 5 月 15 日
0.1.3 2022 年 5 月 14 日
0.1.2 2022 年 5 月 14 日
0.1.1 2022 年 5 月 14 日
0.1.0 2022 年 5 月 10 日

#256国际化(i18n)

LGPL-3.0-or-later

465KB
8K SLoC

M4 6K SLoC // 0.3% comments C 1.5K SLoC // 0.2% comments Automake 702 SLoC // 0.2% comments Rust 210 SLoC

包含(自动工具混淆代码,400KB) c/configure,(模糊 autoconf 代码,1KB) c/configure.ac

rust-locale

CircleCI

rust_locale 提供了基于 POSIX.1 中指定的区域设置的多种功能。

主要目的是提供一些在 char 方法中不存在或与 char 方法行为不同的功能。

依赖项

[dependencies]
rust-locale = "0.1"

示例

use rust_locale::CType;

// space is different from whitespace
assert!('\x0c'.is_space());  # form feed
std::env::set_var("LC_ALL", "en_US");
assert!('\u{2003}'.is_space());  # Em Space
assert!(!'\u{1361}'.is_space());  # Ethiopic Wordspace
std::env::set_var("LC_ALL", "am_ET");
assert!('\u{1361}'.is_space());

// different behavior from char::to_uppercase
std::env::set_var("LC_ALL", "en_US");
assert_eq!(CType::to_uppercase(&'i'), 'I');
std::env::set_var("LC_ALL", "tr_TR");
assert_eq!(CType::to_uppercase(&'i'), '\u{0130}');  # Latin Capital Letter I with Dot Above

这些测试可能会根据区域定义失败。

未来计划

欢迎提出功能请求。

许可证

rust-locale 使用 Gnulib 来实现平台兼容性。Gnulib 是 LGPL,而 rust-locale 静态链接到它,因此 rust-locale 也是 LGPL。

如果您使用 rust-locale 并且不想适应 LGPL,您可能需要动态链接到 rust-locale
如果这很困难,我会考虑动态链接 rust-locale 到 Gnulib,并将 rust-locale 的许可证更改为 MIT。

依赖项