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