{
  "auth.backToLogin": "Retour à la connexion",
  "auth.displayName": "Comment vous appeler ?",
  "auth.email": "E-mail",
  "auth.forgotBody": "Saisissez votre e-mail : nous enverrons un lien si le compte existe.",
  "auth.forgotLink": "Mot de passe oublié ?",
  "auth.forgotSentBody": "Si l'adresse possède un compte, un lien valable 30 minutes a été envoyé. Ouvrez-le sur cet appareil.",
  "auth.forgotSentTitle": "Vérifiez votre boîte mail",
  "auth.forgotSubmit": "Envoyer le lien",
  "auth.forgotTitle": "Réinitialiser le mot de passe",
  "auth.hasAccount": "Déjà un compte ? Connectez-vous",
  "auth.login": "Se connecter",
  "auth.newPassword": "Nouveau mot de passe (10 caractères min.)",
  "auth.noAccount": "Nouveau ? Créez un compte",
  "auth.password": "Mot de passe",
  "auth.register": "Créer un compte",
  "auth.resetBody": "Le lien est valable 30 minutes et à usage unique. Tous les appareils seront déconnectés.",
  "auth.resetDoneBody": "Votre mot de passe a été changé. Connectez-vous avec le nouveau.",
  "auth.resetDoneTitle": "C'est fait !",
  "auth.resetSubmit": "Changer le mot de passe",
  "auth.resetTitle": "Choisissez un nouveau mot de passe",
  "auth.resetTokenPlaceholder": "Collez le code reçu par e-mail",
  "auth.trialNote": "7 jours d'accès complet – sans carte.",
  "auth.verifyDoneBody": "Merci ! Votre compte est vérifié.",
  "auth.verifyDoneTitle": "E-mail confirmé",
  "auth.verifyFailedBody": "Le lien est invalide ou expiré. Demandez-en un nouveau depuis votre profil.",
  "auth.verifyFailedTitle": "Le lien n'a pas fonctionné",
  "barcode.addPrompt": "Ajouter au stock ?",
  "barcode.aim": "Visez le code-barres avec l'appareil photo",
  "barcode.allowCamera": "Autoriser l'appareil photo",
  "barcode.cameraBody": "{brand} a besoin de l'appareil photo pour scanner les codes-barres.",
  "barcode.cameraTitle": "Appareil photo requis",
  "barcode.kcalPer100": "{kcal} kcal/100 g",
  "barcode.needHousehold": "Il vous faut d'abord un foyer.",
  "barcode.noLocation": "Aucun lieu de stockage trouvé.",
  "barcode.noNutrition": "Pas de données nutritionnelles",
  "barcode.photoPackage": "Photographier l'emballage",
  "barcode.unknownBody": "Ce produit n'est pas encore dans la base. Photographiez l'avant et l'étiquette nutritionnelle et nous l'ajouterons.",
  "barcode.unknownTitle": "Produit inconnu",
  "common.add": "Ajouter",
  "common.back": "Retour",
  "common.cancel": "Annuler",
  "common.done": "Terminé",
  "common.error": "Un problème est survenu. Réessayez.",
  "common.estimate": "Estimation",
  "common.loading": "Chargement …",
  "common.next": "Suivant",
  "common.off": "Désactivé",
  "common.offline": "Hors ligne – dernières données chargées",
  "common.on": "Activé",
  "common.oops": "Oups",
  "common.remove": "Retirer",
  "common.retry": "Réessayer",
  "common.save": "Enregistrer",
  "common.skip": "Passer",
  "common.undo": "Rétablir",
  "cooked.deductPantry": "Déduire les ingrédients du stock",
  "cooked.deductPantryNote": "Les ingrédients sont déduits du stock, en commençant par ceux qui expirent en premier.",
  "cooked.mealBoxes": "Portions en lunchbox",
  "cooked.portionsCooked": "Portions cuisinées",
  "cooked.rate": "Noter",
  "cooked.title": "Alors, verdict ?",
  "cooked.actualPortionsEaten": "Combien de portions avez-vous mangées?",
  "cooked.actualPortionsEatenHint": "Le reste devient des restes ou des lunchboxes.",
  "cooked.leftoverEstimatePortions": "Combien de portions de restes?",
  "cooked.leftoverEstimateHint": "Enregistré comme lunchbox si vous voulez.",
  "cooked.whoAte": "Qui a mangé ?",
  "cooking.finish": "Terminé – enregistrer le repas",
  "cooking.keepAwake": "L'écran reste allumé pendant que vous cuisinez",
  "cooking.scale": "Portions",
  "cooking.step": "Étape {current} sur {total}",
  "cooking.timer": "Lancer le minuteur",
  "cooking.timerDone": "Terminé !",
  "cooking.timerRunning": "{time} restants",
  "home.budget": "Budget",
  "home.emptyInventory": "Le stock est vide. Scannez le frigo ou ajoutez manuellement.",
  "home.expired": "Expiré",
  "home.expiresIn_one": "1 jour restant",
  "home.expiresIn_other": "{days} jours restants",
  "home.expiresToday": "Expire aujourd'hui",
  "home.household": "Foyer",
  "home.inventory": "Stock",
  "home.mealBoxes": "Lunchbox",
  "home.moreItems_one": "+ 1 autre …",
  "home.moreItems_other": "+ {count} autres …",
  "home.pastBestBefore": "DLUO dépassée : sentez et goûtez d'abord",
  "home.shopping": "Liste de courses",
  "home.thisWeek": "Cette semaine",
  "home.title": "À la maison",
  "home.useSoon": "À consommer vite",
  "home.useSoonHint": "La DDM (à consommer de préférence) concerne la qualité : sentez, regardez et goûtez avant de jeter. La DLC doit en revanche être respectée.",
  "home.waste": "Gaspillage",
  "home.wasteWeek": "Gaspillage cette semaine",
  "household.empty": "Vous n'avez pas encore de foyer. Créez-en un lors de l'intégration ou rejoignez-en un avec un code.",
  "household.invite": "Inviter avec le code : {code}",
  "household.locations": "Lieux de stockage",
  "household.members": "Membres",
  "household.portionFactor": "×{factor} portion",
  "household.private": "Privé par personne : objectifs, allergies, données de santé et historique des repas.",
  "household.role.adult": "Adulte",
  "household.role.child": "Enfant",
  "household.role.member": "Membre",
  "household.role.owner": "Propriétaire",
  "household.shareCode": "Partagez le code avec votre famille pour partager stock, liste et planning.",
  "household.shared": "Partagé dans le foyer : stock, liste de courses, plan de semaine, lunchbox et budget.",
  "logmeal.manualTitle": "Manuel",
  "logmeal.mealTypeTitle": "Type de repas",
  "logmeal.photoTip": "Astuce : photographiez l'assiette dans Scanner, l'app estime pour vous – vous confirmez toujours.",
  "logmeal.proteinPlaceholder": "protéines (g)",
  "logmeal.quickSubtitle": "Enregistre les mêmes valeurs nutritionnelles que la dernière fois.",
  "logmeal.quickTitle": "Enregistrement rapide",
  "logmeal.validationBody": "Le nom et les calories sont requis pour un enregistrement manuel.",
  "logmeal.validationTitle": "Infos manquantes",
  "logmeal.whatPlaceholder": "Qu'avez-vous mangé ?",
  "mealbox.eat": "Manger maintenant",
  "mealbox.eatBy": "À consommer avant le {date}",
  "mealbox.empty": "Aucune lunchbox pour l'instant. En cuisinant, gardez des portions ici.",
  "mealbox.enjoyBody": "La portion est enregistrée dans Ma journée.",
  "mealbox.enjoyTitle": "Bon appétit !",
  "mealbox.guidanceNote": "Le délai recommandé est indicatif : fiez-vous à l'odeur et au goût.",
  "mealbox.portionsLeft_one": "1 portion restante",
  "mealbox.portionsLeft_other": "{count} portions restantes",
  "mealbox.title": "Lunchbox",
  "memory.delete": "Supprimer",
  "memory.deleteAll": "Supprimer toute la mémoire",
  "memory.deleteAllTitle": "Supprimer toute la mémoire ?",
  "memory.empty": "{brand} n'a encore rien appris sur vous.",
  "memory.irreversible": "Cette action est irréversible.",
  "memory.origin.ai_inferred": "Hypothèse de l'IA",
  "memory.origin.observed": "Habitude observée",
  "memory.origin.user_stated": "Vous nous l'avez dit",
  "memory.pause": "Pause",
  "memory.paused": "En pause",
  "memory.resume": "Reprendre",
  "memory.subtitle": "Transparence totale. Corrigez, mettez en pause ou supprimez : votre mémoire vous appartient.",
  "memory.title": "Ce que {brand} sait de moi",
  "memory.verified": "Vérifié",
  "memory.verify": "Exact",
  "myday.calories": "Calories",
  "myday.carbs": "Glucides",
  "myday.estimateNote": "Les valeurs avec ~ sont des estimations ajustables.",
  "myday.estimateRange": "{min}–{max} kcal, probablement {kcal}",
  "myday.fat": "Lipides",
  "myday.fiber": "Fibres",
  "myday.kcalProtein": "{kcal} kcal · {protein} g de protéines",
  "myday.logMeal": "Enregistrer un repas",
  "myday.mealType.breakfast": "Petit-déjeuner",
  "myday.mealType.dessert": "Dessert",
  "myday.mealType.dinner": "Dîner",
  "myday.mealType.lunch": "Déjeuner",
  "myday.mealType.snack": "Encas",
  "myday.noMeals": "Aucun repas enregistré aujourd'hui.",
  "myday.over": "{kcal} kcal au-dessus de l'objectif",
  "myday.overRecommended": "Au-dessus du recommandé",
  "myday.protein": "Protéines",
  "myday.remaining": "{kcal} kcal restantes",
  "myday.salt": "Sel",
  "myday.targetsNote": "Les objectifs sont des repères, pas un avis médical.",
  "myday.title": "Ma journée",
  "myday.todaysMeals": "Repas du jour",
  "onboarding.allergen.crustaceans": "Crustacés",
  "onboarding.allergen.eggs": "Œufs",
  "onboarding.allergen.fish": "Poisson",
  "onboarding.allergen.gluten": "Gluten",
  "onboarding.allergen.milk": "Lait/lactose",
  "onboarding.allergen.peanuts": "Arachides",
  "onboarding.allergen.sesame": "Sésame",
  "onboarding.allergen.soy": "Soja",
  "onboarding.allergen.tree_nuts": "Fruits à coque",
  "onboarding.allergies": "Allergies et intolérances",
  "onboarding.allergyNote": "Le filtre allergies est toujours strict : les plats contenant vos allergènes ne sont jamais affichés.",
  "onboarding.birthYearPlaceholder": "Année de naissance",
  "onboarding.bodyTitle": "Pour des objectifs caloriques personnalisés (facultatif)",
  "onboarding.diet": "Comment mangez-vous ?",
  "onboarding.diet.flexitarian": "Flexitarien",
  "onboarding.diet.omnivore": "Omnivore",
  "onboarding.diet.pescatarian": "Pescétarien",
  "onboarding.diet.vegan": "Végane",
  "onboarding.diet.vegetarian": "Végétarien",
  "onboarding.goal": "Quel est votre objectif principal ?",
  "onboarding.goal.build_muscle": "Prendre du muscle",
  "onboarding.goal.cook_more": "Cuisiner plus à la maison",
  "onboarding.goal.less_waste": "Réduire le gaspillage",
  "onboarding.goal.lose_weight": "Perdre du poids",
  "onboarding.goal.lower_cost": "Dépenser moins en courses",
  "onboarding.goal.maintain_weight": "Maintenir mon poids",
  "onboarding.goal.more_protein": "Manger plus de protéines",
  "onboarding.heightPlaceholder": "Taille (cm)",
  "onboarding.household": "Votre foyer",
  "onboarding.householdCreate": "Créer un foyer",
  "onboarding.householdDefaultName": "Maison",
  "onboarding.householdJoin": "Rejoindre avec un code",
  "onboarding.householdName": "Nom du foyer",
  "onboarding.inviteCode": "Code d'invitation",
  "onboarding.mode": "Quel niveau de précision ?",
  "onboarding.modeExact": "Mode exact",
  "onboarding.modeExactDesc": "Pesez, saisissez les grammes, contrôle total des chiffres.",
  "onboarding.modeSimple": "Mode simple",
  "onboarding.modeSimpleDesc": "Photographiez vos aliments, acceptez les estimations, zéro prise de tête.",
  "onboarding.modesCombine": "Les modes se combinent : simple au quotidien, précis quand vous voulez.",
  "onboarding.notMedical": "{brand} fournit des repères, pas un avis médical.",
  "onboarding.stepBSubtitle": "Personnalisez votre profil pour de meilleures suggestions.",
  "onboarding.stepBTitle": "Continuer la configuration",
  "onboarding.stepCSubtitle": "Facultatif – utilisé pour les objectifs caloriques personnels.",
  "onboarding.stepCTitle": "Votre profil de santé",
  "onboarding.subtitle": "Tout est facultatif et modifiable à tout moment. Plus vous en dites, meilleures sont les suggestions.",
  "onboarding.title": "Parlez-nous un peu de vous",
  "onboarding.weightPlaceholder": "Poids (kg)",
  "paywall.choose": "Choisir",
  "paywall.fairUse": "Quota d'usage raisonnable de scans IA inclus.",
  "paywall.family": "Family · jusqu'à 6 personnes",
  "paywall.freeNote": "Gratuit : 10 scans IA/mois, stock manuel, recettes enregistrées et suivi simple.",
  "paywall.household": "Household · jusqu'à 3 personnes",
  "paywall.large": "Large Household · jusqu'à 12 personnes",
  "paywall.perMonth": "{price}/mois",
  "paywall.popular": "Le plus populaire",
  "paywall.restore": "Restaurer les achats",
  "paywall.soonBody": "Les achats s'activeront via l'App Store/Google Play quand l'intégration boutique sera lancée (phase 7). Le backend est déjà prêt.",
  "paywall.soonTitle": "Bientôt !",
  "paywall.subtitle": "L'OS alimentaire de tout le foyer : stock illimité, plan de semaine et partage.",
  "paywall.title": "{brand} Premium",
  "paywall.trialActive_one": "1 jour d'essai restant",
  "paywall.trialActive_other": "{days} jours d'essai restants",
  "profile.aiScansUsed": "Scans IA : {used} / {total} ce mois-ci",
  "profile.consent.anonymized_improvement": "Amélioration anonymisée de l'IA",
  "profile.consent.health_integration": "Données de santé (Apple Health / Health Connect)",
  "profile.consent.image_training": "Mes photos peuvent servir à l'entraînement",
  "profile.consent.location_weather": "Position pour des suggestions selon la météo",
  "profile.consent.personalization": "Fonctions personnelles (mémoire & profil de goûts)",
  "profile.consent.product_analytics": "Analyse produit",
  "profile.consent.push_notifications": "Notifications push",
  "profile.consents": "Consentements & données",
  "profile.consentsNote": "Les consentements sont distincts : les fonctions personnelles n'exigent jamais le consentement d'entraînement.",
  "profile.deleteAccount": "Supprimer le compte",
  "profile.deleteBody": "Toutes vos données seront supprimées définitivement conformément au RGPD.",
  "profile.deleteTitle": "Supprimer le compte ?",
  "profile.emailUnverified": "Adresse e-mail non confirmée",
  "profile.export": "Exporter mes données",
  "profile.goals": "Objectifs & alimentation",
  "profile.language": "Langue",
  "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": "Se déconnecter",
  "profile.memory": "Ce que {brand} sait de moi",
  "profile.memorySubtitle": "Voyez, corrigez, mettez en pause ou supprimez ce que la plateforme a appris.",
  "profile.modeLabel": "Mode :",
  "profile.resendVerification": "Renvoyer l'e-mail de confirmation",
  "profile.subscription": "Abonnement",
  "profile.title": "Profil",
  "profile.verificationSent": "Envoyé ! Vérifiez votre boîte mail.",
  "recipe.avgRating": "Moyenne {avg} sur {count} avis",
  "recipe.cook": "Cuisiner maintenant",
  "recipe.cost": "env. {amount}/portion",
  "recipe.iCookedThis": "Je l'ai cuisiné",
  "recipe.ingredients": "Ingrédients",
  "recipe.notSafe": "Incompatible avec vos réglages alimentaires",
  "recipe.perPortion": "par portion",
  "recipe.portions_one": "1 portion",
  "recipe.portions_other": "{count} portions",
  "recipe.save": "Enregistrer",
  "recipe.saved": "Enregistrée",
  "recipe.steps": "Préparation",
  "recipe.substitutions": "Remplacer",
  "recipe.time": "{min} min",
  "scan.analyzing": "Analyse en cours …",
  "scan.barcode": "Code-barres",
  "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": "Compris",
  "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": "Premier scan",
  "scan.expiry": "Date limite",
  "scan.failed": "L'analyse a échoué. Réessayez ou saisissez manuellement.",
  "scan.freezer": "Congélateur",
  "scan.fridge": "Frigo",
  "scan.ingredients": "Ingrédients",
  "scan.nutrition": "Étiquette nutritionnelle",
  "scan.pantry": "Placard",
  "scan.plate": "Assiette",
  "scan.quotaLeft_one": "1 scan IA restant ce mois-ci",
  "scan.quotaLeft_other": "{count} scans IA restants ce mois-ci",
  "scan.receipt": "Ticket de caisse",
  "scan.review.addItem": "+ Ajouter un article",
  "scan.review.approveAll": "Enregistrer dans le stock",
  "scan.review.bestBeforeNote": "Date de qualité : l'aliment peut rester bon après. Sentez et goûtez avant de jeter.",
  "scan.review.dateKindBestBefore": "DDM – de préférence",
  "scan.review.dateKindUseBy": "DLC – à consommer jusqu'au",
  "scan.review.datePlaceholder": "AAAA-MM-JJ (facultatif)",
  "scan.review.itemPlaceholder": "Article",
  "scan.review.quantityPlaceholder": "Quantité",
  "scan.review.rejected": "Supprimé",
  "scan.review.subtitle": "L'IA doute parfois : c'est vous qui décidez. Modifiez, supprimez ou ajoutez avant d'enregistrer.",
  "scan.review.title": "Vérifiez le résultat",
  "scan.review.uncertain": "Incertain – à vérifier",
  "scan.review.unitPlaceholder": "Unité (g, l, pcs …)",
  "scan.review.unknownItem": "Article inconnu",
  "scan.review.useByNote": "Date de sécurité : ne pas consommer après cette date.",
  "scan.subtitle": "Remplissez votre stock ou enregistrez un repas avec l'appareil photo.",
  "scan.takePhoto": "Prendre une photo",
  "scan.tips.light": "Évitez l'obscurité et les ombres",
  "scan.tips.move": "Écartez les produits qui se cachent",
  "scan.tips.overview": "Commencez par une vue d'ensemble",
  "scan.tips.shelf": "Photographiez étagère par étagère",
  "scan.tips.title": "Pour une analyse optimale",
  "scan.title": "Scanner",
  "shopping.addPlaceholder": "Ajouter un article …",
  "shopping.complete": "Terminer les courses",
  "shopping.completeNote": "Les articles cochés rejoignent le stock.",
  "shopping.completedBody_one": "1 article a été ajouté au stock.",
  "shopping.completedBody_other": "{count} articles ont été ajoutés au stock.",
  "shopping.completedTitle": "Terminé !",
  "shopping.empty": "La liste est vide.",
  "shopping.estimated": "env. {amount}",
  "shopping.estimatedTotal": "Total estimé : env. {amount}",
  "shopping.section.brod": "Pain",
  "shopping.section.chark": "Charcuterie",
  "shopping.section.dryck": "Boissons",
  "shopping.section.fisk": "Poisson",
  "shopping.section.frukt_gront": "Fruits & légumes",
  "shopping.section.frys": "Surgelés",
  "shopping.section.hygien_ovrigt": "Divers",
  "shopping.section.konserver": "Conserves",
  "shopping.section.kott_fagel": "Viande & volaille",
  "shopping.section.kryddor_bak": "Épices & pâtisserie",
  "shopping.section.mejeri": "Produits laitiers",
  "shopping.section.skafferi": "Épicerie",
  "shopping.section.snacks": "Snacks",
  "shopping.title": "Liste de courses",
  "tabs.home": "À la maison",
  "tabs.myDay": "Ma journée",
  "tabs.scan": "Scanner",
  "tabs.whatToEat": "On mange quoi ?",
  "wte.coverage": "{pct} % à la maison",
  "wte.cravingPlaceholder": "J'ai envie de … (ex. crémeux, asiatique, moins de 500 kcal)",
  "wte.empty": "Pas encore de suggestions : ajoutez des aliments ou assouplissez les filtres.",
  "wte.mealBoxFirst": "Plats prêts à la maison",
  "wte.missing": "Il manque : {items}",
  "wte.refresh": "Nouvelles suggestions",
  "wte.subtitle": "Selon ce que vous avez chez vous, ce qu'il faut consommer vite et vos goûts.",
  "wte.title": "On mange quoi ?",
  "wte.whyTitle": "Pourquoi cette suggestion ?",
  "onboarding.primaryGoal": "Principal",
  "home.trustStatus.up_to_date": "À jour",
  "home.trustStatus.needs_check": "Certains articles doivent être vérifiés",
  "home.trustStatus.uncertain": "Inventaire incertain – faites un rapide contrôle",
  "reconciliation.title": "Vérification rapide des stocks",
  "reconciliation.subtitle": "Confirmez ce qui vous reste pour de meilleures suggestions.",
  "reconciliation.exists": "Toujours en stock",
  "reconciliation.depleted": "C'est fini",
  "reconciliation.uncertain": "Incertain",
  "reconciliation.adjustQuantity": "Ajuster la quantité",
  "reconciliation.reason.planned_recipe": "Bientôt nécessaire pour une recette",
  "reconciliation.reason.expiring_soon": "Expire bientôt",
  "reconciliation.reason.high_value": "Haute valeur",
  "reconciliation.reason.low_confidence": "Quantité estimée",
  "reconciliation.reason.stale_trust": "Non vérifié depuis longtemps",
  "reconciliation.reason.likely_depleted": "Probablement bientôt épuisé",
  "reconciliation.done": "Terminé",
  "reconciliation.next": "Suivant",
  "reconciliation.empty": "Rien à vérifier pour l'instant. Bien joué !",
  "reconciliation.tasteHint": "Dépasse la date de durabilité minimale ? Sentez et goûtez d'abord : ne gaspillez jamais de nourriture inutilement.",
  "scan.diff.title": "Vérifier les différences",
  "scan.diff.subtitle": "Confirmer les changements du dernier scan.",
  "scan.diff.newItem": "Nouvel article",
  "scan.diff.quantityChanged": "Quantité modifiée",
  "scan.diff.moved": "Déplacé",
  "scan.diff.vanished": "Absent sur la photo",
  "scan.diff.unchanged": "Inchangé",
  "scan.diff.accept": "Confirmer",
  "scan.diff.reject": "Ignorer",
  "scan.diff.acceptAll": "Tout confirmer",
  "scan.diff.noChanges": "Aucune différence trouvée.",
  "scan.diff.undo": "Annuler",
  "scan.diff.undoHint": "Chaque modification peut être annulée depuis la vue détail de l'article.",
  "cooked.portionsSumExceedsPlanned": "Les portions mangées et les restes ne peuvent pas dépasser le nombre total de portions."
}
