feat: add recipes module with CRUD functionality and integrate with meals

- Implemented new recipes page with UI for managing recipes.
- Added REST API routes for recipes including create, read, update, and delete operations.
- Introduced database schema for recipes and recipe ingredients.
- Updated meals to link with recipes, allowing meals to reference specific recipes.
- Enhanced validation for recipe-related fields in meals.
- Added styles for the recipes page and components.
This commit is contained in:
Serhiy Bobrov
2026-04-21 13:43:42 +03:00
committed by Ulas Kalayci
parent 41467a84b6
commit 0b54fe255b
25 changed files with 1421 additions and 48 deletions
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "الإعدادات",
"main": "القائمة الرئيسية",
"navigation": "التنقل",
"quickActions": "الإجراءات السريعة"
"quickActions": "الإجراءات السريعة",
"recipes": "Recipes"
},
"dashboard": {
"title": "لوحة التحكم",
@@ -242,7 +243,11 @@
"loadingIndicator": "جارٍ التحميل…",
"recipeUrlLabel": "رابط الوصفة (اختياري)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "فتح الوصفة"
"openRecipe": "فتح الوصفة",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "التقويم",
@@ -604,5 +609,29 @@
"unitWeeks": "أسابيع",
"unitMonth": "شهر",
"unitMonths": "أشهر"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -43,7 +43,8 @@
"main": "Hauptnavigation",
"navigation": "Navigation",
"quickActions": "Schnellaktionen",
"more": "Mehr"
"more": "Mehr",
"recipes": "Recipes"
},
"search": {
"title": "Suche",
@@ -256,7 +257,11 @@
"loadingIndicator": "Lade…",
"recipeUrlLabel": "Rezept-Link (optional)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Rezept öffnen"
"openRecipe": "Rezept öffnen",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Kalender",
@@ -676,5 +681,29 @@
"notificationHint": "Erhalte Benachrichtigungen auch wenn die App geöffnet ist.",
"pendingBadgeTitle": "{{count}} fällige Erinnerung",
"pendingBadgeTitlePlural": "{{count}} fällige Erinnerungen"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Ρυθμίσεις",
"main": "Κύρια πλοήγηση",
"navigation": "Πλοήγηση",
"quickActions": "Γρήγορες ενέργειες"
"quickActions": "Γρήγορες ενέργειες",
"recipes": "Recipes"
},
"dashboard": {
"title": "Επισκόπηση",
@@ -242,7 +243,11 @@
"loadingIndicator": "Φόρτωση…",
"recipeUrlLabel": "Σύνδεσμος συνταγής (προαιρετικό)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Άνοιγμα συνταγής"
"openRecipe": "Άνοιγμα συνταγής",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Ημερολόγιο",
@@ -604,5 +609,29 @@
"unitWeeks": "εβδομάδες",
"unitMonth": "μήνα",
"unitMonths": "μήνες"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Settings",
"main": "Main navigation",
"navigation": "Navigation",
"quickActions": "Quick actions"
"quickActions": "Quick actions",
"recipes": "Recipes"
},
"dashboard": {
"title": "Overview",
@@ -242,7 +243,11 @@
"loadingIndicator": "Loading…",
"recipeUrlLabel": "Recipe link (optional)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Open recipe"
"openRecipe": "Open recipe",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Calendar",
@@ -625,5 +630,29 @@
"notificationHint": "Receive notifications while the app is open.",
"pendingBadgeTitle": "{{count}} reminder due",
"pendingBadgeTitlePlural": "{{count}} reminders due"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Ajustes",
"main": "Navegación principal",
"navigation": "Navegación",
"quickActions": "Acciones rápidas"
"quickActions": "Acciones rápidas",
"recipes": "Recipes"
},
"dashboard": {
"title": "Inicio",
@@ -242,7 +243,11 @@
"loadingIndicator": "Cargando…",
"recipeUrlLabel": "Enlace a la receta (opcional)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Abrir receta"
"openRecipe": "Abrir receta",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Calendario",
@@ -604,5 +609,29 @@
"unitWeeks": "semanas",
"unitMonth": "mes",
"unitMonths": "meses"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Paramètres",
"main": "Navigation principale",
"navigation": "Navigation",
"quickActions": "Actions rapides"
"quickActions": "Actions rapides",
"recipes": "Recipes"
},
"dashboard": {
"title": "Accueil",
@@ -242,7 +243,11 @@
"loadingIndicator": "Chargement…",
"recipeUrlLabel": "Lien recette (optionnel)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Ouvrir la recette"
"openRecipe": "Ouvrir la recette",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Calendrier",
@@ -604,5 +609,29 @@
"unitWeeks": "semaines",
"unitMonth": "mois",
"unitMonths": "mois"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "सेटिंग्स",
"main": "मुख्य नेविगेशन",
"navigation": "नेविगेशन",
"quickActions": "त्वरित क्रियाएं"
"quickActions": "त्वरित क्रियाएं",
"recipes": "Recipes"
},
"dashboard": {
"title": "डैशबोर्ड",
@@ -242,7 +243,11 @@
"loadingIndicator": "लोड हो रहा है…",
"recipeUrlLabel": "रेसिपी लिंक (वैकल्पिक)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "रेसिपी खोलें"
"openRecipe": "रेसिपी खोलें",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "कैलेंडर",
@@ -604,5 +609,29 @@
"unitWeeks": "सप्ताह",
"unitMonth": "माह",
"unitMonths": "माह"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Impostazioni",
"main": "Navigazione principale",
"navigation": "Navigazione",
"quickActions": "Azioni rapide"
"quickActions": "Azioni rapide",
"recipes": "Recipes"
},
"dashboard": {
"title": "Panoramica",
@@ -242,7 +243,11 @@
"loadingIndicator": "Caricamento…",
"recipeUrlLabel": "Link ricetta (opzionale)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Apri ricetta"
"openRecipe": "Apri ricetta",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Calendario",
@@ -604,5 +609,29 @@
"unitWeeks": "settimane",
"unitMonth": "mese",
"unitMonths": "mesi"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "設定",
"main": "メインナビゲーション",
"navigation": "ナビゲーション",
"quickActions": "クイックアクション"
"quickActions": "クイックアクション",
"recipes": "Recipes"
},
"dashboard": {
"title": "ダッシュボード",
@@ -242,7 +243,11 @@
"loadingIndicator": "読み込み中…",
"recipeUrlLabel": "レシピリンク(任意)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "レシピを開く"
"openRecipe": "レシピを開く",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "カレンダー",
@@ -604,5 +609,29 @@
"unitWeeks": "週",
"unitMonth": "ヶ月",
"unitMonths": "ヶ月"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Configurações",
"main": "Navegação principal",
"navigation": "Navegação",
"quickActions": "Ações rápidas"
"quickActions": "Ações rápidas",
"recipes": "Recipes"
},
"dashboard": {
"title": "Painel",
@@ -242,7 +243,11 @@
"loadingIndicator": "Carregando…",
"recipeUrlLabel": "Link da receita (opcional)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Abrir receita"
"openRecipe": "Abrir receita",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Calendário",
@@ -604,5 +609,29 @@
"unitWeeks": "semanas",
"unitMonth": "mês",
"unitMonths": "meses"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Настройки",
"main": "Главная навигация",
"navigation": "Навигация",
"quickActions": "Быстрые действия"
"quickActions": "Быстрые действия",
"recipes": "Recipes"
},
"dashboard": {
"title": "Обзор",
@@ -242,7 +243,11 @@
"loadingIndicator": "Загрузка…",
"recipeUrlLabel": "Ссылка на рецепт (необязательно)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Открыть рецепт"
"openRecipe": "Открыть рецепт",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Календарь",
@@ -604,5 +609,29 @@
"unitWeeks": "недель",
"unitMonth": "месяц",
"unitMonths": "месяцев"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Inställningar",
"main": "Huvudnavigering",
"navigation": "Navigering",
"quickActions": "Snabba åtgärder"
"quickActions": "Snabba åtgärder",
"recipes": "Recipes"
},
"dashboard": {
"title": "Översikt",
@@ -242,7 +243,11 @@
"loadingIndicator": "Laddar…",
"recipeUrlLabel": "Receptlänk (valfri)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Öppna recept"
"openRecipe": "Öppna recept",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Kalender",
@@ -604,5 +609,29 @@
"unitWeeks": "veckor",
"unitMonth": "månad",
"unitMonths": "månader"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Ayarlar",
"main": "Ana gezinme",
"navigation": "Gezinme",
"quickActions": "Hızlı işlemler"
"quickActions": "Hızlı işlemler",
"recipes": "Recipes"
},
"dashboard": {
"title": "Genel Bakış",
@@ -242,7 +243,11 @@
"loadingIndicator": "Yükleniyor…",
"recipeUrlLabel": "Tarif bağlantısı (isteğe bağlı)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Tarifi aç"
"openRecipe": "Tarifi aç",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Takvim",
@@ -604,5 +609,29 @@
"unitWeeks": "hafta",
"unitMonth": "ay",
"unitMonths": "ay"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "Налаштування",
"main": "Головна навігація",
"navigation": "Навігація",
"quickActions": "Швидкі дії"
"quickActions": "Швидкі дії",
"recipes": "Recipes"
},
"dashboard": {
"title": "Огляд",
@@ -242,7 +243,11 @@
"loadingIndicator": "Завантаження…",
"recipeUrlLabel": "Посилання на рецепт (необов'язково)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "Відкрити рецепт"
"openRecipe": "Відкрити рецепт",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "Календар",
@@ -625,5 +630,29 @@
"notificationHint": "Отримуйте сповіщення, поки додаток відкрито.",
"pendingBadgeTitle": "{{count}} нагадування",
"pendingBadgeTitlePlural": "{{count}} нагадувань"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}
+31 -2
View File
@@ -42,7 +42,8 @@
"settings": "设置",
"main": "主导航",
"navigation": "导航",
"quickActions": "快捷操作"
"quickActions": "快捷操作",
"recipes": "Recipes"
},
"dashboard": {
"title": "概览",
@@ -242,7 +243,11 @@
"loadingIndicator": "加载中…",
"recipeUrlLabel": "食谱链接(可选)",
"recipeUrlPlaceholder": "https://…",
"openRecipe": "打开食谱"
"openRecipe": "打开食谱",
"savedRecipeLabel": "Saved recipe",
"savedRecipePlaceholder": "Select recipe",
"saveAsRecipe": "Save as recipe",
"recipeScaleLabel": "Scale ingredients"
},
"calendar": {
"title": "日历",
@@ -604,5 +609,29 @@
"unitWeeks": "周",
"unitMonth": "个月",
"unitMonths": "个月"
},
"recipes": {
"title": "Recipes",
"addRecipe": "Add recipe",
"editRecipe": "Edit recipe",
"emptyTitle": "No recipes yet",
"emptyDescription": "Save your favorite recipes and reuse them in meal planning.",
"titleLabel": "Title *",
"titlePlaceholder": "e.g. Pasta Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Optional...",
"urlLabel": "Recipe link",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingredients",
"addToMeals": "Add to meal plan",
"openLink": "Open recipe link",
"deleteConfirm": "Delete recipe \"{{title}}\"?",
"created": "Recipe saved.",
"updated": "Recipe updated.",
"deleted": "Recipe deleted.",
"titleRequired": "Title is required",
"duplicate": "Duplicate",
"duplicated": "Recipe duplicated.",
"copySuffix": "copy"
}
}