Crates.io | r_i18n |
lib.rs | r_i18n |
version | 1.0.1 |
source | src |
created_at | 2018-09-01 18:42:00.494387 |
updated_at | 2018-09-03 18:14:05.641782 |
description | An i18n implementation in Rust. |
homepage | https://github.com/WebD-EG/i18n |
repository | https://github.com/WebD-EG/i18n |
max_upload_size | |
id | 82538 |
size | 13,396 |
An i18n implementation in Rust.
API documentation https://crates.io/crates/r_i18n
Table of Contents generated with DocToc
To install the library, you have to put this line into your Cargo.toml file.
[dependencies]
r_i18n = "version number"
First, create the configuration with the directory that contains your translations files and your languages.
extern crate r_i18n;
use r_i18n::I18nConfig;
fn main() {
let config: I18nConfig = I18nConfig{locales: &["en", "fr", "es"], directory: "translations"};
}
Then, load the configuration:
extern crate r_i18n;
use r_i18n::r_i18n;
fn main() {
let config: I18nConfig = I18nConfig{locales: &["en", "fr", "es"], directory: "translations"};
let r_i18n: I18n = I18n::configure(&config);
}
With this example, you will need to have a en.json, fr.json and es.json inside the /translations directory. Each file should looks like that:
{
"keyword": "value"
}
I have a en.json file that looks like that:
{
"introduction": "Hello, my name is WebD"
}
Then, in my main.rs
extern crate r_i18n;
use r_i18n::I18n;
fn main() {
let config: I18nConfig = I18nConfig{locales: &["en", "fr", "es"], directory: "translations"};
let r_i18n: I18n = I18n::configure(&config);
// by default, the current language will be the first element of the locales array. You can do like that if you want to set the language:
// r_i18n.set_current_lang("fr");
r_i18n.t("introduction"); // output should be "Hello, my name is WebD"
}
Now, I have a fr.json file that looks like that:
{
"introduction": "Bonjour, mon nom est WebD"
}
If I set the current language to french:
extern crate r_i18n;
use r_i18n::I18n;
fn main() {
let config: I18nConfig = I18nConfig{locales: &["en", "fr", "es"], directory: "translations"};
let r_i18n: I18n = I18n::configure(&config);
r_i18n.set_current_lang("fr");
r_i18n.t("introduction"); // output should be "Bonjour, mon nom est WebD
}