Files
Cibello-app/apps/mobile/src/locales/en/common.json
T
Sven (AAMOS AI) 435af14bc4
CI / Typecheck, test & build (push) Successful in 1m35s
i18n(mobile): nycklar för veckoplaneraren (tabs.plan, plan.today, plan.emptyDay) i 12 locales
2026-08-14 01:30:26 +07:00

409 lines
21 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.
{
"auth.backToLogin": "Back to login",
"auth.displayName": "What should we call you?",
"auth.email": "Email",
"auth.forgotBody": "Enter your email and we'll send a reset link if the account exists.",
"auth.forgotLink": "Forgot your password?",
"auth.forgotSentBody": "If the address has an account, we've sent a link valid for 30 minutes. Open it on this device.",
"auth.forgotSentTitle": "Check your inbox",
"auth.forgotSubmit": "Send link",
"auth.forgotTitle": "Reset password",
"auth.hasAccount": "Already have an account? Log in",
"auth.login": "Log in",
"auth.newPassword": "New password (at least 10 characters)",
"auth.noAccount": "New here? Create an account",
"auth.password": "Password",
"auth.register": "Create account",
"auth.resetBody": "The link is valid for 30 minutes and can only be used once. All devices are signed out when the password changes.",
"auth.resetDoneBody": "Your password has been changed. Log in with your new password.",
"auth.resetDoneTitle": "Done!",
"auth.resetSubmit": "Change password",
"auth.resetTitle": "Choose a new password",
"auth.resetTokenPlaceholder": "Paste the code from the email",
"auth.trialNote": "7 days of full access no card required.",
"auth.verifyDoneBody": "Thanks! Your account is now verified.",
"auth.verifyDoneTitle": "Email confirmed",
"auth.verifyFailedBody": "The link is invalid or has expired. Request a new one from your profile.",
"auth.verifyFailedTitle": "The link didn't work",
"barcode.addPrompt": "Add to your inventory?",
"barcode.aim": "Point the camera at the barcode",
"barcode.allowCamera": "Allow camera",
"barcode.cameraBody": "{brand} needs the camera to scan barcodes.",
"barcode.cameraTitle": "Camera needed",
"barcode.kcalPer100": "{kcal} kcal/100 g",
"barcode.needHousehold": "You need a household first.",
"barcode.noLocation": "No storage location found.",
"barcode.noNutrition": "No nutrition data",
"barcode.photoPackage": "Photograph the package",
"barcode.unknownBody": "This product isn't in the database yet. Photograph the front and the nutrition label and we'll add it.",
"barcode.unknownTitle": "Unknown product",
"common.add": "Add",
"common.back": "Back",
"common.cancel": "Cancel",
"common.done": "Done",
"common.error": "Something went wrong. Please try again.",
"common.estimate": "Estimate",
"common.loading": "Loading …",
"common.next": "Next",
"common.off": "Off",
"common.offline": "Offline showing last fetched data",
"common.on": "On",
"common.oops": "Oops",
"common.remove": "Remove",
"common.retry": "Try again",
"common.save": "Save",
"common.skip": "Skip",
"common.undo": "Undo",
"cooked.deductPantry": "Deduct ingredients from inventory",
"cooked.deductPantryNote": "Ingredients are deducted from your inventory, first-expiring first.",
"cooked.mealBoxes": "Servings to meal boxes",
"cooked.portionsCooked": "Servings cooked",
"cooked.rate": "Rate it",
"cooked.title": "How did it go?",
"cooked.actualPortionsEaten": "How many portions did you eat?",
"cooked.actualPortionsEatenHint": "The rest becomes leftovers or meal boxes.",
"cooked.leftoverEstimatePortions": "How many leftover portions?",
"cooked.leftoverEstimateHint": "Saved as a meal box if you want.",
"cooked.whoAte": "Who ate?",
"cooking.finish": "Done log the meal",
"cooking.keepAwake": "The screen stays awake while you cook",
"cooking.scale": "Servings",
"cooking.step": "Step {current} of {total}",
"cooking.timer": "Start timer",
"cooking.timerDone": "Done!",
"cooking.timerRunning": "{time} left",
"home.budget": "Food budget",
"home.emptyInventory": "Your inventory is empty. Scan the fridge or add items manually.",
"home.expired": "Expired",
"home.expiresIn_one": "1 day left",
"home.expiresIn_other": "{days} days left",
"home.expiresToday": "Expires today",
"home.household": "Household",
"home.inventory": "Food inventory",
"home.mealBoxes": "Meal boxes",
"home.moreItems_one": "+ 1 more …",
"home.moreItems_other": "+ {count} more …",
"home.pastBestBefore": "Past best before smell and taste first",
"home.shopping": "Shopping list",
"home.thisWeek": "This week",
"home.title": "At home",
"home.useSoon": "Use soon",
"home.useSoonHint": "Best before is about quality smell, look and taste before you throw anything away. Use-by dates, however, should be respected.",
"home.waste": "Food waste",
"home.wasteWeek": "Food waste this week",
"household.empty": "You don't have a household yet. Create one in onboarding or join with a code.",
"household.invite": "Invite with code: {code}",
"household.locations": "Storage locations",
"household.members": "Members",
"household.portionFactor": "×{factor} portion",
"household.private": "Private per person: goals, allergies, health data and meal history.",
"household.role.adult": "Adult",
"household.role.child": "Child",
"household.role.member": "Member",
"household.role.owner": "Owner",
"household.shareCode": "Share the code with your family to share inventory, list and plan.",
"household.shared": "Shared in the household: food inventory, shopping list, week plan, meal boxes and budget.",
"logmeal.manualTitle": "Manual",
"logmeal.mealTypeTitle": "Meal type",
"logmeal.photoTip": "Tip: photograph your plate under Scan and the app estimates for you you always confirm.",
"logmeal.proteinPlaceholder": "protein (g)",
"logmeal.quickSubtitle": "Logs the same nutrition values as last time.",
"logmeal.quickTitle": "Quick re-log",
"logmeal.validationBody": "Name and calories are required for manual logging.",
"logmeal.validationTitle": "Missing info",
"logmeal.whatPlaceholder": "What did you eat?",
"mealbox.eat": "Eat now",
"mealbox.eatBy": "Eat by {date}",
"mealbox.empty": "No meal boxes right now. When you cook, you can save servings here.",
"mealbox.enjoyBody": "The portion is logged in My day.",
"mealbox.enjoyTitle": "Enjoy your meal!",
"mealbox.guidanceNote": "The recommended use-by is guidance trust smell and taste.",
"mealbox.portionsLeft_one": "1 serving left",
"mealbox.portionsLeft_other": "{count} servings left",
"mealbox.title": "Meal boxes",
"memory.delete": "Delete",
"memory.deleteAll": "Delete all memory",
"memory.deleteAllTitle": "Delete all memory?",
"memory.empty": "{brand} hasn't learned anything about you yet.",
"memory.irreversible": "This cannot be undone.",
"memory.origin.ai_inferred": "AI assumption",
"memory.origin.observed": "Observed pattern",
"memory.origin.user_stated": "You told us",
"memory.pause": "Pause",
"memory.paused": "Paused",
"memory.resume": "Resume",
"memory.subtitle": "Full transparency. Correct what's wrong, pause or delete you own your memory.",
"memory.title": "What {brand} knows about me",
"memory.verified": "Verified",
"memory.verify": "Correct",
"myday.calories": "Calories",
"myday.carbs": "Carbohydrates",
"myday.estimateNote": "Values marked with ~ are estimates you can adjust.",
"myday.estimateRange": "{min}{max} kcal, likely {kcal}",
"myday.fat": "Fat",
"myday.fiber": "Fiber",
"myday.kcalProtein": "{kcal} kcal · {protein} g protein",
"myday.logMeal": "Log meal",
"myday.mealType.breakfast": "Breakfast",
"myday.mealType.dessert": "Dessert",
"myday.mealType.dinner": "Dinner",
"myday.mealType.lunch": "Lunch",
"myday.mealType.snack": "Snack",
"myday.noMeals": "No meals logged today.",
"myday.over": "{kcal} kcal over target",
"myday.overRecommended": "Above recommended",
"myday.protein": "Protein",
"myday.remaining": "{kcal} kcal remaining",
"myday.salt": "Salt",
"myday.targetsNote": "Targets are guidance, not medical advice.",
"myday.title": "My day",
"myday.todaysMeals": "Today's meals",
"onboarding.allergen.crustaceans": "Crustaceans",
"onboarding.allergen.eggs": "Eggs",
"onboarding.allergen.fish": "Fish",
"onboarding.allergen.gluten": "Gluten",
"onboarding.allergen.milk": "Milk/lactose",
"onboarding.allergen.peanuts": "Peanuts",
"onboarding.allergen.sesame": "Sesame",
"onboarding.allergen.soy": "Soy",
"onboarding.allergen.tree_nuts": "Tree nuts",
"onboarding.allergies": "Allergies and intolerances",
"onboarding.allergyNote": "Allergy filtering is always strict dishes with your allergens are never shown.",
"onboarding.birthYearPlaceholder": "Birth year",
"onboarding.bodyTitle": "For personal calorie targets (optional)",
"onboarding.diet": "How do you eat?",
"onboarding.diet.flexitarian": "Flexitarian",
"onboarding.diet.omnivore": "Omnivore",
"onboarding.diet.pescatarian": "Pescatarian",
"onboarding.diet.vegan": "Vegan",
"onboarding.diet.vegetarian": "Vegetarian",
"onboarding.goal": "What is your main goal?",
"onboarding.goal.build_muscle": "Build muscle",
"onboarding.goal.cook_more": "Cook more at home",
"onboarding.goal.less_waste": "Reduce food waste",
"onboarding.goal.lose_weight": "Lose weight",
"onboarding.goal.lower_cost": "Spend less on food",
"onboarding.goal.maintain_weight": "Maintain weight",
"onboarding.goal.more_protein": "Eat more protein",
"onboarding.heightPlaceholder": "Height (cm)",
"onboarding.household": "Your household",
"onboarding.householdCreate": "Create household",
"onboarding.householdDefaultName": "Home",
"onboarding.householdJoin": "Join with a code",
"onboarding.householdName": "Household name",
"onboarding.inviteCode": "Invite code",
"onboarding.mode": "How precise do you want to be?",
"onboarding.modeExact": "Exact mode",
"onboarding.modeExactDesc": "Weigh food, enter grams, full control of the numbers.",
"onboarding.modeSimple": "Simple mode",
"onboarding.modeSimpleDesc": "Snap photos of your food, accept estimates, minimal fuss.",
"onboarding.modesCombine": "You can mix modes simple day to day, exact when you want.",
"onboarding.memoryTransparency": "This is saved in \"What {brand} knows about me\" and you can change it anytime.",
"onboarding.notMedical": "{brand} provides guidance not medical advice.",
"onboarding.stepBSubtitle": "Customize your profile for better suggestions.",
"onboarding.stepBTitle": "Continue setup",
"onboarding.stepCSubtitle": "Optional used for personal calorie targets.",
"onboarding.stepCTitle": "Your health profile",
"onboarding.subtitle": "Everything is optional and can be changed at any time. The more you fill in, the better the suggestions.",
"onboarding.title": "Tell us a little about yourself",
"onboarding.weightPlaceholder": "Weight (kg)",
"paywall.choose": "Choose",
"paywall.fairUse": "Fair-use quota for AI scans included.",
"paywall.family": "Family · up to 6 people",
"paywall.freeNote": "Free: 10 AI scans/month, manual inventory, saved recipes and simple logging.",
"paywall.household": "Household · up to 3 people",
"paywall.large": "Large Household · up to 12 people",
"paywall.perMonth": "{price}/month",
"paywall.popular": "Most popular",
"paywall.restore": "Restore purchases",
"paywall.soonBody": "Purchases activate via App Store/Google Play once store integration is switched on (phase 7). The backend flow is already done.",
"paywall.soonTitle": "Coming soon!",
"paywall.subtitle": "The whole household's food OS: unlimited inventory, week planning and sharing.",
"paywall.title": "{brand} Premium",
"paywall.trialActive_one": "1 day left of your trial",
"paywall.trialActive_other": "{days} days left of your trial",
"profile.aiScansUsed": "AI scans: {used} / {total} this month",
"profile.consent.anonymized_improvement": "Anonymised AI improvement",
"profile.consent.health_integration": "Health data (Apple Health / Health Connect)",
"profile.consent.image_training": "My photos may be used for training",
"profile.consent.location_weather": "Location for weather-based suggestions",
"profile.consent.personalization": "Personal features (memory & taste profile)",
"profile.consent.product_analytics": "Product analytics",
"profile.consent.push_notifications": "Push notifications",
"profile.consents": "Consents & data",
"profile.consentsNote": "Consents are separate personal features never require training consent.",
"profile.deleteAccount": "Delete account",
"profile.deleteBody": "All your data is permanently deleted in line with GDPR.",
"profile.deleteTitle": "Delete your account?",
"profile.emailUnverified": "Email address not confirmed",
"profile.export": "Export my data",
"profile.goals": "Goals & diet",
"profile.language": "Language",
"profile.language.da": "Dansk",
"profile.language.de": "Deutsch",
"profile.language.en": "English",
"profile.language.es": "Español",
"profile.language.fi": "Suomi",
"profile.language.fr": "Français",
"profile.language.it": "Italiano",
"profile.language.nb": "Norsk",
"profile.language.nl": "Nederlands",
"profile.language.pl": "Polski",
"profile.language.pt": "Português",
"profile.language.sv": "Svenska",
"profile.logout": "Log out",
"profile.memory": "What {brand} knows about me",
"profile.memorySubtitle": "See, correct, pause or delete what the platform has learned.",
"profile.modeLabel": "Mode:",
"profile.resendVerification": "Resend confirmation email",
"profile.subscription": "Subscription",
"profile.title": "Profile",
"profile.verificationSent": "Sent! Check your inbox.",
"recipe.avgRating": "Average {avg} from {count} ratings",
"recipe.cook": "Cook now",
"recipe.cost": "approx. {amount}/serving",
"recipe.iCookedThis": "I cooked this",
"recipe.ingredients": "Ingredients",
"recipe.notSafe": "Doesn't match your dietary settings",
"recipe.perPortion": "per serving",
"recipe.portions_one": "1 serving",
"recipe.portions_other": "{count} servings",
"recipe.save": "Save",
"recipe.saved": "Saved",
"recipe.steps": "Instructions",
"recipe.substitutions": "Substitute",
"recipe.time": "{min} min",
"scan.analyzing": "Analyzing …",
"scan.barcode": "Barcode",
"scan.coach.body": "Take a photo of the whole shelf or fridge. Keep the phone steady and make sure the light is good.",
"scan.coach.button": "Got it",
"scan.coach.tip1": "Make sure all items are visible",
"scan.coach.tip2": "Avoid flash and shadows",
"scan.coach.tip3": "Confirm uncertain items in the next step",
"scan.coach.title": "First scan",
"scan.expiry": "Best-before date",
"scan.failed": "The analysis failed. Try again or add items manually.",
"scan.freezer": "Freezer",
"scan.fridge": "Fridge",
"scan.ingredients": "Ingredients",
"scan.nutrition": "Nutrition label",
"scan.pantry": "Pantry",
"scan.plate": "Plate",
"scan.quotaLeft_one": "1 AI scan left this month",
"scan.quotaLeft_other": "{count} AI scans left this month",
"scan.receipt": "Receipt",
"scan.review.addItem": "+ Add item",
"scan.review.approveAll": "Save to inventory",
"scan.review.bestBeforeNote": "Quality date the food can be fine well beyond it. Smell and taste before discarding.",
"scan.review.dateKindBestBefore": "Best before",
"scan.review.dateKindUseBy": "Use by",
"scan.review.datePlaceholder": "YYYY-MM-DD (optional)",
"scan.review.itemPlaceholder": "Item",
"scan.review.quantityPlaceholder": "Amount",
"scan.review.rejected": "Removed",
"scan.review.subtitle": "AI is sometimes uncertain you decide. Edit, remove or add before saving.",
"scan.review.title": "Review the result",
"scan.review.uncertain": "Uncertain please check",
"scan.review.unitPlaceholder": "Unit (g, l, pcs …)",
"scan.review.unknownItem": "Unknown item",
"scan.review.useByNote": "Safety date do not eat after this date.",
"scan.subtitle": "Stock your food inventory or log a meal with the camera.",
"scan.takePhoto": "Take photo",
"scan.tips.light": "Avoid darkness and shadows",
"scan.tips.move": "Move items that block each other",
"scan.tips.overview": "Start with an overview photo",
"scan.tips.shelf": "Photograph shelf by shelf",
"scan.tips.title": "How to get the best analysis",
"scan.title": "Scan",
"shopping.addPlaceholder": "Add item …",
"shopping.complete": "Finish shopping trip",
"shopping.completeNote": "Checked items are added to your food inventory.",
"shopping.completedBody_one": "1 item was added to your inventory.",
"shopping.completedBody_other": "{count} items were added to your inventory.",
"shopping.completedTitle": "Done!",
"shopping.empty": "The list is empty.",
"shopping.estimated": "approx. {amount}",
"shopping.estimatedTotal": "Estimated total: approx. {amount}",
"shopping.section.brod": "Bread",
"shopping.section.chark": "Deli & cold cuts",
"shopping.section.dryck": "Drinks",
"shopping.section.fisk": "Fish",
"shopping.section.frukt_gront": "Fruit & veg",
"shopping.section.frys": "Frozen",
"shopping.section.hygien_ovrigt": "Other",
"shopping.section.konserver": "Canned goods",
"shopping.section.kott_fagel": "Meat & poultry",
"shopping.section.kryddor_bak": "Spices & baking",
"shopping.section.mejeri": "Dairy",
"shopping.section.skafferi": "Pantry",
"shopping.section.snacks": "Snacks",
"shopping.title": "Shopping list",
"tabs.home": "At home",
"tabs.myDay": "My day",
"tabs.scan": "Scan",
"tabs.whatToEat": "What's for dinner?",
"tabs.plan": "Plan",
"plan.today": "Today",
"plan.emptyDay": "Nothing planned",
"wte.coverage": "{pct}% at home",
"wte.cravingPlaceholder": "I'm craving … (e.g. creamy, Asian, under 500 kcal)",
"wte.empty": "No suggestions yet add some food to your inventory or loosen the filters.",
"wte.mealBoxFirst": "Ready-made food at home",
"wte.missing": "Missing: {items}",
"wte.refresh": "New suggestions",
"wte.subtitle": "Based on what you have at home, what should be used up, and what you like.",
"wte.title": "What's for dinner?",
"wte.whyTitle": "Why this suggestion?",
"onboarding.primaryGoal": "Primary",
"home.trustStatus.up_to_date": "Up to date",
"home.trustStatus.needs_check": "Some items need checking",
"home.trustStatus.uncertain": "Inventory uncertain do a quick check",
"reconciliation.title": "Quick inventory check",
"reconciliation.subtitle": "Confirm what you have left to get better suggestions.",
"reconciliation.exists": "Still have it",
"reconciliation.depleted": "It is used up",
"reconciliation.uncertain": "Not sure",
"reconciliation.adjustQuantity": "Adjust amount",
"reconciliation.reason.planned_recipe": "Needed soon for a recipe",
"reconciliation.reason.expiring_soon": "Expires soon",
"reconciliation.reason.high_value": "High value",
"reconciliation.reason.low_confidence": "Estimated amount",
"reconciliation.reason.stale_trust": "Has not been checked in a while",
"reconciliation.reason.likely_depleted": "Likely used up soon",
"reconciliation.done": "Done",
"reconciliation.next": "Next",
"reconciliation.empty": "Nothing needs checking right now. Well done!",
"reconciliation.tasteHint": "Past best before? Smell and taste first never waste food unnecessarily.",
"scan.diff.title": "Review differences",
"scan.diff.subtitle": "Confirm changes from the latest scan.",
"scan.diff.newItem": "New item",
"scan.diff.quantityChanged": "Quantity changed",
"scan.diff.moved": "Moved",
"scan.diff.vanished": "Missing in photo",
"scan.diff.unchanged": "Unchanged",
"scan.diff.accept": "Confirm",
"scan.diff.reject": "Ignore",
"scan.diff.acceptAll": "Confirm all",
"scan.diff.noChanges": "No differences found.",
"scan.diff.undo": "Undo",
"scan.diff.undoHint": "Each change can be undone from the item detail view.",
"cooked.portionsSumExceedsPlanned": "Eaten portions and leftovers cannot exceed the total number of portions.",
"cooked.undoWindowExpired": "This cooking session can no longer be undone. The 24-hour window has expired.",
"cooked.leftoverLessThanBox": "Leftovers must be at least as many as the number of meal-box portions.",
"mealbox.undoConfirmTitle": "Undo cooking?",
"mealbox.undoConfirmBody": "This reverses the inventory deduction and meal box for this cooking session.",
"mealbox.undoSuccess": "Cooking session undone.",
"consent.title": "Before you start",
"consent.body": "To use Cibello you need to accept our terms. The photos you take in the app (fridge, packaging, dishes) are used to train and improve Cibello's AI this is part of the terms.",
"consent.termsLink": "Read the Terms of Use",
"consent.privacyLink": "Read the Privacy Policy",
"consent.checkbox": "I have read and accept the Terms of Use and the Privacy Policy.",
"consent.submit": "Accept and continue",
"scan.meal.title": "Log meal from photo",
"scan.meal.estimateNote": "Estimated from your photo adjust before saving.",
"scan.meal.calories": "Estimated calories",
"scan.meal.namePlaceholder": "What did you eat? (optional)",
"scan.meal.components": "Recognised on the plate",
"scan.meal.noEstimate": "Couldn't estimate calories from the photo."
}