{ "Dashboard": { "title": "Tableau de bord" }, "HabitList": { "myTasks": "Mes tâches", "myHabits": "Mes habitudes", "addTaskButton": "Ajouter une tâche", "addHabitButton": "Ajouter une habitude", "searchTasksPlaceholder": "Rechercher des tâches...", "searchHabitsPlaceholder": "Rechercher des habitudes...", "sortByLabel": "Trier par :", "sortByName": "Nom", "sortByCoinReward": "Récompense en pièces", "sortByDueDate": "Date d'échéance", "sortByFrequency": "Fréquence", "toggleSortOrderAriaLabel": "Changer l'ordre de tri", "noTasksFoundMessage": "Aucune tâche ne correspond à votre recherche.", "noHabitsFoundMessage": "Aucune habitude ne correspond à votre recherche.", "emptyStateTasksTitle": "Aucune tâche pour l'instant", "emptyStateHabitsTitle": "Aucune habitude pour l'instant", "emptyStateTasksDescription": "Créez votre première tâche pour commencer à suivre vos progrès", "emptyStateHabitsDescription": "Créez votre première habitude pour commencer à suivre vos progrès", "archivedSectionTitle": "Archivé", "deleteTaskDialogTitle": "Supprimer la tâche", "deleteHabitDialogTitle": "Supprimer l'habitude", "deleteTaskDialogMessage": "Êtes-vous sûr de vouloir supprimer cette tâche ? Cette action est irréversible.", "deleteHabitDialogMessage": "Êtes-vous sûr de vouloir supprimer cette habitude ? Cette action est irréversible.", "deleteButton": "Supprimer" }, "DailyOverview": { "addTaskButtonLabel": "Ajouter une tâche", "addHabitButtonLabel": "Ajouter une habitude", "todaysOverviewTitle": "Aperçu du jour", "dailyTasksTitle": "Tâches quotidiennes", "noTasksDueTodayMessage": "Aucune tâche pour aujourd'hui. Ajoutez des tâches pour commencer !", "dailyHabitsTitle": "Habitudes quotidiennes", "noHishabitsDueTodayMessage": "Aucune habitude pour aujourd'hui. Ajoutez des habitudes pour commencer !", "wishlistGoalsTitle": "Objectifs de la liste de souhaits", "redeemableBadgeLabel": "{count}/{total} échangeable", "noWishlistItemsMessage": "Aucun élément dans la liste de souhaits. Ajoutez des objectifs à atteindre !", "readyToRedeemMessage": "Prêt à échanger !", "coinsToGoMessage": "Il manque {amount} pièces", "showLessButton": "Afficher moins", "showAllButton": "Afficher tout", "viewButton": "Voir", "deleteTaskDialogTitle": "Supprimer la tâche", "deleteHabitDialogTitle": "Supprimer l'habitude", "confirmDeleteDialogMessage": "Êtes-vous sûr de vouloir supprimer \"{name}\" ? Cette action est irréversible.", "deleteButton": "Supprimer", "overdueTooltip": "En retard" }, "HabitContextMenuItems": { "startPomodoro": "Démarrer Pomodoro", "moveToToday": "Déplacer à aujourd'hui", "moveToTomorrow": "Déplacer à demain", "unpin": "Détacher", "pin": "Attacher", "edit": "Modifier", "archive": "Archiver", "unarchive": "Désarchiver", "delete": "Supprimer" }, "HabitStreak": { "dailyCompletionStreakTitle": "Série de complétions quotidiennes", "tooltipHabitsLabel": "habitudes", "tooltipTasksLabel": "tâches", "tooltipCompletedLabel": "Complété" }, "CoinBalance": { "coinBalanceTitle": "Solde de pièces" }, "AddEditHabitModal": { "editTaskTitle": "Modifier une tâche", "editHabitTitle": "Modifier une habitude", "addNewTaskTitle": "Ajouter une nouvelle tâche", "AddNewHabitTitle": "Ajouter une nouvelle habitude", "nameLabel": "Nom *", "descriptionLabel": "Description", "whenLabel": "Quand *", "completeLabel": "Compléter", "timesSuffix": "fois", "rewardLabel": "Récompense", "coinsSuffix": "pièces", "shareLabel": "Partager", "saveChangesButton": "Sauvegarder les modifications", "addTaskButton": "Ajouter une tâche", "addHabitButton": "Ajouter une habitude" }, "ConfirmDialog": { "confirmButton": "Confirmer", "cancelButton": "Annuler" }, "AddEditWishlistItemModal": { "editTitle": "Modifier la récompense", "addTitle": "Ajouter une nouvelle récompense", "nameLabel": "Nom *", "descriptionLabel": "Description", "costLabel": "Coût", "coinsSuffix": "pièces", "redeemableLabel": "Échangeable", "timesSuffix": "fois", "errorNameRequired": "Le nom est requis", "errorCoinCostMin": "Le coût en pièces doit être d'au moins 1", "errorTargetCompletionsMin": "Les complétions cibles doivent être d'au moins 1", "errorInvalidUrl": "Veuillez entrer une URL valide", "linkLabel": "Lien", "shareLabel": "Partager", "saveButton": "Sauvegarder les modifications", "addButton": "Ajouter une récompense" }, "Navigation": { "dashboard": "Tableau de bord", "tasks": "Tâches", "habits": "Habitudes", "calendar": "Calendrier", "wishlist": "Liste de souhaits", "coins": "Pièces" }, "TodayEarnedCoins": { "todaySuffix": "aujourd'hui" }, "WishlistItem": { "usesLeftSingular": "utilisation restante", "usesLeftPlural": "utilisations restantes", "coinsSuffix": "pièces", "redeem": "Échanger", "redeemedDone": "Fait", "redeemedExclamation": "Échangé !", "editButton": "Modifier", "archiveButton": "Archiver", "unarchiveButton": "Désarchiver", "deleteButton": "Supprimer" }, "WishlistManager": { "title": "Ma liste de souhaits", "addRewardButton": "Ajouter une récompense", "emptyStateTitle": "Votre liste de souhaits est vide", "emptyStateDescription": "Ajoutez des récompenses que vous aimeriez gagner avec vos pièces", "archivedSectionTitle": "Archivé", "popupBlockedTitle": "Popup bloqué", "popupBlockedDescription": "Veuillez autoriser les popups pour ouvrir le lien", "deleteDialogTitle": "Supprimer la récompense", "deleteDialogMessage": "Êtes-vous sûr de vouloir supprimer cette récompense ? Cette action est irréversible.", "deleteButton": "Supprimer" }, "UserSelectModal": { "addUserButton": "Ajouter un utilisateur", "createNewUserTitle": "Créer un nouvel utilisateur", "selectUserTitle": "Sélectionner un utilisateur", "signInSuccessTitle": "Connecté avec succès", "signInSuccessDescription": "Bienvenue, {username} !", "errorInvalidPassword": "mot de passe invalide", "deleteUserConfirmation": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ? Cette action est irréversible.", "confirmDeleteButtonText": "Supprimer", "deletingButtonText": "Suppression en cours...", "deleteUserSuccessTitle": "Utilisateur supprimé", "deleteUserSuccessDescription": "L'utilisateur {username} a été supprimé avec succès.", "deleteUserErrorTitle": "Échec de la suppression", "genericError": "Une erreur inattendue s'est produite.", "networkError": "Une erreur réseau s'est produite. Veuillez réessayer.", "editUserTooltip": "Modifier l'utilisateur", "deleteUserTooltip": "Supprimer l'utilisateur" }, "CoinsManager": { "title": "Gestion des pièces", "currentBalanceLabel": "Solde actuel", "coinsSuffix": "pièces", "addCoinsButton": "Ajouter des pièces", "removeCoinsButton": "Retirer des pièces", "statisticsTitle": "Statistiques", "totalEarnedLabel": "Total gagné", "totalSpentLabel": "Total dépensé", "totalTransactionsLabel": "Total des transactions", "todaysEarnedLabel": "Gagné aujourd'hui", "todaysSpentLabel": "Dépensé aujourd'hui", "todaysTransactionsLabel": "Transactions d'aujourd'hui", "transactionHistoryTitle": "Historique des transactions", "showLabel": "Afficher :", "entriesSuffix": "entrées", "showingEntries": "Affichage de {from} à {to} de {total} entrées", "noTransactionsTitle": "Aucune transaction pour l'instant", "noTransactionsDescription": "Votre historique de transactions apparaîtra ici une fois que vous commencerez à gagner ou dépenser des pièces", "pageLabel": "Page", "ofLabel": "sur", "transactionTypeHabitCompletion": "Complétion d'habitude", "transactionTypeTaskCompletion": "Complétion de tâche", "transactionTypeHabitUndo": "Annulation d'habitude", "transactionTypeTaskUndo": "Annulation de tâche", "transactionTypeWishRedemption": "Échange de souhait", "transactionTypeManualAdjustment": "Ajustement manuel", "transactionTypeCoinReset": "Réinitialisation des pièces", "transactionTypeInitialBalance": "Solde initial" }, "NotificationBell": { "errorUpdateTimestamp": "Échec de la mise à jour du timestamp de lecture de notification :" }, "PomodoroTimer": { "focusLabel1": "Reste concentré", "focusLabel2": "Tu peux le faire", "focusLabel3": "Continue", "focusLabel4": "Tout donner", "focusLabel5": "Fais-le arriver", "focusLabel6": "Reste fort", "focusLabel7": "Persiste", "focusLabel8": "Un pas à la fois", "focusLabel9": "Tu peux y arriver", "focusLabel10": "Concentre-toi et conquiers", "breakLabel1": "Prends une pause", "breakLabel2": "Relaxe-toi et recharge", "breakLabel3": "Respire profondément", "breakLabel4": "Étire-toi", "breakLabel5": "Rafraîchis-toi", "breakLabel6": "Tu le mérites", "breakLabel7": "Recharge ton énergie", "breakLabel8": "Éloigne-toi un moment", "breakLabel9": "Vide ton esprit", "breakLabel10": "Repose-toi et récupère", "focusType": "Concentration", "breakType": "Pause", "pauseButton": "Pause", "startButton": "Démarrer", "resetButton": "Réinitialiser", "skipButton": "Passer", "wakeLockNotSupported": "Le navigateur ne supporte pas le verrouillage de veille", "wakeLockInUse": "Le verrouillage de veille est déjà actif", "wakeLockRequestError": "Erreur lors de la demande de verrouillage de veille :", "wakeLockReleaseError": "Erreur lors de la libération du verrouillage de veille :" }, "HabitCalendar": { "title": "Calendrier des habitudes", "calendarCardTitle": "Calendrier", "selectDatePrompt": "Sélectionner une date", "tasksSectionTitle": "Tâches", "habitsSectionTitle": "Habitudes", "errorCompletingPastHabit": "Erreur lors de la complétion d'une habitude passée :" }, "NotificationDropdown": { "notLoggedIn": "Non connecté.", "userCompletedItem": "{username} a complété {itemName}.", "userRedeemedItem": "{username} a échangé {itemName}.", "activityRelatedToItem": "Activité liée à {itemName} par {username}.", "defaultUsername": "Quelqu'un", "defaultItemName": "un élément partagé", "notificationsTitle": "Notifications", "notificationsTooltip": "Affiche les complétions ou les échanges par d'autres utilisateurs pour les habitudes ou la liste de souhaits que vous avez partagés avec eux (vous devez être admin)", "noNotificationsYet": "Aucune notification pour l'instant." }, "AboutModal": { "dialogArisLabel": "à propos", "changelogButton": "Journal des modifications", "createdByPrefix": "Créé avec ❤️ par", "starOnGitHubButton": "Étoile sur GitHub" }, "PermissionSelector": { "permissionsTitle": "Permissions", "adminAccessLabel": "Accès administrateur", "adminAccessDescription": "Les administrateurs ont tous les droits sur les données de tous les utilisateurs", "resourceHabitTask": "Habitude / Tâche", "resourceWishlist": "Liste de souhaits", "resourceCoins": "Pièces", "permissionWrite": "Écriture", "permissionInteract": "Interaction" }, "UserForm": { "toastUserUpdatedTitle": "Utilisateur mis à jour", "toastUserUpdatedDescription": "Utilisateur {username} mis à jour avec succès", "toastUserCreatedTitle": "Utilisateur créé", "toastUserCreatedDescription": "Utilisateur {username} créé avec succès", "actionUpdate": "mise à jour", "actionCreate": "création", "errorFailedUserAction": "Échec de la {action} de l'utilisateur", "toastDemoDeleteDisabled": "La suppression est désactivée dans la version de démonstration", "toastCannotDeleteSelf": "Vous ne pouvez pas supprimer votre propre compte", "confirmDeleteUser": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username}?", "toastUserDeletedTitle": "Utilisateur supprimé", "toastUserDeletedDescription": "L'utilisateur {username} a été supprimé avec succès", "toastDeleteUserFailed": "Échec de la suppression de l'utilisateur : {error}", "errorTitle": "Erreur", "errorFileSizeLimit": "La taille du fichier doit être inférieure à 5MB", "toastAvatarUploadedTitle": "Avatar téléchargé", "toastAvatarUploadedDescription": "Avatar téléchargé avec succès", "errorFailedAvatarUpload": "Échec du téléchargement de l'avatar", "changeAvatarButton": "Changer l'avatar", "uploadAvatarButton": "Télécharger l'avatar", "usernameLabel": "Nom d'utilisateur", "usernamePlaceholder": "Nom d'utilisateur", "newPasswordLabel": "Nouveau mot de passe", "passwordLabel": "Mot de passe", "passwordPlaceholderEdit": "Laisser vide pour conserver l'actuel", "passwordPlaceholderCreate": "Entrer le mot de passe", "demoPasswordDisabledMessage": "Le mot de passe est automatiquement désactivé dans l'instance de démonstration", "disablePasswordLabel": "Désactiver le mot de passe", "cancelButton": "Annuler", "saveChangesButton": "Sauvegarder les modifications", "createUserButton": "Créer un utilisateur", "deleteAccountButton": "Supprimer le compte", "deletingButtonText": "Suppression en cours...", "areYouSure": "Êtes-vous sûr ?", "deleteUserConfirmation": "Êtes-vous sûr de vouloir supprimer l'utilisateur {username} ?", "cancel": "Annuler", "confirmDeleteButtonText": "Supprimer" }, "ViewToggle": { "habitsLabel": "Habitudes", "tasksLabel": "Tâches" }, "HabitItem": { "overdue": "En retard", "whenLabel": "Quand : {frequency}", "coinsPerCompletion": "{count} pièces par complétion", "completedStatus": "Complété", "completedStatusCount": "Complété ({completed}/{target})", "completedStatusCountMobile": "{completed}/{target}", "completeButton": "Compléter", "completeButtonCount": "Compléter ({completed}/{target})", "completeButtonCountMobile": "{completed}/{target}", "undoButton": "Annuler", "editButton": "Modifier" }, "TransactionNoteEditor": { "noteTooLongTitle": "Note trop longue", "noteTooLongDescription": "Les notes doivent faire moins de 200 caractères", "errorSavingNoteTitle": "Erreur lors de la sauvegarde de la note", "errorDeletingNoteTitle": "Erreur lors de la suppression de la note", "pleaseTryAgainDescription": "Veuillez réessayer", "addNotePlaceholder": "Ajouter une note...", "saveNoteTitle": "Sauvegarder la note", "cancelButtonTitle": "Annuler", "deleteNoteTitle": "Supprimer la note", "editNoteAriaLabel": "Modifier la note" }, "Profile": { "guestUsername": "Invité", "editProfileButton": "Modifier le profil", "signOutSuccessTitle": "Déconnexion réussie", "signOutSuccessDescription": "Vous avez été déconnecté de votre compte", "signOutErrorTitle": "Erreur de déconnexion", "signOutErrorDescription": "Échec de la déconnexion", "switchUserButton": "Changer d'utilisateur", "settingsLink": "Paramètres", "aboutButton": "À propos", "themeLabel": "Thème", "editProfileModalTitle": "Modifier le profil" }, "PasswordEntryForm": { "notYouButton": "Ce n'est pas vous ?", "passwordLabel": "Mot de passe", "passwordPlaceholder": "Entrer le mot de passe", "loginErrorToastTitle": "Erreur", "loginFailedErrorToastDescription": "Échec de la connexion", "cancelButton": "Annuler", "loginButton": "Se connecter" }, "CompletionCountBadge": { "countCompleted": "{completedCount}/{totalCount} complété" }, "SettingsPage": { "title": "Paramètres", "uiSettingsTitle": "Paramètres de l'interface", "numberFormattingLabel": "Formatage des nombres", "numberFormattingDescription": "Formater les grands nombres (ex: 1K, 1M, 1B)", "numberGroupingLabel": "Regroupement des nombres", "numberGroupingDescription": "Utiliser les séparateurs de milliers (ex: 1,000 vs 1000)", "systemSettingsTitle": "Paramètres système", "timezoneLabel": "Fuseau horaire", "timezoneDescription": "Sélectionnez votre fuseau horaire pour un suivi précis des dates", "weekStartDayLabel": "Jour de début de semaine", "weekStartDayDescription": "Sélectionnez votre jour préféré pour commencer la semaine", "weekdays": { "sunday": "Dimanche", "monday": "Lundi", "tuesday": "Mardi", "wednesday": "Mercredi", "thursday": "Jeudi", "friday": "Vendredi", "saturday": "Samedi" }, "autoBackupLabel": "Sauvegarde automatique", "autoBackupTooltip": "Lorsqu'il est activé, les données de l'application (habitudes, pièces, paramètres, etc.) sont automatiquement sauvegardées quotidiennement vers 2 heures du matin, heure du serveur. Les sauvegardes sont stockées sous forme de fichiers ZIP dans le répertoire `backups/` à la racine du projet. Seules les 7 dernières sauvegardes sont conservées ; les plus anciennes sont automatiquement supprimées.", "autoBackupDescription": "Effectuer une sauvegarde automatique quotidienne", "languageLabel": "Langue", "languageDescription": "Choisissez votre langue d'affichage préférée pour l'application.", "languageChangedTitle": "Langue modifiée", "languageChangedDescription": "Veuillez actualiser la page pour voir les changements", "languageDisabledInDemoTooltip": "Le changement de langue est désactivé dans la version de démonstration." }, "Common": { "authenticationRequiredTitle": "Authentification requise", "authenticationRequiredDescription": "Veuillez vous connecter pour continuer.", "permissionDeniedTitle": "Permission refusée", "permissionDeniedDescription": "Vous n'avez pas la permission de {action} pour {resource}.", "undoButton": "Annuler", "redoButton": "Rétablir", "errorTitle": "Erreur" }, "useHabits": { "alreadyCompletedTitle": "Déjà complété", "alreadyCompletedDescription": "Vous avez déjà complété cette habitude aujourd'hui.", "completedTitle": "Complété !", "earnedCoinsDescription": "Vous avez gagné {coinReward} pièces.", "progressTitle": "Progrès !", "progressDescription": "Vous avez complété {count}/{target} fois aujourd'hui.", "completionUndoneTitle": "Complétion annulée", "completionUndoneDescription": "Vous avez {count}/{target} complétions aujourd'hui.", "noCompletionsToUndoTitle": "Aucune complétion à annuler", "noCompletionsToUndoDescription": "Cette habitude n'a pas été complétée aujourd'hui.", "alreadyCompletedPastDateTitle": "Déjà complété", "alreadyCompletedPastDateDescription": "Cette habitude a déjà été complétée le {dateKey}.", "earnedCoinsPastDateDescription": "Vous avez gagné {coinReward} pièces pour {dateKey}.", "progressPastDateDescription": "Vous avez complété {count}/{target} fois le {dateKey}." }, "useWishlist": { "redemptionLimitReachedTitle": "Limite de rachat atteinte", "redemptionLimitReachedDescription": "Vous avez atteint le nombre maximum de rachats pour \"{itemName}\".", "rewardRedeemedTitle": "🎉 Récompense échangée !", "rewardRedeemedDescription": "Vous avez échangé \"{itemName}\" pour {itemCoinCost} pièces.", "notEnoughCoinsTitle": "Pas assez de pièces", "notEnoughCoinsDescription": "Il vous manque {coinsNeeded} pièces pour échanger cette récompense." }, "Warning": { "areYouSure": "Êtes-vous sûr ?", "cancel": "Annuler" }, "useCoins": { "invalidAmountTitle": "Montant invalide", "invalidAmountDescription": "Veuillez entrer un nombre positif valide", "successTitle": "Succès", "transactionNotFoundDescription": "Transaction non trouvée", "maxAmountExceededDescription": "Le montant ne peut pas dépasser {max}.", "transactionNotFoundDescription": "Transaction non trouvée", "maxAmountExceededDescription": "Le montant ne peut pas dépasser {max}." } }