From f05399aeba3de2e291a2e8b32a8e9e1c5b4c48c7 Mon Sep 17 00:00:00 2001 From: sepehr Date: Sun, 14 Jun 2026 18:13:41 +0200 Subject: [PATCH] fix(i18n): return French error messages in auth, register, download endpoints --- models/subscription.py | 6 +++--- routes/admin_routes.py | 2 +- routes/auth_routes.py | 38 +++++++++++++++++++------------------- routes/translate_routes.py | 2 +- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/models/subscription.py b/models/subscription.py index 81d6c6e..62dfed6 100644 --- a/models/subscription.py +++ b/models/subscription.py @@ -242,11 +242,11 @@ class UserCreate(BaseModel): if len(v) < 8: raise ValueError("Password must be at least 8 characters") if not re.search(r"[A-Z]", v): - raise ValueError("Password must contain at least one uppercase letter") + raise ValueError("Le mot de passe doit contenir au moins une majuscule") if not re.search(r"[a-z]", v): - raise ValueError("Password must contain at least one lowercase letter") + raise ValueError("Le mot de passe doit contenir au moins une minuscule") if not re.search(r"[0-9]", v): - raise ValueError("Password must contain at least one digit") + raise ValueError("Le mot de passe doit contenir au moins un chiffre") return v diff --git a/routes/admin_routes.py b/routes/admin_routes.py index 8b3da16..57870f7 100644 --- a/routes/admin_routes.py +++ b/routes/admin_routes.py @@ -137,7 +137,7 @@ async def require_admin(authorization: Optional[str] = Header(None)) -> str: ) token = parts[1] if not verify_admin_token(token): - raise HTTPException(status_code=401, detail="Invalid or expired token") + raise HTTPException(status_code=401, detail="Token invalide ou expiré") return ADMIN_USERNAME diff --git a/routes/auth_routes.py b/routes/auth_routes.py index 8cc7980..ac8c060 100644 --- a/routes/auth_routes.py +++ b/routes/auth_routes.py @@ -94,7 +94,7 @@ async def require_user(credentials: HTTPAuthorizationCredentials = Depends(secur raise HTTPException(status_code=401, detail="Not authenticated") payload = verify_token(credentials.credentials) if not payload: - raise HTTPException(status_code=401, detail="Invalid or expired token") + raise HTTPException(status_code=401, detail="Token invalide ou expiré") user = get_user_by_id(payload.get("sub")) if not user: raise HTTPException(status_code=401, detail="User not found") @@ -216,7 +216,7 @@ async def register_v1(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -342,7 +342,7 @@ Déconnecte l'utilisateur en révoquant son token d'accès. "description": "Déconnexion réussie", "content": { "application/json": { - "example": {"data": {"message": "Logged out successfully"}, "meta": {}} + "example": {"data": {"message": "Déconnexion réussie"}, "meta": {}} } }, }, @@ -355,14 +355,14 @@ Déconnecte l'utilisateur en révoquant son token d'accès. "summary": "Missing token", "value": { "error": "TOKEN_MISSING", - "message": "Authentication token required", + "message": "Token d'authentification requis", }, }, "TOKEN_INVALID": { "summary": "Invalid token", "value": { "error": "TOKEN_INVALID", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, }, } @@ -379,7 +379,7 @@ async def logout_v1(request: Request): status_code=401, content={ "error": "TOKEN_MISSING", - "message": "Authentication token required", + "message": "Token d'authentification requis", }, ) access_token = auth_header[7:] @@ -390,7 +390,7 @@ async def logout_v1(request: Request): status_code=401, content={ "error": "TOKEN_INVALID", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, ) @@ -413,7 +413,7 @@ async def logout_v1(request: Request): return JSONResponse( status_code=200, - content={"data": {"message": "Logged out successfully"}, "meta": {}}, + content={"data": {"message": "Déconnexion réussie"}, "meta": {}}, ) @@ -460,7 +460,7 @@ Authentifie un utilisateur et retourne les tokens JWT. "summary": "Invalid body", "value": { "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, }, "INVALID_EMAIL": { @@ -496,7 +496,7 @@ async def login_v1(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -668,7 +668,7 @@ async def refresh_v1(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -677,7 +677,7 @@ async def refresh_v1(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -691,7 +691,7 @@ async def refresh_v1(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Refresh token required", + "message": "Refresh token requis", }, ) @@ -701,7 +701,7 @@ async def refresh_v1(request: Request): status_code=401, content={ "error": "TOKEN_EXPIRED", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, ) @@ -710,7 +710,7 @@ async def refresh_v1(request: Request): status_code=401, content={ "error": "TOKEN_EXPIRED", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, ) @@ -720,7 +720,7 @@ async def refresh_v1(request: Request): status_code=401, content={ "error": "TOKEN_EXPIRED", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, ) @@ -972,7 +972,7 @@ async def forgot_password(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -1074,7 +1074,7 @@ async def reset_password(request: Request): status_code=400, content={ "error": "INVALID_REQUEST", - "message": "Invalid JSON request body", + "message": "Corps de requête JSON invalide", }, ) @@ -1118,7 +1118,7 @@ async def reset_password(request: Request): status_code=400, content={ "error": "INVALID_TOKEN", - "message": "Invalid or expired token", + "message": "Token invalide ou expiré", }, ) diff --git a/routes/translate_routes.py b/routes/translate_routes.py index f128389..fcba732 100644 --- a/routes/translate_routes.py +++ b/routes/translate_routes.py @@ -1673,7 +1673,7 @@ async def download_translated_file( status_code=404, content={ "error": "NOT_READY", - "message": "Translation is still in progress.", + "message": "La traduction est encore en cours.", "details": { "job_id": job_id, "status": job.get("status"),