include substring handling
Signed-off-by: Ralf Zerres <ralf.zerres@networkx.de>
This commit is contained in:
@@ -33,6 +33,7 @@ locales = { version = "~0.1" }
|
|||||||
orbtk = { path = "../../orbtk" }
|
orbtk = { path = "../../orbtk" }
|
||||||
#regex = { version = "~1" }
|
#regex = { version = "~1" }
|
||||||
serde = { version = "~1.0", features = ["derive"] }
|
serde = { version = "~1.0", features = ["derive"] }
|
||||||
|
substring = { version = "~1" }
|
||||||
#tokio = { version = "~0.2", features = ["macros", "rt-threaded", "stream", "time"] }
|
#tokio = { version = "~0.2", features = ["macros", "rt-threaded", "stream", "time"] }
|
||||||
tracing = { version = "~0.1" }
|
tracing = { version = "~0.1" }
|
||||||
tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] }
|
tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] }
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ use cfg_if::cfg_if;
|
|||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::env;
|
use std::env;
|
||||||
//use std::process;
|
//use std::process;
|
||||||
|
use substring::Substring;
|
||||||
use tracing::{info, trace, Level};
|
use tracing::{info, trace, Level};
|
||||||
|
|
||||||
use orbtk::{
|
use orbtk::{
|
||||||
@@ -59,7 +60,9 @@ static ADVOTRACKER_DE_DE: &str = include_str!("../assets/advotracker/advotracker
|
|||||||
/// Get the active language environment.
|
/// Get the active language environment.
|
||||||
fn get_lang() -> String {
|
fn get_lang() -> String {
|
||||||
// get system environment
|
// 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
|
// testing environment: read from .env file
|
||||||
dotenv().ok();
|
dotenv().ok();
|
||||||
@@ -70,6 +73,8 @@ fn get_lang() -> String {
|
|||||||
Err(e) => { info!(target: "advotracker", "{}", e) }
|
Err(e) => { info!(target: "advotracker", "{}", e) }
|
||||||
}
|
}
|
||||||
trace!(target: "advotracker", lang = ?lang);
|
trace!(target: "advotracker", lang = ?lang);
|
||||||
|
|
||||||
|
// return the active language
|
||||||
lang
|
lang
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,7 +148,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
|
|
||||||
let mut state = t!("state.started", lang);
|
let mut state = t!("state.started", lang);
|
||||||
let mut res = t!("parse.environment", 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", environment = "system", lang = ?lang);
|
||||||
trace!(target: "advotracker", machine = ?&machine_kind);
|
trace!(target: "advotracker", machine = ?&machine_kind);
|
||||||
|
|
||||||
@@ -151,7 +156,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
res = t!("parse.environment", lang);
|
res = t!("parse.environment", lang);
|
||||||
trace!(target: "advotracker", environment = "envy", lang = ?lang);
|
trace!(target: "advotracker", environment = "envy", lang = ?lang);
|
||||||
state = t!("state.finished", lang);
|
state = t!("state.finished", lang);
|
||||||
trace!(target: "advotracker", message = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
|
|
||||||
// initialize viperus structure
|
// initialize viperus structure
|
||||||
let mut viperus = Viperus::new();
|
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.
|
// use this only if you want to run it as web application.
|
||||||
orbtk::initialize();
|
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()
|
let localization = RonLocalization::create()
|
||||||
.language("en_US")
|
.language(&lang)
|
||||||
.dictionary("de_DE", ADVOTRACKER_DE_DE)
|
.dictionary("de_DE", ADVOTRACKER_DE_DE)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -186,9 +195,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
Window::new()
|
Window::new()
|
||||||
.title("AdvoTracker - DirectCall")
|
.title("AdvoTracker - DirectCall")
|
||||||
.position((500.0, 100.0))
|
.position((500.0, 100.0))
|
||||||
.size(580.0, 320.0)
|
.size(800.0, 600.0)
|
||||||
//.min_width(460.0)
|
//.min_width(460.0)
|
||||||
//.min_height(180.0)
|
//.min_height(380.0)
|
||||||
.resizeable(true)
|
.resizeable(true)
|
||||||
.child(main_view::MainView::new().build(ctx))
|
.child(main_view::MainView::new().build(ctx))
|
||||||
.build(ctx)
|
.build(ctx)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
use dotenv::dotenv;
|
use dotenv::dotenv;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::env;
|
use std::env;
|
||||||
|
use substring::Substring;
|
||||||
use tracing::{info, trace};
|
use tracing::{info, trace};
|
||||||
|
|
||||||
use orbtk::prelude::*;
|
use orbtk::prelude::*;
|
||||||
@@ -28,10 +29,11 @@ struct Environment {
|
|||||||
|
|
||||||
/// Provides generic methods to handle states of datatypes.
|
/// Provides generic methods to handle states of datatypes.
|
||||||
pub trait GlobalState {
|
pub trait GlobalState {
|
||||||
/// Get the active language environment.
|
|
||||||
fn get_lang() -> String {
|
fn get_lang() -> String {
|
||||||
// get system environment
|
// 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
|
// testing environment: read from .env file
|
||||||
dotenv().ok();
|
dotenv().ok();
|
||||||
@@ -42,6 +44,8 @@ pub trait GlobalState {
|
|||||||
Err(e) => { info!(target: "advotracker", "{}", e) }
|
Err(e) => { info!(target: "advotracker", "{}", e) }
|
||||||
}
|
}
|
||||||
trace!(target: "advotracker", lang = ?lang);
|
trace!(target: "advotracker", lang = ?lang);
|
||||||
|
|
||||||
|
// return the active language
|
||||||
lang
|
lang
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user