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",