i18n on the web - deepseek translations

This commit is contained in:
Priec
2026-08-14 20:35:37 +02:00
parent 2dc0d94ba0
commit 8f1bfdbe0c
91 changed files with 4679 additions and 1237 deletions

View File

@@ -5,7 +5,11 @@ use axum::{
response::{Html, IntoResponse, Redirect, Response},
};
use crate::{AppState, services::authenticated_request};
use crate::{
AppState,
{i18n::Locale, tr},
services::authenticated_request,
};
use super::{
loader::{LoadError, load_page},
@@ -17,7 +21,7 @@ pub(crate) async fn new_logic_page(
State(state): State<AppState>,
headers: HeaderMap,
) -> Response {
render_loaded(load_page(state, &headers, CreateLogicForm::default(), None).await)
render_loaded(&headers, load_page(state, &headers, CreateLogicForm::default(), None).await)
}
pub(crate) async fn create_logic(
@@ -27,7 +31,7 @@ pub(crate) async fn create_logic(
) -> Response {
let submitted = form.clone();
if let Err(error) = load_page(state.clone(), &headers, submitted.clone(), None).await {
return render_loaded(Err(error));
return render_loaded(&headers, Err(error));
}
if headers
.get("sec-fetch-site")
@@ -35,10 +39,13 @@ pub(crate) async fn create_logic(
{
return (StatusCode::FORBIDDEN, "Cross-site form submission rejected").into_response();
}
let request = match form.into_request() {
let request = match form.into_request(Locale::from_headers(&headers)) {
Ok(request) => request,
Err(message) => {
return render_loaded(load_page(state, &headers, submitted, Some(message)).await);
return render_loaded(
&headers,
load_page(state, &headers, submitted, Some(message)).await,
);
}
};
let mut scripts = state.scripts;
@@ -48,30 +55,43 @@ pub(crate) async fn create_logic(
};
match scripts.post_table_script(request).await {
Ok(response) => Html(ui::render_success(
Locale::from_headers(&headers),
response.get_ref().id,
&response.get_ref().warnings,
))
.into_response(),
Err(error) => (
StatusCode::UNPROCESSABLE_ENTITY,
Html(ui::render_submission_error(error.message())),
Html(ui::render_submission_error(
Locale::from_headers(&headers),
error.message(),
)),
)
.into_response(),
}
}
fn render_loaded(result: Result<super::state::AddLogicPageState, LoadError>) -> Response {
fn render_loaded(headers: &HeaderMap, result: Result<super::state::AddLogicPageState, LoadError>) -> Response {
match result {
Ok(page) => Html(ui::render_page(&page)).into_response(),
Err(LoadError::Unauthenticated) => Redirect::to("/login").into_response(),
Err(LoadError::Forbidden) => (
StatusCode::FORBIDDEN,
Html(ui::render_submission_error("Script-management permission is required.")),
Html(ui::render_submission_error(
Locale::from_headers(&headers),
&tr!(
Locale::from_headers(&headers),
"add-logic-err-permission"
),
)),
)
.into_response(),
Err(LoadError::Backend(message)) => (
StatusCode::BAD_GATEWAY,
Html(ui::render_submission_error(&message)),
Html(ui::render_submission_error(
Locale::from_headers(&headers),
&message,
)),
)
.into_response(),
}