Frontend: - Replace Next.js with Vite + React + TypeScript - Add new component architecture (app-shell, sidebar, dashboard modules) - Implement product modules: FRAME, safety protocols, walkthrough checkin, campus/staff attendance, personality quiz, sign language, classroom timer - Add shadcn/ui component library with Tailwind CSS - Remove legacy generated components, stores, and pages Backend: - Add product migrations: frame_entries, user_progress, safety_quiz_results, walkthrough_checkins, communication_events, personality_quiz_results, campus_attendance_config/summaries, staff_attendance_records, content_catalog - Add corresponding models, services, and routes - Implement cookie-based auth with refresh token rotation - Add content catalog seeder with product content - Migrate to ESLint flat config - Switch from yarn to npm Infrastructure: - Update .gitignore for new tooling - Add project documentation (CLAUDE.md, docs/) - Remove deprecated config files and yarn.lock Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
56 lines
2.1 KiB
JSON
56 lines
2.1 KiB
JSON
{
|
||
"pages": {
|
||
"dashboard": {
|
||
"pageTitle": "Tableau de bord",
|
||
"overview": "Vue d'ensemble",
|
||
"loadingWidgets": "Chargement des widgets...",
|
||
"loading": "Chargement..."
|
||
},
|
||
"login": {
|
||
"pageTitle": "Connexion",
|
||
|
||
"sampleCredentialsAdmin": "Utilisez {{email}} / {{password}} pour vous connecter en tant qu’administrateur",
|
||
"sampleCredentialsUser": "Utilisez {{email}} / {{password}} pour vous connecter en tant qu’utilisateur",
|
||
|
||
"form": {
|
||
"loginLabel": "Identifiant",
|
||
"loginHelp": "Veuillez saisir votre identifiant",
|
||
"passwordLabel": "Mot de passe",
|
||
"passwordHelp": "Veuillez saisir votre mot de passe",
|
||
"remember": "Se souvenir de moi",
|
||
"forgotPassword": "Mot de passe oublié ?",
|
||
"loginButton": "Se connecter",
|
||
"loading": "Chargement…",
|
||
"noAccountYet": "Vous n’avez pas encore de compte ?",
|
||
"newAccount": "Créer un compte"
|
||
},
|
||
|
||
"pexels": {
|
||
"photoCredit": "Photo de {{photographer}} sur Pexels",
|
||
"videoCredit": "Vidéo de {{name}} sur Pexels",
|
||
"videoUnsupported": "Votre navigateur ne prend pas en charge la balise vidéo."
|
||
},
|
||
|
||
"footer": {
|
||
"copyright": "© {{year}} {{title}}. Tous droits réservés",
|
||
"privacy": "Politique de confidentialité"
|
||
}
|
||
}
|
||
},
|
||
"components": {
|
||
"widgetCreator": {
|
||
"title": "Créer un graphique ou un widget",
|
||
"helpText": "Décrivez votre nouveau widget ou graphique en langage naturel. Par exemple : \"Nombre d'utilisateurs administrateurs\" OU \"graphique rouge avec le nombre de contrats clôturés regroupés par mois\"",
|
||
"settingsTitle": "Paramètres du créateur de widget",
|
||
"settingsDescription": "Pour quel rôle affichons-nous et créons-nous des widgets ?",
|
||
"doneButton": "Terminé",
|
||
"loading": "Chargement..."
|
||
},
|
||
"search": {
|
||
"placeholder": "Rechercher",
|
||
"required": "Champ requis",
|
||
"minLength": "Longueur minimale : {{count}} caractères"
|
||
}
|
||
}
|
||
}
|