(null);
+ const { t } = useTranslate();
const handleSubmit = async (event: React.FormEvent) => {
event.preventDefault();
@@ -43,7 +45,7 @@ export function LoginForm({ from }: LoginFormProps) {
htmlFor="email"
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
>
- Email
+ {t("login.form.email")}
- Mot de passe
+ {t("login.form.password")}
- Se souvenir de moi
+ {t("login.form.remember")}
{error &&
}
@@ -93,7 +95,7 @@ export function LoginForm({ from }: LoginFormProps) {
disabled={isLoading}
className="inline-flex w-full items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
>
- {isLoading ? "Connexion en cours..." : "Se connecter"}
+ {isLoading ? t("login.form.submit.loading.login") : t("login.form.submit.login")}
);
diff --git a/src/components/auth/RegisterForm.tsx b/src/components/auth/RegisterForm.tsx
index fa0f0bd..6947eb4 100644
--- a/src/components/auth/RegisterForm.tsx
+++ b/src/components/auth/RegisterForm.tsx
@@ -7,6 +7,7 @@ import { AuthError } from "@/types/auth";
import { ERROR_CODES } from "@/constants/errorCodes";
import { ERROR_MESSAGES } from "@/constants/errorMessages";
import { ErrorMessage } from "@/components/ui/ErrorMessage";
+import { useTranslate } from "@/hooks/useTranslate";
interface RegisterFormProps {
from?: string;
@@ -16,6 +17,7 @@ export function RegisterForm({ from }: RegisterFormProps) {
const router = useRouter();
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState
(null);
+ const { t } = useTranslate();
const handleSubmit = async (event: React.FormEvent) => {
event.preventDefault();
@@ -54,7 +56,7 @@ export function RegisterForm({ from }: RegisterFormProps) {
htmlFor="email"
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
>
- Email
+ {t("login.form.email")}
- Mot de passe
+ {t("login.form.password")}
- Confirmer le mot de passe
+ {t("login.form.confirmPassword")}
- {isLoading ? "Inscription en cours..." : "S'inscrire"}
+ {isLoading ? t("login.form.submit.loading.register") : t("login.form.submit.register")}
);
diff --git a/src/i18n/messages/en/common.json b/src/i18n/messages/en/common.json
index c849e8b..44c5b78 100644
--- a/src/i18n/messages/en/common.json
+++ b/src/i18n/messages/en/common.json
@@ -11,7 +11,21 @@
"login": "Sign in",
"register": "Sign up"
},
- "description": "Enjoy your favorite comics, manga and graphic novels with a modern and smooth reading experience."
+ "description": "Enjoy your favorite comics, manga and graphic novels with a modern and smooth reading experience.",
+ "form": {
+ "email": "Email",
+ "password": "Password",
+ "confirmPassword": "Confirm password",
+ "remember": "Remember me",
+ "submit": {
+ "login": "Sign in",
+ "register": "Sign up",
+ "loading": {
+ "login": "Signing in...",
+ "register": "Signing up..."
+ }
+ }
+ }
},
"home": {
"hero": {
diff --git a/src/i18n/messages/fr/common.json b/src/i18n/messages/fr/common.json
index 6febf4b..75867a8 100644
--- a/src/i18n/messages/fr/common.json
+++ b/src/i18n/messages/fr/common.json
@@ -11,7 +11,21 @@
"login": "Connexion",
"register": "Inscription"
},
- "description": "Profitez de vos BD, mangas et comics préférés avec une expérience de lecture moderne et fluide."
+ "description": "Profitez de vos BD, mangas et comics préférés avec une expérience de lecture moderne et fluide.",
+ "form": {
+ "email": "Email",
+ "password": "Mot de passe",
+ "confirmPassword": "Confirmer le mot de passe",
+ "remember": "Se souvenir de moi",
+ "submit": {
+ "login": "Se connecter",
+ "register": "S'inscrire",
+ "loading": {
+ "login": "Connexion en cours...",
+ "register": "Inscription en cours..."
+ }
+ }
+ }
},
"home": {
"hero": {