# loon [![Docs](https://docs.rs/loon/badge.svg)](https://docs.rs/loon/) [![Crates.io](https://img.shields.io/crates/v/loon.svg)](https://crates.io/crates/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: ```rust 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`: ```rust 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