[][src]Crate loon

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"]).

Modules

err

Error management

helpers

Helpers to build Config or Opts items

prelude

For convenience

Structs

Config

Configuration to build a Dictionary

Dictionary

Container for translation messages

Opts

Options for the translate call

Functions

set_config

Sets the Config to use for the global translate call.

t

Shortcut for translate.

translate

Get the translated message, using the global configuration.