From 96483a8c4dd48365fa2b73441ddc4dbe6debc72c Mon Sep 17 00:00:00 2001 From: slsa275 Date: Mon, 16 Jun 2025 15:27:41 +0200 Subject: [PATCH] added translation to LoginDialog --- .../public/locales/de/translation.json | 8 ++- .../public/locales/en/translation.json | 8 ++- 01-frontend/src/helper/navbar/LoginDialog.tsx | 59 ++++++++++--------- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/01-frontend/public/locales/de/translation.json b/01-frontend/public/locales/de/translation.json index 54eaff4..7e8dcd0 100644 --- a/01-frontend/public/locales/de/translation.json +++ b/01-frontend/public/locales/de/translation.json @@ -112,5 +112,11 @@ "loggedInAs": "Angemeldet als", "confirmDeleteAccount": "Bist du sicher, dass du dein Konto löschen möchtest? Dies kann nicht rückgängig gemacht werden.", "enterPasswordToConfirmDeletion": "Bitte gib dein Passwort ein, um die Löschung zu bestätigen.", - "deleteAccountFailed": "Konto konnte nicht gelöscht werden. Bitte versuche es später erneut." + "deleteAccountFailed": "Konto konnte nicht gelöscht werden. Bitte versuche es später erneut.", + "loginFailed": "Login fehlgeschlagen", + "registerFailed": "Registrierung fehlgeschlagen", + "loading": "Lädt…", + "register": "Registrieren", + "backToLogin": "Zurück zum Login", + "noAccountRegister": "Noch kein Konto? Registrieren" } diff --git a/01-frontend/public/locales/en/translation.json b/01-frontend/public/locales/en/translation.json index aa10b5d..6b1cf02 100644 --- a/01-frontend/public/locales/en/translation.json +++ b/01-frontend/public/locales/en/translation.json @@ -112,5 +112,11 @@ "loggedInAs": "Logged in as", "confirmDeleteAccount": "Are you sure you want to delete your account? This action cannot be undone.", "enterPasswordToConfirmDeletion": "Please enter your password to confirm the deletion of your account.", - "deleteAccountFailed": "Failed to delete account. Please try again later." + "deleteAccountFailed": "Failed to delete account. Please try again later.", + "loginFailed": "Login failed", + "registerFailed": "Registration failed", + "loading": "Loading…", + "register": "Register", + "backToLogin": "Back to login", + "noAccountRegister": "Don’t have an account? Register" } \ No newline at end of file diff --git a/01-frontend/src/helper/navbar/LoginDialog.tsx b/01-frontend/src/helper/navbar/LoginDialog.tsx index fdf835c..0eaaa4c 100644 --- a/01-frontend/src/helper/navbar/LoginDialog.tsx +++ b/01-frontend/src/helper/navbar/LoginDialog.tsx @@ -5,6 +5,7 @@ import React, { useEffect, useState } from "react"; import AccountType, { User } from "../../components/Account"; import { useAccount } from "../AccountProvider"; import { fetchAccount, submitLogin, submitRegister } from "../query/Queries"; // Importiere die Funktion für die Registrierung +import { useTranslation } from "react-i18next"; type LoginDialogProps = { open: boolean; @@ -15,6 +16,8 @@ type LoginDialogProps = { }; const LoginDialog: React.FC = ({ open, onClose, loginData, setLoginData, onSubmit }) => { + + const { t } = useTranslation(); const { login } = useAccount(); const [showRegister, setShowRegister] = useState(false); const [registerData, setRegisterData] = useState({ email: "", password: "", id: 0, customer: { id: 0, name: "", surname: "", address: "", country: "", zip: "" }, langI18n: i18next.language, admin: false }); @@ -23,14 +26,14 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set useEffect(() => { if (open) { - const active = document.activeElement as HTMLElement | null; - if (active && typeof active.blur === "function") { - active.blur(); - } + const active = document.activeElement as HTMLElement | null; + if (active && typeof active.blur === "function") { + active.blur(); + } } - }, [open]); - - + }, [open]); + + // useQuery für Login const { refetch: refetchLogin, isLoading: isLoadingLogin, error: errorLogin } = useQuery({ @@ -64,7 +67,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set const response = await refetchLogin(); // Anfrage auslösen if (response.status === "success") { const session = response.data.uuid; // Session-Daten aus der Antwort extrahieren - const customerData = (await refetchAccount()).data; + const customerData = (await refetchAccount()).data; const user: User = { email: customerData.email, password: customerData.password, @@ -78,7 +81,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set } else { setShowErrorLogin(true); // Fehlermeldung anzeigen } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { setShowErrorLogin(true); // Fehlermeldung anzeigen } @@ -89,7 +92,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set setShowErrorRegister(false); // Fehlermeldung zurücksetzen await refetchRegister(); // Beispiel für den Refetch-Aufruf // Erfolgslogik hier - // eslint-disable-next-line @typescript-eslint/no-unused-vars + // eslint-disable-next-line @typescript-eslint/no-unused-vars } catch (error) { setShowErrorRegister(true); // Fehlermeldung anzeigen } @@ -97,13 +100,13 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set return ( - {showRegister ? "Registrieren" : "Login"} + {showRegister ? t("register") : t("login")} {showRegister ? ( <> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set <> = ({ open, onClose, loginData, set /> = ({ open, onClose, loginData, set )} - + {showRegister ? ( ) : ( )} {showErrorLogin && errorLogin && ( - Login fehlgeschlagen + {t("loginFailed")} )} {showErrorRegister && errorRegister !== null && ( - Registrierung fehlgeschlagen + {t("registerFailed")} )} {showRegister ? ( @@ -221,7 +224,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set color="primary" underline="hover" > - Zurück zum Login + {t("backToLogin")} ) : ( @@ -233,7 +236,7 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set color="primary" underline="hover" > - Noch kein Konto? Registrieren + {t("noAccountRegister")} )} @@ -241,4 +244,4 @@ const LoginDialog: React.FC = ({ open, onClose, loginData, set ); }; -export default LoginDialog; \ No newline at end of file +export default LoginDialog;