set language on all routes

This commit is contained in:
2025-08-09 17:12:00 +02:00
parent bb27092e3b
commit 76e1c767ae
2 changed files with 16 additions and 6 deletions

View File

@@ -1,14 +1,14 @@
use crate::{Backend, NameUpdateError, language::language, page::Page};
use crate::{language::language, page::Page, Backend, NameUpdateError};
use axum::{
Form, Router,
extract::{Path, State},
http::HeaderMap,
response::{IntoResponse, Redirect, Response},
routing::{get, post},
Form, Router,
};
use axum_extra::extract::CookieJar;
use axum_messages::Messages;
use maud::{Markup, PreEscaped, html};
use maud::{html, Markup, PreEscaped};
use serde::Deserialize;
use std::sync::Arc;
use uuid::Uuid;
@@ -19,6 +19,9 @@ async fn index(
messages: Messages,
headers: HeaderMap,
) -> Response {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let (cookies, req) = backend.client_full(cookies, &headers).await;
let client = req.client;
@@ -26,7 +29,8 @@ async fn index(
let amount_total_cameras = backend.amount_total_cameras().await;
let highscore = backend.highscore().await;
let mut page = Page::new(req.lang);
let lang = language(&cookies, &headers);
let mut page = Page::new(lang);
page.messages(messages);
let markup = page.content(html! {
hgroup {
@@ -97,6 +101,9 @@ async fn game(
messages: Messages,
Path(uuid): Path<String>,
) -> Result<Redirect, Response> {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let (cookies, client) = backend.client(cookies).await;
let Ok(uuid) = Uuid::parse_str(&uuid) else {
@@ -137,8 +144,12 @@ async fn set_name(
State(backend): State<Arc<Backend>>,
cookies: CookieJar,
messages: Messages,
headers: HeaderMap,
Form(form): Form<NameForm>,
) -> Response {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let (cookies, client) = backend.client(cookies).await;
match backend.set_client_name(&client, &form.name).await {

View File

@@ -1,11 +1,10 @@
use crate::{language::language, page::Page};
use axum::http::HeaderMap;
use axum_extra::extract::CookieJar;
use maud::{Markup, PreEscaped, html};
use maud::{html, Markup, PreEscaped};
pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup {
let lang = language(&cookies, &headers);
rust_i18n::set_locale(lang.to_locale());
let page = Page::new(lang);