include substring handling

Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
2021-02-28 19:14:48 +01:00
parent 26cf43bfae
commit 157da4228a
3 changed files with 23 additions and 9 deletions

View File

@@ -33,6 +33,7 @@ locales = { version = "~0.1" }
orbtk = { path = "../../orbtk" }
#regex = { version = "~1" }
serde = { version = "~1.0", features = ["derive"] }
substring = { version = "~1" }
#tokio = { version = "~0.2", features = ["macros", "rt-threaded", "stream", "time"] }
tracing = { version = "~0.1" }
tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] }

View File

@@ -18,6 +18,7 @@ use cfg_if::cfg_if;
use serde::Deserialize;
use std::env;
//use std::process;
use substring::Substring;
use tracing::{info, trace, Level};
use orbtk::{
@@ -59,7 +60,9 @@ static ADVOTRACKER_DE_DE: &str = include_str!("../assets/advotracker/advotracker
/// Get the active language environment.
fn get_lang() -> String {
// get system environment
let mut lang = env::var("LANG").unwrap_or("C".to_string());
let mut lang = env::var("LANG").unwrap_or_else(|_| "C".to_string());
lang = lang.substring(0,5).to_string(); // "de_DE.UTF-8" -> "de_DE"
info!("GUI-Language: preset to {:?}", lang);
// testing environment: read from .env file
dotenv().ok();
@@ -70,6 +73,8 @@ fn get_lang() -> String {
Err(e) => { info!(target: "advotracker", "{}", e) }
}
trace!(target: "advotracker", lang = ?lang);
// return the active language
lang
}
@@ -143,7 +148,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut state = t!("state.started", lang);
let mut res = t!("parse.environment", lang);
trace!(target: "advotracker", message = ?res, state = ?state);
trace!(target: "advotracker", process = ?res, state = ?state);
trace!(target: "advotracker", environment = "system", lang = ?lang);
trace!(target: "advotracker", machine = ?&machine_kind);
@@ -151,7 +156,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
res = t!("parse.environment", lang);
trace!(target: "advotracker", environment = "envy", lang = ?lang);
state = t!("state.finished", lang);
trace!(target: "advotracker", message = ?res, state = ?state);
trace!(target: "advotracker", process = ?res, state = ?state);
// initialize viperus structure
let mut viperus = Viperus::new();
@@ -173,9 +178,13 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
// use this only if you want to run it as web application.
orbtk::initialize();
// if no dictionary is set for the default language e.g. english the content of the text property will drawn.
// Preset localization and language from given environment.
// if no dictionary is set for the chosen default language
// the content of the text property will be drawn.
//let language = lang.substring(0,5); // "de_DE.UTF-8" -> "de_DE"
//info!("GUI-Language: preset to {:?}", language);
let localization = RonLocalization::create()
.language("en_US")
.language(&lang)
.dictionary("de_DE", ADVOTRACKER_DE_DE)
.build();
@@ -186,9 +195,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Window::new()
.title("AdvoTracker - DirectCall")
.position((500.0, 100.0))
.size(580.0, 320.0)
.size(800.0, 600.0)
//.min_width(460.0)
//.min_height(180.0)
//.min_height(380.0)
.resizeable(true)
.child(main_view::MainView::new().build(ctx))
.build(ctx)

View File

@@ -8,6 +8,7 @@
use dotenv::dotenv;
use serde::Deserialize;
use std::env;
use substring::Substring;
use tracing::{info, trace};
use orbtk::prelude::*;
@@ -28,10 +29,11 @@ struct Environment {
/// Provides generic methods to handle states of datatypes.
pub trait GlobalState {
/// Get the active language environment.
fn get_lang() -> String {
// get system environment
let mut lang = env::var("LANG").unwrap_or("C".to_string());
let mut lang = env::var("LANG").unwrap_or_else(|_| "C".to_string());
lang = lang.substring(0,5).to_string(); // "de_DE.UTF-8" -> "de_DE"
info!("GUI-Language: preset to {:?}", lang);
// testing environment: read from .env file
dotenv().ok();
@@ -42,6 +44,8 @@ pub trait GlobalState {
Err(e) => { info!(target: "advotracker", "{}", e) }
}
trace!(target: "advotracker", lang = ?lang);
// return the active language
lang
}