Files
DailyMeals/meal-plan-frontend-angular/public/i18n/en.json
2026-06-24 22:56:40 +02:00

444 lines
17 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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",
"recalculateCaloriesTitle": "Adjust calories",
"recalculateCaloriesHint": "Enter a target kcal — ingredient amounts will be scaled (catalog + AI).",
"targetCalories": "Target kcal",
"recalculate": "Recalculate",
"applyRecalculation": "Save changes",
"recalculatePreview": "Preview: {{previous}} → {{next}} kcal (target: {{target}})",
"recalculateUnlinkedHint": "{{count}} ingredient(s) not linked to the catalog — values may be less accurate.",
"recalculateCaloriesInvalid": "Enter calories between 50 and 10000 kcal.",
"recalculateCaloriesFailed": "Could not recalculate the recipe."
},
"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 / 03), 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"
}
}