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

MIT 协议

26KB
571

loon

Docs Crates.io

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