Files
Cibello-app/apps/mobile/src/locales/nb/common.json
T
Claude cac98b8dc7 fix(veckoplan+streckkod): byt ratt, planera om, variation, man-son + fota fram/bak
Veckoplan/kalender:
- Byt ratt: PATCH satter nu titeln (och portioner/status) efter det nya
  receptet, inte bara recipeId - annars visade kalendern kvar gamla ratten.
- Planera om veckan: ersatter nu veckans plan (raderar tidigare + entries via
  kaskad) sa man aldrig far dubbletter och alltid ser den nya planen. Nytt
  plan-id ger ocksa ny variation.
- Variation: liten deterministisk jitter per recept, seedad pa plan-id +
  veckostart, sa olika veckor OCH omgenereringar blir olika. Tackning/utgang
  dominerar fortfarande. Skalas av varietyLevel.
- Veckoplaneraren visar alltid mandag-sondag (mondayOf), oavsett dagens dag.

Streckkod (fota okand produkt):
- Fotar nu fram- OCH baksida (multi-foto) sa AI:n far bade namn (fram) och
  naring/innehall (bak). Prompt uppdaterad for flera bilder.
- Worker uppdaterar en befintlig delad produkt aven utan nytt namn (behaller
  namnet, fyller pa naring/innehall/allergener) - och sparar ny produkt aven
  fran baksidesfoto (fallback-namn) sa data inte tappas.
- Produktpanelen visar 'Fota baksidan (naring & innehall)' nar info saknas, sa
  man kan komplettera en halvfardig produkt. Fel visas som dialog utan att
  tappa vyn.
- 5 nya i18n-nycklar x 12 sprak.

Verifierat: typecheck (ai-contracts/worker/api/mobil), worker 23/23,
ai-contracts 24/24, api 104/104, samt repro mot testdatabas (byt ratt satter
titel; planera om ger 1 plan; 3 veckor + omgenerering varierar; delvis produkt
kompletteras och behaller namnet).
2026-08-20 13:45:35 +00:00

