From 078aa4259a3916780b647077a5a3ae2eb544d94c Mon Sep 17 00:00:00 2001 From: Tait Hoyem Date: Sun, 16 Apr 2023 19:15:30 -0600 Subject: [PATCH] Add intl filter, update tempates to accept languages --- src/filters.rs | 7 +++++++ src/languages.rs | 3 ++- src/main.rs | 8 ++++++++ templates/division_list.html | 2 +- templates/partials/iihf_team_stats_table.html | 2 +- 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/filters.rs b/src/filters.rs index 3c15bfd..1012c51 100644 --- a/src/filters.rs +++ b/src/filters.rs @@ -1,5 +1,12 @@ +use rust_i18n::t; +use crate::languages::SupportedLanguage; + pub fn seconds_as_time(secs: &i32) -> ::askama::Result { let minutes = secs / 60; let seconds = secs % 60; Ok(format!("{}:{}", minutes, seconds)) } + +pub fn intl(key: &str, lang: &SupportedLanguage) -> ::askama::Result { + Ok(t!(key, locale=&format!("{}", lang))) +} diff --git a/src/languages.rs b/src/languages.rs index 74fa84e..0f0ca5c 100644 --- a/src/languages.rs +++ b/src/languages.rs @@ -4,13 +4,14 @@ use serde::{ }; use strum_macros::{ EnumIter, + AsRefStr, EnumVariantNames, EnumCount, }; use derive_more::Display; -#[derive(Serialize, Deserialize, Clone, Copy, Debug, Display, EnumIter, EnumCount, EnumVariantNames)] +#[derive(Serialize, Deserialize, Clone, Copy, Debug, Display, EnumIter, EnumCount, EnumVariantNames, AsRefStr)] pub enum SupportedLanguage { #[serde(rename="en-ca")] #[display(fmt="en-ca")] diff --git a/src/main.rs b/src/main.rs index 27249fd..a1d8af6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,6 +28,12 @@ use sqlx::{Pool, Postgres}; use std::net::SocketAddr; use std::sync::Arc; +macro_rules! intl { + ($key:expr) => { + t!($key, locale=path.as_ref()) + } +} + #[derive(Template)] #[template(path = "hello.html")] struct HelloTemplate<'a> { @@ -81,6 +87,7 @@ struct LeagueListTemplate { #[derive(Template)] #[template(path="partials/iihf_team_stats_table.html")] struct IihfTeamStatsTableTemplate { + lang: SupportedLanguage, iihf_stats: Vec, } @@ -278,6 +285,7 @@ async fn games_for_division_html( division, iihf_team_stats_table: IihfTeamStatsTableTemplate { iihf_stats, + lang, }, games, lang, diff --git a/templates/division_list.html b/templates/division_list.html index 227fe74..f84b44a 100644 --- a/templates/division_list.html +++ b/templates/division_list.html @@ -6,7 +6,7 @@

Divisions for the {{ league.name }}

{% endblock %} diff --git a/templates/partials/iihf_team_stats_table.html b/templates/partials/iihf_team_stats_table.html index b6e3414..236ffc9 100644 --- a/templates/partials/iihf_team_stats_table.html +++ b/templates/partials/iihf_team_stats_table.html @@ -1,7 +1,7 @@ - +
Team{{ "game_plural"|intl(lang)|capitalize }} Points RW RL