set language on all routes
This commit is contained in:
19
src/game.rs
19
src/game.rs
@@ -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 {
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user