8个版本
0.3.4 | 2020年3月5日 |
---|---|
0.3.3 | 2020年3月5日 |
0.2.1 | 2020年3月3日 |
0.1.0 | 2020年3月2日 |
#208 在 国际化(i18n)
每月 下载 23 次
26KB
571 行
loon
lo[calizati]on
一个非常简单的本地化/国际化库,灵感来自 ruby-i18n
。
提供(可配置的)全局 translate
/t
函数以方便使用,以及如果你更喜欢直接管理状态的 Dictionary
构造函数/容器。
用法
全局函数
fn main() {
use loon::prelude::*;
loon::set_config(PathPattern("examples/locales/*.yml")).unwrap();
assert_eq!(
t("custom.greeting", Var("name", "Jacob")).unwrap(),
String::from("Hello, Jacob!!!")
);
assert_eq!(
t("greeting", Opts::default().locale("de")).unwrap(),
String::from("Hallo Welt!")
);
}
使用 Dictionary
fn main() {
use loon::prelude::*;
let dict = Config::default()
.with_path_pattern("examples/locales/*.yml")
.finish()
.unwrap();
assert_eq!(
dict.translate("custom.greeting", Var("name", "Jacob")).unwrap(),
String::from("Hello, Jacob!!!")
);
assert_eq!(
dict.translate("greeting", Opts::default().locale("de")).unwrap(),
String::from("Hallo Welt!")
);
}
特性
翻译文件可以是
- JSON
- YAML(默认启用,使用
default-features = false
禁用),或 - TOML(使用
features = ["toml"]
启用)。
当前版本:0.3.4
许可证:MIT
依赖
~0.8–1.9MB
~41K SLoC