From 5d4a8a071b7141a741f7bee57651b71466f09a7c Mon Sep 17 00:00:00 2001 From: Ondrej Vlach Date: Mon, 27 Nov 2023 09:52:31 +0100 Subject: [PATCH] loc --- src/tools/lang.rs | 3 +++ src/tools/mod.rs | 1 + src/tools/tera.rs | 13 ++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 src/tools/lang.rs diff --git a/src/tools/lang.rs b/src/tools/lang.rs new file mode 100644 index 0000000..3801c86 --- /dev/null +++ b/src/tools/lang.rs @@ -0,0 +1,3 @@ +pub fn get_lang_name_from_code(lang: &str) -> &str { + lang.split("-").collect::>()[0] +} diff --git a/src/tools/mod.rs b/src/tools/mod.rs index 345def0..8a91cea 100644 --- a/src/tools/mod.rs +++ b/src/tools/mod.rs @@ -1,2 +1,3 @@ pub mod tera; pub mod rocket; +pub mod lang; \ No newline at end of file diff --git a/src/tools/tera.rs b/src/tools/tera.rs index 470b84b..be77c0c 100644 --- a/src/tools/tera.rs +++ b/src/tools/tera.rs @@ -1,13 +1,15 @@ use std::{collections::HashMap, str::FromStr}; use chrono::{Utc, Datelike, NaiveDate}; -use log::error; +use log::{error, debug}; use rocket_dyn_templates::tera::{Value, Error}; use ovlach_data::cv::chrono::from_string; use sha256::digest; use fluent_resmgr::resource_manager::ResourceManager; use unic_langid::LanguageIdentifier; +use crate::tools::lang::get_lang_name_from_code; + // TODO: tenhle modul je trochu prasacky.. pub fn static_filter( @@ -54,10 +56,15 @@ pub fn translate_filter( pub fn lang_entity( value: &Value, - _: &HashMap + attrs: &HashMap ) -> Result { // TODO: rewrite me! - return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value["en"].as_str().unwrap()))); // TODO: fix-me here! + let chosen_lang = attrs["lang"].as_str().unwrap(); + let output_value = match value.as_object().unwrap().get(get_lang_name_from_code(chosen_lang)) { + Some(value) => value.as_str().unwrap(), + None => value["en"].as_str().unwrap(), // TODO: default + }; + return Ok(rocket_dyn_templates::tera::Value::String(output_value.to_string())); // TODO: fix-me here! } pub fn gravatar_link(