Files
oikos/public/locales/fr.json
T
2026-05-01 08:09:12 -03:00

1061 lines
43 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.
{
"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",
"reset": "Réinitialiser",
"errorOffline": "Pas de connexion internet. Vérifiez votre réseau.",
"errorForbidden": "Accès refusé. Veuillez vous reconnecter.",
"errorNotFound": "L'entrée n'a pas été trouvée.",
"errorServer": "Erreur serveur. Veuillez réessayer plus tard.",
"errorTimeout": "La connexion a pris trop de temps. Veuillez réessayer."
},
"nav": {
"dashboard": "Accueil",
"tasks": "Tâches",
"calendar": "Calendrier",
"meals": "Repas",
"shopping": "Courses",
"notes": "Notes",
"contacts": "Contacts",
"birthdays": "Anniversaires",
"budget": "Budget",
"settings": "Paramètres",
"main": "Navigation principale",
"navigation": "Navigation",
"quickActions": "Actions rapides",
"recipes": "Recettes",
"more": "Plus",
"documents": "Documents",
"kitchen": "Cuisine",
"search": "Recherche"
},
"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",
"familyMembers": "Membres de la famille",
"participantsAdded": "participants ajoutés",
"upcomingBirthdays": "Prochains anniversaires",
"noBirthdays": "Aucun anniversaire pour l'instant",
"daysLeft": "{{count}} jours",
"budgetOverview": "Aperçu du budget",
"monthlyIncome": "Revenus",
"monthlyExpenses": "Dépenses",
"monthlyBalance": "Solde",
"savingsRate": "Taux d'épargne",
"topExpense": "Plus grosse dépense",
"budgetEntries": "Écritures",
"noBudgetData": "Aucune donnée de budget ce mois-ci.",
"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.",
"statusArchived": "Archivé",
"archiveButton": "Archiver la tâche",
"archivedToast": "Tâche archivée.",
"kanbanArchived": "Archivé",
"reminderNeedsDueDate": "Définissez une date d'échéance pour activer les rappels de tâche.",
"emptyAction": "Créer une tâche"
},
"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",
"emptyAction": "Ajouter un article"
},
"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",
"deletedToast": "Meal deleted"
},
"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."
},
"iconLabel": "Icon",
"invalidDate": "Use a valid date in the selected date format.",
"attachmentLabel": "Attachment",
"attachmentHint": "Attach a local image, PDF, or document. Images will be shown in the event popup.",
"attachmentFallback": "Attachment",
"attachmentReadError": "The attachment could not be read.",
"attachmentTooLarge": "Attachment may be at most 5 MB."
},
"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",
"emptyAction": "Créer une note"
},
"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",
"emptyAction": "Ajouter un contact"
},
"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.",
"emptyAction": "Ajouter une entrée",
"loansTitle": "Prêts",
"loansSummary": "{{count}} actifs · {{amount}} restants",
"newLoan": "Nouveau prêt",
"createLoan": "Créer le prêt",
"editLoan": "Modifier le prêt",
"deleteLoan": "Supprimer le prêt",
"deleteLoanConfirm": "Supprimer le prêt \"{{title}}\" ? Les paiements déjà enregistrés dans le budget seront aussi supprimés.",
"loanRemainingAmount": "Restant",
"loanRemainingInstallments": "Échéances restantes",
"loanPaidAmount": "Payé",
"loansEmpty": "Aucun prêt actif.",
"loanInstallmentMeta": "{{paid}} sur {{total}} échéances payées",
"loanRemainingOf": "sur {{total}}",
"loanNextDue": "Prochaine : {{month}}",
"loanPaidStatus": "Payé",
"markLoanPaid": "Marquer payé",
"loanBorrowerLabel": "Personne *",
"loanBorrowerPlaceholder": "Ex. Lais",
"loanTitleLabel": "Titre du prêt",
"loanTitlePlaceholder": "Ex. Prêt personnel",
"loanAmountLabel": "Montant total *",
"loanInstallmentsLabel": "Échéances *",
"loanStartMonthLabel": "Premier mois d’échéance *",
"loanNotesLabel": "Notes",
"loanBorrowerRequired": "La personne est obligatoire",
"loanInstallmentsRequired": "Indiquez le nombre d’échéances",
"loanStartMonthRequired": "Indiquez le premier mois d’échéance",
"loanAddedToast": "Prêt ajouté",
"loanSavedToast": "Prêt enregistré",
"loanDeletedToast": "Prêt supprimé",
"loanPaymentAddedToast": "Paiement enregistré",
"typeLoan": "Prêt",
"tabsLabel": "Sections du budget",
"budgetTab": "Budget",
"loansTab": "Prêts",
"filteredTransactions": "Transactions filtrées",
"clearLoanFilter": "Effacer le filtre",
"loanFilterActive": "Prêt : {{title}}",
"filterLoanTransactions": "Afficher les transactions de ce prêt",
"loansEmptyDescription": "Créez un prêt avec le bouton + puis choisissez Prêt.",
"newCategoryTitle": "Nouvelle catégorie",
"newCategoryPlaceholder": "Nom de la catégorie",
"newSubcategoryTitle": "Nouvelle sous-catégorie",
"newSubcategoryPlaceholder": "Nom de la sous-catégorie",
"loanStatusFilterLabel": "Filtre de statut des prêts",
"loanStatusActive": "Actifs",
"loanStatusPaid": "Payés",
"loanStatusAll": "Tous",
"loanTransactions": "Transactions du prêt",
"loanInstallmentNumber": "Échéance {{number}} sur {{total}}",
"loanReportTitle": "Rapport du prêt",
"loanNoTransactions": "Aucun paiement enregistré."
},
"settings": {
"title": "Paramètres",
"tabGeneral": "Général",
"tabMeals": "Repas",
"tabBudget": "Budget",
"tabShopping": "Courses",
"tabCalendar": "Calendrier",
"tabFamily": "Gestion familiale",
"tabApiTokens": "API Tokens",
"tabAccount": "Compte",
"tabsAriaLabel": "Sections des paramètres",
"sectionDesign": "Apparence",
"sectionAppName": "Nom de l'application",
"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",
"appNameTitle": "Nom de l'application",
"appNameLabel": "Nom de l'application",
"appNameHint": "Ce nom apparaît dans la barre latérale, le titre du navigateur et l'écran de connexion.",
"appNamePlaceholder": "Oikos",
"appNameSavedToast": "Nom de l'application enregistré.",
"sectionDate": "Date",
"dateFormatTitle": "Format de date",
"dateFormatLabel": "Format de date préféré",
"dateFormatHint": "Choisissez comment les dates sont affichées dans l'application.",
"dateFormatSavedToast": "Format de date enregistré.",
"timeFormatLabel": "Format de l'heure",
"timeFormatHours": "heures",
"timeFormatSavedToast": "Format de l'heure enregistré.",
"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 <strong>appleid.apple.com → Sécurité</strong>.",
"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",
"profilePictureTitle": "Photo de profil",
"profilePictureLabel": "Importer une photo",
"profilePictureHint": "PNG, JPEG ou WebP. Les grandes images sont redimensionnées avant l'envoi.",
"profilePictureRemove": "Supprimer la photo",
"profilePictureTypeError": "Utilisez une image PNG, JPEG ou WebP.",
"profilePictureFileTooLarge": "Le fichier image est trop volumineux.",
"profilePictureTooLarge": "La photo reste trop volumineuse après redimensionnement.",
"profilePictureReadError": "Impossible de lire l'image sélectionnée.",
"profileSavedToast": "Profil mis à jour.",
"editMemberLabel": "Modifier",
"editMemberTitle": "Modifier le membre de la famille",
"saveMember": "Enregistrer le membre",
"memberUpdatedToast": "{{name}} mis à jour.",
"familyRoleLabel": "Rôle familial",
"familyRoleDad": "Papa",
"familyRoleMom": "Maman",
"familyRoleParent": "Parent",
"familyRoleChild": "Enfant",
"familyRoleGrandparent": "Grand-parent",
"familyRoleRelative": "Proche",
"familyRoleOther": "Membre de la famille",
"systemAdminLabel": "Administrateur système",
"systemAdminHint": "Les administrateurs système peuvent gérer les paramètres, intégrations, jetons API et comptes familiaux.",
"systemAdminBadge": "Admin système",
"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.",
"apiTokensTitle": "API Tokens",
"apiTokensCardTitle": "Access Tokens",
"apiTokensHint": "Create API tokens for external integrations. The full token is shown only once after creation.",
"apiTokenNameLabel": "Token name",
"apiTokenExpiresLabel": "Expiration date",
"apiTokenExpiresHint": "Leave empty to create a token without expiration.",
"apiTokenCreatedLabel": "New API token",
"apiTokenCreatedHint": "Store this token securely. It cannot be shown again.",
"apiTokenCreate": "Create token",
"apiTokenInvalidExpiration": "Please enter a valid expiration date.",
"apiTokenCreatedToast": "API token created.",
"apiTokenRevokedToast": "API token revoked.",
"apiTokenRevokeConfirm": "Revoke API token \"{{name}}\"?",
"apiTokenRevoke": "Revoke token",
"apiTokenRevoked": "Revoked",
"apiTokenExpired": "Expired",
"apiTokenActive": "Active",
"apiTokenPrefix": "Prefix",
"apiTokenExpires": "Expires",
"apiTokenNeverExpires": "No expiration",
"apiTokenLastUsed": "Last used",
"apiTokenNeverUsed": "Never used",
"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é"
},
"updatedToast": "Abonnement mis à jour."
},
"memberPhoneLabel": "Numéro de téléphone (facultatif)",
"memberEmailLabel": "E-mail (facultatif)",
"memberBirthDateLabel": "Date de naissance (facultatif)",
"memberContactBirthdayHint": "Ce membre est automatiquement synchronisé avec les Contacts et les Anniversaires.",
"memberBirthDateInvalid": "Utilisez une date de naissance valide dans le format sélectionné.",
"memberPhoneMeta": "Téléphone : {{value}}",
"memberBirthdayMeta": "Anniversaire : {{date}}",
"tabBackup": "Gestion des sauvegardes",
"sectionBackup": "Gestion des sauvegardes",
"backupDownloadTitle": "Télécharger la sauvegarde de la base",
"backupDownloadHint": "Crée une sauvegarde SQLite cohérente de toutes les données.",
"backupDownloadButton": "Télécharger la sauvegarde",
"backupRestoreTitle": "Restaurer une sauvegarde de la base",
"backupRestoreHint": "La restauration remplace la base actuelle. Télécharge une sauvegarde récente avant de continuer.",
"backupDropzoneTitle": "Dépose un fichier de sauvegarde ici ou clique pour le choisir",
"backupDropzoneHint": "Fichiers SQLite : .db, .sqlite ou .sqlite3",
"backupRestoreButton": "Restaurer la sauvegarde",
"backupRestoreConfirm": "Cette restauration remplacera la base actuelle pour tout le monde. Continuer ?",
"backupRestoring": "Restauration...",
"backupRestoredToast": "Base restaurée. Rechargement...",
"backupCliTitle": "Restauration CLI / Docker Compose",
"backupCliHint": "For operational restores, stop the app, mount the backup in a temporary container and replace the database file.",
"backupCliBackupHint": "Tu peux aussi créer une sauvegarde directement avec Docker Compose :"
},
"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",
"unsavedChanges": "Abandonner les modifications ?",
"discardChanges": "Abandonner"
},
"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": "Recettes",
"addRecipe": "Ajouter une recette",
"editRecipe": "Modifier la recette",
"emptyTitle": "Aucune recette pour le moment",
"emptyDescription": "Enregistrez vos recettes préférées et réutilisez-les dans la planification des repas.",
"titleLabel": "Titre *",
"titlePlaceholder": "ex. Pâtes à la Carbonara",
"notesLabel": "Notes",
"notesPlaceholder": "Facultatif...",
"urlLabel": "Lien de recette",
"urlPlaceholder": "https://...",
"ingredientsLabel": "Ingrédients",
"addToMeals": "Ajouter au plan de repas",
"openLink": "Ouvrir le lien de recette",
"deleteConfirm": "Supprimer la recette \"{{title}}\" ?",
"created": "Recette enregistrée.",
"updated": "Recette mise à jour.",
"deleted": "Recette supprimée.",
"titleRequired": "Le titre est requis",
"duplicate": "Dupliquer",
"duplicated": "Recette dupliquée.",
"copySuffix": "copie",
"emptyAction": "Créer une recette"
},
"search": {
"title": "Recherche",
"open": "Ouvrir la recherche",
"placeholder": "Rechercher…",
"noResults": "Aucun résultat trouvé."
},
"birthdays": {
"title": "Anniversaires",
"addButton": "Ajouter un anniversaire",
"searchPlaceholder": "Rechercher des anniversaires…",
"upcomingTitle": "Prochains anniversaires",
"upcomingHint": "Les prochaines célébrations, déjà synchronisées avec le calendrier.",
"peopleTitle": "Personnes",
"peopleHint": "Recherchez, vérifiez et modifiez tous les anniversaires enregistrés.",
"emptyTitle": "Aucun anniversaire pour le moment",
"emptyDescription": "Ajoutez un anniversaire pour le garder visible dans le calendrier et les rappels.",
"newTitle": "Nouvel anniversaire",
"editTitle": "Modifier l'anniversaire",
"nameLabel": "Nom",
"birthDateLabel": "Date de naissance",
"photoLabel": "Photo de profil",
"removePhoto": "Supprimer la photo",
"notesLabel": "Notes",
"notesPlaceholder": "Idées de cadeaux, gâteau préféré, notes familiales…",
"calendarHint": "Chaque anniversaire est automatiquement ajouté au calendrier et au système de rappels.",
"requiredFields": "Le nom et la date de naissance sont obligatoires.",
"createdToast": "Anniversaire enregistré.",
"updatedToast": "Anniversaire mis à jour.",
"deletedToast": "Anniversaire supprimé.",
"deleteConfirm": "Supprimer l'anniversaire de \"{{name}}\" ?",
"ageNoteToday": "Fête ses {{age}} ans aujourd'hui.",
"ageNoteTomorrow": "Fêtera ses {{age}} ans demain.",
"ageNoteDays": "Fêtera ses {{age}} ans dans {{days}} jours."
},
"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.",
"offset2days": "2 days before",
"offset1week": "1 week before",
"offset2weeks": "2 weeks before",
"offsetCustom": "Custom...",
"customAmountLabel": "Number",
"customUnitLabel": "Unit",
"customMinutes": "Minutes",
"customHours": "Hours",
"customDays": "Days",
"customWeeks": "Weeks"
},
"onboarding": {
"step1Title": "Welcome to Oikos",
"step1Body": "Your personal family planner. Tasks, calendar, shopping and more all in one place.",
"step2Title": "Navigation & modules",
"step2Body": "En bas, accédez directement au Tableau de bord et au Calendrier. Le bouton ··· ouvre d'autres modules comme Cuisine, Notes et Contacts.",
"step3Title": "Démarrer rapidement",
"step3Body": "Avec le bouton +, créez de nouvelles entrées n'importe où. Faites glisser les éléments de liste à gauche ou à droite pour des actions rapides.",
"next": "Next",
"done": "Get started",
"skip": "Skip"
},
"offline": {
"banner": "Offline reconnecting…"
},
"emptyHint": {
"recipes": "Créez des recettes et associez-les à votre planification des repas."
},
"documents": {
"title": "Documents",
"addButton": "Ajouter un document",
"searchPlaceholder": "Rechercher des documents...",
"gridView": "Vue en grille",
"listView": "Vue en liste",
"viewToggle": "Vue des documents",
"allCategories": "Toutes les catégories",
"emptyTitle": "Aucun document pour le moment",
"emptyDescription": "Ajoutez des documents familiaux et contrôlez qui peut voir chaque fichier.",
"newTitle": "Nouveau document",
"editTitle": "Paramètres du document",
"nameLabel": "Nom",
"descriptionLabel": "Description",
"categoryLabel": "Catégorie",
"fileLabel": "Fichier",
"fileHint": "PDF, images, texte et fichiers Office jusqu'à 5 Mo.",
"visibilityLabel": "Visibilité",
"statusLabel": "Statut",
"allowedMembersLabel": "Membres autorisés",
"uploadAction": "Téléverser",
"downloadAction": "Télécharger",
"editAction": "Paramètres",
"archiveAction": "Archiver",
"restoreAction": "Restaurer",
"savedToast": "Document enregistré.",
"uploadedToast": "Document téléversé.",
"archivedToast": "Document archivé.",
"restoredToast": "Document restauré.",
"deletedToast": "Document supprimé.",
"deleteConfirm": "Supprimer le document \"{{name}}\" ?",
"fileRequired": "Sélectionnez un fichier à téléverser.",
"fileTooLarge": "Le fichier ne peut pas dépasser 5 Mo.",
"fileReadError": "Impossible de lire le fichier.",
"statusActive": "Actif",
"statusArchived": "Archivé",
"visibility": {
"family": "Toute la famille",
"restricted": "Membres sélectionnés",
"private": "Moi uniquement"
},
"category": {
"medical": "Médical",
"school": "École",
"identity": "Identité",
"insurance": "Assurance",
"finance": "Finances",
"home": "Maison",
"vehicle": "Véhicule",
"legal": "Juridique",
"travel": "Voyage",
"pets": "Animaux",
"warranty": "Garantie",
"taxes": "Impôts",
"work": "Travail",
"other": "Autre"
},
"dropzoneTitle": "Déposez le fichier ici ou cliquez pour choisir",
"dropzoneHint": "Glissez un fichier dans cette zone ou utilisez le sélecteur.",
"selectedFileLabel": "Sélectionné : {{name}}"
},
"shortcuts": {
"goKitchen": "Cuisine"
}
}