Files
oikos/public/locales/fr.json
T
Ulas Kalayci 6cf6b9bec0 feat(ux): first-time onboarding overlay for new users
Shows a 3-screen modal overlay on first dashboard visit explaining key
features; dismissed state is persisted to localStorage so it never
reappears.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 23:29:57 +02:00

796 lines
31 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"
},
"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",
"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."
}
},
"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 <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",
"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é"
}
}
},
"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": "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."
},
"onboarding": {
"step1Title": "Welcome to Oikos",
"step1Body": "Your personal family planner. Tasks, calendar, shopping and more all in one place.",
"step2Title": "Everything at a glance",
"step2Body": "Use the navigation below to reach all modules. The + button creates new entries quickly.",
"step3Title": "Ready to go",
"step3Body": "The dashboard shows you the most important information at a glance. Customize it under \"Customize\".",
"next": "Next",
"done": "Get started",
"skip": "Skip"
}
}