* Extended functionalities
* Added different UIs
This commit is contained in:
434
meal-plan-frontend-angular/public/i18n/en.json
Normal file
434
meal-plan-frontend-angular/public/i18n/en.json
Normal file
@@ -0,0 +1,434 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
}
|
||||
440
meal-plan-frontend-angular/public/i18n/pl.json
Normal file
440
meal-plan-frontend-angular/public/i18n/pl.json
Normal file
@@ -0,0 +1,440 @@
|
||||
{
|
||||
"app": {
|
||||
"name": "DailyMeals"
|
||||
},
|
||||
"language": {
|
||||
"label": "Język",
|
||||
"en": "Angielski",
|
||||
"pl": "Polski"
|
||||
},
|
||||
"layout": {
|
||||
"label": "Układ",
|
||||
"sidebar": "Panel boczny",
|
||||
"topnav": "Nawigacja górna",
|
||||
"compact": "Wąski panel",
|
||||
"wide": "Szeroki panel",
|
||||
"wideTagline": "Planuj posiłki wygodnie"
|
||||
},
|
||||
"appearance": {
|
||||
"label": "Wygląd",
|
||||
"forest": "Leśny klasyczny",
|
||||
"forestDesc": "Zielona paleta, ikony konturowe",
|
||||
"ocean": "Oceaniczna świeżość",
|
||||
"oceanDesc": "Niebieska paleta, ikony konturowe",
|
||||
"sunset": "Zachód kuchni",
|
||||
"sunsetDesc": "Ciepła bursztynowa paleta, emoji",
|
||||
"berry": "Jagodowy modern",
|
||||
"berryDesc": "Fioletowa paleta, pogrubione ikony"
|
||||
},
|
||||
"nav": {
|
||||
"dashboard": "Panel",
|
||||
"breakfast": "Śniadanie",
|
||||
"secondBreakfast": "Drugie śniadanie",
|
||||
"lunch": "Obiad",
|
||||
"dinner": "Kolacja",
|
||||
"allMeals": "Wszystkie posiłki",
|
||||
"manageMeals": "Zarządzaj posiłkami",
|
||||
"mealPlanner": "Plan posiłków",
|
||||
"shoppingList": "Lista zakupów",
|
||||
"dietTracker": "Moja dieta",
|
||||
"ingredientCatalog": "Składniki",
|
||||
"dietGenerator": "Generator diety",
|
||||
"recipeGenerator": "Generator przepisów",
|
||||
"logout": "Wyloguj",
|
||||
"user": "Użytkownik",
|
||||
"toggleNav": "Przełącz nawigację",
|
||||
"toggleTheme": "Przełącz motyw",
|
||||
"lightMode": "Przełącz na jasny motyw",
|
||||
"darkMode": "Przełącz na ciemny motyw"
|
||||
},
|
||||
"categories": {
|
||||
"breakfast": "Śniadanie",
|
||||
"secondBreakfast": "Drugie śniadanie",
|
||||
"lunch": "Obiad",
|
||||
"dinner": "Kolacja",
|
||||
"unknown": "Nieznana"
|
||||
},
|
||||
"common": {
|
||||
"loading": "Ładowanie...",
|
||||
"tryAgain": "Spróbuj ponownie",
|
||||
"back": "Wstecz",
|
||||
"add": "Dodaj",
|
||||
"category": "Kategoria",
|
||||
"all": "Wszystkie",
|
||||
"search": "Szukaj",
|
||||
"save": "Zapisz",
|
||||
"cancel": "Anuluj",
|
||||
"edit": "Edytuj",
|
||||
"delete": "Usuń",
|
||||
"optional": "opcjonalnie",
|
||||
"recipeCount_one": "{{count}} przepis",
|
||||
"recipeCount_few": "{{count}} przepisy",
|
||||
"recipeCount_many": "{{count}} przepisów",
|
||||
"recipeCount_other": "{{count}} przepisów",
|
||||
"selectedCount_one": "Wybrano: {{count}}",
|
||||
"selectedCount_few": "Wybrano: {{count}}",
|
||||
"selectedCount_many": "Wybrano: {{count}}",
|
||||
"selectedCount_other": "Wybrano: {{count}}"
|
||||
},
|
||||
"auth": {
|
||||
"signInSubtitle": "Zaloguj się, aby planować posiłki",
|
||||
"email": "E-mail",
|
||||
"password": "Hasło",
|
||||
"emailPlaceholder": "ty@example.com",
|
||||
"signIn": "Zaloguj się",
|
||||
"signingIn": "Logowanie...",
|
||||
"noAccount": "Nie masz konta?",
|
||||
"createOne": "Utwórz je",
|
||||
"createAccountTitle": "Utwórz konto",
|
||||
"createAccountSubtitle": "Dołącz do DailyMeals, aby przeglądać i planować posiłki",
|
||||
"displayName": "Nazwa wyświetlana",
|
||||
"displayNamePlaceholder": "Piotr",
|
||||
"confirmPassword": "Potwierdź hasło",
|
||||
"passwordHint": "Co najmniej 8 znaków, w tym wielka litera, mała litera i cyfra.",
|
||||
"createAccount": "Utwórz konto",
|
||||
"creatingAccount": "Tworzenie konta...",
|
||||
"hasAccount": "Masz już konto?"
|
||||
},
|
||||
"validation": {
|
||||
"emailRequired": "E-mail jest wymagany.",
|
||||
"emailInvalid": "Podaj prawidłowy adres e-mail.",
|
||||
"passwordRequired": "Hasło jest wymagane.",
|
||||
"displayNameTooLong": "Nazwa wyświetlana jest zbyt długa.",
|
||||
"passwordMinLength": "Hasło musi mieć co najmniej 8 znaków.",
|
||||
"passwordUppercase": "Dołącz co najmniej jedną wielką literę.",
|
||||
"passwordLowercase": "Dołącz co najmniej jedną małą literę.",
|
||||
"passwordDigit": "Dołącz co najmniej jedną cyfrę.",
|
||||
"confirmPasswordRequired": "Potwierdź hasło.",
|
||||
"passwordsMismatch": "Hasła nie są identyczne.",
|
||||
"recipeNameRequired": "Nazwa przepisu jest wymagana.",
|
||||
"ingredientNameRequired": "Nazwa składnika jest wymagana.",
|
||||
"stepNumberMin": "Numer kroku musi być co najmniej 1.",
|
||||
"stepDescriptionRequired": "Opis kroku jest wymagany.",
|
||||
"stepsMin": "Dodaj co najmniej jeden krok przygotowania."
|
||||
},
|
||||
"errors": {
|
||||
"generic": "Coś poszło nie tak.",
|
||||
"signInFailed": "Nie udało się zalogować.",
|
||||
"registerFailed": "Nie udało się utworzyć konta.",
|
||||
"loadCategoriesFailed": "Nie udało się załadować kategorii.",
|
||||
"loadRecipesFailed": "Nie udało się załadować przepisów.",
|
||||
"loadRecipeFailed": "Nie udało się załadować przepisu.",
|
||||
"loadDietFailed": "Nie udało się załadować danych diety.",
|
||||
"loadMealPlanFailed": "Nie udało się załadować planu posiłków.",
|
||||
"loadShoppingListFailed": "Nie udało się załadować listy zakupów.",
|
||||
"loadIngredientCatalogFailed": "Nie udało się załadować katalogu składników.",
|
||||
"saveIngredientFailed": "Nie udało się zapisać składnika.",
|
||||
"saveRecipeFailed": "Nie udało się zapisać przepisu.",
|
||||
"recalculateMacrosFailed": "Nie udało się przeliczyć makroskładników przepisów.",
|
||||
"importFailed": "Import nie powiódł się.",
|
||||
"pdfLoadFailed": "Nie udało się załadować przepisów do eksportu.",
|
||||
"pdfGenerateFailed": "Generowanie PDF nie powiodło się.",
|
||||
"pdfRenderAreaMissing": "Nie znaleziono obszaru renderowania PDF.",
|
||||
"pdfNothingToExport": "Brak danych do eksportu."
|
||||
},
|
||||
"dashboard": {
|
||||
"welcome": "Witaj ponownie",
|
||||
"welcomeNamed": "Witaj ponownie, {{name}}",
|
||||
"subtitle": "Przeglądaj przepisy według kategorii posiłków lub odkrywaj wszystkie naraz.",
|
||||
"viewRecipes": "Zobacz przepisy"
|
||||
},
|
||||
"recipes": {
|
||||
"allMealsTitle": "Wszystkie posiłki",
|
||||
"allMealsSubtitle": "Wybierz przepisy i wyeksportuj je wraz ze wspólną listą zakupów.",
|
||||
"selectAllVisible": "Zaznacz widoczne",
|
||||
"deselectAll": "Odznacz wszystkie",
|
||||
"searchRecipes": "Szukaj przepisów...",
|
||||
"searchByIngredient": "Szukaj po składniku...",
|
||||
"searchByIngredientLabel": "Szukaj po składniku",
|
||||
"searchByNameAria": "Szukaj przepisów po nazwie",
|
||||
"searchByIngredientAria": "Szukaj przepisów po składniku",
|
||||
"noMatchingTitle": "Brak pasujących przepisów",
|
||||
"noMatchingIngredient": "Żaden przepis nie zawiera tego składnika. Spróbuj innej nazwy.",
|
||||
"noMatchingFilter": "Spróbuj zmienić wyszukiwanie lub filtr kategorii.",
|
||||
"emptyCategoryTitle": "Brak przepisów: {{category}}",
|
||||
"emptyCategoryDescription": "W tej kategorii nie ma jeszcze żadnych przepisów.",
|
||||
"selectRecipe": "Wybierz {{name}}",
|
||||
"prepTime": "{{count}} min przygotowania",
|
||||
"calories": "Kalorie",
|
||||
"protein": "Białko",
|
||||
"fat": "Tłuszcz",
|
||||
"carbs": "Węglowodany",
|
||||
"ingredients": "Składniki",
|
||||
"preparation": "Przygotowanie",
|
||||
"noIngredients": "Brak składników.",
|
||||
"noSteps": "Brak kroków.",
|
||||
"kcal": "{{count}} kcal",
|
||||
"minutes": "{{count}} min"
|
||||
},
|
||||
"manage": {
|
||||
"title": "Zarządzaj posiłkami",
|
||||
"subtitle": "Dodawaj przepisy ręcznie lub importuj je z arkusza Excel.",
|
||||
"tabManual": "Dodaj ręcznie",
|
||||
"tabEdit": "Edytuj przepisy",
|
||||
"tabImport": "Import Excel",
|
||||
"savedSuccess": "„{{name}}” zapisano pomyślnie.",
|
||||
"basicInfo": "Podstawowe informacje",
|
||||
"recipeName": "Nazwa przepisu",
|
||||
"recipeNamePlaceholder": "Sałatka z grillowanym kurczakiem",
|
||||
"prepTimeMin": "Czas przygotowania (min)",
|
||||
"caloriesKcal": "Kalorie (kcal)",
|
||||
"proteinG": "Białko (g)",
|
||||
"fatG": "Tłuszcz (g)",
|
||||
"carbsG": "Węglowodany (g)",
|
||||
"preparationSteps": "Kroki przygotowania",
|
||||
"addStep": "Dodaj krok",
|
||||
"stepPlaceholder": "Opisz ten krok...",
|
||||
"ingredientName": "Nazwa",
|
||||
"ingredientGrams": "Gramy",
|
||||
"ingredientUnit": "Jednostka",
|
||||
"removeIngredient": "Usuń składnik",
|
||||
"removeStep": "Usuń krok",
|
||||
"saveRecipe": "Zapisz przepis",
|
||||
"updateRecipe": "Aktualizuj przepis",
|
||||
"updatedSuccess": "„{{name}}” zaktualizowano pomyślnie.",
|
||||
"selectRecipeToEdit": "Wybierz przepis z listy, aby go edytować.",
|
||||
"catalogLink": "Powiąż z katalogiem składników",
|
||||
"estimatedFromCatalog": "Szacunkowo z powiązanych składników",
|
||||
"unlinkedIngredientsWarning": "{{count}} składnik(ów) ma gramy, ale brak powiązania z katalogiem — makra mogą być niepełne.",
|
||||
"recalculateMacros": "Przelicz wszystkie makra",
|
||||
"recalculating": "Przeliczanie…",
|
||||
"recalculateSuccess": "Zaktualizowano {{updated}} z {{processed}} przepisów. {{unlinked}} wierszy składników nadal niepowiązanych.",
|
||||
"macroHint": "Szacunkowo: {{calories}} kcal · B {{protein}}g · T {{fat}}g · W {{carbs}}g",
|
||||
"saving": "Zapisywanie...",
|
||||
"importTitle": "Import z Excela",
|
||||
"importDescription": "Użyj szablonu z trzema arkuszami: Recipes, Ingredients i Steps. Nazwy przepisów muszą się zgadzać między arkuszami.",
|
||||
"downloadTemplate": "Pobierz szablon",
|
||||
"uploadLabel": "Prześlij wypełniony plik .xlsx",
|
||||
"importComplete": "Import zakończony",
|
||||
"createdCount": "Utworzono: {{count}}",
|
||||
"skippedCount": "Pominięto: {{count}}",
|
||||
"importRecipes": "Importuj przepisy",
|
||||
"importing": "Importowanie...",
|
||||
"excelFormatTitle": "Format Excela",
|
||||
"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": "Duplikaty nazw przepisów są pomijane."
|
||||
},
|
||||
"generators": {
|
||||
"diet": {
|
||||
"title": "Generator diety",
|
||||
"subtitle": "Oblicz cele z profilu, zbuduj tygodniowy plan z katalogu przepisów i zapisz w planerze.",
|
||||
"profileTitle": "Twój profil",
|
||||
"heightCm": "Wzrost (cm)",
|
||||
"weightKg": "Waga (kg)",
|
||||
"age": "Wiek",
|
||||
"sex": "Płeć",
|
||||
"male": "Mężczyzna",
|
||||
"female": "Kobieta",
|
||||
"activity": "Poziom aktywności",
|
||||
"sedentary": "Siedzący",
|
||||
"light": "Lekka",
|
||||
"moderate": "Umiarkowana",
|
||||
"active": "Aktywna",
|
||||
"veryActive": "Bardzo aktywna",
|
||||
"goal": "Cel",
|
||||
"loseWeight": "Redukcja wagi",
|
||||
"maintain": "Utrzymanie",
|
||||
"gainMuscle": "Budowa mięśni",
|
||||
"recomp": "Rekompozycja",
|
||||
"allergies": "Alergie / uwagi",
|
||||
"continue": "Oblicz cele",
|
||||
"macrosTitle": "Dzienne cele",
|
||||
"acceptAndGenerate": "Akceptuj i generuj plan 7 dni",
|
||||
"planHint": "Każdy dzień powinien mieścić się w ±10 kcal od celu. Zablokuj lub wygeneruj ponownie posiłki.",
|
||||
"lock": "Zablokuj",
|
||||
"unlock": "Odblokuj",
|
||||
"viewRecipe": "Szczegóły",
|
||||
"noAlternativeMeals": "Brak innych przepisów na ten posiłek — wszystkie pasujące opcje są już w planie.",
|
||||
"commit": "Zapisz plan w kalendarzu",
|
||||
"done": "Plan zapisany w planerze i celach dziennych.",
|
||||
"newPlan": "Utwórz kolejny plan",
|
||||
"error": "Generator diety nie powiódł się."
|
||||
},
|
||||
"recipe": {
|
||||
"title": "Generator przepisów",
|
||||
"subtitle": "Wygeneruj kilka propozycji przepisów z AI, przejrzyj je i zapisz te, które Ci pasują.",
|
||||
"constraintsTitle": "Co ugotować?",
|
||||
"prompt": "Opisz posiłek",
|
||||
"promptPlaceholder": "Lekkie śniadanie z owsianką i owocami…",
|
||||
"targetCalories": "Docelowa kaloryczność (kcal)",
|
||||
"targetCaloriesOptional": "np. 500",
|
||||
"targetCaloriesHint": "Składniki zostaną dopasowane do tej wartości (±10 kcal).",
|
||||
"caloriesWithTarget": "{{actual}} kcal (cel: {{target}})",
|
||||
"maxPrep": "Maks. czas przygotowania (min)",
|
||||
"exclusions": "Wyklucz składniki",
|
||||
"generate": "Generuj przepis",
|
||||
"recipeCount": "Ile przepisów wygenerować",
|
||||
"reviewHint": "Przejrzyj {{count}} wygenerowanych przepisów. Odznacz lub usuń te, których nie chcesz, i zapisz resztę.",
|
||||
"selectAll": "Zaznacz wszystkie",
|
||||
"remove": "Usuń",
|
||||
"saveSelected": "Zapisz zaznaczone ({{count}})",
|
||||
"doneMultiple": "Zapisano {{count}} przepisów w bibliotece.",
|
||||
"generateMore": "Generuj kolejne przepisy",
|
||||
"regenIngredients": "Generuj składniki ponownie",
|
||||
"regenSteps": "Generuj kroki ponownie",
|
||||
"regenFull": "Generuj całość ponownie",
|
||||
"save": "Zapisz w bibliotece",
|
||||
"done": "Przepis zapisany.",
|
||||
"viewRecipe": "Zobacz przepis",
|
||||
"error": "Generator przepisów nie powiódł się."
|
||||
}
|
||||
},
|
||||
"pdf": {
|
||||
"generate": "Generuj PDF",
|
||||
"preparing": "Przygotowywanie...",
|
||||
"generating": "Generowanie...",
|
||||
"prepTime": "Czas przygotowania: {{count}} min",
|
||||
"shoppingList": "Lista zakupów",
|
||||
"generatedOn_one": "Wygenerowano {{date}} · {{count}} przepis",
|
||||
"generatedOn_few": "Wygenerowano {{date}} · {{count}} przepisy",
|
||||
"generatedOn_many": "Wygenerowano {{date}} · {{count}} przepisów",
|
||||
"generatedOn_other": "Wygenerowano {{date}} · {{count}} przepisów",
|
||||
"recipesInExport": "Przepisy w tym eksporcie",
|
||||
"toTaste": "do smaku",
|
||||
"dayPlanTitle": "Plan posiłków — {{date}}",
|
||||
"emptySlot": "Nie zaplanowano",
|
||||
"emptyShoppingList": "Brak składników do zakupu dla tego dnia.",
|
||||
"plannedMealMeta": "{{slot}} · {{portions}}× porcji",
|
||||
"dayShoppingSubtitle": "Lista na {{date}} · {{count}} posiłków"
|
||||
},
|
||||
"diet": {
|
||||
"title": "Moja dieta",
|
||||
"subtitle": "Śledź posiłki i napoje, ustaw cele dzienne i przypomnienia.",
|
||||
"tabToday": "Dziś",
|
||||
"tabHistory": "Historia",
|
||||
"tabGoals": "Cele",
|
||||
"tabReminders": "Przypomnienia",
|
||||
"goToday": "Dziś",
|
||||
"notToday": "inny dzień",
|
||||
"quickLog": "Szybkie logowanie",
|
||||
"copyYesterday": "Skopiuj wczorajsze posiłki",
|
||||
"recentMeals": "Ostatnie",
|
||||
"favorites": "Ulubione",
|
||||
"days": "dni",
|
||||
"historyCalories": "Kalorie w czasie",
|
||||
"historyMax": "Szczyt: {{max}} kcal",
|
||||
"noHistory": "Brak historii w tym okresie.",
|
||||
"mealsOnDate": "Posiłki {{date}}",
|
||||
"drinksOnDate": "Napoje {{date}}",
|
||||
"editReminder": "Edytuj przypomnienie",
|
||||
"calories": "Kalorie",
|
||||
"water": "Woda",
|
||||
"snack": "Przekąska",
|
||||
"logDrink": "Dodaj napój",
|
||||
"logMeal": "Oznacz zjedzony posiłek",
|
||||
"searchRecipe": "Z przepisu",
|
||||
"orCustomMeal": "Lub wpisz własną nazwę posiłku",
|
||||
"markEaten": "Oznacz jako zjedzone",
|
||||
"mealsToday": "Posiłki dziś",
|
||||
"drinksToday": "Napoje dziś",
|
||||
"nothingLogged": "Nic jeszcze nie zalogowano.",
|
||||
"noMacros": "Brak danych odżywczych",
|
||||
"removeEntry": "Usuń wpis",
|
||||
"dailyGoals": "Cele dzienne",
|
||||
"goalsHint": "Ustaw cele jak w Lifesum lub MyFitnessPal — zakładka Dziś pokaże, co zostało.",
|
||||
"calorieGoal": "Cel kalorii (kcal)",
|
||||
"waterGoal": "Cel wody (ml)",
|
||||
"saveGoals": "Zapisz cele",
|
||||
"addReminder": "Dodaj przypomnienie",
|
||||
"reminderType": "Typ",
|
||||
"reminderWater": "Pij wodę",
|
||||
"reminderMeal": "Pora posiłku",
|
||||
"reminderCustom": "Własne",
|
||||
"reminderTitle": "Tytuł",
|
||||
"reminderTitlePlaceholder": "Wypij szklankę wody",
|
||||
"reminderTime": "Godzina",
|
||||
"saveReminder": "Zapisz przypomnienie",
|
||||
"yourReminders": "Twoje przypomnienia",
|
||||
"noReminders": "Brak przypomnień.",
|
||||
"remaining": "Pozostało",
|
||||
"portions": "Porcje",
|
||||
"fromCatalog": "Z katalogu składników",
|
||||
"noCatalogItem": "Brak",
|
||||
"grams": "Ilość (g)",
|
||||
"mealPreview": "Ten posiłek dodaje",
|
||||
"remainingAfter": "Po zapisaniu zostanie Ci",
|
||||
"suggestionsTitle": "Co warto zjeść dalej",
|
||||
"suggestionsHint": "Na podstawie tego, czego jeszcze brakuje dziś.",
|
||||
"logSuggestion": "Zapisz",
|
||||
"suggestionReasons": {
|
||||
"highProtein": "Dużo białka",
|
||||
"needCarbs": "Dobre węglowodany",
|
||||
"needFat": "Zdrowe tłuszcze",
|
||||
"needCalories": "Energia",
|
||||
"balanced": "Zbilansowany wybór"
|
||||
}
|
||||
},
|
||||
"mealPlanner": {
|
||||
"title": "Plan posiłków",
|
||||
"subtitle": "Planuj przepisy na każdy dzień tygodnia.",
|
||||
"today": "Ten tydzień",
|
||||
"addRecipe": "Dodaj przepis",
|
||||
"dailyTarget": "Cel kalorii na dzień",
|
||||
"daySummary": "Zaplanowano {{logged}} / {{target}} kcal",
|
||||
"remaining": "Pozostało {{count}} kcal",
|
||||
"slotHint": "Sugerowane ~{{count}} kcal na ten posiłek",
|
||||
"suggestionsTitle": "Propozycje na ten posiłek",
|
||||
"noSuggestions": "Ustaw cel kalorii na dzień, aby zobaczyć propozycje.",
|
||||
"estimatedMeal": "Ten posiłek: ~{{count}} kcal",
|
||||
"selectedRecipe": "Wybrany: {{name}}",
|
||||
"clearSelection": "Wyczyść wybór",
|
||||
"exportDay": "Eksportuj plan dnia (PDF)",
|
||||
"includingSelection": "w tym bieżący wybór: {{count}} kcal"
|
||||
},
|
||||
"shoppingList": {
|
||||
"title": "Lista zakupów",
|
||||
"subtitle": "Składniki zebrane z planu posiłków.",
|
||||
"from": "Od",
|
||||
"to": "Do",
|
||||
"load": "Załaduj listę",
|
||||
"clearChecks": "Wyczyść zaznaczenia",
|
||||
"empty": "Brak pozycji w tym zakresie dat.",
|
||||
"checklistHint": "Zaznaczenia są zapisywane lokalnie w przeglądarce."
|
||||
},
|
||||
"ingredientCatalog": {
|
||||
"title": "Katalog składników",
|
||||
"subtitle": "Wartości odżywcze na 100 g, pogrupowane według kategorii.",
|
||||
"allCategories": "Wszystkie",
|
||||
"searchPlaceholder": "Szukaj składników…",
|
||||
"noResultsTitle": "Nie znaleziono składników",
|
||||
"noResultsDescription": "Spróbuj innej kategorii lub frazy.",
|
||||
"per100gNote": "Wszystkie wartości dotyczą 100 g.",
|
||||
"addIngredient": "Dodaj składnik",
|
||||
"editIngredient": "Edytuj składnik",
|
||||
"selectCategory": "Wybierz kategorię",
|
||||
"nameEn": "Nazwa (angielski)",
|
||||
"namePlLabel": "Nazwa (polski)",
|
||||
"formInvalid": "Wypełnij kategorię i nazwę.",
|
||||
"deleteConfirm": "Usunąć ten składnik z katalogu?",
|
||||
"columns": {
|
||||
"name": "Składnik",
|
||||
"category": "Kategoria",
|
||||
"calories": "kcal",
|
||||
"protein": "Białko (g)",
|
||||
"fat": "Tłuszcz (g)",
|
||||
"carbs": "Węglowodany (g)",
|
||||
"fiber": "Błonnik (g)"
|
||||
},
|
||||
"categories": {
|
||||
"meat": "Mięso",
|
||||
"poultry": "Drób",
|
||||
"fish": "Ryby",
|
||||
"seafood": "Owoce morza",
|
||||
"vegetables": "Warzywa",
|
||||
"fruits": "Owoce",
|
||||
"dairy": "Nabiał",
|
||||
"eggs": "Jaja",
|
||||
"grains": "Zboża",
|
||||
"legumes": "Rośliny strączkowe",
|
||||
"nuts": "Orzechy i nasiona",
|
||||
"oils": "Oleje i tłuszcze"
|
||||
}
|
||||
},
|
||||
"notFound": {
|
||||
"title": "Nie znaleziono strony",
|
||||
"description": "Strona, której szukasz, nie istnieje.",
|
||||
"backToDashboard": "Wróć do panelu"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user