- App.tsx: every authenticated route now nests under one
RequireAuth + AppLayout parent route (react-router nested
routes/<Outlet />) instead of each page wrapping its own guard.
- New routes/pages: /recettes, /liste-de-courses, /foyer, each a thin
wrapper around a shared ComingSoonPage ("cette section arrive
bientôt.") — no backend behind them yet, matches the "pages stub
dédiées" choice discussed in chat.
- locales/fr/translation.json: nav labels + stub copy.
HomePage still shows its own greeting/logout card here (unchanged,
now nested inside AppLayout's <Outlet /> — briefly duplicating the
sidebar's greeting/logout) — replaced by the actual planning view in
the next commit.
58 lines
1.6 KiB
JSON
58 lines
1.6 KiB
JSON
{
|
|
"errors": {
|
|
"VALIDATION_ERROR": "Erreur de validation",
|
|
"EMAIL_ALREADY_IN_USE": "Cet email est déjà utilisé",
|
|
"INVALID_CREDENTIALS": "Email ou mot de passe incorrect",
|
|
"NOT_AUTHENTICATED": "Vous devez être connecté",
|
|
"NOT_FOUND": "Ressource introuvable",
|
|
"INTERNAL_ERROR": "Une erreur est survenue, réessayez plus tard"
|
|
},
|
|
"auth": {
|
|
"login": {
|
|
"title": "Se connecter",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Mot de passe",
|
|
"submit": "Se connecter",
|
|
"submitting": "Connexion…",
|
|
"noAccount": "Pas encore de compte ?",
|
|
"createProfileLink": "Créer un profil"
|
|
},
|
|
"signup": {
|
|
"title": "Créer un profil",
|
|
"firstNameLabel": "Prénom",
|
|
"lastNameLabel": "Nom",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Mot de passe",
|
|
"submit": "Créer mon profil",
|
|
"submitting": "Création…",
|
|
"hasAccount": "Déjà un compte ?",
|
|
"loginLink": "Se connecter"
|
|
}
|
|
},
|
|
"layout": {
|
|
"nav": {
|
|
"planning": "Planning",
|
|
"recipes": "Recettes",
|
|
"shoppingList": "Liste de courses",
|
|
"household": "Foyer & profil"
|
|
},
|
|
"greeting": "Bonjour {{firstName}} 👋",
|
|
"logout": "Se déconnecter"
|
|
},
|
|
"home": {
|
|
"greeting": "Bonjour {{firstName}} {{lastName}} 👋",
|
|
"logout": "Se déconnecter"
|
|
},
|
|
"recipes": {
|
|
"title": "Recettes",
|
|
"comingSoon": "Cette section arrive bientôt."
|
|
},
|
|
"shoppingList": {
|
|
"title": "Liste de courses",
|
|
"comingSoon": "Cette section arrive bientôt."
|
|
},
|
|
"household": {
|
|
"title": "Foyer & profil",
|
|
"comingSoon": "Cette section arrive bientôt."
|
|
}
|
|
}
|