Add meal plan feature with cross-device sync and automatic stale data cleanup
Introduces weekly meal planning with a calendar-based tab view, per-recipe date assignments synced via Nextcloud Cookbook custom metadata, and 30-day automatic pruning of old entries on load, save, and sync merge. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2514,6 +2514,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Last Week" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Letzte Woche"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Semana Pasada"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Semaine Dernière"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"List your tools here. 🍴" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
@@ -2669,6 +2691,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Meal Plan" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Essensplan"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Plan de Comidas"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Plan de Repas"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Minutes" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -2870,6 +2914,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Next Week" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Nächste Woche"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Próxima Semana"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Semaine Prochaine"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Nextcloud Login" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3293,6 +3359,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Plan recipe" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rezept einplanen"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Planificar receta"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Planifier la recette"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Please check the entered URL." : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
@@ -3690,6 +3778,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Remove" : {
|
||||
"comment" : "A menu item that allows a user to remove an item from a meal plan.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Entfernen"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Eliminar"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Supprimer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Remove from Grocery List" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3757,6 +3869,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Schedule Recipe" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rezept einplanen"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Programar Receta"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Planifier la Recette"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -3813,6 +3947,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search recipes" : {
|
||||
"comment" : "A prompt for searching recipes.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rezepte suchen"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Buscar recetas"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Rechercher des recettes"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Search recipes/keywords" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
@@ -4572,6 +4730,28 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"This Week" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Diese Woche"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Esta Semana"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cette Semaine"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Title" : {
|
||||
"extractionState" : "stale",
|
||||
"localizations" : {
|
||||
@@ -4595,6 +4775,30 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Today" : {
|
||||
"comment" : "Suffix added to the name of a day when it is the current day.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Heute"
|
||||
}
|
||||
},
|
||||
"es" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Hoy"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Aujourd'hui"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Tool" : {
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
|
||||
Reference in New Issue
Block a user