Schema changes (require a single migration to apply): - User gains disclaimerAcceptedAt — null until the user accepts the medical disclaimer, blocks /profile until set (PRD §14.3) - New WeightEntry (PRD §5.2) — weight/measurements/notes encrypted at rest, energy/sleep/hunger left in the clear so we can produce aggregate analytics - New FastEvent (PRD §5.3) — symptoms/notes encrypted, protocol/status/timer in the clear; indexed on (userId, startedAt) - New Ingredient / Recipe / RecipeIngredient (PRD §5.1) — italian keto recipe database with macros and exclusion groups, ready for the matchmaking algo - New MealPlan / MealSlot — generated weekly plan with selected recipe and alternatives per (day, meal) - New enums: FastStatus, MealCategory, Difficulty, MealPlanStatus Web — disclaimer flow: - /welcome page (server component, requires auth) lists the 4 PRD-mandated points and surfaces the 3 mandatory checkboxes; submit triggers a server action that stamps disclaimerAcceptedAt and redirects to /profile - /profile redirects to /welcome whenever disclaimerAcceptedAt is null, so the disclaimer becomes a hard prerequisite for any sensitive page - New Italian copy under Welcome.* in messages/it.json - @ketopath/db added to apps/web dependencies (was indirect via @ketopath/auth) @ketopath/db re-exports the new models and enums. Run the migration before testing: `pnpm db:migrate --name onboarding_v1_recipes`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
95 lines
4.3 KiB
JSON
95 lines
4.3 KiB
JSON
{
|
|
"Home": {
|
|
"title": "KetoPath",
|
|
"tagline": "Il tuo percorso personalizzato verso uno stile di vita chetogenico sostenibile.",
|
|
"ctaPrimary": "Inizia gratis",
|
|
"ctaSecondary": "Scopri come funziona",
|
|
"disclaimer": "Le informazioni fornite da questa app non sostituiscono il parere di un medico.",
|
|
"signedInAs": "Accesso effettuato come {name}",
|
|
"signOut": "Esci",
|
|
"completeProfile": "Completa il tuo profilo"
|
|
},
|
|
"Welcome": {
|
|
"title": "Prima di iniziare",
|
|
"subtitle": "KetoPath è uno strumento di stile di vita, non un dispositivo medico. Conferma queste 4 cose prima di proseguire.",
|
|
"point1": "L'app fornisce solo suggerimenti di stile di vita basati sui parametri che inserisci.",
|
|
"point2": "Non diagnostica patologie, non prescrive trattamenti, non sostituisce il parere del tuo medico.",
|
|
"point3": "Se hai diabete di tipo 1, sei in gravidanza o allattamento, hai disturbi alimentari, problemi cardiaci o renali, parla prima con il tuo medico.",
|
|
"point4": "Prima di iniziare ti consigliamo esami del sangue di base (glicemia, colesterolo, profilo lipidico, funzionalità renale ed epatica).",
|
|
"checkAdult": "Confermo di essere maggiorenne.",
|
|
"checkAware": "Dichiaro di non avere condizioni mediche escludenti, oppure di averle discusse con il mio medico.",
|
|
"checkAccepts": "Accetto che KetoPath non sostituisce il parere medico professionale.",
|
|
"submit": "Accetto e proseguo",
|
|
"submitting": "Salvataggio in corso…",
|
|
"legalNote": "Il consenso è registrato con data e ora come previsto dall'art. 7 GDPR."
|
|
},
|
|
"CookieBanner": {
|
|
"aria": "Informativa cookie",
|
|
"message": "Usiamo solo cookie essenziali per l'autenticazione e la sessione. Niente analytics o tracker di terze parti.",
|
|
"dismiss": "Ho capito"
|
|
},
|
|
"Metadata": {
|
|
"title": "KetoPath — Chetogenica e digiuno intermittente personalizzati",
|
|
"description": "Web app italiana per la gestione strutturata di chetogenica e digiuno intermittente, con piani adattivi, tracking e lista della spesa automatica."
|
|
},
|
|
"Auth": {
|
|
"SignIn": {
|
|
"title": "Accedi",
|
|
"subtitle": "Bentornato. Inserisci le tue credenziali per continuare.",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Password",
|
|
"submit": "Accedi",
|
|
"submitting": "Accesso in corso…",
|
|
"google": "Accedi con Google",
|
|
"or": "oppure",
|
|
"noAccount": "Non hai un account? <link>Registrati</link>",
|
|
"error": "Credenziali non valide. Riprova."
|
|
},
|
|
"SignUp": {
|
|
"title": "Registrati",
|
|
"subtitle": "Crea il tuo profilo KetoPath in meno di un minuto.",
|
|
"nameLabel": "Nome",
|
|
"emailLabel": "Email",
|
|
"passwordLabel": "Password",
|
|
"passwordHint": "Almeno 8 caratteri.",
|
|
"submit": "Crea account",
|
|
"submitting": "Creazione in corso…",
|
|
"google": "Continua con Google",
|
|
"or": "oppure",
|
|
"haveAccount": "Hai già un account? <link>Accedi</link>",
|
|
"error": "Non è stato possibile completare la registrazione. Riprova.",
|
|
"disclaimer": "Procedendo accetti che i tuoi dati siano trattati come descritto nell'informativa sulla privacy. KetoPath non sostituisce il parere medico."
|
|
}
|
|
},
|
|
"Profile": {
|
|
"title": "Il tuo profilo",
|
|
"subtitle": "Inserisci i tuoi dati per calcolare BMR e TDEE personalizzati.",
|
|
"age": "Età",
|
|
"gender": "Sesso",
|
|
"heightCm": "Altezza (cm)",
|
|
"weightStartKg": "Peso iniziale (kg)",
|
|
"weightCurrentKg": "Peso attuale (kg)",
|
|
"weightGoalKg": "Peso obiettivo (kg)",
|
|
"activityLevel": "Livello di attività",
|
|
"selectPlaceholder": "Seleziona…",
|
|
"save": "Salva profilo",
|
|
"saving": "Salvataggio in corso…",
|
|
"summary": "Calcolo personalizzato",
|
|
"bmr": "Metabolismo basale (BMR)",
|
|
"tdee": "Fabbisogno totale (TDEE)",
|
|
"activityMultiplier": "Moltiplicatore attività",
|
|
"hint": "I valori sono stime basate sulla formula Mifflin-St Jeor. Non sostituiscono il parere di un nutrizionista.",
|
|
"genderOptions": {
|
|
"MALE": "Maschio",
|
|
"FEMALE": "Femmina",
|
|
"OTHER": "Altro / preferisco non specificare"
|
|
},
|
|
"activityOptions": {
|
|
"SEDENTARY": "Sedentario (lavoro d'ufficio)",
|
|
"LIGHT": "Leggero (sport 1-3 volte a settimana)",
|
|
"MODERATE": "Moderato (sport 3-5 volte a settimana)",
|
|
"INTENSE": "Intenso (sport 6+ volte a settimana)"
|
|
}
|
|
}
|
|
}
|