translations #1
This commit is contained in:
@@ -22,12 +22,13 @@ pub struct CVBackendConfig {
|
||||
cv_backend_path: String,
|
||||
}
|
||||
|
||||
|
||||
pub fn rocket_builder() -> Rocket<Build> {
|
||||
let rocket = rocket::build();
|
||||
//let figment = rocket.figment();
|
||||
// extract the entire config any `Deserialize` value
|
||||
//let config: PresentationConfig = figment.extract().expect("config");
|
||||
|
||||
|
||||
rocket.attach(
|
||||
Template::try_custom(|engines| {
|
||||
engines.tera.register_filter("static", static_filter);
|
||||
|
||||
@@ -11,7 +11,7 @@ struct RootPage {
|
||||
static_host: String,
|
||||
cv: CV,
|
||||
download_cv_url: String,
|
||||
lang: I18n,
|
||||
lang: String,
|
||||
}
|
||||
|
||||
#[get("/")]
|
||||
@@ -21,6 +21,7 @@ pub async fn index(presentation_config: &State<PresentationConfig>, cv_config: &
|
||||
static_host: presentation_config.static_route.clone(),
|
||||
cv,
|
||||
download_cv_url: "FIXME!".to_string(),
|
||||
lang: "en".to_string(),
|
||||
},
|
||||
Err(e) => {
|
||||
error!("Can't fetch CV data from backend {:?}", e);
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
use std::collections::HashMap;
|
||||
use std::{collections::HashMap, str::FromStr};
|
||||
|
||||
use chrono::{Utc, Datelike};
|
||||
use log::error;
|
||||
use rocket_dyn_templates::tera::{Value, Error};
|
||||
use ovlach_data::cv::chrono::from_string;
|
||||
use sha256::{digest, try_digest};
|
||||
use fluent_resmgr::resource_manager::ResourceManager;
|
||||
use tokio::sync::broadcast::error;
|
||||
use unic_langid::LanguageIdentifier;
|
||||
|
||||
// TODO: tenhle modul je trochu prasacky..
|
||||
|
||||
@@ -20,7 +23,33 @@ pub fn translate_filter(
|
||||
value: &Value,
|
||||
args: &HashMap<String, rocket_dyn_templates::tera::Value>
|
||||
) -> Result<Value, Error> {
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value.as_str().unwrap()))); // TODO: fix-me here!
|
||||
let mgr = ResourceManager::new("./resources/{locale}/{res_id}".into());
|
||||
let locales = vec![LanguageIdentifier::from_str("en-US").unwrap()];
|
||||
let val_id = vec![value.as_str().unwrap().to_string()];
|
||||
let val = value.as_str().unwrap().to_string();
|
||||
|
||||
let bundle = mgr.get_bundle(locales, vec!["ovlach_frontend".to_string()]);
|
||||
|
||||
let mut errors = vec![];
|
||||
|
||||
match bundle.get_message(&val) {
|
||||
Some(msg) => {
|
||||
match msg.value() {
|
||||
Some(pattern) => {
|
||||
let output = bundle.format_pattern(pattern, None, &mut errors);
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(output.clone().to_string()))
|
||||
},
|
||||
None => {
|
||||
error!("Can't translate message: {}", val);
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", val)));
|
||||
},
|
||||
}
|
||||
},
|
||||
None => {
|
||||
error!("Can't translate message: {}", val);
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", val)));
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
pub fn lang_entity(
|
||||
|
||||
Reference in New Issue
Block a user