From d97a6f6760c4c899059b28ecf748227203d53b93 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Sun, 3 Aug 2025 10:16:24 +0200 Subject: [PATCH] add language functionality --- src/main.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 27bea15..7828561 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ use crate::model::client::Client; use axum::{http::HeaderMap, routing::get, Router}; use axum_extra::extract::{cookie::Cookie, CookieJar}; use sqlx::{pool::PoolOptions, sqlite::SqliteConnectOptions, SqlitePool}; -use std::{str::FromStr, sync::Arc}; +use std::{fmt::Display, str::FromStr, sync::Arc}; use tower_http::services::ServeDir; use uuid::Uuid; @@ -28,7 +28,23 @@ enum Language { English, } +impl Display for Language { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Language::German => f.write_str("de"), + Language::English => f.write_str("en"), + } + } +} + impl Language { + pub(crate) fn next_language(&self) -> Self { + match self { + Language::German => Language::English, + Language::English => Language::German, + } + } + fn to_locale(&self) -> &'static str { match self { Language::German => "de",