{ "common": { "save": "Enregistrer", "cancel": "Annuler", "delete": "Supprimer", "edit": "Modifier", "close": "Fermer", "create": "Créer", "add": "Ajouter", "back": "Retour", "next": "Suivant", "loading": "Chargement…", "saving": "Enregistrement…", "required": "Ce champ est obligatoire.", "error": "Erreur", "allFieldsRequired": "Veuillez remplir tous les champs.", "today": "Aujourd'hui", "tomorrow": "Demain", "skipToContent": "Aller au contenu", "reload": "Recharger", "errorOccurred": "Une erreur s'est produite.", "unexpectedError": "Une erreur inattendue s'est produite.", "errorGeneric": "Une erreur s'est produite.", "updateAvailable": "Mise à jour disponible - rechargez la page pour obtenir la dernière version.", "titleRequired": "Le titre est obligatoire", "nameRequired": "Le nom est obligatoire", "contentRequired": "Le contenu est obligatoire", "all": "Tout", "unknownError": "Erreur inconnue", "confirm": "Confirmer", "undo": "Annuler" }, "nav": { "dashboard": "Accueil", "tasks": "Tâches", "calendar": "Calendrier", "meals": "Repas", "shopping": "Courses", "notes": "Notes", "contacts": "Contacts", "budget": "Budget", "settings": "Paramètres", "main": "Navigation principale", "navigation": "Navigation", "quickActions": "Actions rapides", "recipes": "Recipes", "more": "Plus" }, "dashboard": { "title": "Accueil", "greetingMorning": "Bonjour, {{name}}", "greetingDay": "Bon après-midi, {{name}}", "greetingEvening": "Bonsoir, {{name}}", "allDone": "Tout est fait", "noEvents": "Aucun événement", "noPinnedNotes": "Aucune note épinglée", "todayMeals": "Repas du jour", "allLink": "Tout", "weekLink": "Semaine", "urgentTasksChip": "{{count}} tâche à échéance proche", "urgentTasksChipPlural": "{{count}} tâches à échéance proche", "eventsChip": "{{count}} événement aujourd'hui", "eventsChipPlural": "{{count}} événements aujourd'hui", "todayMealChip": "Aujourd'hui : {{title}}", "loadError": "Le tableau de bord n'a pas pu être chargé complètement.", "weatherRefresh": "Actualiser la météo", "weatherRefreshTitle": "Actualiser", "weatherUpdated": "Météo mise à jour", "weatherFeelsLike": "Ressenti {{temp}}° · {{humidity}}% · Vent {{wind}} {{windUnit}}", "fabTaskLabel": "Ajouter une tâche", "fabCalendarLabel": "Ajouter un événement", "fabShoppingLabel": "Ajouter une course", "fabNoteLabel": "Ajouter une note", "fabTask": "Tâche", "fabCalendar": "Événement", "fabShopping": "Course", "fabNote": "Note", "overdue": "En retard", "dueSoon": "À rendre aujourd'hui", "dueToday": "À rendre aujourd'hui", "dueTomorrow": "À rendre demain", "allDay": "Toute la journée", "shoppingMore": "+{{count}} de plus", "weather": "Météo", "customize": "Personnaliser", "customizeTitle": "Personnaliser les widgets", "customizeReset": "Réinitialiser", "customizeSaved": "Tableau de bord sauvegardé", "customizeMoveUp": "Monter", "customizeMoveDown": "Descendre", "overdueTasksChip": "{{count}} tâche en retard", "overdueTasksChipPlural": "{{count}} tâches en retard" }, "tasks": { "title": "Tâches", "newTask": "Nouvelle tâche", "editTask": "Modifier la tâche", "emptyTitle": "Aucune tâche - tout est fait ?", "emptyDescription": "Créez de nouvelles tâches avec le bouton +.", "titleLabel": "Titre *", "titlePlaceholder": "Que faut-il faire ?", "descriptionLabel": "Note", "descriptionPlaceholder": "Détails optionnels…", "priorityLabel": "Priorité", "categoryLabel": "Catégorie", "dueDateLabel": "Date d'échéance", "dueTimeLabel": "Heure", "assignedLabel": "Assigné à", "assignedNobody": "- Personne -", "statusLabel": "Statut", "priorityUrgent": "Urgent", "priorityHigh": "Élevée", "priorityMedium": "Moyenne", "priorityLow": "Faible", "priorityNone": "Aucune", "statusOpen": "Ouvert", "statusInProgress": "En cours", "statusDone": "Terminé", "categoryHousehold": "Maison", "categorySchool": "École", "categoryShopping": "Courses", "categoryRepair": "Réparation", "categoryHealth": "Santé", "categoryFinance": "Finances", "categoryLeisure": "Loisirs", "categoryMisc": "Divers", "overdue": "En retard", "overdueDay": "{{count}}j de retard", "dueToday": "À rendre aujourd'hui", "dueTomorrow": "À rendre demain", "groupOverdue": "En retard", "groupToday": "Aujourd'hui", "groupThisWeek": "Cette semaine", "groupNextWeek": "Semaine prochaine", "groupLater": "Plus tard", "groupNoDate": "Sans date", "markDone": "Marquer {{title}} comme terminé", "markOpen": "Marquer {{title}} comme non terminé", "editButton": "Modifier la tâche", "swipeOpen": "Rouvrir", "swipeDone": "Terminé", "swipeEdit": "Modifier", "subtaskAdd": "+ Ajouter une sous-tâche", "subtaskToggle": "Afficher les sous-tâches", "subtaskMarkDone": "Marquer {{title}} comme terminé", "deleteConfirm": "Supprimer la tâche et toutes ses sous-tâches ?", "savedToast": "Tâche enregistrée.", "createdToast": "Tâche créée.", "deletedToast": "Tâche supprimée.", "loadError": "La tâche n'a pas pu être chargée.", "subtaskPrompt": "Sous-tâche :", "kanbanOpen": "Ouvert", "kanbanInProgress": "En cours", "kanbanDone": "Terminé", "kanbanMoveToInProgress": "Mettre en cours", "kanbanMoveToDone": "Marquer comme terminé", "kanbanMoveToOpen": "Rouvrir", "recurring": "Récurrent", "listView": "Vue liste", "kanbanView": "Vue Kanban", "filterBtn": "Filtrer", "filterClearAll": "Effacer tous les filtres", "filterGroupPerson": "Personne", "filterGroupPriority": "Priorité", "filterGroupStatus": "Statut", "swipedDoneToast": "Marqué comme terminé.", "swipedOpenToast": "Marqué comme ouvert." }, "shopping": { "title": "Courses", "noLists": "Aucune liste", "noListsDescription": "Créez une liste avec le bouton +.", "emptyList": "La liste est vide", "emptyListDescription": "Ajoutez des articles via le champ de saisie ci-dessus.", "newListPrompt": "Nom de la nouvelle liste :", "newListButton": "Créer une nouvelle liste", "renameListPrompt": "Nouveau nom de la liste :", "deleteListConfirm": "Supprimer la liste « {{name}} » et tous ses articles ?", "deletedListToast": "Liste supprimée.", "itemDeletedToast": "« {{name}} » supprimé.", "itemsRemovedToast": "{{count}} articles supprimés.", "clearChecked": "Supprimer les cochés ({{count}})", "itemNamePlaceholder": "Ajouter un article…", "itemQtyPlaceholder": "Quantité", "itemNameLabel": "Nom de l'article", "itemQtyLabel": "Quantité", "categoryLabel": "Catégorie", "addItemLabel": "Ajouter un article", "renameListLabel": "Renommer la liste", "deleteListLabel": "Supprimer la liste", "swipeBack": "Annuler", "swipeCheck": "Cocher", "swipeDelete": "Supprimer", "markDoneLabel": "Cocher {{name}}", "markUndoneLabel": "Décocher {{name}}", "deleteItemLabel": "Supprimer {{name}}", "listsLoadError": "Les listes n'ont pas pu être chargées.", "itemsLoadError": "Les articles n'ont pas pu être chargés.", "catFruitVeg": "Fruits et légumes", "catBakery": "Boulangerie", "catDairy": "Produits laitiers", "catMeatFish": "Viande et poisson", "catFrozen": "Surgelés", "catDrinks": "Boissons", "catHousehold": "Ménage", "catDrugstore": "Pharmacie", "catMisc": "Divers" }, "meals": { "title": "Plan de repas", "noMealPlanned": "Aucun repas prévu", "addMeal": "Ajouter {{type}}", "editMeal": "Modifier le repas", "addMealTitle": "Ajouter un repas", "deleteMeal": "Supprimer le repas", "transferToShoppingList": "Ajouter les ingrédients à la liste de courses", "today": "Aujourd'hui", "prevWeek": "Semaine précédente", "nextWeek": "Semaine suivante", "loadError": "Le plan de repas n'a pas pu être chargé.", "typeBreakfast": "Petit-déjeuner", "typeLunch": "Déjeuner", "typeDinner": "Dîner", "typeSnack": "Snack", "dayMo": "Lun", "dayDi": "Mar", "dayMi": "Mer", "dayDo": "Jeu", "dayFr": "Ven", "daySa": "Sam", "daySo": "Dim", "dateLabel": "Date", "mealTypeLabel": "Repas", "titleLabel": "Titre *", "titlePlaceholder": "ex. Pâtes bolognaise", "notesLabel": "Notes", "notesPlaceholder": "Optionnel…", "ingredientsLabel": "Ingrédients", "addIngredient": "Ajouter un ingrédient", "ingredientNamePlaceholder": "Ingrédient", "ingredientQtyPlaceholder": "Quantité", "ingredientCategoryLabel": "Catégorie", "ingredientCategoryDefault": "Divers", "removeIngredient": "Supprimer l'ingrédient", "transferLabel": "Transférer les ingrédients vers la liste de courses", "transferNow": "Transférer maintenant", "noShoppingLists": "Aucune liste de courses disponible", "transferSuccess": "{{count}} ingrédient transféré", "transferSuccessPlural": "{{count}} ingrédients transférés", "transferAlreadyDone": "Tous les ingrédients ont déjà été transférés", "ingredientCount": "{{count}} ingrédient", "ingredientCountPlural": "{{count}} ingrédients", "titleRequired": "Le titre est obligatoire", "loadingIndicator": "Chargement…", "recipeUrlLabel": "Lien recette (optionnel)", "recipeUrlPlaceholder": "https://…", "openRecipe": "Ouvrir la recette", "savedRecipeLabel": "Saved recipe", "savedRecipePlaceholder": "Select recipe", "saveAsRecipe": "Save as recipe", "recipeScaleLabel": "Scale ingredients" }, "calendar": { "title": "Calendrier", "newEvent": "Nouvel événement", "editEvent": "Modifier l'événement", "addEvent": "Ajouter un événement", "deleteEvent": "Supprimer l'événement", "noEvents": "Aucun événement dans la période sélectionnée.", "today": "Aujourd'hui", "back": "Retour", "forward": "Avancer", "viewMonth": "Mois", "viewWeek": "Semaine", "viewDay": "Jour", "viewAgenda": "Agenda", "allDay": "Toute la journée", "allDayShort": "tj.", "moreEvents": "+{{count}} de plus", "weekNumberLabel": "S{{week}} · {{month}} {{year}}", "agendaFrom": "À partir du {{date}}", "titleLabel": "Titre *", "titlePlaceholder": "ex. Dentiste", "allDayToggle": "Toute la journée", "startDateLabel": "Date de début", "startTimeLabel": "Heure de début", "endDateLabel": "Date de fin", "endTimeLabel": "Heure de fin", "fromLabel": "De", "toLabel": "À", "locationLabel": "Lieu", "locationPlaceholder": "Optionnel", "assignedLabel": "Assigné à", "assignedNobody": "- Personne -", "colorLabel": "Couleur {{color}}", "descriptionLabel": "Description", "descriptionPlaceholder": "Optionnel…", "popupEdit": "Modifier", "deleteConfirm": "Supprimer « {{title}} » ?", "createdToast": "Événement créé", "savedToast": "Événement enregistré", "deletedToast": "Événement supprimé", "loadError": "Les événements n'ont pas pu être chargés.", "saveError": "Erreur lors de l'enregistrement", "deleteError": "Erreur lors de la suppression", "titleRequired": "Le titre est obligatoire", "monthJanuary": "Janvier", "monthFebruary": "Février", "monthMarch": "Mars", "monthApril": "Avril", "monthMay": "Mai", "monthJune": "Juin", "monthJuly": "Juillet", "monthAugust": "Août", "monthSeptember": "Septembre", "monthOctober": "Octobre", "monthNovember": "Novembre", "monthDecember": "Décembre", "dayShortSunday": "Dim", "dayShortMonday": "Lun", "dayShortTuesday": "Mar", "dayShortWednesday": "Mer", "dayShortThursday": "Jeu", "dayShortFriday": "Ven", "dayShortSaturday": "Sam", "dayLongSunday": "Dimanche", "dayLongMonday": "Lundi", "dayLongTuesday": "Mardi", "dayLongWednesday": "Mercredi", "dayLongThursday": "Jeudi", "dayLongFriday": "Vendredi", "dayLongSaturday": "Samedi", "timeSuffix": "", "ics": { "reset": "Réinitialiser", "resetToast": "Modifications annulées." } }, "notes": { "title": "Notes", "newNote": "Nouvelle note", "editNote": "Modifier la note", "addNoteLabel": "Nouvelle note", "searchPlaceholder": "Rechercher des notes…", "emptyTitle": "Aucune note", "emptyDescription": "Créez une nouvelle note avec le bouton +.", "noResultsTitle": "Aucun résultat", "noResultsDescription": "Aucune note ne contient « {{query}} ».", "titleLabel": "Titre (optionnel)", "titlePlaceholder": "Sans titre", "contentLabel": "Contenu", "contentMarkdownHint": "(Formatage Markdown supporté)", "contentPlaceholder": "Saisir une note…", "colorLabel": "Couleur", "pinnedLabel": "Épingler (apparaît sur le tableau de bord)", "pinAction": "Épingler", "unpinAction": "Désépingler", "deleteLabel": "Supprimer la note", "deleteConfirm": "Supprimer cette note ?", "createdToast": "Note créée", "savedToast": "Note enregistrée", "deletedToast": "Note supprimée", "loadError": "Les notes n'ont pas pu être chargées.", "formatBold": "Gras (Ctrl+B)", "formatItalic": "Italique (Ctrl+I)", "formatUnderline": "Souligné (Ctrl+U)", "formatStrikethrough": "Barré", "formatHeading": "Titre", "formatList": "Liste à puces", "formatOrderedList": "Liste numérotée", "formatChecklist": "Liste de contrôle", "formatLink": "Lien", "formatCode": "Code", "formatQuote": "Citation", "formatDivider": "Séparateur" }, "contacts": { "title": "Contacts", "newContact": "Nouveau contact", "editContact": "Modifier le contact", "addButton": "Nouveau", "newContactLabel": "Nouveau contact", "searchPlaceholder": "Rechercher par nom, téléphone ou e-mail…", "importButton": "Importer", "importLabel": "Importer un contact depuis vCard", "importTooltip": "Importer vCard", "emptyTitle": "Aucun contact", "emptyDescription": "Ajoutez de nouveaux contacts avec le bouton +.", "filterAll": "Tous", "nameLabel": "Nom *", "namePlaceholder": "Nom complet", "categoryLabel": "Catégorie", "phoneLabel": "Téléphone", "phonePlaceholder": "+33 …", "emailLabel": "E-mail", "emailPlaceholder": "nom@exemple.fr", "addressLabel": "Adresse", "addressPlaceholder": "Rue, Code postal Ville", "notesLabel": "Notes", "notesPlaceholder": "Optionnel…", "callLabel": "Appeler", "emailActionLabel": "E-mail", "mapsLabel": "Ouvrir dans Maps", "exportLabel": "Exporter en vCard", "exportTooltip": "Exporter vCard", "deleteLabel": "Supprimer le contact", "deleteConfirm": "Supprimer ce contact ?", "deletePersonConfirm": "Supprimer « {{name}} » ?", "savedToast": "Contact enregistré", "updatedToast": "Contact mis à jour", "deletedToast": "Contact supprimé", "importedToast": "{{name}} importé.", "importError": "Importation échouée : {{error}}", "vcardNoName": "La vCard ne contient pas de nom.", "catDoctor": "Médecin", "catSchool": "École/Crèche", "catAuthority": "Administration", "catInsurance": "Assurance", "catCraftsman": "Artisan", "catEmergency": "Urgence", "catMisc": "Divers", "categoryDoctor": "Médecin", "categorySchool": "École/Crèche", "categoryAuthority": "Administration", "categoryInsurance": "Assurance", "categoryCraftsman": "Artisan", "categoryEmergency": "Urgence", "categoryOther": "Autre" }, "budget": { "title": "Budget", "newEntry": "Nouvelle entrée", "editEntry": "Modifier l'entrée", "addEntryLabel": "Ajouter une entrée", "newEntryFabLabel": "Nouvelle entrée", "currentMonth": "Actuel", "prevMonth": "Mois précédent", "nextMonth": "Mois suivant", "income": "Revenus", "expenses": "Dépenses", "balance": "Solde", "byCategory": "Par catégorie", "transactions": "Transactions", "emptyTitle": "Aucune entrée ce mois-ci", "emptyDescription": "Ajoutez des entrées budgétaires avec le bouton +.", "csvExport": "CSV", "typeExpense": "Dépense", "typeIncome": "Revenu", "titleLabel": "Titre *", "titlePlaceholder": "ex. Supermarché", "amountLabel": "Montant *", "amountPlaceholder": "0,00", "categoryLabel": "Catégorie", "dateLabel": "Date *", "recurringLabel": "Récurrent", "deleteLabel": "Supprimer l'entrée", "deleteConfirm": "Supprimer cette entrée ?", "deletePersonConfirm": "Supprimer « {{title}} » ?", "addedToast": "Entrée ajoutée", "savedToast": "Entrée enregistrée", "deletedToast": "Entrée supprimée", "loadError": "Le budget n'a pas pu être chargé.", "trendNeutral": "- identique à {{month}}", "validAmountRequired": "Veuillez saisir un montant valide", "dateRequired": "La date est obligatoire", "catFood": "Alimentation", "catRent": "Loyer", "catInsurance": "Assurance", "catMobility": "Transport", "catLeisure": "Loisirs et divertissement", "catClothing": "Vêtements", "catHealth": "Santé", "catEducation": "Éducation", "catMisc": "Divers", "catEarnedIncome": "Revenus du Travail", "catInvestmentIncome": "Revenus d'Investissement", "catTransferGiftIncome": "Transferts et Cadeaux", "catGovernmentBenefits": "Allocations Sociales", "catOtherIncome": "Autres Revenus", "loadingIndicator": "Chargement…", "subcategoryLabel": "Sous-catégorie", "catHousing": "Logement / Maison", "catTransport": "Transport", "catPersonalHealth": "Soins personnels / Santé", "catShoppingClothing": "Achats et vêtements", "catFinancialOther": "Services financiers et autres", "subcatRentMortgage": "Loyer / Crédit immobilier", "subcatCondominium": "Copropriété", "subcatUtilities": "Électricité / Eau / Gaz", "subcatInternetTvPhone": "Internet / TV / Téléphone", "subcatRenovationMaintenance": "Rénovation / Entretien", "subcatCleaning": "Nettoyage", "subcatGroceries": "Supermarché", "subcatRestaurantsBars": "Restaurants / Bars", "subcatSnacksFastFood": "Snacks / Fast-food", "subcatBakery": "Boulangerie", "subcatFuel": "Carburant", "subcatParkingTolls": "Parking / Péages", "subcatPublicTransport": "Transports publics", "subcatAppsTaxi": "Apps / Taxi", "subcatMaintenanceInsurance": "Entretien / Assurance", "subcatPharmacy": "Pharmacie", "subcatHealthInsurance": "Assurance santé", "subcatGymSports": "Salle de sport / Sports", "subcatBeautyCosmetics": "Beauté / Cosmétiques", "subcatTravel": "Voyages", "subcatStreaming": "Streaming", "subcatEvents": "Événements", "subcatHobbies": "Loisirs", "subcatClothesShoes": "Vêtements / Chaussures", "subcatElectronics": "Électronique", "subcatGifts": "Cadeaux", "subcatCoursesCollege": "Cours / Université", "subcatSchoolSupplies": "Fournitures scolaires", "subcatLanguages": "Langues", "subcatLoansInterest": "Prêts / Intérêts", "subcatBankFees": "Frais bancaires", "subcatInsuranceOther": "Assurances", "subcatInvestments": "Investissements", "subcatTaxes": "Impôts", "metaLoadError": "Impossible de charger les catégories du budget.", "addCategory": "+ catégorie", "addSubcategory": "+ sous-catégorie", "newCategoryPrompt": "Nom de la nouvelle catégorie :", "newSubcategoryPrompt": "Nom de la nouvelle sous-catégorie :", "categoryAddedToast": "Catégorie ajoutée.", "subcategoryAddedToast": "Sous-catégorie ajoutée." }, "settings": { "title": "Paramètres", "tabGeneral": "Général", "tabMeals": "Repas", "tabBudget": "Budget", "tabShopping": "Courses", "tabCalendar": "Calendrier", "tabAccount": "Compte", "tabsAriaLabel": "Sections des paramètres", "sectionDesign": "Apparence", "sectionShopping": "Courses", "shoppingCategoriesLabel": "Catégories de courses", "shoppingCategoriesHint": "Ajoutez, renommez, supprimez ou réorganisez les catégories.", "shoppingCategoryPlaceholder": "Nouvelle catégorie…", "shoppingCategoryRenameHint": "Cliquez pour renommer", "shoppingCategoryRenamePrompt": "Nouveau nom de catégorie :", "shoppingCategoryMoveUp": "Déplacer la catégorie vers le haut", "shoppingCategoryMoveDown": "Déplacer la catégorie vers le bas", "shoppingCategoryDelete": "Supprimer la catégorie", "shoppingCategoryDeleteConfirm": "Supprimer la catégorie « {{name}} » ? Les articles existants seront déplacés vers la catégorie suivante.", "shoppingCategoryAdded": "Catégorie ajoutée.", "shoppingCategoryRenamed": "Catégorie renommée.", "shoppingCategoryDeleted": "Catégorie supprimée.", "sectionAccount": "Mon compte", "sectionCalendarSync": "Synchronisation du calendrier", "sectionFamily": "Membres de la famille", "cardAppearance": "Affichage", "themeSystem": "Système", "themeSysLabel": "Utiliser le paramètre système", "themeLight": "Clair", "themeLightLabel": "Mode clair", "themeDark": "Sombre", "themeDarkLabel": "Mode sombre", "changePassword": "Changer le mot de passe", "currentPasswordLabel": "Mot de passe actuel", "newPasswordLabel": "Nouveau mot de passe", "confirmPasswordLabel": "Confirmer le nouveau mot de passe", "savePassword": "Enregistrer le mot de passe", "passwordMismatch": "Les mots de passe ne correspondent pas.", "passwordSavedToast": "Mot de passe modifié avec succès.", "googleCalendar": "Google Agenda", "appleCalendar": "Apple Calendar (iCloud)", "syncNow": "Synchroniser maintenant", "disconnect": "Déconnecter", "connectGoogle": "Connecter avec Google", "connected": "Connecté", "connectedLastSync": "Connecté · Dernière sync. : {{date}}", "notConnected": "Non connecté", "notConfigured": "Non configuré (variables .env manquantes)", "configured": "Configuré (via .env)", "configuredLastSync": "Configuré (via .env) · Dernière sync. : {{date}}", "syncSuccess": "{{provider}} synchronisé.", "disconnectedToast": "{{provider}} déconnecté.", "googleOnlyAdmin": "Seul l'administrateur peut connecter Google Agenda.", "appleOnlyAdmin": "Seul l'administrateur peut connecter Apple Calendar.", "caldavUrlLabel": "URL du serveur CalDAV", "caldavUrlPlaceholder": "https://caldav.icloud.com", "appleIdLabel": "Identifiant Apple (e-mail)", "applePasswordLabel": "Mot de passe spécifique à l'app", "applePasswordHint": "Créez le mot de passe sur appleid.apple.com → Sécurité.", "appleConnectBtn": "Connecter et tester", "appleConnecting": "Connexion…", "appleConnectedToast": "Apple Calendar connecté.", "syncSuccessGoogle": "Synchronisation du calendrier avec Google réussie.", "syncSuccessApple": "Synchronisation du calendrier avec Apple réussie.", "syncErrorGoogle": "La connexion à Google a échoué. Veuillez réessayer.", "syncErrorApple": "La connexion à Apple a échoué. Veuillez réessayer.", "addMember": "+ Ajouter un membre", "newMemberTitle": "Nouveau membre de la famille", "usernameLabel": "Nom d'utilisateur", "displayNameLabel": "Nom affiché", "memberPasswordLabel": "Mot de passe", "colorLabel": "Couleur", "roleLabel": "Rôle", "roleMember": "Membre", "roleAdmin": "Admin", "createMember": "Créer", "cancelAddMember": "Annuler", "memberAddedToast": "{{name}} ajouté.", "deleteMemberConfirm": "Supprimer {{name}} ?", "memberDeletedToast": "{{name}} supprimé.", "deleteMemberLabel": "Supprimer", "logout": "Se déconnecter", "synchronizing": "Synchronisation…", "googleDisconnectConfirm": "Déconnecter Google Agenda ?", "appleDisconnectConfirm": "Déconnecter Apple Calendar ?", "localeSystem": "Système", "localeLabel": "Langue", "languageTitle": "Langue", "sectionMeals": "Plan de repas", "mealTypesLabel": "Repas visibles", "mealTypesHint": "Seuls les types de repas sélectionnés s'affichent dans le planificateur.", "mealTypesSaved": "Paramètres du plan de repas enregistrés.", "mealTypesMinOne": "Au moins un type de repas doit être actif.", "sectionBudget": "Budget", "currencyLabel": "Devise", "currencyHint": "Définit la devise utilisée dans toute la section budget.", "currencySaved": "Devise enregistrée.", "ics": { "title": "Abonnements ICS", "add": "Ajouter un abonnement", "addedToast": "Abonnement ajouté.", "deletedToast": "Abonnement supprimé.", "syncedToast": "Abonnement synchronisé.", "confirm_delete": "Voulez-vous vraiment supprimer cet abonnement ? Tous les événements associés seront également supprimés.", "empty": "Aucun abonnement pour le moment.", "form": { "name": "Nom", "url": "URL ICS", "color": "Couleur", "shared": "Visible par tous" }, "actions": { "submit": "Ajouter", "save": "Enregistrer", "cancel": "Annuler", "delete": "Supprimer", "edit": "Modifier", "sync": "Synchroniser maintenant" }, "status": { "lastSync": "Dernière sync. :", "never": "Pas encore synchronisé", "syncing": "Synchronisation...", "syncError": "Erreur de sync." }, "badges": { "private": "Privé", "shared": "Partagé" } } }, "login": { "tagline": "Planification familiale. Sécurisée. Respectueuse de la vie privée. Open source.", "usernameLabel": "Nom d'utilisateur", "usernamePlaceholder": "identifiant", "passwordLabel": "Mot de passe", "passwordPlaceholder": "••••••••", "loginButton": "Se connecter", "loggingIn": "Connexion…", "tooManyAttempts": "Trop de tentatives. Veuillez patienter un moment.", "invalidCredentials": "Identifiants invalides.", "version": "v{{version}}" }, "install": { "title": "Installer Oikos", "subtitle": "Ajouter à l'écran d'accueil", "iosTip1": "Appuyez sur ", "iosTip2": " → « Ajouter à l'écran d'accueil »", "installButton": "Installer", "dismissLabel": "Fermer" }, "modal": { "closeLabel": "Fermer", "overlayLabel": "Arrière-plan de la boîte de dialogue modale" }, "rrule": { "freqNone": "Pas de répétition", "freqDaily": "Quotidien", "freqWeekly": "Hebdomadaire", "freqMonthly": "Mensuel", "dayMo": "Lu", "dayTu": "Ma", "dayWe": "Me", "dayTh": "Je", "dayFr": "Ve", "daySa": "Sa", "daySu": "Di", "labelRepeat": "Répétition", "labelEvery": "Tous les", "labelOnDays": "Ces jours-ci", "labelUntil": "Se termine le (optionnel)", "unitDay": "jour", "unitDays": "jours", "unitWeek": "semaine", "unitWeeks": "semaines", "unitMonth": "mois", "unitMonths": "mois" }, "recipes": { "title": "Recipes", "addRecipe": "Add recipe", "editRecipe": "Edit recipe", "emptyTitle": "No recipes yet", "emptyDescription": "Save your favorite recipes and reuse them in meal planning.", "titleLabel": "Title *", "titlePlaceholder": "e.g. Pasta Carbonara", "notesLabel": "Notes", "notesPlaceholder": "Optional...", "urlLabel": "Recipe link", "urlPlaceholder": "https://...", "ingredientsLabel": "Ingredients", "addToMeals": "Add to meal plan", "openLink": "Open recipe link", "deleteConfirm": "Delete recipe \"{{title}}\"?", "created": "Recipe saved.", "updated": "Recipe updated.", "deleted": "Recipe deleted.", "titleRequired": "Title is required", "duplicate": "Duplicate", "duplicated": "Recipe duplicated.", "copySuffix": "copy" }, "search": { "title": "Recherche", "open": "Ouvrir la recherche", "placeholder": "Rechercher…", "noResults": "Aucun résultat trouvé." }, "reminders": { "sectionTitle": "Rappel", "enableLabel": "Définir un rappel", "offsetLabel": "Rappeler", "offsetNone": "Aucun", "offsetAtTime": "À l'heure de début", "offset15min": "15 minutes avant", "offset1hour": "1 heure avant", "offset1day": "1 jour avant", "dateLabel": "Date", "timeLabel": "Heure", "toastTitle": "Rappel", "dismiss": "Ignorer", "pendingBadgeTitle": "{{count}} rappel en attente", "pendingBadgeTitlePlural": "{{count}} rappels en attente", "notificationPermission": "Notifications du navigateur", "notificationEnable": "Activer les notifications", "notificationEnabled": "Notifications actives", "notificationDenied": "Notifications bloquées", "notificationHint": "Recevez des notifications même lorsque l'application est ouverte." } }