Tre completamenti del PRD §5.1 lasciati indietro fino a oggi.
1. Macro tracker giornaliero
- GET /me/meal-plans/current ora include proteinG/fatG/netCarbG/prepMinutes
per ogni recipe selected e alternative
- /plan: nuova summary card settimanale (medie kcal/proteine/grassi/carb
sui giorni attivi)
- Header per ogni giorno: "1390 KCAL · P 100 · G 92 · C 17"
2. cookingTime nel matchmaking
- Nuovo prepMinutes su RecipeCandidate
- MatchOptions accetta maxPrepMinutes (soft cap, non hard filter)
- Score: penalty 0.01 per minuto di sforamento — preserva la diversità
ma orienta le scelte
- maxPrepMinutesFor(level): LOW=15, MEDIUM=30, HIGH=60
- plan.routes deriva la soglia da Preferences.cookingTime
3. Rigenera singolo pasto
- POST /me/meal-plans/slots/:slotId/regenerate
- Riusa l'intero pipeline di calcolo (BMR, deficit, condizioni, training,
protocollo, mealsPerDay, cookingTime) e ricalcola top5 per quello slot
- Passa consumedSoFar (kcal/macros già scelti negli altri pasti del
giorno) al matchmaking → coerenza dei macros giornalieri
- Aggiunge la ricetta corrente al recentlyConsumedIds per forzare il
cambio
- UI: pulsante ↻ in ogni SlotCard, accessibile via aria-label
Smoke verificato live: 21 bottoni rigenera (3 pasti × 7 giorni), summary
"Media kcal/giorno 1397", header giornaliero "1390 KCAL · P 100 · G 92 · C 17".
54/54 unit test verdi. Lint, typecheck, build verdi.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
517 lines
23 KiB
JSON
517 lines
23 KiB
JSON
{
|
||
"Home": {
|
||
"title": "Una keto italiana, sostenibile",
|
||
"tagline": "Il sentiero che ti accompagna dalla prima settimana di adattamento al mantenimento — settimana dopo settimana, piatto dopo piatto.",
|
||
"ctaPrimary": "Iscriviti",
|
||
"ctaSecondary": "Accedi",
|
||
"disclaimer": "KetoPath è uno strumento di stile di vita: suggerisce, non prescrive. Le indicazioni nutrizionali non sostituiscono il parere del tuo medico.",
|
||
"signedInAs": "Accesso effettuato come {name}",
|
||
"signOut": "Esci",
|
||
"completeProfile": "Profilo & calcoli",
|
||
"viewPlan": "Piano della settimana",
|
||
"viewShopping": "Lista della spesa",
|
||
"viewTracking": "Pesata & misure",
|
||
"viewFasting": "Digiuno intermittente",
|
||
"lettura": "Continua la lettura",
|
||
"inizia": "Inizia",
|
||
"greeting": "Buongiorno, <name>{name}</name>.",
|
||
"principle1": "Personalizzazione totale: ciò che vedi è solo ciò che ti riguarda.",
|
||
"principle2": "Cucina italiana e mediterranea: ingredienti veri, di stagione, reperibili.",
|
||
"principle3": "Progressività: dalla fase intensiva al mantenimento, senza strappi."
|
||
},
|
||
"Welcome": {
|
||
"title": "Prima di iniziare",
|
||
"subtitle": "KetoPath è uno strumento di stile di vita, non un dispositivo medico. Quattro punti, 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 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…",
|
||
"legalNote": "Il consenso è registrato con data e ora come previsto dall'art. 7 GDPR."
|
||
},
|
||
"CookieBanner": {
|
||
"aria": "Informativa cookie",
|
||
"message": "Usiamo solo cookie essenziali per autenticazione e sessione. Niente analytics o tracker di terze parti.",
|
||
"dismiss": "Ho capito"
|
||
},
|
||
"Metadata": {
|
||
"title": "KetoPath — Chetogenica e digiuno intermittente, personalizzati",
|
||
"description": "Una keto italiana, sostenibile. Piani adattivi, tracking e lista della spesa automatica — settimana dopo settimana."
|
||
},
|
||
"Auth": {
|
||
"SignIn": {
|
||
"title": "Accedi",
|
||
"subtitle": "Bentornato. Riprendi da dove avevi lasciato.",
|
||
"emailLabel": "Email",
|
||
"passwordLabel": "Password",
|
||
"submit": "Accedi",
|
||
"submitting": "Accesso in corso…",
|
||
"google": "Continua con Google",
|
||
"or": "oppure",
|
||
"noAccount": "Non hai ancora un account? <link>Iscriviti</link>",
|
||
"error": "Credenziali non valide. Riprova."
|
||
},
|
||
"SignUp": {
|
||
"title": "Iscriviti",
|
||
"subtitle": "Crea il tuo profilo KetoPath in meno di un minuto.",
|
||
"nameLabel": "Come ti chiami",
|
||
"emailLabel": "Email",
|
||
"passwordLabel": "Password",
|
||
"passwordHint": "Almeno 8 caratteri",
|
||
"submit": "Crea account",
|
||
"submitting": "Creazione…",
|
||
"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."
|
||
}
|
||
},
|
||
"Fasting": {
|
||
"title": "Digiuno intermittente",
|
||
"subtitle": "Una finestra alimentare e una di riposo. Il timer scandisce il ritmo, il corpo fa il resto.",
|
||
"historyTitle": "Storico sessioni",
|
||
"activeBadge": "Sessione in corso",
|
||
"inactiveBadge": "Pronto a iniziare",
|
||
"startCallToAction": "Scegli un protocollo e parti. Il timer continua a scorrere anche se chiudi l'app.",
|
||
"chooseProtocol": "Protocollo",
|
||
"start": "Avvia digiuno",
|
||
"starting": "Avvio…",
|
||
"saving": "Salvataggio…",
|
||
"remaining": "Mancano {time}",
|
||
"reached": "Obiettivo raggiunto. Puoi rompere il digiuno o proseguire.",
|
||
"completeReached": "Concludi",
|
||
"completeEarly": "Concludi adesso",
|
||
"abort": "Annulla sessione",
|
||
"confirmAbort": "Sei sicuro di voler annullare questa sessione?",
|
||
"phaseTitle": "Fase metabolica",
|
||
"phases": {
|
||
"postprandial": {
|
||
"label": "Post-prandiale",
|
||
"description": "Digestione in corso. Insulina alta, glicemia in salita."
|
||
},
|
||
"glycogenolysis": {
|
||
"label": "Glicogenolisi",
|
||
"description": "Il fegato libera glucosio dalle scorte di glicogeno. L'insulina cala."
|
||
},
|
||
"lipolysis": {
|
||
"label": "Lipolisi",
|
||
"description": "Le scorte di grasso iniziano a essere mobilitate per produrre energia."
|
||
},
|
||
"ketogenesis": {
|
||
"label": "Chetogenesi",
|
||
"description": "Il fegato produce corpi chetonici. Le sensazioni mentali si fanno più nitide."
|
||
},
|
||
"autophagy": {
|
||
"label": "Autofagia",
|
||
"description": "Le cellule riciclano componenti danneggiati. Pulizia interna profonda."
|
||
}
|
||
},
|
||
"startedAt": "Iniziato",
|
||
"target": "Obiettivo",
|
||
"protocolGuideTitle": "Guida ai protocolli",
|
||
"protocolHints": {
|
||
"FOURTEEN_TEN": {
|
||
"title": "Inizio dolce",
|
||
"description": "Adatto in fase di mantenimento o per chi inizia. 10 ore di alimentazione."
|
||
},
|
||
"SIXTEEN_EIGHT": {
|
||
"title": "Lo standard",
|
||
"description": "Il protocollo più diffuso. Equilibrio tra sostenibilità e benefici metabolici."
|
||
},
|
||
"EIGHTEEN_SIX": {
|
||
"title": "Più aggressivo",
|
||
"description": "Inizia a sollecitare la chetogenesi. Per chi è già adattato."
|
||
},
|
||
"TWENTY_FOUR": {
|
||
"title": "Avanzato",
|
||
"description": "Solo 4 ore di alimentazione. Da praticare con regolarità ma non quotidianamente."
|
||
}
|
||
},
|
||
"emptyHistory": "Nessuna sessione registrata. Avvia il primo digiuno per iniziare a costruire la serie.",
|
||
"statCompleted": "Sessioni concluse",
|
||
"statTotal": "Ore totali",
|
||
"statSessions": "Sessioni totali",
|
||
"status": {
|
||
"IN_PROGRESS": "In corso",
|
||
"COMPLETED": "Completata",
|
||
"ABORTED": "Annullata"
|
||
}
|
||
},
|
||
"Tracking": {
|
||
"title": "Pesata e misure",
|
||
"subtitle": "Pochi numeri, una volta a settimana. La tendenza emerge dalla regolarità — non dalla pesata di oggi.",
|
||
"newEntry": "Nuova rilevazione",
|
||
"history": "Storico",
|
||
"date": "Data",
|
||
"weightKg": "Peso (kg)",
|
||
"measurements": "Misure (cm) — opzionali",
|
||
"waist": "Girovita",
|
||
"hips": "Fianchi",
|
||
"thigh": "Coscia",
|
||
"arm": "Braccio",
|
||
"subjective": "Indicatori soggettivi (1–10)",
|
||
"energy": "Energia",
|
||
"sleep": "Sonno",
|
||
"hunger": "Fame",
|
||
"save": "Registra",
|
||
"saving": "Salvataggio…",
|
||
"saved": "Registrato.",
|
||
"current": "Peso attuale",
|
||
"delta": "Variazione",
|
||
"emptyHistory": "Nessuna rilevazione registrata. Inserisci la prima a destra: la tendenza apparirà dopo due o tre pesate."
|
||
},
|
||
"Onboarding": {
|
||
"title": "Configura il tuo percorso",
|
||
"subtitle": "Cinque passaggi: l'obiettivo, i numeri, le preferenze, le notifiche e via al primo piano.",
|
||
"stepsTitle": "Tappe",
|
||
"stepEyebrow": "Tappa {n} di {total}",
|
||
"next": "Salva e continua",
|
||
"back": "← Indietro",
|
||
"skipForNow": "Salta per ora",
|
||
"working": "Attendere…",
|
||
"steps": {
|
||
"goal": "L'obiettivo",
|
||
"profile": "Anagrafica e attività",
|
||
"conditions": "Condizioni mediche",
|
||
"preferences": "Esclusioni e cucine",
|
||
"notifications": "Promemoria",
|
||
"done": "Pronti a partire"
|
||
},
|
||
"conditionsHeading": "Qualcosa di te che dovremmo sapere?",
|
||
"conditionsHint": "Indica le condizioni che ti riguardano. Servono ad adattare i calcoli e a segnalarti i casi in cui meglio consultare un medico prima di proseguire.",
|
||
"conditionsAdaptive": "Condizioni adattabili",
|
||
"conditionsExcluding": "Condizioni che richiedono il medico",
|
||
"conditionsExcludingHint": "Se selezioni una di queste l'app non genera piani autonomamente: vai dal tuo medico.",
|
||
"conditionsSaveError": "Non è stato possibile salvare. Riprova fra poco.",
|
||
"blockedEyebrow": "Importante",
|
||
"blockedMessage": "KetoPath non è uno strumento adatto a questa condizione. Ti consigliamo di rivolgerti al tuo medico curante prima di continuare. Puoi comunque proseguire l'esplorazione, ma il piano non verrà generato automaticamente.",
|
||
"conditionLabel": {
|
||
"THYROID_HYPO": "Ipotiroidismo",
|
||
"DIABETES_T2": "Diabete tipo 2",
|
||
"IBS": "Intestino irritabile",
|
||
"DYSLIPIDEMIA": "Colesterolo / trigliceridi alti",
|
||
"HYPERTENSION": "Ipertensione",
|
||
"KIDNEY_ISSUES": "Problemi renali",
|
||
"LIVER_ISSUES": "Problemi epatici",
|
||
"PREGNANCY": "Gravidanza",
|
||
"BREASTFEEDING": "Allattamento",
|
||
"DIABETES_T1": "Diabete tipo 1",
|
||
"EATING_DISORDER": "Disturbi alimentari"
|
||
},
|
||
"goalHeading": "Perché sei qui?",
|
||
"goalHint": "Scegli il motivo principale: ci aiuterà a parlarti nel modo giusto. Potrai sempre cambiarlo.",
|
||
"goals": {
|
||
"LOSE": {
|
||
"title": "Perdere peso",
|
||
"hint": "Deficit calorico graduale, fase intensiva poi mantenimento."
|
||
},
|
||
"MAINTAIN": {
|
||
"title": "Mantenere il peso",
|
||
"hint": "Equilibrio tra macros e digiuno per restare stabile."
|
||
},
|
||
"ENERGY": {
|
||
"title": "Energia e salute",
|
||
"hint": "Lucidità mentale, glicemia stabile, infiammazione bassa."
|
||
}
|
||
},
|
||
"profileHeading": "I numeri che ti riguardano",
|
||
"profileHeadingGoal": {
|
||
"LOSE": "I numeri da cui partire",
|
||
"MAINTAIN": "I numeri da mantenere",
|
||
"ENERGY": "I numeri che ti raccontano"
|
||
},
|
||
"profileHint": "Età, sesso, altezza, peso e attività: bastano per calcolare BMR, TDEE e i target di macros.",
|
||
"preferencesHeading": "Cosa eviti, cosa ami",
|
||
"preferencesHint": "Le esclusioni filtrano davvero le ricette del piano. Le cucine sono un suggerimento al matchmaking.",
|
||
"notificationsHeading": "Vuoi un promemoria?",
|
||
"notificationsHint": "Un piccolo nudge il lunedì per la pesata, e altre tappe in arrivo. Niente spam: scegli tu cosa ricevere.",
|
||
"notificationsActivate": "Attiva promemoria",
|
||
"notificationsActive": "Promemoria attivati. Bene così.",
|
||
"notificationsBlocked": "Hai bloccato le notifiche per questo sito. Le potrai riattivare dalle impostazioni del browser.",
|
||
"notificationsUnsupported": "Il tuo browser non supporta le notifiche push. Su iOS apri prima KetoPath dalla Home.",
|
||
"notificationsError": "Non è stato possibile attivarle. Riprova più tardi dal tuo profilo.",
|
||
"doneHeading": "Tutto pronto.",
|
||
"doneHeadingGoal": {
|
||
"LOSE": "Si parte. Un passo alla volta.",
|
||
"MAINTAIN": "Si parte. Mantenendo l'equilibrio.",
|
||
"ENERGY": "Si parte. Con più lucidità."
|
||
},
|
||
"doneHint": "Puoi esplorare l'app a tuo ritmo: ogni sezione resta sempre a portata.",
|
||
"doneGenerating": "Stiamo preparando il primo piano per la tua settimana…",
|
||
"donePlanReady": "Il primo piano è pronto. Dai un'occhiata o tuffati in cucina.",
|
||
"nextPlanEyebrow": "Cucina",
|
||
"nextPlanTitle": "Il piano della settimana",
|
||
"nextPlanHint": "Sette giorni, quattro pasti al dì, scelti dal matchmaking.",
|
||
"nextFastingEyebrow": "Digiuno",
|
||
"nextFastingTitle": "Una sessione di digiuno",
|
||
"nextFastingHint": "Scegli un protocollo, lascia che il timer scandisca il ritmo.",
|
||
"nextTrackingEyebrow": "Tracking",
|
||
"nextTrackingTitle": "La pesata di oggi",
|
||
"nextTrackingHint": "Pochi numeri, una volta a settimana. Costanza prima di tutto.",
|
||
"iosInstallEyebrow": "Solo iOS — per ricevere le notifiche",
|
||
"iosInstallTitle": "Installa KetoPath sulla Home in tre passaggi.",
|
||
"iosInstallStep1": "Tocca il pulsante Condividi (icona quadrato con freccia in alto) nella barra di Safari.",
|
||
"iosInstallStep2": "Scorri e seleziona “Aggiungi alla schermata Home”.",
|
||
"iosInstallStep3": "Apri KetoPath dalla Home: ora le notifiche funzionano anche su iPhone.",
|
||
"goToPlan": "Genera il primo piano",
|
||
"skipToHome": "Esplora l'app →"
|
||
},
|
||
"Preferences": {
|
||
"eyebrow": "Preferenze",
|
||
"title": "Cucina su misura",
|
||
"subtitle": "Le esclusioni filtrano gli ingredienti, le cucine influenzano il matchmaking, il tempo decide quante ricette elaborate proporre.",
|
||
"exclusionsTitle": "Esclusioni alimentari",
|
||
"exclusionsHint": "Tutte le ricette che contengono almeno uno di questi gruppi verranno escluse dal piano.",
|
||
"cuisinesTitle": "Cucine preferite",
|
||
"cuisinesHint": "Indicaci le tradizioni che preferisci. È un suggerimento, non un vincolo.",
|
||
"cookingTimeTitle": "Tempo in cucina",
|
||
"cookingTimeHint": "Quanto tempo vuoi dedicare alla preparazione, in media?",
|
||
"fastingTitle": "Protocollo digiuno predefinito",
|
||
"fastingHint": "Sarà selezionato in /fasting alla prossima sessione.",
|
||
"fastingNone": "Nessuno per ora",
|
||
"save": "Salva preferenze",
|
||
"saving": "Salvataggio…",
|
||
"saved": "Preferenze aggiornate.",
|
||
"errorGeneric": "Non è stato possibile salvare. Riprova.",
|
||
"exclusionLabel": {
|
||
"lactose": "Lattosio",
|
||
"egg": "Uova",
|
||
"fish": "Pesce",
|
||
"nuts": "Frutta secca",
|
||
"gluten": "Glutine",
|
||
"pork": "Maiale",
|
||
"beef": "Manzo"
|
||
},
|
||
"cuisineLabel": {
|
||
"mediterranea": "Mediterranea",
|
||
"italiana": "Italiana classica",
|
||
"pugliese": "Pugliese",
|
||
"siciliana": "Siciliana",
|
||
"toscana": "Toscana",
|
||
"medio-orientale": "Medio-orientale",
|
||
"nordica": "Nordica"
|
||
},
|
||
"cookingTimeLabel": {
|
||
"LOW": "Veloce · fino a 15 min",
|
||
"MEDIUM": "Medio · 15–30 min",
|
||
"HIGH": "Elaborato · oltre 30 min"
|
||
},
|
||
"fastingProtocolLabel": {
|
||
"FOURTEEN_TEN": "14:10 — inizio dolce",
|
||
"SIXTEEN_EIGHT": "16:8 — lo standard",
|
||
"EIGHTEEN_SIX": "18:6 — più aggressivo",
|
||
"TWENTY_FOUR": "20:4 — avanzato",
|
||
"ESE_24": "ESE 24h",
|
||
"FIVE_TWO": "5:2"
|
||
},
|
||
"trainingTitle": "Schedule allenamento",
|
||
"trainingHint": "Indica i giorni in cui ti alleni di solito: nei training day il piano alza il fabbisogno calorico.",
|
||
"trainingType": "Tipo di allenamento",
|
||
"trainingNone": "Nessuno per ora",
|
||
"trainingTypeLabel": {
|
||
"CARDIO": "Cardio (corsa, bici)",
|
||
"STRENGTH": "Forza (pesi)",
|
||
"MIXED": "Misto / HIIT",
|
||
"SPORT": "Sport di squadra"
|
||
},
|
||
"sessionMinutes": "Durata media (min)",
|
||
"mealsPerDayTitle": "Frequenza pasti",
|
||
"mealsPerDayHint": "Quanti pasti preferisci fare al giorno? Se hai un protocollo IF attivo, ha la precedenza lui.",
|
||
"mealsAuto": "Automatico (4 pasti)",
|
||
"mealsLabel": {
|
||
"1": "1 pasto al giorno",
|
||
"2": "2 pasti (pranzo + cena)",
|
||
"3": "3 pasti (no spuntino)",
|
||
"4": "4 pasti (con spuntino)"
|
||
}
|
||
},
|
||
"Notifications": {
|
||
"eyebrow": "Notifiche",
|
||
"title": "Promemoria al momento giusto",
|
||
"subtitle": "Decidi tu cosa vuoi ricevere e su quale dispositivo. Niente marketing, niente notifiche di terze parti.",
|
||
"thisDevice": "Questo dispositivo",
|
||
"thisDeviceActive": "Le notifiche sono attive su questo dispositivo.",
|
||
"thisDeviceInactive": "Questo dispositivo non riceve ancora notifiche. Attivalo per il promemoria settimanale.",
|
||
"enableHere": "Attiva sul dispositivo",
|
||
"sendTest": "Invia notifica di prova",
|
||
"weeklyWeighInLabel": "Promemoria pesata settimanale",
|
||
"weeklyWeighInHint": "Lunedì alle 09:00 ti ricordiamo la pesata della settimana.",
|
||
"fastingMilestonesLabel": "Tappe del digiuno",
|
||
"fastingMilestonesHint": "Ti avvisiamo all'ingresso in chetogenesi e all'autofagia. Disponibile a breve.",
|
||
"registeredDevices": "Dispositivi registrati",
|
||
"subscribed": "Notifiche attivate.",
|
||
"unsubscribed": "Notifiche disattivate su questo dispositivo.",
|
||
"testSent": "Notifica di prova inviata.",
|
||
"blocked": "Hai bloccato le notifiche per questo sito. Cambia l'impostazione dal browser per riattivarle.",
|
||
"unsupported": "Il tuo browser non supporta le notifiche push. Su iOS apri prima KetoPath dalla Home.",
|
||
"serverDisabled": "Le notifiche non sono ancora attive sul server.",
|
||
"configUnavailable": "Impossibile caricare le impostazioni notifiche. Riprova più tardi.",
|
||
"working": "Attendere…",
|
||
"errors": {
|
||
"unsupported": "Il tuo browser non supporta le notifiche push.",
|
||
"permission_denied": "Hai negato il permesso. Modificalo dal browser per riprovare.",
|
||
"permission_default": "Permesso non concesso. Riprova e seleziona 'Consenti'.",
|
||
"no_vapid_key": "Configurazione mancante. Contatta l'amministratore.",
|
||
"api_error": "Errore di rete. Riprova fra poco.",
|
||
"sw_error": "Impossibile registrare il service worker.",
|
||
"no_devices": "Nessun dispositivo registrato.",
|
||
"push_not_configured": "Le notifiche non sono ancora abilitate sul server.",
|
||
"unknown": "Si è verificato un errore imprevisto."
|
||
}
|
||
},
|
||
"Shopping": {
|
||
"title": "La spesa della settimana",
|
||
"subtitle": "Tutto ciò che ti serve per il piano in corso, raggruppato per reparto.",
|
||
"noPlan": "Genera prima un piano della settimana: la lista comparirà qui.",
|
||
"viewPlan": "Vai al piano",
|
||
"groupSize": "{n} articoli",
|
||
"totalLabel": "Totale articoli",
|
||
"estimatedCost": "Spesa stimata",
|
||
"checked": "{n} di {total}",
|
||
"fromRecipes": "Per: {names}",
|
||
"categoryLabel": {
|
||
"verdura": "Verdura",
|
||
"frutta": "Frutta",
|
||
"carne": "Carne",
|
||
"pesce": "Pesce",
|
||
"latticini": "Latticini",
|
||
"uova": "Uova",
|
||
"condimenti": "Condimenti",
|
||
"panetteria": "Panetteria",
|
||
"frutta-secca": "Frutta secca",
|
||
"erbe": "Erbe e spezie",
|
||
"salumi": "Salumi"
|
||
},
|
||
"viewCart": "Lista spesa"
|
||
},
|
||
"Recipe": {
|
||
"title": "Ricetta",
|
||
"back": "← Torna al piano",
|
||
"ingredientsTitle": "Ingredienti",
|
||
"ingredientsSubtitle": "Per una porzione singola",
|
||
"preparationTitle": "Preparazione",
|
||
"preparationFallback": "Mescola gli ingredienti seguendo l'ordine indicato e cuoci come preferisci.",
|
||
"macrosTitle": "Valori per porzione",
|
||
"kcal": "Calorie",
|
||
"protein": "Proteine",
|
||
"fat": "Grassi",
|
||
"netCarb": "Carb. netti",
|
||
"metaTitle": "Scheda ricetta",
|
||
"prepTime": "Preparazione",
|
||
"minutes": "{n} min",
|
||
"difficulty": "Difficoltà",
|
||
"phase": "Fase",
|
||
"phasesAll": "Tutte le fasi",
|
||
"phasesSome": "Fase {phases}",
|
||
"notesChef": "Nota dello chef",
|
||
"difficultyLabel": {
|
||
"FACILE": "Facile",
|
||
"MEDIA": "Media",
|
||
"ELABORATA": "Elaborata"
|
||
},
|
||
"categoryLabel": {
|
||
"COLAZIONE": "Colazione",
|
||
"PRANZO": "Pranzo",
|
||
"SPUNTINO": "Spuntino",
|
||
"CENA": "Cena"
|
||
},
|
||
"notFound": "Ricetta non trovata."
|
||
},
|
||
"Plan": {
|
||
"title": "Il tuo piano",
|
||
"weekOf": "Settimana del {date}",
|
||
"noPlan": "Non hai ancora un piano. Generalo: l'algoritmo sceglie le ricette adatte alla tua fase e ai tuoi macros.",
|
||
"generate": "Genera piano",
|
||
"regenerate": "Rigenera",
|
||
"noRecipe": "Nessuna ricetta selezionata",
|
||
"showAlternatives": "Vedi {n} alternative",
|
||
"hideAlternatives": "Nascondi",
|
||
"swap": "Scegli",
|
||
"regenerateSlot": "Rigenera questo pasto",
|
||
"dayTotal": "{kcal} kcal totali",
|
||
"window": "Finestra alimentare",
|
||
"avgKcal": "Media kcal/giorno",
|
||
"avgProtein": "Proteine medie",
|
||
"avgFat": "Grassi medi",
|
||
"avgNetCarb": "Carb. netti medi",
|
||
"fastingDay": "Giorno di digiuno",
|
||
"fastingDayHint": "Acqua, tè e tisane. Niente cibo solido.",
|
||
"lightDay": "Giorno leggero",
|
||
"lightDayHint": "Solo cena, kcal ridotte (~25% del giornaliero abituale).",
|
||
"protocolLabel": {
|
||
"FOURTEEN_TEN": "14:10 — finestra di 10h",
|
||
"SIXTEEN_EIGHT": "16:8 — finestra di 8h",
|
||
"EIGHTEEN_SIX": "18:6 — finestra di 6h",
|
||
"TWENTY_FOUR": "20:4 — finestra di 4h",
|
||
"ESE_24": "ESE 24h — un giorno di digiuno completo a settimana",
|
||
"FIVE_TWO": "5:2 — due giorni leggeri a settimana"
|
||
},
|
||
"meals": {
|
||
"COLAZIONE": "Colazione",
|
||
"PRANZO": "Pranzo",
|
||
"SPUNTINO": "Spuntino",
|
||
"CENA": "Cena"
|
||
},
|
||
"days": {
|
||
"monday": "Lunedì",
|
||
"tuesday": "Martedì",
|
||
"wednesday": "Mercoledì",
|
||
"thursday": "Giovedì",
|
||
"friday": "Venerdì",
|
||
"saturday": "Sabato",
|
||
"sunday": "Domenica"
|
||
}
|
||
},
|
||
"Profile": {
|
||
"title": "Il tuo profilo",
|
||
"subtitle": "I dati che ci servono per calcolare BMR, TDEE e i target di macros della settimana.",
|
||
"age": "Età",
|
||
"gender": "Sesso",
|
||
"heightCm": "Altezza (cm)",
|
||
"weightStartKg": "Iniziale",
|
||
"weightCurrentKg": "Attuale",
|
||
"weightGoalKg": "Obiettivo",
|
||
"activityLevel": "Livello di attività",
|
||
"measurementsTitle": "Circonferenze (cm) — opzionali",
|
||
"measurementsHint": "Se inserisci collo, vita e (per le donne) fianchi, calcoliamo la tua composizione corporea con la formula US Navy e usiamo Katch-McArdle invece di Mifflin: BMR più accurato.",
|
||
"neckCm": "Collo",
|
||
"waistCm": "Vita",
|
||
"hipsCm": "Fianchi",
|
||
"targetWeeklyLossKg": "Velocità di calo (kg/settimana)",
|
||
"targetWeeklyLossKgHint": "Suggerito: 0.4–0.7 kg/settimana. Oltre 1% del peso corporeo è considerato troppo aggressivo.",
|
||
"dietHistory": "Storia delle diete precedenti",
|
||
"dietHistoryHint": "Diete restrittive ripetute (yo-yo) abbassano il metabolismo basale del 5-15%. Indicarcelo ci serve a calibrare il deficit con prudenza.",
|
||
"dietHistoryLabel": {
|
||
"NONE": "Mai fatto diete restrittive",
|
||
"SOME": "1-2 diete negli ultimi 3 anni",
|
||
"EXTENSIVE": "Più diete o effetto yo-yo",
|
||
"SEVERE": "Periodi di semi-fame o disturbi alim. in remissione"
|
||
},
|
||
"selectPlaceholder": "Seleziona…",
|
||
"save": "Salva profilo",
|
||
"saving": "Salvataggio…",
|
||
"summary": "Calcolo personalizzato",
|
||
"emptySummary": "Salva il profilo per ricevere il tuo BMR, il TDEE e il target calorico giornaliero.",
|
||
"bmr": "Metabolismo basale",
|
||
"tdee": "Fabbisogno totale",
|
||
"activityMultiplier": "Moltiplicatore attività",
|
||
"hint": "Valori stimati con la 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 / settimana",
|
||
"MODERATE": "Moderato · sport 3–5 volte / settimana",
|
||
"INTENSE": "Intenso · sport 6+ volte / settimana"
|
||
}
|
||
}
|
||
}
|