Inserts a new PlanProductsSheet as step 1 of the planning flow. Users see their current products as a multi-select checklist (all selected by default) before choosing the planning mode and dates. - Empty state explains the benefit and offers "Add products" CTA while always allowing "Plan without products" to skip - Selected product IDs flow through PlanMenuSheet → PlanDatePickerSheet → MenuService.generateForDates → backend - Backend: added ProductIDs field to generate-menu request body; uses ListForPromptByIDs when set, ListForPrompt otherwise - Backend: added Repository.ListForPromptByIDs (filtered SQL query) - All 12 ARB locale files updated with planProducts* keys Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
170 lines
5.9 KiB
Plaintext
170 lines
5.9 KiB
Plaintext
{
|
|
"@@locale": "it",
|
|
"appTitle": "FoodAI",
|
|
"greetingMorning": "Buongiorno",
|
|
"greetingAfternoon": "Buon pomeriggio",
|
|
"greetingEvening": "Buonasera",
|
|
"caloriesUnit": "kcal",
|
|
"gramsUnit": "g",
|
|
"goalLabel": "obiettivo:",
|
|
"consumed": "Consumato",
|
|
"remaining": "Rimanente",
|
|
"exceeded": "Superato",
|
|
"proteinLabel": "Proteine",
|
|
"fatLabel": "Grassi",
|
|
"carbsLabel": "Carboidrati",
|
|
"today": "Oggi",
|
|
"yesterday": "Ieri",
|
|
"mealsSection": "Pasti",
|
|
"addDish": "Aggiungi piatto",
|
|
"scanDish": "Scansiona",
|
|
"menu": "Menu",
|
|
"dishHistory": "Cronologia piatti",
|
|
"recommendCook": "Consigliamo di cucinare",
|
|
"camera": "Fotocamera",
|
|
"gallery": "Galleria",
|
|
"analyzingPhoto": "Analisi foto in corso...",
|
|
"inQueue": "Sei in coda",
|
|
"queuePosition": "Posizione {position}",
|
|
"@queuePosition": {
|
|
"placeholders": {
|
|
"position": {
|
|
"type": "int"
|
|
}
|
|
}
|
|
},
|
|
"processing": "Elaborazione...",
|
|
"upgradePrompt": "Salta la coda? Aggiorna →",
|
|
"recognitionFailed": "Riconoscimento fallito. Riprova.",
|
|
"dishRecognition": "Riconoscimento piatti",
|
|
"all": "Tutti",
|
|
"dishRecognized": "Piatto riconosciuto",
|
|
"recognizing": "Riconoscimento in corso…",
|
|
"recognitionError": "Errore di riconoscimento",
|
|
"dishResultTitle": "Piatto riconosciuto",
|
|
"selectDish": "Seleziona un piatto",
|
|
"dishNotRecognized": "Piatto non riconosciuto",
|
|
"tryAgain": "Riprova",
|
|
"nutritionApproximate": "I valori nutrizionali sono approssimativi — stimati dalla foto.",
|
|
"portion": "Porzione",
|
|
"mealType": "Tipo di pasto",
|
|
"dateLabel": "Data",
|
|
"addToJournal": "Aggiungi al diario",
|
|
"addFailed": "Aggiunta fallita. Riprova.",
|
|
"historyTitle": "Cronologia riconoscimenti",
|
|
"historyLoadError": "Impossibile caricare la cronologia",
|
|
"retry": "Riprova",
|
|
"noHistory": "Nessun riconoscimento ancora",
|
|
"profileTitle": "Profilo",
|
|
"edit": "Modifica",
|
|
"bodyParams": "PARAMETRI CORPOREI",
|
|
"goalActivity": "OBIETTIVO & ATTIVITÀ",
|
|
"nutrition": "NUTRIZIONE",
|
|
"settings": "IMPOSTAZIONI",
|
|
"height": "Altezza",
|
|
"weight": "Peso",
|
|
"age": "Età",
|
|
"gender": "Sesso",
|
|
"genderMale": "Maschio",
|
|
"genderFemale": "Femmina",
|
|
"goalLoss": "Perdita di peso",
|
|
"goalMaintain": "Mantenimento",
|
|
"goalGain": "Aumento muscolare",
|
|
"activityLow": "Bassa",
|
|
"activityMedium": "Media",
|
|
"activityHigh": "Alta",
|
|
"calorieGoal": "Obiettivo calorico",
|
|
"mealTypes": "Tipi di pasto",
|
|
"formulaNote": "Calcolato con la formula di Mifflin-St Jeor",
|
|
"language": "Lingua",
|
|
"notSet": "Non impostato",
|
|
"calorieHint": "Inserisci i parametri corporei per calcolare l'obiettivo calorico",
|
|
"logout": "Disconnetti",
|
|
"editProfile": "Modifica profilo",
|
|
"cancel": "Annulla",
|
|
"save": "Salva",
|
|
"nameLabel": "Nome",
|
|
"heightCm": "Altezza (cm)",
|
|
"weightKg": "Peso (kg)",
|
|
"birthDate": "Data di nascita",
|
|
"nameRequired": "Inserisci il nome",
|
|
"profileUpdated": "Profilo aggiornato",
|
|
"profileSaveFailed": "Salvataggio fallito",
|
|
"mealTypeBreakfast": "Colazione",
|
|
"mealTypeSecondBreakfast": "Seconda colazione",
|
|
"mealTypeLunch": "Pranzo",
|
|
"mealTypeAfternoonSnack": "Merenda",
|
|
"mealTypeDinner": "Cena",
|
|
"mealTypeSnack": "Spuntino",
|
|
"navHome": "Home",
|
|
"navProducts": "Prodotti",
|
|
"navRecipes": "Ricette",
|
|
"addFromReceiptOrPhoto": "Aggiungi da scontrino o foto",
|
|
"chooseMethod": "Scegli il metodo",
|
|
"photoReceipt": "Fotografa scontrino",
|
|
"photoReceiptSubtitle": "Riconosciamo tutti i prodotti dallo scontrino",
|
|
"photoProducts": "Fotografa i prodotti",
|
|
"photoProductsSubtitle": "Frigo, tavolo, scaffale — fino a 3 foto",
|
|
"addPackagedFood": "Aggiungi alimento confezionato",
|
|
"scanBarcode": "Scansiona codice a barre",
|
|
"portionWeightG": "Peso della porzione (g)",
|
|
"productNotFound": "Prodotto non trovato",
|
|
"enterManually": "Inserisci manualmente",
|
|
"perHundredG": "per 100 g",
|
|
"searchFoodHint": "Cerca prodotti e piatti...",
|
|
"recentlyUsedLabel": "Usati di recente",
|
|
"productsSection": "Prodotti",
|
|
"dishesSection": "Piatti",
|
|
"noResultsForQuery": "Nessun risultato per \"{query}\"",
|
|
"@noResultsForQuery": {
|
|
"placeholders": {
|
|
"query": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"servingsLabel": "Porzioni",
|
|
"addToDiary": "Aggiungi al diario",
|
|
"scanDishPhoto": "Scansiona foto",
|
|
"planningForDate": "",
|
|
"@planningForDate": {
|
|
"placeholders": {
|
|
"date": {
|
|
"type": "String"
|
|
}
|
|
}
|
|
},
|
|
"markAsEaten": "Segna come mangiato",
|
|
"plannedMealLabel": "Pianificato",
|
|
"generateWeekLabel": "Pianifica la settimana",
|
|
"generateWeekSubtitle": "L'AI creerà un menu con colazione, pranzo e cena per tutta la settimana",
|
|
"generatingMenu": "Generazione menu...",
|
|
"dayPlannedLabel": "Giorno pianificato",
|
|
"planMenuButton": "Pianifica i pasti",
|
|
"planMenuTitle": "Cosa pianificare?",
|
|
"planOptionSingleMeal": "Un pasto",
|
|
"planOptionSingleMealDesc": "Scegli giorno e tipo di pasto",
|
|
"planOptionDay": "Un giorno",
|
|
"planOptionDayDesc": "Tutti i pasti di un giorno",
|
|
"planOptionDays": "Più giorni",
|
|
"planOptionDaysDesc": "Personalizza il periodo",
|
|
"planOptionWeek": "Una settimana",
|
|
"planOptionWeekDesc": "7 giorni in una volta",
|
|
"planSelectDate": "Seleziona data",
|
|
"planSelectMealType": "Tipo di pasto",
|
|
"planSelectRange": "Seleziona periodo",
|
|
"planGenerateButton": "Pianifica",
|
|
"planGenerating": "Generazione piano…",
|
|
"planSuccess": "Menu pianificato!",
|
|
"planProductsTitle": "Prodotti per il menu",
|
|
"planProductsSubtitle": "L'AI terrà conto dei prodotti selezionati nella generazione delle ricette",
|
|
"planProductsEmpty": "Nessun prodotto aggiunto",
|
|
"planProductsEmptyMessage": "Aggiungi prodotti che hai in casa — l'AI suggerirà ricette con quello che hai già",
|
|
"planProductsAddProducts": "Aggiungi prodotti",
|
|
"planProductsContinue": "Continua",
|
|
"planProductsSkip": "Salta la selezione dei prodotti",
|
|
"planProductsSkipNoProducts": "Pianifica senza prodotti",
|
|
"planProductsSelectAll": "Seleziona tutto",
|
|
"planProductsDeselectAll": "Deseleziona tutto"
|
|
}
|