loon

Crates.ioloon
lib.rsloon
version0.3.4
sourcesrc
created_at2020-03-02 18:16:00.686651
updated_at2020-03-05 17:25:55.616823
descriptionSimple localization
homepage
repositoryhttps://github.com/kardeiz/loon
max_upload_size
id214550
size26,358
Jacob Brown (kardeiz)

documentation

README

loon

Docs Crates.io

lo[calizati]on

A very simple localization/internationalization library, inspired by ruby-i18n.

Provides a (configurable) global translate/t function for convenience, as well as a Dictionary builder/container if you prefer to manage state directly.

Usage:

Global function:

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!")
    );
}

Using a 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!")
    );
}

Features

Translation files can be:

  • JSON
  • YAML (enabled by default, disable with default-features = false), or
  • TOML (enable with features = ["toml"]).

Current version: 0.3.4

License: MIT

Commit count: 12

cargo fmt