501 lines
27 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": "Tilbake til innlogging",
"auth.displayName": "Hva skal vi kalle deg?",
"auth.email": "E-post",
"auth.forgotBody": "Skriv inn e-postadressen din, så sender vi en lenke hvis kontoen finnes.",
"auth.forgotLink": "Glemt passordet?",
"auth.forgotSentBody": "Hvis adressen har en konto, har vi sendt en lenke som gjelder i 30 minutter. Åpne den på denne enheten.",
"auth.forgotSentTitle": "Sjekk innboksen din",
"auth.forgotSubmit": "Send lenke",
"auth.forgotTitle": "Tilbakestill passord",
"auth.hasAccount": "Har du allerede en konto? Logg inn",
"auth.login": "Logg inn",
"auth.newPassword": "Nytt passord (minst 10 tegn)",
"auth.noAccount": "Ny her? Opprett en konto",
"auth.password": "Passord",
"auth.register": "Opprett konto",
"auth.resetBody": "Lenken gjelder i 30 minutter og kan bare brukes én gang. Alle enheter logges ut.",
"auth.resetDoneBody": "Passordet ditt er endret. Logg inn med det nye.",
"auth.resetDoneTitle": "Ferdig!",
"auth.resetSubmit": "Bytt passord",
"auth.resetTitle": "Velg et nytt passord",
"auth.resetTokenPlaceholder": "Lim inn koden fra e-posten",
"auth.trialNote": "14 dager full tilgang uten kort.",
"auth.verifyDoneBody": "Takk! Kontoen din er verifisert.",
"auth.verifyDoneTitle": "E-post bekreftet",
"auth.verifyFailedBody": "Lenken er ugyldig eller utløpt. Be om en ny fra profilen.",
"auth.verifyFailedTitle": "Lenken fungerte ikke",
"barcode.addPrompt": "Legge til i matlageret?",
"barcode.aim": "Rett kameraet mot strekkoden",
"barcode.allowCamera": "Tillat kamera",
"barcode.cameraBody": "{brand} trenger kameraet for å skanne strekkoder.",
"barcode.cameraTitle": "Kameraet trengs",
"barcode.contributing.title": "Leser av emballasjen…",
"barcode.contributing.body": "Vi henter næring, allergener og innhold og lagrer produktet i den delte katalogen, så den neste slipper å fotografere det.",
"barcode.contributing.failed": "Kunne ikke lese av emballasjen. Prøv igjen med et skarpt bilde og godt lys.",
"barcode.contributing.frontDone": "Forside tatt",
"barcode.contributing.backPrompt": "Ta nå bilde av baksiden med næringsinnhold og ingredienser da blir produktet komplett.",
"barcode.contributing.skipBack": "Ferdig, analyser",
"barcode.contributing.shootBack": "Ta bilde av baksiden",
"barcode.complete": "Ta bilde av baksiden (næring og innhold)",
"barcode.kcalPer100": "{kcal} kcal/100 g",
"barcode.needHousehold": "Du trenger en husstand først.",
"barcode.noLocation": "Fant ingen oppbevaringssteder.",
"barcode.noNutrition": "Ingen næringsdata",
"barcode.photoPackage": "Ta bilde av pakken",
"barcode.unknownBody": "Produktet er ikke i databasen ennå. Ta bilde av forsiden og næringsinnholdet vi leser av innholdet og lagrer produktet i den delte katalogen, så slipper den neste. (Det legges ikke til blant varene dine.)",
"barcode.unknownTitle": "Ukjent produkt",
"common.add": "Legg til",
"common.back": "Tilbake",
"common.cancel": "Avbryt",
"common.done": "Ferdig",
"common.error": "Noe gikk galt. Prøv igjen.",
"common.estimate": "Estimat",
"common.loading": "Laster …",
"common.next": "Neste",
"common.off": "Av",
"common.offline": "Frakoblet viser sist hentede data",
"common.on": "På",
"common.oops": "Oi sann",
"common.remove": "Fjern",
"common.retry": "Prøv igjen",
"common.save": "Lagre",
"common.skip": "Hopp over",
"common.undo": "Angre",
"cooked.deductPantry": "Trekk ingredienser fra lageret",
"cooked.deductPantryNote": "Ingrediensene trekkes fra matlageret det som går ut først, brukes først.",
"cooked.mealBoxes": "Porsjoner til matbokser",
"cooked.portionsCooked": "Porsjoner laget",
"cooked.rate": "Vurder",
"cooked.title": "Hvordan gikk det?",
"cooked.actualPortionsEaten": "Hvor mange porsjoner spiste dere?",
"cooked.actualPortionsEatenHint": "Resten blir til rester eller matbokser.",
"cooked.leftoverEstimatePortions": "Hvor mange restporsjoner ble det?",
"cooked.leftoverEstimateHint": "Lagres som matboks hvis du vil.",
"cooked.whoAte": "Hvem spiste?",
"cooking.finish": "Ferdig loggfør måltidet",
"cooking.keepAwake": "Skjermen holdes våken mens du lager mat",
"cooking.scale": "Porsjoner",
"cooking.step": "Steg {current} av {total}",
"cooking.timer": "Start timer",
"cooking.timerDone": "Ferdig!",
"cooking.timerRunning": "{time} igjen",
"home.budget": "Matbudsjett",
"home.emptyInventory": "Lageret er tomt. Skann kjøleskapet eller legg til varer manuelt.",
"home.expired": "Utløpt",
"home.expiresIn_one": "1 dag igjen",
"home.expiresIn_other": "{days} dager igjen",
"home.expiresToday": "Går ut i dag",
"home.household": "Husstand",
"home.inventory": "Matlager",
"home.mealBoxes": "Matbokser",
"home.moreItems_one": "+ 1 til …",
"home.moreItems_other": "+ {count} til …",
"home.pastBestBefore": "Best før er passert lukt og smak først",
"home.shopping": "Handleliste",
"home.thisWeek": "Denne uken",
"home.title": "Hjemme",
"home.useSoon": "Bruk snart",
"home.useSoonHint": "Best før handler om kvalitet lukt, se og smak før du kaster. Siste forbruksdag skal derimot respekteres.",
"home.waste": "Matsvinn",
"home.wasteWeek": "Matsvinn denne uken",
"household.empty": "Du har ingen husstand ennå. Opprett en i onboarding eller bli med via kode.",
"household.invite": "Inviter med kode: {code}",
"household.locations": "Oppbevaringssteder",
"household.members": "Medlemmer",
"household.portionFactor": "×{factor} porsjon",
"household.private": "Privat per person: mål, allergier, helsedata og måltidshistorikk.",
"household.role.adult": "Voksen",
"household.role.child": "Barn",
"household.role.member": "Medlem",
"household.role.owner": "Eier",
"household.shareCode": "Del koden med familien, så deler dere matlager, liste og plan.",
"household.shared": "Deles i husstanden: matlager, handleliste, ukeplan, matbokser og budsjett.",
"logmeal.manualTitle": "Manuelt",
"logmeal.mealTypeTitle": "Måltidstype",
"logmeal.photoTip": "Tips: ta bilde av tallerkenen under Skann, så anslår appen for deg du bekrefter alltid.",
"logmeal.proteinPlaceholder": "protein (g)",
"logmeal.quickSubtitle": "Logger de samme næringsverdiene som sist.",
"logmeal.quickTitle": "Rask gjenlogging",
"logmeal.validationBody": "Navn og kalorier trengs for manuell logging.",
"logmeal.validationTitle": "Fyll ut",
"logmeal.whatPlaceholder": "Hva spiste du?",
"mealbox.eat": "Spis nå",
"mealbox.eatBy": "Spis innen {date}",
"mealbox.empty": "Ingen matbokser akkurat nå. Når du lager mat, kan du lagre porsjoner her.",
"mealbox.enjoyBody": "Porsjonen er logget i Min dag.",
"mealbox.enjoyTitle": "Vel bekomme!",
"mealbox.guidanceNote": "Anbefalt frist er veiledende stol på lukt og smak.",
"mealbox.portionsLeft_one": "1 porsjon igjen",
"mealbox.portionsLeft_other": "{count} porsjoner igjen",
"mealbox.title": "Matbokser",
"memory.delete": "Slett",
"memory.deleteAll": "Slett alt minne",
"memory.deleteAllTitle": "Slette alt minne?",
"memory.empty": "{brand} har ikke lært noe om deg ennå.",
"memory.irreversible": "Dette kan ikke angres.",
"memory.origin.ai_inferred": "AI-antakelse",
"memory.origin.observed": "Observert mønster",
"memory.origin.user_stated": "Du har fortalt det",
"memory.pause": "Pause",
"memory.paused": "På pause",
"memory.resume": "Gjenoppta",
"memory.subtitle": "Full innsikt. Rett feil, sett på pause eller slett du eier minnet ditt.",
"memory.title": "Hva {brand} vet om meg",
"memory.verified": "Bekreftet",
"memory.verify": "Stemmer",
"myday.calories": "Kalorier",
"myday.carbs": "Karbohydrater",
"myday.estimateNote": "Verdier med ~ er estimater du kan justere.",
"myday.estimateRange": "{min}{max} kcal, trolig {kcal}",
"myday.fat": "Fett",
"myday.fiber": "Fiber",
"myday.kcalProtein": "{kcal} kcal · {protein} g protein",
"myday.logMeal": "Loggfør måltid",
"myday.mealType.breakfast": "Frokost",
"myday.mealType.dessert": "Dessert",
"myday.mealType.dinner": "Middag",
"myday.mealType.lunch": "Lunsj",
"myday.mealType.snack": "Mellommåltid",
"myday.noMeals": "Ingen måltider loggført i dag.",
"myday.over": "{kcal} kcal over målet",
"myday.overRecommended": "Over anbefalt",
"myday.protein": "Protein",
"myday.remaining": "{kcal} kcal igjen",
"myday.salt": "Salt",
"myday.targetsNote": "Målene er veiledning, ikke medisinske råd.",
"myday.title": "Min dag",
"myday.todaysMeals": "Dagens måltider",
"onboarding.allergen.crustaceans": "Skalldyr",
"onboarding.allergen.eggs": "Egg",
"onboarding.allergen.fish": "Fisk",
"onboarding.allergen.gluten": "Gluten",
"onboarding.allergen.milk": "Melk/laktose",
"onboarding.allergen.peanuts": "Peanøtter",
"onboarding.allergen.sesame": "Sesam",
"onboarding.allergen.soy": "Soya",
"onboarding.allergen.tree_nuts": "Nøtter",
"onboarding.allergies": "Allergier og intoleranser",
"onboarding.allergyNote": "Allergifiltrering er alltid streng retter med dine allergener vises aldri.",
"onboarding.birthYearPlaceholder": "Fødselsår",
"onboarding.bodyTitle": "For personlige kalorimål (valgfritt)",
"onboarding.diet": "Hvordan spiser du?",
"onboarding.diet.flexitarian": "Fleksitarianer",
"onboarding.diet.omnivore": "Alteter",
"onboarding.diet.pescatarian": "Pescetarianer",
"onboarding.diet.vegan": "Veganer",
"onboarding.diet.vegetarian": "Vegetarianer",
"onboarding.diet.carnivore": "Carnivore",
"onboarding.diet.low_carb": "LCHF",
"onboarding.diet.nordic": "Nordic",
"onboarding.diet.paleo": "Paleo",
"onboarding.goal": "Hva er ditt viktigste mål?",
"onboarding.goal.build_muscle": "Bygge muskler",
"onboarding.goal.cook_more": "Lage mer mat hjemme",
"onboarding.goal.less_waste": "Redusere matsvinn",
"onboarding.goal.lose_weight": "Gå ned i vekt",
"onboarding.goal.lower_cost": "Bruke mindre på mat",
"onboarding.goal.maintain_weight": "Holde vekten",
"onboarding.goal.more_protein": "Spise mer protein",
"onboarding.heightPlaceholder": "Høyde (cm)",
"onboarding.household": "Husstanden din",
"onboarding.householdCreate": "Opprett husstand",
"onboarding.householdDefaultName": "Hjemme",
"onboarding.householdJoin": "Bli med via kode",
"onboarding.householdName": "Husstandens navn",
"onboarding.inviteCode": "Invitasjonskode",
"onboarding.mode": "Hvor nøyaktig vil du være?",
"onboarding.modeExact": "Nøyaktig modus",
"onboarding.modeExactDesc": "Vei maten, angi gram, full kontroll på tallene.",
"onboarding.modeSimple": "Enkel modus",
"onboarding.modeSimpleDesc": "Ta bilde av maten, godta estimater, minimalt styr.",
"onboarding.modesCombine": "Modusene kan kombineres enkelt til hverdags, nøyaktig når du vil.",
"onboarding.memoryTransparency": "Dette lagres i \"Hva {brand} vet om meg\", og du kan endre det når som helst.",
"onboarding.notMedical": "{brand} gir veiledning ikke medisinske råd.",
"onboarding.stepBSubtitle": "Tilpass profilen din for bedre forslag.",
"onboarding.stepBTitle": "Fortsett oppsett",
"onboarding.stepCSubtitle": "Valgfritt brukes til personlige kalorimål.",
"onboarding.stepCTitle": "Din helseprofil",
"onboarding.subtitle": "Alt er frivillig og kan endres når som helst. Jo mer du fyller ut, desto bedre forslag.",
"onboarding.title": "Fortell oss litt om deg",
"onboarding.weightPlaceholder": "Vekt (kg)",
"paywall.choose": "Velg",
"paywall.fairUse": "Fair use-kvote for AI-skanninger inkludert.",
"paywall.family": "Family · opptil 6 personer",
"paywall.freeNote": "Gratis: 5 AI-skanninger/mnd., manuelt lager, lagrede oppskrifter og enkel loggføring.",
"paywall.household": "Household · opptil 3 personer",
"paywall.large": "Large Household · opptil 12 personer",
"paywall.perMonth": "{price}/mnd.",
"paywall.popular": "Mest populær",
"paywall.restore": "Gjenopprett kjøp",
"paywall.soonBody": "Kjøp aktiveres via App Store/Google Play når butikkintegrasjonen slås på (fase 7). Backend-flyten er allerede klar.",
"paywall.soonTitle": "Snart!",
"paywall.subtitle": "Hele husstandens mat-OS: ubegrenset lager, ukeplan og deling.",
"paywall.title": "{brand} Premium",
"paywall.trialActive_one": "1 dag igjen av prøveperioden",
"paywall.trialActive_other": "{days} dager igjen av prøveperioden",
"profile.aiScansUsed": "AI-skanninger: {used} / {total} denne måneden",
"profile.consent.anonymized_improvement": "Anonymisert forbedring av AI-en",
"profile.consent.health_integration": "Helsedata (Apple Health / Health Connect)",
"profile.consent.image_training": "Bildene mine kan brukes til trening",
"profile.consent.location_weather": "Posisjon for værbaserte forslag",
"profile.consent.personalization": "Personlige funksjoner (minne & smaksprofil)",
"profile.consent.product_analytics": "Produktanalyse",
"profile.consent.push_notifications": "Push-varsler",
"profile.consents": "Samtykker & data",
"profile.consentsNote": "Samtykkene er separate personlige funksjoner krever aldri treningssamtykke.",
"profile.deleteAccount": "Slett konto",
"profile.deleteBody": "Alle dataene dine slettes permanent i henhold til GDPR.",
"profile.deleteTitle": "Slette kontoen?",
"profile.emailUnverified": "E-postadressen er ikke bekreftet",
"profile.export": "Eksporter dataene mine",
"profile.goals": "Mål & kosthold",
"profile.language": "Språk",
"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": "Logg ut",
"profile.memory": "Hva {brand} vet om meg",
"profile.memorySubtitle": "Se, rett, sett på pause eller slett det plattformen har lært.",
"profile.modeLabel": "Modus:",
"profile.resendVerification": "Send bekreftelses-e-post på nytt",
"profile.subscription": "Abonnement",
"profile.title": "Profil",
"profile.verificationSent": "Sendt! Sjekk innboksen.",
"recipe.avgRating": "Snitt {avg} av {count} vurderinger",
"recipe.cook": "Lag mat nå",
"recipe.cost": "ca. {amount}/porsjon",
"recipe.iCookedThis": "Jeg har laget denne",
"recipe.ingredients": "Ingredienser",
"recipe.notSafe": "Passer ikke kostinnstillingene dine",
"recipe.perPortion": "per porsjon",
"recipe.portions_one": "1 porsjon",
"recipe.portions_other": "{count} porsjoner",
"recipe.save": "Lagre",
"recipe.saved": "Lagret",
"recipe.steps": "Slik gjør du",
"recipe.substitutions": "Bytt ut",
"recipe.time": "{min} min",
"scan.analyzing": "Analyserer …",
"scan.barcode": "Strekkode",
"scan.coach.body": "Ta et bilde av hele hyllen eller kjøleskapet. Hold telefonen i ro og sørg for godt lys.",
"scan.coach.button": "Skjønner",
"scan.coach.tip1": "Sørg for at alle varer er synlige",
"scan.coach.tip2": "Unngå blitz og skygger",
"scan.coach.tip3": "Bekreft usikre rader i neste steg",
"scan.coach.title": "Første skanning",
"scan.expiry": "Best før-dato",
"scan.failed": "Analysen mislyktes. Prøv igjen eller registrer manuelt.",
"scan.freezer": "Fryser",
"scan.fridge": "Kjøleskap",
"scan.ingredients": "Ingredienser",
"scan.nutrition": "Næringsdeklarasjon",
"scan.pantry": "Spiskammer",
"scan.plate": "Tallerken",
"scan.quotaLeft_one": "1 AI-skanning igjen denne måneden",
"scan.quotaLeft_other": "{count} AI-skanninger igjen denne måneden",
"scan.receipt": "Kvittering",
"scan.review.addItem": "+ Legg til vare",
"scan.review.approveAll": "Lagre på lageret",
"scan.review.bestBeforeNote": "Kvalitetsdato varen kan være god lenger. Lukt og smak før du kaster.",
"scan.review.dateKindBestBefore": "Best før",
"scan.review.dateKindUseBy": "Siste forbruksdag",
"scan.review.datePlaceholder": "ÅÅÅÅ-MM-DD (valgfritt)",
"scan.review.itemPlaceholder": "Vare",
"scan.review.quantityPlaceholder": "Mengde",
"scan.review.rejected": "Fjernet",
"scan.review.subtitle": "AI-en er noen ganger usikker du bestemmer. Endre, fjern eller legg til før du lagrer.",
"scan.review.title": "Gå gjennom resultatet",
"scan.review.uncertain": "Usikker sjekk",
"scan.review.unitPlaceholder": "Enhet (g, l, stk. …)",
"scan.review.unknownItem": "Ukjent vare",
"scan.review.useByNote": "Sikkerhetsdato ikke spis etter denne datoen.",
"scan.subtitle": "Fyll matlageret eller loggfør et måltid med kameraet.",
"scan.takePhoto": "Ta bilde",
"scan.tips.light": "Unngå mørke og skygger",
"scan.tips.move": "Flytt varer som skjuler hverandre",
"scan.tips.overview": "Start med et oversiktsbilde",
"scan.tips.shelf": "Fotografer hylle for hylle",
"scan.tips.title": "Slik blir analysen best",
"scan.title": "Skann",
"shopping.addPlaceholder": "Legg til vare …",
"shopping.complete": "Avslutt handleturen",
"shopping.completeNote": "Avkryssede varer legges i matlageret.",
"shopping.completedBody_one": "1 vare ble lagt inn i matlageret.",
"shopping.completedBody_other": "{count} varer ble lagt inn i matlageret.",
"shopping.completedTitle": "Ferdig!",
"shopping.empty": "Listen er tom.",
"shopping.estimated": "ca. {amount}",
"shopping.estimatedTotal": "Anslått totalt: ca. {amount}",
"shopping.section.brod": "Brød",
"shopping.section.chark": "Pålegg",
"shopping.section.dryck": "Drikke",
"shopping.section.fisk": "Fisk",
"shopping.section.frukt_gront": "Frukt & grønt",
"shopping.section.frys": "Frys",
"shopping.section.hygien_ovrigt": "Annet",
"shopping.section.konserver": "Hermetikk",
"shopping.section.kott_fagel": "Kjøtt & fjærkre",
"shopping.section.kryddor_bak": "Krydder & baking",
"shopping.section.mejeri": "Meieri",
"shopping.section.skafferi": "Tørrvarer",
"shopping.section.snacks": "Snacks",
"shopping.title": "Handleliste",
"tabs.home": "Hjemme",
"tabs.myDay": "Min dag",
"tabs.scan": "Skann",
"tabs.whatToEat": "Hva skal vi spise?",
"tabs.plan": "Plan",
"plan.today": "I dag",
"plan.emptyDay": "Ingenting planlagt",
"plan.portions": "{count} porsjoner",
"plan.generate": "Generer ukeplan",
"plan.generating": "Genererer ukeplan…",
"plan.cooked": "Laget",
"plan.skipped": "Hoppet over",
"plan.activate": "Aktiver plan",
"plan.createShopping": "Lag handleliste",
"wte.coverage": "{pct} % hjemme",
"wte.cravingPlaceholder": "Jeg har lyst på … (f.eks. kremet, asiatisk, under 500 kcal)",
"wte.empty": "Ingen forslag ennå legg inn litt mat på lageret eller løsne filtrene.",
"wte.mealBoxFirst": "Ferdig mat hjemme",
"wte.missing": "Mangler: {items}",
"wte.refresh": "Nye forslag",
"wte.subtitle": "Basert på hva dere har hjemme, hva som snart bør brukes, og hva dere liker.",
"wte.title": "Hva skal vi spise?",
"wte.whyTitle": "Hvorfor dette forslaget?",
"onboarding.primaryGoal": "Primært",
"home.trustStatus.up_to_date": "Oppdatert",
"home.trustStatus.needs_check": "Noen varer må sjekkes",
"home.trustStatus.uncertain": "Lageret er usikkert gjør en rask sjekk",
"reconciliation.title": "Hurtig lagerkontroll",
"reconciliation.subtitle": "Bekreft hva du har igjen for å få bedre forslag.",
"reconciliation.exists": "Har fortsatt",
"reconciliation.depleted": "Det er brukt opp",
"reconciliation.uncertain": "Usikker",
"reconciliation.adjustQuantity": "Juster mengde",
"reconciliation.reason.planned_recipe": "Trengs snart til en oppskrift",
"reconciliation.reason.expiring_soon": "Går snart ut",
"reconciliation.reason.high_value": "Høy verdi",
"reconciliation.reason.low_confidence": "Anslått mengde",
"reconciliation.reason.stale_trust": "Ikke sjekket på lenge",
"reconciliation.reason.likely_depleted": "Sannsynligvis snart brukt opp",
"reconciliation.done": "Ferdig",
"reconciliation.next": "Neste",
"reconciliation.empty": "Ingenting trenger kontroll akkurat nå. Bra jobbet!",
"reconciliation.tasteHint": "Forbi best før-dato? Lukt og smak først kast aldri mat unødvendig.",
"scan.diff.title": "Gå gjennom forskjeller",
"scan.diff.subtitle": "Bekreft endringer fra siste skanning.",
"scan.diff.newItem": "Ny vare",
"scan.diff.quantityChanged": "Mengde endret",
"scan.diff.moved": "Flyttet",
"scan.diff.vanished": "Mangler på bildet",
"scan.diff.unchanged": "Uendret",
"scan.diff.accept": "Bekreft",
"scan.diff.reject": "Ignorer",
"scan.diff.acceptAll": "Bekreft alle",
"scan.diff.noChanges": "Ingen forskjeller funnet.",
"scan.diff.undo": "Angre",
"scan.diff.undoHint": "Hver endring kan angres fra varedetaljvisningen.",
"cooked.portionsSumExceedsPlanned": "Antall spiste porsjoner og rester kan ikke overstige det totale antallet porsjoner.",
"cooked.undoWindowExpired": "Denne matlagingsøkten kan ikke lenger angres. Vinduet på 24 timer har utløpt.",
"cooked.leftoverLessThanBox": "Restene må være minst like mange som antallet matboksporsjoner.",
"mealbox.undoConfirmTitle": "Angre matlaging?",
"mealbox.undoConfirmBody": "Dette tilbakefører lagerforbruket og matboksen for denne matlagingen.",
"mealbox.undoSuccess": "Matlagingen er angret.",
"consent.title": "Før du starter",
"consent.body": "For å bruke Cibello må du godta vilkårene våre. Bildene du tar i appen (kjøleskap, emballasje, retter), brukes til å trene og forbedre Cibellos AI det er en del av vilkårene.",
"consent.termsLink": "Les Brukervilkårene",
"consent.privacyLink": "Les Personvernerklæringen",
"consent.checkbox": "Jeg har lest og godtar Brukervilkårene og Personvernerklæringen.",
"consent.submit": "Godta og fortsett",
"scan.meal.title": "Logg måltid fra foto",
"scan.meal.estimateNote": "Estimert fra bildet ditt juster før du lagrer.",
"scan.meal.calories": "Estimerte kalorier",
"scan.meal.namePlaceholder": "Hva spiste du? (valgfritt)",
"scan.meal.components": "Gjenkjent på tallerkenen",
"scan.meal.noEstimate": "Kunne ikke estimere kaloriene fra bildet.",
"swap.title": "Byt ut måltiden",
"swap.subtitle": "Välj en annan rätt:",
"plan.swapMeal": "Byt rätt",
"plan.chooseMeals": "Planera veckan välj måltider per dag:",
"scan.progress.analyzing": "Analyserar bilden…",
"scan.progress.finding": "Hittar ingredienser…",
"scan.progress.matching": "Matchar mot ditt kök…",
"scan.progress.almost": "Snart klar…",
"home.completeProfile.title": "Gör appen smartare",
"home.completeProfile.body": "Berätta om kost och allergier så blir förslagen mer personliga (ca 30 sek).",
"onboarding.religious": "Religiös kosthållning",
"onboarding.religious.none": "Ingen",
"onboarding.religious.halal": "Halal (inget fläsk)",
"onboarding.religious.kosher": "Kosher",
"onboarding.religious.hindu_no_beef": "Inget nötkött",
"onboarding.religious.buddhist_vegetarian": "Buddhistisk vegetarisk",
"onboarding.consent.personalization.title": "Gör Cibello till din",
"onboarding.consent.personalization.body": "Ju mer Cibello lär känna dig, desto bättre blir det förslag som passar din smak, dina allergier och din vardag. Allt appen lär sig ser du i \"Vad Cibello vet om dig\" och kan ändra eller radera när du vill. Vi rekommenderar att ha den på.",
"onboarding.consent.personalization.yes": "Ja, gör appen personlig",
"onboarding.consent.skip": "Inte nu",
"onboarding.consent.image_training.title": "Var med och göra Cibello smartare",
"onboarding.consent.image_training.body": "Låt dina foton hjälpa till att träna vår AI så att den känner igen svenska varor och kvitton allt bättre för dig och alla andra. Din skanning fungerar lika bra oavsett, men varje ja gör appen vassare.",
"onboarding.consent.image_training.yes": "Ja, jag hjälper till",
"onboarding.consent.image_training.no": "Nej tack",
"onboarding.consent.dataPrivacy.title": "Data & integritet",
"onboarding.consent.dataPrivacy.body": "Två saker är på för att göra appen bättre för alla. Du kan stänga av dem när du vill.",
"onboarding.consent.anonymized_improvement.body": "Anonym förbättring: helt avidentifierad, aggregerad statistik aldrig dina bilder eller något som pekar ut dig hjälper oss göra förslagen bättre.",
"onboarding.consent.product_analytics.body": "Produktanalys: genom att se hur appen används kan vi fixa buggar och förbättra det som krånglar. Pseudonymt, och vi säljer aldrig din data.",
"onboarding.consent.dataPrivacy.continue": "Fortsätt",
"onboarding.consent.health_integration.body": "Koppla Apple Health / Health Connect så kan Cibello sätta kalori- och näringsmål utifrån just dig. Hälsodata är extra känslig och är av tills du själv slår på den.",
"onboarding.consent.location_weather.body": "Med din plats föreslår vi mat som passar vädret värmande när det är kallt, grillat när solen är framme.",
"onboarding.consent.push_notifications.body": "Få en påminnelse innan maten går ut och tips när det är dags att handla eller laga.",
"barcode.info.title": "Næring per 100 g",
"barcode.info.kcal": "Energi",
"barcode.info.protein": "Protein",
"barcode.info.carbs": "Karbohydrat",
"barcode.info.sugar": " hvorav sukkerarter",
"barcode.info.fat": "Fett",
"barcode.info.satfat": " hvorav mettede",
"barcode.info.fiber": "Fiber",
"barcode.info.salt": "Salt",
"barcode.info.allergens": "Allergener",
"barcode.info.mayContain": "Kan inneholde spor av",
"barcode.info.ingredients": "Innhold",
"barcode.info.noNutrition": "Ingen næringsinfo for dette produktet ennå.",
"barcode.info.scanAgain": "Skann igjen",
"barcode.info.sourceOwn": "Kilde: egen produktdatabase",
"barcode.info.sourceOff": "Kilde: Open Food Facts",
"submit.title": "Send inn din egen oppskrift",
"submit.subtitle": "Fyll ut malen, så finpusser og publiserer AI-en oppskriften — kreditert med navnet ditt.",
"submit.titleLabel": "Oppskriftens navn",
"submit.titlePlaceholder": "f.eks. Bestemors kjøttboller",
"submit.ingredientsLabel": "Ingredienser (én per linje, med mengde)",
"submit.ingredientsPlaceholder": "2 dl hvetemel\n500 g kjøttdeig\n1 gul løk\n1 dl melk\n1 ts salt",
"submit.stepsLabel": "Slik gjør du",
"submit.stepsPlaceholder": "1. Hakk og surr løken myk.\n2. Bland deig, egg, melk og krydder.\n3. Rull boller og stek dem gylne.",
"submit.button": "Send inn oppskriften",
"submit.sending": "Sender …",
"submit.reviewNote": "Vi sammenligner med eksisterende oppskrifter, finpusser språket til samme standard og publiserer automatisk. Duplikater publiseres ikke.",
"submit.successTitle": "Takk oppskriften er sendt inn!",
"submit.successBody": "AI-en vår går gjennom og finpusser den. Den publiseres snart, kreditert med navnet ditt, og dukker opp blant oppskriftene.",
"submit.premiumTitle": "Egne oppskrifter er en del av Premium",
"submit.premiumBody": "Å sende inn og publisere egne oppskrifter er en del av Premium — et betalt abonnement (ikke prøveperioden). Oppgrader for å fortsette.",
"submit.seePlans": "Se abonnementer",
"submit.backHome": "Tilbake",
"cookedLog.title": "Har du laget denne retten?",
"cookedLog.subtitle": "Registrer at du laget den, så trekker vi råvarene fra lageret ditt. Mangler noe hjemme, hopper vi bare over det.",
"cookedLog.button": "Ja, jeg laget den",
"cookedLog.confirm": "Trekke råvarer for {count} porsjoner fra lageret ditt?",
"cookedLog.doneTitle": "Registrert!",
"cookedLog.doneBody": "Råvarene er trukket fra lageret ditt, og måltidet er logget.",
"plan.addMeal": "Legg til et måltid",
"plan.regenerate": "Planlegg uken på nytt"
}