From 0a9fdbab2a71ddf1dfe5471f6dc75c0b08fe6622 Mon Sep 17 00:00:00 2001 From: Ralf Zerres Date: Thu, 31 Oct 2019 00:58:00 +0100 Subject: [PATCH] locales: introduce Internationalization / Locales * using crate locales Signed-off-by: Ralf Zerres --- Cargo.toml | 3 +++ locales/main.json | 15 +++++++++++++++ src/main.rs | 13 +++++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 locales/main.json diff --git a/Cargo.toml b/Cargo.toml index eb4ca36..51433db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,3 +23,6 @@ features = [ "postgres", "sqlite" ] [dependencies.dotenv] version = "0.10.0" + +[dependencies.locales] +version = "0.1.0" \ No newline at end of file diff --git a/locales/main.json b/locales/main.json new file mode 100644 index 0000000..b2d9b9c --- /dev/null +++ b/locales/main.json @@ -0,0 +1,15 @@ +{ + "err.user.not_found": { + "fr": "Utilisateur introuvable: $email, $id", + "de": "Anwender nicht gefunden: $email, $id", + "en": "User not found: $email, $id" + }, + "main.start": { + "de": "Programmlogik starten", + "en": "Starting program logic" + }, + "parse.arguments": { + "de": "Programmargumente prüfen", + "en": "Parsing arguments" + } +} diff --git a/src/main.rs b/src/main.rs index 594b6c9..082b975 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,12 +1,21 @@ #[macro_use] extern crate clap; +extern crate locales; + use clap::App; +use locales::t; fn main() { - println!("Parsing arguments ..."); + // set locale + let lang= "de"; + // handle commandline arguments with clap (relative path to cli.yml) + let res = t!("parse.arguments", lang); + println!("{}", &res); + let yaml = load_yaml!("cli.yml"); let _matches = App::from_yaml(yaml).get_matches(); - println!("Starting program logic ..."); + let res = t!("main.start", lang); + println!("{}", &res); }