{ "app": { "name": "DailyMeals" }, "language": { "label": "Language", "en": "English", "pl": "Polish" }, "layout": { "label": "Layout", "sidebar": "Sidebar", "topnav": "Top navigation", "compact": "Compact sidebar", "wide": "Wide sidebar", "wideTagline": "Plan your meals with ease" }, "appearance": { "label": "Appearance", "forest": "Forest Classic", "forestDesc": "Green palette, outline icons", "ocean": "Ocean Fresh", "oceanDesc": "Blue palette, outline icons", "sunset": "Sunset Kitchen", "sunsetDesc": "Warm amber palette, emoji icons", "berry": "Berry Modern", "berryDesc": "Violet palette, bold icons" }, "nav": { "dashboard": "Dashboard", "breakfast": "Breakfast", "secondBreakfast": "Second Breakfast", "lunch": "Lunch", "dinner": "Dinner", "allMeals": "All Meals", "manageMeals": "Manage Meals", "mealPlanner": "Meal Planner", "shoppingList": "Shopping List", "dietTracker": "My Diet", "ingredientCatalog": "Ingredients", "dietGenerator": "Diet Generator", "recipeGenerator": "Recipe Generator", "logout": "Logout", "user": "User", "toggleNav": "Toggle navigation", "toggleTheme": "Toggle theme", "lightMode": "Switch to light mode", "darkMode": "Switch to dark mode" }, "categories": { "breakfast": "Breakfast", "secondBreakfast": "Second Breakfast", "lunch": "Lunch", "dinner": "Dinner", "unknown": "Unknown" }, "common": { "loading": "Loading...", "tryAgain": "Try again", "back": "Back", "add": "Add", "category": "Category", "all": "All", "search": "Search", "save": "Save", "cancel": "Cancel", "edit": "Edit", "delete": "Delete", "optional": "optional", "recipeCount_one": "{{count}} recipe", "recipeCount_other": "{{count}} recipes", "selectedCount_one": "{{count}} selected", "selectedCount_other": "{{count}} selected" }, "auth": { "signInSubtitle": "Sign in to plan your meals", "email": "Email", "password": "Password", "emailPlaceholder": "you@example.com", "signIn": "Sign in", "signingIn": "Signing in...", "noAccount": "Don't have an account?", "createOne": "Create one", "createAccountTitle": "Create account", "createAccountSubtitle": "Join DailyMeals to browse and plan meals", "displayName": "Display name", "displayNamePlaceholder": "Piotr", "confirmPassword": "Confirm password", "passwordHint": "At least 8 characters with uppercase, lowercase, and a number.", "createAccount": "Create account", "creatingAccount": "Creating account...", "hasAccount": "Already have an account?" }, "validation": { "emailRequired": "Email is required.", "emailInvalid": "Enter a valid email address.", "passwordRequired": "Password is required.", "displayNameTooLong": "Display name is too long.", "passwordMinLength": "Password must be at least 8 characters.", "passwordUppercase": "Include at least one uppercase letter.", "passwordLowercase": "Include at least one lowercase letter.", "passwordDigit": "Include at least one digit.", "confirmPasswordRequired": "Please confirm your password.", "passwordsMismatch": "Passwords do not match.", "recipeNameRequired": "Recipe name is required.", "ingredientNameRequired": "Ingredient name is required.", "stepNumberMin": "Step number must be at least 1.", "stepDescriptionRequired": "Step description is required.", "stepsMin": "Add at least one preparation step." }, "errors": { "generic": "Something went wrong.", "signInFailed": "Unable to sign in.", "registerFailed": "Unable to create account.", "loadCategoriesFailed": "Failed to load categories.", "loadRecipesFailed": "Failed to load recipes.", "loadRecipeFailed": "Failed to load recipe.", "loadDietFailed": "Failed to load diet data.", "loadMealPlanFailed": "Failed to load meal plan.", "loadShoppingListFailed": "Failed to load shopping list.", "loadIngredientCatalogFailed": "Failed to load ingredient catalog.", "saveIngredientFailed": "Failed to save ingredient.", "saveRecipeFailed": "Failed to save recipe.", "recalculateMacrosFailed": "Failed to recalculate recipe macros.", "importFailed": "Import failed.", "pdfLoadFailed": "Could not load recipes for export.", "pdfGenerateFailed": "PDF generation failed.", "pdfRenderAreaMissing": "PDF render area not found.", "pdfNothingToExport": "Nothing to export." }, "dashboard": { "welcome": "Welcome back", "welcomeNamed": "Welcome back, {{name}}", "subtitle": "Browse recipes by meal category or explore everything at once.", "viewRecipes": "View recipes" }, "recipes": { "allMealsTitle": "All Meals", "allMealsSubtitle": "Select recipes and export them with a combined shopping list.", "selectAllVisible": "Select all visible", "deselectAll": "Deselect all", "searchRecipes": "Search recipes...", "searchByIngredient": "Search by ingredient...", "searchByIngredientLabel": "Search by ingredient", "searchByNameAria": "Search recipes by name", "searchByIngredientAria": "Search recipes by ingredient", "noMatchingTitle": "No matching recipes", "noMatchingIngredient": "No recipes contain that ingredient. Try a different ingredient name.", "noMatchingFilter": "Try adjusting your search or category filter.", "emptyCategoryTitle": "No {{category}} recipes yet", "emptyCategoryDescription": "There are currently no recipes in this category.", "selectRecipe": "Select {{name}}", "prepTime": "{{count}} min preparation", "calories": "Calories", "protein": "Protein", "fat": "Fat", "carbs": "Carbs", "ingredients": "Ingredients", "preparation": "Preparation", "noIngredients": "No ingredients listed.", "noSteps": "No steps listed.", "kcal": "{{count}} kcal", "minutes": "{{count}} min" }, "manage": { "title": "Manage Meals", "subtitle": "Add recipes manually or import them from an Excel spreadsheet.", "tabManual": "Add manually", "tabEdit": "Edit recipes", "tabImport": "Import Excel", "savedSuccess": "\"{{name}}\" saved successfully.", "basicInfo": "Basic info", "recipeName": "Recipe name", "recipeNamePlaceholder": "Grilled chicken salad", "prepTimeMin": "Prep time (min)", "caloriesKcal": "Calories (kcal)", "proteinG": "Protein (g)", "fatG": "Fat (g)", "carbsG": "Carbs (g)", "preparationSteps": "Preparation steps", "addStep": "Add step", "stepPlaceholder": "Describe this step...", "ingredientName": "Name", "ingredientGrams": "Grams", "ingredientUnit": "Unit", "removeIngredient": "Remove ingredient", "removeStep": "Remove step", "saveRecipe": "Save recipe", "updateRecipe": "Update recipe", "updatedSuccess": "\"{{name}}\" updated successfully.", "selectRecipeToEdit": "Select a recipe from the list to edit.", "catalogLink": "Link to ingredient catalog", "estimatedFromCatalog": "Estimated from linked catalog items", "unlinkedIngredientsWarning": "{{count}} ingredient(s) have grams but no catalog link — macros may be incomplete.", "recalculateMacros": "Recalculate all macros", "recalculating": "Recalculating…", "recalculateSuccess": "Updated {{updated}} of {{processed}} recipes. {{unlinked}} ingredient row(s) still unlinked.", "macroHint": "Estimated: {{calories}} kcal · P {{protein}}g · F {{fat}}g · C {{carbs}}g", "saving": "Saving...", "importTitle": "Import from Excel", "importDescription": "Use the template with three sheets: Recipes, Ingredients, and Steps. Recipe names must match across sheets.", "downloadTemplate": "Download template", "uploadLabel": "Upload filled .xlsx file", "importComplete": "Import complete", "createdCount": "Created: {{count}}", "skippedCount": "Skipped: {{count}}", "importRecipes": "Import recipes", "importing": "Importing...", "excelFormatTitle": "Excel format", "excelRecipesSheet": "Recipes: Name, MealCategory (Breakfast / Lunch / 0–3), Calories, Protein, Fat, Carbs, PrepTimeMinutes", "excelIngredientsSheet": "Ingredients: RecipeName, Name, AmountGrams, Unit, SortOrder", "excelStepsSheet": "Steps: RecipeName, StepNumber, Description", "duplicateSkipped": "Duplicate recipe names are skipped." }, "generators": { "diet": { "title": "Diet Generator", "subtitle": "Calculate targets from your profile, build a weekly plan from your recipe catalog, and save it to the meal planner.", "profileTitle": "Your profile", "heightCm": "Height (cm)", "weightKg": "Weight (kg)", "age": "Age", "sex": "Sex", "male": "Male", "female": "Female", "activity": "Activity level", "sedentary": "Sedentary", "light": "Light", "moderate": "Moderate", "active": "Active", "veryActive": "Very active", "goal": "Goal", "loseWeight": "Lose weight", "maintain": "Maintain", "gainMuscle": "Gain muscle", "recomp": "Recomposition", "allergies": "Allergies / notes", "continue": "Calculate targets", "macrosTitle": "Daily targets", "acceptAndGenerate": "Accept & generate 7-day plan", "planHint": "Each day should be within ±10 kcal of your target. Lock meals you like, regenerate others.", "lock": "Lock", "unlock": "Unlock", "viewRecipe": "Details", "noAlternativeMeals": "No other recipes are available for this meal — all suitable options are already in your plan.", "commit": "Save plan to calendar", "done": "Plan saved to your meal planner and daily goals.", "newPlan": "Create another plan", "error": "Diet generator failed." }, "recipe": { "title": "Recipe Generator", "subtitle": "Create several recipe drafts with AI, review them, and save the ones you like.", "constraintsTitle": "What should we cook?", "prompt": "Describe the meal", "promptPlaceholder": "Light breakfast with oatmeal and fruit…", "targetCalories": "Target calories (kcal)", "targetCaloriesOptional": "e.g. 500", "targetCaloriesHint": "Ingredient amounts will be scaled to match (±10 kcal).", "caloriesWithTarget": "{{actual}} kcal (target: {{target}})", "maxPrep": "Max prep time (min)", "exclusions": "Exclude ingredients", "generate": "Generate recipe", "recipeCount": "How many recipes to generate", "reviewHint": "Review {{count}} generated recipes. Uncheck or remove ones you don't want, then save the rest.", "selectAll": "Select all", "remove": "Remove", "saveSelected": "Save selected ({{count}})", "doneMultiple": "{{count}} recipes saved to your library.", "generateMore": "Generate more recipes", "regenIngredients": "Regenerate ingredients", "regenSteps": "Regenerate steps", "regenFull": "Regenerate all", "save": "Save to library", "done": "Recipe saved.", "viewRecipe": "View recipe", "error": "Recipe generator failed." } }, "pdf": { "generate": "Generate PDF", "preparing": "Preparing...", "generating": "Generating...", "prepTime": "Prep time: {{count}} min", "shoppingList": "Shopping List", "generatedOn_one": "Generated {{date}} · {{count}} recipe", "generatedOn_other": "Generated {{date}} · {{count}} recipes", "recipesInExport": "Recipes in this export", "toTaste": "to taste", "dayPlanTitle": "Daily meal plan — {{date}}", "emptySlot": "Not planned", "emptyShoppingList": "No shopping items for this day.", "plannedMealMeta": "{{slot}} · {{portions}}× portions", "dayShoppingSubtitle": "List for {{date}} · {{count}} meals" }, "diet": { "title": "My Diet", "subtitle": "Track what you eat and drink, set daily targets, and stay on top of reminders.", "tabToday": "Today", "tabHistory": "History", "tabGoals": "Goals", "tabReminders": "Reminders", "goToday": "Today", "notToday": "not today", "quickLog": "Quick log", "copyYesterday": "Copy yesterday's meals", "recentMeals": "Recent", "favorites": "Favorites", "days": "days", "historyCalories": "Calories over time", "historyMax": "Peak: {{max}} kcal", "noHistory": "No history for this period.", "mealsOnDate": "Meals on {{date}}", "drinksOnDate": "Drinks on {{date}}", "editReminder": "Edit reminder", "calories": "Calories", "water": "Water", "snack": "Snack", "logDrink": "Log a drink", "logMeal": "Mark a meal as eaten", "searchRecipe": "From a recipe", "orCustomMeal": "Or enter a custom meal name", "markEaten": "Mark as eaten", "mealsToday": "Meals today", "drinksToday": "Drinks today", "nothingLogged": "Nothing logged yet.", "noMacros": "No nutrition info", "removeEntry": "Remove entry", "dailyGoals": "Daily goals", "goalsHint": "Set targets like Lifesum or MyFitnessPal — the Today tab shows what is left.", "calorieGoal": "Calorie goal (kcal)", "waterGoal": "Water goal (ml)", "saveGoals": "Save goals", "addReminder": "Add reminder", "reminderType": "Type", "reminderWater": "Drink water", "reminderMeal": "Meal time", "reminderCustom": "Custom", "reminderTitle": "Title", "reminderTitlePlaceholder": "Drink a glass of water", "reminderTime": "Time", "saveReminder": "Save reminder", "yourReminders": "Your reminders", "noReminders": "No reminders yet.", "remaining": "Left", "portions": "Portions", "fromCatalog": "From ingredient catalog", "noCatalogItem": "None", "grams": "Amount (g)", "mealPreview": "This meal adds", "remainingAfter": "After logging you will still have", "suggestionsTitle": "What to eat next", "suggestionsHint": "Based on what you still need today.", "logSuggestion": "Log", "suggestionReasons": { "highProtein": "High protein", "needCarbs": "Good carbs", "needFat": "Healthy fats", "needCalories": "Energy boost", "balanced": "Balanced choice" } }, "mealPlanner": { "title": "Meal Planner", "subtitle": "Plan recipes for each day of the week.", "today": "This week", "addRecipe": "Add recipe", "dailyTarget": "Daily calorie target", "daySummary": "{{logged}} / {{target}} kcal planned", "remaining": "{{count}} kcal left", "slotHint": "Suggested ~{{count}} kcal for this meal", "suggestionsTitle": "Suggestions for this slot", "noSuggestions": "Set a daily calorie target to see suggestions.", "estimatedMeal": "This meal: ~{{count}} kcal", "selectedRecipe": "Selected: {{name}}", "clearSelection": "Clear selection", "exportDay": "Export day plan (PDF)", "includingSelection": "incl. current pick: {{count}} kcal" }, "shoppingList": { "title": "Shopping List", "subtitle": "Aggregated ingredients from your meal plan.", "from": "From", "to": "To", "load": "Load list", "clearChecks": "Clear checked items", "empty": "No items for this date range.", "checklistHint": "Checked items are saved locally in your browser." }, "ingredientCatalog": { "title": "Ingredient catalog", "subtitle": "Nutrition values per 100 g, grouped by food category.", "allCategories": "All", "searchPlaceholder": "Search ingredients…", "noResultsTitle": "No ingredients found", "noResultsDescription": "Try another category or search term.", "per100gNote": "All values are per 100 g.", "addIngredient": "Add ingredient", "editIngredient": "Edit ingredient", "selectCategory": "Select category", "nameEn": "Name (English)", "namePlLabel": "Name (Polish)", "formInvalid": "Please fill in category and name.", "deleteConfirm": "Remove this ingredient from the catalog?", "columns": { "name": "Ingredient", "category": "Category", "calories": "kcal", "protein": "Protein (g)", "fat": "Fat (g)", "carbs": "Carbs (g)", "fiber": "Fiber (g)" }, "categories": { "meat": "Meat", "poultry": "Poultry", "fish": "Fish", "seafood": "Seafood", "vegetables": "Vegetables", "fruits": "Fruits", "dairy": "Dairy", "eggs": "Eggs", "grains": "Grains", "legumes": "Legumes", "nuts": "Nuts & seeds", "oils": "Oils & fats" } }, "notFound": { "title": "Page not found", "description": "The page you're looking for doesn't exist.", "backToDashboard": "Back to dashboard" } }