
msgid ""
msgstr ""
"Project-Id-Version:  TimeTracker\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-11-24 06:11+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
"Language-Team: fr <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.14.0\n"

#: app/__init__.py:721 app/__init__.py:754
msgid "Your session expired or the page was open too long. Please try again."
msgstr ""
"Votre session a expiré ou la page est restée ouverte trop longtemps. "
"Veuillez réessayer."

#: app/routes/admin.py:41
msgid "Administrator access required"
msgstr "Accès administrateur requis"

#: app/routes/admin.py:162 app/routes/admin.py:199 app/routes/auth.py:61
msgid "Username is required"
msgstr "Le nom d'utilisateur est requis"

#: app/routes/admin.py:167
msgid "User already exists"
msgstr "L'utilisateur existe déjà"

#: app/routes/admin.py:174
msgid "Could not create user due to a database error. Please check server logs."
msgstr ""
"Impossible de créer un utilisateur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:177
#, python-format
msgid "User \"%(username)s\" created successfully"
msgstr "L'utilisateur \"%(username)s\" a été créé avec succès"

#: app/routes/admin.py:205
msgid "Username already exists"
msgstr "Le nom d'utilisateur existe déjà"

#: app/routes/admin.py:210
msgid "Please select a client when enabling client portal access."
msgstr ""
"Veuillez sélectionner un client lors de l'activation de l'accès au portail "
"client."

#: app/routes/admin.py:221
msgid "Could not update user due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour l'utilisateur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:224
#, python-format
msgid "User \"%(username)s\" updated successfully"
msgstr "L'utilisateur \"%(username)s\" a été mis à jour avec succès"

#: app/routes/admin.py:240
msgid "Cannot delete the last administrator"
msgstr "Impossible de supprimer le dernier administrateur"

#: app/routes/admin.py:245
msgid "Cannot delete user with existing time entries"
msgstr "Impossible de supprimer un utilisateur avec des entrées de temps existantes"

#: app/routes/admin.py:251
msgid "Could not delete user due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer l'utilisateur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:254
#, python-format
msgid "User \"%(username)s\" deleted successfully"
msgstr "L'utilisateur \"%(username)s\" a été supprimé avec succès"

#: app/routes/admin.py:314
msgid "Telemetry has been enabled. Thank you for helping us improve!"
msgstr "La télémétrie a été activée. Merci de nous aider à nous améliorer !"

#: app/routes/admin.py:316
msgid "Telemetry has been disabled."
msgstr "La télémétrie a été désactivée."

#: app/routes/admin.py:350
#, python-format
msgid "Invalid timezone: %(timezone)s"
msgstr "Fuseau horaire invalide : %(timezone)s"

#: app/routes/admin.py:394
msgid "Could not update settings due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour les paramètres en raison d'une erreur de base de"
" données. Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:396
msgid "Settings updated successfully"
msgstr "Paramètres mis à jour avec succès"

#: app/routes/admin.py:441 app/routes/admin.py:539
msgid "Could not update PDF layout due to a database error."
msgstr ""
"Impossible de mettre à jour la mise en page du PDF en raison d'une erreur de"
" base de données."

#: app/routes/admin.py:444 app/routes/admin.py:541
msgid "PDF layout updated successfully"
msgstr "Mise en page PDF mise à jour avec succès"

#: app/routes/admin.py:502 app/routes/admin.py:605
msgid "Could not reset PDF layout due to a database error."
msgstr ""
"Impossible de réinitialiser la mise en page du PDF en raison d'une erreur de"
" base de données."

#: app/routes/admin.py:504 app/routes/admin.py:607
msgid "PDF layout reset to defaults"
msgstr "Mise en page PDF réinitialisée aux valeurs par défaut"

#: app/routes/admin.py:1139 app/routes/admin.py:1144
msgid "No logo file selected"
msgstr "Aucun fichier de logo sélectionné"

#: app/routes/admin.py:1160 app/routes/auth.py:234
msgid "Invalid image file."
msgstr "Fichier image invalide."

#: app/routes/admin.py:1187
msgid "Could not save logo due to a database error. Please check server logs."
msgstr ""
"Impossible d'enregistrer le logo en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:1190
msgid ""
"Company logo uploaded successfully! You can see it in the \"Current Company "
"Logo\" section above. It will appear on invoices and PDF documents."
msgstr ""
"Logo de l'entreprise téléchargé avec succès ! Vous pouvez le voir dans la "
"section « Logo actuel de l'entreprise » ci-dessus. Il apparaîtra sur les "
"factures et les documents PDF."

#: app/routes/admin.py:1192
msgid "Invalid file type. Allowed types: PNG, JPG, JPEG, GIF, SVG, WEBP"
msgstr "Type de fichier invalide. Types autorisés : PNG, JPG, JPEG, GIF, SVG, WEBP"

#: app/routes/admin.py:1215
msgid "Could not remove logo due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le logo en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/admin.py:1217
msgid ""
"Company logo removed successfully. Upload a new logo in the section below if"
" needed."
msgstr ""
"Le logo de l'entreprise a été supprimé avec succès. Téléchargez un nouveau "
"logo dans la section ci-dessous si nécessaire."

#: app/routes/admin.py:1219
msgid "No logo to remove"
msgstr "Aucun logo à supprimer"

#: app/routes/admin.py:1278
msgid "Backup failed: archive not created"
msgstr "Échec de la sauvegarde : archive non créée"

#: app/routes/admin.py:1283
#, python-format
msgid "Backup failed: %(error)s"
msgstr "Échec de la sauvegarde : %(erreur)s"

#: app/routes/admin.py:1295 app/routes/admin.py:1316
msgid "Invalid file type"
msgstr "Type de fichier invalide"

#: app/routes/admin.py:1302 app/routes/admin.py:1327
msgid "Backup file not found"
msgstr "Fichier de sauvegarde introuvable"

#: app/routes/admin.py:1325
#, python-format
msgid "Backup \"%(filename)s\" deleted successfully"
msgstr "Sauvegarde \"%(filename)s\" supprimée avec succès"

#: app/routes/admin.py:1329
#, python-format
msgid "Failed to delete backup: %(error)s"
msgstr "Échec de la suppression de la sauvegarde : %(erreur)s"

#: app/routes/admin.py:1347
msgid "Invalid file type. Please select a .zip backup archive."
msgstr ""
"Type de fichier invalide. Veuillez sélectionner une archive de sauvegarde "
".zip."

#: app/routes/admin.py:1351
msgid "Backup file not found."
msgstr "Fichier de sauvegarde introuvable."

#: app/routes/admin.py:1362
msgid "Invalid file type. Please upload a .zip backup archive."
msgstr ""
"Type de fichier invalide. Veuillez télécharger une archive de sauvegarde "
".zip."

#: app/routes/admin.py:1369
msgid "No backup file provided"
msgstr "Aucun fichier de sauvegarde fourni"

#: app/routes/admin.py:1403
msgid "Restore started. You can monitor progress on this page."
msgstr "La restauration a commencé. Vous pouvez suivre les progrès sur cette page."

#: app/routes/admin.py:1522
msgid "OIDC is not enabled. Set AUTH_METHOD to \"oidc\" or \"both\"."
msgstr "OIDC n’est pas activé. Définissez AUTH_METHOD sur « oidc » ou « les deux »."

#: app/routes/admin.py:1527
msgid "OIDC_ISSUER is not configured"
msgstr "OIDC_ISSUER n'est pas configuré"

#: app/routes/admin.py:1537
#, python-format
msgid "✓ Discovery document fetched successfully from %(url)s"
msgstr "✓ Document de découverte récupéré avec succès à partir de %(url)s"

#: app/routes/admin.py:1540
#, python-format
msgid "✗ Timeout fetching discovery document from %(url)s"
msgstr ""
"✗ Délai d'attente pour récupérer le document de découverte à partir de "
"%(url)s"

#: app/routes/admin.py:1544
#, python-format
msgid "✗ Failed to fetch discovery document: %(error)s"
msgstr "✗ Échec de la récupération du document de découverte : %(erreur)s"

#: app/routes/admin.py:1548
#, python-format
msgid "✗ Unexpected error: %(error)s"
msgstr "✗ Erreur inattendue : %(erreur)s"

#: app/routes/admin.py:1556
msgid "✓ OAuth client is registered in application"
msgstr "✓ Le client OAuth est enregistré dans l'application"

#: app/routes/admin.py:1559
msgid "✗ OAuth client is not registered"
msgstr "✗ Le client OAuth n'est pas enregistré"

#: app/routes/admin.py:1562
#, python-format
msgid "✗ Failed to create OAuth client: %(error)s"
msgstr "✗ Échec de la création du client OAuth : %(erreur)s"

#: app/routes/admin.py:1569
#, python-format
msgid "✓ %(endpoint)s: %(url)s"
msgstr "✓ %(point de terminaison)s : %(url)s"

#: app/routes/admin.py:1571
#, python-format
msgid "✗ Missing %(endpoint)s in discovery document"
msgstr "✗ %(endpoint)s manquants dans le document de découverte"

#: app/routes/admin.py:1578
#, python-format
msgid "✓ Scope \"%(scope)s\" is supported by provider"
msgstr "✓ La portée \"%(scope)s\" est prise en charge par le fournisseur"

#: app/routes/admin.py:1580
#, python-format
msgid ""
"⚠ Scope \"%(scope)s\" may not be supported by provider (supported: "
"%(supported)s)"
msgstr ""
"⚠ La portée \"%(scope)s\" peut ne pas être prise en charge par le "
"fournisseur (prise en charge : %(supported)s)"

#: app/routes/admin.py:1585
#, python-format
msgid "ℹ Provider supports claims: %(claims)s"
msgstr "ℹ Le fournisseur prend en charge les réclamations : %(claims)s"

#: app/routes/admin.py:1597
#, python-format
msgid "✓ Configured %(claim_type)s claim \"%(claim_name)s\" is supported"
msgstr ""
"✓ La revendication %(claim_type)s configurée \"%(claim_name)s\" est prise en"
" charge"

#: app/routes/admin.py:1599
#, python-format
msgid ""
"⚠ Configured %(claim_type)s claim \"%(claim_name)s\" not in supported claims"
" list (may still work)"
msgstr ""
"⚠ La revendication %(claim_type)s configurée \"%(claim_name)s\" ne figure "
"pas dans la liste des revendications prises en charge (peut toujours "
"fonctionner)"

#: app/routes/admin.py:1601
msgid "OIDC configuration test completed"
msgstr "Test de configuration OIDC terminé"

#: app/routes/admin.py:1931 app/routes/admin.py:1995 app/routes/quotes.py:1041
#: app/routes/quotes.py:1126 app/routes/time_entry_templates.py:51
#: app/routes/time_entry_templates.py:167
msgid "Template name is required"
msgstr "Le nom du modèle est obligatoire"

#: app/routes/admin.py:1937 app/routes/admin.py:2004
msgid "A template with this name already exists"
msgstr "Un modèle portant ce nom existe déjà"

#: app/routes/admin.py:1956
msgid "Could not create email template due to a database error."
msgstr ""
"Impossible de créer un modèle d'e-mail en raison d'une erreur de base de "
"données."

#: app/routes/admin.py:1959
msgid "Email template created successfully"
msgstr "Modèle d'e-mail créé avec succès"

#: app/routes/admin.py:2020
msgid "Could not update email template due to a database error."
msgstr ""
"Impossible de mettre à jour le modèle d'e-mail en raison d'une erreur de "
"base de données."

#: app/routes/admin.py:2023
msgid "Email template updated successfully"
msgstr "Modèle d'e-mail mis à jour avec succès"

#: app/routes/admin.py:2041
msgid "Cannot delete template that is in use by invoices or recurring invoices"
msgstr ""
"Impossible de supprimer le modèle utilisé par les factures ou les factures "
"récurrentes"

#: app/routes/admin.py:2046
msgid "Could not delete email template due to a database error."
msgstr ""
"Impossible de supprimer le modèle d'e-mail en raison d'une erreur de base de"
" données."

#: app/routes/admin.py:2048
#, python-format
msgid "Email template \"%(name)s\" deleted successfully"
msgstr "Le modèle d'e-mail « %(name)s » a été supprimé avec succès"

#: app/routes/audit_logs.py:24
msgid "Audit logs table does not exist. Please run: flask db upgrade"
msgstr ""
"Le tableau des journaux d’audit n’existe pas. Veuillez exécuter : mise à "
"niveau de la base de données flask"

#: app/routes/auth.py:83
msgid ""
"Could not create your account due to a database error. Please try again "
"later."
msgstr ""
"Impossible de créer votre compte en raison d'une erreur de base de données. "
"Veuillez réessayer plus tard."

#: app/routes/auth.py:94 app/routes/auth.py:508
msgid "Welcome! Your account has been created."
msgstr "Accueillir! Votre compte a été créé."

#: app/routes/auth.py:97
msgid "User not found. Please contact an administrator."
msgstr "Utilisateur introuvable. Veuillez contacter un administrateur."

#: app/routes/auth.py:105
msgid "Could not update your account role due to a database error."
msgstr ""
"Impossible de mettre à jour votre rôle de compte en raison d'une erreur de "
"base de données."

#: app/routes/auth.py:111 app/routes/auth.py:550
msgid "Account is disabled. Please contact an administrator."
msgstr "Le compte est désactivé. Veuillez contacter un administrateur."

#: app/routes/auth.py:135 app/routes/auth.py:581
#, python-format
msgid "Welcome back, %(username)s!"
msgstr "Bon retour, %(username)s !"

#: app/routes/auth.py:139
msgid "Unexpected error during login. Please try again or check server logs."
msgstr ""
"Erreur inattendue lors de la connexion. Veuillez réessayer ou vérifier les "
"journaux du serveur."

#: app/routes/auth.py:169
#, python-format
msgid "Goodbye, %(username)s!"
msgstr "Au revoir, %(nom d'utilisateur)s !"

#: app/routes/auth.py:224
msgid "Invalid avatar file type. Allowed: PNG, JPG, JPEG, GIF, WEBP"
msgstr "Type de fichier d'avatar invalide. Autorisés : PNG, JPG, JPEG, GIF, WEBP"

#: app/routes/auth.py:247
msgid "Failed to save avatar on server."
msgstr "Échec de l'enregistrement de l'avatar sur le serveur."

#: app/routes/auth.py:266
msgid "Profile updated successfully"
msgstr "Profil mis à jour avec succès"

#: app/routes/auth.py:269
msgid "Could not update your profile due to a database error."
msgstr ""
"Impossible de mettre à jour votre profil en raison d'une erreur de base de "
"données."

#: app/routes/auth.py:291
msgid "Avatar removed"
msgstr "Avatar supprimé"

#: app/routes/auth.py:294
msgid "Failed to remove avatar."
msgstr "Échec de la suppression de l'avatar."

#: app/routes/auth.py:342
msgid "Single Sign-On is not configured yet. Please contact an administrator."
msgstr ""
"L’authentification unique n’est pas encore configurée. Veuillez contacter un"
" administrateur."

#: app/routes/auth.py:361
msgid "Single Sign-On is not configured."
msgstr "L’authentification unique n’est pas configurée."

#: app/routes/auth.py:464
msgid ""
"Authentication failed: missing issuer or subject claim. Please check OIDC "
"configuration."
msgstr ""
"Échec de l'authentification : réclamation d'émetteur ou de sujet manquante. "
"Veuillez vérifier la configuration OIDC."

#: app/routes/auth.py:488
msgid "User account does not exist and self-registration is disabled."
msgstr "Le compte utilisateur n'existe pas et l'auto-inscription est désactivée."

#: app/routes/auth.py:511
msgid "Could not create your account due to a database error."
msgstr "Impossible de créer votre compte en raison d'une erreur de base de données."

#: app/routes/auth.py:586
msgid "Unexpected error during SSO login. Please try again or contact support."
msgstr ""
"Erreur inattendue lors de la connexion SSO. Veuillez réessayer ou contacter "
"l'assistance."

#: app/routes/budget_alerts.py:342
msgid "You do not have access to this project."
msgstr "Vous n'avez pas accès à ce projet."

#: app/routes/budget_alerts.py:349
msgid "This project does not have a budget set."
msgstr "Ce projet n'a pas de budget fixé."

#: app/routes/calendar.py:153
msgid "Event created successfully"
msgstr "Événement créé avec succès"

#: app/routes/calendar.py:233
msgid "Event updated successfully"
msgstr "Événement mis à jour avec succès"

#: app/routes/calendar.py:252
msgid "You do not have permission to delete this event."
msgstr "Vous n'êtes pas autorisé à supprimer cet événement."

#: app/routes/calendar.py:260
msgid "Failed to delete event"
msgstr "Échec de la suppression de l'événement"

#: app/routes/calendar.py:265 app/routes/calendar.py:270
msgid "Event deleted successfully"
msgstr "Événement supprimé avec succès"

#: app/routes/calendar.py:276
#, python-format
msgid "Error deleting event: %(error)s"
msgstr "Erreur lors de la suppression de l'événement : %(erreur)s"

#: app/routes/calendar.py:306
msgid "Event moved successfully"
msgstr "Événement déplacé avec succès"

#: app/routes/calendar.py:344
msgid "Event resized successfully"
msgstr "L'événement a été redimensionné avec succès"

#: app/routes/calendar.py:362
msgid "You do not have permission to view this event."
msgstr "Vous n'êtes pas autorisé à visualiser cet événement."

#: app/routes/calendar.py:413
msgid "You do not have permission to edit this event."
msgstr "Vous n'êtes pas autorisé à modifier cet événement."

#: app/routes/client_notes.py:23 app/routes/client_notes.py:79
msgid "Note content cannot be empty"
msgstr "Le contenu de la note ne peut pas être vide"

#: app/routes/client_notes.py:45
msgid "Note added successfully"
msgstr "Note ajoutée avec succès"

#: app/routes/client_notes.py:47
msgid "Error adding note"
msgstr "Erreur lors de l'ajout d'une note"

#: app/routes/client_notes.py:50 app/routes/client_notes.py:52
#, python-format
msgid "Error adding note: %(error)s"
msgstr "Erreur lors de l'ajout de la note : %(erreur)s"

#: app/routes/client_notes.py:65 app/routes/client_notes.py:110
msgid "Note does not belong to this client"
msgstr "La note n'appartient pas à ce client"

#: app/routes/client_notes.py:70
msgid "You do not have permission to edit this note"
msgstr "Vous n'êtes pas autorisé à modifier cette note"

#: app/routes/client_notes.py:85 app/templates/clients/view.html:327
#: app/templates/clients/view.html:332
msgid "Error updating note"
msgstr "Erreur lors de la mise à jour de la note"

#: app/routes/client_notes.py:92
msgid "Note updated successfully"
msgstr "Remarque mise à jour avec succès"

#: app/routes/client_notes.py:96 app/routes/client_notes.py:98
#, python-format
msgid "Error updating note: %(error)s"
msgstr "Erreur lors de la mise à jour de la note : %(erreur)s"

#: app/routes/client_notes.py:115
msgid "You do not have permission to delete this note"
msgstr "Vous n'êtes pas autorisé à supprimer cette note"

#: app/routes/client_notes.py:124
msgid "Error deleting note"
msgstr "Erreur lors de la suppression de la note"

#: app/routes/client_notes.py:131
msgid "Note deleted successfully"
msgstr "Note supprimée avec succès"

#: app/routes/client_notes.py:134
#, python-format
msgid "Error deleting note: %(error)s"
msgstr "Erreur lors de la suppression de la note : %(erreur)s"

#: app/routes/client_portal.py:55 app/routes/client_portal.py:82
#: app/routes/client_portal.py:91 app/routes/client_portal.py:95
#: app/routes/client_portal.py:121
msgid "Please log in to access the client portal."
msgstr "Veuillez vous connecter pour accéder au portail client."

#: app/routes/client_portal.py:59
msgid "Client portal access is not enabled for your account."
msgstr "L'accès au portail client n'est pas activé pour votre compte."

#: app/routes/client_portal.py:64
msgid "Your client account is inactive."
msgstr "Votre compte client est inactif."

#: app/routes/client_portal.py:161
msgid "Username and password are required."
msgstr "Le nom d'utilisateur et le mot de passe sont requis."

#: app/routes/client_portal.py:168
msgid "Invalid username or password."
msgstr "Nom d'utilisateur ou mot de passe invalide."

#: app/routes/client_portal.py:175
#, python-format
msgid "Welcome, %(client_name)s!"
msgstr "Bienvenue, %(client_name)s !"

#: app/routes/client_portal.py:189
msgid "You have been logged out."
msgstr "Vous avez été déconnecté."

#: app/routes/client_portal.py:199
msgid "Invalid or missing password setup token."
msgstr "Jeton de configuration de mot de passe invalide ou manquant."

#: app/routes/client_portal.py:206
msgid "Invalid or expired password setup token. Please request a new one."
msgstr ""
"Jeton de configuration de mot de passe invalide ou expiré. Veuillez en "
"demander un nouveau."

#: app/routes/client_portal.py:215
msgid "Password is required."
msgstr "Un mot de passe est requis."

#: app/routes/client_portal.py:219
msgid "Password must be at least 8 characters long."
msgstr "Le mot de passe doit comporter au moins 8 caractères."

#: app/routes/client_portal.py:223
msgid "Passwords do not match."
msgstr "Les mots de passe ne correspondent pas."

#: app/routes/client_portal.py:231
msgid "Could not set password due to a database error."
msgstr ""
"Impossible de définir le mot de passe en raison d'une erreur de base de "
"données."

#: app/routes/client_portal.py:234
msgid "Password set successfully! You can now log in to the portal."
msgstr ""
"Mot de passe défini avec succès ! Vous pouvez maintenant vous connecter au "
"portail."

#: app/routes/client_portal.py:251 app/routes/client_portal.py:321
#: app/routes/client_portal.py:356 app/routes/client_portal.py:454
msgid "Unable to load client portal data."
msgstr "Impossible de charger les données du portail client."

#: app/routes/client_portal.py:392
msgid "Invoice not found."
msgstr "Facture introuvable."

#: app/routes/client_portal.py:434
msgid "Quote not found."
msgstr "Citation introuvable."

#: app/routes/clients.py:76 app/routes/clients.py:78
msgid "You do not have permission to create clients"
msgstr "Vous n'êtes pas autorisé à créer des clients"

#: app/routes/clients.py:105 app/routes/clients.py:264
msgid "Client name is required"
msgstr "Le nom du client est requis"

#: app/routes/clients.py:116 app/routes/clients.py:270
msgid "A client with this name already exists"
msgstr "Un client portant ce nom existe déjà"

#: app/routes/clients.py:129 app/routes/clients.py:277 app/routes/offers.py:92
#: app/routes/offers.py:228 app/routes/projects.py:242 app/routes/projects.py:652
#: app/routes/quotes.py:158
msgid "Invalid hourly rate format"
msgstr "Format de taux horaire invalide"

#: app/routes/clients.py:141 app/routes/clients.py:285
msgid "Prepaid hours must be a positive number."
msgstr "Les heures prépayées doivent être un nombre positif."

#: app/routes/clients.py:153 app/routes/clients.py:294
msgid "Prepaid reset day must be between 1 and 28."
msgstr "Le jour de réinitialisation prépayé doit être compris entre 1 et 28."

#: app/routes/clients.py:176
msgid "Could not create client due to a database error. Please check server logs."
msgstr ""
"Impossible de créer le client en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/clients.py:248
msgid "You do not have permission to edit clients"
msgstr "Vous n'êtes pas autorisé à modifier les clients"

#: app/routes/clients.py:305
msgid "Portal username is required when enabling portal access."
msgstr ""
"Le nom d’utilisateur du portail est requis lors de l’activation de l’accès "
"au portail."

#: app/routes/clients.py:311
msgid "This portal username is already in use by another client."
msgstr "Ce nom d'utilisateur du portail est déjà utilisé par un autre client."

#: app/routes/clients.py:339
msgid "Could not update client due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le client en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/clients.py:360
msgid "You do not have permission to send portal emails"
msgstr "Vous n'êtes pas autorisé à envoyer des e-mails sur le portail"

#: app/routes/clients.py:365
msgid "Client portal is not enabled for this client."
msgstr "Le portail client n'est pas activé pour ce client."

#: app/routes/clients.py:369
msgid "Portal username is not set for this client."
msgstr "Le nom d'utilisateur du portail n'est pas défini pour ce client."

#: app/routes/clients.py:373
msgid "Client email address is not set. Cannot send password setup email."
msgstr ""
"L'adresse e-mail du client n'est pas définie. Impossible d'envoyer un e-mail"
" de configuration du mot de passe."

#: app/routes/clients.py:380
msgid "Could not generate password setup token due to a database error."
msgstr ""
"Impossible de générer le jeton de configuration du mot de passe en raison "
"d'une erreur de base de données."

#: app/routes/clients.py:394
#, python-format
msgid "Password setup email sent successfully to %(email)s"
msgstr "E-mail de configuration du mot de passe envoyé avec succès à %(email)s"

#: app/routes/clients.py:404
msgid ""
"Email server is not configured. Please configure email settings in Admin → "
"Email Configuration or set MAIL_SERVER environment variable."
msgstr ""
"Le serveur de messagerie n'est pas configuré. Veuillez configurer les "
"paramètres de messagerie dans Admin → Configuration de la messagerie ou "
"définir la variable d'environnement MAIL_SERVER."

#: app/routes/clients.py:406
msgid ""
"Failed to send password setup email. Please check email configuration and "
"server logs for details."
msgstr ""
"Échec de l'envoi de l'e-mail de configuration du mot de passe. Veuillez "
"vérifier la configuration de la messagerie et les journaux du serveur pour "
"plus de détails."

#: app/routes/clients.py:409
#, python-format
msgid "An error occurred while sending the email: %(error)s"
msgstr "Une erreur s'est produite lors de l'envoi de l'e-mail : %(erreur)s"

#: app/routes/clients.py:421
msgid "You do not have permission to archive clients"
msgstr "Vous n'êtes pas autorisé à archiver les clients"

#: app/routes/clients.py:425
msgid "Client is already inactive"
msgstr "Le client est déjà inactif"

#: app/routes/clients.py:442
msgid "You do not have permission to activate clients"
msgstr "Vous n'êtes pas autorisé à activer les clients"

#: app/routes/clients.py:446
msgid "Client is already active"
msgstr "Le client est déjà actif"

#: app/routes/clients.py:461 app/routes/clients.py:489
msgid "You do not have permission to delete clients"
msgstr "Vous n'êtes pas autorisé à supprimer des clients"

#: app/routes/clients.py:466
msgid "Cannot delete client with existing projects"
msgstr "Impossible de supprimer le client avec des projets existants"

#: app/routes/clients.py:473
msgid "Could not delete client due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le client en raison d'une erreur de base de données."
" Veuillez vérifier les journaux du serveur."

#: app/routes/clients.py:495
msgid "No clients selected for deletion"
msgstr "Aucun client sélectionné pour la suppression"

#: app/routes/clients.py:534
msgid "Could not delete clients due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les clients en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/clients.py:545
msgid "No clients were deleted"
msgstr "Aucun client n'a été supprimé"

#: app/routes/clients.py:555
msgid "You do not have permission to change client status"
msgstr "Vous n'êtes pas autorisé à modifier le statut du client"

#: app/routes/clients.py:562
msgid "No clients selected"
msgstr "Aucun client sélectionné"

#: app/routes/clients.py:566 app/routes/projects.py:968 app/routes/tasks.py:399
msgid "Invalid status"
msgstr "Statut invalide"

#: app/routes/clients.py:595
msgid ""
"Could not update client status due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de mettre à jour le statut du client en raison d'une erreur de "
"base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/clients.py:607
msgid "No clients were updated"
msgstr "Aucun client n'a été mis à jour"

#: app/routes/comments.py:24 app/routes/comments.py:114
msgid "Comment content cannot be empty"
msgstr "Le contenu du commentaire ne peut pas être vide"

#: app/routes/comments.py:28
msgid "Comment must be associated with a project, task, or quote"
msgstr "Le commentaire doit être associé à un projet, une tâche ou un devis"

#: app/routes/comments.py:34
msgid "Comment cannot be associated with multiple targets"
msgstr "Le commentaire ne peut pas être associé à plusieurs cibles"

#: app/routes/comments.py:56
msgid "Invalid parent comment"
msgstr "Commentaire parent invalide"

#: app/routes/comments.py:81
msgid "Comment added successfully"
msgstr "Commentaire ajouté avec succès"

#: app/routes/comments.py:83
msgid "Error adding comment"
msgstr "Erreur lors de l'ajout du commentaire"

#: app/routes/comments.py:86
#, python-format
msgid "Error adding comment: %(error)s"
msgstr "Erreur lors de l'ajout du commentaire : %(erreur)s"

#: app/routes/comments.py:106
msgid "You do not have permission to edit this comment"
msgstr "Vous n'êtes pas autorisé à modifier ce commentaire"

#: app/routes/comments.py:123
msgid "Comment updated successfully"
msgstr "Commentaire mis à jour avec succès"

#: app/routes/comments.py:136
#, python-format
msgid "Error updating comment: %(error)s"
msgstr "Erreur lors de la mise à jour du commentaire : %(error)s"

#: app/routes/comments.py:148
msgid "You do not have permission to delete this comment"
msgstr "Vous n'êtes pas autorisé à supprimer ce commentaire"

#: app/routes/comments.py:163
msgid "Comment deleted successfully"
msgstr "Commentaire supprimé avec succès"

#: app/routes/comments.py:176
#, python-format
msgid "Error deleting comment: %(error)s"
msgstr "Erreur lors de la suppression du commentaire : %(erreur)s"

#: app/routes/contacts.py:57
msgid "Contact created successfully"
msgstr "Contact créé avec succès"

#: app/routes/contacts.py:61
#, python-format
msgid "Error creating contact: %(error)s"
msgstr "Erreur lors de la création du contact : %(erreur)s"

#: app/routes/contacts.py:104
msgid "Contact updated successfully"
msgstr "Contact mis à jour avec succès"

#: app/routes/contacts.py:108
#, python-format
msgid "Error updating contact: %(error)s"
msgstr "Erreur lors de la mise à jour du contact : %(erreur)s"

#: app/routes/contacts.py:123
msgid "Contact deleted successfully"
msgstr "Contact supprimé avec succès"

#: app/routes/contacts.py:126
#, python-format
msgid "Error deleting contact: %(error)s"
msgstr "Erreur lors de la suppression du contact : %(erreur)s"

#: app/routes/contacts.py:139
msgid "Contact set as primary"
msgstr "Contact défini comme principal"

#: app/routes/contacts.py:142
#, python-format
msgid "Error setting primary contact: %(error)s"
msgstr "Erreur lors de la définition du contact principal : %(erreur)s"

#: app/routes/contacts.py:178
msgid "Communication recorded successfully"
msgstr "Communication enregistrée avec succès"

#: app/routes/contacts.py:182
#, python-format
msgid "Error recording communication: %(error)s"
msgstr "Erreur d'enregistrement de la communication : %(erreur)s"

#: app/routes/deals.py:104 app/routes/deals.py:178
msgid "Invalid deal value"
msgstr "Valeur de l'offre invalide"

#: app/routes/deals.py:137
msgid "Deal created successfully"
msgstr "Offre créée avec succès"

#: app/routes/deals.py:141
#, python-format
msgid "Error creating deal: %(error)s"
msgstr "Erreur lors de la création de l'offre : %(erreur)s"

#: app/routes/deals.py:206
msgid "Deal updated successfully"
msgstr "Offre mise à jour avec succès"

#: app/routes/deals.py:210
#, python-format
msgid "Error updating deal: %(error)s"
msgstr "Erreur lors de la mise à jour de l'offre : %(erreur)s"

#: app/routes/deals.py:242
msgid "Deal closed as won"
msgstr "Transaction conclue comme gagnée"

#: app/routes/deals.py:245 app/routes/deals.py:272
#, python-format
msgid "Error closing deal: %(error)s"
msgstr "Erreur lors de la clôture de la transaction : %(erreur)s"

#: app/routes/deals.py:269
msgid "Deal closed as lost"
msgstr "Transaction conclue comme perdue"

#: app/routes/deals.py:304 app/routes/leads.py:309
msgid "Activity recorded successfully"
msgstr "Activité enregistrée avec succès"

#: app/routes/deals.py:308 app/routes/leads.py:313
#, python-format
msgid "Error recording activity: %(error)s"
msgstr "Erreur d'activité d'enregistrement : %(erreur)s"

#: app/routes/expense_categories.py:50 app/routes/expense_categories.py:138
msgid "Category name is required"
msgstr "Le nom de la catégorie est obligatoire"

#: app/routes/expense_categories.py:85
msgid "Expense category created successfully"
msgstr "Catégorie de dépenses créée avec succès"

#: app/routes/expense_categories.py:90 app/routes/expense_categories.py:96
msgid "Error creating expense category"
msgstr "Erreur lors de la création de la catégorie de dépenses"

#: app/routes/expense_categories.py:169
msgid "Expense category updated successfully"
msgstr "Catégorie de dépenses mise à jour avec succès"

#: app/routes/expense_categories.py:174 app/routes/expense_categories.py:180
msgid "Error updating expense category"
msgstr "Erreur lors de la mise à jour de la catégorie de dépenses"

#: app/routes/expense_categories.py:197
msgid "Expense category deactivated successfully"
msgstr "Catégorie de dépenses désactivée avec succès"

#: app/routes/expense_categories.py:201 app/routes/expense_categories.py:206
msgid "Error deactivating expense category"
msgstr "Erreur lors de la désactivation de la catégorie de dépenses"

#: app/routes/expenses.py:231
msgid "Title is required"
msgstr "Le titre est requis"

#: app/routes/expenses.py:235
msgid "Category is required"
msgstr "La catégorie est obligatoire"

#: app/routes/expenses.py:239
msgid "Amount is required"
msgstr "Le montant est requis"

#: app/routes/expenses.py:243
msgid "Expense date is required"
msgstr "La date de dépense est requise"

#: app/routes/expenses.py:250 app/routes/expenses.py:413
#: app/routes/expenses.py:1205 app/routes/mileage.py:179
#: app/routes/per_diem.py:136 app/routes/projects.py:1226
#: app/routes/projects.py:1297 app/routes/reports.py:181 app/routes/reports.py:326
#: app/routes/reports.py:460 app/routes/reports.py:656 app/routes/reports.py:740
#: app/routes/reports.py:800 app/routes/timer.py:743 app/routes/weekly_goals.py:87
msgid "Invalid date format"
msgstr "Format de date invalide"

#: app/routes/expenses.py:258 app/routes/expenses.py:421
#: app/routes/expenses.py:1213 app/routes/projects.py:1219
#: app/routes/projects.py:1290
msgid "Invalid amount format"
msgstr "Format de montant invalide"

#: app/routes/expenses.py:325
msgid "Expense created successfully"
msgstr "Dépense créée avec succès"

#: app/routes/expenses.py:336 app/routes/expenses.py:341
#: app/routes/expenses.py:1258 app/routes/expenses.py:1263
msgid "Error creating expense"
msgstr "Erreur lors de la création de la dépense"

#: app/routes/expenses.py:353
msgid "You do not have permission to view this expense"
msgstr "Vous n'êtes pas autorisé à consulter cette dépense"

#: app/routes/expenses.py:371
msgid "You do not have permission to edit this expense"
msgstr "Vous n'êtes pas autorisé à modifier cette dépense"

#: app/routes/expenses.py:376
msgid "Cannot edit approved or reimbursed expenses"
msgstr "Impossible de modifier les dépenses approuvées ou remboursées"

#: app/routes/expenses.py:406 app/routes/expenses.py:1198
#: app/routes/mileage.py:172 app/routes/per_diem.py:128 app/routes/per_diem.py:550
#: app/routes/per_diem.py:601
msgid "Please fill in all required fields"
msgstr "Veuillez remplir tous les champs obligatoires"

#: app/routes/expenses.py:482
msgid "Expense updated successfully"
msgstr "Dépense mise à jour avec succès"

#: app/routes/expenses.py:487 app/routes/expenses.py:492
msgid "Error updating expense"
msgstr "Erreur lors de la mise à jour des dépenses"

#: app/routes/expenses.py:504
msgid "You do not have permission to delete this expense"
msgstr "Vous n'êtes pas autorisé à supprimer cette dépense"

#: app/routes/expenses.py:509
msgid "Cannot delete approved or invoiced expenses"
msgstr "Impossible de supprimer les dépenses approuvées ou facturées"

#: app/routes/expenses.py:525
msgid "Expense deleted successfully"
msgstr "Dépense supprimée avec succès"

#: app/routes/expenses.py:529 app/routes/expenses.py:533
msgid "Error deleting expense"
msgstr "Erreur lors de la suppression de la dépense"

#: app/routes/expenses.py:544
msgid "No expenses selected for deletion"
msgstr "Aucune dépense sélectionnée pour suppression"

#: app/routes/expenses.py:591
msgid "Could not delete expenses due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les dépenses en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/expenses.py:596
#, python-format
msgid "Successfully deleted %(count)d expense(s)"
msgstr "%(count)d dépense(s) supprimée(s) avec succès"

#: app/routes/expenses.py:599
#, python-format
msgid "Skipped %(count)d expense(s): %(errors)s"
msgstr "%(count)d dépense(s) ignorée(s) : %(erreurs)s"

#: app/routes/expenses.py:611
msgid "No expenses selected"
msgstr "Aucune dépense sélectionnée"

#: app/routes/expenses.py:617 app/routes/invoices.py:573 app/routes/mileage.py:407
#: app/routes/payments.py:523 app/routes/per_diem.py:413 app/routes/tasks.py:637
msgid "Invalid status value"
msgstr "Valeur de statut invalide"

#: app/routes/expenses.py:644
msgid "Could not update expenses due to a database error"
msgstr ""
"Impossible de mettre à jour les dépenses en raison d'une erreur de base de "
"données"

#: app/routes/expenses.py:647
#, python-format
msgid "Successfully updated %(count)d expense(s) to %(status)s"
msgstr "%(count)d dépense(s) a été mise à jour avec succès vers %(status)s"

#: app/routes/expenses.py:650
#, python-format
msgid "Skipped %(count)d expense(s) (no permission)"
msgstr "%(count)d dépense(s) ignorée(s) (aucune autorisation)"

#: app/routes/expenses.py:660
msgid "Only administrators can approve expenses"
msgstr "Seuls les administrateurs peuvent approuver les dépenses"

#: app/routes/expenses.py:666
msgid "Only pending expenses can be approved"
msgstr "Seules les dépenses en attente peuvent être approuvées"

#: app/routes/expenses.py:674
msgid "Expense approved successfully"
msgstr "Dépense approuvée avec succès"

#: app/routes/expenses.py:678 app/routes/expenses.py:682
msgid "Error approving expense"
msgstr "Erreur lors de l'approbation de la dépense"

#: app/routes/expenses.py:692
msgid "Only administrators can reject expenses"
msgstr "Seuls les administrateurs peuvent refuser des dépenses"

#: app/routes/expenses.py:698
msgid "Only pending expenses can be rejected"
msgstr "Seules les dépenses en attente peuvent être rejetées"

#: app/routes/expenses.py:704 app/routes/mileage.py:494 app/routes/per_diem.py:500
#: app/routes/quotes.py:992
msgid "Rejection reason is required"
msgstr "Le motif du refus est requis"

#: app/routes/expenses.py:710
msgid "Expense rejected"
msgstr "Dépense rejetée"

#: app/routes/expenses.py:714 app/routes/expenses.py:718
msgid "Error rejecting expense"
msgstr "Erreur lors du rejet d'une dépense"

#: app/routes/expenses.py:728
msgid "Only administrators can mark expenses as reimbursed"
msgstr "Seuls les administrateurs peuvent marquer les dépenses comme remboursées"

#: app/routes/expenses.py:734
msgid "Only approved expenses can be marked as reimbursed"
msgstr "Seules les dépenses approuvées peuvent être marquées comme remboursées"

#: app/routes/expenses.py:738
msgid "This expense is not marked as reimbursable"
msgstr "Cette dépense n'est pas marquée comme remboursable"

#: app/routes/expenses.py:745
msgid "Expense marked as reimbursed"
msgstr "Dépense marquée comme remboursée"

#: app/routes/expenses.py:749 app/routes/expenses.py:753
msgid "Error marking expense as reimbursed"
msgstr "Erreur marquant la dépense comme remboursée"

#: app/routes/expenses.py:1084
msgid "OCR is not available. Please contact your administrator."
msgstr "L'OCR n'est pas disponible. Veuillez contacter votre administrateur."

#: app/routes/expenses.py:1088 app/routes/quotes.py:728
msgid "No file provided"
msgstr "Aucun fichier fourni"

#: app/routes/expenses.py:1094 app/routes/quotes.py:733
msgid "No file selected"
msgstr "Aucun fichier sélectionné"

#: app/routes/expenses.py:1098
msgid "Invalid file type. Allowed types: png, jpg, jpeg, gif, pdf"
msgstr "Type de fichier invalide. Types autorisés : png, jpg, jpeg, gif, pdf"

#: app/routes/expenses.py:1146
msgid ""
"Receipt scanned successfully! You can now create an expense with the "
"extracted data."
msgstr ""
"Reçu scanné avec succès ! Vous pouvez désormais créer une dépense avec les "
"données extraites."

#: app/routes/expenses.py:1151
msgid "Error scanning receipt. Please try again or enter the expense manually."
msgstr ""
"Erreur lors de la numérisation du reçu. Veuillez réessayer ou saisir la "
"dépense manuellement."

#: app/routes/expenses.py:1164
msgid "No scanned receipt data found. Please scan a receipt first."
msgstr "Aucune donnée de reçu numérisée trouvée. Veuillez d'abord scanner un reçu."

#: app/routes/expenses.py:1249
msgid "Expense created successfully from scanned receipt"
msgstr "Dépense créée avec succès à partir du reçu numérisé"

#: app/routes/inventory.py:155 app/routes/inventory.py:262
msgid "SKU already exists. Please use a different SKU."
msgstr "Le SKU existe déjà. Veuillez utiliser un autre SKU."

#: app/routes/inventory.py:210
msgid "Stock item created successfully."
msgstr "Article en stock créé avec succès."

#: app/routes/inventory.py:215
#, python-format
msgid "Error creating stock item: %(error)s"
msgstr "Erreur lors de la création de l'article en stock : %(erreur)s"

#: app/routes/inventory.py:342
msgid "Stock item updated successfully."
msgstr "Article en stock mis à jour avec succès."

#: app/routes/inventory.py:347
#, python-format
msgid "Error updating stock item: %(error)s"
msgstr "Erreur lors de la mise à jour de l'article en stock : %(erreur)s"

#: app/routes/inventory.py:365
msgid "Cannot delete stock item with existing stock or movement history."
msgstr ""
"Impossible de supprimer un article en stock avec un historique de stock ou "
"de mouvement existant."

#: app/routes/inventory.py:373
msgid "Stock item deleted successfully."
msgstr "Article en stock supprimé avec succès."

#: app/routes/inventory.py:377
#, python-format
msgid "Error deleting stock item: %(error)s"
msgstr "Erreur lors de la suppression de l'article en stock : %(erreur)s"

#: app/routes/inventory.py:414 app/routes/inventory.py:478
msgid "Warehouse code already exists. Please use a different code."
msgstr "Le code d'entrepôt existe déjà. Veuillez utiliser un code différent."

#: app/routes/inventory.py:433
msgid "Warehouse created successfully."
msgstr "Entrepôt créé avec succès."

#: app/routes/inventory.py:438
#, python-format
msgid "Error creating warehouse: %(error)s"
msgstr "Erreur lors de la création de l'entrepôt : %(erreur)s"

#: app/routes/inventory.py:494
msgid "Warehouse updated successfully."
msgstr "Entrepôt mis à jour avec succès."

#: app/routes/inventory.py:499
#, python-format
msgid "Error updating warehouse: %(error)s"
msgstr "Erreur lors de la mise à jour de l'entrepôt : %(erreur)s"

#: app/routes/inventory.py:515
msgid ""
"Cannot delete warehouse with existing stock. Please transfer or remove all "
"stock first."
msgstr ""
"Impossible de supprimer l'entrepôt avec le stock existant. Veuillez d'abord "
"transférer ou supprimer tout le stock."

#: app/routes/inventory.py:523
msgid "Warehouse deleted successfully."
msgstr "Entrepôt supprimé avec succès."

#: app/routes/inventory.py:527
#, python-format
msgid "Error deleting warehouse: %(error)s"
msgstr "Erreur lors de la suppression de l'entrepôt : %(erreur)s"

#: app/routes/inventory.py:689
msgid "Stock movement recorded successfully."
msgstr "Mouvement de stock enregistré avec succès."

#: app/routes/inventory.py:694
#, python-format
msgid "Error recording stock movement: %(error)s"
msgstr "Erreur lors de l'enregistrement du mouvement de stock : %(erreur)s"

#: app/routes/inventory.py:766
msgid "Source and destination warehouses must be different."
msgstr "Les entrepôts source et destination doivent être différents."

#: app/routes/inventory.py:780
msgid "Insufficient stock available in source warehouse."
msgstr "Stock disponible insuffisant dans l'entrepôt source."

#: app/routes/inventory.py:833
msgid "Stock transfer completed successfully."
msgstr "Transfert de stock terminé avec succès."

#: app/routes/inventory.py:838
#, python-format
msgid "Error creating transfer: %(error)s"
msgstr "Erreur lors de la création du transfert : %(erreur)s"

#: app/routes/inventory.py:934
msgid "Stock adjustment recorded successfully."
msgstr "Ajustement des stocks enregistré avec succès."

#: app/routes/inventory.py:939
#, python-format
msgid "Error recording adjustment: %(error)s"
msgstr "Erreur d'ajustement de l'enregistrement : %(erreur)s"

#: app/routes/inventory.py:1063
msgid "Reservation fulfilled successfully."
msgstr "Réservation remplie avec succès."

#: app/routes/inventory.py:1066
#, python-format
msgid "Error fulfilling reservation: %(error)s"
msgstr "Erreur lors de l'exécution de la réservation : %(erreur)s"

#: app/routes/inventory.py:1083
msgid "Reservation cancelled successfully."
msgstr "Réservation annulée avec succès."

#: app/routes/inventory.py:1086
#, python-format
msgid "Error cancelling reservation: %(error)s"
msgstr "Erreur lors de l'annulation de la réservation : %(erreur)s"

#: app/routes/inventory.py:1152
msgid "Supplier created successfully."
msgstr "Fournisseur créé avec succès."

#: app/routes/inventory.py:1157
#, python-format
msgid "Error creating supplier: %(error)s"
msgstr "Erreur lors de la création du fournisseur : %(erreur)s"

#: app/routes/inventory.py:1201
msgid "Supplier code already exists. Please use a different code."
msgstr "Le code fournisseur existe déjà. Veuillez utiliser un code différent."

#: app/routes/inventory.py:1222
msgid "Supplier updated successfully."
msgstr "Fournisseur mis à jour avec succès."

#: app/routes/inventory.py:1227
#, python-format
msgid "Error updating supplier: %(error)s"
msgstr "Erreur lors de la mise à jour du fournisseur : %(erreur)s"

#: app/routes/inventory.py:1243
msgid "Cannot delete supplier with associated stock items. Remove items first."
msgstr ""
"Impossible de supprimer le fournisseur avec les articles en stock associés. "
"Supprimez d'abord les éléments."

#: app/routes/inventory.py:1252
msgid "Supplier deleted successfully."
msgstr "Fournisseur supprimé avec succès."

#: app/routes/inventory.py:1255
#, python-format
msgid "Error deleting supplier: %(error)s"
msgstr "Erreur lors de la suppression du fournisseur : %(erreur)s"

#: app/routes/inventory.py:1351
msgid "Purchase order created successfully."
msgstr "Bon de commande créé avec succès."

#: app/routes/inventory.py:1356
#, python-format
msgid "Error creating purchase order: %(error)s"
msgstr "Erreur lors de la création du bon de commande : %(erreur)s"

#: app/routes/inventory.py:1389
msgid "Cannot edit a purchase order that has been received."
msgstr "Impossible de modifier un bon de commande qui a été reçu."

#: app/routes/inventory.py:1437
msgid "Purchase order updated successfully."
msgstr "Bon de commande mis à jour avec succès."

#: app/routes/inventory.py:1442
#, python-format
msgid "Error updating purchase order: %(error)s"
msgstr "Erreur lors de la mise à jour du bon de commande : %(erreur)s"

#: app/routes/inventory.py:1468
msgid "Purchase order marked as sent."
msgstr "Bon de commande marqué comme envoyé."

#: app/routes/inventory.py:1471
#, python-format
msgid "Error sending purchase order: %(error)s"
msgstr "Erreur lors de l'envoi du bon de commande : %(erreur)s"

#: app/routes/inventory.py:1489
msgid "Purchase order cancelled successfully."
msgstr "Bon de commande annulé avec succès."

#: app/routes/inventory.py:1492
#, python-format
msgid "Error cancelling purchase order: %(error)s"
msgstr "Erreur lors de l'annulation du bon de commande : %(erreur)s"

#: app/routes/inventory.py:1507
msgid "Cannot delete a purchase order that has been received. Cancel it instead."
msgstr "Impossible de supprimer un bon de commande reçu. Annulez-le plutôt."

#: app/routes/inventory.py:1515
msgid "Purchase order deleted successfully."
msgstr "Bon de commande supprimé avec succès."

#: app/routes/inventory.py:1519
#, python-format
msgid "Error deleting purchase order: %(error)s"
msgstr "Erreur lors de la suppression du bon de commande : %(erreur)s"

#: app/routes/inventory.py:1552
msgid "Purchase order marked as received and stock updated."
msgstr "Bon de commande marqué comme reçu et stock mis à jour."

#: app/routes/inventory.py:1555
#, python-format
msgid "Error receiving purchase order: %(error)s"
msgstr "Erreur lors de la réception du bon de commande : %(erreur)s"

#: app/routes/invoices.py:117
msgid "Project, client name, and due date are required"
msgstr "Le projet, le nom du client et la date d'échéance sont requis"

#: app/routes/invoices.py:123 app/routes/tasks.py:151 app/routes/tasks.py:277
msgid "Invalid due date format"
msgstr "Format de date d'échéance invalide"

#: app/routes/invoices.py:129 app/routes/offers.py:108 app/routes/offers.py:244
#: app/routes/quotes.py:174 app/routes/quotes.py:324
#: app/routes/recurring_invoices.py:85
msgid "Invalid tax rate format"
msgstr "Format de taux de taxe invalide"

#: app/routes/invoices.py:135
msgid "Selected project not found"
msgstr "Projet sélectionné introuvable"

#: app/routes/invoices.py:191
msgid "Could not create invoice due to a database error. Please check server logs."
msgstr ""
"Impossible de créer la facture en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:226
msgid "You do not have permission to view this invoice"
msgstr "Vous n'êtes pas autorisé à consulter cette facture"

#: app/routes/invoices.py:254 app/routes/invoices.py:626
msgid "You do not have permission to edit this invoice"
msgstr "Vous n'êtes pas autorisé à modifier cette facture"

#: app/routes/invoices.py:382 app/routes/quotes.py:498 app/routes/quotes.py:601
#, python-format
msgid "Warning: Could not reserve stock for item %(item)s: %(error)s"
msgstr ""
"Avertissement : Impossible de réserver le stock pour l'article %(item)s : "
"%(error)s"

#: app/routes/invoices.py:387
msgid "Could not update invoice due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour la facture en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:390
msgid "Invoice updated successfully"
msgstr "Facture mise à jour avec succès"

#: app/routes/invoices.py:480
#, python-format
msgid "Warning: Could not reduce stock for item %(item)s: %(error)s"
msgstr ""
"Avertissement : Impossible de réduire le stock pour l'article %(item)s : "
"%(error)s"

#: app/routes/invoices.py:496
msgid "You do not have permission to delete this invoice"
msgstr "Vous n'êtes pas autorisé à supprimer cette facture"

#: app/routes/invoices.py:502
msgid "Could not delete invoice due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer la facture en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:515
msgid "No invoices selected for deletion"
msgstr "Aucune facture sélectionnée pour suppression"

#: app/routes/invoices.py:547
msgid "Could not delete invoices due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les factures en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:567
msgid "No invoices selected"
msgstr "Aucune facture sélectionnée"

#: app/routes/invoices.py:608
msgid "Could not update invoices due to a database error"
msgstr ""
"Impossible de mettre à jour les factures en raison d'une erreur de base de "
"données"

#: app/routes/invoices.py:637
msgid "No time entries, costs, expenses, or extra goods selected"
msgstr ""
"Aucune entrée de temps, aucun coût, aucune dépense ou marchandise "
"supplémentaire sélectionnée"

#: app/routes/invoices.py:741
msgid "Could not generate items due to a database error. Please check server logs."
msgstr ""
"Impossible de générer des éléments en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:744
msgid "Invoice items generated successfully from time entries and costs"
msgstr ""
"Éléments de facture générés avec succès à partir des entrées de temps et des"
" coûts"

#: app/routes/invoices.py:747
#, python-format
msgid "Applied %(hours)s prepaid hours for %(client)s before billing overages."
msgstr ""
"%(hours)s d'heures prépayées appliquées pour %(client)s avant de facturer "
"les dépassements."

#: app/routes/invoices.py:842 app/routes/invoices.py:913
msgid "You do not have permission to export this invoice"
msgstr "Vous n'êtes pas autorisé à exporter cette facture"

#: app/routes/invoices.py:962
#, python-format
msgid "PDF generation failed: %(err)s. Fallback also failed: %(fb)s"
msgstr ""
"Échec de la génération du PDF : %(err)s. La restauration a également échoué "
": %(fb)s"

#: app/routes/invoices.py:973
msgid "You do not have permission to duplicate this invoice"
msgstr "Vous n'êtes pas autorisé à dupliquer cette facture"

#: app/routes/invoices.py:997
msgid ""
"Could not duplicate invoice due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de dupliquer la facture en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices.py:1028
msgid ""
"Could not finalize duplicated invoice due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de finaliser la facture dupliquée en raison d'une erreur de base "
"de données. Veuillez vérifier les journaux du serveur."

#: app/routes/invoices_refactored.py:236
msgid "Invoice marked as sent"
msgstr "Facture marquée comme envoyée"

#: app/routes/invoices_refactored.py:238 app/routes/invoices_refactored.py:278
#: app/routes/projects_refactored_example.py:202 app/routes/timer_refactored.py:49
#: app/routes/timer_refactored.py:135
msgid "message"
msgstr "message"

#: app/routes/invoices_refactored.py:276
msgid "Invoice marked as paid"
msgstr "Facture marquée comme payée"

#: app/routes/kanban.py:84
msgid "Key and label are required"
msgstr "La clé et l'étiquette sont requises"

#: app/routes/kanban.py:134
msgid "Could not create column due to a database error. Please check server logs."
msgstr ""
"Impossible de créer la colonne en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/kanban.py:177
msgid "Label is required"
msgstr "L'étiquette est obligatoire"

#: app/routes/kanban.py:198
msgid "Could not update column due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour la colonne en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/kanban.py:230
msgid "System columns cannot be deleted"
msgstr "Les colonnes système ne peuvent pas être supprimées"

#: app/routes/kanban.py:266
msgid "Could not delete column due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer la colonne en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/kanban.py:310
msgid "Could not toggle column due to a database error. Please check server logs."
msgstr ""
"Impossible de basculer la colonne en raison d'une erreur de base de données."
" Veuillez vérifier les journaux du serveur."

#: app/routes/leads.py:100
msgid "Lead created successfully"
msgstr "Lead créé avec succès"

#: app/routes/leads.py:104
#, python-format
msgid "Error creating lead: %(error)s"
msgstr "Erreur lors de la création du prospect : %(erreur)s"

#: app/routes/leads.py:150
msgid "Lead updated successfully"
msgstr "Prospect mis à jour avec succès"

#: app/routes/leads.py:154
#, python-format
msgid "Error updating lead: %(error)s"
msgstr "Erreur lors de la mise à jour du prospect : %(erreur)s"

#: app/routes/leads.py:165 app/routes/leads.py:218
msgid "Lead has already been converted"
msgstr "Le prospect a déjà été converti"

#: app/routes/leads.py:203
msgid "Lead converted to client successfully"
msgstr "Lead converti en client avec succès"

#: app/routes/leads.py:207 app/routes/leads.py:257
#, python-format
msgid "Error converting lead: %(error)s"
msgstr "Erreur lors de la conversion du prospect : %(erreur)s"

#: app/routes/leads.py:253
msgid "Lead converted to deal successfully"
msgstr "Lead converti pour négocier avec succès"

#: app/routes/leads.py:274
msgid "Lead marked as lost"
msgstr "Plomb marqué comme perdu"

#: app/routes/leads.py:277
#, python-format
msgid "Error marking lead as lost: %(error)s"
msgstr "Erreur marquant le prospect comme perdu : %(error)s"

#: app/routes/mileage.py:213
msgid "Mileage entry created successfully"
msgstr "Entrée de kilométrage créée avec succès"

#: app/routes/mileage.py:222 app/routes/mileage.py:227
msgid "Error creating mileage entry"
msgstr "Erreur lors de la création de l'entrée de kilométrage"

#: app/routes/mileage.py:239
msgid "You do not have permission to view this mileage entry"
msgstr "Vous n'êtes pas autorisé à afficher cette entrée de kilométrage"

#: app/routes/mileage.py:256
msgid "You do not have permission to edit this mileage entry"
msgstr "Vous n'êtes pas autorisé à modifier cette entrée de kilométrage"

#: app/routes/mileage.py:261
msgid "Cannot edit approved or reimbursed mileage entries"
msgstr "Impossible de modifier les entrées de kilométrage approuvées ou remboursées"

#: app/routes/mileage.py:299
msgid "Mileage entry updated successfully"
msgstr "Entrée de kilométrage mise à jour avec succès"

#: app/routes/mileage.py:304 app/routes/mileage.py:309
msgid "Error updating mileage entry"
msgstr "Erreur lors de la mise à jour de l'entrée de kilométrage"

#: app/routes/mileage.py:321
msgid "You do not have permission to delete this mileage entry"
msgstr "Vous n'êtes pas autorisé à supprimer cette entrée de kilométrage"

#: app/routes/mileage.py:328
msgid "Mileage entry deleted successfully"
msgstr "Entrée de kilométrage supprimée avec succès"

#: app/routes/mileage.py:332 app/routes/mileage.py:336
msgid "Error deleting mileage entry"
msgstr "Erreur lors de la suppression de l'entrée de kilométrage"

#: app/routes/mileage.py:347
msgid "No mileage entries selected for deletion"
msgstr "Aucune entrée de kilométrage sélectionnée pour la suppression"

#: app/routes/mileage.py:378
msgid ""
"Could not delete mileage entries due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de supprimer les entrées de kilométrage en raison d'une erreur de"
" base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/mileage.py:386
#, python-format
msgid "Successfully deleted %(count)d mileage entr%(plural)s"
msgstr "%(count)d entrée de kilométrage %(pluriel)s a été supprimée avec succès"

#: app/routes/mileage.py:389
#, python-format
msgid "Skipped %(count)d mileage entr%(plural)s: %(errors)s"
msgstr "%(count)d entrée de kilométrage ignorée%(pluriel)s : %(erreurs)s"

#: app/routes/mileage.py:401
msgid "No mileage entries selected"
msgstr "Aucune entrée de kilométrage sélectionnée"

#: app/routes/mileage.py:434
msgid "Could not update mileage entries due to a database error"
msgstr ""
"Impossible de mettre à jour les entrées de kilométrage en raison d'une "
"erreur de base de données"

#: app/routes/mileage.py:437
#, python-format
msgid "Successfully updated %(count)d mileage entr%(plural)s to %(status)s"
msgstr ""
"%(count)d entrée de kilométrage %(pluriel)s a été mise à jour avec succès en"
" %(status)s"

#: app/routes/mileage.py:440
#, python-format
msgid "Skipped %(count)d mileage entr%(plural)s (no permission)"
msgstr "%(count)d entrée de kilométrage%(pluriel)s ignorée (aucune autorisation)"

#: app/routes/mileage.py:450
msgid "Only administrators can approve mileage entries"
msgstr "Seuls les administrateurs peuvent approuver les entrées de miles"

#: app/routes/mileage.py:456
msgid "Only pending mileage entries can be approved"
msgstr "Seules les entrées de kilométrage en attente peuvent être approuvées"

#: app/routes/mileage.py:464
msgid "Mileage entry approved successfully"
msgstr "Entrée de kilométrage approuvée avec succès"

#: app/routes/mileage.py:468 app/routes/mileage.py:472
msgid "Error approving mileage entry"
msgstr "Erreur lors de l'approbation de la saisie du kilométrage"

#: app/routes/mileage.py:482
msgid "Only administrators can reject mileage entries"
msgstr "Seuls les administrateurs peuvent refuser les entrées de miles"

#: app/routes/mileage.py:488
msgid "Only pending mileage entries can be rejected"
msgstr "Seules les entrées de miles en attente peuvent être rejetées"

#: app/routes/mileage.py:500
msgid "Mileage entry rejected"
msgstr "Entrée de kilométrage refusée"

#: app/routes/mileage.py:504 app/routes/mileage.py:508
msgid "Error rejecting mileage entry"
msgstr "Erreur lors du rejet de la saisie du kilométrage"

#: app/routes/mileage.py:518
msgid "Only administrators can mark mileage entries as reimbursed"
msgstr ""
"Seuls les administrateurs peuvent marquer les entrées de miles comme "
"remboursées"

#: app/routes/mileage.py:524
msgid "Only approved mileage entries can be marked as reimbursed"
msgstr ""
"Seules les entrées de kilométrage approuvées peuvent être marquées comme "
"remboursées"

#: app/routes/mileage.py:531
msgid "Mileage entry marked as reimbursed"
msgstr "Entrée de kilométrage marquée comme remboursée"

#: app/routes/mileage.py:535 app/routes/mileage.py:539
msgid "Error marking mileage entry as reimbursed"
msgstr "Erreur lors du marquage du kilométrage comme remboursé"

#: app/routes/offers.py:69 app/routes/quotes.py:135
msgid "Quote title and client are required"
msgstr "Le titre du devis et le client sont requis"

#: app/routes/offers.py:75 app/routes/projects.py:231 app/routes/projects.py:645
#: app/routes/quotes.py:141
msgid "Selected client not found"
msgstr "Client sélectionné introuvable"

#: app/routes/offers.py:84 app/routes/offers.py:220 app/routes/quotes.py:150
msgid "Invalid total amount format"
msgstr "Format du montant total invalide"

#: app/routes/offers.py:100 app/routes/offers.py:236 app/routes/quotes.py:166
#: app/routes/tasks.py:142 app/routes/tasks.py:268
msgid "Invalid estimated hours format"
msgstr "Format des heures estimées invalide"

#: app/routes/offers.py:117 app/routes/offers.py:253 app/routes/quotes.py:200
#: app/routes/quotes.py:350
msgid "Invalid date format for valid until"
msgstr "Format de date invalide pour valide jusqu'à"

#: app/routes/offers.py:163 app/routes/quotes.py:258
msgid "Could not create quote due to a database error. Please check server logs."
msgstr ""
"Impossible de créer un devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:178 app/routes/quotes.py:273
msgid "Quote created successfully"
msgstr "Devis créé avec succès"

#: app/routes/offers.py:199 app/routes/quotes.py:299
msgid "Only draft quotes can be edited"
msgstr "Seuls les brouillons de devis peuvent être modifiés"

#: app/routes/offers.py:269 app/routes/quotes.py:429
msgid "Could not update quote due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le devis en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:281 app/routes/quotes.py:447
msgid "Quote updated successfully"
msgstr "Devis mis à jour avec succès"

#: app/routes/offers.py:294 app/routes/quotes.py:469
msgid "Only draft quotes can be sent"
msgstr "Seuls des projets de devis peuvent être envoyés"

#: app/routes/offers.py:300 app/routes/quotes.py:501
msgid "Could not send quote due to a database error. Please check server logs."
msgstr ""
"Impossible d'envoyer le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:312 app/routes/quotes.py:527
msgid "Quote sent successfully"
msgstr "Devis envoyé avec succès"

#: app/routes/offers.py:323 app/routes/quotes.py:538
msgid "This quote cannot be accepted"
msgstr "Ce devis ne peut être accepté"

#: app/routes/offers.py:354 app/routes/quotes.py:569
#, python-format
msgid "Could not accept quote: %(error)s"
msgstr "Impossible d'accepter le devis : %(erreur)s"

#: app/routes/offers.py:359 app/routes/quotes.py:604
msgid "Could not accept quote due to a database error. Please check server logs."
msgstr ""
"Impossible d'accepter le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:373 app/routes/quotes.py:632
msgid "Quote accepted and project created successfully"
msgstr "Devis accepté et projet créé avec succès"

#: app/routes/offers.py:386 app/routes/quotes.py:645
msgid "This quote cannot be rejected"
msgstr "Ce devis ne peut pas être rejeté"

#: app/routes/offers.py:392 app/routes/quotes.py:651
#, python-format
msgid "Could not reject quote: %(error)s"
msgstr "Impossible de rejeter le devis : %(erreur)s"

#: app/routes/offers.py:396 app/routes/quotes.py:655 app/routes/quotes.py:1002
msgid "Could not reject quote due to a database error. Please check server logs."
msgstr ""
"Impossible de rejeter le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:408 app/routes/quotes.py:667
msgid "Quote rejected"
msgstr "Devis rejeté"

#: app/routes/offers.py:420 app/routes/quotes.py:679
msgid "Only draft or rejected quotes can be deleted"
msgstr "Seuls les devis brouillons ou rejetés peuvent être supprimés"

#: app/routes/offers.py:427 app/routes/quotes.py:686
msgid "Could not delete quote due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/offers.py:439 app/routes/quotes.py:698
msgid "Quote deleted successfully"
msgstr "Devis supprimé avec succès"

#: app/routes/payments.py:48
msgid "Invalid from date format"
msgstr "Format de date à partir de non valide"

#: app/routes/payments.py:55
msgid "Invalid to date format"
msgstr "Format de date invalide"

#: app/routes/payments.py:120
msgid "You do not have permission to view this payment"
msgstr "Vous n'êtes pas autorisé à consulter ce paiement"

#: app/routes/payments.py:144
msgid "Invoice, amount, and payment date are required"
msgstr "La facture, le montant et la date de paiement sont requis"

#: app/routes/payments.py:151
msgid "Selected invoice not found"
msgstr "Facture sélectionnée introuvable"

#: app/routes/payments.py:157
msgid "You do not have permission to add payments to this invoice"
msgstr "Vous n'êtes pas autorisé à ajouter des paiements à cette facture"

#: app/routes/payments.py:164 app/routes/payments.py:330
msgid "Payment amount must be greater than zero"
msgstr "Le montant du paiement doit être supérieur à zéro"

#: app/routes/payments.py:168 app/routes/payments.py:333
msgid "Invalid payment amount"
msgstr "Montant du paiement invalide"

#: app/routes/payments.py:176 app/routes/payments.py:340
msgid "Invalid payment date format"
msgstr "Format de date de paiement invalide"

#: app/routes/payments.py:186 app/routes/payments.py:349
msgid "Gateway fee cannot be negative"
msgstr "Les frais de passerelle ne peuvent pas être négatifs"

#: app/routes/payments.py:190 app/routes/payments.py:352
msgid "Invalid gateway fee amount"
msgstr "Montant des frais de passerelle invalide"

#: app/routes/payments.py:263
msgid "Could not create payment due to a database error. Please check server logs."
msgstr ""
"Impossible de créer le paiement en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/payments.py:307
msgid "You do not have permission to edit this payment"
msgstr "Vous n'êtes pas autorisé à modifier ce paiement"

#: app/routes/payments.py:389
msgid "Could not update payment due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le paiement en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/payments.py:399
msgid "Payment updated successfully"
msgstr "Paiement mis à jour avec succès"

#: app/routes/payments.py:413
msgid "You do not have permission to delete this payment"
msgstr "Vous n'êtes pas autorisé à supprimer ce paiement"

#: app/routes/payments.py:433
msgid "Could not delete payment due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le paiement en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/payments.py:442
msgid "Payment deleted successfully"
msgstr "Paiement supprimé avec succès"

#: app/routes/payments.py:452
msgid "No payments selected for deletion"
msgstr "Aucun paiement sélectionné pour suppression"

#: app/routes/payments.py:497
msgid "Could not delete payments due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les paiements en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/payments.py:517
msgid "No payments selected"
msgstr "Aucun paiement sélectionné"

#: app/routes/payments.py:568
msgid "Could not update payments due to a database error"
msgstr ""
"Impossible de mettre à jour les paiements en raison d'une erreur de base de "
"données"

#: app/routes/per_diem.py:140
msgid "Start date must be before end date"
msgstr "La date de début doit être antérieure à la date de fin"

#: app/routes/per_diem.py:176
msgid "No per diem rate found for this location. Please configure rates first."
msgstr ""
"Aucun tarif journalier trouvé pour cet emplacement. Veuillez d'abord "
"configurer les tarifs."

#: app/routes/per_diem.py:221
msgid "Per diem claim created successfully"
msgstr "Réclamation d'indemnité journalière créée avec succès"

#: app/routes/per_diem.py:230 app/routes/per_diem.py:235
msgid "Error creating per diem claim"
msgstr "Erreur lors de la création d'une demande d'indemnité journalière"

#: app/routes/per_diem.py:247
msgid "You do not have permission to view this per diem claim"
msgstr "Vous n'êtes pas autorisé à consulter cette demande d'indemnité journalière"

#: app/routes/per_diem.py:264
msgid "You do not have permission to edit this per diem claim"
msgstr "Vous n'êtes pas autorisé à modifier cette demande d'indemnité journalière"

#: app/routes/per_diem.py:269
msgid "Cannot edit approved or reimbursed per diem claims"
msgstr ""
"Impossible de modifier les demandes d'indemnité journalière approuvées ou "
"remboursées"

#: app/routes/per_diem.py:305
msgid "Per diem claim updated successfully"
msgstr "La demande d'indemnité journalière a été mise à jour avec succès"

#: app/routes/per_diem.py:310 app/routes/per_diem.py:315
msgid "Error updating per diem claim"
msgstr "Erreur lors de la mise à jour de la demande d'indemnité journalière"

#: app/routes/per_diem.py:327
msgid "You do not have permission to delete this per diem claim"
msgstr "Vous n'êtes pas autorisé à supprimer cette demande d'indemnité journalière"

#: app/routes/per_diem.py:334
msgid "Per diem claim deleted successfully"
msgstr "Demande d'indemnité journalière supprimée avec succès"

#: app/routes/per_diem.py:338 app/routes/per_diem.py:342
msgid "Error deleting per diem claim"
msgstr "Erreur lors de la suppression de la demande d'indemnité journalière"

#: app/routes/per_diem.py:353
msgid "No per diem claims selected for deletion"
msgstr "Aucune demande d'indemnité journalière sélectionnée pour suppression"

#: app/routes/per_diem.py:384
msgid ""
"Could not delete per diem claims due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de supprimer les demandes d'indemnités journalières en raison "
"d'une erreur de base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/per_diem.py:392
#, python-format
msgid "Successfully deleted %(count)d per diem claim(s)"
msgstr "%(count)d réclamation(s) d'indemnité journalière a été supprimée avec succès"

#: app/routes/per_diem.py:395
#, python-format
msgid "Skipped %(count)d per diem claim(s): %(errors)s"
msgstr "%(count)d demandes d'indemnités journalières ignorées : %(erreurs)s"

#: app/routes/per_diem.py:407
msgid "No per diem claims selected"
msgstr "Aucune demande d'indemnité journalière sélectionnée"

#: app/routes/per_diem.py:440
msgid "Could not update per diem claims due to a database error"
msgstr ""
"Impossible de mettre à jour les demandes d'indemnités journalières en raison"
" d'une erreur de base de données"

#: app/routes/per_diem.py:443
#, python-format
msgid "Successfully updated %(count)d per diem claim(s) to %(status)s"
msgstr ""
"%(count)d réclamation(s) d'indemnité journalière a été mise à jour avec "
"succès vers %(status)s"

#: app/routes/per_diem.py:446
#, python-format
msgid "Skipped %(count)d per diem claim(s) (no permission)"
msgstr ""
"%(count)d réclamation(s) d'indemnité journalière ignorée (aucune "
"autorisation)"

#: app/routes/per_diem.py:456
msgid "Only administrators can approve per diem claims"
msgstr ""
"Seuls les administrateurs peuvent approuver les demandes d'indemnités "
"journalières"

#: app/routes/per_diem.py:462
msgid "Only pending per diem claims can be approved"
msgstr ""
"Seules les demandes d'indemnités journalières en attente peuvent être "
"approuvées."

#: app/routes/per_diem.py:470
msgid "Per diem claim approved successfully"
msgstr "Demande d'indemnité journalière approuvée avec succès"

#: app/routes/per_diem.py:474 app/routes/per_diem.py:478
msgid "Error approving per diem claim"
msgstr "Erreur lors de l'approbation de la demande d'indemnité journalière"

#: app/routes/per_diem.py:488
msgid "Only administrators can reject per diem claims"
msgstr ""
"Seuls les administrateurs peuvent rejeter les demandes d'indemnités "
"journalières"

#: app/routes/per_diem.py:494
msgid "Only pending per diem claims can be rejected"
msgstr ""
"Seules les demandes d'indemnités journalières en attente peuvent être "
"rejetées"

#: app/routes/per_diem.py:506
msgid "Per diem claim rejected"
msgstr "Demande d'indemnité journalière rejetée"

#: app/routes/per_diem.py:510 app/routes/per_diem.py:514
msgid "Error rejecting per diem claim"
msgstr "Erreur lors du rejet de la demande d'indemnité journalière"

#: app/routes/per_diem.py:571
msgid "Per diem rate created successfully"
msgstr "Taux journalier créé avec succès"

#: app/routes/per_diem.py:575 app/routes/per_diem.py:580
msgid "Error creating per diem rate"
msgstr "Erreur lors de la création du tarif journalier"

#: app/routes/per_diem.py:620
msgid "Per diem rate updated successfully"
msgstr "Le taux journalier a été mis à jour avec succès"

#: app/routes/per_diem.py:625 app/routes/per_diem.py:630
msgid "Error updating per diem rate"
msgstr "Erreur lors de la mise à jour du taux journalier"

#: app/routes/per_diem.py:647
#, python-format
msgid ""
"Cannot delete rate: It is being used by %(count)d per diem claim(s). "
"Deactivate it instead."
msgstr ""
"Impossible de supprimer le taux : il est utilisé par %(count)d "
"réclamation(s) d'indemnités journalières. Désactivez-le plutôt."

#: app/routes/per_diem.py:653
msgid "Per diem rate deleted successfully"
msgstr "Taux journalier supprimé avec succès"

#: app/routes/per_diem.py:657 app/routes/per_diem.py:661
msgid "Error deleting per diem rate"
msgstr "Erreur lors de la suppression du taux journalier"

#: app/routes/permissions.py:21 app/routes/permissions.py:35
#: app/routes/permissions.py:81 app/routes/permissions.py:138
#: app/routes/permissions.py:187 app/routes/permissions.py:211
#: app/utils/permissions.py:39 app/utils/permissions.py:68
msgid "You do not have permission to access this page"
msgstr "Vous n'êtes pas autorisé à accéder à cette page"

#: app/routes/permissions.py:43 app/routes/permissions.py:96
msgid "Role name is required"
msgstr "Le nom du rôle est requis"

#: app/routes/permissions.py:48 app/routes/permissions.py:102
msgid "A role with this name already exists"
msgstr "Un rôle portant ce nom existe déjà"

#: app/routes/permissions.py:63
msgid "Could not create role due to a database error"
msgstr "Impossible de créer le rôle en raison d'une erreur de base de données"

#: app/routes/permissions.py:66
msgid "Role created successfully"
msgstr "Rôle créé avec succès"

#: app/routes/permissions.py:88
msgid "System roles cannot be edited"
msgstr "Les rôles système ne peuvent pas être modifiés"

#: app/routes/permissions.py:120
msgid "Could not update role due to a database error"
msgstr "Impossible de mettre à jour le rôle en raison d'une erreur de base de données"

#: app/routes/permissions.py:123
msgid "Role updated successfully"
msgstr "Rôle mis à jour avec succès"

#: app/routes/permissions.py:154
msgid "You do not have permission to perform this action"
msgstr "Vous n'êtes pas autorisé à effectuer cette action"

#: app/routes/permissions.py:161
msgid "System roles cannot be deleted"
msgstr "Les rôles système ne peuvent pas être supprimés"

#: app/routes/permissions.py:166
msgid "Cannot delete role that is assigned to users. Please reassign users first."
msgstr ""
"Impossible de supprimer le rôle attribué aux utilisateurs. Veuillez d'abord "
"réaffecter les utilisateurs."

#: app/routes/permissions.py:173
msgid "Could not delete role due to a database error"
msgstr "Impossible de supprimer le rôle en raison d'une erreur de base de données"

#: app/routes/permissions.py:176
#, python-format
msgid "Role \"%(name)s\" deleted successfully"
msgstr "Le rôle « %(name)s » a été supprimé avec succès"

#: app/routes/permissions.py:230
msgid "Could not update user roles due to a database error"
msgstr ""
"Impossible de mettre à jour les rôles utilisateur en raison d'une erreur de "
"base de données"

#: app/routes/permissions.py:233
msgid "User roles updated successfully"
msgstr "Les rôles d'utilisateur ont été mis à jour avec succès"

#: app/routes/projects.py:221 app/routes/projects.py:639
msgid "Project name and client are required"
msgstr "Le nom du projet et le client sont requis"

#: app/routes/projects.py:252 app/routes/projects.py:663
msgid "Invalid budget amount"
msgstr "Montant du budget non valide"

#: app/routes/projects.py:260 app/routes/projects.py:672
msgid "Invalid budget threshold percent (0-100)"
msgstr "Pourcentage de seuil budgétaire non valide (0-100)"

#: app/routes/projects.py:265 app/routes/projects.py:678
msgid "A project with this name already exists"
msgstr "Un projet portant ce nom existe déjà"

#: app/routes/projects.py:279 app/routes/projects.py:686
msgid "Project code already in use"
msgstr "Code du projet déjà utilisé"

#: app/routes/projects.py:297
msgid "Could not create project due to a database error. Please check server logs."
msgstr ""
"Impossible de créer le projet en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:702
msgid "Could not update project due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le projet en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:730
msgid "You do not have permission to archive projects"
msgstr "Vous n'êtes pas autorisé à archiver des projets"

#: app/routes/projects.py:738
msgid "Project is already archived"
msgstr "Le projet est déjà archivé"

#: app/routes/projects.py:777
msgid "You do not have permission to unarchive projects"
msgstr "Vous n'êtes pas autorisé à désarchiver des projets"

#: app/routes/projects.py:781 app/routes/projects.py:839
msgid "Project is already active"
msgstr "Le projet est déjà actif"

#: app/routes/projects.py:813
msgid "You do not have permission to deactivate projects"
msgstr "Vous n'êtes pas autorisé à désactiver des projets"

#: app/routes/projects.py:817
msgid "Project is already inactive"
msgstr "Le projet est déjà inactif"

#: app/routes/projects.py:835
msgid "You do not have permission to activate projects"
msgstr "Vous n'êtes pas autorisé à activer des projets"

#: app/routes/projects.py:858
msgid "Cannot delete project with existing time entries"
msgstr "Impossible de supprimer un projet avec des entrées de temps existantes"

#: app/routes/projects.py:878
msgid "Could not delete project due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le projet en raison d'une erreur de base de données."
" Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:890
msgid "You do not have permission to delete projects"
msgstr "Vous n'êtes pas autorisé à supprimer des projets"

#: app/routes/projects.py:896
msgid "No projects selected for deletion"
msgstr "Aucun projet sélectionné pour suppression"

#: app/routes/projects.py:935
msgid "Could not delete projects due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les projets en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:946
msgid "No projects were deleted"
msgstr "Aucun projet n'a été supprimé"

#: app/routes/projects.py:956
msgid "You do not have permission to change project status"
msgstr "Vous n'êtes pas autorisé à modifier le statut du projet"

#: app/routes/projects.py:964
msgid "No projects selected"
msgstr "Aucun projet sélectionné"

#: app/routes/projects.py:1026
msgid ""
"Could not update project status due to a database error. Please check server"
" logs."
msgstr ""
"Impossible de mettre à jour le statut du projet en raison d'une erreur de "
"base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1038
msgid "No projects were updated"
msgstr "Aucun projet n'a été mis à jour"

#: app/routes/projects.py:1055 app/routes/projects.py:1056
msgid "Project is already in favorites"
msgstr "Le projet est déjà dans les favoris"

#: app/routes/projects.py:1078 app/routes/projects.py:1079
msgid "Project added to favorites"
msgstr "Projet ajouté aux favoris"

#: app/routes/projects.py:1083 app/routes/projects.py:1084
msgid "Failed to add project to favorites"
msgstr "Échec de l'ajout du projet aux favoris"

#: app/routes/projects.py:1100 app/routes/projects.py:1101
msgid "Project is not in favorites"
msgstr "Le projet n'est pas dans les favoris"

#: app/routes/projects.py:1123 app/routes/projects.py:1124
msgid "Project removed from favorites"
msgstr "Projet supprimé des favoris"

#: app/routes/projects.py:1128 app/routes/projects.py:1129
msgid "Failed to remove project from favorites"
msgstr "Échec de la suppression du projet des favoris"

#: app/routes/projects.py:1210 app/routes/projects.py:1281
msgid "Description, category, amount, and date are required"
msgstr "La description, la catégorie, le montant et la date sont requis"

#: app/routes/projects.py:1244
msgid "Could not add cost due to a database error. Please check server logs."
msgstr ""
"Impossible d'ajouter des coûts en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1247
msgid "Cost added successfully"
msgstr "Coût ajouté avec succès"

#: app/routes/projects.py:1262 app/routes/projects.py:1329
msgid "Cost not found"
msgstr "Coût introuvable"

#: app/routes/projects.py:1267
msgid "You do not have permission to edit this cost"
msgstr "Vous n'êtes pas autorisé à modifier ce coût"

#: app/routes/projects.py:1311
msgid "Could not update cost due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le coût en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1314
msgid "Cost updated successfully"
msgstr "Coût mis à jour avec succès"

#: app/routes/projects.py:1334
msgid "You do not have permission to delete this cost"
msgstr "Vous n'êtes pas autorisé à supprimer ce coût"

#: app/routes/projects.py:1339
msgid "Cannot delete cost that has been invoiced"
msgstr "Impossible de supprimer le coût facturé"

#: app/routes/projects.py:1345
msgid "Could not delete cost due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le coût en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1435 app/routes/projects.py:1510
msgid "Name and unit price are required"
msgstr "Le nom et le prix unitaire sont requis"

#: app/routes/projects.py:1444 app/routes/projects.py:1519
msgid "Invalid quantity format"
msgstr "Format de quantité invalide"

#: app/routes/projects.py:1453 app/routes/projects.py:1528
msgid "Invalid unit price format"
msgstr "Format de prix unitaire non valide"

#: app/routes/projects.py:1472
msgid "Could not add extra good due to a database error. Please check server logs."
msgstr ""
"Impossible d'ajouter du bien supplémentaire en raison d'une erreur de base "
"de données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1475
msgid "Extra good added successfully"
msgstr "Extra bon ajouté avec succès"

#: app/routes/projects.py:1490 app/routes/projects.py:1561
msgid "Extra good not found"
msgstr "Extra bon introuvable"

#: app/routes/projects.py:1495
msgid "You do not have permission to edit this extra good"
msgstr "Vous n'êtes pas autorisé à modifier ce bien supplémentaire"

#: app/routes/projects.py:1543
msgid ""
"Could not update extra good due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de mettre à jour Extra Good en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects.py:1546
msgid "Extra good updated successfully"
msgstr "Extra bon mis à jour avec succès"

#: app/routes/projects.py:1566
msgid "You do not have permission to delete this extra good"
msgstr "Vous n'êtes pas autorisé à supprimer ce bien supplémentaire"

#: app/routes/projects.py:1571
msgid "Cannot delete extra good that has been added to an invoice"
msgstr "Impossible de supprimer un bien supplémentaire ajouté à une facture"

#: app/routes/projects.py:1577
msgid ""
"Could not delete extra good due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de supprimer le bien supplémentaire en raison d'une erreur de "
"base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/projects_refactored_example.py:123
msgid "Project not found"
msgstr "Projet introuvable"

#: app/routes/projects_refactored_example.py:199
msgid "Project created successfully"
msgstr "Projet créé avec succès"

#: app/routes/quotes.py:191 app/routes/quotes.py:341
msgid "Invalid discount amount format"
msgstr "Format du montant de la remise non valide"

#: app/routes/quotes.py:467
msgid "Quote must be approved before it can be sent"
msgstr "Le devis doit être approuvé avant de pouvoir être envoyé"

#: app/routes/quotes.py:475
#, python-format
msgid "Cannot send quote: %(error)s"
msgstr "Impossible d'envoyer le devis : %(erreur)s"

#: app/routes/quotes.py:716
msgid "You do not have permission to upload attachments to this quote"
msgstr "Vous n'êtes pas autorisé à télécharger des pièces jointes à ce devis"

#: app/routes/quotes.py:737
msgid "File type not allowed"
msgstr "Type de fichier non autorisé"

#: app/routes/quotes.py:746
msgid "File size exceeds maximum allowed size (10 MB)"
msgstr "La taille du fichier dépasse la taille maximale autorisée (10 Mo)"

#: app/routes/quotes.py:782
msgid ""
"Could not upload attachment due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de télécharger la pièce jointe en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:801
msgid "Attachment uploaded successfully"
msgstr "Pièce jointe téléchargée avec succès"

#: app/routes/quotes.py:817
msgid "You do not have permission to download this attachment"
msgstr "Vous n'êtes pas autorisé à télécharger cette pièce jointe"

#: app/routes/quotes.py:824
msgid "File not found"
msgstr "Fichier introuvable"

#: app/routes/quotes.py:848
msgid "You do not have permission to delete this attachment"
msgstr "Vous n'êtes pas autorisé à supprimer cette pièce jointe"

#: app/routes/quotes.py:865
msgid ""
"Could not delete attachment due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de supprimer la pièce jointe en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:877
msgid "Attachment deleted successfully"
msgstr "Pièce jointe supprimée avec succès"

#: app/routes/quotes.py:890
msgid "You do not have permission to request approval for this quote"
msgstr "Vous n'êtes pas autorisé à demander l'approbation de ce devis"

#: app/routes/quotes.py:894 app/routes/quotes.py:938 app/routes/quotes.py:983
msgid "This quote does not require approval"
msgstr "Ce devis ne nécessite pas d'approbation"

#: app/routes/quotes.py:900
#, python-format
msgid "Cannot request approval: %(error)s"
msgstr "Impossible de demander l'approbation : %(erreur)s"

#: app/routes/quotes.py:904
msgid "Could not request approval due to a database error. Please check server logs."
msgstr ""
"Impossible de demander l'approbation en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:926
msgid "Approval requested successfully"
msgstr "Approbation demandée avec succès"

#: app/routes/quotes.py:942 app/routes/quotes.py:987
msgid "This quote is not pending approval"
msgstr "Ce devis n'est pas en attente d'approbation"

#: app/routes/quotes.py:950
#, python-format
msgid "Cannot approve quote: %(error)s"
msgstr "Impossible d'approuver le devis : %(erreur)s"

#: app/routes/quotes.py:954
msgid "Could not approve quote due to a database error. Please check server logs."
msgstr ""
"Impossible d'approuver le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:971
msgid "Quote approved successfully"
msgstr "Devis approuvé avec succès"

#: app/routes/quotes.py:998
#, python-format
msgid "Cannot reject quote: %(error)s"
msgstr "Impossible de rejeter le devis : %(erreur)s"

#: app/routes/quotes.py:1019
msgid "Quote approval rejected"
msgstr "Approbation du devis rejetée"

#: app/routes/quotes.py:1094
msgid "Could not create template due to a database error. Please check server logs."
msgstr ""
"Impossible de créer le modèle en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:1106
msgid "Template created successfully"
msgstr "Modèle créé avec succès"

#: app/routes/quotes.py:1121
msgid "You do not have permission to create a template from this quote"
msgstr "Vous n'êtes pas autorisé à créer un modèle à partir de ce devis"

#: app/routes/quotes.py:1161
msgid "Could not save template due to a database error. Please check server logs."
msgstr ""
"Impossible d'enregistrer le modèle en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:1173
msgid "Template saved successfully"
msgstr "Modèle enregistré avec succès"

#: app/routes/quotes.py:1183
msgid "You do not have permission to export this quote"
msgstr "Vous n'êtes pas autorisé à exporter ce devis"

#: app/routes/quotes.py:1229
#, python-format
msgid "Error generating PDF: %(error)s"
msgstr "Erreur lors de la génération du PDF : %(erreur)s"

#: app/routes/quotes.py:1248
msgid "Recipient email address is required"
msgstr "L'adresse e-mail du destinataire est requise"

#: app/routes/quotes.py:1263
#, python-format
msgid "Quote sent successfully to %(email)s"
msgstr "Devis envoyé avec succès à %(email)s"

#: app/routes/quotes.py:1278
#, python-format
msgid "Failed to send quote: %(error)s"
msgstr "Échec de l'envoi du devis : %(erreur)s"

#: app/routes/quotes.py:1284
#, python-format
msgid "Error sending email: %(error)s"
msgstr "Erreur lors de l'envoi de l'e-mail : %(erreur)s"

#: app/routes/quotes.py:1301
msgid "You do not have permission to duplicate this quote"
msgstr "Vous n'êtes pas autorisé à dupliquer ce devis"

#: app/routes/quotes.py:1337
msgid "Could not duplicate quote due to a database error. Please check server logs."
msgstr ""
"Impossible de dupliquer le devis en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:1354
msgid ""
"Could not finalize duplicated quote due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de finaliser le devis en double en raison d'une erreur de base de"
" données. Veuillez vérifier les journaux du serveur."

#: app/routes/quotes.py:1357
#, python-format
msgid "Quote %(quote_number)s created as duplicate"
msgstr "Citation %(quote_number)s créée en double"

#: app/routes/quotes.py:1379
msgid "Please select an action and at least one quote"
msgstr "Veuillez sélectionner une action et au moins un devis"

#: app/routes/quotes.py:1385
msgid "Invalid quote IDs"
msgstr "ID de devis invalides"

#: app/routes/quotes.py:1394
msgid "No quotes found or you do not have permission"
msgstr "Aucun devis trouvé ou vous n'avez pas l'autorisation"

#: app/routes/quotes.py:1451
#, python-format
msgid "Duplicated %(count)d quote(s)"
msgstr "%(count)d citation(s) en double"

#: app/routes/quotes.py:1453
#, python-format
msgid "Failed to duplicate %(count)d quote(s)"
msgstr "Échec de la duplication de %(count)d devis"

#: app/routes/quotes.py:1455
msgid "Error duplicating quotes"
msgstr "Erreur lors de la duplication des devis"

#: app/routes/quotes.py:1470
#, python-format
msgid "Marked %(count)d quote(s) as sent"
msgstr "%(count)d devis marqué(s) comme envoyé(s)"

#: app/routes/quotes.py:1472
#, python-format
msgid "Could not mark %(count)d quote(s) as sent"
msgstr "Impossible de marquer %(count)d devis comme envoyés"

#: app/routes/quotes.py:1474
msgid "Error updating quotes"
msgstr "Erreur lors de la mise à jour des devis"

#: app/routes/quotes.py:1490
#, python-format
msgid "Deleted %(count)d quote(s)"
msgstr "%(count)d citation(s) supprimée(s)"

#: app/routes/quotes.py:1492
#, python-format
msgid "Could not delete %(count)d quote(s) (may be in use)"
msgstr ""
"Impossible de supprimer %(count)d citation(s) (peut-être en cours "
"d'utilisation)"

#: app/routes/quotes.py:1494
msgid "Error deleting quotes"
msgstr "Erreur lors de la suppression des guillemets"

#: app/routes/quotes.py:1497
msgid "Invalid action"
msgstr "Action invalide"

#: app/routes/recurring_invoices.py:65
msgid "Name, project, client, frequency, and next run date are required"
msgstr ""
"Le nom, le projet, le client, la fréquence et la date de la prochaine "
"exécution sont requis"

#: app/routes/recurring_invoices.py:71
msgid "Invalid next run date format"
msgstr "Format de date de prochaine exécution non valide"

#: app/routes/recurring_invoices.py:79
msgid "Invalid end date format"
msgstr "Format de date de fin non valide"

#: app/routes/recurring_invoices.py:92
msgid "Selected project or client not found"
msgstr "Projet ou client sélectionné introuvable"

#: app/routes/recurring_invoices.py:129
msgid ""
"Could not create recurring invoice due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de créer une facture récurrente en raison d'une erreur de base de"
" données. Veuillez vérifier les journaux du serveur."

#: app/routes/recurring_invoices.py:158
msgid "You do not have permission to view this recurring invoice"
msgstr "Vous n'êtes pas autorisé à consulter cette facture récurrente"

#: app/routes/recurring_invoices.py:175
msgid "You do not have permission to edit this recurring invoice"
msgstr "Vous n'êtes pas autorisé à modifier cette facture récurrente"

#: app/routes/recurring_invoices.py:200
msgid ""
"Could not update recurring invoice due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de mettre à jour la facture récurrente en raison d'une erreur de "
"base de données. Veuillez vérifier les journaux du serveur."

#: app/routes/recurring_invoices.py:203
msgid "Recurring invoice updated successfully"
msgstr "Facture récurrente mise à jour avec succès"

#: app/routes/recurring_invoices.py:220
msgid "You do not have permission to delete this recurring invoice"
msgstr "Vous n'êtes pas autorisé à supprimer cette facture récurrente"

#: app/routes/recurring_invoices.py:226
msgid ""
"Could not delete recurring invoice due to a database error. Please check "
"server logs."
msgstr ""
"Impossible de supprimer la facture récurrente en raison d'une erreur de base"
" de données. Veuillez vérifier les journaux du serveur."

#: app/routes/saved_filters.py:282
msgid "Could not delete filter due to a database error"
msgstr "Impossible de supprimer le filtre en raison d'une erreur de base de données"

#: app/routes/setup.py:36
msgid "Setup complete! Thank you for helping us improve TimeTracker."
msgstr "Configuration terminée ! Merci de nous aider à améliorer TimeTracker."

#: app/routes/setup.py:38
msgid "Setup complete! Telemetry is disabled."
msgstr "Configuration terminée ! La télémétrie est désactivée."

#: app/routes/tasks.py:129
msgid "Project and task name are required"
msgstr "Le nom du projet et de la tâche est requis"

#: app/routes/tasks.py:135
msgid "Selected project does not exist"
msgstr "Le projet sélectionné n'existe pas"

#: app/routes/tasks.py:168
msgid "Could not create task due to a database error. Please check server logs."
msgstr ""
"Impossible de créer la tâche en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/tasks.py:213
msgid "You do not have access to this task"
msgstr "Vous n'avez pas accès à cette tâche"

#: app/routes/tasks.py:235
msgid "You can only edit tasks you created"
msgstr "Vous ne pouvez modifier que les tâches que vous avez créées"

#: app/routes/tasks.py:252
msgid "Task name is required"
msgstr "Le nom de la tâche est obligatoire"

#: app/routes/tasks.py:257 app/routes/timer.py:47
msgid "Project is required"
msgstr "Le projet est requis"

#: app/routes/tasks.py:261
msgid "Selected project does not exist or is inactive"
msgstr "Le projet sélectionné n'existe pas ou est inactif"

#: app/routes/tasks.py:316
msgid "Could not update status due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le statut en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/tasks.py:350
msgid "Could not update task due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour la tâche en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/tasks.py:393
msgid "You do not have permission to update this task"
msgstr "Vous n'êtes pas autorisé à mettre à jour cette tâche"

#: app/routes/tasks.py:478
msgid "You can only update tasks you created"
msgstr "Vous pouvez uniquement mettre à jour les tâches que vous avez créées"

#: app/routes/tasks.py:498
msgid "You can only assign tasks you created"
msgstr "Vous ne pouvez attribuer que les tâches que vous avez créées"

#: app/routes/tasks.py:504
msgid "Selected user does not exist"
msgstr "L'utilisateur sélectionné n'existe pas"

#: app/routes/tasks.py:511
msgid "Task unassigned"
msgstr "Tâche non attribuée"

#: app/routes/tasks.py:523
msgid "You can only delete tasks you created"
msgstr "Vous ne pouvez supprimer que les tâches que vous avez créées"

#: app/routes/tasks.py:528
msgid "Cannot delete task with existing time entries"
msgstr "Impossible de supprimer une tâche avec des entrées de temps existantes"

#: app/routes/tasks.py:549
msgid "Could not delete task due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer la tâche en raison d'une erreur de base de données. "
"Veuillez vérifier les journaux du serveur."

#: app/routes/tasks.py:566
msgid "No tasks selected for deletion"
msgstr "Aucune tâche sélectionnée pour suppression"

#: app/routes/tasks.py:612
msgid "Could not delete tasks due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer les tâches en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/tasks.py:633 app/routes/tasks.py:693 app/routes/tasks.py:743
#: app/routes/tasks.py:799
msgid "No tasks selected"
msgstr "Aucune tâche sélectionnée"

#: app/routes/tasks.py:674 app/routes/tasks.py:724
msgid "Could not update tasks due to a database error"
msgstr ""
"Impossible de mettre à jour les tâches en raison d'une erreur de base de "
"données"

#: app/routes/tasks.py:697
msgid "Invalid priority value"
msgstr "Valeur de priorité invalide"

#: app/routes/tasks.py:747
msgid "No user selected for assignment"
msgstr "Aucun utilisateur sélectionné pour l'affectation"

#: app/routes/tasks.py:753
msgid "Invalid user selected"
msgstr "Utilisateur invalide sélectionné"

#: app/routes/tasks.py:780
msgid "Could not assign tasks due to a database error"
msgstr "Impossible d'attribuer des tâches en raison d'une erreur de base de données"

#: app/routes/tasks.py:803
msgid "No project selected"
msgstr "Aucun projet sélectionné"

#: app/routes/tasks.py:809 app/routes/timer.py:54 app/routes/timer.py:233
#: app/routes/timer.py:415 app/routes/timer.py:586 app/routes/timer.py:704
msgid "Invalid project selected"
msgstr "Projet sélectionné non valide"

#: app/routes/tasks.py:851
msgid "Could not move tasks due to a database error"
msgstr "Impossible de déplacer les tâches en raison d'une erreur de base de données"

#: app/routes/tasks.py:1058
msgid "Only administrators can view all overdue tasks"
msgstr "Seuls les administrateurs peuvent voir toutes les tâches en retard"

#: app/routes/time_entry_templates.py:90
msgid "Could not create template due to a database error"
msgstr "Impossible de créer le modèle en raison d'une erreur de base de données"

#: app/routes/time_entry_templates.py:205
msgid "Could not update template due to a database error"
msgstr ""
"Impossible de mettre à jour le modèle en raison d'une erreur de base de "
"données"

#: app/routes/time_entry_templates.py:259
msgid "Could not delete template due to a database error"
msgstr "Impossible de supprimer le modèle en raison d'une erreur de base de données"

#: app/routes/timer.py:60 app/routes/timer.py:239 app/routes/timer.py:999
msgid ""
"Cannot start timer for an archived project. Please unarchive the project "
"first."
msgstr ""
"Impossible de démarrer le minuteur pour un projet archivé. Veuillez d'abord "
"désarchiver le projet."

#: app/routes/timer.py:64 app/routes/timer.py:243 app/routes/timer.py:1002
msgid "Cannot start timer for an inactive project"
msgstr "Impossible de démarrer le minuteur pour un projet inactif"

#: app/routes/timer.py:72
msgid "Selected task is invalid for the chosen project"
msgstr "La tâche sélectionnée n'est pas valide pour le projet choisi"

#: app/routes/timer.py:81 app/routes/timer.py:172 app/routes/timer.py:250
msgid "You already have an active timer. Stop it before starting a new one."
msgstr ""
"Vous disposez déjà d'un minuteur actif. Arrêtez-le avant d'en démarrer un "
"nouveau."

#: app/routes/timer.py:98 app/routes/timer.py:205 app/routes/timer.py:266
msgid "Could not start timer due to a database error. Please check server logs."
msgstr ""
"Impossible de démarrer le minuteur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer.py:177
msgid "Template must have a project to start a timer"
msgstr "Le modèle doit avoir un projet pour démarrer un minuteur"

#: app/routes/timer.py:183
msgid "Cannot start timer for this project"
msgstr "Impossible de démarrer le minuteur pour ce projet"

#: app/routes/timer.py:299
msgid "No active timer to stop"
msgstr "Aucune minuterie active pour arrêter"

#: app/routes/timer.py:397
msgid "You can only edit your own timers"
msgstr "Vous ne pouvez modifier que vos propres minuteries"

#: app/routes/timer.py:428
msgid "Invalid task selected for the chosen project"
msgstr "Tâche non valide sélectionnée pour le projet choisi"

#: app/routes/timer.py:451
msgid "Start time cannot be in the future"
msgstr "L'heure de début ne peut pas être postérieure"

#: app/routes/timer.py:458
msgid "Invalid start date/time format"
msgstr "Format de date/heure de début non valide"

#: app/routes/timer.py:471
msgid "End time must be after start time"
msgstr "L'heure de fin doit être postérieure à l'heure de début"

#: app/routes/timer.py:480
msgid "Invalid end date/time format"
msgstr "Format de date/heure de fin non valide"

#: app/routes/timer.py:491
msgid "Could not update timer due to a database error. Please check server logs."
msgstr ""
"Impossible de mettre à jour le minuteur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer.py:494
msgid "Timer updated successfully"
msgstr "Minuterie mise à jour avec succès"

#: app/routes/timer.py:515
msgid "You can only delete your own timers"
msgstr "Vous ne pouvez supprimer que vos propres minuteries"

#: app/routes/timer.py:520
msgid "Cannot delete an active timer"
msgstr "Impossible de supprimer une minuterie active"

#: app/routes/timer.py:526
msgid "Could not delete timer due to a database error. Please check server logs."
msgstr ""
"Impossible de supprimer le minuteur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer.py:579 app/routes/timer.py:697
msgid "All fields are required"
msgstr "Tous les champs sont obligatoires"

#: app/routes/timer.py:592 app/routes/timer.py:710
msgid ""
"Cannot create time entries for an archived project. Please unarchive the "
"project first."
msgstr ""
"Impossible de créer des entrées de temps pour un projet archivé. Veuillez "
"d'abord désarchiver le projet."

#: app/routes/timer.py:596 app/routes/timer.py:714
msgid "Cannot create time entries for an inactive project"
msgstr "Impossible de créer des entrées de temps pour un projet inactif"

#: app/routes/timer.py:604 app/routes/timer.py:722
msgid "Invalid task selected"
msgstr "Tâche non valide sélectionnée"

#: app/routes/timer.py:613
msgid "Invalid date/time format"
msgstr "Format date/heure invalide"

#: app/routes/timer.py:638
msgid ""
"Could not create manual entry due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de créer une entrée manuelle en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer.py:733
msgid "End date must be after or equal to start date"
msgstr "La date de fin doit être postérieure ou égale à la date de début"

#: app/routes/timer.py:739
msgid "Date range cannot exceed 31 days"
msgstr "La plage de dates ne peut pas dépasser 31 jours"

#: app/routes/timer.py:757
msgid "Invalid time format"
msgstr "Format d'heure invalide"

#: app/routes/timer.py:775
msgid "No valid dates found in the selected range"
msgstr "Aucune date valide trouvée dans la plage sélectionnée"

#: app/routes/timer.py:827
msgid ""
"Could not create bulk entries due to a database error. Please check server "
"logs."
msgstr ""
"Impossible de créer des entrées groupées en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer.py:842
msgid "An error occurred while creating bulk entries. Please try again."
msgstr ""
"Une erreur s'est produite lors de la création d'entrées groupées. Veuillez "
"réessayer."

#: app/routes/timer.py:943
msgid "You can only duplicate your own timers"
msgstr "Vous ne pouvez dupliquer que vos propres minuteries"

#: app/routes/timer.py:982
msgid "You can only resume your own timers"
msgstr "Vous ne pouvez réactiver que vos propres minuteries"

#: app/routes/timer.py:995
msgid "Project no longer exists"
msgstr "Le projet n'existe plus"

#: app/routes/timer.py:1031
msgid "Could not resume timer due to a database error. Please check server logs."
msgstr ""
"Impossible de reprendre le minuteur en raison d'une erreur de base de "
"données. Veuillez vérifier les journaux du serveur."

#: app/routes/timer_refactored.py:177
msgid "Timer stopped successfully"
msgstr "La minuterie s'est arrêtée avec succès"

#: app/routes/user.py:74
msgid "Invalid timezone selected"
msgstr "Fuseau horaire sélectionné non valide"

#: app/routes/user.py:112
msgid "Standard hours per day must be between 0.5 and 24"
msgstr "Les heures standard par jour doivent être comprises entre 0,5 et 24"

#: app/routes/user.py:127
msgid "Settings saved successfully"
msgstr "Paramètres enregistrés avec succès"

#: app/routes/user.py:129
msgid "Error saving settings"
msgstr "Erreur lors de l'enregistrement des paramètres"

#: app/routes/user.py:132
#, python-format
msgid "Error saving settings: %(error)s"
msgstr "Erreur lors de l'enregistrement des paramètres : %(error)s"

#: app/routes/user.py:194
msgid "Preferences updated"
msgstr "Préférences mises à jour"

#: app/routes/user.py:250
msgid "Language updated successfully"
msgstr "Langue mise à jour avec succès"

#: app/routes/user.py:253 app/routes/user.py:282
msgid "Invalid language"
msgstr "Langue invalide"

#: app/routes/user.py:276
#, python-format
msgid "Language updated to %(language)s"
msgstr "Langue mise à jour en %(langue)s"

#: app/routes/webhooks.py:39
msgid "Webhook name is required"
msgstr "Le nom du webhook est requis"

#: app/routes/webhooks.py:45
msgid "Webhook URL is required"
msgstr "L'URL du webhook est obligatoire"

#: app/routes/webhooks.py:53
msgid "At least one event must be selected"
msgstr "Au moins un événement doit être sélectionné"

#: app/routes/webhooks.py:79
msgid "Webhook created successfully"
msgstr "Webhook créé avec succès"

#: app/routes/webhooks.py:83
msgid "Error creating webhook"
msgstr "Erreur lors de la création du webhook"

#: app/routes/webhooks.py:86
#, python-format
msgid "Error creating webhook: %(error)s"
msgstr "Erreur lors de la création du webhook : %(erreur)s"

#: app/routes/webhooks.py:103 app/routes/webhooks.py:125
#: app/routes/webhooks.py:170
msgid "Access denied"
msgstr "Accès refusé"

#: app/routes/webhooks.py:149
msgid "Webhook updated successfully"
msgstr "Webhook mis à jour avec succès"

#: app/routes/webhooks.py:153
#, python-format
msgid "Error updating webhook: %(error)s"
msgstr "Erreur lors de la mise à jour du webhook : %(erreur)s"

#: app/routes/webhooks.py:176
msgid "Webhook deleted successfully"
msgstr "Webhook supprimé avec succès"

#: app/routes/webhooks.py:179
#, python-format
msgid "Error deleting webhook: %(error)s"
msgstr "Erreur lors de la suppression du webhook : %(erreur)s"

#: app/routes/weekly_goals.py:78 app/routes/weekly_goals.py:212
msgid "Please enter a valid target hours (greater than 0)"
msgstr "Veuillez saisir un nombre d'heures cible valide (supérieur à 0)"

#: app/routes/weekly_goals.py:99
msgid "A goal already exists for this week. Please edit the existing goal instead."
msgstr ""
"Un objectif existe déjà pour cette semaine. Veuillez plutôt modifier "
"l'objectif existant."

#: app/routes/weekly_goals.py:113
msgid "Weekly time goal created successfully!"
msgstr "Objectif de temps hebdomadaire créé avec succès !"

#: app/routes/weekly_goals.py:129
msgid "Failed to create goal. Please try again."
msgstr "Échec de la création de l'objectif. Veuillez réessayer."

#: app/routes/weekly_goals.py:143
msgid "You do not have permission to view this goal"
msgstr "Vous n'êtes pas autorisé à afficher cet objectif"

#: app/routes/weekly_goals.py:197
msgid "You do not have permission to edit this goal"
msgstr "Vous n'êtes pas autorisé à modifier cet objectif"

#: app/routes/weekly_goals.py:224
msgid "Weekly time goal updated successfully!"
msgstr "Objectif de temps hebdomadaire mis à jour avec succès !"

#: app/routes/weekly_goals.py:241
msgid "Failed to update goal. Please try again."
msgstr "Échec de la mise à jour de l'objectif. Veuillez réessayer."

#: app/routes/weekly_goals.py:255
msgid "You do not have permission to delete this goal"
msgstr "Vous n'êtes pas autorisé à supprimer cet objectif"

#: app/routes/weekly_goals.py:263
msgid "Weekly time goal deleted successfully"
msgstr "Objectif de temps hebdomadaire supprimé avec succès"

#: app/routes/weekly_goals.py:277
msgid "Failed to delete goal. Please try again."
msgstr "Échec de la suppression de l'objectif. Veuillez réessayer."

#: app/templates/_components.html:212
msgid "remaining"
msgstr "restant"

#: app/templates/admin/webhooks/list.html:68
#: app/templates/admin/webhooks/view.html:114 app/templates/base.html:154
#: app/templates/kanban/columns.html:226
msgid "Success"
msgstr "Succès"

#: app/templates/admin/email_support.html:388
#: app/templates/admin/email_support.html:487 app/templates/base.html:155
msgid "Error"
msgstr "Erreur"

#: app/templates/base.html:156 app/templates/budget/dashboard.html:161
#: app/templates/budget/project_detail.html:67
#: app/templates/projects/view.html:187 app/utils/i18n_helpers.py:294
#: app/utils/i18n_helpers.py:304
msgid "Warning"
msgstr "Avertissement"

#: app/templates/base.html:157 app/templates/calendar/event_detail.html:170
#: app/templates/quotes/view.html:385
msgid "Information"
msgstr "Information"

#: app/templates/analytics/dashboard.html:195
#: app/templates/analytics/dashboard_improved.html:200
#: app/templates/analytics/mobile_dashboard.html:148 app/templates/base.html:160
#: app/templates/components/activity_feed_widget.html:220
#: app/templates/import_export/index.html:91
#: app/templates/import_export/index.html:153
msgid "Loading..."
msgstr "Chargement..."

#: app/templates/admin/email_support.html:329 app/templates/base.html:161
#: app/templates/client_notes/edit.html:115
#: app/templates/comments/_comments_section.html:156
#: app/templates/comments/edit.html:108
msgid "Saving..."
msgstr "Économie..."

#: app/templates/base.html:162
msgid "Deleting..."
msgstr "Suppression..."

#: app/templates/admin/api_tokens.html:429 app/templates/admin/api_tokens.html:462
#: app/templates/admin/email_templates/create.html:117
#: app/templates/admin/email_templates/edit.html:115
#: app/templates/admin/email_templates/list.html:80
#: app/templates/admin/quote_pdf_layout.html:2413
#: app/templates/admin/quote_pdf_layout.html:3324
#: app/templates/admin/roles/form.html:99 app/templates/admin/roles/list.html:213
#: app/templates/admin/settings.html:300 app/templates/admin/users.html:120
#: app/templates/admin/users/roles.html:57
#: app/templates/admin/webhooks/form.html:128 app/templates/base.html:163
#: app/templates/calendar/event_detail.html:194
#: app/templates/calendar/event_form.html:237
#: app/templates/client_notes/edit.html:86 app/templates/clients/create.html:79
#: app/templates/clients/edit.html:105 app/templates/clients/view.html:223
#: app/templates/clients/view.html:342 app/templates/comments/_comment.html:61
#: app/templates/comments/_comment.html:85
#: app/templates/comments/_comments_section.html:44
#: app/templates/comments/edit.html:79
#: app/templates/contacts/communication_form.html:82
#: app/templates/contacts/form.html:99 app/templates/deals/form.html:112
#: app/templates/expenses/view.html:399 app/templates/import_export/index.html:191
#: app/templates/import_export/index.html:229
#: app/templates/inventory/adjustments/form.html:56
#: app/templates/inventory/movements/form.html:67
#: app/templates/inventory/purchase_orders/form.html:101
#: app/templates/inventory/stock_items/form.html:134
#: app/templates/inventory/suppliers/form.html:85
#: app/templates/inventory/transfers/form.html:60
#: app/templates/inventory/warehouses/form.html:60
#: app/templates/invoices/edit.html:232 app/templates/invoices/edit.html:589
#: app/templates/invoices/generate_from_time.html:105
#: app/templates/invoices/list.html:324 app/templates/invoices/view.html:270
#: app/templates/kanban/columns.html:162
#: app/templates/kanban/create_column.html:86
#: app/templates/kanban/edit_column.html:88 app/templates/leads/form.html:103
#: app/templates/per_diem/rates_list.html:113
#: app/templates/projects/add_good.html:68 app/templates/projects/archive.html:82
#: app/templates/projects/create.html:92 app/templates/projects/create.html:419
#: app/templates/projects/edit.html:83 app/templates/projects/edit_good.html:68
#: app/templates/quotes/accept.html:54 app/templates/quotes/create.html:199
#: app/templates/quotes/edit.html:213 app/templates/quotes/view.html:285
#: app/templates/quotes/view.html:366 app/templates/quotes/view.html:458
#: app/templates/quotes/view.html:514 app/templates/quotes/view.html:532
#: app/templates/quotes/view.html:544
#: app/templates/settings/keyboard_shortcuts.html:465
#: app/templates/tasks/create.html:116 app/templates/tasks/edit.html:140
#: app/templates/tasks/list.html:308 app/templates/tasks/list.html:510
#: app/templates/user/settings.html:301 app/templates/weekly_goals/create.html:104
#: app/templates/weekly_goals/edit.html:90
msgid "Cancel"
msgstr "Annuler"

#: app/templates/base.html:164
msgid "Confirm"
msgstr "Confirmer"

#: app/templates/base.html:165 app/templates/calendar/view.html:112
#: app/templates/invoices/list.html:308 app/templates/invoices/view.html:254
#: app/templates/kanban/columns.html:143 app/templates/main/dashboard.html:286
#: app/templates/projects/create.html:379 app/templates/quotes/view.html:428
#: app/templates/tasks/_kanban.html:1363
msgid "Close"
msgstr "Fermer"

#: app/templates/admin/webhooks/form.html:125 app/templates/base.html:166
#: app/templates/comments/_comment.html:58
#: app/templates/inventory/stock_items/form.html:137
#: app/templates/inventory/suppliers/form.html:88
#: app/templates/inventory/warehouses/form.html:63
msgid "Save"
msgstr "Sauvegarder"

#: app/templates/admin/api_tokens.html:461
#: app/templates/admin/email_templates/list.html:83
#: app/templates/admin/roles/list.html:147 app/templates/admin/roles/list.html:212
#: app/templates/admin/users.html:79 app/templates/admin/users.html:119
#: app/templates/base.html:167 app/templates/calendar/event_detail.html:26
#: app/templates/calendar/event_detail.html:193
#: app/templates/calendar/view.html:118 app/templates/clients/view.html:274
#: app/templates/clients/view.html:341 app/templates/comments/_comment.html:35
#: app/templates/expenses/view.html:398 app/templates/kanban/columns.html:103
#: app/templates/per_diem/rates_list.html:80
#: app/templates/per_diem/rates_list.html:112 app/templates/projects/goods.html:81
#: app/templates/quotes/list.html:109 app/templates/quotes/list.html:295
#: app/templates/quotes/view.html:312 app/templates/quotes/view.html:337
#: app/templates/quotes/view.html:547 app/templates/saved_filters/list.html:51
#: app/templates/tasks/list.html:509
#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
#: app/templates/weekly_goals/edit.html:93 app/templates/weekly_goals/edit.html:95
msgid "Delete"
msgstr "Supprimer"

#: app/templates/admin/roles/list.html:144 app/templates/admin/users.html:76
#: app/templates/admin/webhooks/view.html:18 app/templates/base.html:168
#: app/templates/calendar/event_detail.html:22
#: app/templates/calendar/view.html:115 app/templates/clients/view.html:266
#: app/templates/comments/_comment.html:30 app/templates/contacts/list.html:59
#: app/templates/kanban/columns.html:93 app/templates/per_diem/rates_list.html:70
#: app/templates/quotes/view.html:309 app/templates/quotes/view.html:334
#: app/templates/recurring_invoices/view.html:16
#: app/templates/tasks/overdue.html:96 app/templates/weekly_goals/index.html:196
#: app/templates/weekly_goals/view.html:21
msgid "Edit"
msgstr "Modifier"

#: app/templates/base.html:169
msgid "Add"
msgstr "Ajouter"

#: app/templates/admin/settings.html:299 app/templates/base.html:170
#: app/templates/inventory/purchase_orders/form.html:153
#: app/templates/inventory/stock_items/form.html:120
#: app/templates/inventory/stock_items/form.html:171
msgid "Remove"
msgstr "Retirer"

#: app/templates/admin/email_support.html:176 app/templates/base.html:171
#: app/templates/inventory/stock_items/view.html:113
#: app/templates/kanban/columns.html:79
msgid "Yes"
msgstr "Oui"

#: app/templates/admin/email_support.html:178 app/templates/base.html:172
#: app/templates/inventory/stock_items/view.html:115
#: app/templates/kanban/columns.html:81
msgid "No"
msgstr "Non"

#: app/templates/admin/users.html:104 app/templates/base.html:173
#: app/templates/inventory/stock_levels/warehouse.html:77
msgid "OK"
msgstr "D'ACCORD"

#: app/templates/base.html:176
msgid "Are you sure you want to delete this?"
msgstr "Etes-vous sûr de vouloir supprimer ceci ?"

#: app/templates/base.html:177
msgid "You have unsaved changes. Are you sure you want to leave?"
msgstr ""
"Vous avez des modifications non enregistrées. Êtes-vous sûr de vouloir "
"partir ?"

#: app/templates/base.html:178
msgid "Operation failed"
msgstr "L'opération a échoué"

#: app/templates/base.html:179
msgid "Operation completed successfully"
msgstr "Opération terminée avec succès"

#: app/templates/base.html:180
msgid "No items selected"
msgstr "Aucun élément sélectionné"

#: app/templates/base.html:181
msgid "Invalid input"
msgstr "Entrée invalide"

#: app/templates/base.html:182
msgid "This field is required"
msgstr "Ce champ est obligatoire"

#: app/templates/base.html:183 app/templates/user/profile.html:62
msgid "No active timer"
msgstr "Aucune minuterie active"

#: app/templates/base.html:184
msgid "Timer stopped"
msgstr "Minuterie arrêtée"

#: app/templates/base.html:185
msgid "Failed to stop timer"
msgstr "Échec de l'arrêt du chronomètre"

#: app/templates/base.html:186
msgid "Error stopping timer"
msgstr "Erreur lors de l'arrêt du minuteur"

#: app/templates/base.html:187
msgid "No form to save"
msgstr "Aucun formulaire à sauvegarder"

#: app/templates/base.html:188
msgid "No timer found"
msgstr "Aucune minuterie trouvée"

#: app/templates/base.html:189
msgid "Timer stopped due to inactivity"
msgstr "Minuterie arrêtée pour cause d'inactivité"

#: app/templates/base.html:201
msgid "Skip to content"
msgstr "Passer au contenu"

#: app/templates/base.html:220
msgid "Navigation"
msgstr "Navigation"

#: app/templates/base.html:221
msgid "Toggle sidebar"
msgstr "Basculer la barre latérale"

#: app/templates/base.html:229 app/templates/base.html:773
#: app/templates/client_portal/base.html:38 app/templates/main/dashboard.html:8
#: app/templates/main/dashboard.html:12 app/templates/projects/view.html:19
msgid "Dashboard"
msgstr "Tableau de bord"

#: app/templates/base.html:235 app/templates/calendar/view.html:12
#: app/templates/calendar/view.html:17
msgid "Calendar"
msgstr "Calendrier"

#: app/templates/base.html:241 app/templates/main/about.html:25
#: app/templates/main/help.html:27 app/templates/main/help.html:101
#: app/templates/main/help.html:255 app/templates/timer/manual_entry.html:6
msgid "Time Tracking"
msgstr "Suivi du temps"

#: app/templates/base.html:255 app/templates/timer/manual_entry.html:7
#: app/templates/timer/manual_entry.html:99
msgid "Log Time"
msgstr "Heure de journalisation"

#: app/templates/admin/oidc_user_detail.html:61
#: app/templates/analytics/mobile_dashboard.html:49 app/templates/base.html:260
#: app/templates/base.html:777 app/templates/client_portal/base.html:41
#: app/templates/client_portal/dashboard.html:65
#: app/templates/client_portal/projects.html:4
#: app/templates/client_portal/projects.html:9
#: app/templates/client_portal/projects.html:14
#: app/templates/components/activity_feed_widget.html:23
msgid "Projects"
msgstr "Projets"

#: app/templates/base.html:265 app/templates/calendar/view.html:77
#: app/templates/components/activity_feed_widget.html:27
msgid "Tasks"
msgstr "Tâches"

#: app/templates/base.html:270 app/templates/kanban/board.html:8
#: app/templates/kanban/board.html:32 app/templates/main/help.html:31
#: app/templates/main/help.html:335 app/templates/tasks/_kanban.html:9
msgid "Kanban Board"
msgstr "Tableau Kanban"

#: app/templates/base.html:275 app/templates/weekly_goals/index.html:8
msgid "Weekly Goals"
msgstr "Objectifs hebdomadaires"

#: app/templates/base.html:283
msgid "CRM"
msgstr "GRC"

#: app/templates/base.html:291
#: app/templates/components/activity_feed_widget.html:43
msgid "Clients"
msgstr "Clientèle"

#: app/templates/base.html:296 app/templates/client_portal/quote_detail.html:9
#: app/templates/client_portal/quotes.html:4
#: app/templates/client_portal/quotes.html:9
#: app/templates/client_portal/quotes.html:14
msgid "Quotes"
msgstr "Citations"

#: app/templates/base.html:304
msgid "Finance & Expenses"
msgstr "Finances et dépenses"

#: app/templates/base.html:318 app/templates/base.html:428
#: app/templates/base.html:784 app/templates/budget/dashboard.html:17
msgid "Reports"
msgstr "Rapports"

#: app/templates/base.html:323 app/templates/client_portal/base.html:44
#: app/templates/client_portal/invoice_detail.html:9
#: app/templates/client_portal/invoices.html:4
#: app/templates/client_portal/invoices.html:9
#: app/templates/client_portal/invoices.html:14
#: app/templates/components/activity_feed_widget.html:39
msgid "Invoices"
msgstr "Factures"

#: app/templates/base.html:328 app/templates/recurring_invoices/list.html:6
#: app/templates/recurring_invoices/list.html:11
msgid "Recurring Invoices"
msgstr "Factures récurrentes"

#: app/templates/base.html:333
msgid "Payments"
msgstr "Paiements"

#: app/templates/base.html:338 app/templates/invoices/edit.html:120
#: app/templates/invoices/edit.html:284 app/templates/main/help.html:33
msgid "Expenses"
msgstr "Dépenses"

#: app/templates/base.html:343
msgid "Mileage"
msgstr "Kilométrage"

#: app/templates/base.html:348
msgid "Per Diem"
msgstr "Par jour"

#: app/templates/base.html:353 app/templates/budget/dashboard.html:7
msgid "Budget Alerts"
msgstr "Alertes budgétaires"

#: app/templates/base.html:361
msgid "Inventory"
msgstr "Inventaire"

#: app/templates/base.html:377 app/templates/inventory/suppliers/view.html:174
msgid "Stock Items"
msgstr "Articles en stock"

#: app/templates/base.html:382
msgid "Warehouses"
msgstr "Entrepôts"

#: app/templates/base.html:387 app/templates/inventory/stock_items/form.html:98
#: app/templates/inventory/stock_items/view.html:60
msgid "Suppliers"
msgstr "Fournisseurs"

#: app/templates/base.html:393
msgid "Purchase Orders"
msgstr "Bons de commande"

#: app/templates/base.html:398 app/templates/inventory/warehouses/view.html:79
msgid "Stock Levels"
msgstr "Niveaux de stocks"

#: app/templates/base.html:403
msgid "Stock Movements"
msgstr "Mouvements de stocks"

#: app/templates/base.html:408
msgid "Transfers"
msgstr "Transferts"

#: app/templates/base.html:413
msgid "Adjustments"
msgstr "Ajustements"

#: app/templates/base.html:418
msgid "Reservations"
msgstr "Réservations"

#: app/templates/base.html:423
msgid "Low Stock Alerts"
msgstr "Alertes de stock faible"

#: app/templates/analytics/dashboard.html:8
#: app/templates/analytics/mobile_dashboard.html:3
#: app/templates/analytics/mobile_dashboard.html:20 app/templates/base.html:436
#: app/templates/main/about.html:34
msgid "Analytics"
msgstr "Analytique"

#: app/templates/base.html:442
msgid "Tools & Data"
msgstr "Outils et données"

#: app/templates/base.html:450
msgid "Import / Export"
msgstr "Importer/Exporter"

#: app/templates/base.html:455
msgid "Saved Filters"
msgstr "Filtres enregistrés"

#: app/templates/admin/oidc_debug.html:8 app/templates/admin/oidc_debug.html:152
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/admin/permissions/list.html:6
#: app/templates/admin/roles/list.html:6 app/templates/admin/webhooks/form.html:6
#: app/templates/admin/webhooks/list.html:6
#: app/templates/admin/webhooks/view.html:6 app/templates/base.html:464
#: app/templates/comments/_comment.html:13 app/templates/user/profile.html:21
msgid "Admin"
msgstr "Administrateur"

#: app/templates/base.html:471
msgid "Admin Dashboard"
msgstr "Tableau de bord d'administration"

#: app/templates/admin/roles/list.html:94 app/templates/base.html:479
#: app/templates/components/activity_feed_widget.html:47
msgid "Users"
msgstr "Utilisateurs"

#: app/templates/admin/permissions/list.html:7
#: app/templates/admin/roles/list.html:7 app/templates/admin/roles/list.html:12
#: app/templates/base.html:486
msgid "Roles & Permissions"
msgstr "Rôles et autorisations"

#: app/templates/audit_logs/list.html:4 app/templates/audit_logs/list.html:8
#: app/templates/audit_logs/list.html:13 app/templates/base.html:495
msgid "Audit Logs"
msgstr "Journaux d'audit"

#: app/templates/base.html:502
msgid "API Tokens"
msgstr "Jetons API"

#: app/templates/base.html:511 app/templates/main/help.html:64
msgid "System Settings"
msgstr "Paramètres système"

#: app/templates/admin/email_support.html:18 app/templates/base.html:516
msgid "Email Configuration"
msgstr "Configuration de la messagerie"

#: app/templates/base.html:521
msgid "Email Templates"
msgstr "Modèles d'e-mails"

#: app/templates/base.html:528
msgid "PDF Templates"
msgstr "Modèles PDF"

#: app/templates/base.html:534
msgid "Invoice PDF"
msgstr "Facture PDF"

#: app/templates/base.html:539
msgid "Quote PDF"
msgstr "Devis PDF"

#: app/templates/base.html:550
msgid "Expense Categories"
msgstr "Catégories de dépenses"

#: app/templates/base.html:555
msgid "Per Diem Rates"
msgstr "Tarifs journaliers"

#: app/templates/base.html:562
msgid "Time Entry Templates"
msgstr "Modèles de saisie du temps"

#: app/templates/base.html:571 app/templates/main/about.html:206
#: app/templates/main/help.html:751 app/templates/main/help.html:765
msgid "System Info"
msgstr "Informations système"

#: app/templates/base.html:578
msgid "Backups"
msgstr "Sauvegardes"

#: app/templates/admin/oidc_debug.html:9 app/templates/base.html:585
msgid "OIDC Settings"
msgstr "Paramètres OIDC"

#: app/templates/base.html:599 app/templates/main/about.html:3
#: app/templates/main/about.html:8 app/templates/main/about.html:12
msgid "About"
msgstr "À propos"

#: app/templates/base.html:605 app/templates/clients/create.html:88
#: app/templates/main/help.html:3 app/templates/main/help.html:8
#: app/templates/main/help.html:12
msgid "Help"
msgstr "Aide"

#: app/templates/base.html:611 app/templates/main/dashboard.html:261
msgid "Buy me a coffee"
msgstr "Achetez-moi un café"

#: app/templates/base.html:639 app/templates/base.html:640
#: app/templates/inventory/stock_items/list.html:21
#: app/templates/inventory/suppliers/list.html:21 app/templates/leads/list.html:22
#: app/templates/main/search.html:3 app/templates/quotes/list.html:74
#: app/templates/tasks/my_tasks.html:115
msgid "Search"
msgstr "Recherche"

#: app/templates/base.html:655
msgid "Support TimeTracker development"
msgstr "Prise en charge du développement de TimeTracker"

#: app/templates/base.html:657 app/templates/base.html:752
msgid "Support"
msgstr "Soutien"

#: app/templates/base.html:660
msgid "Toggle dark mode"
msgstr "Activer le mode sombre"

#: app/templates/base.html:667
msgid "Change language"
msgstr "Changer de langue"

#: app/templates/base.html:672 app/templates/user/settings.html:128
msgid "Language"
msgstr "Langue"

#: app/templates/base.html:688
msgid "User menu"
msgstr "Menu utilisateur"

#: app/templates/base.html:705 app/templates/base.html:711
msgid "Guest"
msgstr "Invité"

#: app/templates/base.html:714
msgid "My Profile"
msgstr "Mon profil"

#: app/templates/base.html:715
msgid "My Settings"
msgstr "Mes paramètres"

#: app/templates/base.html:716 app/templates/client_portal/base.html:50
msgid "Logout"
msgstr "Déconnexion"

#: app/templates/base.html:740
msgid "Enjoying TimeTracker?"
msgstr "Vous appréciez TimeTracker ?"

#: app/templates/base.html:743
msgid "Support continued development with a coffee"
msgstr "Soutenir le développement continu avec un café"

#: app/templates/base.html:756
msgid "Dismiss"
msgstr "Rejeter"

#: app/templates/base.html:788 app/templates/user/profile.html:2
msgid "Profile"
msgstr "Profil"

#: app/templates/base.html:998
msgid "Type a command or search..."
msgstr "Tapez une commande ou recherchez..."

#: app/templates/admin/api_tokens.html:129
msgid "Create API Token"
msgstr "Créer un jeton API"

#: app/templates/admin/api_tokens.html:324
msgid "Your API Token"
msgstr "Votre jeton API"

#: app/templates/admin/api_tokens.html:336
msgid "Usage Examples"
msgstr "Exemples d'utilisation"

#: app/templates/admin/api_tokens.html:425
msgid "Are you sure you want to"
msgstr "Etes-vous sûr de vouloir"

#: app/templates/admin/api_tokens.html:425
msgid "deactivate"
msgstr "désactiver"

#: app/templates/admin/api_tokens.html:425
msgid "activate"
msgstr "activer"

#: app/templates/admin/api_tokens.html:425
msgid "this token?"
msgstr "ce jeton ?"

#: app/templates/admin/api_tokens.html:427
msgid "Deactivate Token"
msgstr "Désactiver le jeton"

#: app/templates/admin/api_tokens.html:427
msgid "Activate Token"
msgstr "Activer le jeton"

#: app/templates/admin/api_tokens.html:428 app/templates/kanban/columns.html:98
msgid "Deactivate"
msgstr "Désactiver"

#: app/templates/admin/api_tokens.html:428 app/templates/clients/view.html:20
#: app/templates/clients/view.html:22 app/templates/kanban/columns.html:98
#: app/templates/projects/view.html:37 app/templates/projects/view.html:39
msgid "Activate"
msgstr "Activer"

#: app/templates/admin/api_tokens.html:458
msgid "Are you sure you want to delete this token? This action cannot be undone."
msgstr ""
"Êtes-vous sûr de vouloir supprimer ce jeton ? Cette action ne peut pas être "
"annulée."

#: app/templates/admin/api_tokens.html:460
msgid "Delete Token"
msgstr "Supprimer le jeton"

#: app/templates/admin/backups.html:28 app/templates/import_export/index.html:136
#: app/templates/import_export/index.html:140
msgid "Create Backup"
msgstr "Créer une sauvegarde"

#: app/templates/admin/backups.html:47 app/templates/admin/restore.html:11
#: app/templates/import_export/index.html:77
msgid "Restore Backup"
msgstr "Restaurer la sauvegarde"

#: app/templates/admin/backups.html:61
msgid "Existing Backups"
msgstr "Sauvegardes existantes"

#: app/templates/admin/backups.html:124
msgid "Important Information"
msgstr "Informations importantes"

#: app/templates/admin/backups.html:178
msgid "Confirm Deletion"
msgstr "Confirmer la suppression"

#: app/templates/admin/clear_cache.html:6
msgid "Clear Cache"
msgstr "Vider le cache"

#: app/templates/admin/clear_cache.html:15
msgid "ServiceWorker Status"
msgstr "Statut du ServiceWorker"

#: app/templates/admin/clear_cache.html:23
msgid "Clear All Caches"
msgstr "Effacer tous les caches"

#: app/templates/admin/clear_cache.html:35
msgid "ServiceWorker Actions"
msgstr "Actions du ServiceWorker"

#: app/templates/admin/clear_cache.html:49
msgid "Manual Hard Refresh"
msgstr "Actualisation matérielle manuelle"

#: app/templates/admin/dashboard.html:26
msgid "Admin Sections"
msgstr "Sections d'administration"

#: app/templates/admin/dashboard.html:68
#: app/templates/components/activity_feed_widget.html:6
#: app/templates/main/dashboard.html:214 app/templates/projects/dashboard.html:237
#: app/templates/user/profile.html:131
msgid "Recent Activity"
msgstr "Activité récente"

#: app/templates/admin/email_support.html:6
msgid "Email Configuration & Testing"
msgstr "Configuration et tests de messagerie"

#: app/templates/admin/email_support.html:7
msgid "Configure and test email delivery"
msgstr "Configurer et tester la livraison des e-mails"

#: app/templates/admin/email_support.html:11
msgid "Back to Admin"
msgstr "Retour à l'administrateur"

#: app/templates/admin/email_support.html:23
msgid "Configure email settings here to save them in the database."
msgstr ""
"Configurez ici les paramètres de messagerie pour les enregistrer dans la "
"base de données."

#: app/templates/admin/email_support.html:31
msgid "Enable Database Email Configuration"
msgstr "Activer la configuration de la messagerie de la base de données"

#: app/templates/admin/email_support.html:37
#: app/templates/admin/email_support.html:161
msgid "Mail Server"
msgstr "Serveur de messagerie"

#: app/templates/admin/email_support.html:43
msgid "Mail Port"
msgstr "Port de messagerie"

#: app/templates/admin/email_support.html:51
#: app/templates/admin/email_support.html:183
msgid "Use TLS"
msgstr "Utiliser TLS"

#: app/templates/admin/email_support.html:55
#: app/templates/admin/email_support.html:187
msgid "Use SSL"
msgstr "Utiliser SSL"

#: app/templates/admin/email_support.html:61
#: app/templates/admin/email_support.html:169
#: app/templates/admin/oidc_debug.html:134
#: app/templates/admin/oidc_user_detail.html:23 app/templates/auth/login.html:32
#: app/templates/client_portal/login.html:38
#: app/templates/client_portal/set_password.html:38
#: app/templates/user/settings.html:23
msgid "Username"
msgstr "Nom d'utilisateur"

#: app/templates/admin/email_support.html:68
#: app/templates/client_portal/login.html:44
#: app/templates/client_portal/set_password.html:46
msgid "Password"
msgstr "Mot de passe"

#: app/templates/admin/email_support.html:71
msgid "Leave empty to keep current"
msgstr "Laisser vide pour rester à jour"

#: app/templates/admin/email_support.html:76
#: app/templates/admin/email_support.html:191
msgid "Default Sender"
msgstr "Expéditeur par défaut"

#: app/templates/admin/email_support.html:84
#: app/templates/admin/email_support.html:363
msgid "Save Configuration"
msgstr "Enregistrer la configuration"

#: app/templates/admin/email_support.html:87
#: app/templates/admin/quote_pdf_layout.html:687
#: app/templates/admin/quote_pdf_layout.html:3323
#: app/templates/settings/keyboard_shortcuts.html:464
msgid "Reset"
msgstr "Réinitialiser"

#: app/templates/admin/email_support.html:99
msgid "Email Configuration Status"
msgstr "État de la configuration de la messagerie"

#: app/templates/admin/email_support.html:101
#: app/templates/analytics/dashboard.html:20
#: app/templates/analytics/dashboard_improved.html:22
#: app/templates/budget/dashboard.html:18
msgid "Refresh"
msgstr "Rafraîchir"

#: app/templates/admin/email_support.html:111
msgid "Email is configured!"
msgstr "L'e-mail est configuré !"

#: app/templates/admin/email_support.html:112
msgid "Your email settings are properly set up."
msgstr "Vos paramètres de messagerie sont correctement configurés."

#: app/templates/admin/email_support.html:121
msgid "Email is not configured"
msgstr "L'e-mail n'est pas configuré"

#: app/templates/admin/email_support.html:122
msgid "Please configure email settings using the form above."
msgstr ""
"Veuillez configurer les paramètres de messagerie en utilisant le formulaire "
"ci-dessus."

#: app/templates/admin/email_support.html:132
msgid "Configuration Errors"
msgstr "Erreurs de configuration"

#: app/templates/admin/email_support.html:146
msgid "Configuration Warnings"
msgstr "Avertissements de configuration"

#: app/templates/admin/email_support.html:158
msgid "Current Email Settings"
msgstr "Paramètres de messagerie actuels"

#: app/templates/admin/email_support.html:165
msgid "Port"
msgstr "Port"

#: app/templates/admin/email_support.html:173
msgid "Password Set"
msgstr "Mot de passe défini"

#: app/templates/admin/email_support.html:201
#: app/templates/admin/email_support.html:218
#: app/templates/admin/email_support.html:462
msgid "Send Test Email"
msgstr "Envoyer un e-mail de test"

#: app/templates/admin/email_support.html:206
msgid "Recipient Email Address"
msgstr "Adresse e-mail du destinataire"

#: app/templates/admin/email_support.html:228
msgid "Configuration Guide"
msgstr "Guide de configuration"

#: app/templates/admin/email_support.html:231
msgid "Common SMTP Providers"
msgstr "Fournisseurs SMTP courants"

#: app/templates/admin/email_support.html:233
msgid "Requires app password"
msgstr "Nécessite le mot de passe de l'application"

#: app/templates/admin/email_support.html:242
msgid "Important Notes"
msgstr "Remarques importantes"

#: app/templates/admin/email_support.html:245
msgid "Gmail requires an App Password if 2FA is enabled"
msgstr "Gmail nécessite un mot de passe d'application si 2FA est activé"

#: app/templates/admin/email_support.html:246
msgid "Restart the application after changing email settings"
msgstr "Redémarrez l'application après avoir modifié les paramètres de messagerie"

#: app/templates/admin/email_support.html:247
msgid "Check firewall rules if emails are not sending"
msgstr "Vérifiez les règles de pare-feu si les e-mails ne sont pas envoyés"

#: app/templates/admin/email_support.html:248
msgid "For production, use a dedicated email service like SendGrid or Amazon SES"
msgstr ""
"Pour la production, utilisez un service de messagerie dédié comme SendGrid "
"ou Amazon SES"

#: app/templates/admin/email_support.html:295
msgid "password is set"
msgstr "le mot de passe est défini"

#: app/templates/admin/email_support.html:298
msgid "no password set"
msgstr "aucun mot de passe défini"

#: app/templates/admin/email_support.html:359
msgid "Failed to save configuration. Please try again."
msgstr "Échec de l'enregistrement de la configuration. Veuillez réessayer."

#: app/templates/admin/email_support.html:377
#: app/templates/admin/email_support.html:476
msgid "Success!"
msgstr "Succès!"

#: app/templates/admin/email_support.html:415
msgid "Failed to refresh status. Please try again."
msgstr "Échec de l'actualisation de l'état. Veuillez réessayer."

#: app/templates/admin/email_support.html:430
msgid "Please enter a valid email address"
msgstr "S'il vous plaît, mettez une adresse email valide"

#: app/templates/admin/email_support.html:436
msgid "Sending..."
msgstr "Envoi..."

#: app/templates/admin/email_support.html:458
msgid "Failed to send test email. Please check your configuration."
msgstr "Échec de l'envoi de l'e-mail de test. Veuillez vérifier votre configuration."

#: app/templates/admin/oidc_debug.html:4 app/templates/admin/oidc_debug.html:14
msgid "OIDC Debug Dashboard"
msgstr "Tableau de bord de débogage OIDC"

#: app/templates/admin/oidc_debug.html:15
msgid "Inspect configuration, provider metadata and OIDC users"
msgstr ""
"Inspecter la configuration, les métadonnées du fournisseur et les "
"utilisateurs OIDC"

#: app/templates/admin/oidc_debug.html:17
msgid "Test Configuration"
msgstr "Configuration des tests"

#: app/templates/admin/oidc_debug.html:25
msgid "OIDC Configuration"
msgstr "Configuration OIDC"

#: app/templates/admin/oidc_debug.html:29
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/quote_pdf_layout.html:800
#: app/templates/admin/webhooks/list.html:27
#: app/templates/admin/webhooks/view.html:32
#: app/templates/admin/webhooks/view.html:102
#: app/templates/budget/dashboard.html:121
#: app/templates/budget/project_detail.html:70
#: app/templates/client_portal/invoice_detail.html:36
#: app/templates/client_portal/invoices.html:51
#: app/templates/client_portal/quote_detail.html:39
#: app/templates/client_portal/quotes.html:30
#: app/templates/contacts/communication_form.html:57
#: app/templates/deals/list.html:22
#: app/templates/inventory/purchase_orders/list.html:21
#: app/templates/inventory/purchase_orders/list.html:54
#: app/templates/inventory/purchase_orders/view.html:34
#: app/templates/inventory/reports/turnover.html:49
#: app/templates/inventory/reservations/list.html:20
#: app/templates/inventory/reservations/list.html:44
#: app/templates/inventory/stock_items/list.html:55
#: app/templates/inventory/stock_items/view.html:100
#: app/templates/inventory/stock_levels/warehouse.html:52
#: app/templates/inventory/suppliers/list.html:25
#: app/templates/inventory/suppliers/list.html:46
#: app/templates/inventory/suppliers/view.html:30
#: app/templates/inventory/warehouses/list.html:26
#: app/templates/inventory/warehouses/view.html:30
#: app/templates/invoices/edit.html:255 app/templates/invoices/pdf_default.html:42
#: app/templates/kanban/columns.html:52 app/templates/leads/form.html:60
#: app/templates/leads/list.html:26 app/templates/leads/list.html:53
#: app/templates/main/help.html:187
#: app/templates/projects/_kanban_tailwind.html:27
#: app/templates/projects/goods.html:44 app/templates/projects/view.html:175
#: app/templates/projects/view.html:232 app/templates/quotes/list.html:78
#: app/templates/quotes/list.html:131 app/templates/quotes/pdf_default.html:44
#: app/templates/quotes/view.html:58 app/templates/recurring_invoices/list.html:28
#: app/templates/tasks/_kanban.html:1227 app/templates/tasks/edit.html:92
#: app/templates/tasks/my_tasks.html:123 app/templates/weekly_goals/edit.html:61
#: app/templates/weekly_goals/view.html:50 app/utils/pdf_generator.py:620
msgid "Status"
msgstr "Statut"

#: app/templates/admin/oidc_debug.html:32
msgid "Enabled"
msgstr "Activé"

#: app/templates/admin/oidc_debug.html:34
msgid "Disabled"
msgstr "Désactivé"

#: app/templates/admin/oidc_debug.html:39
msgid "Auth Method"
msgstr "Méthode d'authentification"

#: app/templates/admin/oidc_debug.html:43
msgid "Issuer"
msgstr "Émetteur"

#: app/templates/admin/oidc_debug.html:44 app/templates/admin/oidc_debug.html:48
#: app/templates/admin/oidc_debug.html:73 app/templates/admin/oidc_debug.html:74
msgid "Not configured"
msgstr "Non configuré"

#: app/templates/admin/oidc_debug.html:47
msgid "Client ID"
msgstr "Identifiant client"

#: app/templates/admin/oidc_debug.html:51
msgid "Client Secret"
msgstr "Secret client"

#: app/templates/admin/oidc_debug.html:52
msgid "Set"
msgstr "Ensemble"

#: app/templates/admin/oidc_debug.html:52
#: app/templates/admin/oidc_user_detail.html:39
#: app/templates/admin/oidc_user_detail.html:40
msgid "Not set"
msgstr "Non défini"

#: app/templates/admin/oidc_debug.html:55
msgid "Redirect URI"
msgstr "URI de redirection"

#: app/templates/admin/oidc_debug.html:56 app/templates/admin/oidc_debug.html:75
msgid "Auto-generated"
msgstr "Généré automatiquement"

#: app/templates/admin/oidc_debug.html:59 app/templates/admin/oidc_debug.html:109
msgid "Scopes"
msgstr "Portées"

#: app/templates/admin/oidc_debug.html:67
msgid "Claim Mapping"
msgstr "Cartographie des revendications"

#: app/templates/admin/oidc_debug.html:69
msgid "Username Claim"
msgstr "Réclamation de nom d'utilisateur"

#: app/templates/admin/oidc_debug.html:70
msgid "Email Claim"
msgstr "Réclamation par courrier électronique"

#: app/templates/admin/oidc_debug.html:71
msgid "Full Name Claim"
msgstr "Réclamation du nom complet"

#: app/templates/admin/oidc_debug.html:72
msgid "Groups Claim"
msgstr "Réclamation de groupes"

#: app/templates/admin/oidc_debug.html:73
msgid "Admin Group"
msgstr "Groupe d'administrateurs"

#: app/templates/admin/oidc_debug.html:74
msgid "Admin Emails"
msgstr "E-mails de l'administrateur"

#: app/templates/admin/oidc_debug.html:75
msgid "Post-Logout URI"
msgstr "URI après déconnexion"

#: app/templates/admin/oidc_debug.html:83
msgid "Provider Metadata"
msgstr "Métadonnées du fournisseur"

#: app/templates/admin/oidc_debug.html:86
msgid "Error loading metadata:"
msgstr "Erreur lors du chargement des métadonnées :"

#: app/templates/admin/oidc_debug.html:89 app/templates/admin/oidc_debug.html:118
msgid "Discovery endpoint:"
msgstr "Point de terminaison de découverte :"

#: app/templates/admin/oidc_debug.html:93
msgid "Successfully loaded provider metadata"
msgstr "Métadonnées du fournisseur chargées avec succès"

#: app/templates/admin/oidc_debug.html:97
msgid "Endpoints"
msgstr "Points de terminaison"

#: app/templates/admin/oidc_debug.html:99
msgid "Authorization"
msgstr "Autorisation"

#: app/templates/admin/oidc_debug.html:100
msgid "Token"
msgstr "Jeton"

#: app/templates/admin/oidc_debug.html:101
msgid "UserInfo"
msgstr "Informations utilisateur"

#: app/templates/admin/oidc_debug.html:102
msgid "End Session"
msgstr "Fin de session"

#: app/templates/admin/oidc_debug.html:103
msgid "JWKS URI"
msgstr "URI JWKS"

#: app/templates/admin/oidc_debug.html:107
msgid "Supported Features"
msgstr "Fonctionnalités prises en charge"

#: app/templates/admin/oidc_debug.html:110
msgid "Response Types"
msgstr "Types de réponses"

#: app/templates/admin/oidc_debug.html:111
msgid "Grant Types"
msgstr "Types de subventions"

#: app/templates/admin/oidc_debug.html:112
msgid "Auth Methods"
msgstr "Méthodes d'authentification"

#: app/templates/admin/oidc_debug.html:113
msgid "Claims"
msgstr "Réclamations"

#: app/templates/admin/oidc_debug.html:121
msgid "Provider metadata not loaded. Click \"Test Configuration\" to fetch."
msgstr ""
"Les métadonnées du fournisseur ne sont pas chargées. Cliquez sur \"Test de "
"configuration\" pour récupérer."

#: app/templates/admin/oidc_debug.html:128
msgid "OIDC Users"
msgstr "Utilisateurs OIDC"

#: app/templates/admin/oidc_debug.html:135
#: app/templates/admin/oidc_user_detail.html:24
#: app/templates/admin/quote_pdf_layout.html:768
#: app/templates/clients/create.html:49 app/templates/clients/edit.html:56
#: app/templates/contacts/communication_form.html:30
#: app/templates/contacts/form.html:37 app/templates/contacts/list.html:29
#: app/templates/contacts/view.html:33
#: app/templates/inventory/suppliers/form.html:40
#: app/templates/inventory/suppliers/list.html:44
#: app/templates/inventory/suppliers/view.html:53
#: app/templates/invoices/pdf_default.html:28 app/templates/leads/form.html:40
#: app/templates/leads/list.html:52 app/templates/projects/create.html:404
#: app/templates/quotes/pdf_default.html:28 app/utils/pdf_generator.py:608
msgid "Email"
msgstr "E-mail"

#: app/templates/admin/oidc_debug.html:136
#: app/templates/admin/oidc_user_detail.html:25
#: app/templates/user/settings.html:32
msgid "Full Name"
msgstr "Nom et prénom"

#: app/templates/admin/oidc_debug.html:137
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/contacts/form.html:62 app/templates/contacts/list.html:31
#: app/templates/contacts/view.html:59
msgid "Role"
msgstr "Rôle"

#: app/templates/admin/oidc_debug.html:138
#: app/templates/admin/oidc_user_detail.html:31 app/templates/auth/profile.html:52
msgid "Last Login"
msgstr "Dernière connexion"

#: app/templates/admin/oidc_debug.html:139
msgid "OIDC Subject"
msgstr "Sujet OIDC"

#: app/templates/admin/oidc_debug.html:140
#: app/templates/admin/oidc_user_detail.html:87
#: app/templates/admin/roles/list.html:96
#: app/templates/admin/webhooks/list.html:29 app/templates/audit_logs/list.html:81
#: app/templates/budget/dashboard.html:122
#: app/templates/client_portal/invoices.html:52
#: app/templates/client_portal/quotes.html:31 app/templates/components/ui.html:451
#: app/templates/contacts/list.html:32 app/templates/deals/list.html:56
#: app/templates/inventory/low_stock/list.html:28
#: app/templates/inventory/purchase_orders/list.html:56
#: app/templates/inventory/reports/low_stock.html:36
#: app/templates/inventory/reservations/list.html:47
#: app/templates/inventory/stock_items/list.html:56
#: app/templates/inventory/suppliers/list.html:47
#: app/templates/inventory/warehouses/list.html:27
#: app/templates/kanban/columns.html:55 app/templates/leads/list.html:56
#: app/templates/main/dashboard.html:90 app/templates/main/search.html:39
#: app/templates/projects/goods.html:45 app/templates/projects/view.html:235
#: app/templates/quotes/list.html:133 app/templates/quotes/view.html:172
#: app/templates/recurring_invoices/list.html:29
msgid "Actions"
msgstr "Actes"

#: app/templates/admin/oidc_debug.html:148
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/webhooks/list.html:62
#: app/templates/admin/webhooks/view.html:37 app/templates/clients/view.html:160
#: app/templates/inventory/stock_items/list.html:91
#: app/templates/inventory/stock_items/view.html:105
#: app/templates/inventory/suppliers/list.html:78
#: app/templates/inventory/suppliers/view.html:35
#: app/templates/inventory/warehouses/list.html:51
#: app/templates/inventory/warehouses/view.html:35
#: app/templates/kanban/columns.html:74 app/templates/projects/view.html:88
#: app/utils/i18n_helpers.py:62 app/utils/i18n_helpers.py:72
#: app/utils/i18n_helpers.py:314 app/utils/i18n_helpers.py:323
msgid "Inactive"
msgstr "Inactif"

#: app/templates/admin/oidc_debug.html:152
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/audit_logs/list.html:35 app/templates/audit_logs/list.html:76
#: app/templates/client_portal/dashboard.html:132
#: app/templates/client_portal/time_entries.html:53
#: app/templates/inventory/adjustments/list.html:61
#: app/templates/inventory/movements/list.html:59
#: app/templates/inventory/reports/movement_history.html:74
#: app/templates/inventory/stock_items/history.html:65
#: app/templates/inventory/transfers/list.html:43
#: app/templates/user/profile.html:23
msgid "User"
msgstr "Utilisateur"

#: app/templates/admin/oidc_debug.html:153
#: app/templates/admin/oidc_user_detail.html:31
msgid "Never"
msgstr "Jamais"

#: app/templates/admin/oidc_debug.html:157
#: app/templates/admin/webhooks/view.html:25
#: app/templates/budget/dashboard.html:172 app/templates/projects/view.html:134
msgid "Details"
msgstr "Détails"

#: app/templates/admin/oidc_debug.html:166
msgid "No users have logged in via OIDC yet."
msgstr "Aucun utilisateur ne s'est encore connecté via OIDC."

#: app/templates/admin/oidc_debug.html:172
msgid "Environment Variables Reference"
msgstr "Référence des variables d'environnement"

#: app/templates/admin/oidc_debug.html:173
msgid "Configure OIDC using these environment variables:"
msgstr "Configurez OIDC à l'aide de ces variables d'environnement :"

#: app/templates/admin/oidc_debug.html:178
msgid "Variable"
msgstr "Variable"

#: app/templates/admin/oidc_debug.html:179 app/templates/admin/roles/form.html:40
#: app/templates/admin/roles/list.html:92
#: app/templates/admin/webhooks/form.html:29
#: app/templates/calendar/event_detail.html:66
#: app/templates/calendar/event_form.html:30
#: app/templates/client_portal/dashboard.html:134
#: app/templates/client_portal/invoice_detail.html:57
#: app/templates/client_portal/quote_detail.html:57
#: app/templates/client_portal/quote_detail.html:69
#: app/templates/client_portal/time_entries.html:57
#: app/templates/clients/create.html:34 app/templates/clients/create.html:107
#: app/templates/clients/edit.html:33 app/templates/deals/form.html:97
#: app/templates/inventory/purchase_orders/form.html:78
#: app/templates/inventory/purchase_orders/form.html:147
#: app/templates/inventory/purchase_orders/view.html:91
#: app/templates/inventory/stock_items/form.html:31
#: app/templates/inventory/stock_items/view.html:45
#: app/templates/inventory/suppliers/form.html:32
#: app/templates/inventory/suppliers/view.html:41
#: app/templates/invoices/edit.html:74 app/templates/invoices/edit.html:133
#: app/templates/invoices/edit.html:145 app/templates/invoices/edit.html:193
#: app/templates/invoices/edit.html:205 app/templates/invoices/edit.html:538
#: app/templates/invoices/pdf_default.html:71 app/templates/main/help.html:186
#: app/templates/projects/add_good.html:24 app/templates/projects/create.html:47
#: app/templates/projects/create.html:395 app/templates/projects/edit.html:43
#: app/templates/projects/edit_good.html:24 app/templates/quotes/create.html:45
#: app/templates/quotes/create.html:66 app/templates/quotes/edit.html:46
#: app/templates/quotes/edit.html:67 app/templates/quotes/pdf_default.html:78
#: app/templates/quotes/view.html:51 app/templates/quotes/view.html:92
#: app/templates/tasks/_kanban.html:1253 app/templates/tasks/create.html:34
#: app/templates/tasks/edit.html:55 app/utils/pdf_generator.py:645
#: app/utils/pdf_generator_fallback.py:219 app/utils/pdf_generator_fallback.py:482
msgid "Description"
msgstr "Description"

#: app/templates/admin/oidc_debug.html:180 app/templates/user/settings.html:193
msgid "Example"
msgstr "Exemple"

#: app/templates/admin/oidc_debug.html:184
msgid "Authentication method"
msgstr "Méthode d'authentification"

#: app/templates/admin/oidc_debug.html:185
msgid "OIDC provider issuer URL"
msgstr "URL de l'émetteur du fournisseur OIDC"

#: app/templates/admin/oidc_debug.html:186
msgid "Client ID from OIDC provider"
msgstr "ID client du fournisseur OIDC"

#: app/templates/admin/oidc_debug.html:187
msgid "Client secret from OIDC provider"
msgstr "Secret client du fournisseur OIDC"

#: app/templates/admin/oidc_debug.html:188
msgid "Callback URL (optional, auto-generated)"
msgstr "URL de rappel (facultatif, généré automatiquement)"

#: app/templates/admin/oidc_debug.html:189
msgid "Requested scopes"
msgstr "Périmètres demandés"

#: app/templates/admin/oidc_debug.html:190
msgid "Claim containing username"
msgstr "Revendication contenant le nom d'utilisateur"

#: app/templates/admin/oidc_debug.html:191
msgid "Claim containing email"
msgstr "Réclamation contenant un e-mail"

#: app/templates/admin/oidc_debug.html:192
msgid "Claim containing full name"
msgstr "Revendication contenant le nom complet"

#: app/templates/admin/oidc_debug.html:193
msgid "Claim containing groups"
msgstr "Revendication contenant des groupes"

#: app/templates/admin/oidc_debug.html:194
msgid "Group name for admin role (optional)"
msgstr "Nom du groupe pour le rôle d'administrateur (facultatif)"

#: app/templates/admin/oidc_debug.html:195
msgid "Comma-separated admin emails (optional)"
msgstr "E-mails d'administration séparés par des virgules (facultatif)"

#: app/templates/admin/oidc_user_detail.html:3
#: app/templates/admin/oidc_user_detail.html:8
msgid "OIDC User Details"
msgstr "Détails de l'utilisateur OIDC"

#: app/templates/admin/oidc_user_detail.html:9
msgid "Profile and OIDC identity for this user"
msgstr "Profil et identité OIDC pour cet utilisateur"

#: app/templates/admin/oidc_user_detail.html:13
msgid "Back to OIDC Debug"
msgstr "Retour au débogage OIDC"

#: app/templates/admin/oidc_user_detail.html:21
msgid "User Profile"
msgstr "Profil utilisateur"

#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/oidc_user_detail.html:71
#: app/templates/admin/webhooks/form.html:106
#: app/templates/admin/webhooks/list.html:60
#: app/templates/admin/webhooks/view.html:35 app/templates/clients/view.html:159
#: app/templates/inventory/stock_items/form.html:87
#: app/templates/inventory/stock_items/list.html:89
#: app/templates/inventory/stock_items/view.html:103
#: app/templates/inventory/suppliers/form.html:79
#: app/templates/inventory/suppliers/list.html:76
#: app/templates/inventory/suppliers/view.html:33
#: app/templates/inventory/warehouses/form.html:54
#: app/templates/inventory/warehouses/list.html:49
#: app/templates/inventory/warehouses/view.html:33
#: app/templates/kanban/columns.html:72 app/templates/kanban/edit_column.html:80
#: app/templates/projects/view.html:87 app/templates/tasks/_kanban.html:98
#: app/templates/weekly_goals/edit.html:66
#: app/templates/weekly_goals/index.html:176
#: app/templates/weekly_goals/view.html:64 app/utils/i18n_helpers.py:61
#: app/utils/i18n_helpers.py:71 app/utils/i18n_helpers.py:261
#: app/utils/i18n_helpers.py:272 app/utils/i18n_helpers.py:313
#: app/utils/i18n_helpers.py:322
msgid "Active"
msgstr "Actif"

#: app/templates/admin/oidc_user_detail.html:28
msgid "Preferred Language"
msgstr "Langue préférée"

#: app/templates/admin/oidc_user_detail.html:29
#: app/templates/user/settings.html:116
msgid "Theme"
msgstr "Thème"

#: app/templates/admin/oidc_user_detail.html:30
msgid "Created At"
msgstr "Créé à"

#: app/templates/admin/oidc_user_detail.html:30
msgid "Unknown"
msgstr "Inconnu"

#: app/templates/admin/oidc_user_detail.html:37
msgid "OIDC Information"
msgstr "Informations OIDC"

#: app/templates/admin/oidc_user_detail.html:39
msgid "OIDC Issuer"
msgstr "Émetteur OIDC"

#: app/templates/admin/oidc_user_detail.html:40
msgid "OIDC Subject (sub)"
msgstr "Sujet OIDC (sous)"

#: app/templates/admin/oidc_user_detail.html:41
msgid "Authentication Method"
msgstr "Méthode d'authentification"

#: app/templates/admin/oidc_user_detail.html:41
msgid "Local"
msgstr "Locale"

#: app/templates/admin/oidc_user_detail.html:45
msgid ""
"This user was created or linked via OIDC. The issuer and subject are used to"
" uniquely identify the user across login sessions."
msgstr ""
"Cet utilisateur a été créé ou lié via OIDC. L'émetteur et le sujet sont "
"utilisés pour identifier de manière unique l'utilisateur lors des sessions "
"de connexion."

#: app/templates/admin/oidc_user_detail.html:49
msgid ""
"This user has no OIDC information. They may have been created manually or "
"via self-registration without OIDC."
msgstr ""
"Cet utilisateur ne dispose d'aucune information OIDC. Ils peuvent avoir été "
"créés manuellement ou via une auto-inscription sans OIDC."

#: app/templates/admin/oidc_user_detail.html:57
msgid "Activity Statistics"
msgstr "Statistiques d'activité"

#: app/templates/admin/oidc_user_detail.html:65
#: app/templates/calendar/view.html:81 app/templates/client_portal/base.html:47
#: app/templates/client_portal/projects.html:36
#: app/templates/client_portal/time_entries.html:4
#: app/templates/client_portal/time_entries.html:9
#: app/templates/client_portal/time_entries.html:14
#: app/templates/components/activity_feed_widget.html:31
msgid "Time Entries"
msgstr "Entrées de temps"

#: app/templates/admin/oidc_user_detail.html:73
#: app/templates/invoices/edit.html:86 app/templates/invoices/edit.html:92
#: app/templates/invoices/edit.html:451 app/templates/invoices/edit.html:462
#: app/templates/quotes/create.html:259 app/templates/quotes/create.html:270
#: app/templates/quotes/edit.html:82 app/templates/quotes/edit.html:88
#: app/templates/quotes/edit.html:272 app/templates/quotes/edit.html:283
msgid "None"
msgstr "Aucun"

#: app/templates/admin/oidc_user_detail.html:76 app/templates/user/profile.html:57
msgid "Active Timer"
msgstr "Minuterie active"

#: app/templates/admin/oidc_user_detail.html:80
msgid "Tasks Created"
msgstr "Tâches créées"

#: app/templates/admin/oidc_user_detail.html:89
msgid "Edit User"
msgstr "Modifier l'utilisateur"

#: app/templates/admin/oidc_user_detail.html:90
msgid "View All Users"
msgstr "Afficher tous les utilisateurs"

#: app/templates/admin/quote_pdf_layout.html:3
msgid "PDF Quote Designer"
msgstr "Concepteur de devis PDF"

#: app/templates/admin/quote_pdf_layout.html:643
msgid "Visual Quote Designer"
msgstr "Concepteur de devis visuel"

#: app/templates/admin/quote_pdf_layout.html:646
msgid "Drag and drop elements to design your quote layout"
msgstr "Glissez et déposez des éléments pour concevoir la mise en page de votre devis"

#: app/templates/admin/quote_pdf_layout.html:655
msgid "How to use:"
msgstr "Comment utiliser :"

#: app/templates/admin/quote_pdf_layout.html:656
msgid ""
"Click elements from the left sidebar to add them to the canvas. Click "
"elements to select and customize them in the properties panel. Use the "
"alignment tools and keyboard shortcuts for faster editing."
msgstr ""
"Cliquez sur les éléments dans la barre latérale gauche pour les ajouter au "
"canevas. Cliquez sur les éléments pour les sélectionner et les personnaliser"
" dans le panneau des propriétés. Utilisez les outils d'alignement et les "
"raccourcis clavier pour une édition plus rapide."

#: app/templates/admin/quote_pdf_layout.html:659
msgid "Keyboard Shortcuts:"
msgstr "Raccourcis clavier :"

#: app/templates/admin/quote_pdf_layout.html:669
#: app/templates/admin/quote_pdf_layout.html:2411
msgid "Clear Canvas"
msgstr "Toile transparente"

#: app/templates/admin/quote_pdf_layout.html:672
msgid "Generate Preview"
msgstr "Générer un aperçu"

#: app/templates/admin/quote_pdf_layout.html:675
msgid "Save Design"
msgstr "Enregistrer la conception"

#: app/templates/admin/quote_pdf_layout.html:678
msgid "View Code"
msgstr "Voir le code"

#: app/templates/admin/quote_pdf_layout.html:682
msgid "Snap to Grid (10px)"
msgstr "Aligner sur la grille (10 px)"

#: app/templates/admin/quote_pdf_layout.html:698
msgid "Toolbox"
msgstr "Boîte à outils"

#: app/templates/admin/quote_pdf_layout.html:703
msgid "Search elements & variables..."
msgstr "Rechercher des éléments et des variables..."

#: app/templates/admin/quote_pdf_layout.html:709
msgid "Elements"
msgstr "Éléments"

#: app/templates/admin/quote_pdf_layout.html:712
msgid "Variables"
msgstr "Variables"

#: app/templates/admin/quote_pdf_layout.html:721
msgid "Basic Elements"
msgstr "Éléments de base"

#: app/templates/admin/quote_pdf_layout.html:724
msgid "Custom Text"
msgstr "Texte personnalisé"

#: app/templates/admin/quote_pdf_layout.html:728
msgid "Text"
msgstr "Texte"

#: app/templates/admin/quote_pdf_layout.html:732
msgid "Heading"
msgstr "Titre"

#: app/templates/admin/quote_pdf_layout.html:736
msgid "Line"
msgstr "Doubler"

#: app/templates/admin/quote_pdf_layout.html:740
msgid "Rectangle"
msgstr "Rectangle"

#: app/templates/admin/quote_pdf_layout.html:744
msgid "Circle"
msgstr "Cercle"

#: app/templates/admin/quote_pdf_layout.html:749
msgid "Company Info"
msgstr "Informations sur l'entreprise"

#: app/templates/admin/quote_pdf_layout.html:752
#: app/templates/admin/settings.html:197 app/templates/admin/settings.html:218
#: app/templates/invoices/pdf_default.html:17
#: app/templates/invoices/pdf_default.html:20
#: app/templates/quotes/pdf_default.html:17
#: app/templates/quotes/pdf_default.html:20
msgid "Company Logo"
msgstr "Logo de l'entreprise"

#: app/templates/admin/email_templates/create.html:52
#: app/templates/admin/email_templates/edit.html:50
#: app/templates/admin/quote_pdf_layout.html:756
#: app/templates/admin/settings.html:84 app/templates/leads/form.html:35
msgid "Company Name"
msgstr "Nom de l'entreprise"

#: app/templates/admin/quote_pdf_layout.html:760
msgid "Company Details"
msgstr "Détails de l'entreprise"

#: app/templates/admin/quote_pdf_layout.html:764
#: app/templates/clients/create.html:73 app/templates/clients/edit.html:67
#: app/templates/contacts/form.html:79 app/templates/contacts/view.html:64
#: app/templates/inventory/suppliers/form.html:48
#: app/templates/inventory/suppliers/view.html:69
#: app/templates/inventory/warehouses/form.html:32
#: app/templates/inventory/warehouses/view.html:41
#: app/templates/main/help.html:234 app/templates/projects/create.html:414
msgid "Address"
msgstr "Adresse"

#: app/templates/admin/quote_pdf_layout.html:772
#: app/templates/clients/create.html:69 app/templates/clients/edit.html:63
#: app/templates/contacts/form.html:42 app/templates/contacts/list.html:30
#: app/templates/contacts/view.html:37
#: app/templates/inventory/suppliers/form.html:44
#: app/templates/inventory/suppliers/list.html:45
#: app/templates/inventory/suppliers/view.html:61
#: app/templates/invoices/pdf_default.html:28 app/templates/leads/form.html:45
#: app/templates/projects/create.html:410 app/templates/quotes/pdf_default.html:28
#: app/utils/pdf_generator.py:608
msgid "Phone"
msgstr "Téléphone"

#: app/templates/admin/quote_pdf_layout.html:776
#: app/templates/inventory/suppliers/form.html:52
#: app/templates/inventory/suppliers/view.html:75
#: app/templates/invoices/pdf_default.html:29
#: app/templates/quotes/pdf_default.html:29 app/utils/pdf_generator.py:609
msgid "Website"
msgstr "Site web"

#: app/templates/admin/quote_pdf_layout.html:780
#: app/templates/inventory/suppliers/form.html:56
#: app/templates/inventory/suppliers/view.html:83
#: app/templates/invoices/pdf_default.html:31
#: app/templates/quotes/pdf_default.html:31
msgid "Tax ID"
msgstr "Numéro d'identification fiscale"

#: app/templates/admin/quote_pdf_layout.html:785
msgid "Quote Data"
msgstr "Données de devis"

#: app/templates/admin/quote_pdf_layout.html:788
#: app/templates/client_portal/quotes.html:25 app/templates/quotes/list.html:127
msgid "Quote Number"
msgstr "Numéro de devis"

#: app/templates/admin/quote_pdf_layout.html:792
msgid "Quote Date"
msgstr "Date du devis"

#: app/templates/admin/quote_pdf_layout.html:796
#: app/templates/client_portal/invoice_detail.html:35
#: app/templates/client_portal/invoices.html:49
#: app/templates/invoices/create.html:37 app/templates/invoices/edit.html:34
#: app/templates/invoices/pdf_default.html:41 app/templates/tasks/_kanban.html:132
#: app/templates/tasks/_kanban.html:1271 app/templates/tasks/create.html:91
#: app/templates/tasks/edit.html:115 app/utils/pdf_generator.py:619
msgid "Due Date"
msgstr "Date d'échéance"

#: app/templates/admin/quote_pdf_layout.html:804
msgid "Client Info"
msgstr "Informations client"

#: app/templates/admin/quote_pdf_layout.html:808
#: app/templates/clients/create.html:22 app/templates/clients/create.html:91
#: app/templates/clients/edit.html:22 app/templates/invoices/create.html:29
#: app/templates/invoices/edit.html:26 app/templates/projects/create.html:386
msgid "Client Name"
msgstr "Nom du client"

#: app/templates/admin/quote_pdf_layout.html:812
#: app/templates/invoices/create.html:41 app/templates/invoices/edit.html:42
msgid "Client Address"
msgstr "Adresse du client"

#: app/templates/admin/quote_pdf_layout.html:816
msgid "Quote Items Table"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/quote_pdf_layout.html:820
#: app/templates/client_portal/invoice_detail.html:82
#: app/templates/client_portal/quote_detail.html:94
#: app/templates/inventory/purchase_orders/form.html:93
#: app/templates/inventory/purchase_orders/view.html:122
#: app/templates/invoices/edit.html:292 app/templates/quotes/create.html:80
#: app/templates/quotes/edit.html:107 app/templates/quotes/view.html:110
msgid "Subtotal"
msgstr "Total"

#: app/templates/admin/quote_pdf_layout.html:824
#: app/templates/client_portal/invoice_detail.html:87
#: app/templates/client_portal/quote_detail.html:99
#: app/templates/inventory/purchase_orders/view.html:133
#: app/templates/invoices/edit.html:297 app/templates/quotes/view.html:136
#: app/utils/pdf_generator_fallback.py:521
msgid "Tax"
msgstr "Impôt"

#: app/templates/admin/quote_pdf_layout.html:828
#: app/templates/inventory/purchase_orders/list.html:55
#: app/templates/inventory/purchase_orders/view.html:189
#: app/templates/invoices/pdf_default.html:74 app/templates/payments/list.html:28
#: app/templates/projects/goods.html:21 app/templates/quotes/accept.html:27
#: app/templates/quotes/pdf_default.html:81 app/utils/pdf_generator.py:648
#: app/utils/pdf_generator_fallback.py:219
msgid "Total Amount"
msgstr "Montant total"

#: app/templates/admin/quote_pdf_layout.html:832
#: app/templates/client_portal/invoice_detail.html:107
#: app/templates/contacts/form.html:84 app/templates/contacts/view.html:70
#: app/templates/deals/form.html:102
#: app/templates/inventory/adjustments/form.html:50
#: app/templates/inventory/movements/form.html:61
#: app/templates/inventory/purchase_orders/form.html:55
#: app/templates/inventory/purchase_orders/view.html:75
#: app/templates/inventory/stock_items/form.html:81
#: app/templates/inventory/suppliers/form.html:73
#: app/templates/inventory/suppliers/view.html:99
#: app/templates/inventory/transfers/form.html:54
#: app/templates/inventory/warehouses/form.html:48
#: app/templates/inventory/warehouses/view.html:69
#: app/templates/invoices/create.html:49 app/templates/invoices/edit.html:46
#: app/templates/leads/form.html:88 app/templates/main/dashboard.html:86
#: app/templates/main/search.html:37 app/templates/timer/manual_entry.html:81
#: app/templates/timer/timer_page.html:133
#: app/templates/weekly_goals/create.html:62
#: app/templates/weekly_goals/edit.html:76
#: app/templates/weekly_goals/view.html:151
msgid "Notes"
msgstr "Remarques"

#: app/templates/admin/quote_pdf_layout.html:836
#: app/templates/client_portal/invoice_detail.html:114
#: app/templates/invoices/create.html:53 app/templates/invoices/edit.html:50
msgid "Terms"
msgstr "Termes"

#: app/templates/admin/quote_pdf_layout.html:841
msgid "Payment & Project"
msgstr "Paiement et projet"

#: app/templates/admin/quote_pdf_layout.html:844
msgid "Payment Date"
msgstr "Date de paiement"

#: app/templates/admin/quote_pdf_layout.html:848
msgid "Payment Method"
msgstr "Mode de paiement"

#: app/templates/admin/quote_pdf_layout.html:852
#: app/templates/analytics/dashboard_improved.html:136
msgid "Payment Status"
msgstr "Statut du paiement"

#: app/templates/admin/quote_pdf_layout.html:856
#: app/templates/invoices/edit.html:310
msgid "Amount Paid"
msgstr "Montant payé"

#: app/templates/admin/quote_pdf_layout.html:860
#: app/templates/client_portal/dashboard.html:53
#: app/templates/client_portal/invoice_detail.html:97
#: app/templates/invoices/edit.html:314
msgid "Outstanding"
msgstr "Remarquable"

#: app/templates/admin/quote_pdf_layout.html:864
#: app/templates/projects/create.html:22 app/templates/projects/edit.html:22
#: app/templates/quotes/accept.html:48
msgid "Project Name"
msgstr "Nom du projet"

#: app/templates/admin/quote_pdf_layout.html:868
#: app/templates/invoices/create.html:33 app/templates/invoices/edit.html:30
msgid "Client Email"
msgstr "Courriel du client"

#: app/templates/admin/quote_pdf_layout.html:872
msgid "Client Phone"
msgstr "Téléphone du client"

#: app/templates/admin/quote_pdf_layout.html:877
msgid "Advanced"
msgstr "Avancé"

#: app/templates/admin/quote_pdf_layout.html:880
msgid "QR Code"
msgstr "Code QR"

#: app/templates/admin/quote_pdf_layout.html:884
#: app/templates/inventory/stock_items/form.html:49
#: app/templates/inventory/stock_items/view.html:40
msgid "Barcode"
msgstr "Code à barres"

#: app/templates/admin/quote_pdf_layout.html:888
msgid "Page Number"
msgstr "Numéro de page"

#: app/templates/admin/quote_pdf_layout.html:892
msgid "Current Date"
msgstr "Date actuelle"

#: app/templates/admin/quote_pdf_layout.html:896
msgid "Watermark"
msgstr "Filigrane"

#: app/templates/admin/quote_pdf_layout.html:900
msgid "Bank Info"
msgstr "Informations bancaires"

#: app/templates/admin/quote_pdf_layout.html:904 app/templates/deals/form.html:66
#: app/templates/inventory/purchase_orders/form.html:46
#: app/templates/inventory/stock_items/form.html:53
#: app/templates/inventory/suppliers/form.html:64
#: app/templates/inventory/suppliers/view.html:94
#: app/templates/invoices/edit.html:271 app/templates/leads/form.html:79
#: app/templates/projects/add_good.html:55
#: app/templates/projects/edit_good.html:55 app/templates/quotes/create.html:97
#: app/templates/quotes/edit.html:124
msgid "Currency"
msgstr "Devise"

#: app/templates/admin/quote_pdf_layout.html:912
msgid "Quote Fields"
msgstr "Champs de devis"

#: app/templates/admin/quote_pdf_layout.html:915
msgid "Quote number"
msgstr "Numéro de devis"

#: app/templates/admin/quote_pdf_layout.html:919
msgid "Quote status (draft/sent/paid/overdue)"
msgstr "Statut du devis (projet/envoyé/payé/en retard)"

#: app/templates/admin/quote_pdf_layout.html:923
msgid "Issue date"
msgstr "Date d'émission"

#: app/templates/admin/quote_pdf_layout.html:927
msgid "Due date"
msgstr "Date d'échéance"

#: app/templates/admin/quote_pdf_layout.html:931
msgid "Subtotal amount"
msgstr "Montant du sous-total"

#: app/templates/admin/quote_pdf_layout.html:935
msgid "Tax rate (%)"
msgstr "Taux d'imposition (%)"

#: app/templates/admin/quote_pdf_layout.html:939
msgid "Tax amount"
msgstr "Montant de la taxe"

#: app/templates/admin/quote_pdf_layout.html:943
msgid "Total amount"
msgstr "Montant total"

#: app/templates/admin/quote_pdf_layout.html:947
msgid "Currency code (EUR, USD, etc)"
msgstr "Code de devise (EUR, USD, etc.)"

#: app/templates/admin/quote_pdf_layout.html:951
msgid "Quote notes"
msgstr "Notes de devis"

#: app/templates/admin/quote_pdf_layout.html:955
msgid "Terms & conditions"
msgstr "Conditions générales"

#: app/templates/admin/quote_pdf_layout.html:960
msgid "Client Fields"
msgstr "Champs clients"

#: app/templates/admin/quote_pdf_layout.html:963
msgid "Client company name"
msgstr "Nom de l'entreprise cliente"

#: app/templates/admin/quote_pdf_layout.html:967
msgid "Client email address"
msgstr "Adresse e-mail du client"

#: app/templates/admin/quote_pdf_layout.html:971
msgid "Client full address"
msgstr "Adresse complète du client"

#: app/templates/admin/quote_pdf_layout.html:975
msgid "Client contact person"
msgstr "Personne de contact client"

#: app/templates/admin/quote_pdf_layout.html:979
msgid "Client phone number"
msgstr "Numéro de téléphone du client"

#: app/templates/admin/quote_pdf_layout.html:984
msgid "Payment Fields"
msgstr "Champs de paiement"

#: app/templates/admin/quote_pdf_layout.html:987
msgid "Quote status"
msgstr "Statut du devis"

#: app/templates/admin/quote_pdf_layout.html:991
msgid "Quote accepted date"
msgstr "Date d'acceptation du devis"

#: app/templates/admin/quote_pdf_layout.html:995
msgid "Payment method"
msgstr "Mode de paiement"

#: app/templates/admin/quote_pdf_layout.html:999
msgid "Payment reference number"
msgstr "Numéro de référence du paiement"

#: app/templates/admin/quote_pdf_layout.html:1003
msgid "Amount paid"
msgstr "Montant payé"

#: app/templates/admin/quote_pdf_layout.html:1007
msgid "Outstanding amount"
msgstr "Montant impayé"

#: app/templates/admin/quote_pdf_layout.html:1011
msgid "Payment notes"
msgstr "Notes de paiement"

#: app/templates/admin/quote_pdf_layout.html:1016
msgid "Project Fields"
msgstr "Champs du projet"

#: app/templates/admin/quote_pdf_layout.html:1019
#: app/templates/quotes/accept.html:49
msgid "Project name"
msgstr "Nom du projet"

#: app/templates/admin/quote_pdf_layout.html:1023
msgid "Project code"
msgstr "Code du projet"

#: app/templates/admin/quote_pdf_layout.html:1027
msgid "Project description"
msgstr "Descriptif du projet"

#: app/templates/admin/quote_pdf_layout.html:1031
msgid "Project billing reference"
msgstr "Référence de facturation du projet"

#: app/templates/admin/quote_pdf_layout.html:1036
msgid "Company/Settings Fields"
msgstr "Champs Entreprise/Paramètres"

#: app/templates/admin/quote_pdf_layout.html:1039
msgid "Your company name"
msgstr "Le nom de votre entreprise"

#: app/templates/admin/quote_pdf_layout.html:1043
msgid "Your company address"
msgstr "Adresse de votre entreprise"

#: app/templates/admin/quote_pdf_layout.html:1047
msgid "Your company email"
msgstr "L'e-mail de votre entreprise"

#: app/templates/admin/quote_pdf_layout.html:1051
msgid "Your company phone"
msgstr "Votre téléphone d'entreprise"

#: app/templates/admin/quote_pdf_layout.html:1055
msgid "Your company website"
msgstr "Site Internet de votre entreprise"

#: app/templates/admin/quote_pdf_layout.html:1059
msgid "Your tax ID number"
msgstr "Votre numéro d'identification fiscale"

#: app/templates/admin/quote_pdf_layout.html:1063
msgid "Your bank account info"
msgstr "Informations sur votre compte bancaire"

#: app/templates/admin/quote_pdf_layout.html:1067
msgid "Default invoice terms"
msgstr "Conditions de facturation par défaut"

#: app/templates/admin/quote_pdf_layout.html:1071
msgid "Default invoice notes"
msgstr "Notes de facture par défaut"

#: app/templates/admin/quote_pdf_layout.html:1076
msgid "Date/Time Fields"
msgstr "Champs de date/heure"

#: app/templates/admin/quote_pdf_layout.html:1079
msgid "Current date"
msgstr "Date actuelle"

#: app/templates/admin/quote_pdf_layout.html:1083
msgid "Quote creation date"
msgstr "Date de création du devis"

#: app/templates/admin/quote_pdf_layout.html:1087
msgid "Quote last update date"
msgstr "Date de la dernière mise à jour du devis"

#: app/templates/admin/quote_pdf_layout.html:1092
msgid "Quote Items Loop"
msgstr "Boucle d'articles de devis"

#: app/templates/admin/quote_pdf_layout.html:1095
msgid "Loop through invoice items"
msgstr "Parcourez les éléments de facture"

#: app/templates/admin/quote_pdf_layout.html:1099
#: app/templates/quotes/create.html:278 app/templates/quotes/edit.html:93
#: app/templates/quotes/edit.html:291
msgid "Item description"
msgstr "Description de l'article"

#: app/templates/admin/quote_pdf_layout.html:1103
msgid "Item quantity"
msgstr "Quantité d'article"

#: app/templates/admin/quote_pdf_layout.html:1107
msgid "Item unit price"
msgstr "Prix ​​unitaire de l'article"

#: app/templates/admin/quote_pdf_layout.html:1111
msgid "Item total amount"
msgstr "Montant total de l'article"

#: app/templates/admin/quote_pdf_layout.html:1115
msgid "End loop"
msgstr "Fin de la boucle"

#: app/templates/admin/quote_pdf_layout.html:1127
msgid "Design Canvas"
msgstr "Toile de conception"

#: app/templates/admin/quote_pdf_layout.html:1131
msgid "Page Size:"
msgstr "Taille des pages :"

#: app/templates/admin/quote_pdf_layout.html:1150
msgid "Zoom In"
msgstr "Zoomer"

#: app/templates/admin/quote_pdf_layout.html:1153
msgid "Zoom Out"
msgstr "Zoom arrière"

#: app/templates/admin/quote_pdf_layout.html:1156
msgid "Delete Selected"
msgstr "Supprimer la sélection"

#: app/templates/admin/quote_pdf_layout.html:1169
msgid "Properties"
msgstr "Propriétés"

#: app/templates/admin/quote_pdf_layout.html:1172
msgid "Select an element to edit its properties"
msgstr "Sélectionnez un élément pour modifier ses propriétés"

#: app/templates/admin/quote_pdf_layout.html:1182
msgid "PDF Preview"
msgstr "Aperçu PDF"

#: app/templates/admin/quote_pdf_layout.html:1191
msgid "Generating..."
msgstr "Générateur..."

#: app/templates/admin/quote_pdf_layout.html:1212
msgid "Generated Code"
msgstr "Code généré"

#: app/templates/admin/quote_pdf_layout.html:2409
msgid "Clear all elements?"
msgstr "Effacer tous les éléments ?"

#: app/templates/admin/quote_pdf_layout.html:2412
#: app/templates/audit_logs/list.html:63 app/templates/tasks/my_tasks.html:176
#: app/templates/timer/manual_entry.html:98
msgid "Clear"
msgstr "Clair"

#: app/templates/admin/quote_pdf_layout.html:3013
msgid "Align Left"
msgstr "Aligner à gauche"

#: app/templates/admin/quote_pdf_layout.html:3016
msgid "Center Horizontally"
msgstr "Centrer horizontalement"

#: app/templates/admin/quote_pdf_layout.html:3019
msgid "Align Right"
msgstr "Aligner à droite"

#: app/templates/admin/quote_pdf_layout.html:3022
msgid "Align Top"
msgstr "Aligner en haut"

#: app/templates/admin/quote_pdf_layout.html:3025
msgid "Center Vertically"
msgstr "Centrer verticalement"

#: app/templates/admin/quote_pdf_layout.html:3028
msgid "Align Bottom"
msgstr "Aligner en bas"

#: app/templates/admin/quote_pdf_layout.html:3320
msgid "Reset to defaults?"
msgstr "Réinitialiser aux valeurs par défaut ?"

#: app/templates/admin/quote_pdf_layout.html:3322
msgid "Reset PDF Layout"
msgstr "Réinitialiser la mise en page du PDF"

#: app/templates/admin/settings.html:67 app/templates/main/help.html:558
msgid "User Management"
msgstr "Gestion des utilisateurs"

#: app/templates/admin/settings.html:81
msgid "Company Branding"
msgstr "Image de marque de l’entreprise"

#: app/templates/admin/settings.html:116
msgid "Invoice Defaults"
msgstr "Valeurs par défaut des factures"

#: app/templates/admin/settings.html:139
msgid "Backup Settings"
msgstr "Paramètres de sauvegarde"

#: app/templates/admin/settings.html:154
msgid "Export Settings"
msgstr "Paramètres d'exportation"

#: app/templates/admin/settings.html:169 app/templates/admin/telemetry.html:47
msgid "Privacy & Analytics"
msgstr "Confidentialité et analyses"

#: app/templates/admin/settings.html:190 app/templates/user/settings.html:304
msgid "Save Settings"
msgstr "Enregistrer les paramètres"

#: app/templates/admin/settings.html:235
msgid "Upload New Logo"
msgstr "Télécharger un nouveau logo"

#: app/templates/admin/settings.html:249
msgid "Logo Preview"
msgstr "Aperçu du logo"

#: app/templates/admin/settings.html:296
msgid "Are you sure you want to remove the company logo?"
msgstr "Êtes-vous sûr de vouloir supprimer le logo de l'entreprise ?"

#: app/templates/admin/settings.html:298
msgid "Remove Logo"
msgstr "Supprimer le logo"

#: app/templates/admin/telemetry.html:8
msgid "Telemetry & Analytics Dashboard"
msgstr "Tableau de bord de télémétrie et d'analyse"

#: app/templates/admin/telemetry.html:47
#: app/templates/setup/initial_setup.html:121
msgid "Admin → Settings"
msgstr "Administrateur → Paramètres"

#: app/templates/admin/user_form.html:35 app/templates/admin/user_form.html:58
msgid "Advanced Permissions"
msgstr "Autorisations avancées"

#: app/templates/admin/users.html:34
msgid "Admin Access"
msgstr "Accès administrateur"

#: app/templates/admin/users.html:56
msgid "Migrate to new role system"
msgstr "Migrer vers un nouveau système de rôles"

#: app/templates/admin/users.html:57
msgid "Migrate"
msgstr "Émigrer"

#: app/templates/admin/users.html:77
msgid "Roles"
msgstr "Rôles"

#: app/templates/admin/users.html:89
msgid "No users found."
msgstr "Aucun utilisateur trouvé."

#: app/templates/admin/users.html:100
msgid ""
"Cannot delete user \"{name}\" because they have {count} time entries. Users "
"with existing time entries cannot be deleted."
msgstr ""
"Impossible de supprimer l'utilisateur \"{name}\", car il dispose de {count} "
"entrées de temps. Les utilisateurs avec des entrées de temps existantes ne "
"peuvent pas être supprimés."

#: app/templates/admin/users.html:103
msgid "Cannot Delete User"
msgstr "Impossible de supprimer l'utilisateur"

#: app/templates/admin/users.html:115
msgid ""
"Are you sure you want to delete user \"{name}\"? This action cannot be "
"undone."
msgstr ""
"Êtes-vous sûr de vouloir supprimer l'utilisateur \"{name}\" ? Cette action "
"ne peut pas être annulée."

#: app/templates/admin/users.html:118
msgid "Delete User"
msgstr "Supprimer un utilisateur"

#: app/templates/admin/email_templates/create.html:38
#: app/templates/admin/email_templates/edit.html:36
msgid "Set as default template"
msgstr "Définir comme modèle par défaut"

#: app/templates/admin/email_templates/create.html:46
#: app/templates/admin/email_templates/edit.html:44
#: app/templates/admin/email_templates/view.html:56
msgid "HTML Template"
msgstr "Modèle HTML"

#: app/templates/admin/email_templates/create.html:49
#: app/templates/admin/email_templates/edit.html:47
#: app/templates/client_portal/invoices.html:47
#: app/templates/payments/view.html:155
#: app/templates/recurring_invoices/view.html:97
msgid "Invoice Number"
msgstr "Numéro de facture"

#: app/templates/admin/email_templates/create.html:55
#: app/templates/admin/email_templates/edit.html:53
#: app/templates/invoices/edit.html:667 app/templates/invoices/view.html:361
msgid "Custom Message"
msgstr "Message personnalisé"

#: app/templates/admin/email_templates/create.html:58
#: app/templates/admin/email_templates/edit.html:56
msgid "More Variables"
msgstr "Plus de variables"

#: app/templates/admin/email_templates/create.html:118
msgid "Create Template"
msgstr "Créer un modèle"

#: app/templates/admin/email_templates/create.html:127
#: app/templates/admin/email_templates/edit.html:125
msgid "Available Variables"
msgstr "Variables disponibles"

#: app/templates/admin/email_templates/create.html:134
#: app/templates/admin/email_templates/edit.html:132
msgid "Invoice Variables"
msgstr "Variables de facture"

#: app/templates/admin/email_templates/create.html:157
#: app/templates/admin/email_templates/edit.html:155
msgid "Other Variables"
msgstr "Autres variables"

#: app/templates/admin/email_templates/edit.html:116
msgid "Update Template"
msgstr "Modèle de mise à jour"

#: app/templates/admin/email_templates/list.html:63
msgid "No email templates found."
msgstr "Aucun modèle d'e-mail trouvé."

#: app/templates/admin/email_templates/list.html:64
msgid "Create your first email template to customize invoice emails."
msgstr ""
"Créez votre premier modèle d'e-mail pour personnaliser les e-mails de "
"facture."

#: app/templates/admin/email_templates/list.html:66
msgid "Create Email Template"
msgstr "Créer un modèle d'e-mail"

#: app/templates/admin/email_templates/list.html:75
msgid "Delete Email Template"
msgstr "Supprimer le modèle d'e-mail"

#: app/templates/admin/email_templates/list.html:77
#: app/templates/quotes/list.html:295
msgid "Are you sure you want to delete"
msgstr "Etes-vous sûr de vouloir supprimer"

#: app/templates/admin/email_templates/list.html:77
#: app/templates/invoices/list.html:314 app/templates/invoices/view.html:260
#: app/templates/kanban/columns.html:149
msgid "This action cannot be undone."
msgstr "Cette action ne peut pas être annulée."

#: app/templates/admin/email_templates/view.html:21
msgid "Template Information"
msgstr "Informations sur le modèle"

#: app/templates/admin/permissions/list.html:8
#: app/templates/admin/permissions/list.html:13
msgid "System Permissions"
msgstr "Autorisations système"

#: app/templates/admin/permissions/list.html:14
msgid "All available permissions in the system"
msgstr "Toutes les autorisations disponibles dans le système"

#: app/templates/admin/permissions/list.html:16
#: app/templates/admin/roles/form.html:10 app/templates/admin/roles/view.html:9
msgid "Back to Roles"
msgstr "Retour aux rôles"

#: app/templates/admin/permissions/list.html:24
#: app/templates/admin/roles/list.html:113 app/templates/admin/users/roles.html:44
msgid "permissions"
msgstr "autorisations"

#: app/templates/admin/permissions/list.html:38
msgid "No description available"
msgstr "Aucune description disponible"

#: app/templates/admin/permissions/list.html:53
msgid "About Permissions"
msgstr "À propos des autorisations"

#: app/templates/admin/permissions/list.html:55
msgid ""
"Permissions define what actions users can perform in the system. These "
"permissions are assigned to roles, and roles are assigned to users. This "
"provides a flexible and granular access control system."
msgstr ""
"Les autorisations définissent les actions que les utilisateurs peuvent "
"effectuer dans le système. Ces autorisations sont attribuées aux rôles et "
"les rôles sont attribués aux utilisateurs. Cela fournit un système de "
"contrôle d’accès flexible et granulaire."

#: app/templates/admin/roles/form.html:17 app/templates/admin/roles/view.html:20
msgid "Edit Role"
msgstr "Modifier le rôle"

#: app/templates/admin/roles/form.html:19
msgid "Create New Role"
msgstr "Créer un nouveau rôle"

#: app/templates/admin/roles/form.html:26 app/templates/admin/roles/list.html:91
msgid "Role Name"
msgstr "Nom du rôle"

#: app/templates/admin/roles/form.html:36
msgid "A unique name for this role"
msgstr "Un nom unique pour ce rôle"

#: app/templates/admin/roles/form.html:48
msgid "Optional description of this role"
msgstr "Description facultative de ce rôle"

#: app/templates/admin/roles/form.html:52 app/templates/admin/roles/list.html:93
#: app/templates/admin/roles/view.html:76
msgid "Permissions"
msgstr "Autorisations"

#: app/templates/admin/roles/form.html:53
msgid "Select the permissions this role should have:"
msgstr "Sélectionnez les autorisations que ce rôle doit avoir :"

#: app/templates/admin/roles/form.html:68
msgid "Toggle All"
msgstr "Tout basculer"

#: app/templates/admin/roles/form.html:93
msgid "Update Role"
msgstr "Mettre à jour le rôle"

#: app/templates/admin/roles/form.html:95 app/templates/admin/roles/list.html:18
msgid "Create Role"
msgstr "Créer un rôle"

#: app/templates/admin/roles/list.html:13
msgid "Manage roles and their permissions"
msgstr "Gérer les rôles et leurs autorisations"

#: app/templates/admin/roles/list.html:17
msgid "View Permissions"
msgstr "Afficher les autorisations"

#: app/templates/admin/roles/list.html:32
msgid "Total Roles"
msgstr "Total des rôles"

#: app/templates/admin/roles/list.html:46
msgid "System Roles"
msgstr "Rôles système"

#: app/templates/admin/roles/list.html:60
msgid "Custom Roles"
msgstr "Rôles personnalisés"

#: app/templates/admin/roles/list.html:74 app/templates/admin/roles/view.html:48
msgid "Assigned Users"
msgstr "Utilisateurs assignés"

#: app/templates/admin/roles/list.html:95 app/templates/admin/roles/view.html:30
#: app/templates/contacts/communication_form.html:28
#: app/templates/inventory/movements/list.html:55
#: app/templates/inventory/reports/movement_history.html:70
#: app/templates/inventory/reservations/list.html:42
#: app/templates/inventory/stock_items/history.html:61
#: app/templates/inventory/stock_items/view.html:168
#: app/templates/inventory/warehouses/view.html:131
msgid "Type"
msgstr "Taper"

#: app/templates/admin/roles/list.html:105
msgid "Default role"
msgstr "Rôle par défaut"

#: app/templates/admin/roles/list.html:123
msgid "user"
msgstr "utilisateur"

#: app/templates/admin/roles/list.html:123
msgid "users"
msgstr "utilisateurs"

#: app/templates/admin/roles/list.html:126
msgid "No users"
msgstr "Aucun utilisateur"

#: app/templates/admin/roles/list.html:132 app/templates/admin/users/roles.html:36
#: app/templates/kanban/columns.html:54 app/templates/kanban/columns.html:86
msgid "System"
msgstr "Système"

#: app/templates/admin/roles/list.html:136 app/templates/kanban/columns.html:88
msgid "Custom"
msgstr "Coutume"

#: app/templates/admin/roles/list.html:142 app/templates/admin/roles/view.html:65
#: app/templates/budget/dashboard.html:92
#: app/templates/client_portal/invoices.html:82
#: app/templates/client_portal/quotes.html:67 app/templates/contacts/list.html:58
#: app/templates/deals/list.html:81 app/templates/leads/list.html:85
#: app/templates/projects/_kanban_tailwind.html:76
#: app/templates/projects/view.html:274 app/templates/quotes/list.html:171
#: app/templates/tasks/overdue.html:92 app/templates/weekly_goals/index.html:191
msgid "View"
msgstr "Voir"

#: app/templates/admin/roles/list.html:157
msgid "Permissions for"
msgstr "Autorisations pour"

#: app/templates/admin/roles/list.html:185
msgid "No permissions assigned."
msgstr "Aucune autorisation attribuée."

#: app/templates/admin/roles/list.html:192
msgid "No roles found."
msgstr "Aucun rôle trouvé."

#: app/templates/admin/roles/list.html:200
msgid "About Roles & Permissions"
msgstr "À propos des rôles et des autorisations"

#: app/templates/admin/roles/list.html:202
msgid ""
"Roles are collections of permissions that can be assigned to users. System "
"roles are predefined and cannot be deleted or renamed, but custom roles can "
"be created for your specific needs."
msgstr ""
"Les rôles sont des ensembles d'autorisations qui peuvent être attribuées aux"
" utilisateurs. Les rôles système sont prédéfinis et ne peuvent pas être "
"supprimés ou renommés, mais des rôles personnalisés peuvent être créés pour "
"vos besoins spécifiques."

#: app/templates/admin/roles/list.html:209
msgid "Are you sure you want to delete the role"
msgstr "Êtes-vous sûr de vouloir supprimer le rôle"

#: app/templates/admin/roles/list.html:211
msgid "Delete Role"
msgstr "Supprimer le rôle"

#: app/templates/admin/roles/view.html:16
msgid "No description"
msgstr "Pas de description"

#: app/templates/admin/roles/view.html:27
msgid "Role Information"
msgstr "Informations sur le rôle"

#: app/templates/admin/roles/view.html:34
msgid "System Role"
msgstr "Rôle système"

#: app/templates/admin/roles/view.html:38
msgid "Custom Role"
msgstr "Rôle personnalisé"

#: app/templates/admin/roles/view.html:44
msgid "Total Permissions"
msgstr "Autorisations totales"

#: app/templates/admin/roles/view.html:52 app/templates/audit_logs/list.html:47
#: app/templates/budget/dashboard.html:86
#: app/templates/budget/project_detail.html:279
#: app/templates/calendar/event_detail.html:172
#: app/templates/inventory/purchase_orders/view.html:195
#: app/templates/quotes/list.html:132 app/templates/quotes/view.html:389
#: app/templates/tasks/_kanban.html:1335 app/templates/tasks/edit.html:257
msgid "Created"
msgstr "Créé"

#: app/templates/admin/roles/view.html:59
msgid "Users with this Role"
msgstr "Utilisateurs avec ce rôle"

#: app/templates/admin/roles/view.html:70
msgid "No users assigned to this role yet."
msgstr "Aucun utilisateur affecté à ce rôle pour l'instant."

#: app/templates/admin/roles/view.html:110
msgid "This role has no permissions assigned."
msgstr "Ce rôle n'a aucune autorisation attribuée."

#: app/templates/admin/users/roles.html:10
msgid "Back to User"
msgstr "Retour à l'utilisateur"

#: app/templates/admin/users/roles.html:15
msgid "Manage Roles for"
msgstr "Gérer les rôles pour"

#: app/templates/admin/users/roles.html:20
msgid "Assign Roles"
msgstr "Attribuer des rôles"

#: app/templates/admin/users/roles.html:22
msgid ""
"Select the roles this user should have. Users inherit all permissions from "
"their assigned roles."
msgstr ""
"Sélectionnez les rôles que cet utilisateur doit avoir. Les utilisateurs "
"héritent de toutes les autorisations des rôles qui leur sont attribués."

#: app/templates/admin/users/roles.html:54
msgid "Update Roles"
msgstr "Mettre à jour les rôles"

#: app/templates/admin/users/roles.html:65
msgid "Current Effective Permissions"
msgstr "Autorisations effectives actuelles"

#: app/templates/admin/users/roles.html:67
msgid "These are all the permissions the user currently has through their roles:"
msgstr ""
"Voici toutes les autorisations dont dispose actuellement l'utilisateur via "
"ses rôles :"

#: app/templates/admin/users/roles.html:80
msgid "No permissions (assign roles to grant permissions)"
msgstr "Aucune autorisation (attribuer des rôles pour accorder des autorisations)"

#: app/templates/admin/webhooks/form.html:7
#: app/templates/admin/webhooks/list.html:7
#: app/templates/admin/webhooks/list.html:12
#: app/templates/admin/webhooks/view.html:7
msgid "Webhooks"
msgstr "Webhooks"

#: app/templates/admin/webhooks/form.html:8
#: app/templates/admin/webhooks/form.html:13
#: app/templates/admin/webhooks/list.html:15
msgid "Create Webhook"
msgstr "Créer un webhook"

#: app/templates/admin/webhooks/form.html:8
#: app/templates/admin/webhooks/form.html:13
msgid "Edit Webhook"
msgstr "Modifier le webhook"

#: app/templates/admin/webhooks/form.html:14
msgid "Configure webhook for integrations"
msgstr "Configurer le webhook pour les intégrations"

#: app/templates/admin/webhooks/form.html:23
#: app/templates/admin/webhooks/list.html:24 app/templates/contacts/list.html:27
#: app/templates/inventory/stock_items/form.html:27
#: app/templates/inventory/stock_items/list.html:50
#: app/templates/inventory/suppliers/form.html:28
#: app/templates/inventory/suppliers/list.html:42
#: app/templates/inventory/warehouses/form.html:28
#: app/templates/inventory/warehouses/list.html:23
#: app/templates/invoices/edit.html:192 app/templates/leads/list.html:50
#: app/templates/main/help.html:184 app/templates/projects/add_good.html:19
#: app/templates/projects/edit_good.html:19 app/templates/projects/goods.html:39
#: app/templates/projects/view.html:230
#: app/templates/recurring_invoices/list.html:23
msgid "Name"
msgstr "Nom"

#: app/templates/admin/webhooks/form.html:36
msgid "Webhook URL"
msgstr "URL du webhook"

#: app/templates/admin/webhooks/form.html:40
msgid "The URL where webhook events will be sent"
msgstr "L'URL où les événements du webhook seront envoyés"

#: app/templates/admin/webhooks/form.html:45
#: app/templates/admin/webhooks/list.html:26
#: app/templates/admin/webhooks/view.html:46 app/templates/calendar/view.html:73
msgid "Events"
msgstr "Événements"

#: app/templates/admin/webhooks/form.html:58
msgid "Select which events should trigger this webhook"
msgstr "Sélectionnez les événements qui doivent déclencher ce webhook"

#: app/templates/admin/webhooks/form.html:64
#: app/templates/admin/webhooks/view.html:42
msgid "HTTP Method"
msgstr "Méthode HTTP"

#: app/templates/admin/webhooks/form.html:74
msgid "Content Type"
msgstr "Type de contenu"

#: app/templates/admin/webhooks/form.html:83
msgid "Max Retries"
msgstr "Nombre maximal de tentatives"

#: app/templates/admin/webhooks/form.html:89
msgid "Retry Delay (seconds)"
msgstr "Délai de nouvelle tentative (secondes)"

#: app/templates/admin/webhooks/form.html:95
msgid "Timeout (seconds)"
msgstr "Délai d'expiration (secondes)"

#: app/templates/admin/webhooks/form.html:116
msgid "Regenerate Secret"
msgstr "Régénérer le secret"

#: app/templates/admin/webhooks/form.html:118
msgid "Warning: Regenerating the secret will invalidate the current secret"
msgstr "Attention : La régénération du secret invalidera le secret actuel"

#: app/templates/admin/webhooks/list.html:13
msgid "Manage webhook integrations"
msgstr "Gérer les intégrations de webhooks"

#: app/templates/admin/webhooks/list.html:25
#: app/templates/admin/webhooks/view.html:28
msgid "URL"
msgstr "URL"

#: app/templates/admin/webhooks/list.html:28
#: app/templates/admin/webhooks/view.html:69
msgid "Statistics"
msgstr "Statistiques"

#: app/templates/admin/webhooks/list.html:67
#: app/templates/client_portal/invoice_detail.html:60
#: app/templates/client_portal/invoice_detail.html:92
#: app/templates/client_portal/quote_detail.html:72
#: app/templates/client_portal/quote_detail.html:104
#: app/templates/inventory/purchase_orders/form.html:81
#: app/templates/inventory/purchase_orders/view.html:138
#: app/templates/inventory/stock_levels/item.html:63
#: app/templates/invoices/edit.html:302
#: app/templates/invoices/generate_from_time.html:92
#: app/templates/projects/goods.html:43 app/templates/quotes/create.html:70
#: app/templates/quotes/edit.html:71 app/templates/quotes/view.html:95
#: app/templates/quotes/view.html:141 app/utils/pdf_generator_fallback.py:482
msgid "Total"
msgstr "Total"

#: app/templates/admin/webhooks/list.html:69
#: app/templates/admin/webhooks/view.html:80
#: app/templates/admin/webhooks/view.html:116
#: app/templates/weekly_goals/edit.html:68
#: app/templates/weekly_goals/index.html:51
#: app/templates/weekly_goals/index.html:180
#: app/templates/weekly_goals/view.html:66 app/utils/i18n_helpers.py:240
#: app/utils/i18n_helpers.py:252 app/utils/i18n_helpers.py:263
#: app/utils/i18n_helpers.py:274
msgid "Failed"
msgstr "Échoué"

#: app/templates/admin/webhooks/list.html:90
msgid "No webhooks configured"
msgstr "Aucun webhook configuré"

#: app/templates/admin/webhooks/list.html:92
msgid "Create Your First Webhook"
msgstr "Créez votre premier webhook"

#: app/templates/admin/webhooks/view.html:14
msgid "Webhook details"
msgstr "Détails du webhook"

#: app/templates/admin/webhooks/view.html:17
msgid "Test"
msgstr "Test"

#: app/templates/admin/webhooks/view.html:57
msgid "Secret"
msgstr "Secrète"

#: app/templates/admin/webhooks/view.html:60
msgid "(truncated)"
msgstr "(tronqué)"

#: app/templates/admin/webhooks/view.html:72
msgid "Total Deliveries"
msgstr "Livraisons totales"

#: app/templates/admin/webhooks/view.html:76
msgid "Successful"
msgstr "Réussi"

#: app/templates/admin/webhooks/view.html:85
msgid "Last Delivery"
msgstr "Dernière livraison"

#: app/templates/admin/webhooks/view.html:95
msgid "Recent Deliveries"
msgstr "Livraisons récentes"

#: app/templates/admin/webhooks/view.html:101
#: app/templates/calendar/event_form.html:106
msgid "Event"
msgstr "Événement"

#: app/templates/admin/webhooks/view.html:103
msgid "Attempt"
msgstr "Tentative"

#: app/templates/admin/webhooks/view.html:104
msgid "Response"
msgstr "Réponse"

#: app/templates/admin/webhooks/view.html:105
msgid "Time"
msgstr "Temps"

#: app/templates/admin/webhooks/view.html:118
msgid "Retrying"
msgstr "Réessayer"

#: app/templates/admin/webhooks/view.html:139
msgid "No deliveries yet"
msgstr "Pas de livraisons pour l'instant"

#: app/templates/admin/webhooks/view.html:145
msgid "Send a test webhook event?"
msgstr "Envoyer un événement de webhook de test ?"

#: app/templates/admin/webhooks/view.html:158
msgid "Test webhook sent successfully!"
msgstr "Test du webhook envoyé avec succès !"

#: app/templates/admin/webhooks/view.html:161
msgid "Error:"
msgstr "Erreur:"

#: app/templates/admin/webhooks/view.html:161
msgid "Unknown error"
msgstr "Erreur inconnue"

#: app/templates/admin/webhooks/view.html:165
msgid "Error sending test webhook:"
msgstr "Erreur lors de l'envoi du webhook de test :"

#: app/templates/analytics/dashboard.html:4
#: app/templates/analytics/dashboard.html:27
#: app/templates/analytics/dashboard_improved.html:3
#: app/templates/analytics/dashboard_improved.html:8
msgid "Analytics Dashboard"
msgstr "Tableau de bord d'analyse"

#: app/templates/analytics/dashboard.html:14
#: app/templates/analytics/dashboard_improved.html:13
#: app/templates/audit_logs/list.html:55
msgid "Last 7 days"
msgstr "7 derniers jours"

#: app/templates/analytics/dashboard.html:15
#: app/templates/analytics/dashboard_improved.html:14
#: app/templates/audit_logs/list.html:56
msgid "Last 30 days"
msgstr "30 derniers jours"

#: app/templates/analytics/dashboard.html:16
#: app/templates/analytics/dashboard_improved.html:15
#: app/templates/audit_logs/list.html:57
msgid "Last 90 days"
msgstr "90 derniers jours"

#: app/templates/analytics/dashboard.html:17
#: app/templates/analytics/dashboard_improved.html:16
#: app/templates/audit_logs/list.html:58
msgid "Last year"
msgstr "L'année dernière"

#: app/templates/analytics/dashboard.html:28
msgid "Key metrics and insights about your time tracking"
msgstr "Indicateurs et informations clés sur votre suivi du temps"

#: app/templates/analytics/dashboard.html:42
#: app/templates/analytics/dashboard_improved.html:35
#: app/templates/analytics/mobile_dashboard.html:31
#: app/templates/budget/project_detail.html:189
#: app/templates/client_portal/dashboard.html:33
#: app/templates/client_portal/projects.html:32
#: app/templates/clients/edit.html:146 app/templates/projects/dashboard.html:48
#: app/templates/user/profile.html:45
msgid "Total Hours"
msgstr "Heures totales"

#: app/templates/analytics/dashboard.html:51
#: app/templates/analytics/dashboard_improved.html:44
msgid "Billable Hours"
msgstr "Heures facturables"

#: app/templates/analytics/dashboard.html:60
#: app/templates/client_portal/dashboard.html:23
#: app/templates/clients/edit.html:142
msgid "Active Projects"
msgstr "Projets actifs"

#: app/templates/analytics/dashboard.html:69
#: app/templates/analytics/dashboard_improved.html:62
msgid "Avg Daily Hours"
msgstr "Heures quotidiennes moyennes"

#: app/templates/analytics/dashboard.html:81
#: app/templates/analytics/dashboard_improved.html:83
msgid "Daily Hours Trend"
msgstr "Tendance des heures quotidiennes"

#: app/templates/analytics/dashboard.html:95
#: app/templates/analytics/mobile_dashboard.html:85
msgid "Billable vs Non-Billable"
msgstr "Facturable ou non facturable"

#: app/templates/analytics/dashboard.html:113
#: app/templates/analytics/dashboard_improved.html:168
#: app/templates/email/weekly_summary.html:104
msgid "Hours by Project"
msgstr "Heures par projet"

#: app/templates/analytics/dashboard.html:127
#: app/templates/analytics/dashboard_improved.html:172
msgid "Weekly Trends"
msgstr "Tendances hebdomadaires"

#: app/templates/analytics/dashboard.html:145
#: app/templates/analytics/dashboard_improved.html:180
#: app/templates/analytics/mobile_dashboard.html:115
msgid "Hours by Time of Day"
msgstr "Heures par heure de la journée"

#: app/templates/analytics/dashboard.html:159
msgid "Project Efficiency"
msgstr "Efficacité du projet"

#: app/templates/analytics/dashboard.html:178
#: app/templates/analytics/dashboard_improved.html:191
#: app/templates/analytics/mobile_dashboard.html:131
msgid "User Performance"
msgstr "Performances des utilisateurs"

#: app/templates/analytics/dashboard.html:206
#: app/templates/analytics/dashboard_improved.html:213
#: app/templates/analytics/mobile_dashboard.html:159
msgid "Failed to load charts. Please try again."
msgstr "Échec du chargement des graphiques. Veuillez réessayer."

#: app/templates/analytics/dashboard.html:207
#: app/templates/analytics/dashboard_improved.html:214
#: app/templates/analytics/mobile_dashboard.html:160
msgid "Failed to refresh charts. Please try again."
msgstr "Échec de l'actualisation des graphiques. Veuillez réessayer."

#: app/templates/analytics/dashboard.html:208
#: app/templates/analytics/dashboard_improved.html:215
#: app/templates/analytics/mobile_dashboard.html:161
#: app/templates/budget/project_detail.html:206
#: app/templates/projects/dashboard.html:449
#: app/templates/projects/dashboard.html:483
msgid "Hours"
msgstr "Heures"

#: app/templates/analytics/dashboard.html:209
#: app/templates/analytics/dashboard_improved.html:216
#: app/templates/analytics/mobile_dashboard.html:162
#: app/templates/client_portal/dashboard.html:130
#: app/templates/client_portal/quote_detail.html:35
#: app/templates/client_portal/quotes.html:27
#: app/templates/client_portal/time_entries.html:51
#: app/templates/contacts/communication_form.html:52
#: app/templates/inventory/adjustments/list.html:56
#: app/templates/inventory/movements/list.html:52
#: app/templates/inventory/reports/movement_history.html:67
#: app/templates/inventory/stock_items/history.html:59
#: app/templates/inventory/stock_items/view.html:167
#: app/templates/inventory/transfers/list.html:38
#: app/templates/inventory/warehouses/view.html:129
#: app/templates/invoices/edit.html:136
#: app/templates/invoices/pdf_default.html:106
#: app/templates/main/dashboard.html:89 app/templates/quotes/pdf_default.html:40
#: app/utils/pdf_generator_fallback.py:469
msgid "Date"
msgstr "Date"

#: app/templates/analytics/dashboard.html:210
#: app/templates/analytics/dashboard_improved.html:217
#: app/templates/analytics/mobile_dashboard.html:163
msgid "Hour of Day"
msgstr "Heure de la journée"

#: app/templates/analytics/dashboard.html:211
#: app/templates/analytics/dashboard_improved.html:218
#: app/templates/analytics/mobile_dashboard.html:164
msgid "Revenue"
msgstr "Revenu"

#: app/templates/analytics/dashboard_improved.html:9
msgid "Key metrics and actionable insights"
msgstr "Indicateurs clés et informations exploitables"

#: app/templates/analytics/dashboard_improved.html:19
msgid "Export"
msgstr "Exporter"

#: app/templates/analytics/dashboard_improved.html:36
msgid "vs previous period"
msgstr "par rapport à la période précédente"

#: app/templates/analytics/dashboard_improved.html:45
msgid "of total"
msgstr "du total"

#: app/templates/analytics/dashboard_improved.html:53
#: app/templates/analytics/dashboard_improved.html:154
msgid "Potential Revenue"
msgstr "Revenu potentiel"

#: app/templates/analytics/dashboard_improved.html:54
msgid "Avg rate:"
msgstr "Tarif moyen :"

#: app/templates/analytics/dashboard_improved.html:59
#: app/templates/budget/project_detail.html:165
msgid "Trend"
msgstr "S'orienter"

#: app/templates/analytics/dashboard_improved.html:63
msgid "active projects"
msgstr "projets actifs"

#: app/templates/analytics/dashboard_improved.html:70
msgid "Insights & Recommendations"
msgstr "Informations et recommandations"

#: app/templates/analytics/dashboard_improved.html:86
msgid "Cumulative"
msgstr "Cumulatif"

#: app/templates/analytics/dashboard_improved.html:94
msgid "Billable Distribution"
msgstr "Distribution facturable"

#: app/templates/analytics/dashboard_improved.html:104
msgid "Task Status Overview"
msgstr "Présentation de l'état de la tâche"

#: app/templates/analytics/dashboard_improved.html:110
msgid "Tasks Completed"
msgstr "Tâches terminées"

#: app/templates/analytics/dashboard_improved.html:114
#: app/templates/analytics/dashboard_improved.html:222
#: app/templates/tasks/create.html:71 app/templates/tasks/create.html:84
#: app/templates/tasks/create.html:446 app/templates/tasks/edit.html:95
#: app/templates/tasks/edit.html:642 app/templates/tasks/my_tasks.html:57
#: app/templates/tasks/my_tasks.html:127 app/utils/i18n_helpers.py:16
#: app/utils/i18n_helpers.py:28
msgid "In Progress"
msgstr "En cours"

#: app/templates/analytics/dashboard_improved.html:118
#: app/templates/analytics/dashboard_improved.html:223
#: app/templates/tasks/create.html:70 app/templates/tasks/create.html:84
#: app/templates/tasks/create.html:445 app/templates/tasks/edit.html:94
#: app/templates/tasks/edit.html:641 app/templates/tasks/my_tasks.html:40
#: app/templates/tasks/my_tasks.html:126 app/utils/i18n_helpers.py:15
#: app/utils/i18n_helpers.py:27
msgid "To Do"
msgstr "Faire"

#: app/templates/analytics/dashboard_improved.html:124
msgid "Revenue by Project"
msgstr "Revenus par projet"

#: app/templates/analytics/dashboard_improved.html:132
msgid "Payments Over Time"
msgstr "Paiements au fil du temps"

#: app/templates/analytics/dashboard_improved.html:144
msgid "Payment Methods"
msgstr "Méthodes de paiement"

#: app/templates/analytics/dashboard_improved.html:148
msgid "Revenue vs Payments"
msgstr "Revenus vs paiements"

#: app/templates/analytics/dashboard_improved.html:158
msgid "Collection Rate"
msgstr "Taux de recouvrement"

#: app/templates/analytics/dashboard_improved.html:184
msgid "Project Completion Rate"
msgstr "Taux d'achèvement du projet"

#: app/templates/analytics/dashboard_improved.html:219
#: app/templates/analytics/mobile_dashboard.html:40
#: app/templates/main/dashboard.html:201 app/templates/main/help.html:193
#: app/templates/projects/add_good.html:62 app/templates/projects/edit.html:56
#: app/templates/projects/edit_good.html:62 app/templates/projects/goods.html:70
#: app/templates/tasks/edit.html:169 app/templates/timer/manual_entry.html:91
#: app/templates/user/profile.html:110
msgid "Billable"
msgstr "Facturable"

#: app/templates/analytics/dashboard_improved.html:220
msgid "Non-Billable"
msgstr "Non facturable"

#: app/templates/analytics/dashboard_improved.html:221
#: app/templates/contacts/communication_form.html:59
#: app/templates/tasks/_kanban.html:1346 app/templates/tasks/edit.html:260
#: app/templates/tasks/my_tasks.html:91 app/templates/weekly_goals/edit.html:67
#: app/templates/weekly_goals/index.html:39
#: app/templates/weekly_goals/index.html:172
#: app/templates/weekly_goals/view.html:62 app/utils/i18n_helpers.py:239
#: app/utils/i18n_helpers.py:251 app/utils/i18n_helpers.py:262
#: app/utils/i18n_helpers.py:273
msgid "Completed"
msgstr "Complété"

#: app/templates/analytics/dashboard_improved.html:224
#: app/templates/tasks/create.html:72 app/templates/tasks/create.html:84
#: app/templates/tasks/create.html:447 app/templates/tasks/edit.html:96
#: app/templates/tasks/edit.html:643 app/templates/tasks/my_tasks.html:74
#: app/templates/tasks/my_tasks.html:128 app/utils/i18n_helpers.py:17
#: app/utils/i18n_helpers.py:29
msgid "Review"
msgstr "Revoir"

#: app/templates/analytics/dashboard_improved.html:225
#: app/templates/contacts/communication_form.html:62
#: app/templates/inventory/purchase_orders/list.html:28
#: app/templates/inventory/purchase_orders/list.html:84
#: app/templates/inventory/purchase_orders/view.html:45
#: app/templates/inventory/reservations/list.html:25
#: app/templates/inventory/reservations/list.html:84
#: app/templates/projects/archive.html:68 app/templates/tasks/create.html:74
#: app/templates/tasks/create.html:84 app/templates/tasks/create.html:449
#: app/templates/tasks/edit.html:98 app/templates/tasks/edit.html:645
#: app/templates/tasks/my_tasks.html:130 app/templates/weekly_goals/edit.html:69
#: app/templates/weekly_goals/view.html:68 app/utils/i18n_helpers.py:19
#: app/utils/i18n_helpers.py:31 app/utils/i18n_helpers.py:85
#: app/utils/i18n_helpers.py:97 app/utils/i18n_helpers.py:264
#: app/utils/i18n_helpers.py:275
msgid "Cancelled"
msgstr "Annulé"

#: app/templates/analytics/dashboard_improved.html:226
msgid "Completion Rate (%)"
msgstr "Taux d'achèvement (%)"

#: app/templates/analytics/mobile_dashboard.html:20
msgid "Mobile insights overview"
msgstr "Présentation des informations mobiles"

#: app/templates/analytics/mobile_dashboard.html:58
msgid "Daily Avg"
msgstr "Moyenne quotidienne"

#: app/templates/analytics/mobile_dashboard.html:70
msgid "Daily Hours"
msgstr "Horaires quotidiens"

#: app/templates/analytics/mobile_dashboard.html:100
msgid "Top Projects"
msgstr "Meilleurs projets"

#: app/templates/audit_logs/list.html:14
msgid "Track who changed what and when"
msgstr "Suivez qui a changé quoi et quand"

#: app/templates/audit_logs/list.html:19
msgid "Filters"
msgstr "Filtres"

#: app/templates/audit_logs/list.html:22
msgid "Entity Type"
msgstr "Type d'entité"

#: app/templates/audit_logs/list.html:24
#: app/templates/inventory/movements/list.html:23
#: app/templates/inventory/reports/movement_history.html:41
#: app/templates/inventory/stock_items/history.html:33
#: app/templates/tasks/my_tasks.html:157
msgid "All Types"
msgstr "Tous types"

#: app/templates/audit_logs/list.html:31 app/templates/audit_logs/list.html:32
msgid "Entity ID"
msgstr "ID d'entité"

#: app/templates/audit_logs/list.html:37
msgid "All Users"
msgstr "Tous les utilisateurs"

#: app/templates/audit_logs/list.html:44 app/templates/audit_logs/list.html:77
#: app/templates/inventory/purchase_orders/form.html:84
#: app/templates/invoices/edit.html:77 app/templates/invoices/edit.html:137
#: app/templates/invoices/edit.html:198 app/templates/quotes/create.html:71
#: app/templates/quotes/edit.html:72
msgid "Action"
msgstr "Action"

#: app/templates/audit_logs/list.html:46
msgid "All Actions"
msgstr "Toutes les actions"

#: app/templates/audit_logs/list.html:48 app/templates/tasks/edit.html:258
msgid "Updated"
msgstr "Mis à jour"

#: app/templates/audit_logs/list.html:49
msgid "Deleted"
msgstr "Supprimé"

#: app/templates/audit_logs/list.html:53
msgid "Time Range"
msgstr "Plage de temps"

#: app/templates/audit_logs/list.html:59
msgid "All time"
msgstr "Tout le temps"

#: app/templates/audit_logs/list.html:64
#: app/templates/client_portal/time_entries.html:40
#: app/templates/deals/list.html:39
#: app/templates/inventory/adjustments/list.html:43
#: app/templates/inventory/movements/list.html:43
#: app/templates/inventory/purchase_orders/list.html:41
#: app/templates/inventory/reports/movement_history.html:54
#: app/templates/inventory/reports/turnover.html:29
#: app/templates/inventory/reports/valuation.html:39
#: app/templates/inventory/reservations/list.html:30
#: app/templates/inventory/stock_items/history.html:46
#: app/templates/inventory/stock_items/list.html:40
#: app/templates/inventory/stock_levels/list.html:38
#: app/templates/inventory/stock_levels/warehouse.html:36
#: app/templates/inventory/suppliers/list.html:32
#: app/templates/inventory/transfers/list.html:29 app/templates/leads/list.html:39
#: app/templates/quotes/list.html:89
msgid "Filter"
msgstr "Filtre"

#: app/templates/audit_logs/list.html:75
msgid "Timestamp"
msgstr "Horodatage"

#: app/templates/audit_logs/list.html:78
msgid "Entity"
msgstr "Entité"

#: app/templates/audit_logs/list.html:79
msgid "Field"
msgstr "Champ"

#: app/templates/audit_logs/list.html:80
#: app/templates/budget/project_detail.html:171 app/templates/clients/view.html:15
#: app/templates/projects/view.html:32 app/templates/tasks/view.html:20
msgid "Change"
msgstr "Changement"

#: app/templates/audit_logs/view.html:22
msgid "Change Information"
msgstr "Modifier les informations"

#: app/templates/audit_logs/view.html:80
msgid "Change Details"
msgstr "Modifier les détails"

#: app/templates/audit_logs/view.html:104
msgid "Request Information"
msgstr "Demander des informations"

#: app/templates/auth/edit_profile.html:6 app/templates/auth/profile.html:9
msgid "Edit Profile"
msgstr "Modifier le profil"

#: app/templates/auth/edit_profile.html:65
msgid "Leave blank to keep current password"
msgstr "Laisser vide pour conserver le mot de passe actuel"

#: app/templates/auth/edit_profile.html:74 app/templates/client_notes/edit.html:83
#: app/templates/comments/edit.html:76 app/templates/invoices/edit.html:233
#: app/templates/kanban/edit_column.html:91 app/templates/projects/edit.html:84
#: app/templates/projects/edit_good.html:69
#: app/templates/weekly_goals/edit.html:100
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: app/templates/auth/login.html:6 app/templates/errors/403.html:30
msgid "Login"
msgstr "Se connecter"

#: app/templates/auth/login.html:25 app/templates/setup/initial_setup.html:26
msgid "Track time. Stay organized."
msgstr "Suivez le temps. Restez organisé."

#: app/templates/auth/login.html:29
msgid "Sign in to your account"
msgstr "Connectez-vous à votre compte"

#: app/templates/auth/login.html:38 app/templates/client_portal/login.html:50
msgid "Sign in"
msgstr "Se connecter"

#: app/templates/auth/login.html:41
msgid "Tip: Enter a new username to create your account."
msgstr "Astuce : saisissez un nouveau nom d'utilisateur pour créer votre compte."

#: app/templates/auth/login.html:50
msgid "Or continue with"
msgstr "Ou continuez avec"

#: app/templates/auth/login.html:55
msgid "Single Sign-On"
msgstr "Authentification unique"

#: app/templates/auth/profile.html:47 app/templates/user/profile.html:75
msgid "Member Since"
msgstr "Membre depuis"

#: app/templates/budget/dashboard.html:12
msgid "Budget Alerts & Forecasting"
msgstr "Alertes et prévisions budgétaires"

#: app/templates/budget/dashboard.html:13
msgid "Monitor project budgets and forecast completion"
msgstr "Surveiller les budgets des projets et prévoir l’achèvement"

#: app/templates/budget/dashboard.html:30
msgid "Unacknowledged Alerts"
msgstr "Alertes non acquittées"

#: app/templates/budget/dashboard.html:39
msgid "Critical Alerts"
msgstr "Alertes critiques"

#: app/templates/budget/dashboard.html:48
msgid "Projects with Budgets"
msgstr "Projets avec budgets"

#: app/templates/budget/dashboard.html:57
msgid "Warning Alerts"
msgstr "Alertes d'avertissement"

#: app/templates/budget/dashboard.html:66
#: app/templates/budget/project_detail.html:259
msgid "Active Alerts"
msgstr "Alertes actives"

#: app/templates/budget/dashboard.html:96
#: app/templates/budget/project_detail.html:284
msgid "Acknowledge"
msgstr "Reconnaître"

#: app/templates/budget/dashboard.html:110
msgid "Project Budget Status"
msgstr "Statut du budget du projet"

#: app/templates/budget/dashboard.html:116
#: app/templates/calendar/event_detail.html:88
#: app/templates/calendar/event_form.html:116
#: app/templates/client_portal/dashboard.html:131
#: app/templates/client_portal/time_entries.html:23
#: app/templates/client_portal/time_entries.html:52
#: app/templates/inventory/movements/list.html:38
#: app/templates/invoices/create.html:19
#: app/templates/invoices/pdf_default.html:59 app/templates/kanban/board.html:14
#: app/templates/kanban/create_column.html:39 app/templates/main/dashboard.html:84
#: app/templates/main/dashboard.html:292 app/templates/main/search.html:33
#: app/templates/recurring_invoices/list.html:24
#: app/templates/tasks/_kanban.html:1245 app/templates/tasks/create.html:46
#: app/templates/tasks/edit.html:67 app/templates/tasks/edit.html:195
#: app/templates/tasks/my_tasks.html:144 app/templates/timer/manual_entry.html:40
#: app/utils/pdf_generator.py:634
msgid "Project"
msgstr "Projet"

#: app/templates/budget/dashboard.html:117
#: app/templates/projects/dashboard.html:125
#: app/templates/projects/dashboard.html:368
msgid "Budget"
msgstr "Budget"

#: app/templates/budget/dashboard.html:118
#: app/templates/budget/project_detail.html:39
#: app/templates/projects/dashboard.html:368 app/templates/projects/view.html:164
msgid "Consumed"
msgstr "Consommé"

#: app/templates/budget/dashboard.html:119
#: app/templates/budget/project_detail.html:48
#: app/templates/main/dashboard.html:161 app/templates/projects/dashboard.html:129
#: app/templates/projects/dashboard.html:368 app/templates/projects/view.html:168
msgid "Remaining"
msgstr "Restant"

#: app/templates/budget/dashboard.html:120 app/templates/projects/view.html:234
#: app/templates/tasks/_kanban.html:112 app/templates/tasks/_kanban.html:1281
#: app/templates/tasks/edit.html:153 app/templates/tasks/my_tasks.html:299
#: app/templates/weekly_goals/index.html:95
#: app/templates/weekly_goals/index.html:205
#: app/templates/weekly_goals/view.html:77
msgid "Progress"
msgstr "Progrès"

#: app/templates/budget/dashboard.html:137 app/templates/projects/view.html:171
msgid "over"
msgstr "sur"

#: app/templates/budget/dashboard.html:153
#: app/templates/budget/project_detail.html:48
#: app/templates/budget/project_detail.html:65 app/utils/i18n_helpers.py:285
msgid "Over Budget"
msgstr "Au-dessus du budget"

#: app/templates/budget/dashboard.html:157
#: app/templates/budget/project_detail.html:66
#: app/templates/projects/view.html:183 app/utils/i18n_helpers.py:295
#: app/utils/i18n_helpers.py:305
msgid "Critical"
msgstr "Critique"

#: app/templates/budget/dashboard.html:165
#: app/templates/budget/project_detail.html:68
#: app/templates/projects/view.html:191
msgid "Healthy"
msgstr "En bonne santé"

#: app/templates/budget/dashboard.html:180 app/templates/budget/dashboard.html:197
msgid "No projects with budgets found"
msgstr "Aucun projet avec budget trouvé"

#: app/templates/budget/dashboard.html:237
#: app/templates/budget/project_detail.html:405
msgid "Alert acknowledged successfully"
msgstr "Alerte reconnue avec succès"

#: app/templates/budget/dashboard.html:242
#: app/templates/budget/project_detail.html:410
msgid "Failed to acknowledge alert"
msgstr "Échec de l'accusé de réception de l'alerte"

#: app/templates/budget/project_detail.html:8
msgid "Budget Analysis & Forecasting"
msgstr "Analyse et prévisions budgétaires"

#: app/templates/budget/project_detail.html:13
msgid "Back to Dashboard"
msgstr "Retour au tableau de bord"

#: app/templates/budget/project_detail.html:17
#: app/templates/projects/list.html:208 app/templates/quotes/view.html:163
msgid "View Project"
msgstr "Voir le projet"

#: app/templates/budget/project_detail.html:30
#: app/templates/projects/view.html:160
msgid "Total Budget"
msgstr "Budget total"

#: app/templates/budget/project_detail.html:80
msgid "Burn Rate Analysis"
msgstr "Analyse du taux de combustion"

#: app/templates/budget/project_detail.html:85
msgid "Daily Burn Rate"
msgstr "Taux de combustion quotidien"

#: app/templates/budget/project_detail.html:89
msgid "Weekly Burn Rate"
msgstr "Taux de combustion hebdomadaire"

#: app/templates/budget/project_detail.html:93
msgid "Monthly Burn Rate"
msgstr "Taux de combustion mensuel"

#: app/templates/budget/project_detail.html:97
msgid "Period Total"
msgstr "Total de la période"

#: app/templates/budget/project_detail.html:103
msgid "Based on last"
msgstr "Basé sur le dernier"

#: app/templates/budget/project_detail.html:103
#: app/templates/inventory/suppliers/view.html:141
msgid "days"
msgstr "jours"

#: app/templates/budget/project_detail.html:108
msgid "No burn rate data available"
msgstr "Aucune donnée sur le taux de combustion disponible"

#: app/templates/budget/project_detail.html:117
msgid "Completion Estimate"
msgstr "Estimation d’achèvement"

#: app/templates/budget/project_detail.html:122
msgid "Estimated Completion Date"
msgstr "Date d'achèvement estimée"

#: app/templates/budget/project_detail.html:128
msgid "days remaining"
msgstr "jours restants"

#: app/templates/budget/project_detail.html:133
msgid "Confidence Level"
msgstr "Niveau de confiance"

#: app/templates/budget/project_detail.html:149
msgid "No completion estimate available"
msgstr "Aucune estimation d'achèvement disponible"

#: app/templates/budget/project_detail.html:160
msgid "Cost Trend Analysis"
msgstr "Analyse des tendances des coûts"

#: app/templates/budget/project_detail.html:168
msgid "Average"
msgstr "Moyenne"

#: app/templates/budget/project_detail.html:185
msgid "Resource Allocation"
msgstr "Allocation des ressources"

#: app/templates/budget/project_detail.html:193
msgid "Total Cost"
msgstr "Coût total"

#: app/templates/budget/project_detail.html:197
#: app/templates/client_portal/projects.html:41 app/templates/main/help.html:194
#: app/templates/projects/create.html:66 app/templates/projects/edit.html:60
#: app/templates/quotes/accept.html:33
msgid "Hourly Rate"
msgstr "Taux horaire"

#: app/templates/budget/project_detail.html:205
msgid "Team Member"
msgstr "Membre de l'équipe"

#: app/templates/budget/project_detail.html:207
#: app/templates/budget/project_detail.html:310
#: app/templates/budget/project_detail.html:340
#: app/templates/inventory/purchase_orders/form.html:149
msgid "Cost"
msgstr "Coût"

#: app/templates/budget/project_detail.html:208
msgid "Hours %"
msgstr "Heures %"

#: app/templates/budget/project_detail.html:209
msgid "Cost %"
msgstr "Coût %"

#: app/templates/budget/project_detail.html:210
msgid "Entries"
msgstr "Entrées"

#: app/templates/calendar/event_detail.html:41
msgid "Date & Time"
msgstr "Date et heure"

#: app/templates/calendar/event_detail.html:57
#: app/templates/client_portal/dashboard.html:133
#: app/templates/client_portal/time_entries.html:56
#: app/templates/main/dashboard.html:88 app/templates/main/search.html:36
msgid "Duration"
msgstr "Durée"

#: app/templates/calendar/event_detail.html:77
#: app/templates/calendar/event_form.html:94
#: app/templates/inventory/stock_items/view.html:133
#: app/templates/inventory/stock_levels/item.html:27
#: app/templates/inventory/stock_levels/list.html:52
#: app/templates/inventory/warehouses/view.html:89
msgid "Location"
msgstr "Emplacement"

#: app/templates/calendar/event_detail.html:104
#: app/templates/calendar/event_form.html:129 app/templates/main/dashboard.html:85
#: app/templates/projects/_kanban_tailwind.html:27
#: app/templates/timer/timer_page.html:124
msgid "Task"
msgstr "Tâche"

#: app/templates/calendar/event_detail.html:120
#: app/templates/calendar/event_form.html:142
#: app/templates/client_portal/invoice_detail.html:23
#: app/templates/client_portal/quote_detail.html:23
#: app/templates/client_portal/set_password.html:37
#: app/templates/deals/form.html:30 app/templates/deals/list.html:51
#: app/templates/main/help.html:185 app/templates/projects/create.html:32
#: app/templates/projects/edit.html:30 app/templates/quotes/accept.html:22
#: app/templates/quotes/create.html:31 app/templates/quotes/edit.html:36
#: app/templates/quotes/list.html:129 app/templates/quotes/view.html:74
#: app/templates/recurring_invoices/list.html:25
msgid "Client"
msgstr "Client"

#: app/templates/calendar/event_detail.html:136
#: app/templates/calendar/event_form.html:109
#: app/templates/calendar/event_form.html:155
msgid "Reminder"
msgstr "Rappel"

#: app/templates/calendar/event_detail.html:139
msgid "minutes before"
msgstr "minutes avant"

#: app/templates/calendar/event_detail.html:141
msgid "hours before"
msgstr "heures avant"

#: app/templates/calendar/event_detail.html:143
msgid "days before"
msgstr "jours avant"

#: app/templates/calendar/event_detail.html:155
msgid "Recurring"
msgstr "Récurrent"

#: app/templates/calendar/event_detail.html:159
msgid "Until"
msgstr "Jusqu'à"

#: app/templates/calendar/event_detail.html:173
msgid "Last Updated"
msgstr "Dernière mise à jour"

#: app/templates/calendar/event_detail.html:182
msgid "Back to Calendar"
msgstr "Retour au calendrier"

#: app/templates/calendar/event_detail.html:191
msgid "Delete Event"
msgstr "Supprimer l'événement"

#: app/templates/calendar/event_detail.html:192
msgid "Are you sure you want to delete this event? This action cannot be undone."
msgstr ""
"Êtes-vous sûr de vouloir supprimer cet événement ? Cette action ne peut pas "
"être annulée."

#: app/templates/calendar/event_form.html:2
#: app/templates/calendar/event_form.html:10
msgid "Edit Event"
msgstr "Modifier l'événement"

#: app/templates/calendar/event_form.html:2
#: app/templates/calendar/event_form.html:10 app/templates/calendar/view.html:46
msgid "New Event"
msgstr "Nouvel événement"

#: app/templates/calendar/event_form.html:19
#: app/templates/client_portal/quote_detail.html:34
#: app/templates/client_portal/quotes.html:26 app/templates/contacts/form.html:52
#: app/templates/contacts/list.html:28 app/templates/contacts/view.html:48
#: app/templates/invoices/edit.html:132 app/templates/leads/form.html:50
#: app/templates/quotes/accept.html:18 app/templates/quotes/create.html:40
#: app/templates/quotes/edit.html:32 app/templates/quotes/list.html:128
#: app/utils/pdf_generator_fallback.py:468
msgid "Title"
msgstr "Titre"

#: app/templates/calendar/event_form.html:40
#: app/templates/import_export/index.html:177
#: app/templates/import_export/index.html:215
#: app/templates/timer/manual_entry.html:59
msgid "Start Date"
msgstr "Date de début"

#: app/templates/calendar/event_form.html:50
#: app/templates/client_portal/time_entries.html:54
#: app/templates/timer/manual_entry.html:63
msgid "Start Time"
msgstr "Heure de début"

#: app/templates/calendar/event_form.html:61
#: app/templates/import_export/index.html:182
#: app/templates/import_export/index.html:220
#: app/templates/timer/manual_entry.html:70
msgid "End Date"
msgstr "Date de fin"

#: app/templates/calendar/event_form.html:71
#: app/templates/client_portal/time_entries.html:55
#: app/templates/timer/manual_entry.html:74
msgid "End Time"
msgstr "Heure de fin"

#: app/templates/calendar/event_form.html:88
msgid "All Day Event"
msgstr "Événement toute la journée"

#: app/templates/calendar/event_form.html:104
msgid "Event Type"
msgstr "Type d'événement"

#: app/templates/calendar/event_form.html:107
#: app/templates/contacts/communication_form.html:32
msgid "Meeting"
msgstr "Réunion"

#: app/templates/calendar/event_form.html:108
msgid "Appointment"
msgstr "Rendez-vous"

#: app/templates/calendar/event_form.html:110
msgid "Deadline"
msgstr "Date limite"

#: app/templates/calendar/event_form.html:118
#: app/templates/calendar/event_form.html:131
#: app/templates/calendar/event_form.html:144
msgid "-- None --"
msgstr "-- Aucun --"

#: app/templates/calendar/event_form.html:157
msgid "No reminder"
msgstr "Aucun rappel"

#: app/templates/calendar/event_form.html:158
msgid "5 minutes before"
msgstr "5 minutes avant"

#: app/templates/calendar/event_form.html:159
msgid "15 minutes before"
msgstr "15 minutes avant"

#: app/templates/calendar/event_form.html:160
msgid "30 minutes before"
msgstr "30 minutes avant"

#: app/templates/calendar/event_form.html:161
msgid "1 hour before"
msgstr "1 heure avant"

#: app/templates/calendar/event_form.html:162
msgid "1 day before"
msgstr "1 jour avant"

#: app/templates/calendar/event_form.html:168 app/templates/kanban/columns.html:51
#: app/templates/kanban/create_column.html:60
#: app/templates/kanban/edit_column.html:52
msgid "Color"
msgstr "Couleur"

#: app/templates/calendar/event_form.html:175
msgid "Choose a color for this event"
msgstr "Choisissez une couleur pour cet événement"

#: app/templates/calendar/event_form.html:187
msgid "Private Event"
msgstr "Événement privé"

#: app/templates/calendar/event_form.html:189
msgid "Private events are only visible to you"
msgstr "Les événements privés ne sont visibles que par vous"

#: app/templates/calendar/event_form.html:194
msgid "Recurring Event"
msgstr "Événement récurrent"

#: app/templates/calendar/event_form.html:203
msgid "This is a recurring event"
msgstr "C'est un événement récurrent"

#: app/templates/calendar/event_form.html:209
msgid "Recurrence Pattern"
msgstr "Modèle de récurrence"

#: app/templates/calendar/event_form.html:216
msgid "Use RRULE format (e.g., FREQ=WEEKLY;BYDAY=MO,WE,FR)"
msgstr "Utilisez le format RRULE (par exemple, FREQ=WEEKLY;BYDAY=MO,WE,FR)"

#: app/templates/calendar/event_form.html:220
msgid "Recurrence End Date"
msgstr "Date de fin de récurrence"

#: app/templates/calendar/event_form.html:234
msgid "Update Event"
msgstr "Événement de mise à jour"

#: app/templates/calendar/event_form.html:234
msgid "Create Event"
msgstr "Créer un événement"

#: app/templates/calendar/view.html:18
msgid "View and manage your events, tasks, and time entries"
msgstr "Affichez et gérez vos événements, tâches et entrées de temps"

#: app/templates/calendar/view.html:30
msgid "Day"
msgstr "Jour"

#: app/templates/calendar/view.html:34 app/templates/weekly_goals/index.html:79
msgid "Week"
msgstr "Semaine"

#: app/templates/calendar/view.html:38
msgid "Month"
msgstr "Mois"

#: app/templates/calendar/view.html:59
msgid "Today"
msgstr "Aujourd'hui"

#: app/templates/calendar/view.html:92
msgid "Loading calendar..."
msgstr "Chargement du calendrier..."

#: app/templates/calendar/view.html:102
msgid "Event Details"
msgstr "Détails de l'événement"

#: app/templates/client_notes/edit.html:3 app/templates/client_notes/edit.html:9
msgid "Edit Client Note"
msgstr "Modifier la note du client"

#: app/templates/client_notes/edit.html:12 app/templates/clients/edit.html:11
msgid "Back to Client"
msgstr "Retour au client"

#: app/templates/client_notes/edit.html:24
msgid "Client:"
msgstr "Client:"

#: app/templates/client_notes/edit.html:38
msgid "Created on"
msgstr "Créé le"

#: app/templates/client_notes/edit.html:41 app/templates/comments/edit.html:54
msgid "Last edited on"
msgstr "Dernière modification le"

#: app/templates/client_notes/edit.html:54 app/templates/clients/view.html:197
msgid "Note Content"
msgstr "Contenu de la note"

#: app/templates/client_notes/edit.html:64
msgid "Internal note visible only to your team."
msgstr "Note interne visible uniquement par votre équipe."

#: app/templates/client_notes/edit.html:77 app/templates/clients/view.html:215
msgid "Mark as important"
msgstr "Marquer comme important"

#: app/templates/client_portal/base.html:6
#: app/templates/client_portal/base.html:28
#: app/templates/client_portal/dashboard.html:4
#: app/templates/client_portal/dashboard.html:8
#: app/templates/client_portal/dashboard.html:13
#: app/templates/client_portal/invoice_detail.html:4
#: app/templates/client_portal/invoice_detail.html:8
#: app/templates/client_portal/invoices.html:4
#: app/templates/client_portal/invoices.html:8
#: app/templates/client_portal/login.html:25
#: app/templates/client_portal/projects.html:4
#: app/templates/client_portal/projects.html:8
#: app/templates/client_portal/quote_detail.html:4
#: app/templates/client_portal/quote_detail.html:8
#: app/templates/client_portal/quotes.html:4
#: app/templates/client_portal/quotes.html:8
#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:25
#: app/templates/client_portal/time_entries.html:4
#: app/templates/client_portal/time_entries.html:8
msgid "Client Portal"
msgstr "Portail client"

#: app/templates/client_portal/dashboard.html:14
#, python-format
msgid "Welcome, %(client_name)s"
msgstr "Bienvenue, %(client_name)s"

#: app/templates/client_portal/dashboard.html:43
msgid "Total Invoices"
msgstr "Total des factures"

#: app/templates/client_portal/dashboard.html:66
#: app/templates/client_portal/dashboard.html:91
#: app/templates/client_portal/dashboard.html:123
msgid "View All"
msgstr "Tout afficher"

#: app/templates/client_portal/dashboard.html:83
#: app/templates/client_portal/projects.html:49
msgid "No projects found."
msgstr "Aucun projet trouvé."

#: app/templates/client_portal/dashboard.html:90
msgid "Recent Invoices"
msgstr "Factures récentes"

#: app/templates/client_portal/dashboard.html:114
#: app/templates/client_portal/invoices.html:91
msgid "No invoices found."
msgstr "Aucune facture trouvée."

#: app/templates/client_portal/dashboard.html:122
#: app/templates/user/profile.html:89
msgid "Recent Time Entries"
msgstr "Entrées de temps récentes"

#: app/templates/client_portal/dashboard.html:141
#: app/templates/client_portal/dashboard.html:142
#: app/templates/client_portal/quotes.html:51
#: app/templates/client_portal/time_entries.html:64
#: app/templates/client_portal/time_entries.html:65
#: app/templates/timer/manual_entry.html:27 app/templates/user/profile.html:77
msgid "N/A"
msgstr "N / A"

#: app/templates/client_portal/dashboard.html:151
#: app/templates/client_portal/time_entries.html:83
msgid "No time entries found."
msgstr "Aucune entrée de temps trouvée."

#: app/templates/client_portal/invoice_detail.html:16
#: app/templates/client_portal/invoice_detail.html:33
#: app/templates/payments/create.html:44
msgid "Invoice Details"
msgstr "Détails de la facture"

#: app/templates/client_portal/invoice_detail.html:34
#: app/templates/client_portal/invoices.html:48
#: app/templates/invoices/edit.html:251 app/templates/invoices/pdf_default.html:40
#: app/utils/pdf_generator.py:618
msgid "Issue Date"
msgstr "Date d'émission"

#: app/templates/client_portal/invoice_detail.html:45
#, python-format
msgid "This invoice is %(days)d days overdue."
msgstr "Cette facture est en retard de %(days)d jours."

#: app/templates/client_portal/invoice_detail.html:52
#: app/templates/invoices/edit.html:60 app/utils/pdf_generator_fallback.py:216
msgid "Invoice Items"
msgstr "Postes de facture"

#: app/templates/client_portal/invoice_detail.html:58
#: app/templates/client_portal/quote_detail.html:70
#: app/templates/inventory/adjustments/list.html:59
#: app/templates/inventory/movements/form.html:52
#: app/templates/inventory/movements/list.html:56
#: app/templates/inventory/reports/movement_history.html:71
#: app/templates/inventory/reports/valuation.html:61
#: app/templates/inventory/reservations/list.html:41
#: app/templates/inventory/stock_items/history.html:62
#: app/templates/inventory/stock_items/view.html:170
#: app/templates/inventory/transfers/form.html:50
#: app/templates/inventory/transfers/list.html:42
#: app/templates/inventory/warehouses/view.html:132
#: app/templates/invoices/edit.html:75 app/templates/invoices/edit.html:98
#: app/templates/invoices/edit.html:479 app/templates/projects/add_good.html:45
#: app/templates/projects/edit_good.html:45 app/templates/projects/goods.html:41
#: app/templates/quotes/create.html:67 app/templates/quotes/edit.html:68
#: app/templates/quotes/pdf_default.html:79 app/templates/quotes/view.html:93
#: app/utils/pdf_generator_fallback.py:482
msgid "Quantity"
msgstr "Quantité"

#: app/templates/client_portal/invoice_detail.html:59
#: app/templates/client_portal/quote_detail.html:71
#: app/templates/invoices/edit.html:76 app/templates/invoices/edit.html:99
#: app/templates/invoices/edit.html:480 app/templates/invoices/pdf_default.html:73
#: app/templates/projects/add_good.html:50
#: app/templates/projects/edit_good.html:50 app/templates/projects/goods.html:42
#: app/templates/quotes/create.html:69 app/templates/quotes/edit.html:70
#: app/templates/quotes/pdf_default.html:80 app/templates/quotes/view.html:94
#: app/utils/pdf_generator.py:647 app/utils/pdf_generator_fallback.py:219
#: app/utils/pdf_generator_fallback.py:482
msgid "Unit Price"
msgstr "Prix ​​unitaire"

#: app/templates/client_portal/invoices.html:15
#, python-format
msgid "Invoices for %(client_name)s"
msgstr "Factures pour %(client_name)s"

#: app/templates/client_portal/invoices.html:24
#: app/templates/inventory/movements/list.html:35
#: app/templates/inventory/purchase_orders/list.html:23
#: app/templates/inventory/reservations/list.html:22
#: app/templates/inventory/suppliers/list.html:28
#: app/templates/kanban/board.html:16 app/templates/quotes/list.html:80
msgid "All"
msgstr "Tous"

#: app/templates/client_portal/invoices.html:28 app/utils/i18n_helpers.py:83
#: app/utils/i18n_helpers.py:95
msgid "Paid"
msgstr "Payé"

#: app/templates/client_portal/invoices.html:32
#: app/templates/invoices/list.html:159 app/utils/i18n_helpers.py:105
#: app/utils/i18n_helpers.py:116
msgid "Unpaid"
msgstr "Non rémunéré"

#: app/templates/client_portal/invoices.html:36
#: app/templates/tasks/_kanban.html:103 app/templates/tasks/overdue.html:34
#: app/utils/i18n_helpers.py:84 app/utils/i18n_helpers.py:96
msgid "Overdue"
msgstr "En retard"

#: app/templates/client_portal/invoices.html:50
#: app/templates/client_portal/quotes.html:29 app/templates/invoices/edit.html:135
#: app/templates/invoices/edit.html:158 app/templates/projects/dashboard.html:370
#: app/templates/quotes/list.html:130
msgid "Amount"
msgstr "Montant"

#: app/templates/client_portal/invoices.html:67
msgid "days overdue"
msgstr "jours de retard"

#: app/templates/client_portal/login.html:6
msgid "Client Portal Login"
msgstr "Connexion au portail client"

#: app/templates/client_portal/login.html:26
msgid "View your projects and invoices"
msgstr "Consultez vos projets et factures"

#: app/templates/client_portal/login.html:30
msgid "Sign in to Client Portal"
msgstr "Connectez-vous au portail client"

#: app/templates/client_portal/login.html:31
msgid "Enter your portal credentials to access your projects and invoices"
msgstr "Entrez vos identifiants de portail pour accéder à vos projets et factures"

#: app/templates/client_portal/login.html:41 app/templates/clients/edit.html:86
msgid "portal_username"
msgstr "nom_utilisateur_portail"

#: app/templates/client_portal/login.html:47
#: app/templates/client_portal/set_password.html:49
msgid "Enter your password"
msgstr "Entrez votre mot de passe"

#: app/templates/client_portal/projects.html:15
#, python-format
msgid "Projects for %(client_name)s"
msgstr "Projets pour %(client_name)s"

#: app/templates/client_portal/quote_detail.html:16
#: app/templates/client_portal/quote_detail.html:33
#: app/templates/quotes/accept.html:15 app/templates/quotes/pdf_default.html:61
#: app/templates/quotes/view.html:47
msgid "Quote Details"
msgstr "Détails du devis"

#: app/templates/client_portal/quote_detail.html:37
#: app/templates/client_portal/quotes.html:28 app/templates/quotes/create.html:105
#: app/templates/quotes/edit.html:132 app/templates/quotes/pdf_default.html:42
#: app/templates/quotes/view.html:394 app/utils/pdf_generator_fallback.py:471
msgid "Valid Until"
msgstr "Valable jusqu'au"

#: app/templates/client_portal/quote_detail.html:50
msgid "This quote has expired."
msgstr "Ce devis est expiré."

#: app/templates/client_portal/quote_detail.html:64
#: app/templates/quotes/create.html:54 app/templates/quotes/edit.html:55
#: app/templates/quotes/view.html:87
msgid "Quote Items"
msgstr "Articles de devis"

#: app/templates/client_portal/quote_detail.html:113
msgid "Terms & Conditions"
msgstr "Conditions générales"

#: app/templates/client_portal/quotes.html:15
#, python-format
msgid "Quotes for %(client_name)s"
msgstr "Devis pour %(client_name)s"

#: app/templates/client_portal/quotes.html:48
#: app/templates/inventory/reservations/list.html:26
#: app/templates/inventory/reservations/list.html:86
#: app/templates/inventory/reservations/list.html:94
#: app/templates/quotes/list.html:85 app/templates/quotes/list.html:164
#: app/templates/quotes/view.html:69 app/templates/quotes/view.html:398
msgid "Expired"
msgstr "Expiré"

#: app/templates/client_portal/quotes.html:76
msgid "No quotes found."
msgstr "Aucune citation trouvée."

#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:59
msgid "Set Password"
msgstr "Définir le mot de passe"

#: app/templates/client_portal/set_password.html:26
msgid "Set your password to get started"
msgstr "Définissez votre mot de passe pour commencer"

#: app/templates/client_portal/set_password.html:30
#: app/templates/email/client_portal_password_setup.html:97
msgid "Set Your Password"
msgstr "Définissez votre mot de passe"

#: app/templates/client_portal/set_password.html:32
msgid "Set a password for your client portal account"
msgstr "Définir un mot de passe pour votre compte portail client"

#: app/templates/client_portal/set_password.html:51
msgid "Password must be at least 8 characters long"
msgstr "Le mot de passe doit comporter au moins 8 caractères"

#: app/templates/client_portal/set_password.html:53
msgid "Confirm Password"
msgstr "Confirmez le mot de passe"

#: app/templates/client_portal/set_password.html:56
msgid "Confirm your password"
msgstr "Confirmez votre mot de passe"

#: app/templates/client_portal/time_entries.html:15
#, python-format
msgid "Time entries for %(client_name)s projects"
msgstr "Entrées de temps pour les projets %(client_name)s"

#: app/templates/client_portal/time_entries.html:25
#: app/templates/tasks/my_tasks.html:146
msgid "All Projects"
msgstr "Tous les projets"

#: app/templates/client_portal/time_entries.html:32
msgid "From Date"
msgstr "À partir de la date"

#: app/templates/client_portal/time_entries.html:36
msgid "To Date"
msgstr "À ce jour"

#: app/templates/client_portal/time_entries.html:78
msgid "Total entries"
msgstr "Total des entrées"

#: app/templates/client_portal/time_entries.html:79
msgid "Total hours"
msgstr "Heures totales"

#: app/templates/clients/create.html:3 app/templates/clients/create.html:8
#: app/templates/clients/create.html:80 app/templates/projects/create.html:378
#: app/templates/projects/create.html:420
msgid "Create Client"
msgstr "Créer un client"

#: app/templates/clients/create.html:9
msgid "Add a new client to manage related projects and billing."
msgstr "Ajoutez un nouveau client pour gérer les projets associés et la facturation."

#: app/templates/clients/create.html:11
msgid "Back to Clients"
msgstr "Retour aux Clients"

#: app/templates/clients/create.html:23 app/templates/clients/edit.html:23
#: app/templates/projects/create.html:387
msgid "Enter client name"
msgstr "Entrez le nom du client"

#: app/templates/clients/create.html:26 app/templates/clients/create.html:95
#: app/templates/clients/edit.html:26 app/templates/projects/create.html:390
msgid "Default Hourly Rate"
msgstr "Taux horaire par défaut"

#: app/templates/clients/create.html:27 app/templates/clients/edit.html:27
#: app/templates/projects/create.html:67 app/templates/projects/create.html:391
msgid "e.g. 75.00"
msgstr "par ex. 75.00"

#: app/templates/clients/create.html:28 app/templates/clients/edit.html:28
msgid "This rate will be automatically filled when creating projects for this client"
msgstr ""
"Ce tarif sera automatiquement renseigné lors de la création de projets pour "
"ce client"

#: app/templates/clients/create.html:35 app/templates/projects/create.html:48
#: app/templates/projects/edit.html:44 app/templates/tasks/create.html:35
msgid "Supports Markdown"
msgstr "Prend en charge la démarque"

#: app/templates/clients/create.html:38 app/templates/clients/edit.html:34
#: app/templates/projects/create.html:396
msgid "Brief description of the client or project scope"
msgstr "Brève description de la portée du client ou du projet"

#: app/templates/clients/create.html:45 app/templates/clients/edit.html:52
#: app/templates/inventory/suppliers/form.html:36
#: app/templates/inventory/suppliers/list.html:43
#: app/templates/inventory/suppliers/view.html:47
#: app/templates/inventory/warehouses/form.html:36
#: app/templates/inventory/warehouses/list.html:24
#: app/templates/inventory/warehouses/view.html:47
#: app/templates/main/help.html:232 app/templates/projects/create.html:400
msgid "Contact Person"
msgstr "Personne de contact"

#: app/templates/clients/create.html:46 app/templates/clients/edit.html:53
#: app/templates/projects/create.html:401
msgid "Primary contact name"
msgstr "Nom du contact principal"

#: app/templates/clients/create.html:50 app/templates/clients/edit.html:57
#: app/templates/projects/create.html:405
msgid "contact@client.com"
msgstr "contact@client.com"

#: app/templates/clients/create.html:56 app/templates/clients/edit.html:39
msgid "Monthly Prepaid Hours"
msgstr "Heures mensuelles prépayées"

#: app/templates/clients/create.html:57 app/templates/clients/edit.html:40
msgid "e.g. 50"
msgstr "par ex. 50"

#: app/templates/clients/create.html:58 app/templates/clients/edit.html:41
msgid "Leave empty if this client has no prepaid allocation."
msgstr "Laissez vide si ce client n’a pas d’allocation prépayée."

#: app/templates/clients/create.html:61 app/templates/clients/edit.html:44
msgid "Prepaid Reset Day"
msgstr "Jour de réinitialisation prépayé"

#: app/templates/clients/create.html:63 app/templates/clients/edit.html:46
msgid "Day of the month when prepaid hours reset (1-28)."
msgstr "Jour du mois de réinitialisation des heures prépayées (1-28)."

#: app/templates/clients/create.html:70 app/templates/clients/edit.html:64
msgid "+1 (555) 123-4567"
msgstr "+1 (555) 123-4567"

#: app/templates/clients/create.html:74 app/templates/clients/edit.html:68
msgid "Client address"
msgstr "Adresse du client"

#: app/templates/clients/create.html:92
msgid "Choose a clear, descriptive name for the client organization."
msgstr "Choisissez un nom clair et descriptif pour l'organisation cliente."

#: app/templates/clients/create.html:96
msgid ""
"Set the standard hourly rate for this client. This will automatically "
"populate when creating new projects."
msgstr ""
"Définissez le taux horaire standard pour ce client. Celui-ci sera "
"automatiquement renseigné lors de la création de nouveaux projets."

#: app/templates/clients/create.html:99 app/templates/contacts/view.html:25
msgid "Contact Information"
msgstr "Coordonnées"

#: app/templates/clients/create.html:100
msgid "Add contact details for easy communication and record keeping."
msgstr ""
"Ajoutez des coordonnées pour faciliter la communication et la tenue de "
"dossiers."

#: app/templates/clients/create.html:103 app/templates/clients/view.html:111
msgid "Prepaid Hours"
msgstr "Heures prépayées"

#: app/templates/clients/create.html:104
msgid ""
"Configure monthly included hours and the reset day if this client has a "
"retainer or prepaid bundle."
msgstr ""
"Configurez les heures mensuelles incluses et le jour de réinitialisation si "
"ce client dispose d'un forfait forfaitaire ou prépayé."

#: app/templates/clients/create.html:108
msgid "Provide context about the client relationship or typical project types."
msgstr ""
"Fournissez le contexte de la relation client ou des types de projets "
"typiques."

#: app/templates/clients/edit.html:3 app/templates/clients/edit.html:8
#: app/templates/clients/view.html:13
msgid "Edit Client"
msgstr "Modifier le client"

#: app/templates/clients/edit.html:73
#: app/templates/email/client_portal_password_setup.html:72
msgid "Client Portal Access"
msgstr "Accès au portail client"

#: app/templates/clients/edit.html:75
msgid ""
"Enable portal access for this client. Clients can log in with their own "
"credentials to view projects, invoices, and time entries."
msgstr ""
"Activez l'accès au portail pour ce client. Les clients peuvent se connecter "
"avec leurs propres informations d'identification pour afficher les projets, "
"les factures et les entrées de temps."

#: app/templates/clients/edit.html:80
msgid "Enable Client Portal"
msgstr "Activer le portail client"

#: app/templates/clients/edit.html:85
msgid "Portal Username"
msgstr "Nom d'utilisateur du portail"

#: app/templates/clients/edit.html:87
msgid "Unique username for portal login"
msgstr "Nom d'utilisateur unique pour la connexion au portail"

#: app/templates/clients/edit.html:90
msgid "Portal Password"
msgstr "Mot de passe du portail"

#: app/templates/clients/edit.html:91
msgid "Leave empty to keep current password"
msgstr "Laisser vide pour conserver le mot de passe actuel"

#: app/templates/clients/edit.html:92
msgid "Set a new password or leave empty to keep current"
msgstr "Définissez un nouveau mot de passe ou laissez vide pour rester à jour"

#: app/templates/clients/edit.html:97
msgid "Current portal username"
msgstr "Nom d'utilisateur actuel du portail"

#: app/templates/clients/edit.html:106
msgid "Update Client"
msgstr "Mettre à jour le client"

#: app/templates/clients/edit.html:115
msgid "Send Password Setup Email"
msgstr "Envoyer un e-mail de configuration du mot de passe"

#: app/templates/clients/edit.html:119
#, python-format
msgid "Send an email to %(email)s with a link to set their portal password."
msgstr ""
"Envoyez un e-mail à %(email)s avec un lien pour définir son mot de passe de "
"portail."

#: app/templates/clients/edit.html:125
msgid ""
"Email address is required to send password setup email. Please set the "
"client email address above."
msgstr ""
"Une adresse e-mail est requise pour envoyer un e-mail de configuration du "
"mot de passe. Veuillez définir l'adresse e-mail du client ci-dessus."

#: app/templates/clients/edit.html:134
msgid "Client Statistics"
msgstr "Statistiques clients"

#: app/templates/clients/edit.html:138
msgid "Total Projects"
msgstr "Total des projets"

#: app/templates/clients/edit.html:150
msgid "Est. Total Cost"
msgstr "HNE. Coût total"

#: app/templates/clients/list.html:19
msgid "Filter Clients"
msgstr "Filtrer les clients"

#: app/templates/clients/list.html:20 app/templates/expenses/list.html:66
#: app/templates/invoices/list.html:33 app/templates/mileage/list.html:60
#: app/templates/payments/list.html:46 app/templates/per_diem/list.html:48
#: app/templates/projects/list.html:20 app/templates/quotes/list.html:67
#: app/templates/tasks/list.html:33 app/templates/tasks/my_tasks.html:107
msgid "Toggle Filters"
msgstr "Basculer les filtres"

#: app/templates/clients/list.html:51 app/templates/expenses/list.html:160
#: app/templates/expenses/list.html:239 app/templates/projects/list.html:79
#: app/templates/tasks/list.html:99
msgid "Export to CSV"
msgstr "Exporter au format CSV"

#: app/templates/clients/list.html:183 app/templates/clients/list.html:212
#: app/templates/expenses/list.html:434 app/templates/expenses/list.html:463
#: app/templates/invoices/list.html:458 app/templates/invoices/list.html:487
#: app/templates/mileage/list.html:255 app/templates/mileage/list.html:284
#: app/templates/payments/list.html:281 app/templates/payments/list.html:310
#: app/templates/per_diem/list.html:284 app/templates/per_diem/list.html:313
#: app/templates/projects/list.html:438 app/templates/projects/list.html:467
#: app/templates/quotes/list.html:216 app/templates/quotes/list.html:243
#: app/templates/tasks/list.html:543 app/templates/tasks/list.html:572
#: app/templates/tasks/my_tasks.html:595 app/templates/tasks/my_tasks.html:625
msgid "Hide Filters"
msgstr "Masquer les filtres"

#: app/templates/clients/list.html:190 app/templates/clients/list.html:206
#: app/templates/expenses/list.html:441 app/templates/expenses/list.html:457
#: app/templates/invoices/list.html:465 app/templates/invoices/list.html:481
#: app/templates/mileage/list.html:262 app/templates/mileage/list.html:278
#: app/templates/payments/list.html:288 app/templates/payments/list.html:304
#: app/templates/per_diem/list.html:291 app/templates/per_diem/list.html:307
#: app/templates/projects/list.html:445 app/templates/projects/list.html:461
#: app/templates/quotes/list.html:222 app/templates/quotes/list.html:238
#: app/templates/tasks/list.html:550 app/templates/tasks/list.html:566
#: app/templates/tasks/my_tasks.html:602 app/templates/tasks/my_tasks.html:619
msgid "Show Filters"
msgstr "Afficher les filtres"

#: app/templates/clients/view.html:15
msgid "Mark client as Inactive?"
msgstr "Marquer le client comme inactif ?"

#: app/templates/clients/view.html:15
msgid "Change Client Status"
msgstr "Changer le statut du client"

#: app/templates/clients/view.html:17 app/templates/projects/view.html:34
msgid "Mark Inactive"
msgstr "Marquer comme inactif"

#: app/templates/clients/view.html:20
msgid "Activate client?"
msgstr "Activer le client ?"

#: app/templates/clients/view.html:20
msgid "Activate Client"
msgstr "Activer le client"

#: app/templates/clients/view.html:29
msgid "Delete Client"
msgstr "Supprimer le client"

#: app/templates/clients/view.html:46
msgid "Manage"
msgstr "Gérer"

#: app/templates/clients/view.html:60 app/templates/contacts/form.html:65
#: app/templates/contacts/list.html:42
msgid "Primary"
msgstr "Primaire"

#: app/templates/clients/view.html:71
msgid "more contact(s)"
msgstr "plus de contact(s)"

#: app/templates/clients/view.html:76
msgid "No contacts yet"
msgstr "Aucun contact pour l'instant"

#: app/templates/clients/view.html:78
msgid "Add Contact"
msgstr "Ajouter un contact"

#: app/templates/clients/view.html:83
msgid "Legacy Contact Info"
msgstr "Informations de contact héritées"

#: app/templates/clients/view.html:113
#, python-format
msgid "Plan includes %(hours)s hours per cycle. Resets on day %(day)s."
msgstr ""
"Le forfait comprend %(heures)s heures par cycle. Se réinitialise le jour "
"%(day)s."

#: app/templates/clients/view.html:117
msgid "Current cycle start"
msgstr "Début du cycle en cours"

#: app/templates/clients/view.html:121
msgid "Remaining hours"
msgstr "Heures restantes"

#: app/templates/clients/view.html:122 app/templates/clients/view.html:126
#: app/templates/invoices/generate_from_time.html:26
#: app/templates/tasks/edit.html:164 app/templates/tasks/edit.html:166
#: app/templates/tasks/edit.html:169
msgid "h"
msgstr "h"

#: app/templates/clients/view.html:125
msgid "Consumed this cycle"
msgstr "J'ai consommé ce cycle"

#: app/templates/clients/view.html:161 app/templates/projects/view.html:89
#: app/utils/i18n_helpers.py:63 app/utils/i18n_helpers.py:73
msgid "Archived"
msgstr "Archivé"

#: app/templates/clients/view.html:186
#: app/templates/inventory/purchase_orders/form.html:59
#: app/templates/quotes/create.html:185 app/templates/quotes/edit.html:199
msgid "Internal Notes"
msgstr "Notes internes"

#: app/templates/clients/view.html:188
msgid "Add Note"
msgstr "Ajouter une note"

#: app/templates/clients/view.html:204
msgid "Add an internal note about this client..."
msgstr "Ajouter une note interne sur ce client..."

#: app/templates/clients/view.html:220
msgid "Save Note"
msgstr "Enregistrer la note"

#: app/templates/clients/view.html:244 app/templates/comments/_comment.html:23
msgid "edited"
msgstr "édité"

#: app/templates/clients/view.html:253
msgid "Important"
msgstr "Important"

#: app/templates/clients/view.html:262
msgid "Unmark"
msgstr "Décocher"

#: app/templates/clients/view.html:262
msgid "Mark Important"
msgstr "Marquer comme important"

#: app/templates/clients/view.html:289
msgid ""
"No notes yet. Add a note to keep track of important information about this "
"client."
msgstr ""
"Aucune note pour l'instant. Ajoutez une note pour garder une trace des "
"informations importantes sur ce client."

#: app/templates/clients/view.html:338
msgid "Are you sure you want to delete this note?"
msgstr "Êtes-vous sûr de vouloir supprimer cette note ?"

#: app/templates/clients/view.html:340
msgid "Delete Note"
msgstr "Supprimer la note"

#: app/templates/comments/_comment.html:22
msgid "Edited on"
msgstr "Edité le"

#: app/templates/comments/_comment.html:39 app/templates/comments/_comment.html:82
#: app/templates/quotes/view.html:351 app/templates/quotes/view.html:365
msgid "Reply"
msgstr "Répondre"

#: app/templates/comments/_comment.html:78
msgid "Write your reply..."
msgstr "Écrivez votre réponse..."

#: app/templates/comments/_comments_section.html:6
#: app/templates/quotes/view.html:255
msgid "Comments"
msgstr "Commentaires"

#: app/templates/comments/_comments_section.html:12
#: app/templates/quotes/view.html:261
msgid "Add Comment"
msgstr "Ajouter un commentaire"

#: app/templates/comments/_comments_section.html:28
#: app/templates/quotes/view.html:271
msgid "Your Comment"
msgstr "Votre commentaire"

#: app/templates/comments/_comments_section.html:30
#: app/templates/quotes/view.html:272
msgid "Share your thoughts, updates, or questions..."
msgstr "Partagez vos réflexions, mises à jour ou questions..."

#: app/templates/comments/_comments_section.html:32
#: app/templates/comments/edit.html:70
msgid "You can use line breaks to format your comment."
msgstr "Vous pouvez utiliser des sauts de ligne pour formater votre commentaire."

#: app/templates/comments/_comments_section.html:34
msgid "Add Image"
msgstr "Ajouter une image"

#: app/templates/comments/_comments_section.html:41
#: app/templates/quotes/view.html:282
msgid "Post Comment"
msgstr "Publier un commentaire"

#: app/templates/comments/_comments_section.html:71
msgid "No comments yet"
msgstr "Pas encore de commentaires"

#: app/templates/comments/_comments_section.html:72
msgid "Start the conversation by adding the first comment."
msgstr "Démarrez la conversation en ajoutant le premier commentaire."

#: app/templates/comments/_comments_section.html:74
msgid "Add First Comment"
msgstr "Ajouter un premier commentaire"

#: app/templates/comments/edit.html:3 app/templates/comments/edit.html:12
msgid "Edit Comment"
msgstr "Modifier le commentaire"

#: app/templates/comments/edit.html:15 app/templates/invoices/edit.html:11
#: app/templates/weekly_goals/view.html:25
msgid "Back"
msgstr "Dos"

#: app/templates/comments/edit.html:26
msgid "Editing comment on:"
msgstr "Modification du commentaire sur :"

#: app/templates/comments/edit.html:50
msgid "Originally posted on"
msgstr "Initialement publié sur"

#: app/templates/comments/edit.html:66
msgid "Comment Content"
msgstr "Contenu du commentaire"

#: app/templates/components/activity_feed_widget.html:18
msgid "All Activities"
msgstr "Toutes les activités"

#: app/templates/components/activity_feed_widget.html:35
msgid "Time Templates"
msgstr "Modèles de temps"

#: app/templates/components/activity_feed_widget.html:103
#: app/templates/components/activity_feed_widget.html:289
#: app/templates/projects/dashboard.html:262 app/templates/user/profile.html:153
msgid "No recent activity"
msgstr "Aucune activité récente"

#: app/templates/components/activity_feed_widget.html:104
#: app/templates/components/activity_feed_widget.html:290
msgid "Activity will appear here as you work"
msgstr "L'activité apparaîtra ici pendant que vous travaillez"

#: app/templates/components/activity_feed_widget.html:111
#: app/templates/components/activity_feed_widget.html:279
#: app/templates/components/activity_feed_widget.html:317
msgid "Load More"
msgstr "Charger plus"

#: app/templates/components/activity_feed_widget.html:310
msgid "Failed to load activities"
msgstr "Échec du chargement des activités"

#: app/templates/components/ui.html:52
msgid "Home"
msgstr "Maison"

#: app/templates/contacts/communication_form.html:31
msgid "Call"
msgstr "Appel"

#: app/templates/contacts/communication_form.html:33
msgid "Note"
msgstr "Note"

#: app/templates/contacts/communication_form.html:34
msgid "Message"
msgstr "Message"

#: app/templates/contacts/communication_form.html:39
msgid "Direction"
msgstr "Direction"

#: app/templates/contacts/communication_form.html:41
msgid "Outbound"
msgstr "Sortant"

#: app/templates/contacts/communication_form.html:42
msgid "Inbound"
msgstr "Entrant"

#: app/templates/contacts/communication_form.html:47
#: app/templates/quotes/view.html:440
msgid "Subject"
msgstr "Sujet"

#: app/templates/contacts/communication_form.html:60 app/utils/i18n_helpers.py:159
#: app/utils/i18n_helpers.py:170 app/utils/i18n_helpers.py:237
#: app/utils/i18n_helpers.py:249
msgid "Pending"
msgstr "En attente"

#: app/templates/contacts/communication_form.html:61
msgid "Scheduled"
msgstr "Programmé"

#: app/templates/contacts/communication_form.html:67
msgid "Follow-up Date"
msgstr "Date de suivi"

#: app/templates/contacts/communication_form.html:72
msgid "Content/Notes"
msgstr "Contenu/Remarques"

#: app/templates/contacts/communication_form.html:79
msgid "Save Communication"
msgstr "Enregistrer la communication"

#: app/templates/contacts/form.html:27 app/templates/leads/form.html:25
msgid "First Name"
msgstr "Prénom"

#: app/templates/contacts/form.html:32 app/templates/leads/form.html:30
msgid "Last Name"
msgstr "Nom de famille"

#: app/templates/contacts/form.html:47 app/templates/contacts/view.html:42
#: app/templates/main/about.html:146
msgid "Mobile"
msgstr "Mobile"

#: app/templates/contacts/form.html:57 app/templates/contacts/view.html:54
msgid "Department"
msgstr "Département"

#: app/templates/contacts/form.html:64 app/templates/deals/form.html:40
msgid "Contact"
msgstr "Contact"

#: app/templates/contacts/form.html:66
msgid "Billing"
msgstr "Facturation"

#: app/templates/contacts/form.html:67
msgid "Technical"
msgstr "Technique"

#: app/templates/contacts/form.html:74
msgid "Set as primary contact"
msgstr "Définir comme contact principal"

#: app/templates/contacts/form.html:89 app/templates/leads/form.html:93
#: app/templates/main/dashboard.html:87 app/templates/main/search.html:38
#: app/templates/tasks/_kanban.html:1299 app/templates/timer/manual_entry.html:86
msgid "Tags"
msgstr "Balises"

#: app/templates/contacts/form.html:96
msgid "Save Contact"
msgstr "Enregistrer le contact"

#: app/templates/contacts/list.html:63
msgid "Set Primary"
msgstr "Définir comme principal"

#: app/templates/contacts/list.html:76
msgid "No contacts found"
msgstr "Aucun contact trouvé"

#: app/templates/contacts/list.html:78
msgid "Add First Contact"
msgstr "Ajouter un premier contact"

#: app/templates/contacts/view.html:29
msgid "Primary Contact"
msgstr "Contact principal"

#: app/templates/contacts/view.html:81
msgid "Communication History"
msgstr "Historique des communications"

#: app/templates/contacts/view.html:83
msgid "Add Communication"
msgstr "Ajouter une communication"

#: app/templates/contacts/view.html:104
msgid "No communications recorded"
msgstr "Aucune communication enregistrée"

#: app/templates/deals/form.html:25 app/templates/deals/list.html:50
msgid "Deal Name"
msgstr "Nom de l'offre"

#: app/templates/deals/form.html:32
msgid "Select Client"
msgstr "Sélectionnez un client"

#: app/templates/deals/form.html:42
msgid "Select Contact"
msgstr "Sélectionnez Contact"

#: app/templates/deals/form.html:52 app/templates/deals/list.html:30
#: app/templates/deals/list.html:52
msgid "Stage"
msgstr "Scène"

#: app/templates/deals/form.html:61
msgid "Deal Value"
msgstr "Valeur de la transaction"

#: app/templates/deals/form.html:75
msgid "Win Probability"
msgstr "Probabilité de gagner"

#: app/templates/deals/form.html:80
msgid "Expected Close Date"
msgstr "Date de clôture prévue"

#: app/templates/deals/form.html:86
msgid "Related Quote"
msgstr "Citation connexe"

#: app/templates/deals/form.html:88
msgid "Select Quote"
msgstr "Sélectionnez un devis"

#: app/templates/deals/form.html:109
msgid "Save Deal"
msgstr "Enregistrer l'offre"

#: app/templates/deals/list.html:24
msgid "Open"
msgstr "Ouvrir"

#: app/templates/deals/list.html:25
msgid "Won"
msgstr "Gagné"

#: app/templates/deals/list.html:26
msgid "Lost"
msgstr "Perdu"

#: app/templates/deals/list.html:32
msgid "All Stages"
msgstr "Toutes les étapes"

#: app/templates/deals/list.html:53
msgid "Value"
msgstr "Valeur"

#: app/templates/deals/list.html:54
msgid "Probability"
msgstr "Probabilité"

#: app/templates/deals/list.html:55
msgid "Expected Close"
msgstr "Clôture prévue"

#: app/templates/deals/list.html:91
msgid "No deals found"
msgstr "Aucune offre trouvée"

#: app/templates/deals/list.html:93
msgid "Create First Deal"
msgstr "Créer la première transaction"

#: app/templates/email/comment_mention.html:70
msgid "You Were Mentioned"
msgstr "Vous avez été mentionné"

#: app/templates/email/comment_mention.html:90
msgid "View Task & Reply"
msgstr "Afficher la tâche et la réponse"

#: app/templates/email/invoice.html:63
#: app/templates/inventory/movements/list.html:36
#: app/templates/invoices/pdf_default.html:5 app/utils/pdf_generator.py:523
#: app/utils/pdf_generator.py:533
msgid "Invoice"
msgstr "Facture"

#: app/templates/email/overdue_invoice.html:65
msgid "Invoice Overdue"
msgstr "Facture en retard"

#: app/templates/email/overdue_invoice.html:106
msgid "View Invoice"
msgstr "Afficher la facture"

#: app/templates/email/quote.html:63
#: app/templates/inventory/movements/list.html:37
#: app/templates/quotes/pdf_default.html:5
msgid "Quote"
msgstr "Citation"

#: app/templates/email/quote_accepted.html:67
msgid "Quote Accepted"
msgstr "Devis accepté"

#: app/templates/email/quote_accepted.html:84
#: app/templates/email/quote_approval_rejected.html:98
#: app/templates/email/quote_approved.html:84
#: app/templates/email/quote_expired.html:83
#: app/templates/email/quote_expiring.html:93
#: app/templates/email/quote_rejected.html:81
#: app/templates/email/quote_sent.html:81
msgid "View Quote"
msgstr "Voir le devis"

#: app/templates/email/quote_approval_rejected.html:74
msgid "Quote Approval Rejected"
msgstr "Approbation du devis rejetée"

#: app/templates/email/quote_approval_request.html:67
msgid "Approval Requested"
msgstr "Approbation demandée"

#: app/templates/email/quote_approval_request.html:83
msgid "Review Quote"
msgstr "Examiner le devis"

#: app/templates/email/quote_approved.html:67
msgid "Quote Approved"
msgstr "Devis approuvé"

#: app/templates/email/quote_expired.html:67
msgid "Quote Expired"
msgstr "Devis expiré"

#: app/templates/email/quote_expiring.html:74
msgid "Quote Expiring Soon"
msgstr "Devis expirant bientôt"

#: app/templates/email/quote_rejected.html:67
msgid "Quote Rejected"
msgstr "Devis rejeté"

#: app/templates/email/quote_sent.html:67
msgid "Quote Sent"
msgstr "Devis envoyé"

#: app/templates/email/task_assigned.html:71
msgid "Task Assignment"
msgstr "Affectation des tâches"

#: app/templates/email/task_assigned.html:117 app/templates/tasks/edit.html:274
msgid "View Task"
msgstr "Afficher la tâche"

#: app/templates/email/test_email.html:115
msgid "Test Details"
msgstr "Détails du test"

#: app/templates/email/weekly_summary.html:89
msgid "Your Weekly Summary"
msgstr "Votre résumé hebdomadaire"

#: app/templates/errors/400.html:3 app/templates/errors/400.html:12
msgid "400 Bad Request"
msgstr "400 requêtes incorrectes"

#: app/templates/errors/400.html:16
msgid "Invalid Request"
msgstr "Demande invalide"

#: app/templates/errors/400.html:18
msgid "The request you made is invalid or contains errors. This could be due to:"
msgstr ""
"La demande que vous avez faite n'est pas valide ou contient des erreurs. "
"Cela pourrait être dû à :"

#: app/templates/errors/400.html:21
msgid "Missing or invalid form data"
msgstr "Données de formulaire manquantes ou invalides"

#: app/templates/errors/400.html:22
msgid "Malformed request parameters"
msgstr "Paramètres de requête mal formés"

#: app/templates/errors/400.html:26 app/templates/errors/403.html:27
#: app/templates/errors/404.html:18 app/templates/errors/500.html:21
#: app/templates/errors/generic.html:25 app/templates/errors/generic.html:43
#: app/templates/main/help.html:527
msgid "Go to Dashboard"
msgstr "Aller au tableau de bord"

#: app/templates/errors/400.html:29 app/templates/errors/404.html:21
#: app/templates/errors/generic.html:29 app/templates/errors/generic.html:46
msgid "Go Back"
msgstr "Retourner"

#: app/templates/errors/403.html:3 app/templates/errors/403.html:12
msgid "403 Forbidden"
msgstr "403 Interdit"

#: app/templates/errors/403.html:16
msgid "Access Denied"
msgstr "Accès refusé"

#: app/templates/errors/403.html:18
msgid "You don't have permission to access this resource. This could be due to:"
msgstr ""
"Vous n'êtes pas autorisé à accéder à cette ressource. Cela pourrait être dû "
"à :"

#: app/templates/errors/403.html:21
msgid "Insufficient privileges"
msgstr "Privilèges insuffisants"

#: app/templates/errors/403.html:22
msgid "Not logged in"
msgstr "Non connecté"

#: app/templates/errors/403.html:23
msgid "Resource access restrictions"
msgstr "Restrictions d'accès aux ressources"

#: app/templates/errors/404.html:3 app/templates/errors/404.html:12
msgid "Page Not Found"
msgstr "Page introuvable"

#: app/templates/errors/404.html:14
msgid "The page you're looking for doesn't exist or has been moved."
msgstr "La page que vous recherchez n'existe pas ou a été déplacée."

#: app/templates/errors/500.html:3 app/templates/errors/500.html:12
msgid "Server Error"
msgstr "Erreur de serveur"

#: app/templates/errors/500.html:14
msgid "Something went wrong on our end. Please try again later."
msgstr "Quelque chose s'est mal passé de notre côté. Veuillez réessayer plus tard."

#: app/templates/errors/500.html:18
msgid "Try Again"
msgstr "Essayer à nouveau"

#: app/templates/errors/generic.html:18
msgid "An error occurred while processing your request."
msgstr "Une erreur s'est produite lors du traitement de votre demande."

#: app/templates/errors/generic.html:33
msgid "Refresh Page"
msgstr "Actualiser la page"

#: app/templates/errors/generic.html:37
msgid "Go to Login"
msgstr "Allez dans Connexion"

#: app/templates/expense_categories/form.html:34
msgid "e.g., Travel, Meals, Office Supplies"
msgstr "par exemple, voyages, repas, fournitures de bureau"

#: app/templates/expense_categories/form.html:44
msgid "e.g., TRAVEL, MEALS"
msgstr "par exemple, VOYAGES, REPAS"

#: app/templates/expense_categories/form.html:54
msgid "Brief description of this category..."
msgstr "Brève description de cette catégorie..."

#: app/templates/expense_categories/form.html:73
msgid "e.g., fa-plane, fa-utensils"
msgstr "par exemple, avion fa, ustensiles fa"

#: app/templates/expense_categories/form.html:142
msgid "e.g., 19.00"
msgstr "par exemple, 19h00"

#: app/templates/expenses/form.html:34
msgid "e.g., Flight to Berlin"
msgstr "par exemple, vol pour Berlin"

#: app/templates/expenses/form.html:43
msgid "Additional details about the expense..."
msgstr "Détails supplémentaires sur les dépenses..."

#: app/templates/expenses/form.html:201
msgid "e.g., Lufthansa"
msgstr "par exemple, Lufthansa"

#: app/templates/expenses/form.html:231
msgid "Receipt/Invoice Number"
msgstr "Numéro de reçu/facture"

#: app/templates/expenses/form.html:235
msgid "e.g., INV-2024-001"
msgstr "par exemple, INV-2024-001"

#: app/templates/expenses/form.html:246
msgid "e.g., conference, client-meeting, urgent"
msgstr "par exemple, conférence, réunion client, urgence"

#: app/templates/expenses/form.html:255 app/templates/mileage/form.html:245
#: app/templates/per_diem/form.html:197
msgid "Additional notes..."
msgstr "Notes complémentaires..."

#: app/templates/expenses/list.html:65
msgid "Filter Expenses"
msgstr "Filtrer les dépenses"

#: app/templates/expenses/list.html:192
msgid "Delete Selected Expenses"
msgstr "Supprimer les dépenses sélectionnées"

#: app/templates/expenses/list.html:212
msgid "Change Status for Selected Expenses"
msgstr "Modifier le statut des dépenses sélectionnées"

#: app/templates/expenses/list.html:223 app/templates/invoices/list.html:293
#: app/templates/payments/list.html:253 app/templates/per_diem/list.html:153
#: app/templates/tasks/list.html:269
msgid "Update Status"
msgstr "Statut de la mise à jour"

#: app/templates/expenses/view.html:250
msgid "Associated With"
msgstr "Associé à"

#: app/templates/expenses/view.html:346
msgid "Reject Expense"
msgstr "Rejeter la dépense"

#: app/templates/expenses/view.html:355
msgid "Explain why this expense is being rejected..."
msgstr "Expliquez pourquoi cette dépense est rejetée..."

#: app/templates/expenses/view.html:395
msgid "Are you sure you want to delete this expense?"
msgstr "Etes-vous sûr de vouloir supprimer cette dépense ?"

#: app/templates/expenses/view.html:397
msgid "Delete Expense"
msgstr "Supprimer une dépense"

#: app/templates/import_export/index.html:4
#: app/templates/import_export/index.html:13
msgid "Import/Export Data"
msgstr "Importer/Exporter des données"

#: app/templates/import_export/index.html:8
msgid "Import/Export"
msgstr "Importer/Exporter"

#: app/templates/import_export/index.html:14
msgid ""
"Import data from other time trackers or export your data for GDPR compliance"
" and backups"
msgstr ""
"Importez des données à partir d'autres trackers de temps ou exportez vos "
"données pour la conformité et les sauvegardes du RGPD"

#: app/templates/import_export/index.html:24
msgid "Import Data"
msgstr "Importer des données"

#: app/templates/import_export/index.html:29
msgid "CSV Import"
msgstr "Importation CSV"

#: app/templates/import_export/index.html:30
msgid "Import time entries from a CSV file"
msgstr "Importer des entrées de temps à partir d'un fichier CSV"

#: app/templates/import_export/index.html:34
msgid "Choose CSV File"
msgstr "Choisissez un fichier CSV"

#: app/templates/import_export/index.html:38
msgid "Download Template"
msgstr "Télécharger le modèle"

#: app/templates/import_export/index.html:48
#: app/templates/import_export/index.html:163
msgid "Import from Toggl Track"
msgstr "Importer depuis Toggl Track"

#: app/templates/import_export/index.html:49
msgid "Import time entries from Toggl Track"
msgstr "Importer les entrées de temps depuis Toggl Track"

#: app/templates/import_export/index.html:52
msgid "Import from Toggl"
msgstr "Importer depuis Toggl"

#: app/templates/import_export/index.html:60
#: app/templates/import_export/index.html:64
#: app/templates/import_export/index.html:201
msgid "Import from Harvest"
msgstr "Importer depuis la récolte"

#: app/templates/import_export/index.html:61
msgid "Import time entries from Harvest"
msgstr "Importer les entrées de temps depuis Harvest"

#: app/templates/import_export/index.html:73
msgid "Restore from Backup"
msgstr "Restaurer à partir d'une sauvegarde"

#: app/templates/import_export/index.html:74
msgid "Restore data from a backup file"
msgstr "Restaurer les données à partir d'un fichier de sauvegarde"

#: app/templates/import_export/index.html:88
msgid "Import History"
msgstr "Historique d'importation"

#: app/templates/import_export/index.html:100
msgid "Export Data"
msgstr "Exporter des données"

#: app/templates/import_export/index.html:105
msgid "Full Data Export (GDPR)"
msgstr "Exportation complète des données (RGPD)"

#: app/templates/import_export/index.html:106
msgid "Export all your personal data"
msgstr "Exportez toutes vos données personnelles"

#: app/templates/import_export/index.html:110
msgid "Export as JSON"
msgstr "Exporter au format JSON"

#: app/templates/import_export/index.html:113
msgid "Export as ZIP"
msgstr "Exporter au format ZIP"

#: app/templates/import_export/index.html:123
msgid "Filtered Export"
msgstr "Exportation filtrée"

#: app/templates/import_export/index.html:124
msgid "Export specific data with filters"
msgstr "Exporter des données spécifiques avec des filtres"

#: app/templates/import_export/index.html:127
msgid "Export with Filters"
msgstr "Exporter avec des filtres"

#: app/templates/import_export/index.html:137
msgid "Create a full database backup"
msgstr "Créer une sauvegarde complète de la base de données"

#: app/templates/import_export/index.html:150
msgid "Export History"
msgstr "Historique des exportations"

#: app/templates/import_export/index.html:167
#: app/templates/import_export/index.html:210
msgid "API Token"
msgstr "Jeton API"

#: app/templates/import_export/index.html:172
msgid "Workspace ID"
msgstr "ID de l'espace de travail"

#: app/templates/import_export/index.html:188
#: app/templates/import_export/index.html:226
msgid "Import"
msgstr "Importer"

#: app/templates/import_export/index.html:205
msgid "Account ID"
msgstr "Identifiant du compte"

#: app/templates/inventory/adjustments/form.html:23
#: app/templates/inventory/adjustments/list.html:30
#: app/templates/inventory/movements/form.html:34
#: app/templates/inventory/purchase_orders/form.html:77
#: app/templates/inventory/reports/movement_history.html:30
#: app/templates/inventory/transfers/form.html:23
#: app/templates/invoices/edit.html:72 app/templates/quotes/create.html:64
#: app/templates/quotes/edit.html:65
msgid "Stock Item"
msgstr "Article en stock"

#: app/templates/inventory/adjustments/form.html:25
#: app/templates/inventory/movements/form.html:36
#: app/templates/inventory/purchase_orders/form.html:122
#: app/templates/inventory/transfers/form.html:25
msgid "Select Item"
msgstr "Sélectionner un article"

#: app/templates/inventory/adjustments/form.html:32
#: app/templates/inventory/adjustments/list.html:21
#: app/templates/inventory/adjustments/list.html:58
#: app/templates/inventory/low_stock/list.html:22
#: app/templates/inventory/movements/form.html:43
#: app/templates/inventory/movements/list.html:54
#: app/templates/inventory/purchase_orders/form.html:82
#: app/templates/inventory/reports/low_stock.html:31
#: app/templates/inventory/reports/movement_history.html:21
#: app/templates/inventory/reports/movement_history.html:69
#: app/templates/inventory/reports/valuation.html:21
#: app/templates/inventory/reports/valuation.html:57
#: app/templates/inventory/reservations/list.html:40
#: app/templates/inventory/stock_items/history.html:22
#: app/templates/inventory/stock_items/history.html:60
#: app/templates/inventory/stock_items/view.html:129
#: app/templates/inventory/stock_items/view.html:169
#: app/templates/inventory/stock_levels/item.html:23
#: app/templates/inventory/stock_levels/list.html:20
#: app/templates/inventory/stock_levels/list.html:47
#: app/templates/invoices/edit.html:73 app/templates/quotes/create.html:65
#: app/templates/quotes/edit.html:66
msgid "Warehouse"
msgstr "Entrepôt"

#: app/templates/inventory/adjustments/form.html:34
#: app/templates/inventory/movements/form.html:45
#: app/templates/inventory/purchase_orders/form.html:131
#: app/templates/invoices/edit.html:91 app/templates/quotes/edit.html:87
msgid "Select Warehouse"
msgstr "Sélectionnez un entrepôt"

#: app/templates/inventory/adjustments/form.html:41
msgid "Adjustment Quantity"
msgstr "Quantité d'ajustement"

#: app/templates/inventory/adjustments/form.html:43
msgid "Use positive values to increase stock, negative values to decrease"
msgstr ""
"Utilisez des valeurs positives pour augmenter le stock, des valeurs "
"négatives pour diminuer"

#: app/templates/inventory/adjustments/form.html:46
#: app/templates/inventory/adjustments/list.html:60
#: app/templates/inventory/movements/form.html:57
#: app/templates/inventory/movements/list.html:58
#: app/templates/inventory/reports/movement_history.html:73
#: app/templates/inventory/stock_items/history.html:64
#: app/templates/inventory/stock_items/view.html:171
#: app/templates/inventory/warehouses/view.html:133
msgid "Reason"
msgstr "Raison"

#: app/templates/inventory/adjustments/form.html:47
msgid "e.g., Physical count correction, Damage, Found items"
msgstr "par exemple, correction du décompte physique, dommages, objets trouvés"

#: app/templates/inventory/adjustments/form.html:51
msgid "Additional details about this adjustment"
msgstr "Détails supplémentaires sur cet ajustement"

#: app/templates/inventory/adjustments/form.html:59
msgid "Record Adjustment"
msgstr "Ajustement d'enregistrement"

#: app/templates/inventory/adjustments/list.html:23
#: app/templates/inventory/reports/movement_history.html:23
#: app/templates/inventory/reports/valuation.html:23
#: app/templates/inventory/stock_items/history.html:24
#: app/templates/inventory/stock_levels/list.html:22
msgid "All Warehouses"
msgstr "Tous les entrepôts"

#: app/templates/inventory/adjustments/list.html:32
#: app/templates/inventory/reports/movement_history.html:32
msgid "All Items"
msgstr "Tous les articles"

#: app/templates/inventory/adjustments/list.html:39
#: app/templates/inventory/reports/movement_history.html:50
#: app/templates/inventory/reports/turnover.html:21
#: app/templates/inventory/stock_items/history.html:42
#: app/templates/inventory/transfers/list.html:21
msgid "Date From"
msgstr "Dater de"

#: app/templates/inventory/adjustments/list.html:46
#: app/templates/inventory/reports/movement_history.html:57
#: app/templates/inventory/reports/turnover.html:25
#: app/templates/inventory/stock_items/history.html:49
#: app/templates/inventory/transfers/list.html:25
msgid "Date To"
msgstr "Date de"

#: app/templates/inventory/adjustments/list.html:57
#: app/templates/inventory/low_stock/list.html:23
#: app/templates/inventory/movements/list.html:53
#: app/templates/inventory/purchase_orders/view.html:90
#: app/templates/inventory/reports/low_stock.html:29
#: app/templates/inventory/reports/movement_history.html:68
#: app/templates/inventory/reports/turnover.html:44
#: app/templates/inventory/reports/valuation.html:58
#: app/templates/inventory/reservations/list.html:39
#: app/templates/inventory/stock_levels/list.html:48
#: app/templates/inventory/stock_levels/warehouse.html:45
#: app/templates/inventory/suppliers/view.html:114
#: app/templates/inventory/transfers/list.html:39
#: app/templates/inventory/warehouses/view.html:84
#: app/templates/inventory/warehouses/view.html:130
msgid "Item"
msgstr "Article"

#: app/templates/inventory/adjustments/list.html:87
msgid "No adjustments found."
msgstr "Aucun ajustement trouvé."

#: app/templates/inventory/low_stock/list.html:24
#: app/templates/inventory/stock_items/view.html:130
#: app/templates/inventory/stock_levels/list.html:49
#: app/templates/inventory/warehouses/view.html:86
msgid "On Hand"
msgstr "À portée de main"

#: app/templates/inventory/low_stock/list.html:25
#: app/templates/inventory/reports/low_stock.html:33
#: app/templates/inventory/stock_items/form.html:69
#: app/templates/inventory/stock_items/view.html:91
#: app/templates/inventory/stock_levels/warehouse.html:51
msgid "Reorder Point"
msgstr "Point de commande"

#: app/templates/inventory/low_stock/list.html:26
#: app/templates/inventory/reports/low_stock.html:34
msgid "Shortfall"
msgstr "Manque à gagner"

#: app/templates/inventory/low_stock/list.html:27
msgid "Reorder Qty"
msgstr "Quantité de commande"

#: app/templates/inventory/low_stock/list.html:55
msgid "No low stock alerts. All items are above reorder point."
msgstr ""
"Aucune alerte de stock faible. Tous les articles sont au-dessus du point de "
"commande."

#: app/templates/inventory/movements/form.html:23
#: app/templates/inventory/movements/list.html:21
#: app/templates/inventory/reports/movement_history.html:39
#: app/templates/inventory/stock_items/history.html:31
msgid "Movement Type"
msgstr "Type de mouvement"

#: app/templates/inventory/movements/form.html:25
#: app/templates/inventory/movements/list.html:24
#: app/templates/inventory/reports/movement_history.html:42
#: app/templates/inventory/stock_items/history.html:34
msgid "Adjustment"
msgstr "Ajustement"

#: app/templates/inventory/movements/form.html:26
#: app/templates/inventory/movements/list.html:25
#: app/templates/inventory/reports/movement_history.html:43
#: app/templates/inventory/stock_items/history.html:35
msgid "Transfer"
msgstr "Transfert"

#: app/templates/inventory/movements/form.html:27
#: app/templates/inventory/movements/list.html:26
#: app/templates/inventory/reports/movement_history.html:44
#: app/templates/inventory/stock_items/history.html:36
msgid "Sale"
msgstr "Vente"

#: app/templates/inventory/movements/form.html:28
#: app/templates/inventory/movements/list.html:27
#: app/templates/inventory/reports/movement_history.html:45
#: app/templates/inventory/stock_items/history.html:37
msgid "Purchase"
msgstr "Achat"

#: app/templates/inventory/movements/form.html:29
#: app/templates/inventory/movements/list.html:28
#: app/templates/inventory/reports/movement_history.html:46
#: app/templates/inventory/stock_items/history.html:38
msgid "Return"
msgstr "Retour"

#: app/templates/inventory/movements/form.html:30
#: app/templates/inventory/movements/list.html:29
msgid "Waste"
msgstr "Déchets"

#: app/templates/inventory/movements/form.html:54
msgid "Use positive values for additions, negative for removals"
msgstr ""
"Utilisez des valeurs positives pour les ajouts, négatives pour les "
"suppressions"

#: app/templates/inventory/movements/form.html:58
msgid "e.g., Physical count correction"
msgstr "par exemple, correction du comptage physique"

#: app/templates/inventory/movements/form.html:70
msgid "Record Movement"
msgstr "Mouvement d'enregistrement"

#: app/templates/inventory/movements/list.html:33
msgid "Reference Type"
msgstr "Type de référence"

#: app/templates/inventory/movements/list.html:39
msgid "Manual"
msgstr "Manuel"

#: app/templates/inventory/movements/list.html:57
#: app/templates/inventory/reports/movement_history.html:72
#: app/templates/inventory/reservations/list.html:43
#: app/templates/inventory/stock_items/history.html:63
msgid "Reference"
msgstr "Référence"

#: app/templates/inventory/movements/list.html:107
msgid "No stock movements found."
msgstr "Aucun mouvement de stock trouvé."

#: app/templates/inventory/purchase_orders/form.html:25
#: app/templates/quotes/create.html:27 app/templates/quotes/edit.html:28
msgid "Basic Information"
msgstr "Informations de base"

#: app/templates/inventory/purchase_orders/form.html:29
#: app/templates/inventory/purchase_orders/list.html:32
#: app/templates/inventory/purchase_orders/list.html:51
#: app/templates/inventory/purchase_orders/view.html:50
msgid "Supplier"
msgstr "Fournisseur"

#: app/templates/inventory/purchase_orders/form.html:31
#: app/templates/inventory/stock_items/form.html:107
#: app/templates/inventory/stock_items/form.html:155
msgid "Select Supplier"
msgstr "Sélectionnez le fournisseur"

#: app/templates/inventory/purchase_orders/form.html:38
#: app/templates/inventory/purchase_orders/list.html:52
#: app/templates/inventory/purchase_orders/view.html:58
msgid "Order Date"
msgstr "Date de commande"

#: app/templates/inventory/purchase_orders/form.html:42
msgid "Expected Delivery Date"
msgstr "Date de livraison prévue"

#: app/templates/inventory/purchase_orders/form.html:56
msgid "Notes visible to supplier"
msgstr "Notes visibles par le fournisseur"

#: app/templates/inventory/purchase_orders/form.html:60
msgid "Internal notes (not visible to supplier)"
msgstr "Notes internes (non visibles pour le fournisseur)"

#: app/templates/inventory/purchase_orders/form.html:69
#: app/templates/inventory/purchase_orders/view.html:85
#: app/templates/invoices/edit.html:280
msgid "Items"
msgstr "Articles"

#: app/templates/inventory/purchase_orders/form.html:72
#: app/templates/invoices/edit.html:66 app/templates/quotes/create.html:58
#: app/templates/quotes/edit.html:59
msgid "Add Item"
msgstr "Ajouter un article"

#: app/templates/inventory/purchase_orders/form.html:79
#: app/templates/inventory/purchase_orders/form.html:148
#: app/templates/invoices/edit.html:195 app/templates/invoices/edit.html:213
#: app/templates/invoices/edit.html:546 app/templates/quotes/create.html:279
#: app/templates/quotes/edit.html:94 app/templates/quotes/edit.html:292
msgid "Qty"
msgstr "Qté"

#: app/templates/inventory/purchase_orders/form.html:80
#: app/templates/inventory/purchase_orders/view.html:94
#: app/templates/inventory/reports/valuation.html:62
#: app/templates/inventory/stock_items/form.html:113
#: app/templates/inventory/stock_items/form.html:164
#: app/templates/inventory/suppliers/view.html:116
msgid "Unit Cost"
msgstr "Coût unitaire"

#: app/templates/inventory/purchase_orders/form.html:83
#: app/templates/inventory/purchase_orders/form.html:152
#: app/templates/inventory/stock_items/form.html:112
#: app/templates/inventory/stock_items/form.html:163
#: app/templates/inventory/suppliers/view.html:115
msgid "Supplier SKU"
msgstr "UGS du fournisseur"

#: app/templates/inventory/purchase_orders/form.html:104
msgid "Create Purchase Order"
msgstr "Créer un bon de commande"

#: app/templates/inventory/purchase_orders/list.html:24
#: app/templates/inventory/purchase_orders/list.html:76
#: app/templates/inventory/purchase_orders/view.html:37
#: app/templates/quotes/list.html:81 app/templates/quotes/list.html:156
#: app/templates/quotes/view.html:61 app/utils/i18n_helpers.py:81
#: app/utils/i18n_helpers.py:93
msgid "Draft"
msgstr "Brouillon"

#: app/templates/inventory/purchase_orders/list.html:25
#: app/templates/inventory/purchase_orders/list.html:78
#: app/templates/inventory/purchase_orders/view.html:39
#: app/templates/quotes/list.html:82 app/templates/quotes/list.html:158
#: app/templates/quotes/view.html:63 app/utils/i18n_helpers.py:82
#: app/utils/i18n_helpers.py:94
msgid "Sent"
msgstr "Envoyé"

#: app/templates/inventory/purchase_orders/list.html:26
#: app/templates/inventory/purchase_orders/list.html:80
#: app/templates/inventory/purchase_orders/view.html:41
msgid "Confirmed"
msgstr "Confirmé"

#: app/templates/inventory/purchase_orders/list.html:27
#: app/templates/inventory/purchase_orders/list.html:82
#: app/templates/inventory/purchase_orders/view.html:43
#: app/templates/inventory/purchase_orders/view.html:162
msgid "Received"
msgstr "Reçu"

#: app/templates/inventory/purchase_orders/list.html:34
msgid "All Suppliers"
msgstr "Tous les fournisseurs"

#: app/templates/inventory/purchase_orders/list.html:50
#: app/templates/inventory/purchase_orders/view.html:30
msgid "PO Number"
msgstr "Numéro de bon de commande"

#: app/templates/inventory/purchase_orders/list.html:53
#: app/templates/inventory/purchase_orders/view.html:63
msgid "Expected Delivery"
msgstr "Livraison prévue"

#: app/templates/inventory/purchase_orders/list.html:99
msgid "No purchase orders found."
msgstr "Aucun bon de commande trouvé."

#: app/templates/inventory/purchase_orders/view.html:19
msgid "Are you sure you want to cancel this purchase order?"
msgstr "Êtes-vous sûr de vouloir annuler ce bon de commande ?"

#: app/templates/inventory/purchase_orders/view.html:20
msgid "Are you sure you want to delete this purchase order?"
msgstr "Êtes-vous sûr de vouloir supprimer ce bon de commande ?"

#: app/templates/inventory/purchase_orders/view.html:27
msgid "Purchase Order Details"
msgstr "Détails du bon de commande"

#: app/templates/inventory/purchase_orders/view.html:69
#: app/templates/inventory/purchase_orders/view.html:153
msgid "Received Date"
msgstr "Date de réception"

#: app/templates/inventory/purchase_orders/view.html:92
msgid "Quantity Ordered"
msgstr "Quantité commandée"

#: app/templates/inventory/purchase_orders/view.html:93
msgid "Quantity Received"
msgstr "Quantité reçue"

#: app/templates/inventory/purchase_orders/view.html:95
msgid "Line Total"
msgstr "Total de ligne"

#: app/templates/inventory/purchase_orders/view.html:127
msgid "Shipping"
msgstr "Expédition"

#: app/templates/inventory/purchase_orders/view.html:149
msgid "Receive Purchase Order"
msgstr "Recevoir le bon de commande"

#: app/templates/inventory/purchase_orders/view.html:167
msgid "Mark as Received"
msgstr "Marquer comme reçu"

#: app/templates/inventory/purchase_orders/view.html:174
msgid "No items in this purchase order."
msgstr "Aucun article dans ce bon de commande."

#: app/templates/inventory/purchase_orders/view.html:182
#: app/templates/inventory/stock_items/view.html:199
#: app/templates/inventory/suppliers/view.html:171
#: app/templates/inventory/warehouses/view.html:165
msgid "Summary"
msgstr "Résumé"

#: app/templates/inventory/purchase_orders/view.html:185
#: app/templates/inventory/reports/dashboard.html:21
#: app/templates/inventory/warehouses/view.html:168
msgid "Total Items"
msgstr "Total des articles"

#: app/templates/inventory/reports/dashboard.html:33
msgid "Total Warehouses"
msgstr "Total des entrepôts"

#: app/templates/inventory/reports/dashboard.html:45
msgid "Total Inventory Value"
msgstr "Valeur totale de l'inventaire"

#: app/templates/inventory/reports/dashboard.html:57
msgid "Low Stock Items"
msgstr "Articles en faible stock"

#: app/templates/inventory/reports/dashboard.html:68
msgid "Available Reports"
msgstr "Rapports disponibles"

#: app/templates/inventory/reports/dashboard.html:72
msgid "Stock Valuation"
msgstr "Valorisation des stocks"

#: app/templates/inventory/reports/dashboard.html:73
msgid "View inventory value by warehouse"
msgstr "Afficher la valeur des stocks par entrepôt"

#: app/templates/inventory/reports/dashboard.html:78
msgid "Movement History"
msgstr "Histoire du mouvement"

#: app/templates/inventory/reports/dashboard.html:79
msgid "Detailed movement log"
msgstr "Journal de mouvement détaillé"

#: app/templates/inventory/reports/dashboard.html:84
msgid "Turnover Analysis"
msgstr "Analyse du chiffre d'affaires"

#: app/templates/inventory/reports/dashboard.html:85
msgid "Inventory turnover rates"
msgstr "Taux de rotation des stocks"

#: app/templates/inventory/reports/dashboard.html:90
msgid "Low Stock Report"
msgstr "Rapport de stock faible"

#: app/templates/inventory/reports/dashboard.html:91
msgid "Items below reorder point"
msgstr "Articles en dessous du point de commande"

#: app/templates/inventory/reports/low_stock.html:22
#, python-format
msgid "Found %(count)s items below their reorder point."
msgstr "%(count)s articles trouvés en dessous de leur point de réapprovisionnement."

#: app/templates/inventory/reports/low_stock.html:30
#: app/templates/inventory/reports/turnover.html:45
#: app/templates/inventory/reports/valuation.html:59
#: app/templates/inventory/stock_items/form.html:23
#: app/templates/inventory/stock_items/list.html:49
#: app/templates/inventory/stock_items/view.html:28
#: app/templates/inventory/stock_levels/warehouse.html:46
#: app/templates/inventory/warehouses/view.html:85
#: app/templates/invoices/edit.html:197 app/templates/invoices/edit.html:215
#: app/templates/invoices/edit.html:548
#: app/templates/invoices/pdf_default.html:122 app/utils/pdf_generator.py:762
msgid "SKU"
msgstr "UGS"

#: app/templates/inventory/reports/low_stock.html:32
#: app/templates/inventory/stock_levels/item.html:24
#: app/templates/inventory/stock_levels/warehouse.html:48
msgid "Quantity On Hand"
msgstr "Quantité disponible"

#: app/templates/inventory/reports/low_stock.html:35
#: app/templates/inventory/stock_items/form.html:73
#: app/templates/inventory/stock_items/view.html:95
msgid "Reorder Quantity"
msgstr "Quantité de commande"

#: app/templates/inventory/reports/low_stock.html:59
msgid "Create PO"
msgstr "Créer un bon de commande"

#: app/templates/inventory/reports/low_stock.html:69
msgid "All Stock Levels are Good"
msgstr "Tous les niveaux de stocks sont bons"

#: app/templates/inventory/reports/low_stock.html:70
msgid "No items are currently below their reorder point."
msgstr "Aucun article n'est actuellement en dessous de son point de commande."

#: app/templates/inventory/reports/movement_history.html:126
msgid "No movements found."
msgstr "Aucun mouvement trouvé."

#: app/templates/inventory/reports/turnover.html:37
msgid ""
"Turnover rate indicates how many times inventory is sold and replaced in a "
"year. Higher rates indicate faster-moving items."
msgstr ""
"Le taux de rotation indique combien de fois les stocks sont vendus et "
"remplacés au cours d'une année. Des tarifs plus élevés indiquent des "
"articles qui évoluent plus rapidement."

#: app/templates/inventory/reports/turnover.html:46
msgid "Total Sold"
msgstr "Total vendu"

#: app/templates/inventory/reports/turnover.html:47
msgid "Avg Stock Level"
msgstr "Niveau de stock moyen"

#: app/templates/inventory/reports/turnover.html:48
msgid "Turnover Rate"
msgstr "Taux de roulement"

#: app/templates/inventory/reports/turnover.html:66
msgid "Fast Moving"
msgstr "Déplacement rapide"

#: app/templates/inventory/reports/turnover.html:68
msgid "Normal"
msgstr "Normale"

#: app/templates/inventory/reports/turnover.html:70
msgid "Slow Moving"
msgstr "Mouvement lent"

#: app/templates/inventory/reports/turnover.html:72
msgid "Very Slow"
msgstr "Très lent"

#: app/templates/inventory/reports/turnover.html:79
msgid "No sales data found for the selected period."
msgstr "Aucune donnée de vente trouvée pour la période sélectionnée."

#: app/templates/inventory/reports/valuation.html:30
#: app/templates/inventory/reports/valuation.html:60
#: app/templates/inventory/stock_items/form.html:35
#: app/templates/inventory/stock_items/list.html:25
#: app/templates/inventory/stock_items/list.html:51
#: app/templates/inventory/stock_items/view.html:32
#: app/templates/inventory/stock_levels/list.html:29
#: app/templates/inventory/stock_levels/warehouse.html:21
#: app/templates/inventory/stock_levels/warehouse.html:47
#: app/templates/invoices/edit.html:134 app/templates/invoices/edit.html:194
#: app/templates/invoices/pdf_default.html:125
#: app/templates/projects/add_good.html:29
#: app/templates/projects/edit_good.html:29 app/templates/projects/goods.html:40
#: app/utils/pdf_generator.py:764
msgid "Category"
msgstr "Catégorie"

#: app/templates/inventory/reports/valuation.html:32
#: app/templates/inventory/stock_items/list.html:27
#: app/templates/inventory/stock_levels/list.html:31
#: app/templates/inventory/stock_levels/warehouse.html:23
msgid "All Categories"
msgstr "Toutes les catégories"

#: app/templates/inventory/reports/valuation.html:46
msgid "Inventory Valuation"
msgstr "Évaluation des stocks"

#: app/templates/inventory/reports/valuation.html:48
#: app/templates/inventory/reports/valuation.html:63
#: app/templates/inventory/reports/valuation.html:95
#: app/templates/quotes/list.html:25
msgid "Total Value"
msgstr "Valeur totale"

#: app/templates/inventory/reports/valuation.html:88
msgid "No items found with cost information."
msgstr "Aucun article trouvé avec des informations sur les coûts."

#: app/templates/inventory/reservations/list.html:23
#: app/templates/inventory/reservations/list.html:80
#: app/templates/inventory/stock_items/view.html:131
#: app/templates/inventory/stock_levels/list.html:50
#: app/templates/inventory/warehouses/view.html:87
msgid "Reserved"
msgstr "Réservé"

#: app/templates/inventory/reservations/list.html:24
#: app/templates/inventory/reservations/list.html:82
msgid "Fulfilled"
msgstr "Réalisé"

#: app/templates/inventory/reservations/list.html:45
msgid "Reserved At"
msgstr "Réservé à"

#: app/templates/inventory/reservations/list.html:46
msgid "Expires At"
msgstr "Expire à"

#: app/templates/inventory/reservations/list.html:104
msgid "Fulfill this reservation?"
msgstr "Remplir cette réservation ?"

#: app/templates/inventory/reservations/list.html:110
msgid "Cancel this reservation?"
msgstr "Annuler cette réservation ?"

#: app/templates/inventory/reservations/list.html:120
msgid "No reservations found."
msgstr "Aucune réservation trouvée."

#: app/templates/inventory/stock_items/form.html:45
#: app/templates/inventory/stock_items/list.html:52
#: app/templates/inventory/stock_items/view.html:36
#: app/templates/quotes/create.html:68 app/templates/quotes/create.html:280
#: app/templates/quotes/edit.html:69 app/templates/quotes/edit.html:95
#: app/templates/quotes/edit.html:293
msgid "Unit"
msgstr "Unité"

#: app/templates/inventory/stock_items/form.html:61
#: app/templates/inventory/stock_items/view.html:50
msgid "Default Cost"
msgstr "Coût par défaut"

#: app/templates/inventory/stock_items/form.html:65
#: app/templates/inventory/stock_items/view.html:54
msgid "Default Price"
msgstr "Prix ​​par défaut"

#: app/templates/inventory/stock_items/form.html:77
msgid "Image URL"
msgstr "URL de l'image"

#: app/templates/inventory/stock_items/form.html:91
msgid "Track Inventory"
msgstr "Suivre l'inventaire"

#: app/templates/inventory/stock_items/form.html:99
msgid "Manage multiple suppliers for this item with different pricing."
msgstr "Gérez plusieurs fournisseurs pour cet article avec des prix différents."

#: app/templates/inventory/stock_items/form.html:114
#: app/templates/inventory/stock_items/form.html:165
#: app/templates/inventory/suppliers/view.html:117
msgid "MOQ"
msgstr "Quantité minimale de commande"

#: app/templates/inventory/stock_items/form.html:115
#: app/templates/inventory/stock_items/form.html:166
msgid "Lead Time (days)"
msgstr "Délai (jours)"

#: app/templates/inventory/stock_items/form.html:118
#: app/templates/inventory/stock_items/form.html:169
#: app/templates/inventory/stock_items/view.html:71
#: app/templates/inventory/suppliers/view.html:119
#: app/templates/inventory/suppliers/view.html:149
msgid "Preferred"
msgstr "Préféré"

#: app/templates/inventory/stock_items/form.html:129
msgid "Add Supplier"
msgstr "Ajouter un fournisseur"

#: app/templates/inventory/stock_items/history.html:112
msgid "No movement history found for this item."
msgstr "Aucun historique de mouvement trouvé pour cet article."

#: app/templates/inventory/stock_items/list.html:22
msgid "SKU, Name, Barcode..."
msgstr "SKU, nom, code-barres..."

#: app/templates/inventory/stock_items/list.html:36
#: app/templates/inventory/suppliers/list.html:27
msgid "Active Only"
msgstr "Actif uniquement"

#: app/templates/inventory/stock_items/list.html:53
msgid "Total Qty"
msgstr "Qté totale"

#: app/templates/inventory/stock_items/list.html:54
#: app/templates/inventory/stock_items/view.html:132
#: app/templates/inventory/stock_levels/item.html:26
#: app/templates/inventory/stock_levels/list.html:51
#: app/templates/inventory/stock_levels/warehouse.html:50
#: app/templates/inventory/warehouses/view.html:88
msgid "Available"
msgstr "Disponible"

#: app/templates/inventory/stock_items/list.html:81
#: app/templates/inventory/stock_items/view.html:149
#: app/templates/inventory/stock_levels/list.html:69
#: app/templates/inventory/stock_levels/warehouse.html:73
#: app/templates/inventory/warehouses/view.html:106
msgid "Low Stock"
msgstr "Stock faible"

#: app/templates/inventory/stock_items/list.html:108
msgid "No stock items found."
msgstr "Aucun article en stock trouvé."

#: app/templates/inventory/stock_items/view.html:25
msgid "Item Details"
msgstr "Détails de l'article"

#: app/templates/inventory/stock_items/view.html:110
msgid "Trackable"
msgstr "Traçable"

#: app/templates/inventory/stock_items/view.html:125
msgid "Stock Levels by Warehouse"
msgstr "Niveaux de stock par entrepôt"

#: app/templates/inventory/stock_items/view.html:163
#: app/templates/inventory/warehouses/view.html:125
msgid "Recent Stock Movements"
msgstr "Mouvements de stocks récents"

#: app/templates/inventory/stock_items/view.html:203
msgid "Total On Hand"
msgstr "Total disponible"

#: app/templates/inventory/stock_items/view.html:207
msgid "Total Reserved"
msgstr "Total réservé"

#: app/templates/inventory/stock_items/view.html:211
msgid "Total Available"
msgstr "Total disponible"

#: app/templates/inventory/stock_items/view.html:217
msgid "Low Stock Alert"
msgstr "Alerte de stock faible"

#: app/templates/inventory/stock_items/view.html:223
msgid "This item is not trackable."
msgstr "Cet article n'est pas traçable."

#: app/templates/inventory/stock_items/view.html:230
msgid "Active Reservations"
msgstr "Réservations actives"

#: app/templates/inventory/stock_levels/item.html:25
#: app/templates/inventory/stock_levels/warehouse.html:49
msgid "Quantity Reserved"
msgstr "Quantité réservée"

#: app/templates/inventory/stock_levels/item.html:28
msgid "Last Counted"
msgstr "Dernier décompte"

#: app/templates/inventory/stock_levels/item.html:56
msgid "No stock found for this item in any warehouse."
msgstr "Aucun stock trouvé pour cet article dans aucun entrepôt."

#: app/templates/inventory/stock_levels/list.html:77
msgid "No stock levels found."
msgstr "Aucun niveau de stock trouvé."

#: app/templates/inventory/stock_levels/warehouse.html:32
msgid "Low Stock Only"
msgstr "Stock faible uniquement"

#: app/templates/inventory/stock_levels/warehouse.html:75
msgid "Oversold"
msgstr "Survendu"

#: app/templates/inventory/stock_levels/warehouse.html:84
msgid "No stock items found in this warehouse."
msgstr "Aucun article en stock trouvé dans cet entrepôt."

#: app/templates/inventory/suppliers/form.html:23
msgid "Supplier Code"
msgstr "Code fournisseur"

#: app/templates/inventory/suppliers/form.html:25
msgid "Unique code for this supplier (e.g., SUP-001)"
msgstr "Code unique pour ce fournisseur (par exemple, SUP-001)"

#: app/templates/inventory/suppliers/form.html:60
#: app/templates/inventory/suppliers/view.html:89
#: app/templates/quotes/create.html:114 app/templates/quotes/create.html:117
#: app/templates/quotes/edit.html:141 app/templates/quotes/edit.html:144
#: app/templates/quotes/pdf_default.html:68 app/templates/quotes/view.html:79
msgid "Payment Terms"
msgstr "Conditions de paiement"

#: app/templates/inventory/suppliers/form.html:61
msgid "e.g., Net 30, Net 60"
msgstr "par exemple, Net 30, Net 60"

#: app/templates/inventory/suppliers/list.html:22
msgid "Code, name, email"
msgstr "Code, nom, email"

#: app/templates/inventory/suppliers/list.html:41
#: app/templates/inventory/suppliers/view.html:26
#: app/templates/inventory/warehouses/list.html:22
#: app/templates/inventory/warehouses/view.html:26
msgid "Code"
msgstr "Code"

#: app/templates/inventory/suppliers/list.html:95
msgid "No suppliers found."
msgstr "Aucun fournisseur trouvé."

#: app/templates/inventory/suppliers/view.html:23
msgid "Supplier Details"
msgstr "Détails du fournisseur"

#: app/templates/inventory/suppliers/view.html:109
msgid "Stock Items from this Supplier"
msgstr "Articles en stock de ce fournisseur"

#: app/templates/inventory/suppliers/view.html:118
msgid "Lead Time"
msgstr "Délai de mise en œuvre"

#: app/templates/inventory/suppliers/view.html:163
msgid "No stock items associated with this supplier."
msgstr "Aucun article en stock associé à ce fournisseur."

#: app/templates/inventory/suppliers/view.html:178
msgid "Preferred Items"
msgstr "Articles préférés"

#: app/templates/inventory/transfers/form.html:32
#: app/templates/inventory/transfers/list.html:40
msgid "From Warehouse"
msgstr "Depuis l'entrepôt"

#: app/templates/inventory/transfers/form.html:34
msgid "Select Source Warehouse"
msgstr "Sélectionner l'entrepôt source"

#: app/templates/inventory/transfers/form.html:41
#: app/templates/inventory/transfers/list.html:41
msgid "To Warehouse"
msgstr "Vers l'entrepôt"

#: app/templates/inventory/transfers/form.html:43
msgid "Select Destination Warehouse"
msgstr "Sélectionnez l'entrepôt de destination"

#: app/templates/inventory/transfers/form.html:55
msgid "Optional notes about this transfer"
msgstr "Notes facultatives sur ce transfert"

#: app/templates/inventory/transfers/form.html:63
msgid "Create Transfer"
msgstr "Créer un transfert"

#: app/templates/inventory/transfers/list.html:77
msgid "No transfers found."
msgstr "Aucun transfert trouvé."

#: app/templates/inventory/warehouses/form.html:23
msgid "Warehouse Code"
msgstr "Code d'entrepôt"

#: app/templates/inventory/warehouses/form.html:25
msgid "Unique code for this warehouse (e.g., WH-001)"
msgstr "Code unique pour cet entrepôt (par exemple, WH-001)"

#: app/templates/inventory/warehouses/form.html:40
#: app/templates/inventory/warehouses/list.html:25
#: app/templates/inventory/warehouses/view.html:53
msgid "Contact Email"
msgstr "E-mail de contact"

#: app/templates/inventory/warehouses/form.html:44
#: app/templates/inventory/warehouses/view.html:61
msgid "Contact Phone"
msgstr "Téléphone de contact"

#: app/templates/inventory/warehouses/list.html:68
msgid "No warehouses found."
msgstr "Aucun entrepôt trouvé."

#: app/templates/inventory/warehouses/view.html:23
msgid "Warehouse Details"
msgstr "Détails de l'entrepôt"

#: app/templates/inventory/warehouses/view.html:118
msgid "No stock items in this warehouse."
msgstr "Aucun article en stock dans cet entrepôt."

#: app/templates/inventory/warehouses/view.html:172
msgid "Total Quantity"
msgstr "Quantité totale"

#: app/templates/invoices/create.html:6 app/templates/invoices/create.html:58
#: app/templates/main/help.html:437
msgid "Create Invoice"
msgstr "Créer une facture"

#: app/templates/invoices/create.html:7
msgid "Generate a new invoice for a project and client"
msgstr "Générer une nouvelle facture pour un projet et un client"

#: app/templates/invoices/create.html:9
msgid "Back to Invoices"
msgstr "Retour aux factures"

#: app/templates/invoices/create.html:21 app/templates/main/dashboard.html:294
#: app/templates/tasks/create.html:48 app/templates/tasks/edit.html:70
#: app/templates/timer/manual_entry.html:42
msgid "Select a project"
msgstr "Sélectionnez un projet"

#: app/templates/invoices/create.html:26
msgid "Selecting a project will auto-fill client details"
msgstr "La sélection d'un projet remplira automatiquement les détails du client"

#: app/templates/invoices/create.html:45 app/templates/invoices/edit.html:38
#: app/templates/quotes/create.html:93 app/templates/quotes/edit.html:120
msgid "Tax Rate (%)"
msgstr "Taux d'imposition (%)"

#: app/templates/invoices/create.html:65
#: app/templates/invoices/generate_from_time.html:142
msgid "Tips"
msgstr "Conseils"

#: app/templates/invoices/create.html:67
msgid "Choose the correct project to auto-fill client details."
msgstr "Choisissez le bon projet pour remplir automatiquement les détails du client."

#: app/templates/invoices/create.html:68
msgid "You can customize notes and terms before sending the invoice."
msgstr ""
"Vous pouvez personnaliser les notes et les conditions avant d'envoyer la "
"facture."

#: app/templates/invoices/edit.html:6
msgid "Edit Invoice"
msgstr "Modifier la facture"

#: app/templates/invoices/edit.html:7
msgid "Update invoice details, items, and terms"
msgstr "Mettre à jour les détails, les articles et les conditions de la facture"

#: app/templates/invoices/edit.html:14 app/templates/invoices/view.html:366
#: app/templates/quotes/view.html:31 app/templates/quotes/view.html:461
msgid "Send Email"
msgstr "Envoyer un e-mail"

#: app/templates/invoices/edit.html:63
msgid "Time-based services and hourly work"
msgstr "Services basés sur le temps et travail horaire"

#: app/templates/invoices/edit.html:85 app/templates/quotes/edit.html:81
msgid "Select Stock Item"
msgstr "Sélectionnez un article en stock"

#: app/templates/invoices/edit.html:97 app/templates/invoices/edit.html:478
msgid "e.g., Web Development Services"
msgstr "par exemple, services de développement Web"

#: app/templates/invoices/edit.html:100 app/templates/invoices/edit.html:481
#: app/templates/quotes/create.html:282 app/templates/quotes/edit.html:98
#: app/templates/quotes/edit.html:295
msgid "Remove item"
msgstr "Supprimer l'élément"

#: app/templates/invoices/edit.html:109
msgid "Items Subtotal"
msgstr "Sous-total des articles"

#: app/templates/invoices/edit.html:123
msgid "Billable expenses such as travel, meals, and materials"
msgstr "Dépenses facturables telles que les déplacements, les repas et le matériel"

#: app/templates/invoices/edit.html:126
msgid "Add Expense"
msgstr "Ajouter une dépense"

#: app/templates/invoices/edit.html:144
msgid "e.g., Travel to Client Meeting"
msgstr "par exemple, déplacement pour se rendre à une réunion client"

#: app/templates/invoices/edit.html:144
msgid "Linked expense - title cannot be edited"
msgstr "Dépense liée – le titre ne peut pas être modifié"

#: app/templates/invoices/edit.html:145
msgid "Linked expense - description cannot be edited"
msgstr "Dépense liée – la description ne peut pas être modifiée"

#: app/templates/invoices/edit.html:146
msgid "Linked expense - category cannot be edited"
msgstr "Dépense liée - la catégorie ne peut pas être modifiée"

#: app/templates/invoices/edit.html:147 app/utils/i18n_helpers.py:181
#: app/utils/i18n_helpers.py:198
msgid "Travel"
msgstr "Voyage"

#: app/templates/invoices/edit.html:148 app/utils/i18n_helpers.py:182
#: app/utils/i18n_helpers.py:199
msgid "Meals"
msgstr "Repas"

#: app/templates/invoices/edit.html:149 app/utils/i18n_helpers.py:183
#: app/utils/i18n_helpers.py:200
msgid "Accommodation"
msgstr "Hébergement"

#: app/templates/invoices/edit.html:150 app/utils/i18n_helpers.py:184
#: app/utils/i18n_helpers.py:201
msgid "Supplies"
msgstr "Fournitures"

#: app/templates/invoices/edit.html:151 app/utils/i18n_helpers.py:185
#: app/utils/i18n_helpers.py:202
msgid "Software"
msgstr "Logiciel"

#: app/templates/invoices/edit.html:152 app/utils/i18n_helpers.py:186
#: app/utils/i18n_helpers.py:203
msgid "Equipment"
msgstr "Équipement"

#: app/templates/invoices/edit.html:153 app/utils/i18n_helpers.py:187
#: app/utils/i18n_helpers.py:204
msgid "Services"
msgstr "Services"

#: app/templates/invoices/edit.html:154 app/utils/i18n_helpers.py:188
#: app/utils/i18n_helpers.py:205
msgid "Marketing"
msgstr "Commercialisation"

#: app/templates/invoices/edit.html:155 app/utils/i18n_helpers.py:189
#: app/utils/i18n_helpers.py:206
msgid "Training"
msgstr "Entraînement"

#: app/templates/invoices/edit.html:156 app/templates/invoices/edit.html:211
#: app/templates/invoices/edit.html:544 app/templates/projects/add_good.html:35
#: app/templates/projects/edit_good.html:35 app/utils/i18n_helpers.py:135
#: app/utils/i18n_helpers.py:151 app/utils/i18n_helpers.py:190
#: app/utils/i18n_helpers.py:207
msgid "Other"
msgstr "Autre"

#: app/templates/invoices/edit.html:158
msgid "Linked expense - amount cannot be edited"
msgstr "Dépense liée - le montant ne peut pas être modifié"

#: app/templates/invoices/edit.html:159
msgid "Linked expense - date cannot be edited"
msgstr "Dépense liée - la date ne peut pas être modifiée"

#: app/templates/invoices/edit.html:160
msgid "Unlink expense from invoice"
msgstr "Dissocier les dépenses de la facture"

#: app/templates/invoices/edit.html:169
msgid "Expenses Subtotal"
msgstr "Sous-total des dépenses"

#: app/templates/invoices/edit.html:180 app/templates/invoices/view.html:119
#: app/templates/projects/goods.html:6
msgid "Extra Goods"
msgstr "Marchandises supplémentaires"

#: app/templates/invoices/edit.html:183
msgid "Products, materials, licenses, and other goods"
msgstr "Produits, matériaux, licences et autres biens"

#: app/templates/invoices/edit.html:186 app/templates/projects/add_good.html:69
#: app/templates/projects/goods.html:11
msgid "Add Good"
msgstr "Ajouter du bien"

#: app/templates/invoices/edit.html:196 app/templates/invoices/edit.html:214
#: app/templates/invoices/edit.html:547 app/templates/quotes/create.html:281
#: app/templates/quotes/edit.html:96 app/templates/quotes/edit.html:294
msgid "Price"
msgstr "Prix"

#: app/templates/invoices/edit.html:204 app/templates/invoices/edit.html:537
msgid "e.g., Software License"
msgstr "par exemple, licence de logiciel"

#: app/templates/invoices/edit.html:207 app/templates/invoices/edit.html:540
#: app/templates/projects/add_good.html:31
#: app/templates/projects/edit_good.html:31
msgid "Product"
msgstr "Produit"

#: app/templates/invoices/edit.html:208 app/templates/invoices/edit.html:541
#: app/templates/projects/add_good.html:32
#: app/templates/projects/edit_good.html:32
msgid "Service"
msgstr "Service"

#: app/templates/invoices/edit.html:209 app/templates/invoices/edit.html:542
#: app/templates/projects/add_good.html:33
#: app/templates/projects/edit_good.html:33
msgid "Material"
msgstr "Matériel"

#: app/templates/invoices/edit.html:210 app/templates/invoices/edit.html:543
#: app/templates/projects/add_good.html:34
#: app/templates/projects/edit_good.html:34
msgid "License"
msgstr "Licence"

#: app/templates/invoices/edit.html:216 app/templates/invoices/edit.html:549
msgid "Remove good"
msgstr "Supprimer le bien"

#: app/templates/invoices/edit.html:225
msgid "Goods Subtotal"
msgstr "Sous-total des marchandises"

#: app/templates/invoices/edit.html:243
msgid "Live Preview"
msgstr "Aperçu en direct"

#: app/templates/invoices/edit.html:263
msgid "Payment"
msgstr "Paiement"

#: app/templates/invoices/edit.html:288
msgid "Goods"
msgstr "Marchandises"

#: app/templates/invoices/edit.html:322 app/templates/main/help.html:525
#: app/templates/reports/index.html:150 app/templates/tasks/edit.html:269
msgid "Quick Actions"
msgstr "Actions rapides"

#: app/templates/invoices/edit.html:324
msgid "Generate from Time/Costs"
msgstr "Générer à partir du temps/des coûts"

#: app/templates/invoices/edit.html:325 app/templates/invoices/view.html:22
msgid "Record Payment"
msgstr "Enregistrer le paiement"

#: app/templates/invoices/edit.html:326 app/templates/invoices/view.html:17
#: app/templates/quotes/view.html:28
msgid "Export PDF"
msgstr "Exporter un PDF"

#: app/templates/invoices/edit.html:327
msgid "Export CSV"
msgstr "Exporter au format CSV"

#: app/templates/invoices/edit.html:328
msgid "Duplicate Invoice"
msgstr "Facture en double"

#: app/templates/invoices/edit.html:585
msgid "Are you sure you want to unlink this expense from the invoice?"
msgstr "Êtes-vous sûr de vouloir dissocier cette dépense de la facture ?"

#: app/templates/invoices/edit.html:587
msgid "Unlink Expense"
msgstr "Dissocier les dépenses"

#: app/templates/invoices/edit.html:588
msgid "Unlink"
msgstr "Dissocier"

#: app/templates/invoices/edit.html:639
msgid "Please add at least one item, expense, or extra good to the invoice"
msgstr ""
"Veuillez ajouter au moins un article, une dépense ou un bien supplémentaire "
"à la facture."

#: app/templates/invoices/edit.html:667 app/templates/invoices/view.html:361
#: app/templates/projects/archive.html:41 app/templates/timer/timer_page.html:124
#: app/templates/timer/timer_page.html:133
msgid "Optional"
msgstr "Facultatif"

#: app/templates/invoices/generate_from_time.html:6
msgid "Generate from Time, Costs & Goods"
msgstr "Générer à partir du temps, des coûts et des marchandises"

#: app/templates/invoices/generate_from_time.html:7
msgid ""
"Select unbilled time entries, project costs, and extra goods to add to this "
"invoice"
msgstr ""
"Sélectionnez les entrées de temps non facturées, les coûts du projet et les "
"marchandises supplémentaires à ajouter à cette facture."

#: app/templates/invoices/generate_from_time.html:9
msgid "Back to Edit"
msgstr "Retour à Modifier"

#: app/templates/invoices/generate_from_time.html:19
msgid "Unbilled Time Entries"
msgstr "Saisies de temps non facturées"

#: app/templates/invoices/generate_from_time.html:26
msgid "Time Entry"
msgstr "Saisie du temps"

#: app/templates/invoices/generate_from_time.html:36
msgid "No unbilled time entries found for this project."
msgstr "Aucune entrée de temps non facturé trouvée pour ce projet."

#: app/templates/invoices/generate_from_time.html:41
msgid "Uninvoiced Project Costs"
msgstr "Coûts du projet non facturés"

#: app/templates/invoices/generate_from_time.html:55
msgid "No uninvoiced costs found for this project."
msgstr "Aucun coût non facturé trouvé pour ce projet."

#: app/templates/invoices/generate_from_time.html:60
msgid "Uninvoiced Billable Expenses"
msgstr "Dépenses facturables non facturées"

#: app/templates/invoices/generate_from_time.html:70
#: app/templates/invoices/pdf_default.html:103
msgid "Vendor"
msgstr "Fournisseur"

#: app/templates/invoices/generate_from_time.html:78
msgid "No uninvoiced billable expenses found for this project."
msgstr "Aucune dépense facturable non facturée trouvée pour ce projet."

#: app/templates/invoices/generate_from_time.html:83
msgid "Project Extra Goods"
msgstr "Projet de biens supplémentaires"

#: app/templates/invoices/generate_from_time.html:100
msgid "No extra goods found for this project."
msgstr "Aucune marchandise supplémentaire trouvée pour ce projet."

#: app/templates/invoices/generate_from_time.html:106
msgid "Add Selected to Invoice"
msgstr "Ajouter la sélection à la facture"

#: app/templates/invoices/generate_from_time.html:114
msgid "Selection Summary"
msgstr "Résumé de la sélection"

#: app/templates/invoices/generate_from_time.html:115
msgid "Total available hours"
msgstr "Nombre total d'heures disponibles"

#: app/templates/invoices/generate_from_time.html:116
msgid "Total available costs"
msgstr "Coûts totaux disponibles"

#: app/templates/invoices/generate_from_time.html:117
msgid "Total available expenses"
msgstr "Total des dépenses disponibles"

#: app/templates/invoices/generate_from_time.html:118
msgid "Total available goods"
msgstr "Total des biens disponibles"

#: app/templates/invoices/generate_from_time.html:121
msgid "Prepaid Hours Overview"
msgstr "Aperçu des heures prépayées"

#: app/templates/invoices/generate_from_time.html:123
#, python-format
msgid "Plan includes %(hours)s hours per cycle (resets on day %(day)s)."
msgstr ""
"Le plan comprend %(hours)s heures par cycle (réinitialisations le jour "
"%(day)s)."

#: app/templates/invoices/generate_from_time.html:130
#, python-format
msgid "Consumed: %(consumed)s h • Remaining: %(remaining)s h"
msgstr "Consommé : %(consommé)s h • Restant : %(restant)s h"

#: app/templates/invoices/generate_from_time.html:135
msgid "No prepaid usage recorded for selected period yet."
msgstr ""
"Aucune utilisation prépayée enregistrée pour la période sélectionnée pour le"
" moment."

#: app/templates/invoices/generate_from_time.html:144
msgid "You can select multiple time entries, costs, expenses, and extra goods."
msgstr ""
"Vous pouvez sélectionner plusieurs entrées de temps, coûts, dépenses et "
"biens supplémentaires."

#: app/templates/invoices/generate_from_time.html:145
msgid "Time entries are grouped by task or project at item creation."
msgstr ""
"Les entrées de temps sont regroupées par tâche ou projet lors de la création"
" de l'élément."

#: app/templates/invoices/generate_from_time.html:146
msgid "Costs and extra goods are added as individual invoice items."
msgstr ""
"Les coûts et les marchandises supplémentaires sont ajoutés sous forme de "
"postes de facture individuels."

#: app/templates/invoices/generate_from_time.html:147
msgid "Expenses are linked to the invoice and appear in a separate section."
msgstr ""
"Les dépenses sont liées à la facture et apparaissent dans une section "
"distincte."

#: app/templates/invoices/generate_from_time.html:163
msgid "Please select at least one time entry, cost, expense, or extra good"
msgstr ""
"Veuillez sélectionner au moins une entrée horaire, un coût, une dépense ou "
"un bien supplémentaire."

#: app/templates/invoices/list.html:32
msgid "Filter Invoices"
msgstr "Filtrer les factures"

#: app/templates/invoices/list.html:72
msgid "Invoice number or client"
msgstr "Numéro de facture ou client"

#: app/templates/invoices/list.html:89 app/templates/payments/list.html:96
msgid "Export to Excel"
msgstr "Exporter vers Excel"

#: app/templates/invoices/list.html:163 app/utils/i18n_helpers.py:106
#: app/utils/i18n_helpers.py:117
msgid "Partially Paid"
msgstr "Partiellement payé"

#: app/templates/invoices/list.html:167 app/utils/i18n_helpers.py:107
#: app/utils/i18n_helpers.py:118
msgid "Fully Paid"
msgstr "Entièrement payé"

#: app/templates/invoices/list.html:262
msgid "Delete Selected Invoices"
msgstr "Supprimer les factures sélectionnées"

#: app/templates/invoices/list.html:282
msgid "Change Status for Selected Invoices"
msgstr "Modifier le statut des factures sélectionnées"

#: app/templates/invoices/list.html:306 app/templates/invoices/list.html:329
#: app/templates/invoices/view.html:252 app/templates/invoices/view.html:275
msgid "Delete Invoice"
msgstr "Supprimer la facture"

#: app/templates/invoices/list.html:314 app/templates/invoices/view.html:260
#: app/templates/kanban/columns.html:149
msgid "Warning:"
msgstr "Avertissement:"

#: app/templates/invoices/list.html:317 app/templates/invoices/view.html:263
msgid "Are you sure you want to delete invoice"
msgstr "Êtes-vous sûr de vouloir supprimer la facture"

#: app/templates/invoices/list.html:319 app/templates/invoices/view.html:265
msgid ""
"All invoice items, extra goods, and payment records associated with this "
"invoice will be permanently deleted."
msgstr ""
"Tous les éléments de facture, marchandises supplémentaires et "
"enregistrements de paiement associés à cette facture seront définitivement "
"supprimés."

#: app/templates/invoices/pdf_default.html:37 app/utils/pdf_generator.py:615
#: app/utils/pdf_generator_fallback.py:162
msgid "INVOICE"
msgstr "FACTURE"

#: app/templates/invoices/pdf_default.html:39 app/utils/pdf_generator.py:617
msgid "Invoice #"
msgstr "Facture #"

#: app/templates/invoices/pdf_default.html:49 app/utils/pdf_generator.py:628
msgid "Bill To"
msgstr "Facturer à"

#: app/templates/invoices/pdf_default.html:72 app/utils/pdf_generator.py:646
#: app/utils/pdf_generator_fallback.py:219
msgid "Quantity (Hours)"
msgstr "Quantité (heures)"

#: app/templates/invoices/pdf_default.html:84
#, python-format
msgid "Generated from %(num)d time entries"
msgstr "Généré à partir de %(num)d entrées de temps"

#: app/templates/invoices/pdf_default.html:100
msgid "Expense"
msgstr "Frais"

#: app/templates/invoices/pdf_default.html:136
#: app/templates/quotes/pdf_default.html:96
#: app/utils/pdf_generator_fallback.py:256 app/utils/pdf_generator_fallback.py:517
msgid "Subtotal:"
msgstr "Total:"

#: app/templates/invoices/pdf_default.html:141
#: app/templates/quotes/pdf_default.html:119
#: app/utils/pdf_generator_fallback.py:259
#, python-format
msgid "Tax (%(rate).2f%%):"
msgstr "Taxe (%(taux).2f%%) :"

#: app/templates/invoices/pdf_default.html:146
#: app/templates/quotes/pdf_default.html:124
#: app/utils/pdf_generator_fallback.py:261
msgid "Total Amount:"
msgstr "Montant total:"

#: app/templates/invoices/pdf_default.html:157 app/utils/pdf_generator.py:827
#: app/utils/pdf_generator_fallback.py:307
msgid "Notes:"
msgstr "Remarques :"

#: app/templates/invoices/pdf_default.html:163 app/utils/pdf_generator.py:835
#: app/utils/pdf_generator_fallback.py:312
msgid "Terms:"
msgstr "Termes:"

#: app/templates/invoices/pdf_default.html:172
#: app/templates/quotes/pdf_default.html:150 app/utils/pdf_generator.py:855
#: app/utils/pdf_generator_fallback.py:324
msgid "Payment Information:"
msgstr "Informations de paiement :"

#: app/templates/invoices/pdf_default.html:175
#: app/templates/quotes/pdf_default.html:141
#: app/templates/quotes/pdf_default.html:154 app/utils/pdf_generator.py:666
#: app/utils/pdf_generator_fallback.py:329 app/utils/pdf_generator_fallback.py:549
msgid "Terms & Conditions:"
msgstr "Conditions générales :"

#: app/templates/invoices/view.html:176 app/templates/invoices/view.html:236
msgid "Payment History"
msgstr "Historique des paiements"

#: app/templates/invoices/view.html:344
msgid "Send Invoice via Email"
msgstr "Envoyer la facture par e-mail"

#: app/templates/kanban/board.html:4
msgid "Kanban"
msgstr "Kanban"

#: app/templates/kanban/board.html:24 app/templates/tasks/_kanban.html:14
msgid "Manage Columns"
msgstr "Gérer les colonnes"

#: app/templates/kanban/board.html:33
msgid "Drag tasks between columns to update their status"
msgstr "Faites glisser les tâches entre les colonnes pour mettre à jour leur statut"

#: app/templates/kanban/board.html:38
msgid "Kanban board"
msgstr "Tableau Kanban"

#: app/templates/kanban/board.html:89
msgid "moved to"
msgstr "déménagé à"

#: app/templates/kanban/board.html:123
#: app/templates/projects/_kanban_tailwind.html:83
msgid "No tasks in this column."
msgstr "Aucune tâche dans cette colonne."

#: app/templates/kanban/columns.html:2 app/templates/kanban/columns.html:18
msgid "Manage Kanban Columns"
msgstr "Gérer les colonnes Kanban"

#: app/templates/kanban/columns.html:20
msgid "Customize your kanban board columns and task states"
msgstr "Personnalisez les colonnes de votre tableau Kanban et les états des tâches"

#: app/templates/kanban/columns.html:25
msgid "Project:"
msgstr "Projet:"

#: app/templates/kanban/columns.html:27
msgid "Global Columns"
msgstr "Colonnes globales"

#: app/templates/kanban/columns.html:35
msgid "Add Column"
msgstr "Ajouter une colonne"

#: app/templates/kanban/columns.html:44
msgid "Kanban columns list"
msgstr "Liste des colonnes Kanban"

#: app/templates/kanban/columns.html:48
msgid "Key"
msgstr "Clé"

#: app/templates/kanban/columns.html:49
msgid "Label"
msgstr "Étiquette"

#: app/templates/kanban/columns.html:50
msgid "Icon"
msgstr "Icône"

#: app/templates/kanban/columns.html:53
msgid "Complete?"
msgstr "Complet?"

#: app/templates/kanban/columns.html:62
msgid "Drag to reorder"
msgstr "Faites glisser pour réorganiser"

#: app/templates/kanban/columns.html:93
msgid "Edit column"
msgstr "Modifier la colonne"

#: app/templates/kanban/columns.html:96
msgid "Toggle active state"
msgstr "Basculer l'état actif"

#: app/templates/kanban/columns.html:118
msgid "No kanban columns found. Create your first column to get started."
msgstr "Aucune colonne Kanban trouvée. Créez votre première colonne pour commencer."

#: app/templates/kanban/columns.html:124
msgid "Tips:"
msgstr "Conseils:"

#: app/templates/kanban/columns.html:126
msgid "Drag and drop rows to reorder columns"
msgstr "Faites glisser et déposez les lignes pour réorganiser les colonnes"

#: app/templates/kanban/columns.html:127
msgid ""
"System columns (todo, in_progress, done) cannot be deleted but can be "
"customized"
msgstr ""
"Les colonnes système (todo, in_progress, done) ne peuvent pas être "
"supprimées mais peuvent être personnalisées"

#: app/templates/kanban/columns.html:128
msgid ""
"Columns marked as \"Complete\" will mark tasks as completed when dragged to "
"that column"
msgstr ""
"Les colonnes marquées comme « Complète » marqueront les tâches comme "
"terminées lorsqu'elles seront glissées vers cette colonne."

#: app/templates/kanban/columns.html:129
msgid ""
"Inactive columns are hidden from the kanban board but tasks with that status"
" remain accessible"
msgstr ""
"Les colonnes inactives sont masquées du tableau Kanban mais les tâches avec "
"ce statut restent accessibles"

#: app/templates/kanban/columns.html:141
msgid "Delete Kanban Column"
msgstr "Supprimer la colonne Kanban"

#: app/templates/kanban/columns.html:152
msgid "Are you sure you want to delete the column?"
msgstr "Êtes-vous sûr de vouloir supprimer la colonne ?"

#: app/templates/kanban/columns.html:154
msgid "Key:"
msgstr "Clé:"

#: app/templates/kanban/columns.html:157
msgid ""
"Note: Tasks with this status will remain accessible but the column will no "
"longer appear on the kanban board."
msgstr ""
"Remarque : Les tâches avec ce statut resteront accessibles mais la colonne "
"n'apparaîtra plus sur le tableau Kanban."

#: app/templates/kanban/columns.html:167
msgid "Delete Column"
msgstr "Supprimer la colonne"

#: app/templates/kanban/columns.html:226 app/templates/kanban/columns.html:228
msgid "Columns reordered successfully"
msgstr "Colonnes réorganisées avec succès"

#: app/templates/kanban/columns.html:247
msgid "Failed to reorder columns. Please try again."
msgstr "Échec de la réorganisation des colonnes. Veuillez réessayer."

#: app/templates/kanban/create_column.html:2
#: app/templates/kanban/create_column.html:10
msgid "Create Kanban Column"
msgstr "Créer une colonne Kanban"

#: app/templates/kanban/create_column.html:12
msgid "Add a new column to your kanban board"
msgstr "Ajoutez une nouvelle colonne à votre tableau Kanban"

#: app/templates/kanban/create_column.html:23
msgid "Create Kanban Column form"
msgstr "Créer un formulaire de colonne Kanban"

#: app/templates/kanban/create_column.html:26
#: app/templates/kanban/edit_column.html:34
msgid "Column Label"
msgstr "Étiquette de colonne"

#: app/templates/kanban/create_column.html:27
msgid "e.g., In Review, Blocked, Testing"
msgstr "par exemple, En révision, Bloqué, Test"

#: app/templates/kanban/create_column.html:28
#: app/templates/kanban/edit_column.html:36
msgid "The display name shown on the kanban board"
msgstr "Le nom d'affichage affiché sur le tableau Kanban"

#: app/templates/kanban/create_column.html:32
#: app/templates/kanban/edit_column.html:23
msgid "Column Key"
msgstr "Clé de colonne"

#: app/templates/kanban/create_column.html:33
msgid "e.g., in_review, blocked, testing"
msgstr "par exemple, in_review, bloqué, test"

#: app/templates/kanban/create_column.html:34
msgid ""
"Unique identifier (lowercase, no spaces, use underscores). Auto-generated "
"from label if empty."
msgstr ""
"Identifiant unique (minuscules, sans espaces, utilisez des traits de "
"soulignement). Généré automatiquement à partir de l’étiquette si vide."

#: app/templates/kanban/create_column.html:41
msgid "Global (for all projects)"
msgstr "Global (pour tous les projets)"

#: app/templates/kanban/create_column.html:46
msgid ""
"Select a project to create project-specific columns, or leave as Global for "
"all projects"
msgstr ""
"Sélectionnez un projet pour créer des colonnes spécifiques au projet, ou "
"laissez Global pour tous les projets"

#: app/templates/kanban/create_column.html:52
#: app/templates/kanban/edit_column.html:41
msgid "Icon Class"
msgstr "Classe d'icônes"

#: app/templates/kanban/create_column.html:55
#: app/templates/kanban/edit_column.html:44
msgid "Font Awesome icon class"
msgstr "Classe d'icônes Font Awesome"

#: app/templates/kanban/create_column.html:56
#: app/templates/kanban/edit_column.html:45
msgid "Browse icons"
msgstr "Parcourir les icônes"

#: app/templates/kanban/create_column.html:62
#: app/templates/kanban/edit_column.html:54
msgid "Primary (Blue)"
msgstr "Primaire (bleu)"

#: app/templates/kanban/create_column.html:63
#: app/templates/kanban/edit_column.html:55
msgid "Secondary (Gray)"
msgstr "Secondaire (gris)"

#: app/templates/kanban/create_column.html:64
#: app/templates/kanban/edit_column.html:56
msgid "Success (Green)"
msgstr "Succès (Vert)"

#: app/templates/kanban/create_column.html:65
#: app/templates/kanban/edit_column.html:57
msgid "Danger (Red)"
msgstr "Danger (rouge)"

#: app/templates/kanban/create_column.html:66
#: app/templates/kanban/edit_column.html:58
msgid "Warning (Yellow)"
msgstr "Avertissement (jaune)"

#: app/templates/kanban/create_column.html:67
#: app/templates/kanban/edit_column.html:59
msgid "Info (Cyan)"
msgstr "Informations (cyan)"

#: app/templates/kanban/create_column.html:68
#: app/templates/kanban/edit_column.html:60 app/templates/user/settings.html:122
msgid "Dark"
msgstr "Sombre"

#: app/templates/kanban/create_column.html:70
#: app/templates/kanban/edit_column.html:62
msgid "Bootstrap color class for styling"
msgstr "Classe de couleur Bootstrap pour le style"

#: app/templates/kanban/create_column.html:78
#: app/templates/kanban/edit_column.html:70
msgid "Mark as Complete State"
msgstr "Marquer comme état complet"

#: app/templates/kanban/create_column.html:79
#: app/templates/kanban/edit_column.html:71
msgid "Tasks moved to this column will be marked as completed"
msgstr "Les tâches déplacées vers cette colonne seront marquées comme terminées"

#: app/templates/kanban/create_column.html:89
msgid "Create Column"
msgstr "Créer une colonne"

#: app/templates/kanban/create_column.html:97
msgid "Note:"
msgstr "Note:"

#: app/templates/kanban/create_column.html:97
msgid ""
"The column will be added at the end of the board. You can reorder columns "
"later from the management page."
msgstr ""
"La colonne sera ajoutée à la fin du tableau. Vous pouvez réorganiser les "
"colonnes ultérieurement à partir de la page de gestion."

#: app/templates/kanban/edit_column.html:2
#: app/templates/kanban/edit_column.html:10
msgid "Edit Kanban Column"
msgstr "Modifier la colonne Kanban"

#: app/templates/kanban/edit_column.html:12
msgid "Modify column settings"
msgstr "Modifier les paramètres de la colonne"

#: app/templates/kanban/edit_column.html:20
msgid "Edit Kanban Column form"
msgstr "Modifier le formulaire de colonne Kanban"

#: app/templates/kanban/edit_column.html:25
msgid "The key cannot be changed after creation"
msgstr "La clé ne peut pas être modifiée après la création"

#: app/templates/kanban/edit_column.html:27
msgid "This is a project-specific column"
msgstr "Ceci est une colonne spécifique au projet"

#: app/templates/kanban/edit_column.html:29
msgid "This is a global column (for all projects)"
msgstr "Ceci est une colonne globale (pour tous les projets)"

#: app/templates/kanban/edit_column.html:48 app/templates/tasks/create.html:79
#: app/templates/tasks/edit.html:103
msgid "Preview"
msgstr "Aperçu"

#: app/templates/kanban/edit_column.html:81
msgid "Inactive columns are hidden from the kanban board"
msgstr "Les colonnes inactives sont masquées du tableau Kanban"

#: app/templates/kanban/edit_column.html:100
msgid "System Column:"
msgstr "Colonne système :"

#: app/templates/kanban/edit_column.html:100
msgid ""
"This is a system column. You can customize its appearance but cannot delete "
"it."
msgstr ""
"Il s'agit d'une colonne système. Vous pouvez personnaliser son apparence "
"mais ne pouvez pas le supprimer."

#: app/templates/leads/form.html:55 app/templates/leads/list.html:35
#: app/templates/leads/list.html:55
msgid "Source"
msgstr "Source"

#: app/templates/leads/form.html:56
msgid "Website, referral, ad..."
msgstr "Site Internet, référencement, annonce..."

#: app/templates/leads/form.html:69
msgid "Lead Score"
msgstr "Score des prospects"

#: app/templates/leads/form.html:74
msgid "Estimated Value"
msgstr "Valeur estimée"

#: app/templates/leads/form.html:100
msgid "Save Lead"
msgstr "Enregistrer le prospect"

#: app/templates/leads/list.html:23
msgid "Name, company, email..."
msgstr "Nom, entreprise, email..."

#: app/templates/leads/list.html:28 app/templates/tasks/my_tasks.html:125
msgid "All Statuses"
msgstr "Tous les statuts"

#: app/templates/leads/list.html:36
msgid "Website, referral..."
msgstr "Site Internet, référencement..."

#: app/templates/leads/list.html:51
msgid "Company"
msgstr "Entreprise"

#: app/templates/leads/list.html:54
msgid "Score"
msgstr "Score"

#: app/templates/leads/list.html:95
msgid "No leads found"
msgstr "Aucune piste trouvée"

#: app/templates/leads/list.html:97
msgid "Create First Lead"
msgstr "Créer un premier prospect"

#: app/templates/main/about.html:9
msgid "Professional time tracking and project management"
msgstr "Suivi professionnel du temps et gestion de projet"

#: app/templates/main/about.html:20
msgid ""
"A comprehensive web-based time tracking application built with Flask, "
"featuring project management, client organization, task management, "
"invoicing, and advanced analytics."
msgstr ""
"Une application Web complète de suivi du temps construite avec Flask, "
"comprenant la gestion de projet, l'organisation des clients, la gestion des "
"tâches, la facturation et des analyses avancées."

#: app/templates/main/about.html:28 app/templates/main/help.html:28
#: app/templates/main/help.html:179
msgid "Project Management"
msgstr "Gestion de projet"

#: app/templates/main/about.html:31 app/templates/main/help.html:32
msgid "Invoicing"
msgstr "Facturation"

#: app/templates/main/about.html:44 app/templates/main/help.html:104
msgid "Smart Timers"
msgstr "Minuteries intelligentes"

#: app/templates/main/about.html:46
msgid "Real-time tracking with idle detection and live updates"
msgstr "Suivi en temps réel avec détection d'inactivité et mises à jour en direct"

#: app/templates/main/about.html:51 app/templates/main/help.html:29
#: app/templates/main/help.html:225
msgid "Client Management"
msgstr "Gestion des clients"

#: app/templates/main/about.html:53
msgid "Organize clients with contacts, rates, and project relations"
msgstr ""
"Organisez les clients avec des contacts, des tarifs et des relations de "
"projet"

#: app/templates/main/about.html:58
msgid "Task System"
msgstr "Système de tâches"

#: app/templates/main/about.html:60
msgid "Break down projects into tasks with progress tracking"
msgstr "Décomposer les projets en tâches avec suivi des progrès"

#: app/templates/main/about.html:65
msgid "PDF Invoices"
msgstr "Factures PDF"

#: app/templates/main/about.html:67
msgid "Generate professional invoices from tracked time"
msgstr "Générez des factures professionnelles à partir du temps suivi"

#: app/templates/main/about.html:74 app/templates/main/help.html:416
msgid "Core Features"
msgstr "Fonctionnalités principales"

#: app/templates/main/about.html:76
msgid "Start/stop timers with project and task association"
msgstr "Minuteries de démarrage/arrêt avec association de projets et de tâches"

#: app/templates/main/about.html:77
msgid "Manual time entry with notes and tags"
msgstr "Saisie manuelle du temps avec notes et balises"

#: app/templates/main/about.html:78
msgid "Client and project organization"
msgstr "Organisation client et projet"

#: app/templates/main/about.html:79
msgid "Role-based access and user profiles"
msgstr "Accès basé sur les rôles et profils d'utilisateurs"

#: app/templates/main/about.html:83
msgid "Advanced Features"
msgstr "Fonctionnalités avancées"

#: app/templates/main/about.html:85
msgid "Branded PDF invoicing with tax and payment tracking"
msgstr "Facturation PDF de marque avec suivi des taxes et des paiements"

#: app/templates/main/about.html:86
msgid "Visual analytics and detailed reporting"
msgstr "Analyses visuelles et rapports détaillés"

#: app/templates/main/about.html:87
msgid "REST API for integrations"
msgstr "API REST pour les intégrations"

#: app/templates/main/about.html:88
msgid "PWA capabilities and mobile-friendly UI"
msgstr "Capacités PWA et interface utilisateur adaptée aux mobiles"

#: app/templates/main/about.html:95
msgid "Platform Support"
msgstr "Prise en charge de la plateforme"

#: app/templates/main/about.html:98
msgid "Web Application"
msgstr "Application Web"

#: app/templates/main/about.html:100
msgid "Desktop browsers (Chrome, Firefox, Safari, Edge)"
msgstr "Navigateurs de bureau (Chrome, Firefox, Safari, Edge)"

#: app/templates/main/about.html:101
msgid "Mobile responsive design"
msgstr "Conception réactive mobile"

#: app/templates/main/about.html:102
msgid "Progressive Web App (PWA)"
msgstr "Application Web progressive (PWA)"

#: app/templates/main/about.html:103
msgid "Touch-friendly tablet interface"
msgstr "Interface tablette tactile"

#: app/templates/main/about.html:107
msgid "Operating Systems"
msgstr "Systèmes d'exploitation"

#: app/templates/main/about.html:109
msgid "Windows, macOS, Linux"
msgstr "Windows, macOS, Linux"

#: app/templates/main/about.html:110
msgid "Android and iOS (browser)"
msgstr "Android et iOS (navigateur)"

#: app/templates/main/about.html:111
msgid "Raspberry Pi support"
msgstr "Prise en charge du Raspberry Pi"

#: app/templates/main/about.html:112
msgid "Dockerized deployment"
msgstr "Déploiement Dockerisé"

#: app/templates/main/about.html:116
msgid "Database Support"
msgstr "Prise en charge de la base de données"

#: app/templates/main/about.html:118
msgid "PostgreSQL (recommended)"
msgstr "PostgreSQL (recommandé)"

#: app/templates/main/about.html:119
msgid "SQLite (dev/test)"
msgstr "SQLite (développement/test)"

#: app/templates/main/about.html:120
msgid "Automatic migrations with Flask-Migrate"
msgstr "Migrations automatiques avec Flask-Migrate"

#: app/templates/main/about.html:121
msgid "Backup and restoration tools"
msgstr "Outils de sauvegarde et de restauration"

#: app/templates/main/about.html:129
msgid "Technical Specifications"
msgstr "Spécifications techniques"

#: app/templates/main/about.html:132
msgid "Technology Stack"
msgstr "Pile technologique"

#: app/templates/main/about.html:134
msgid "Backend"
msgstr "Back-end"

#: app/templates/main/about.html:135
msgid "Frontend"
msgstr "L'extrémité avant"

#: app/templates/main/about.html:136
msgid "Database"
msgstr "Base de données"

#: app/templates/main/about.html:137
msgid "Deployment"
msgstr "Déploiement"

#: app/templates/main/about.html:141
msgid "Key Capabilities"
msgstr "Capacités clés"

#: app/templates/main/about.html:143
msgid "Real-time"
msgstr "En temps réel"

#: app/templates/main/about.html:144
msgid "i18n"
msgstr "i18n"

#: app/templates/main/about.html:145
msgid "Security"
msgstr "Sécurité"

#: app/templates/main/about.html:154
msgid "Open Source & Community"
msgstr "Open Source et Communauté"

#: app/templates/main/about.html:157
msgid "Open Source Benefits"
msgstr "Avantages de l'Open Source"

#: app/templates/main/about.html:159
msgid "Full source code available on GitHub"
msgstr "Code source complet disponible sur GitHub"

#: app/templates/main/about.html:160
msgid "Licensed under GPL v3.0"
msgstr "Sous licence GPL v3.0"

#: app/templates/main/about.html:161
msgid "Community-driven development"
msgstr "Développement axé sur la communauté"

#: app/templates/main/about.html:162
msgid "Transparent issue tracking and bug reports"
msgstr "Suivi transparent des problèmes et rapports de bogues"

#: app/templates/main/about.html:166
msgid "Deployment Options"
msgstr "Options de déploiement"

#: app/templates/main/about.html:168
msgid "Docker images (GHCR)"
msgstr "Images Docker (GHCR)"

#: app/templates/main/about.html:169
msgid "Self-hosted deployment with full control"
msgstr "Déploiement auto-hébergé avec contrôle total"

#: app/templates/main/about.html:170
msgid "Cloud-ready with Compose configs"
msgstr "Prêt pour le cloud avec les configurations Compose"

#: app/templates/main/about.html:176
msgid "View on GitHub"
msgstr "Voir sur GitHub"

#: app/templates/main/about.html:179 app/templates/main/help.html:775
msgid "Support Development"
msgstr "Soutenir le développement"

#: app/templates/main/about.html:186
msgid "Getting Help & Resources"
msgstr "Obtenir de l'aide et des ressources"

#: app/templates/main/about.html:192 app/templates/main/help.html:741
msgid "Documentation"
msgstr "Documentation"

#: app/templates/main/about.html:193
msgid "Step-by-step guides for all features."
msgstr "Guides étape par étape pour toutes les fonctionnalités."

#: app/templates/main/about.html:195
msgid "View Help"
msgstr "Afficher l'aide"

#: app/templates/main/about.html:202
msgid "System Information"
msgstr "Informations système"

#: app/templates/main/about.html:203
msgid "Status, versions, and configuration details."
msgstr "Statut, versions et détails de configuration."

#: app/templates/main/about.html:209
msgid "Admin access required"
msgstr "Accès administrateur requis"

#: app/templates/main/about.html:216 app/templates/main/help.html:745
msgid "Community Support"
msgstr "Soutien communautaire"

#: app/templates/main/about.html:217
msgid "Report issues, request features, contribute."
msgstr "Signaler des problèmes, demander des fonctionnalités, contribuer."

#: app/templates/main/about.html:219
msgid "GitHub Issues"
msgstr "Problèmes GitHub"

#: app/templates/main/dashboard.html:9
msgid "Here's a quick overview of your work."
msgstr "Voici un bref aperçu de votre travail."

#: app/templates/main/dashboard.html:56 app/templates/tasks/overdue.html:101
#: app/templates/timer/timer_page.html:6 app/templates/timer/timer_page.html:11
msgid "Timer"
msgstr "Minuteur"

#: app/templates/main/dashboard.html:58 app/templates/main/dashboard.html:285
#: app/templates/tasks/_kanban.html:60 app/templates/tasks/edit.html:279
#: app/templates/tasks/my_tasks.html:328
msgid "Start Timer"
msgstr "Démarrer la minuterie"

#: app/templates/main/dashboard.html:65
msgid "Started at"
msgstr "Commencé à"

#: app/templates/main/dashboard.html:69 app/templates/tasks/_kanban.html:51
#: app/templates/tasks/my_tasks.html:323 app/templates/timer/timer_page.html:68
msgid "Stop Timer"
msgstr "Arrêter la minuterie"

#: app/templates/main/dashboard.html:73
msgid "No active timer."
msgstr "Aucune minuterie active."

#: app/templates/main/dashboard.html:104 app/templates/main/search.html:60
#: app/templates/tasks/view.html:80
msgid "Resume - Start a new timer with same properties"
msgstr "Reprendre - Démarrez une nouvelle minuterie avec les mêmes propriétés"

#: app/templates/main/dashboard.html:107 app/templates/main/search.html:64
#: app/templates/tasks/view.html:83
msgid "Edit entry"
msgstr "Modifier l'entrée"

#: app/templates/main/dashboard.html:110
msgid "Duplicate entry"
msgstr "Entrée en double"

#: app/templates/main/dashboard.html:117 app/templates/main/search.html:71
#: app/templates/tasks/view.html:90
msgid "Delete entry"
msgstr "Supprimer l'entrée"

#: app/templates/main/dashboard.html:126
msgid "No recent entries found."
msgstr "Aucune entrée récente trouvée."

#: app/templates/main/dashboard.html:143
msgid "Weekly Goal"
msgstr "Objectif hebdomadaire"

#: app/templates/main/dashboard.html:165
msgid "Days Left"
msgstr "Jours restants"

#: app/templates/main/dashboard.html:172
msgid "Need"
msgstr "Besoin"

#: app/templates/main/dashboard.html:172
msgid "to reach goal"
msgstr "atteindre l'objectif"

#: app/templates/main/dashboard.html:181
msgid "No Weekly Goal"
msgstr "Aucun objectif hebdomadaire"

#: app/templates/main/dashboard.html:184
msgid "Set a weekly time goal to track your progress"
msgstr "Fixez-vous un objectif de temps hebdomadaire pour suivre vos progrès"

#: app/templates/main/dashboard.html:188
#: app/templates/weekly_goals/create.html:108
#: app/templates/weekly_goals/index.html:146
msgid "Create Goal"
msgstr "Créer un objectif"

#: app/templates/main/dashboard.html:195
msgid "Top Projects (30 days)"
msgstr "Meilleurs projets (30 jours)"

#: app/templates/main/dashboard.html:206
msgid "No activity in the last 30 days."
msgstr "Aucune activité au cours des 30 derniers jours."

#: app/templates/main/dashboard.html:249
msgid "Support TimeTracker"
msgstr "Prise en charge de TimeTracker"

#: app/templates/main/dashboard.html:252
msgid ""
"Enjoying TimeTracker? Consider buying me a coffee to support continued "
"development!"
msgstr ""
"Vous appréciez TimeTracker ? Pensez à m'offrir un café pour soutenir le "
"développement continu !"

#: app/templates/main/dashboard.html:301 app/templates/timer/manual_entry.html:49
msgid "Task (optional)"
msgstr "Tâche (facultatif)"

#: app/templates/main/dashboard.html:307
msgid "Notes (optional)"
msgstr "Remarques (facultatif)"

#: app/templates/main/dashboard.html:308
msgid "What are you working on?"
msgstr "Sur quoi travaillez-vous ?"

#: app/templates/main/dashboard.html:312 app/templates/timer/timer_page.html:141
msgid "Or use a template"
msgstr "Ou utilisez un modèle"

#: app/templates/main/dashboard.html:334
msgid "View all templates"
msgstr "Afficher tous les modèles"

#: app/templates/main/dashboard.html:341 app/templates/main/search.html:34
#: app/templates/projects/_kanban_tailwind.html:75
#: app/templates/tasks/view.html:14 app/templates/tasks/view.html:17
msgid "Start"
msgstr "Commencer"

#: app/templates/main/help.html:9
msgid "Complete documentation and user guide"
msgstr "Documentation complète et guide d'utilisation"

#: app/templates/main/help.html:20
msgid "Quick Navigation"
msgstr "Navigation rapide"

#: app/templates/main/help.html:23
msgid "Filter sections..."
msgstr "Filtrer les rubriques..."

#: app/templates/main/help.html:26
msgid "Quick Start"
msgstr "Démarrage rapide"

#: app/templates/main/help.html:30 app/templates/main/help.html:268
msgid "Task Management"
msgstr "Gestion des tâches"

#: app/templates/main/help.html:34 app/templates/main/help.html:460
msgid "Reports & Analytics"
msgstr "Rapports et analyses"

#: app/templates/main/help.html:35 app/templates/main/help.html:510
msgid "Productivity Features"
msgstr "Fonctionnalités de productivité"

#: app/templates/main/help.html:37
msgid "Admin Features"
msgstr "Fonctionnalités d'administration"

#: app/templates/main/help.html:39 app/templates/main/help.html:642
msgid "Mobile Usage"
msgstr "Utilisation mobile"

#: app/templates/main/help.html:40
msgid "Troubleshooting"
msgstr "Dépannage"

#: app/templates/main/help.html:49
msgid "TimeTracker Help Center"
msgstr "Centre d'aide TimeTracker"

#: app/templates/main/help.html:50
msgid "Everything you need to know to get the most out of TimeTracker"
msgstr "Tout ce que vous devez savoir pour tirer le meilleur parti de TimeTracker"

#: app/templates/main/help.html:54
msgid "Start Tracking Time"
msgstr "Commencer le suivi du temps"

#: app/templates/main/help.html:57
msgid "View Projects"
msgstr "Voir les projets"

#: app/templates/main/help.html:60
msgid "Generate Reports"
msgstr "Générer des rapports"

#: app/templates/main/help.html:72
msgid "Quick Start Guide"
msgstr "Guide de démarrage rapide"

#: app/templates/main/help.html:75
msgid "For New Users"
msgstr "Pour les nouveaux utilisateurs"

#: app/templates/main/help.html:77
msgid "Log in with your username (no password required)"
msgstr "Connectez-vous avec votre nom d'utilisateur (aucun mot de passe requis)"

#: app/templates/main/help.html:78
msgid "Explore the dashboard to see your overview"
msgstr "Explorez le tableau de bord pour voir votre aperçu"

#: app/templates/main/help.html:79
msgid "Start your first timer on an existing project"
msgstr "Démarrez votre premier timer sur un projet existant"

#: app/templates/main/help.html:80
msgid "View your time entries in reports"
msgstr "Afficher vos entrées de temps dans les rapports"

#: app/templates/main/help.html:84
msgid "For Administrators"
msgstr "Pour les administrateurs"

#: app/templates/main/help.html:86
msgid "Set up clients in the Client Management section"
msgstr "Configurer les clients dans la section Gestion des clients"

#: app/templates/main/help.html:87
msgid "Create projects and assign them to clients"
msgstr "Créer des projets et les attribuer aux clients"

#: app/templates/main/help.html:88
msgid "Configure system settings (timezone, currency, etc.)"
msgstr "Configurer les paramètres du système (fuseau horaire, devise, etc.)"

#: app/templates/main/help.html:89
msgid "Manage users and permissions"
msgstr "Gérer les utilisateurs et les autorisations"

#: app/templates/main/help.html:95 app/templates/main/help.html:359
#: app/templates/main/help.html:504
msgid "Pro Tip:"
msgstr "Conseil de pro :"

#: app/templates/main/help.html:95
msgid ""
"Use the mobile-friendly interface to track time on the go. The timer "
"continues running even if you close your browser!"
msgstr ""
"Utilisez l'interface adaptée aux mobiles pour suivre le temps en "
"déplacement. Le minuteur continue de fonctionner même si vous fermez votre "
"navigateur !"

#: app/templates/main/help.html:105
msgid "Real-time tracking with automatic idle detection and WebSocket updates"
msgstr ""
"Suivi en temps réel avec détection automatique d'inactivité et mises à jour "
"WebSocket"

#: app/templates/main/help.html:108
msgid "Manual Entry"
msgstr "Saisie manuelle"

#: app/templates/main/help.html:109
msgid "Log time manually with custom start and end times"
msgstr ""
"Enregistrez l'heure manuellement avec des heures de début et de fin "
"personnalisées"

#: app/templates/main/help.html:114
msgid "Starting a Timer"
msgstr "Démarrer une minuterie"

#: app/templates/main/help.html:116
msgid "Navigate to the Timer page or dashboard"
msgstr "Accédez à la page ou au tableau de bord du minuteur"

#: app/templates/main/help.html:117
msgid "Select a project from the dropdown"
msgstr "Sélectionnez un projet dans la liste déroulante"

#: app/templates/main/help.html:118
msgid "Optionally select a task for more detailed tracking"
msgstr "Sélectionnez éventuellement une tâche pour un suivi plus détaillé"

#: app/templates/main/help.html:119
msgid "Add notes about what you're working on (optional)"
msgstr "Ajouter des notes sur ce sur quoi vous travaillez (facultatif)"

#: app/templates/main/help.html:120
msgid "Add tags separated by commas (optional)"
msgstr "Ajouter des balises séparées par des virgules (facultatif)"

#: app/templates/main/help.html:121
msgid "Click \"Start Timer\""
msgstr "Cliquez sur \"Démarrer le minuteur\""

#: app/templates/main/help.html:125
msgid "Timer Features"
msgstr "Fonctionnalités de la minuterie"

#: app/templates/main/help.html:127
msgid "Real-time duration display"
msgstr "Affichage de la durée en temps réel"

#: app/templates/main/help.html:128
msgid "Continues running if browser closes"
msgstr "Continue à fonctionner si le navigateur se ferme"

#: app/templates/main/help.html:129
msgid "Automatic idle detection (configurable)"
msgstr "Détection automatique du ralenti (configurable)"

#: app/templates/main/help.html:130
msgid "One active timer per user (configurable)"
msgstr "Une minuterie active par utilisateur (configurable)"

#: app/templates/main/help.html:131
msgid "WebSocket live updates"
msgstr "Mises à jour en direct de WebSocket"

#: app/templates/main/help.html:136
msgid "Manual Time Entry"
msgstr "Saisie manuelle du temps"

#: app/templates/main/help.html:137
msgid ""
"Create time entries manually when you need to record time spent away from "
"the computer or adjust existing entries."
msgstr ""
"Créez des entrées de temps manuellement lorsque vous devez enregistrer le "
"temps passé loin de l'ordinateur ou ajuster les entrées existantes."

#: app/templates/main/help.html:140
msgid "Required Information"
msgstr "Informations requises"

#: app/templates/main/help.html:142
msgid "Project selection"
msgstr "Sélection de projets"

#: app/templates/main/help.html:143
msgid "Start date and time"
msgstr "Date et heure de début"

#: app/templates/main/help.html:144
msgid "End date and time"
msgstr "Date et heure de fin"

#: app/templates/main/help.html:148
msgid "Optional Information"
msgstr "Informations facultatives"

#: app/templates/main/help.html:150
msgid "Task assignment"
msgstr "Affectation des tâches"

#: app/templates/main/help.html:151
msgid "Description/notes"
msgstr "Description/remarques"

#: app/templates/main/help.html:152
msgid "Tags for categorization"
msgstr "Balises pour la catégorisation"

#: app/templates/main/help.html:153
msgid "Billable status override"
msgstr "Remplacement du statut facturable"

#: app/templates/main/help.html:159
msgid "Advanced Time Entry Features"
msgstr "Fonctionnalités avancées de saisie du temps"

#: app/templates/main/help.html:162
msgid "Bulk Entry"
msgstr "Entrée groupée"

#: app/templates/main/help.html:163
msgid ""
"Create multiple time entries for consecutive days with the same project and "
"duration. Perfect for regular work patterns."
msgstr ""
"Créez plusieurs entrées de temps pour des jours consécutifs avec le même "
"projet et la même durée. Parfait pour les modes de travail réguliers."

#: app/templates/main/help.html:166
msgid "Templates"
msgstr "Modèles"

#: app/templates/main/help.html:167
msgid ""
"Save frequently used time entries as templates for quick reuse. Saves "
"project, task, and notes."
msgstr ""
"Enregistrez les entrées de temps fréquemment utilisées sous forme de modèles"
" pour une réutilisation rapide. Enregistre le projet, la tâche et les notes."

#: app/templates/main/help.html:170
msgid "Calendar View"
msgstr "Vue du calendrier"

#: app/templates/main/help.html:171
msgid ""
"Visualize your time entries on a calendar. Drag-and-drop to reschedule or "
"click dates to add entries."
msgstr ""
"Visualisez vos entrées de temps sur un calendrier. Glissez-déposez pour "
"reprogrammer ou cliquez sur les dates pour ajouter des entrées."

#: app/templates/main/help.html:182
msgid "Project Information"
msgstr "Informations sur le projet"

#: app/templates/main/help.html:184
msgid "Descriptive project name"
msgstr "Nom descriptif du projet"

#: app/templates/main/help.html:185
msgid "Associated client organization"
msgstr "Organisation cliente associée"

#: app/templates/main/help.html:186
msgid "Project details and scope"
msgstr "Détails et portée du projet"

#: app/templates/main/help.html:187
msgid "Active, completed, or archived"
msgstr "Actif, complété ou archivé"

#: app/templates/main/help.html:191
msgid "Billing Information"
msgstr "Informations de facturation"

#: app/templates/main/help.html:193
msgid "Whether time should be tracked for billing"
msgstr "Si le temps doit être suivi pour la facturation"

#: app/templates/main/help.html:194
msgid "Rate for billable time calculations"
msgstr "Tarif pour les calculs de temps facturable"

#: app/templates/main/help.html:195 app/templates/projects/create.html:73
#: app/templates/projects/edit.html:67
msgid "Billing Reference"
msgstr "Référence de facturation"

#: app/templates/main/help.html:195
msgid "PO number or billing code"
msgstr "Numéro de bon de commande ou code de facturation"

#: app/templates/main/help.html:202
msgid "Project Operations"
msgstr "Opérations du projet"

#: app/templates/main/help.html:204
msgid "Create new projects with client relationships"
msgstr "Créer de nouveaux projets avec des relations clients"

#: app/templates/main/help.html:205
msgid "Edit existing projects to update details"
msgstr "Modifier les projets existants pour mettre à jour les détails"

#: app/templates/main/help.html:206
msgid "Archive projects to hide from timers (preserves data)"
msgstr "Archiver les projets pour les masquer des minuteries (préserve les données)"

#: app/templates/main/help.html:207
msgid "Delete projects (removes all associated time entries)"
msgstr "Supprimer des projets (supprime toutes les entrées de temps associées)"

#: app/templates/main/help.html:211
msgid "Best Practices"
msgstr "Meilleures pratiques"

#: app/templates/main/help.html:213
msgid "Use descriptive project names"
msgstr "Utilisez des noms de projet descriptifs"

#: app/templates/main/help.html:214
msgid "Set accurate hourly rates for billing"
msgstr "Définir des taux horaires précis pour la facturation"

#: app/templates/main/help.html:215
msgid "Archive instead of delete when possible"
msgstr "Archiver au lieu de supprimer lorsque cela est possible"

#: app/templates/main/help.html:216
msgid "Use billing references for external tracking"
msgstr "Utiliser les références de facturation pour le suivi externe"

#: app/templates/main/help.html:226
msgid ""
"The client management system helps organize your work by client "
"organizations, preventing errors and streamlining project creation."
msgstr ""
"Le système de gestion des clients vous aide à organiser votre travail par "
"organisations clientes, en évitant les erreurs et en rationalisant la "
"création de projets."

#: app/templates/main/help.html:229
msgid "Client Information"
msgstr "Informations client"

#: app/templates/main/help.html:231
msgid "Organization Name"
msgstr "Nom de l'organisation"

#: app/templates/main/help.html:231
msgid "Company or client name"
msgstr "Nom de l'entreprise ou du client"

#: app/templates/main/help.html:232
msgid "Primary contact details"
msgstr "Coordonnées principales"

#: app/templates/main/help.html:233
msgid "Email & Phone"
msgstr "E-mail et téléphone"

#: app/templates/main/help.html:233
msgid "Contact information"
msgstr "Coordonnées"

#: app/templates/main/help.html:234
msgid "Business address"
msgstr "Adresse professionnelle"

#: app/templates/main/help.html:238
msgid "Benefits"
msgstr "Avantages"

#: app/templates/main/help.html:240
msgid "Dropdown selection prevents typos"
msgstr "La sélection déroulante évite les fautes de frappe"

#: app/templates/main/help.html:241
msgid "Default rates auto-populate projects"
msgstr "Les taux par défaut remplissent automatiquement les projets"

#: app/templates/main/help.html:242
msgid "Consistent client naming"
msgstr "Dénomination cohérente des clients"

#: app/templates/main/help.html:243
msgid "Easier project organization"
msgstr "Organisation de projet plus facile"

#: app/templates/main/help.html:250
msgid "Project Count"
msgstr "Nombre de projets"

#: app/templates/main/help.html:251
msgid "Total and active projects"
msgstr "Projets totaux et actifs"

#: app/templates/main/help.html:256
msgid "Total hours worked"
msgstr "Heures totales travaillées"

#: app/templates/main/help.html:260
msgid "Cost Estimation"
msgstr "Estimation des coûts"

#: app/templates/main/help.html:261
msgid "Estimated billing amounts"
msgstr "Montants de facturation estimés"

#: app/templates/main/help.html:269
msgid ""
"Break down projects into manageable tasks with detailed tracking and "
"progress monitoring."
msgstr ""
"Décomposez les projets en tâches gérables avec un suivi détaillé et un suivi"
" des progrès."

#: app/templates/main/help.html:272
msgid "Task Properties"
msgstr "Propriétés de la tâche"

#: app/templates/main/help.html:274
msgid "Name & Description"
msgstr "Nom et description"

#: app/templates/main/help.html:274
msgid "Clear task identification"
msgstr "Identification claire des tâches"

#: app/templates/main/help.html:275
msgid "Priority Levels"
msgstr "Niveaux de priorité"

#: app/templates/main/help.html:275
msgid "Low, Medium, High, Urgent"
msgstr "Faible, Moyen, Élevé, Urgent"

#: app/templates/main/help.html:276
msgid "Due Dates"
msgstr "Dates d'échéance"

#: app/templates/main/help.html:276
msgid "Deadline tracking"
msgstr "Suivi des délais"

#: app/templates/main/help.html:277
msgid "Assignment"
msgstr "Affectation"

#: app/templates/main/help.html:277
msgid "Task ownership"
msgstr "Propriété des tâches"

#: app/templates/main/help.html:281
msgid "Status Tracking"
msgstr "Suivi du statut"

#: app/templates/main/help.html:283
msgid "To Do - Not started"
msgstr "À faire - Pas commencé"

#: app/templates/main/help.html:284
msgid "In Progress - Currently working"
msgstr "En cours - En cours de travail"

#: app/templates/main/help.html:285
msgid "Review - Ready for review"
msgstr "Révision – Prêt pour la révision"

#: app/templates/main/help.html:286
msgid "Done - Completed"
msgstr "Terminé - Terminé"

#: app/templates/main/help.html:287
msgid "Cancelled - Not needed"
msgstr "Annulé - Pas nécessaire"

#: app/templates/main/help.html:293
msgid "Time Tracking Features"
msgstr "Fonctionnalités de suivi du temps"

#: app/templates/main/help.html:295
msgid "Start timers directly from tasks"
msgstr "Démarrez les minuteries directement à partir des tâches"

#: app/templates/main/help.html:296
msgid "Link time entries to specific tasks"
msgstr "Lier les entrées de temps à des tâches spécifiques"

#: app/templates/main/help.html:297
msgid "Track estimated vs actual hours"
msgstr "Suivez les heures estimées par rapport aux heures réelles"

#: app/templates/main/help.html:298
msgid "Monitor task progress automatically"
msgstr "Surveiller automatiquement la progression des tâches"

#: app/templates/main/help.html:302
msgid "Task Views"
msgstr "Vues des tâches"

#: app/templates/main/help.html:304
msgid "My Tasks - Your assigned tasks"
msgstr "Mes tâches - Vos tâches assignées"

#: app/templates/main/help.html:305
msgid "All Tasks - Complete task list"
msgstr "Toutes les tâches - Liste complète des tâches"

#: app/templates/main/help.html:306
msgid "Overdue Tasks - Past due items"
msgstr "Tâches en retard – Éléments en retard"

#: app/templates/main/help.html:307
msgid "Project Tasks - Tasks within projects"
msgstr "Tâches du projet - Tâches au sein des projets"

#: app/templates/main/help.html:313
msgid "Collaboration Features"
msgstr "Fonctionnalités collaboratives"

#: app/templates/main/help.html:315
msgid "Task Comments - Threaded discussions on tasks"
msgstr "Commentaires sur les tâches – Discussions sur les tâches"

#: app/templates/main/help.html:316
msgid "Markdown Support - Rich formatting in descriptions"
msgstr "Prise en charge de Markdown - Mise en forme riche dans les descriptions"

#: app/templates/main/help.html:317
msgid "User Mentions - Tag team members (if enabled)"
msgstr "Mentions utilisateur – Taguer les membres de l'équipe (si activé)"

#: app/templates/main/help.html:318
msgid "File Attachments - Attach files to tasks (if enabled)"
msgstr "Pièces jointes : Joindre des fichiers aux tâches (si activé)"

#: app/templates/main/help.html:322
msgid "Markdown Formatting"
msgstr "Formatage Markdown"

#: app/templates/main/help.html:323
msgid "Task and project descriptions support Markdown:"
msgstr "Les descriptions de tâches et de projets prennent en charge Markdown :"

#: app/templates/main/help.html:325
msgid "**Bold**, *Italic*, ~~Strikethrough~~"
msgstr "**Gras**, *Italique*, ~~Barré~~"

#: app/templates/main/help.html:326
msgid "# Headings, - Lists, [Links](url)"
msgstr "# Rubriques, - Listes, [Liens](url)"

#: app/templates/main/help.html:327
msgid "```code blocks```, tables, images"
msgstr "```blocs de code```, tableaux, images"

#: app/templates/main/help.html:336
msgid ""
"Visualize your workflow with a drag-and-drop Kanban board for intuitive task"
" management."
msgstr ""
"Visualisez votre flux de travail avec un tableau Kanban par glisser-déposer "
"pour une gestion intuitive des tâches."

#: app/templates/main/help.html:339
msgid "Board Features"
msgstr "Caractéristiques du tableau"

#: app/templates/main/help.html:341
msgid "Customizable columns matching task statuses"
msgstr "Colonnes personnalisables correspondant aux statuts des tâches"

#: app/templates/main/help.html:342
msgid "Drag-and-drop tasks between columns"
msgstr "Glisser-déposer des tâches entre les colonnes"

#: app/templates/main/help.html:343
msgid "Filter by project, user, or priority"
msgstr "Filtrer par projet, utilisateur ou priorité"

#: app/templates/main/help.html:344
msgid "Quick search across all tasks"
msgstr "Recherche rapide dans toutes les tâches"

#: app/templates/main/help.html:348
msgid "Using the Kanban Board"
msgstr "Utiliser le tableau Kanban"

#: app/templates/main/help.html:350
msgid "Access from the Tasks menu or project page"
msgstr "Accès depuis le menu Tâches ou la page du projet"

#: app/templates/main/help.html:351
msgid "Drag tasks to different columns to change status"
msgstr "Faites glisser les tâches vers différentes colonnes pour changer de statut"

#: app/templates/main/help.html:352
msgid "Click on a task card to view/edit details"
msgstr "Cliquez sur une fiche de tâche pour afficher/modifier les détails"

#: app/templates/main/help.html:353
msgid "Use filters to focus on specific work"
msgstr "Utilisez des filtres pour vous concentrer sur un travail spécifique"

#: app/templates/main/help.html:359
msgid ""
"The Kanban board is perfect for sprint planning and daily standups. Each "
"column represents a stage in your workflow!"
msgstr ""
"Le tableau Kanban est parfait pour la planification de sprints et les "
"standups quotidiens. Chaque colonne représente une étape de votre workflow !"

#: app/templates/main/help.html:365
msgid "Expense Tracking"
msgstr "Suivi des dépenses"

#: app/templates/main/help.html:366
msgid ""
"Track business expenses, manage receipts, and handle reimbursements "
"efficiently."
msgstr ""
"Suivez les dépenses professionnelles, gérez les reçus et gérez efficacement "
"les remboursements."

#: app/templates/main/help.html:369
msgid "Expense Features"
msgstr "Caractéristiques des dépenses"

#: app/templates/main/help.html:371
msgid "Categorize expenses (travel, meals, supplies, etc.)"
msgstr "Catégoriser les dépenses (déplacements, repas, fournitures, etc.)"

#: app/templates/main/help.html:372
msgid "Attach receipt images and documents"
msgstr "Joindre des images et des documents de reçu"

#: app/templates/main/help.html:373
msgid "Track amounts, tax, and payment methods"
msgstr "Suivez les montants, les taxes et les modes de paiement"

#: app/templates/main/help.html:374
msgid "Approval workflow for expense requests"
msgstr "Workflow d’approbation des demandes de dépenses"

#: app/templates/main/help.html:378
msgid "Billing & Reimbursement"
msgstr "Facturation et remboursement"

#: app/templates/main/help.html:380
msgid "Mark expenses as billable to clients"
msgstr "Marquer les dépenses comme facturables aux clients"

#: app/templates/main/help.html:381
msgid "Include expenses in client invoices"
msgstr "Inclure les dépenses dans les factures des clients"

#: app/templates/main/help.html:382
msgid "Track reimbursement status"
msgstr "Suivre l’état du remboursement"

#: app/templates/main/help.html:383
msgid "Link expenses to specific projects"
msgstr "Lier les dépenses à des projets spécifiques"

#: app/templates/main/help.html:390
msgid "Record Expense"
msgstr "Enregistrer les dépenses"

#: app/templates/main/help.html:391
msgid "Enter details and upload receipt"
msgstr "Entrez les détails et téléchargez le reçu"

#: app/templates/main/help.html:395
msgid "Submit for Approval"
msgstr "Soumettre pour approbation"

#: app/templates/main/help.html:396
msgid "Admin reviews and approves"
msgstr "L'administrateur examine et approuve"

#: app/templates/main/help.html:400
msgid "Invoice/Reimburse"
msgstr "Facture/Remboursement"

#: app/templates/main/help.html:401
msgid "Add to invoice or reimburse"
msgstr "Ajouter à la facture ou rembourser"

#: app/templates/main/help.html:405 app/templates/main/help.html:452
msgid "Track Payment"
msgstr "Suivre le paiement"

#: app/templates/main/help.html:406
msgid "Monitor reimbursement status"
msgstr "Surveiller l'état du remboursement"

#: app/templates/main/help.html:413
msgid "Professional Invoicing"
msgstr "Facturation professionnelle"

#: app/templates/main/help.html:418
msgid "Professional PDF generation"
msgstr "Génération PDF professionnelle"

#: app/templates/main/help.html:419
msgid "Company branding and logos"
msgstr "Image de marque et logos de l'entreprise"

#: app/templates/main/help.html:420
msgid "Automatic invoice numbering"
msgstr "Numérotation automatique des factures"

#: app/templates/main/help.html:421
msgid "Tax calculations"
msgstr "Calculs d'impôts"

#: app/templates/main/help.html:425
msgid "Time Integration"
msgstr "Intégration du temps"

#: app/templates/main/help.html:427
msgid "Generate from time entries"
msgstr "Générer à partir des entrées de temps"

#: app/templates/main/help.html:428
msgid "Smart grouping by task/project"
msgstr "Regroupement intelligent par tâche/projet"

#: app/templates/main/help.html:429
msgid "Prevent double-billing"
msgstr "Prévenir la double facturation"

#: app/templates/main/help.html:430
msgid "Use project hourly rates"
msgstr "Utiliser les taux horaires du projet"

#: app/templates/main/help.html:438
msgid "Set up client and project details"
msgstr "Configurer les détails du client et du projet"

#: app/templates/main/help.html:442
msgid "Add Items"
msgstr "Ajouter des éléments"

#: app/templates/main/help.html:443
msgid "Generate from time or add manually"
msgstr "Générer à partir du temps ou ajouter manuellement"

#: app/templates/main/help.html:447
msgid "Review & Send"
msgstr "Vérifier et envoyer"

#: app/templates/main/help.html:448
msgid "Export PDF and update status"
msgstr "Exporter le PDF et mettre à jour le statut"

#: app/templates/main/help.html:453
msgid "Monitor status and payments"
msgstr "Surveiller le statut et les paiements"

#: app/templates/main/help.html:463
msgid "Standard Reports"
msgstr "Rapports standards"

#: app/templates/main/help.html:465
msgid "Project Report - Time breakdown by project"
msgstr "Rapport de projet - Répartition du temps par projet"

#: app/templates/main/help.html:466
msgid "User Report - Individual performance metrics"
msgstr "Rapport utilisateur – Mesures de performances individuelles"

#: app/templates/main/help.html:467
msgid "Summary Report - Key metrics and trends"
msgstr "Rapport de synthèse – Indicateurs et tendances clés"

#: app/templates/main/help.html:468
msgid "Time Entry Report - Detailed time logs"
msgstr "Rapport de saisie du temps - Journaux de temps détaillés"

#: app/templates/main/help.html:472
msgid "Export Options"
msgstr "Options d'exportation"

#: app/templates/main/help.html:474
msgid "CSV Export - For external analysis"
msgstr "Exportation CSV – Pour analyse externe"

#: app/templates/main/help.html:475
msgid "Configurable delimiters"
msgstr "Délimiteurs configurables"

#: app/templates/main/help.html:476
msgid "Custom date ranges"
msgstr "Plages de dates personnalisées"

#: app/templates/main/help.html:477
msgid "Filtered data export"
msgstr "Exportation de données filtrées"

#: app/templates/main/help.html:483
msgid "Filter Options"
msgstr "Options de filtre"

#: app/templates/main/help.html:485
msgid "Date Range - Custom start and end dates"
msgstr "Plage de dates – Dates de début et de fin personnalisées"

#: app/templates/main/help.html:486
msgid "Project - Filter by specific projects"
msgstr "Projet - Filtrer par projets spécifiques"

#: app/templates/main/help.html:487
msgid "User - Filter by team members"
msgstr "Utilisateur - Filtrer par membres de l'équipe"

#: app/templates/main/help.html:488
msgid "Client - Filter by client organization"
msgstr "Client - Filtrer par organisation cliente"

#: app/templates/main/help.html:489
msgid "Saved Filters - Save frequently used filters"
msgstr "Filtres enregistrés - Enregistrez les filtres fréquemment utilisés"

#: app/templates/main/help.html:493
msgid "Visual Analytics"
msgstr "Analyse visuelle"

#: app/templates/main/help.html:495
msgid "Interactive bar charts"
msgstr "Graphiques à barres interactifs"

#: app/templates/main/help.html:496
msgid "Time distribution pie charts"
msgstr "Diagrammes circulaires de distribution du temps"

#: app/templates/main/help.html:497
msgid "Trend analysis over time"
msgstr "Analyse des tendances au fil du temps"

#: app/templates/main/help.html:498
msgid "Mobile-optimized charts"
msgstr "Graphiques optimisés pour les mobiles"

#: app/templates/main/help.html:504
msgid ""
"Use Saved Filters to quickly access your most common report views. Save "
"filters for weekly reviews, monthly billing, or specific project tracking!"
msgstr ""
"Utilisez les filtres enregistrés pour accéder rapidement à vos vues de "
"rapport les plus courantes. Enregistrez des filtres pour les évaluations "
"hebdomadaires, la facturation mensuelle ou le suivi d'un projet spécifique !"

#: app/templates/main/help.html:511
msgid ""
"Boost your efficiency with keyboard shortcuts, command palette, and "
"automation features."
msgstr ""
"Améliorez votre efficacité grâce aux raccourcis clavier, à la palette de "
"commandes et aux fonctionnalités d'automatisation."

#: app/templates/main/help.html:514
msgid "Command Palette"
msgstr "Palette de commandes"

#: app/templates/main/help.html:515
msgid "Access any feature instantly without leaving the keyboard"
msgstr ""
"Accédez instantanément à n’importe quelle fonctionnalité sans quitter le "
"clavier"

#: app/templates/main/help.html:518
msgid "Opening the Command Palette"
msgstr "Ouverture de la palette de commandes"

#: app/templates/main/help.html:520
msgid "Press the question mark key"
msgstr "Appuyez sur la touche point d'interrogation"

#: app/templates/main/help.html:521
msgid "Quick search"
msgstr "Recherche rapide"

#: app/templates/main/help.html:528
msgid "Go to Projects"
msgstr "Aller aux projets"

#: app/templates/main/help.html:529
msgid "Go to Tasks"
msgstr "Accédez aux tâches"

#: app/templates/main/help.html:530
msgid "New Time Entry"
msgstr "Nouvelle entrée de temps"

#: app/templates/main/help.html:538
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"

#: app/templates/main/help.html:539
msgid ""
"Navigate faster with keyboard-driven commands. Press Shift+? to see all "
"shortcuts."
msgstr ""
"Naviguez plus rapidement grâce aux commandes pilotées par le clavier. "
"Appuyez sur Maj+ ? pour voir tous les raccourcis."

#: app/templates/main/help.html:542
msgid "Global Search"
msgstr "Recherche globale"

#: app/templates/main/help.html:543
msgid ""
"Quickly find projects, tasks, clients, and time entries from anywhere in the"
" app."
msgstr ""
"Trouvez rapidement des projets, des tâches, des clients et des entrées de "
"temps depuis n'importe où dans l'application."

#: app/templates/main/help.html:546
msgid "Email Notifications"
msgstr "Notifications par courrier électronique"

#: app/templates/main/help.html:547
msgid ""
"Get notified about task assignments, overdue invoices, and weekly summaries "
"via email."
msgstr ""
"Soyez informé des affectations de tâches, des factures en retard et des "
"résumés hebdomadaires par e-mail."

#: app/templates/main/help.html:555
msgid "Administrator Features"
msgstr "Fonctionnalités d'administrateur"

#: app/templates/main/help.html:560
msgid "Create new users with flexible authentication"
msgstr "Créez de nouveaux utilisateurs avec une authentification flexible"

#: app/templates/main/help.html:561
msgid "Assign custom roles with specific permissions"
msgstr "Attribuez des rôles personnalisés avec des autorisations spécifiques"

#: app/templates/main/help.html:562
msgid "Activate/deactivate user accounts"
msgstr "Activer/désactiver les comptes utilisateurs"

#: app/templates/main/help.html:563
msgid "View user statistics and activity"
msgstr "Afficher les statistiques et l'activité des utilisateurs"

#: app/templates/main/help.html:564
msgid "Generate API tokens for users"
msgstr "Générer des jetons API pour les utilisateurs"

#: app/templates/main/help.html:568
msgid "Access Control"
msgstr "Contrôle d'accès"

#: app/templates/main/help.html:570
msgid "Granular role-based permissions system"
msgstr "Système d'autorisations granulaire basé sur les rôles"

#: app/templates/main/help.html:571
msgid "Custom roles with fine-grained access"
msgstr "Rôles personnalisés avec accès précis"

#: app/templates/main/help.html:572
msgid "User data access controls"
msgstr "Contrôles d'accès aux données utilisateur"

#: app/templates/main/help.html:573
msgid "OIDC/SSO integration (Azure AD, Authelia, etc.)"
msgstr "Intégration OIDC/SSO (Azure AD, Authelia, etc.)"

#: app/templates/main/help.html:574
msgid "API token management for integrations"
msgstr "Gestion des jetons API pour les intégrations"

#: app/templates/main/help.html:580
msgid "Authentication Methods"
msgstr "Méthodes d'authentification"

#: app/templates/main/help.html:582
msgid "Username-only (simple internal use)"
msgstr "Nom d'utilisateur uniquement (usage interne simple)"

#: app/templates/main/help.html:583
msgid "OIDC/SSO (enterprise authentication)"
msgstr "OIDC/SSO (authentification d'entreprise)"

#: app/templates/main/help.html:584
msgid "Both methods simultaneously"
msgstr "Les deux méthodes simultanément"

#: app/templates/main/help.html:585
msgid "Automatic role assignment via groups"
msgstr "Attribution automatique des rôles via des groupes"

#: app/templates/main/help.html:589
msgid "Role & Permission Management"
msgstr "Gestion des rôles et des autorisations"

#: app/templates/main/help.html:591
msgid "Create custom roles beyond Admin/User"
msgstr "Créez des rôles personnalisés au-delà de l'administrateur/utilisateur"

#: app/templates/main/help.html:592
msgid "Set granular permissions per feature"
msgstr "Définir des autorisations granulaires par fonctionnalité"

#: app/templates/main/help.html:593
msgid "Assign users to multiple roles"
msgstr "Attribuer des utilisateurs à plusieurs rôles"

#: app/templates/main/help.html:594
msgid "View and manage all permissions"
msgstr "Afficher et gérer toutes les autorisations"

#: app/templates/main/help.html:600
msgid "General Settings"
msgstr "Paramètres généraux"

#: app/templates/main/help.html:602
msgid "Timezone and locale settings"
msgstr "Paramètres de fuseau horaire et de paramètres régionaux"

#: app/templates/main/help.html:603
msgid "Currency configuration"
msgstr "Configuration des devises"

#: app/templates/main/help.html:604
msgid "Time rounding rules"
msgstr "Règles d'arrondi des temps"

#: app/templates/main/help.html:605
msgid "Self-registration settings"
msgstr "Paramètres d'auto-inscription"

#: app/templates/main/help.html:609
msgid "Timer Settings"
msgstr "Paramètres de la minuterie"

#: app/templates/main/help.html:611
msgid "Idle timeout configuration"
msgstr "Configuration du délai d'inactivité"

#: app/templates/main/help.html:612
msgid "Single active timer mode"
msgstr "Mode minuterie active unique"

#: app/templates/main/help.html:613
msgid "Timer display preferences"
msgstr "Préférences d'affichage du minuteur"

#: app/templates/main/help.html:614
msgid "Notification settings"
msgstr "Paramètres de notification"

#: app/templates/main/help.html:620
msgid "Database Management"
msgstr "Gestion de base de données"

#: app/templates/main/help.html:622
msgid "Create manual database backups"
msgstr "Créer des sauvegardes manuelles de base de données"

#: app/templates/main/help.html:623
msgid "View database migration status"
msgstr "Afficher l'état de migration de la base de données"

#: app/templates/main/help.html:624
msgid "Monitor database performance"
msgstr "Surveiller les performances de la base de données"

#: app/templates/main/help.html:625
msgid "Clean up old data and logs"
msgstr "Nettoyer les anciennes données et journaux"

#: app/templates/main/help.html:629
msgid "System Monitoring"
msgstr "Surveillance du système"

#: app/templates/main/help.html:631
msgid "View system information and health"
msgstr "Afficher les informations et l'état du système"

#: app/templates/main/help.html:632
msgid "Monitor application performance"
msgstr "Surveiller les performances des applications"

#: app/templates/main/help.html:633
msgid "Review system logs and errors"
msgstr "Examiner les journaux et les erreurs du système"

#: app/templates/main/help.html:645
msgid "Mobile-Friendly Features"
msgstr "Fonctionnalités adaptées aux mobiles"

#: app/templates/main/help.html:647
msgid "Optimized for phones and tablets"
msgstr "Optimisé pour les téléphones et les tablettes"

#: app/templates/main/help.html:648
msgid "Touch-friendly interface"
msgstr "Interface tactile"

#: app/templates/main/help.html:649
msgid "Adaptive layouts for all screen sizes"
msgstr "Dispositions adaptatives pour toutes les tailles d'écran"

#: app/templates/main/help.html:650
msgid "High contrast for outdoor visibility"
msgstr "Contraste élevé pour une visibilité extérieure"

#: app/templates/main/help.html:654
msgid "Mobile Navigation"
msgstr "Navigation mobile"

#: app/templates/main/help.html:656
msgid "Bottom tab bar for easy access"
msgstr "Barre d'onglets inférieure pour un accès facile"

#: app/templates/main/help.html:657
msgid "Quick access to dashboard"
msgstr "Accès rapide au tableau de bord"

#: app/templates/main/help.html:658
msgid "One-tap time logging"
msgstr "Enregistrement du temps en un seul clic"

#: app/templates/main/help.html:659
msgid "Mobile-optimized reports"
msgstr "Rapports optimisés pour les mobiles"

#: app/templates/main/help.html:665
msgid "Installation"
msgstr "Installation"

#: app/templates/main/help.html:667
msgid "Open TimeTracker in your mobile browser"
msgstr "Ouvrez TimeTracker dans votre navigateur mobile"

#: app/templates/main/help.html:668
msgid "Look for \"Add to Home Screen\" option"
msgstr "Recherchez l'option \"Ajouter à l'écran d'accueil\"."

#: app/templates/main/help.html:669
msgid "Follow browser-specific installation prompts"
msgstr "Suivez les invites d'installation spécifiques au navigateur"

#: app/templates/main/help.html:670
msgid "Launch from your home screen like a native app"
msgstr "Lancez-vous depuis votre écran d'accueil comme une application native"

#: app/templates/main/help.html:674
msgid "PWA Benefits"
msgstr "Avantages PWA"

#: app/templates/main/help.html:676
msgid "Offline capability for basic functions"
msgstr "Capacité hors ligne pour les fonctions de base"

#: app/templates/main/help.html:677
msgid "Faster loading times"
msgstr "Des temps de chargement plus rapides"

#: app/templates/main/help.html:678
msgid "Native app-like experience"
msgstr "Expérience de type application native"

#: app/templates/main/help.html:679
msgid "Push notifications (where supported)"
msgstr "Notifications push (si prises en charge)"

#: app/templates/main/help.html:687
msgid "Troubleshooting & FAQ"
msgstr "Dépannage et FAQ"

#: app/templates/main/help.html:690
msgid "What happens if I forget to stop my timer?"
msgstr "Que se passe-t-il si j'oublie d'arrêter mon chronomètre ?"

#: app/templates/main/help.html:691
msgid ""
"The timer will continue running until you stop it manually. You can see your"
" active timer on the dashboard and timer page. The timer persists even if "
"you close your browser or restart your device. If idle detection is enabled,"
" the timer may pause automatically after the configured timeout period."
msgstr ""
"La minuterie continuera à fonctionner jusqu'à ce que vous l'arrêtiez "
"manuellement. Vous pouvez voir votre minuterie active sur le tableau de bord"
" et la page de la minuterie. Le minuteur persiste même si vous fermez votre "
"navigateur ou redémarrez votre appareil. Si la détection d'inactivité est "
"activée, la minuterie peut s'arrêter automatiquement après le délai "
"d'attente configuré."

#: app/templates/main/help.html:694
msgid "Can I edit time entries after they're created?"
msgstr "Puis-je modifier les entrées de temps après leur création ?"

#: app/templates/main/help.html:695
msgid ""
"Yes, you can edit any time entry by clicking the edit button in the time "
"entry list. You can modify the project, start/end times, notes, tags, "
"billable status, and task assignment. Admins can edit all time entries, "
"while regular users can only edit their own entries."
msgstr ""
"Oui, vous pouvez modifier n'importe quelle entrée de temps en cliquant sur "
"le bouton Modifier dans la liste des entrées de temps. Vous pouvez modifier "
"le projet, les heures de début/fin, les notes, les balises, le statut "
"facturable et l'affectation des tâches. Les administrateurs peuvent modifier"
" toutes les entrées de temps, tandis que les utilisateurs réguliers ne "
"peuvent modifier que leurs propres entrées."

#: app/templates/main/help.html:698
msgid "How do I track time for multiple projects?"
msgstr "Comment puis-je suivre le temps de plusieurs projets ?"

#: app/templates/main/help.html:699
msgid ""
"By default, you can only have one active timer at a time. To switch "
"projects, stop your current timer and start a new one for the different "
"project. Alternatively, you can create manual time entries for past work or "
"configure the system to allow multiple active timers (admin setting)."
msgstr ""
"Par défaut, vous ne pouvez avoir qu'un seul minuteur actif à la fois. Pour "
"changer de projet, arrêtez votre minuteur actuel et démarrez-en un nouveau "
"pour l'autre projet. Vous pouvez également créer des entrées de temps "
"manuelles pour les travaux antérieurs ou configurer le système pour "
"autoriser plusieurs minuteries actives (paramètre administrateur)."

#: app/templates/main/help.html:702
msgid "How do I export my time data?"
msgstr "Comment exporter mes données temporelles ?"

#: app/templates/main/help.html:703
msgid ""
"Go to the Reports page and use the \"Export CSV\" feature. You can apply "
"filters to export specific data, or export all time entries. The CSV file "
"includes all time entry details and can be opened in Excel or other "
"spreadsheet applications. You can also configure the delimiter for different"
" regional standards."
msgstr ""
"Accédez à la page Rapports et utilisez la fonctionnalité « Exporter CSV ». "
"Vous pouvez appliquer des filtres pour exporter des données spécifiques ou "
"exporter toutes les entrées de temps. Le fichier CSV comprend tous les "
"détails de saisie du temps et peut être ouvert dans Excel ou d'autres "
"applications de feuille de calcul. Vous pouvez également configurer le "
"délimiteur pour différentes normes régionales."

#: app/templates/main/help.html:706
msgid "What's the difference between billable and non-billable time?"
msgstr ""
"Quelle est la différence entre le temps facturable et le temps non "
"facturable ?"

#: app/templates/main/help.html:707
msgid ""
"Billable time is tracked for client billing purposes and can have an hourly "
"rate associated with it. Non-billable time is for internal work that doesn't"
" get charged to clients. You can mark individual time entries as billable or"
" non-billable, and projects can have default billable settings. This "
"distinction is crucial for accurate invoicing and profitability analysis."
msgstr ""
"Le temps facturable est suivi à des fins de facturation des clients et peut "
"être associé à un taux horaire. Le temps non facturable est destiné au "
"travail interne qui n'est pas facturé aux clients. Vous pouvez marquer des "
"entrées de temps individuelles comme facturables ou non facturables, et les "
"projets peuvent avoir des paramètres facturables par défaut. Cette "
"distinction est cruciale pour une facturation précise et une analyse de "
"rentabilité."

#: app/templates/main/help.html:710
msgid "How do I create an invoice from my time entries?"
msgstr "Comment créer une facture à partir de mes saisies de temps ?"

#: app/templates/main/help.html:711
msgid ""
"Navigate to Invoices → Create Invoice, set up the client and project "
"details, then use \"Generate from Time Entries\" to automatically create "
"invoice items from your tracked time. You can filter by date range and "
"project, and the system will group time entries intelligently. Review the "
"generated items and export as a professional PDF."
msgstr ""
"Accédez à Factures → Créer une facture, configurez les détails du client et "
"du projet, puis utilisez « Générer à partir des entrées de temps » pour "
"créer automatiquement des éléments de facture à partir de votre temps suivi."
" Vous pouvez filtrer par plage de dates et par projet, et le système "
"regroupera intelligemment les entrées de temps. Examinez les éléments "
"générés et exportez-les au format PDF professionnel."

#: app/templates/main/help.html:714
msgid "Can I use TimeTracker on my mobile device?"
msgstr "Puis-je utiliser TimeTracker sur mon appareil mobile ?"

#: app/templates/main/help.html:715
msgid ""
"Yes! TimeTracker is fully responsive and works great on mobile devices. You "
"can install it as a Progressive Web App (PWA) for a native-like experience. "
"The mobile interface includes a bottom tab bar for easy navigation and "
"touch-optimized controls for time tracking on the go."
msgstr ""
"Oui! TimeTracker est entièrement réactif et fonctionne très bien sur les "
"appareils mobiles. Vous pouvez l'installer en tant que Progressive Web App "
"(PWA) pour une expérience de type natif. L'interface mobile comprend une "
"barre d'onglets inférieure pour une navigation facile et des commandes "
"tactiles optimisées pour le suivi du temps en déplacement."

#: app/templates/main/help.html:718
msgid "How do I use the command palette and keyboard shortcuts?"
msgstr "Comment utiliser la palette de commandes et les raccourcis clavier ?"

#: app/templates/main/help.html:719
msgid ""
"Press the question mark key (?) to open the command palette. From there, you"
" can type to search for any action or navigation target. Use keyboard "
"sequences like \"g d\" for Dashboard, \"g p\" for Projects, or \"n e\" for "
"New Entry. Press Shift+? to see all available shortcuts. Press Ctrl+K (or "
"Cmd+K on Mac) for quick search."
msgstr ""
"Appuyez sur la touche point d'interrogation (?) pour ouvrir la palette de "
"commandes. À partir de là, vous pouvez taper pour rechercher n’importe "
"quelle action ou cible de navigation. Utilisez des séquences de clavier "
"telles que « g d » pour le tableau de bord, « g p » pour les projets ou « n "
"e » pour une nouvelle entrée. Appuyez sur Maj+ ? pour voir tous les "
"raccourcis disponibles. Appuyez sur Ctrl+K (ou Cmd+K sur Mac) pour une "
"recherche rapide."

#: app/templates/main/help.html:722
msgid "How do I create bulk time entries for multiple days?"
msgstr "Comment créer des entrées de temps groupées pour plusieurs jours ?"

#: app/templates/main/help.html:723
msgid ""
"Navigate to Work → Bulk Time Entry. Select your project, choose a date "
"range, set your daily start and end times, and optionally skip weekends. The"
" system will create identical time entries for each day in the range. This "
"is perfect for logging regular work patterns or filling in past time when "
"you worked consistent hours."
msgstr ""
"Accédez à Travail → Saisie groupée du temps. Sélectionnez votre projet, "
"choisissez une plage de dates, définissez vos heures de début et de fin "
"quotidiennes et éventuellement ignorez les week-ends. Le système créera des "
"entrées de temps identiques pour chaque jour de la plage. C'est parfait pour"
" enregistrer des habitudes de travail régulières ou pour renseigner le temps"
" passé lorsque vous avez travaillé des heures constantes."

#: app/templates/main/help.html:726
msgid "What are time entry templates and how do I use them?"
msgstr "Que sont les modèles de saisie du temps et comment les utiliser ?"

#: app/templates/main/help.html:727
msgid ""
"Time entry templates let you save frequently used time entry configurations."
" When creating a manual time entry, check \"Save as Template\" to save the "
"project, task, and notes. Later, when creating new entries, you can select a"
" template to quickly fill in these details. Templates are personal and only "
"visible to you."
msgstr ""
"Les modèles de saisie du temps vous permettent d'enregistrer les "
"configurations de saisie du temps fréquemment utilisées. Lors de la création"
" d'une saisie manuelle du temps, cochez « Enregistrer en tant que modèle » "
"pour enregistrer le projet, la tâche et les notes. Plus tard, lors de la "
"création de nouvelles entrées, vous pourrez sélectionner un modèle pour "
"remplir rapidement ces détails. Les modèles sont personnels et visibles "
"uniquement par vous."

#: app/templates/main/help.html:730
msgid "How do I track expenses and add them to invoices?"
msgstr "Comment suivre les dépenses et les ajouter aux factures ?"

#: app/templates/main/help.html:731
msgid ""
"Go to Expenses → New Expense to record business expenses. Upload receipt "
"images, categorize the expense, and mark it as billable if needed. When "
"creating invoices, you can include these expenses as line items. Expenses "
"support approval workflows, reimbursement tracking, and can be linked to "
"specific projects."
msgstr ""
"Accédez à Dépenses → Nouvelle dépense pour enregistrer les dépenses "
"professionnelles. Téléchargez des images de reçus, catégorisez la dépense et"
" marquez-la comme facturable si nécessaire. Lors de la création de factures,"
" vous pouvez inclure ces dépenses sous forme de postes. Les dépenses "
"prennent en charge les flux de travail d'approbation, le suivi des "
"remboursements et peuvent être liées à des projets spécifiques."

#: app/templates/main/help.html:734
msgid "Can I use Markdown in descriptions?"
msgstr "Puis-je utiliser Markdown dans les descriptions ?"

#: app/templates/main/help.html:735
msgid ""
"Yes! Project and task descriptions support full Markdown formatting. You can"
" use bold, italic, headings, lists, links, code blocks, tables, and images. "
"This allows you to create rich, well-formatted documentation directly in "
"your projects and tasks. The Markdown editor includes a preview mode and "
"supports dark theme."
msgstr ""
"Oui! Les descriptions de projets et de tâches prennent en charge le "
"formatage Markdown complet. Vous pouvez utiliser des titres en gras, en "
"italique, des listes, des liens, des blocs de code, des tableaux et des "
"images. Cela vous permet de créer une documentation riche et bien formatée "
"directement dans vos projets et tâches. L'éditeur Markdown comprend un mode "
"aperçu et prend en charge le thème sombre."

#: app/templates/main/help.html:738
msgid "Where can I get additional help?"
msgstr "Où puis-je obtenir une aide supplémentaire ?"

#: app/templates/main/help.html:742
msgid "This help page covers most common questions and features."
msgstr "Cette page d'aide couvre les questions et fonctionnalités les plus courantes."

#: app/templates/main/help.html:746
msgid "Report issues and request features on"
msgstr "Signaler des problèmes et demander des fonctionnalités sur"

#: app/templates/main/help.html:751
msgid ""
"As an admin, you can access additional system information and diagnostics in"
" the"
msgstr ""
"En tant qu'administrateur, vous pouvez accéder à des informations système et"
" à des diagnostics supplémentaires dans le"

#: app/templates/main/help.html:751
msgid "section."
msgstr "section."

#: app/templates/main/help.html:760
msgid "Still Need Help?"
msgstr "Vous avez encore besoin d'aide ?"

#: app/templates/main/help.html:761
msgid "Can't find what you're looking for? Here are additional resources:"
msgstr ""
"Vous ne trouvez pas ce que vous cherchez ? Voici des ressources "
"supplémentaires :"

#: app/templates/main/help.html:769
msgid "GitHub Repository"
msgstr "Dépôt GitHub"

#: app/templates/main/help.html:772
msgid "Report Issue"
msgstr "Signaler un problème"

#: app/templates/main/search.html:11
msgid "Search Results"
msgstr "Résultats de la recherche"

#: app/templates/main/search.html:14
msgid "Search notes or tags"
msgstr "Rechercher des notes ou des balises"

#: app/templates/main/search.html:25
msgid "Results"
msgstr "Résultats"

#: app/templates/main/search.html:35
msgid "End"
msgstr "Fin"

#: app/templates/main/search.html:69
msgid ""
"Are you sure you want to delete this time entry? This action cannot be "
"undone."
msgstr ""
"Êtes-vous sûr de vouloir supprimer cette entrée de temps ? Cette action ne "
"peut pas être annulée."

#: app/templates/main/search.html:89 app/templates/tasks/my_tasks.html:345
msgid "Previous"
msgstr "Précédent"

#: app/templates/main/search.html:95 app/utils/pdf_generator_fallback.py:562
msgid "Page"
msgstr "Page"

#: app/templates/main/search.html:95 app/templates/projects/dashboard.html:52
msgid "of"
msgstr "de"

#: app/templates/main/search.html:99 app/templates/tasks/my_tasks.html:371
msgid "Next"
msgstr "Suivant"

#: app/templates/main/search.html:109
msgid "No results found"
msgstr "Aucun résultat trouvé"

#: app/templates/main/search.html:110
msgid "Try a different query or check your spelling."
msgstr "Essayez une autre requête ou vérifiez votre orthographe."

#: app/templates/mileage/form.html:55
msgid "e.g., Client meeting, Site visit"
msgstr "Par exemple, réunion client, visite du site"

#: app/templates/mileage/form.html:64
msgid "Additional details..."
msgstr "Détails supplémentaires..."

#: app/templates/mileage/form.html:83
msgid "e.g., Office, Home"
msgstr "par exemple, bureau, maison"

#: app/templates/mileage/form.html:93
msgid "e.g., Client site, Airport"
msgstr "par exemple, site client, aéroport"

#: app/templates/mileage/form.html:124
msgid "e.g., 12345"
msgstr "par exemple, 12345"

#: app/templates/mileage/form.html:134
msgid "e.g., 12400"
msgstr "par exemple, 12 400"

#: app/templates/mileage/form.html:184
msgid "e.g., VW Golf"
msgstr "par exemple, VW Golf"

#: app/templates/mileage/form.html:194
msgid "e.g., ABC-123"
msgstr "par exemple, ABC-123"

#: app/templates/mileage/list.html:59
msgid "Filter Mileage"
msgstr "Filtrer le kilométrage"

#: app/templates/mileage/list.html:69
msgid "Purpose, location..."
msgstr "Objectif, emplacement..."

#: app/templates/mileage/view.html:247
msgid "Optional approval notes..."
msgstr "Notes d'approbation facultatives..."

#: app/templates/mileage/view.html:256 app/templates/per_diem/view.html:103
msgid "Rejection reason (required)"
msgstr "Motif du refus (obligatoire)"

#: app/templates/payments/create.html:7
msgid "Record New Payment"
msgstr "Enregistrer un nouveau paiement"

#: app/templates/payments/list.html:24
msgid "Total Payments"
msgstr "Paiements totaux"

#: app/templates/payments/list.html:37
msgid "Gateway Fees"
msgstr "Frais de passerelle"

#: app/templates/payments/list.html:45
msgid "Filter Payments"
msgstr "Filtrer les paiements"

#: app/templates/payments/list.html:222
msgid "Delete Selected Payments"
msgstr "Supprimer les paiements sélectionnés"

#: app/templates/payments/list.html:242
msgid "Change Status for Selected Payments"
msgstr "Modifier le statut des paiements sélectionnés"

#: app/templates/payments/view.html:21
msgid "Payment Details"
msgstr "Détails du paiement"

#: app/templates/payments/view.html:151
msgid "Related Invoice"
msgstr "Facture associée"

#: app/templates/per_diem/form.html:34
msgid "e.g., Business trip to Berlin"
msgstr "par exemple, voyage d'affaires à Berlin"

#: app/templates/per_diem/form.html:62 app/templates/per_diem/rate_form.html:41
msgid "e.g., DE, US, GB"
msgstr "par exemple, DE, US, GB"

#: app/templates/per_diem/form.html:73 app/templates/per_diem/rate_form.html:52
msgid "e.g., Berlin"
msgstr "par exemple, Berlin"

#: app/templates/per_diem/list.html:47
msgid "Filter Claims"
msgstr "Filtrer les revendications"

#: app/templates/per_diem/list.html:122
msgid "Delete Selected Claims"
msgstr "Supprimer les revendications sélectionnées"

#: app/templates/per_diem/list.html:142
msgid "Change Status for Selected Claims"
msgstr "Modifier le statut des réclamations sélectionnées"

#: app/templates/per_diem/rate_form.html:162
msgid "Additional notes about this rate..."
msgstr "Notes supplémentaires sur ce tarif..."

#: app/templates/per_diem/rates_list.html:110
#: app/templates/per_diem/rates_list.html:121
msgid "Are you sure you want to delete this per diem rate?"
msgstr "Êtes-vous sûr de vouloir supprimer ce tarif journalier ?"

#: app/templates/per_diem/rates_list.html:111
msgid "Delete Per Diem Rate"
msgstr "Supprimer le taux journalier"

#: app/templates/projects/_kanban_tailwind.html:4
msgid "Kanban board columns"
msgstr "Colonnes du tableau Kanban"

#: app/templates/projects/_kanban_tailwind.html:17
msgid "Edit swimlane"
msgstr "Modifier le couloir"

#: app/templates/projects/_kanban_tailwind.html:23
msgid "Column"
msgstr "Colonne"

#: app/templates/projects/add_good.html:6
msgid "Add Extra Good"
msgstr "Ajouter du bien supplémentaire"

#: app/templates/projects/add_good.html:7
msgid "Add a product or service to"
msgstr "Ajouter un produit ou un service à"

#: app/templates/projects/add_good.html:9 app/templates/projects/dashboard.html:9
#: app/templates/projects/edit.html:11 app/templates/projects/edit_good.html:9
#: app/templates/projects/goods.html:10
msgid "Back to Project"
msgstr "Retour au projet"

#: app/templates/projects/add_good.html:40
#: app/templates/projects/edit_good.html:40
msgid "SKU/Product Code"
msgstr "UGS/Code produit"

#: app/templates/projects/archive.html:24
msgid "What happens when you archive a project?"
msgstr "Que se passe-t-il lorsque vous archivez un projet ?"

#: app/templates/projects/archive.html:26
msgid "The project will be hidden from active project lists"
msgstr "Le projet sera masqué des listes de projets actifs"

#: app/templates/projects/archive.html:27
msgid "No new time entries can be added to this project"
msgstr "Aucune nouvelle entrée de temps ne peut être ajoutée à ce projet"

#: app/templates/projects/archive.html:28
msgid "Existing data and time entries are preserved"
msgstr "Les données existantes et les entrées de temps sont préservées"

#: app/templates/projects/archive.html:29
msgid "You can unarchive the project later if needed"
msgstr "Vous pouvez désarchiver le projet plus tard si nécessaire"

#: app/templates/projects/archive.html:41
msgid "Reason for Archiving"
msgstr "Raison de l'archivage"

#: app/templates/projects/archive.html:48
msgid "e.g., Project completed, Client contract ended, Project cancelled, etc."
msgstr "Par exemple, projet terminé, contrat client terminé, projet annulé, etc."

#: app/templates/projects/archive.html:51
msgid "Adding a reason helps with project organization and future reference."
msgstr ""
"L'ajout d'une raison facilite l'organisation du projet et les références "
"futures."

#: app/templates/projects/archive.html:58
msgid "Quick Select"
msgstr "Sélection rapide"

#: app/templates/projects/archive.html:61
msgid "Project completed successfully"
msgstr "Projet terminé avec succès"

#: app/templates/projects/archive.html:62
msgid "Project Completed"
msgstr "Projet terminé"

#: app/templates/projects/archive.html:64
msgid "Client contract ended"
msgstr "Contrat client terminé"

#: app/templates/projects/archive.html:65 app/templates/projects/list.html:549
msgid "Contract Ended"
msgstr "Contrat terminé"

#: app/templates/projects/archive.html:67
msgid "Project cancelled by client"
msgstr "Projet annulé par le client"

#: app/templates/projects/archive.html:70
msgid "Project on hold indefinitely"
msgstr "Projet suspendu indéfiniment"

#: app/templates/projects/archive.html:71
msgid "On Hold"
msgstr "En attente"

#: app/templates/projects/archive.html:73
msgid "Maintenance period ended"
msgstr "Période de maintenance terminée"

#: app/templates/projects/archive.html:74
msgid "Maintenance Ended"
msgstr "Maintenance terminée"

#: app/templates/projects/archive.html:85
msgid "Archive Project"
msgstr "Projet d'archives"

#: app/templates/projects/create.html:3 app/templates/projects/create.html:8
#: app/templates/projects/create.html:93 app/templates/quotes/accept.html:41
msgid "Create Project"
msgstr "Créer un projet"

#: app/templates/projects/create.html:9
msgid "Set up a new project to organize your work and track time effectively"
msgstr ""
"Mettre en place un nouveau projet pour organiser votre travail et suivre "
"efficacement le temps"

#: app/templates/projects/create.html:11
msgid "Back to Projects"
msgstr "Retour aux projets"

#: app/templates/projects/create.html:23
msgid "Enter a descriptive project name"
msgstr "Entrez un nom de projet descriptif"

#: app/templates/projects/create.html:24
msgid "Choose a clear, descriptive name that explains the project scope"
msgstr "Choisissez un nom clair et descriptif qui explique la portée du projet"

#: app/templates/projects/create.html:27 app/templates/projects/edit.html:26
#: app/templates/projects/view.html:10 app/templates/projects/view.html:71
msgid "Project Code"
msgstr "Code du projet"

#: app/templates/projects/create.html:28 app/templates/projects/edit.html:27
msgid "Short code, e.g., ABC"
msgstr "Code court, par exemple ABC"

#: app/templates/projects/create.html:29
msgid "Optional: Short tag shown on Kanban cards"
msgstr "Facultatif : Balise courte affichée sur les cartes Kanban"

#: app/templates/projects/create.html:34 app/templates/projects/edit.html:32
msgid "Select a client..."
msgstr "Sélectionnez un client..."

#: app/templates/projects/create.html:40 app/templates/projects/edit.html:37
msgid "Create new client"
msgstr "Créer un nouveau client"

#: app/templates/projects/create.html:51
msgid ""
"Provide detailed information about the project, objectives, and "
"deliverables..."
msgstr ""
"Fournir des informations détaillées sur le projet, les objectifs et les "
"livrables..."

#: app/templates/projects/create.html:54
msgid "Optional: Add context, objectives, or specific requirements for the project"
msgstr ""
"Facultatif : ajoutez du contexte, des objectifs ou des exigences spécifiques"
" pour le projet"

#: app/templates/projects/create.html:61
msgid "Billable Project"
msgstr "Projet facturable"

#: app/templates/projects/create.html:63
msgid "Enable billing for this project"
msgstr "Activer la facturation pour ce projet"

#: app/templates/projects/create.html:68 app/templates/projects/edit.html:62
msgid "Leave empty for non-billable projects"
msgstr "Laisser vide pour les projets non facturables"

#: app/templates/projects/create.html:74
msgid "PO number, contract reference, etc."
msgstr "Numéro de bon de commande, référence du contrat, etc."

#: app/templates/projects/create.html:75
msgid "Optional: Add a reference number or identifier for billing purposes"
msgstr ""
"Facultatif : Ajoutez un numéro de référence ou un identifiant à des fins de "
"facturation"

#: app/templates/projects/create.html:80 app/templates/projects/edit.html:73
msgid "Budget Amount"
msgstr "Montant budgétaire"

#: app/templates/projects/create.html:81 app/templates/projects/edit.html:74
msgid "e.g. 10000.00"
msgstr "par ex. 10000.00"

#: app/templates/projects/create.html:82
msgid "Optional: Set a total project budget to monitor spend"
msgstr ""
"Facultatif : définissez un budget total de projet pour surveiller les "
"dépenses"

#: app/templates/projects/create.html:85 app/templates/projects/edit.html:77
msgid "Alert Threshold (%)"
msgstr "Seuil d'alerte (%)"

#: app/templates/projects/create.html:87
msgid "Notify when consumed budget exceeds this threshold"
msgstr "Notifier lorsque le budget consommé dépasse ce seuil"

#: app/templates/projects/create.html:101
msgid "Project Creation Tips"
msgstr "Conseils pour la création de projets"

#: app/templates/projects/create.html:103 app/templates/tasks/create.html:133
msgid "Clear Naming"
msgstr "Effacer la dénomination"

#: app/templates/projects/create.html:103
msgid "Use descriptive names that clearly indicate the project's purpose"
msgstr "Utilisez des noms descriptifs qui indiquent clairement le but du projet"

#: app/templates/projects/create.html:104
msgid "Billing Setup"
msgstr "Configuration de la facturation"

#: app/templates/projects/create.html:104
msgid "Set appropriate hourly rates based on project complexity and client budget"
msgstr ""
"Fixer des taux horaires appropriés en fonction de la complexité du projet et"
" du budget du client"

#: app/templates/projects/create.html:105
msgid "Detailed Description"
msgstr "Description détaillée"

#: app/templates/projects/create.html:105
msgid "Include project objectives, deliverables, and key requirements"
msgstr "Inclure les objectifs du projet, les livrables et les exigences clés"

#: app/templates/projects/create.html:106
msgid "Client Selection"
msgstr "Sélection des clients"

#: app/templates/projects/create.html:106
msgid "Choose the right client to ensure proper project organization"
msgstr "Choisir le bon client pour assurer une bonne organisation du projet"

#: app/templates/projects/create.html:334 app/templates/projects/create.html:455
msgid "Creating..."
msgstr "Création..."

#: app/templates/projects/create.html:474
msgid "Could not create client. Please try again."
msgstr "Impossible de créer le client. Veuillez réessayer."

#: app/templates/projects/create.html:500
msgid "Client created"
msgstr "Client créé"

#: app/templates/projects/create.html:504
msgid "Network error while creating client"
msgstr "Erreur réseau lors de la création du client"

#: app/templates/projects/dashboard.html:19
msgid "Project Dashboard & Analytics"
msgstr "Tableau de bord et analyses du projet"

#: app/templates/projects/dashboard.html:28 app/templates/projects/view.html:24
msgid "Budget Analysis"
msgstr "Analyse budgétaire"

#: app/templates/projects/dashboard.html:32
msgid "All Time"
msgstr "Tout le temps"

#: app/templates/projects/dashboard.html:33
msgid "Last 7 Days"
msgstr "7 derniers jours"

#: app/templates/projects/dashboard.html:34
msgid "Last 30 Days"
msgstr "30 derniers jours"

#: app/templates/projects/dashboard.html:35
msgid "Last 3 Months"
msgstr "3 derniers mois"

#: app/templates/projects/dashboard.html:36
msgid "Last Year"
msgstr "L'année dernière"

#: app/templates/projects/dashboard.html:52
msgid "estimated"
msgstr "estimé"

#: app/templates/projects/dashboard.html:66 app/templates/projects/view.html:147
msgid "Budget Used"
msgstr "Budget utilisé"

#: app/templates/projects/dashboard.html:70
msgid "of budget"
msgstr "du budget"

#: app/templates/projects/dashboard.html:84
msgid "Tasks Complete"
msgstr "Tâches terminées"

#: app/templates/projects/dashboard.html:87
msgid "completion"
msgstr "achèvement"

#: app/templates/projects/dashboard.html:100
msgid "Team Members"
msgstr "Membres de l'équipe"

#: app/templates/projects/dashboard.html:102
msgid "contributing"
msgstr "contribuer"

#: app/templates/projects/dashboard.html:117
msgid "Budget vs. Actual"
msgstr "Budget vs réel"

#: app/templates/projects/dashboard.html:139
msgid "No budget set for this project"
msgstr "Aucun budget fixé pour ce projet"

#: app/templates/projects/dashboard.html:149
msgid "Task Status Distribution"
msgstr "Répartition du statut des tâches"

#: app/templates/projects/dashboard.html:167
msgid "No tasks created yet"
msgstr "Aucune tâche créée pour le moment"

#: app/templates/projects/dashboard.html:180
msgid "Team Member Contributions"
msgstr "Contributions des membres de l'équipe"

#: app/templates/projects/dashboard.html:204
msgid "No time entries recorded yet"
msgstr "Aucune entrée de temps enregistrée pour l'instant"

#: app/templates/projects/dashboard.html:214
msgid "Time Tracking Timeline"
msgstr "Chronologie du suivi du temps"

#: app/templates/projects/dashboard.html:224
msgid "Select a time period to view timeline"
msgstr "Sélectionnez une période pour afficher la chronologie"

#: app/templates/projects/dashboard.html:272
msgid "Team Member Details"
msgstr "Détails des membres de l'équipe"

#: app/templates/projects/dashboard.html:285
msgid "entries"
msgstr "entrées"

#: app/templates/projects/dashboard.html:289
msgid "tasks"
msgstr "tâches"

#: app/templates/projects/dashboard.html:307
msgid "No team members have logged time yet"
msgstr "Aucun membre de l'équipe n'a encore enregistré de temps"

#: app/templates/projects/dashboard.html:320
msgid "Attention Required"
msgstr "Attention requise"

#: app/templates/projects/dashboard.html:322
msgid "task(s) are overdue"
msgstr "les tâches sont en retard"

#: app/templates/projects/edit.html:3 app/templates/projects/edit.html:8
#: app/templates/projects/list.html:214 app/templates/projects/view.html:28
msgid "Edit Project"
msgstr "Modifier le projet"

#: app/templates/projects/edit_good.html:6
msgid "Edit Extra Good"
msgstr "Modifier Extra Bon"

#: app/templates/projects/goods.html:7
msgid "Manage products and services for this project"
msgstr "Gérer les produits et services pour ce projet"

#: app/templates/projects/goods.html:17
msgid "Total Goods"
msgstr "Marchandises totales"

#: app/templates/projects/goods.html:25
msgid "Billable Amount"
msgstr "Montant facturable"

#: app/templates/projects/goods.html:29
msgid "Categories"
msgstr "Catégories"

#: app/templates/projects/goods.html:68
msgid "Invoiced"
msgstr "Facturé"

#: app/templates/projects/goods.html:72
msgid "Non-billable"
msgstr "Non facturable"

#: app/templates/projects/goods.html:81
msgid "Are you sure you want to delete this extra good?"
msgstr "Etes-vous sûr de vouloir supprimer ce bien supplémentaire ?"

#: app/templates/projects/goods.html:81
msgid "Delete Extra Good"
msgstr "Supprimer Extra Bon"

#: app/templates/projects/goods.html:98
msgid "No extra goods found for this project"
msgstr "Aucune marchandise supplémentaire trouvée pour ce projet"

#: app/templates/projects/goods.html:99
msgid "Add Your First Good"
msgstr "Ajoutez votre premier bien"

#: app/templates/projects/goods.html:105
msgid "Breakdown by Category"
msgstr "Répartition par catégorie"

#: app/templates/projects/goods.html:111
msgid "item(s)"
msgstr "articles)"

#: app/templates/projects/list.html:19
msgid "Filter Projects"
msgstr "Filtrer les projets"

#: app/templates/projects/list.html:70
msgid "List View"
msgstr "Vue en liste"

#: app/templates/projects/list.html:73
msgid "Grid View"
msgstr "Vue Grille"

#: app/templates/projects/view.html:32
msgid "Mark project as Inactive?"
msgstr "Marquer le projet comme inactif ?"

#: app/templates/projects/view.html:32
msgid "Change Project Status"
msgstr "Modifier le statut du projet"

#: app/templates/projects/view.html:37
msgid "Activate project?"
msgstr "Activer le projet ?"

#: app/templates/projects/view.html:37
msgid "Activate Project"
msgstr "Activer le projet"

#: app/templates/projects/view.html:45
msgid "Archive"
msgstr "Archive"

#: app/templates/projects/view.html:47
msgid "Unarchive project?"
msgstr "Désarchiver le projet ?"

#: app/templates/projects/view.html:47
msgid "Unarchive Project"
msgstr "Désarchiver le projet"

#: app/templates/projects/view.html:47 app/templates/projects/view.html:49
msgid "Unarchive"
msgstr "Désarchiver"

#: app/templates/projects/view.html:55
msgid "Delete Project"
msgstr "Supprimer le projet"

#: app/templates/projects/view.html:100
msgid "Archive Information"
msgstr "Informations sur les archives"

#: app/templates/projects/view.html:103
msgid "Archived on:"
msgstr "Archivé sur :"

#: app/templates/projects/view.html:108
msgid "Archived by:"
msgstr "Archivé par :"

#: app/templates/projects/view.html:114
msgid "Reason:"
msgstr "Raison:"

#: app/templates/projects/view.html:130
msgid "Budget Overview"
msgstr "Aperçu budgétaire"

#: app/templates/projects/view.html:179
msgid "Over"
msgstr "Sur"

#: app/templates/projects/view.html:202
msgid "View Full Budget Analysis"
msgstr "Voir l'analyse budgétaire complète"

#: app/templates/projects/view.html:226
msgid "Tasks for this project"
msgstr "Tâches pour ce projet"

#: app/templates/projects/view.html:231 app/templates/tasks/_kanban.html:1235
#: app/templates/tasks/create.html:59 app/templates/tasks/edit.html:83
#: app/templates/tasks/my_tasks.html:134
msgid "Priority"
msgstr "Priorité"

#: app/templates/projects/view.html:233
msgid "Due"
msgstr "Exigible"

#: app/templates/projects/view.html:279
msgid "No tasks for this project."
msgstr "Aucune tâche pour ce projet."

#: app/templates/quotes/accept.html:3 app/templates/quotes/accept.html:8
#: app/templates/quotes/view.html:229
msgid "Accept Quote"
msgstr "Accepter le devis"

#: app/templates/quotes/accept.html:11
msgid "Back to Quote"
msgstr "Retour au devis"

#: app/templates/quotes/accept.html:42
msgid ""
"Accepting this quote will create a new project with the budget from the "
"quote."
msgstr "Accepter ce devis créera un nouveau projet avec le budget du devis."

#: app/templates/quotes/accept.html:50
msgid "The project will be created with the budget from the quote"
msgstr "Le projet sera créé avec le budget du devis"

#: app/templates/quotes/accept.html:55
msgid "Accept Quote & Create Project"
msgstr "Accepter le devis et créer un projet"

#: app/templates/quotes/create.html:4 app/templates/quotes/create.html:202
msgid "Create Quote"
msgstr "Créer un devis"

#: app/templates/quotes/create.html:33
msgid "Select a client"
msgstr "Sélectionnez un client"

#: app/templates/quotes/create.html:41 app/templates/quotes/edit.html:33
msgid "Quote title"
msgstr "Titre de la citation"

#: app/templates/quotes/create.html:46 app/templates/quotes/edit.html:47
msgid "Quote description"
msgstr "Description du devis"

#: app/templates/quotes/create.html:89 app/templates/quotes/edit.html:116
msgid "Financial Details"
msgstr "Détails financiers"

#: app/templates/quotes/create.html:119 app/templates/quotes/edit.html:146
msgid "Select payment terms"
msgstr "Sélectionnez les conditions de paiement"

#: app/templates/quotes/create.html:120 app/templates/quotes/edit.html:147
msgid "Due on Receipt"
msgstr "Exigible à réception"

#: app/templates/quotes/create.html:128 app/templates/quotes/edit.html:155
msgid "Or enter custom payment terms"
msgstr "Ou saisissez des conditions de paiement personnalisées"

#: app/templates/quotes/create.html:130 app/templates/quotes/edit.html:157
msgid "Use custom terms"
msgstr "Utiliser des termes personnalisés"

#: app/templates/quotes/create.html:138 app/templates/quotes/edit.html:165
#: app/templates/quotes/pdf_default.html:102 app/templates/quotes/view.html:116
msgid "Discount"
msgstr "Rabais"

#: app/templates/quotes/create.html:142 app/templates/quotes/edit.html:169
msgid "Discount Type"
msgstr "Type de remise"

#: app/templates/quotes/create.html:144 app/templates/quotes/edit.html:171
msgid "No Discount"
msgstr "Pas de réduction"

#: app/templates/quotes/create.html:145 app/templates/quotes/edit.html:172
msgid "Percentage (%)"
msgstr "Pourcentage (%)"

#: app/templates/quotes/create.html:146 app/templates/quotes/edit.html:173
msgid "Fixed Amount"
msgstr "Montant fixe"

#: app/templates/quotes/create.html:150 app/templates/quotes/edit.html:177
msgid "Discount Amount"
msgstr "Montant de la remise"

#: app/templates/quotes/create.html:151 app/templates/quotes/edit.html:178
msgid "0.00"
msgstr "0,00"

#: app/templates/quotes/create.html:156 app/templates/quotes/edit.html:183
msgid "Coupon Code"
msgstr "Code promo"

#: app/templates/quotes/create.html:157 app/templates/quotes/edit.html:184
msgid "Optional coupon code"
msgstr "Code promo facultatif"

#: app/templates/quotes/create.html:160 app/templates/quotes/edit.html:187
msgid "Discount Reason"
msgstr "Raison de la remise"

#: app/templates/quotes/create.html:161 app/templates/quotes/edit.html:188
msgid "Reason for discount"
msgstr "Raison de la remise"

#: app/templates/quotes/create.html:169
msgid "Approval Workflow"
msgstr "Flux de travail d'approbation"

#: app/templates/quotes/create.html:174
msgid "Requires approval before sending"
msgstr "Nécessite une approbation avant l'envoi"

#: app/templates/quotes/create.html:182 app/templates/quotes/edit.html:196
msgid "Additional Information"
msgstr "Informations Complémentaires"

#: app/templates/quotes/create.html:186 app/templates/quotes/edit.html:200
msgid "Internal notes (not visible to client)"
msgstr "Notes internes (non visibles par le client)"

#: app/templates/quotes/create.html:187 app/templates/quotes/edit.html:201
msgid "These notes are only visible to your team"
msgstr "Ces notes ne sont visibles que par votre équipe"

#: app/templates/quotes/create.html:190 app/templates/quotes/edit.html:204
#: app/templates/quotes/view.html:152
msgid "Terms and Conditions"
msgstr "Termes et conditions"

#: app/templates/quotes/create.html:191 app/templates/quotes/edit.html:205
msgid "Terms and conditions"
msgstr "Termes et conditions"

#: app/templates/quotes/create.html:192 app/templates/quotes/edit.html:206
msgid "These terms will be visible to the client"
msgstr "Ces termes seront visibles par le client"

#: app/templates/quotes/edit.html:4 app/templates/quotes/view.html:19
msgid "Edit Quote"
msgstr "Modifier le devis"

#: app/templates/quotes/edit.html:41
msgid "Client cannot be changed"
msgstr "Le client ne peut pas être modifié"

#: app/templates/quotes/edit.html:216
msgid "Update Quote"
msgstr "Mettre à jour le devis"

#: app/templates/quotes/list.html:21
msgid "Total Quotes"
msgstr "Total des cotations"

#: app/templates/quotes/list.html:29
msgid "Acceptance Rate"
msgstr "Taux d'acceptation"

#: app/templates/quotes/list.html:33
msgid "Avg Quote Value"
msgstr "Valeur moyenne du devis"

#: app/templates/quotes/list.html:40
msgid "Quotes by Status"
msgstr "Citations par statut"

#: app/templates/quotes/list.html:51
msgid "Top Clients by Quotes"
msgstr "Meilleurs clients par devis"

#: app/templates/quotes/list.html:66
msgid "Filter Quotes"
msgstr "Filtrer les devis"

#: app/templates/quotes/list.html:75
msgid "Search quotes..."
msgstr "Rechercher des citations..."

#: app/templates/quotes/list.html:83 app/templates/quotes/list.html:160
#: app/templates/quotes/view.html:65
msgid "Accepted"
msgstr "Accepté"

#: app/templates/quotes/list.html:84 app/templates/quotes/list.html:162
#: app/templates/quotes/view.html:67 app/utils/i18n_helpers.py:161
#: app/utils/i18n_helpers.py:172
msgid "Rejected"
msgstr "Rejeté"

#: app/templates/quotes/list.html:106 app/templates/quotes/list.html:293
#: app/templates/quotes/view.html:24
msgid "Duplicate"
msgstr "Double"

#: app/templates/quotes/list.html:107 app/templates/quotes/list.html:294
msgid "Mark as Sent"
msgstr "Marquer comme envoyé"

#: app/templates/quotes/list.html:181
msgid "Create Your First Quote"
msgstr "Créez votre premier devis"

#: app/templates/quotes/list.html:185
msgid "Learn More"
msgstr "Apprendre encore plus"

#: app/templates/quotes/list.html:293
msgid "Are you sure you want to duplicate"
msgstr "Etes-vous sûr de vouloir dupliquer"

#: app/templates/quotes/list.html:293 app/templates/quotes/list.html:295
msgid "quote(s)?"
msgstr "citations)?"

#: app/templates/quotes/list.html:294
msgid "Are you sure you want to mark"
msgstr "Etes-vous sûr de vouloir marquer"

#: app/templates/quotes/list.html:294
msgid "quote(s) as sent?"
msgstr "devis tel(s) envoyé(s) ?"

#: app/templates/quotes/pdf_default.html:37
#: app/utils/pdf_generator_fallback.py:447
msgid "QUOTE"
msgstr "CITATION"

#: app/templates/quotes/pdf_default.html:39
msgid "Quote #"
msgstr "Citation #"

#: app/templates/quotes/pdf_default.html:51
msgid "Quote For"
msgstr "Devis pour"

#: app/templates/quotes/pdf_default.html:113
msgid "Subtotal After Discount:"
msgstr "Sous-total après remise :"

#: app/templates/quotes/pdf_default.html:135
#: app/utils/pdf_generator_fallback.py:544
msgid "Description:"
msgstr "Description:"

#: app/templates/quotes/view.html:15
msgid "Back to Quotes"
msgstr "Retour aux citations"

#: app/templates/quotes/view.html:130
msgid "Subtotal After Discount"
msgstr "Sous-total après remise"

#: app/templates/quotes/view.html:160
msgid "Related Project"
msgstr "Projet connexe"

#: app/templates/quotes/view.html:177
msgid "Approval Status"
msgstr "Statut d'approbation"

#: app/templates/quotes/view.html:179
msgid "Approval not yet requested"
msgstr "Approbation pas encore demandée"

#: app/templates/quotes/view.html:183
msgid "Request Approval"
msgstr "Demander l'approbation"

#: app/templates/quotes/view.html:187
msgid "Pending approval"
msgstr "En attente d'approbation"

#: app/templates/quotes/view.html:190 app/templates/quotes/view.html:513
msgid "Approve"
msgstr "Approuver"

#: app/templates/quotes/view.html:191 app/templates/quotes/view.html:233
#: app/templates/quotes/view.html:531
msgid "Reject"
msgstr "Rejeter"

#: app/templates/quotes/view.html:196
msgid "Approved by"
msgstr "Approuvé par"

#: app/templates/quotes/view.html:198 app/templates/quotes/view.html:205
msgid "on"
msgstr "sur"

#: app/templates/quotes/view.html:203
msgid "Rejected by"
msgstr "Rejeté par"

#: app/templates/quotes/view.html:214
msgid "Request Approval Again"
msgstr "Demander à nouveau l'approbation"

#: app/templates/quotes/view.html:224
msgid "Send Quote"
msgstr "Envoyer un devis"

#: app/templates/quotes/view.html:233
msgid "Are you sure you want to reject this quote?"
msgstr "Êtes-vous sûr de vouloir rejeter ce devis ?"

#: app/templates/quotes/view.html:233 app/templates/quotes/view.html:235
msgid "Reject Quote"
msgstr "Rejeter le devis"

#: app/templates/quotes/view.html:242 app/templates/quotes/view.html:541
msgid "Delete Quote"
msgstr "Supprimer le devis"

#: app/templates/quotes/view.html:277
msgid "Internal comment (not visible to client)"
msgstr "Commentaire interne (non visible par le client)"

#: app/templates/quotes/view.html:301 app/templates/quotes/view.html:328
#: app/templates/quotes/view.html:361
msgid "Internal"
msgstr "Interne"

#: app/templates/quotes/view.html:303
msgid "Client Visible"
msgstr "Client visible"

#: app/templates/quotes/view.html:310 app/templates/quotes/view.html:335
msgid "Are you sure you want to delete this comment?"
msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?"

#: app/templates/quotes/view.html:357
msgid "Write a reply..."
msgstr "Écrivez une réponse..."

#: app/templates/quotes/view.html:376
msgid "No comments yet. Start the conversation by adding the first comment."
msgstr ""
"Pas encore de commentaires. Démarrez la conversation en ajoutant le premier "
"commentaire."

#: app/templates/quotes/view.html:405
msgid "Sent At"
msgstr "Envoyé à"

#: app/templates/quotes/view.html:411
msgid "Accepted At"
msgstr "Accepté à"

#: app/templates/quotes/view.html:426
msgid "Send Quote via Email"
msgstr "Envoyer un devis par e-mail"

#: app/templates/quotes/view.html:434
msgid "Recipient Email"
msgstr "E-mail du destinataire"

#: app/templates/quotes/view.html:442
#, python-format
msgid "Quote %(quote_number)s"
msgstr "Citation %(quote_number)s"

#: app/templates/quotes/view.html:446
msgid "Custom Message (Optional)"
msgstr "Message personnalisé (facultatif)"

#: app/templates/quotes/view.html:449
msgid "Add a custom message to the email..."
msgstr "Ajouter un message personnalisé à l'e-mail..."

#: app/templates/quotes/view.html:453
msgid "Attach PDF"
msgstr "Joindre un PDF"

#: app/templates/quotes/view.html:505
msgid "Approve Quote"
msgstr "Approuver le devis"

#: app/templates/quotes/view.html:509
msgid "Notes (Optional)"
msgstr "Remarques (facultatif)"

#: app/templates/quotes/view.html:510
msgid "Add approval notes..."
msgstr "Ajouter des notes d'approbation..."

#: app/templates/quotes/view.html:523
msgid "Reject Quote Approval"
msgstr "Rejeter l'approbation du devis"

#: app/templates/quotes/view.html:527
msgid "Rejection Reason"
msgstr "Motif du rejet"

#: app/templates/quotes/view.html:528
msgid "Please provide a reason for rejection..."
msgstr "Veuillez indiquer le motif du refus..."

#: app/templates/quotes/view.html:542
msgid "Are you sure you want to delete this quote? This action cannot be undone."
msgstr ""
"Êtes-vous sûr de vouloir supprimer cette citation ? Cette action ne peut pas"
" être annulée."

#: app/templates/recurring_invoices/create.html:124
#: app/templates/recurring_invoices/list.html:15
msgid "Create Recurring Invoice"
msgstr "Créer une facture récurrente"

#: app/templates/recurring_invoices/edit.html:111
msgid "Update Recurring Invoice"
msgstr "Mettre à jour la facture récurrente"

#: app/templates/recurring_invoices/list.html:12
msgid "Automate invoice generation for subscription-based billing"
msgstr "Automatisez la génération de factures pour la facturation par abonnement"

#: app/templates/recurring_invoices/list.html:26
msgid "Frequency"
msgstr "Fréquence"

#: app/templates/recurring_invoices/list.html:27
msgid "Next Run"
msgstr "Prochaine exécution"

#: app/templates/recurring_invoices/view.html:17
msgid "Generate Now"
msgstr "Générer maintenant"

#: app/templates/recurring_invoices/view.html:22
#: app/templates/time_entry_templates/view.html:24
msgid "Template Details"
msgstr "Détails du modèle"

#: app/templates/recurring_invoices/view.html:53
msgid "Invoice Settings"
msgstr "Paramètres de facture"

#: app/templates/recurring_invoices/view.html:92
msgid "Recently Generated Invoices"
msgstr "Factures récemment générées"

#: app/templates/reports/export_form.html:171
msgid "e.g., development, meeting, urgent"
msgstr "par exemple, développement, réunion, urgence"

#: app/templates/reports/index.html:62
msgid "Date Range & Comparison"
msgstr "Plage de dates et comparaison"

#: app/templates/reports/index.html:66
msgid "Quick Date Ranges"
msgstr "Plages de dates rapides"

#: app/templates/reports/index.html:95
msgid "Comparison View"
msgstr "Vue comparative"

#: app/templates/reports/index.html:121
msgid "Comparison Results"
msgstr "Résultats de comparaison"

#: app/templates/reports/index.html:130
msgid "Export Reports"
msgstr "Exporter des rapports"

#: app/templates/reports/index.html:133
msgid "Export Format"
msgstr "Format d'exportation"

#: app/templates/reports/index.html:143
msgid "Scheduled Reports"
msgstr "Rapports planifiés"

#: app/templates/reports/index.html:164
msgid "Report Types"
msgstr "Types de rapports"

#: app/templates/reports/index.html:167
#: app/templates/reports/project_report.html:5
msgid "Project Report"
msgstr "Rapport de projet"

#: app/templates/reports/index.html:170 app/templates/reports/user_report.html:5
msgid "User Report"
msgstr "Rapport utilisateur"

#: app/templates/reports/index.html:173 app/templates/reports/summary.html:6
msgid "Summary Report"
msgstr "Rapport sommaire"

#: app/templates/reports/index.html:176 app/templates/reports/task_report.html:5
msgid "Task Report"
msgstr "Rapport de tâche"

#: app/templates/reports/index.html:182
msgid "Recent Entries"
msgstr "Entrées récentes"

#: app/templates/reports/user_report.html:108
msgid "About Overtime Tracking"
msgstr "À propos du suivi des heures supplémentaires"

#: app/templates/saved_filters/list.html:46
msgid "Apply filter"
msgstr "Appliquer le filtre"

#: app/templates/saved_filters/list.html:51
msgid "Are you sure you want to delete this filter?"
msgstr "Êtes-vous sûr de vouloir supprimer ce filtre ?"

#: app/templates/saved_filters/list.html:51
msgid "Delete Filter"
msgstr "Supprimer le filtre"

#: app/templates/settings/keyboard_shortcuts.html:227
msgid "Customize Shortcuts"
msgstr "Personnaliser les raccourcis"

#: app/templates/settings/keyboard_shortcuts.html:235
msgid "Search shortcuts..."
msgstr "Rechercher des raccourcis..."

#: app/templates/settings/keyboard_shortcuts.html:461
msgid "This will reset all keyboard shortcuts to their default values. Continue?"
msgstr ""
"Cela réinitialisera tous les raccourcis clavier à leurs valeurs par défaut. "
"Continuer?"

#: app/templates/settings/keyboard_shortcuts.html:463
msgid "Reset to Defaults"
msgstr "Réinitialiser aux valeurs par défaut"

#: app/templates/setup/initial_setup.html:6
msgid "Welcome"
msgstr "Accueillir"

#: app/templates/setup/initial_setup.html:30
msgid "Privacy First"
msgstr "La confidentialité d'abord"

#: app/templates/setup/initial_setup.html:35
msgid "Self-hosted on your server"
msgstr "Auto-hébergé sur votre serveur"

#: app/templates/setup/initial_setup.html:41
msgid "Anonymous telemetry (opt-in)"
msgstr "Télémétrie anonyme (opt-in)"

#: app/templates/setup/initial_setup.html:47
msgid "No PII collected ever"
msgstr "Aucune information personnelle n'a été collectée"

#: app/templates/setup/initial_setup.html:53
msgid "Open source & transparent"
msgstr "Open source et transparent"

#: app/templates/setup/initial_setup.html:61
msgid "Welcome to TimeTracker"
msgstr "Bienvenue sur TimeTracker"

#: app/templates/setup/initial_setup.html:62
msgid "Let's get you set up in just a moment"
msgstr "Laissez-vous installer dans un instant"

#: app/templates/setup/initial_setup.html:69
msgid "Thank you for choosing TimeTracker!"
msgstr "Merci d'avoir choisi TimeTracker !"

#: app/templates/setup/initial_setup.html:71
msgid "Your data stays on your server, and you have complete control."
msgstr "Vos données restent sur votre serveur et vous avez un contrôle total."

#: app/templates/setup/initial_setup.html:77
msgid "Help Us Improve (Optional)"
msgstr "Aidez-nous à améliorer (facultatif)"

#: app/templates/setup/initial_setup.html:83
msgid "Enable anonymous telemetry"
msgstr "Activer la télémétrie anonyme"

#: app/templates/setup/initial_setup.html:85
msgid "Help us understand usage patterns to improve TimeTracker"
msgstr "Aidez-nous à comprendre les modèles d'utilisation pour améliorer TimeTracker"

#: app/templates/setup/initial_setup.html:94
msgid "What data is collected?"
msgstr "Quelles données sont collectées ?"

#: app/templates/setup/initial_setup.html:98
msgid "What we collect:"
msgstr "Ce que nous collectons :"

#: app/templates/setup/initial_setup.html:100
msgid "Anonymous installation fingerprint (hashed)"
msgstr "Empreinte digitale d'installation anonyme (hachée)"

#: app/templates/setup/initial_setup.html:101
msgid "Application version & platform info"
msgstr "Version de l'application et informations sur la plateforme"

#: app/templates/setup/initial_setup.html:102
msgid "Feature usage statistics"
msgstr "Statistiques d'utilisation des fonctionnalités"

#: app/templates/setup/initial_setup.html:103
msgid "Internal numeric IDs only"
msgstr "ID numériques internes uniquement"

#: app/templates/setup/initial_setup.html:108
msgid "What we DON'T collect:"
msgstr "Ce que nous ne collectons PAS :"

#: app/templates/setup/initial_setup.html:110
msgid "No usernames or emails"
msgstr "Aucun nom d'utilisateur ni e-mail"

#: app/templates/setup/initial_setup.html:111
msgid "No project names or descriptions"
msgstr "Aucun nom ou description de projet"

#: app/templates/setup/initial_setup.html:112
msgid "No time entry data or notes"
msgstr "Aucune donnée ni note de saisie du temps"

#: app/templates/setup/initial_setup.html:113
msgid "No client or business data"
msgstr "Aucune donnée client ou entreprise"

#: app/templates/setup/initial_setup.html:114
msgid "No IP addresses or PII"
msgstr "Aucune adresse IP ni PII"

#: app/templates/setup/initial_setup.html:120
msgid "Why?"
msgstr "Pourquoi?"

#: app/templates/setup/initial_setup.html:120
msgid "Anonymous usage data helps us prioritize features and fix issues."
msgstr ""
"Les données d'utilisation anonymes nous aident à prioriser les "
"fonctionnalités et à résoudre les problèmes."

#: app/templates/setup/initial_setup.html:121
msgid "You can change this anytime in"
msgstr "Vous pouvez modifier cela à tout moment dans"

#: app/templates/setup/initial_setup.html:121
msgid "Privacy & Analytics section"
msgstr "Section Confidentialité et analyses"

#: app/templates/setup/initial_setup.html:131
msgid "Complete Setup & Continue"
msgstr "Terminer la configuration et continuer"

#: app/templates/setup/initial_setup.html:135
msgid "By continuing, you agree to use TimeTracker under the"
msgstr "En continuant, vous acceptez d'utiliser TimeTracker sous les"

#: app/templates/setup/initial_setup.html:135
msgid "GPL-3.0 License"
msgstr "Licence GPL-3.0"

#: app/templates/tasks/_kanban.html:65 app/templates/tasks/_kanban.html:1360
#: app/templates/tasks/edit.html:3 app/templates/tasks/edit.html:13
#: app/templates/tasks/edit.html:26 app/templates/tasks/view.html:12
msgid "Edit Task"
msgstr "Modifier la tâche"

#: app/templates/tasks/_kanban.html:913
msgid "Failed to update status"
msgstr "Échec de la mise à jour du statut"

#: app/templates/tasks/_kanban.html:924 app/templates/tasks/_kanban.html:1000
msgid "Failed to update task status"
msgstr "Échec de la mise à jour de l'état de la tâche"

#: app/templates/tasks/_kanban.html:937
msgid "Kanban column created"
msgstr "Colonne Kanban créée"

#: app/templates/tasks/_kanban.html:938
msgid "Kanban column deleted"
msgstr "Colonne Kanban supprimée"

#: app/templates/tasks/_kanban.html:939
msgid "Kanban columns reordered"
msgstr "Colonnes Kanban réorganisées"

#: app/templates/tasks/_kanban.html:940
msgid "Kanban column visibility changed"
msgstr "La visibilité de la colonne Kanban a été modifiée"

#: app/templates/tasks/_kanban.html:941 app/templates/tasks/_kanban.html:944
#: app/templates/tasks/_kanban.html:1017
msgid "Kanban columns updated"
msgstr "Colonnes Kanban mises à jour"

#: app/templates/tasks/_kanban.html:942 app/templates/tasks/_kanban.html:1017
msgid "Update"
msgstr "Mise à jour"

#: app/templates/tasks/_kanban.html:955
msgid "Failed to refresh kanban columns"
msgstr "Échec de l'actualisation des colonnes Kanban"

#: app/templates/tasks/_kanban.html:1218
msgid "Loading task details..."
msgstr "Chargement des détails de la tâche..."

#: app/templates/tasks/_kanban.html:1263
msgid "Assigned To"
msgstr "Attribué à"

#: app/templates/tasks/_kanban.html:1313
msgid "Tracked"
msgstr "Suivi"

#: app/templates/tasks/_kanban.html:1324 app/templates/tasks/edit.html:166
msgid "Estimated"
msgstr "Estimé"

#: app/templates/tasks/_kanban.html:1357
msgid "View Full Details"
msgstr "Afficher tous les détails"

#: app/templates/tasks/create.html:3 app/templates/tasks/create.html:13
#: app/templates/tasks/create.html:117
msgid "Create Task"
msgstr "Créer une tâche"

#: app/templates/tasks/create.html:14
msgid "Add a new task to your project to break down work into manageable components"
msgstr ""
"Ajoutez une nouvelle tâche à votre projet pour diviser le travail en "
"composants gérables"

#: app/templates/tasks/create.html:16 app/templates/tasks/edit.html:284
#: app/templates/tasks/overdue.html:10
msgid "Back to Tasks"
msgstr "Retour aux tâches"

#: app/templates/tasks/create.html:26 app/templates/tasks/edit.html:45
msgid "Task Name"
msgstr "Nom de la tâche"

#: app/templates/tasks/create.html:27 app/templates/tasks/edit.html:48
msgid "Enter a descriptive task name"
msgstr "Entrez un nom de tâche descriptif"

#: app/templates/tasks/create.html:28 app/templates/tasks/edit.html:49
msgid "Choose a clear, descriptive name that explains what needs to be done"
msgstr "Choisissez un nom clair et descriptif qui explique ce qui doit être fait"

#: app/templates/tasks/create.html:38 app/templates/tasks/edit.html:58
#: app/templates/tasks/edit.html:509
msgid ""
"Provide detailed information about the task, requirements, and any specific "
"instructions..."
msgstr ""
"Fournissez des informations détaillées sur la tâche, les exigences et toute "
"instruction spécifique..."

#: app/templates/tasks/create.html:41 app/templates/tasks/edit.html:61
msgid "Optional: Add context, requirements, or specific instructions for the task"
msgstr ""
"Facultatif : ajoutez du contexte, des exigences ou des instructions "
"spécifiques pour la tâche"

#: app/templates/tasks/create.html:53 app/templates/tasks/edit.html:77
msgid "Select the project this task belongs to"
msgstr "Sélectionnez le projet auquel cette tâche appartient"

#: app/templates/tasks/create.html:61 app/templates/tasks/create.html:81
#: app/templates/tasks/create.html:440 app/templates/tasks/edit.html:85
#: app/templates/tasks/edit.html:636 app/templates/tasks/my_tasks.html:137
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:50
msgid "Low"
msgstr "Faible"

#: app/templates/tasks/create.html:62 app/templates/tasks/create.html:81
#: app/templates/tasks/create.html:441 app/templates/tasks/edit.html:86
#: app/templates/tasks/edit.html:637 app/templates/tasks/my_tasks.html:138
#: app/utils/i18n_helpers.py:40 app/utils/i18n_helpers.py:51
msgid "Medium"
msgstr "Moyen"

#: app/templates/tasks/create.html:63 app/templates/tasks/create.html:81
#: app/templates/tasks/create.html:442 app/templates/tasks/edit.html:87
#: app/templates/tasks/edit.html:638 app/templates/tasks/my_tasks.html:139
#: app/utils/i18n_helpers.py:41 app/utils/i18n_helpers.py:52
msgid "High"
msgstr "Haut"

#: app/templates/tasks/create.html:64 app/templates/tasks/create.html:81
#: app/templates/tasks/create.html:443 app/templates/tasks/edit.html:88
#: app/templates/tasks/edit.html:639 app/templates/tasks/my_tasks.html:140
#: app/utils/i18n_helpers.py:42 app/utils/i18n_helpers.py:53
msgid "Urgent"
msgstr "Urgent"

#: app/templates/tasks/create.html:68
msgid "Initial Status"
msgstr "Statut initial"

#: app/templates/tasks/create.html:73 app/templates/tasks/create.html:84
#: app/templates/tasks/create.html:448 app/templates/tasks/edit.html:97
#: app/templates/tasks/edit.html:644 app/templates/tasks/my_tasks.html:129
#: app/utils/i18n_helpers.py:18 app/utils/i18n_helpers.py:30
msgid "Done"
msgstr "Fait"

#: app/templates/tasks/create.html:93 app/templates/tasks/edit.html:117
msgid "Optional: Set a deadline for this task"
msgstr "Facultatif : définissez une date limite pour cette tâche"

#: app/templates/tasks/create.html:96 app/templates/tasks/edit.html:120
msgid "Estimated Hours"
msgstr "Heures estimées"

#: app/templates/tasks/create.html:98 app/templates/tasks/edit.html:122
msgid "Optional: Estimate how long this task will take"
msgstr "Facultatif : estimez la durée de cette tâche"

#: app/templates/tasks/create.html:104 app/templates/tasks/edit.html:128
msgid "Assign To"
msgstr "Attribuer à"

#: app/templates/tasks/create.html:106 app/templates/tasks/edit.html:130
#: app/templates/tasks/overdue.html:59
msgid "Unassigned"
msgstr "Non attribué"

#: app/templates/tasks/create.html:111 app/templates/tasks/edit.html:135
msgid "Optional: Assign this task to a team member"
msgstr "Facultatif : Attribuez cette tâche à un membre de l'équipe"

#: app/templates/tasks/create.html:126
msgid "Task Creation Tips"
msgstr "Conseils pour la création de tâches"

#: app/templates/tasks/create.html:134
msgid "Use action verbs and be specific about what needs to be done"
msgstr "Utilisez des verbes d’action et soyez précis sur ce qui doit être fait"

#: app/templates/tasks/create.html:142
msgid "Realistic Estimates"
msgstr "Estimations réalistes"

#: app/templates/tasks/create.html:143
msgid "Consider complexity and dependencies when estimating time"
msgstr ""
"Tenir compte de la complexité et des dépendances lors de l'estimation du "
"temps"

#: app/templates/tasks/create.html:151
msgid "Set Deadlines"
msgstr "Fixer des délais"

#: app/templates/tasks/create.html:152
msgid "Due dates help prioritize work and track progress"
msgstr "Les dates d’échéance aident à prioriser le travail et à suivre les progrès"

#: app/templates/tasks/create.html:160
msgid "Priority Matters"
msgstr "Questions prioritaires"

#: app/templates/tasks/create.html:161
msgid "Use priority levels to help team members focus on what's most important"
msgstr ""
"Utilisez les niveaux de priorité pour aider les membres de l'équipe à se "
"concentrer sur ce qui est le plus important"

#: app/templates/tasks/edit.html:14 app/templates/tasks/edit.html:27
#, python-format
msgid "Update task details and settings for \"%(task)s\""
msgstr "Mettre à jour les détails et les paramètres de la tâche pour « %(task)s »"

#: app/templates/tasks/edit.html:16
msgid "Back to Task"
msgstr "Retour à la tâche"

#: app/templates/tasks/edit.html:37
msgid "Task Information"
msgstr "Informations sur la tâche"

#: app/templates/tasks/edit.html:141
msgid "Update Task"
msgstr "Tâche de mise à jour"

#: app/templates/tasks/edit.html:157
msgid "Estimate used"
msgstr "Estimation utilisée"

#: app/templates/tasks/edit.html:164 app/templates/weekly_goals/index.html:185
msgid "Actual"
msgstr "Réel"

#: app/templates/tasks/edit.html:177
msgid "Current Task Info"
msgstr "Informations sur la tâche actuelle"

#: app/templates/tasks/edit.html:181
msgid "Current Status"
msgstr "Statut actuel"

#: app/templates/tasks/edit.html:188
msgid "Current Priority"
msgstr "Priorité actuelle"

#: app/templates/tasks/edit.html:206
msgid "Currently Assigned To"
msgstr "Actuellement affecté à"

#: app/templates/tasks/edit.html:218
msgid "Current Due Date"
msgstr "Date d'échéance actuelle"

#: app/templates/tasks/edit.html:232
msgid "Current Estimate"
msgstr "Estimation actuelle"

#: app/templates/tasks/edit.html:237 app/templates/tasks/edit.html:249
#: app/templates/user/settings.html:222
msgid "hours"
msgstr "heures"

#: app/templates/tasks/edit.html:244 app/templates/weekly_goals/index.html:87
#: app/templates/weekly_goals/view.html:42
msgid "Actual Hours"
msgstr "Heures réelles"

#: app/templates/tasks/edit.html:259
msgid "Started"
msgstr "Commencé"

#: app/templates/tasks/edit.html:293
msgid "Edit Tips"
msgstr "Modifier les conseils"

#: app/templates/tasks/edit.html:302
msgid "Status Changes"
msgstr "Changements de statut"

#: app/templates/tasks/edit.html:303
msgid "Changing status may affect time tracking and progress calculations"
msgstr ""
"Changer de statut peut affecter le suivi du temps et les calculs de "
"progression"

#: app/templates/tasks/edit.html:314
msgid "Due Date Updates"
msgstr "Mises à jour des dates d'échéance"

#: app/templates/tasks/edit.html:315
msgid "Consider team workload when adjusting deadlines"
msgstr ""
"Tenir compte de la charge de travail de l'équipe lors de l'ajustement des "
"délais"

#: app/templates/tasks/edit.html:326
msgid "Assignment Changes"
msgstr "Modifications des affectations"

#: app/templates/tasks/edit.html:327
msgid "Notify team members when reassigning tasks"
msgstr "Avertir les membres de l'équipe lors de la réaffectation des tâches"

#: app/templates/tasks/edit.html:585
msgid "Updating..."
msgstr "Mise à jour..."

#: app/templates/tasks/list.html:32
msgid "Filter Tasks"
msgstr "Filtrer les tâches"

#: app/templates/tasks/list.html:231
msgid "Delete Selected Tasks"
msgstr "Supprimer les tâches sélectionnées"

#: app/templates/tasks/list.html:251
msgid "Change Status for Selected Tasks"
msgstr "Modifier le statut des tâches sélectionnées"

#: app/templates/tasks/list.html:279
msgid "Assign Selected Tasks"
msgstr "Attribuer les tâches sélectionnées"

#: app/templates/tasks/list.html:289
msgid "Assign Tasks"
msgstr "Attribuer des tâches"

#: app/templates/tasks/list.html:299
msgid "Move Selected Tasks to Project"
msgstr "Déplacer les tâches sélectionnées vers le projet"

#: app/templates/tasks/list.html:300 app/templates/tasks/list.html:302
msgid "Select Project"
msgstr "Sélectionnez un projet"

#: app/templates/tasks/list.html:309
msgid "Move Tasks"
msgstr "Déplacer des tâches"

#: app/templates/tasks/list.html:324
msgid "Are you sure you want to delete the task \"{name}\"?"
msgstr "Êtes-vous sûr de vouloir supprimer la tâche « {name} » ?"

#: app/templates/tasks/list.html:325
msgid ""
"Cannot delete task \"{name}\" because it has time entries. Please delete the"
" time entries first."
msgstr ""
"Impossible de supprimer la tâche « {name} », car elle comporte des entrées "
"de temps. Veuillez d'abord supprimer les entrées de temps."

#: app/templates/tasks/list.html:508 app/templates/tasks/view.html:39
msgid "Delete Task"
msgstr "Supprimer la tâche"

#: app/templates/tasks/my_tasks.html:3 app/templates/tasks/my_tasks.html:23
msgid "My Tasks"
msgstr "Mes tâches"

#: app/templates/tasks/my_tasks.html:20
msgid "New Task"
msgstr "Nouvelle tâche"

#: app/templates/tasks/my_tasks.html:23
msgid "Tasks assigned to or created by you"
msgstr "Tâches assignées ou créées par vous"

#: app/templates/tasks/my_tasks.html:23
msgid "total"
msgstr "total"

#: app/templates/tasks/my_tasks.html:105
msgid "Filter My Tasks"
msgstr "Filtrer mes tâches"

#: app/templates/tasks/my_tasks.html:119
msgid "Task name or description"
msgstr "Nom ou description de la tâche"

#: app/templates/tasks/my_tasks.html:136
msgid "All Priorities"
msgstr "Toutes les priorités"

#: app/templates/tasks/my_tasks.html:155
msgid "Task Type"
msgstr "Type de tâche"

#: app/templates/tasks/my_tasks.html:158
msgid "Assigned to Me"
msgstr "M'a été attribué"

#: app/templates/tasks/my_tasks.html:159
msgid "Created by Me"
msgstr "Créé par moi"

#: app/templates/tasks/my_tasks.html:166
msgid "Show overdue only"
msgstr "Afficher uniquement les retards"

#: app/templates/tasks/my_tasks.html:173
msgid "Apply Filters"
msgstr "Appliquer des filtres"

#: app/templates/tasks/my_tasks.html:289
msgid "Created by me"
msgstr "Créé par moi"

#: app/templates/tasks/my_tasks.html:317 app/templates/weekly_goals/index.html:122
msgid "View Details"
msgstr "Afficher les détails"

#: app/templates/tasks/my_tasks.html:340
msgid "My tasks pagination"
msgstr "Pagination de mes tâches"

#: app/templates/tasks/my_tasks.html:363
msgid "..."
msgstr ""

#: app/templates/tasks/my_tasks.html:387
msgid "No tasks found"
msgstr "Aucune tâche trouvée"

#: app/templates/tasks/my_tasks.html:388
msgid "You don't have any tasks assigned to you or created by you yet."
msgstr "Aucune tâche ne vous a été assignée ou créée par vous pour le moment."

#: app/templates/tasks/my_tasks.html:391
msgid "Create Your First Task"
msgstr "Créez votre première tâche"

#: app/templates/tasks/my_tasks.html:394 app/templates/tasks/overdue.html:140
msgid "View All Tasks"
msgstr "Afficher toutes les tâches"

#: app/templates/tasks/overdue.html:3 app/templates/tasks/overdue.html:13
msgid "Overdue Tasks"
msgstr "Tâches en retard"

#: app/templates/tasks/overdue.html:13
msgid "Requires immediate attention"
msgstr "Nécessite une attention immédiate"

#: app/templates/tasks/overdue.html:13
msgid "items"
msgstr "articles"

#: app/templates/tasks/overdue.html:18
msgid "Overdue Tasks Detected"
msgstr "Tâches en retard détectées"

#: app/templates/tasks/overdue.html:21
msgid "There are"
msgstr "Il y a"

#: app/templates/tasks/overdue.html:21
msgid "overdue tasks that require immediate attention."
msgstr "tâches en retard qui nécessitent une attention immédiate."

#: app/templates/tasks/overdue.html:22
msgid "Please review and update these tasks to prevent further delays."
msgstr ""
"Veuillez examiner et mettre à jour ces tâches pour éviter de nouveaux "
"retards."

#: app/templates/tasks/overdue.html:63
msgid "Due:"
msgstr "Exigible:"

#: app/templates/tasks/overdue.html:68
msgid "Est:"
msgstr "HNE:"

#: app/templates/tasks/overdue.html:73
msgid "Actual:"
msgstr "Réel:"

#: app/templates/tasks/overdue.html:137
msgid "No Overdue Tasks!"
msgstr "Aucune tâche en retard !"

#: app/templates/tasks/overdue.html:138
msgid "Great job! All tasks are currently on schedule."
msgstr "Super travail ! Toutes les tâches sont actuellement dans les délais."

#: app/templates/tasks/overdue.html:148
msgid "Enter new due date (YYYY-MM-DD):"
msgstr "Entrez la nouvelle date d'échéance (AAAA-MM-JJ) :"

#: app/templates/tasks/overdue.html:149
msgid "Are you sure you want to extend the due date to"
msgstr "Etes-vous sûr de vouloir prolonger la date d'échéance jusqu'à"

#: app/templates/tasks/overdue.html:150 app/templates/tasks/overdue.html:154
msgid "for all overdue tasks?"
msgstr "pour toutes les tâches en retard ?"

#: app/templates/tasks/overdue.html:151
msgid "Bulk due date update feature coming soon!"
msgstr ""
"La fonctionnalité de mise à jour groupée de la date d'échéance sera bientôt "
"disponible !"

#: app/templates/tasks/overdue.html:152
msgid "Enter new priority (low/medium/high/urgent):"
msgstr "Entrez une nouvelle priorité (faible/moyenne/élevée/urgente) :"

#: app/templates/tasks/overdue.html:153
msgid "Are you sure you want to set priority to"
msgstr "Êtes-vous sûr de vouloir définir la priorité sur"

#: app/templates/tasks/overdue.html:155
msgid "Bulk priority update feature coming soon!"
msgstr "Fonctionnalité de mise à jour prioritaire en masse à venir !"

#: app/templates/tasks/overdue.html:156
msgid "Invalid priority. Please use: low, medium, high, or urgent"
msgstr "Priorité invalide. Veuillez utiliser : faible, moyen, élevé ou urgent"

#: app/templates/tasks/view.html:14
msgid "Start task and mark as In Progress?"
msgstr "Démarrer la tâche et la marquer comme En cours ?"

#: app/templates/tasks/view.html:14 app/templates/tasks/view.html:20
msgid "Change Task Status"
msgstr "Modifier le statut de la tâche"

#: app/templates/tasks/view.html:20
msgid "Mark task as To Do?"
msgstr "Marquer la tâche comme À faire ?"

#: app/templates/tasks/view.html:23
msgid "Pause"
msgstr "Pause"

#: app/templates/tasks/view.html:25
msgid "Mark task as Done?"
msgstr "Marquer la tâche comme terminée ?"

#: app/templates/tasks/view.html:25
msgid "Complete Task"
msgstr "Terminer la tâche"

#: app/templates/tasks/view.html:25 app/templates/tasks/view.html:28
msgid "Complete"
msgstr "Complet"

#: app/templates/tasks/view.html:31
msgid "Reopen task to Review?"
msgstr "Rouvrir la tâche pour réviser ?"

#: app/templates/tasks/view.html:31
msgid "Reopen Task"
msgstr "Rouvrir la tâche"

#: app/templates/tasks/view.html:31 app/templates/tasks/view.html:34
msgid "Reopen"
msgstr "Rouvrir"

#: app/templates/time_entry_templates/create.html:13
msgid "Create Time Entry Template"
msgstr "Créer un modèle de saisie du temps"

#: app/templates/time_entry_templates/create.html:33
#: app/templates/time_entry_templates/edit.html:33
msgid "e.g., Daily Standup, Client Meeting"
msgstr "par exemple, stand-up quotidien, réunion client"

#: app/templates/time_entry_templates/create.html:82
#: app/templates/time_entry_templates/edit.html:86
msgid "e.g., 1.0, 0.5"
msgstr "par exemple, 1,0, 0,5"

#: app/templates/time_entry_templates/create.html:97
#: app/templates/time_entry_templates/edit.html:101
msgid "Pre-fill notes for this type of time entry"
msgstr "Pré-remplir des notes pour ce type de saisie de temps"

#: app/templates/time_entry_templates/create.html:110
#: app/templates/time_entry_templates/edit.html:114
msgid "e.g., meeting, development, admin"
msgstr "par exemple, réunion, développement, administration"

#: app/templates/time_entry_templates/edit.html:13
msgid "Edit Template"
msgstr "Modifier le modèle"

#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
msgid "Are you sure you want to delete this template?"
msgstr "Êtes-vous sûr de vouloir supprimer ce modèle ?"

#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
msgid "Delete Template"
msgstr "Supprimer le modèle"

#: app/templates/time_entry_templates/view.html:96
msgid "Usage Statistics"
msgstr "Statistiques d'utilisation"

#: app/templates/timer/manual_entry.html:7
msgid "Duplicate Entry"
msgstr "Entrée en double"

#: app/templates/timer/manual_entry.html:12
msgid "Duplicate Time Entry"
msgstr "Saisie de temps en double"

#: app/templates/timer/manual_entry.html:12
msgid "Log Time Manually"
msgstr "Enregistrer l'heure manuellement"

#: app/templates/timer/manual_entry.html:13
msgid "Create a copy of a previous entry with new times"
msgstr "Créer une copie d'une entrée précédente avec de nouvelles heures"

#: app/templates/timer/manual_entry.html:13
msgid "Create a new time entry"
msgstr "Créer une nouvelle entrée de temps"

#: app/templates/timer/manual_entry.html:24
msgid "Duplicating entry:"
msgstr "Entrée en double :"

#: app/templates/timer/manual_entry.html:27
msgid "Original:"
msgstr "Original:"

#: app/templates/timer/manual_entry.html:27
msgid "to"
msgstr "à"

#: app/templates/timer/manual_entry.html:51
#: app/templates/timer/manual_entry.html:122
#: app/templates/timer/timer_page.html:127
msgid "No task"
msgstr "Aucune tâche"

#: app/templates/timer/manual_entry.html:53
msgid "Tasks load after selecting a project"
msgstr "Les tâches se chargent après la sélection d'un projet"

#: app/templates/timer/manual_entry.html:82
msgid "What did you work on?"
msgstr "Sur quoi as-tu travaillé ?"

#: app/templates/timer/manual_entry.html:87
msgid "tag1, tag2"
msgstr "étiquette1, étiquette2"

#: app/templates/timer/manual_entry.html:123
msgid "Failed to load tasks"
msgstr "Échec du chargement des tâches"

#: app/templates/timer/timer_page.html:12
msgid "Track your time with a visual timer"
msgstr "Suivez votre temps avec une minuterie visuelle"

#: app/templates/timer/timer_page.html:75
msgid "Estimated Completion"
msgstr "Achèvement estimé"

#: app/templates/timer/timer_page.html:77
msgid "Calculating..."
msgstr "Calculateur..."

#: app/templates/timer/timer_page.html:80
msgid "Based on average session duration"
msgstr "Basé sur la durée moyenne des sessions"

#: app/templates/timer/timer_page.html:97
msgid "No active timer. Start one below!"
msgstr "Aucune minuterie active. Commencez-en un ci-dessous !"

#: app/templates/timer/timer_page.html:105
msgid "Start New Timer"
msgstr "Démarrer une nouvelle minuterie"

#: app/templates/timer/timer_page.html:115
msgid "Select a project..."
msgstr "Sélectionnez un projet..."

#: app/templates/timer/timer_page.html:135
msgid "Add notes about what you're working on..."
msgstr "Ajoutez des notes sur ce sur quoi vous travaillez..."

#: app/templates/timer/timer_page.html:184
msgid "Recent Projects"
msgstr "Projets récents"

#: app/templates/timer/timer_page.html:202
msgid "Today's Stats"
msgstr "Les statistiques du jour"

#: app/templates/user/profile.html:31 app/templates/user/settings.html:2
#: app/templates/user/settings.html:7
msgid "Settings"
msgstr "Paramètres"

#: app/templates/user/profile.html:60 app/templates/user/profile.html:98
msgid "No project"
msgstr "Aucun projet"

#: app/templates/user/profile.html:106
msgid "In progress"
msgstr "En cours"

#: app/templates/user/profile.html:120
msgid "View all time entries"
msgstr "Afficher toutes les entrées de temps"

#: app/templates/user/profile.html:124
msgid "No recent time entries"
msgstr "Aucune entrée de temps récente"

#: app/templates/user/settings.html:8
msgid "Manage your account settings and preferences"
msgstr "Gérer les paramètres et préférences de votre compte"

#: app/templates/user/settings.html:17
msgid "Profile Information"
msgstr "Informations sur le profil"

#: app/templates/user/settings.html:27
msgid "Username cannot be changed"
msgstr "Le nom d'utilisateur ne peut pas être modifié"

#: app/templates/user/settings.html:40
msgid "Email Address"
msgstr "Adresse email"

#: app/templates/user/settings.html:45
msgid "Required for email notifications"
msgstr "Obligatoire pour les notifications par e-mail"

#: app/templates/user/settings.html:53
msgid "Notification Preferences"
msgstr "Préférences de notifications"

#: app/templates/user/settings.html:62
msgid "Enable Email Notifications"
msgstr "Activer les notifications par e-mail"

#: app/templates/user/settings.html:63
msgid "Master switch for all email notifications"
msgstr "Interrupteur principal pour toutes les notifications par e-mail"

#: app/templates/user/settings.html:73
msgid "Overdue Invoice Notifications"
msgstr "Notifications de factures en retard"

#: app/templates/user/settings.html:82
msgid "Task Assignment Notifications"
msgstr "Notifications d'affectation de tâches"

#: app/templates/user/settings.html:91
msgid "Comment & Mention Notifications"
msgstr "Notifications de commentaires et de mentions"

#: app/templates/user/settings.html:100
msgid "Weekly Time Summary Email"
msgstr "E-mail de résumé du temps hebdomadaire"

#: app/templates/user/settings.html:110
msgid "Display Preferences"
msgstr "Préférences d'affichage"

#: app/templates/user/settings.html:120 app/templates/user/settings.html:132
#: app/templates/user/settings.html:253
msgid "System Default"
msgstr "Système par défaut"

#: app/templates/user/settings.html:121
msgid "Light"
msgstr "Lumière"

#: app/templates/user/settings.html:144
msgid "Time Rounding Preferences"
msgstr "Préférences d'arrondi du temps"

#: app/templates/user/settings.html:147
msgid ""
"Configure how your time entries are rounded. This affects how durations are "
"calculated when you stop timers."
msgstr ""
"Configurez la façon dont vos entrées de temps sont arrondies. Cela affecte "
"la façon dont les durées sont calculées lorsque vous arrêtez les "
"chronomètres."

#: app/templates/user/settings.html:157
msgid "Enable Time Rounding"
msgstr "Activer l'arrondi des temps"

#: app/templates/user/settings.html:158
msgid "Round time entries to configured intervals"
msgstr "Arrondir les entrées de temps aux intervalles configurés"

#: app/templates/user/settings.html:165
msgid "Rounding Interval"
msgstr "Intervalle d'arrondi"

#: app/templates/user/settings.html:173
msgid "Time entries will be rounded to this interval"
msgstr "Les entrées de temps seront arrondies à cet intervalle"

#: app/templates/user/settings.html:178
msgid "Rounding Method"
msgstr "Méthode d'arrondi"

#: app/templates/user/settings.html:206
msgid "Overtime Settings"
msgstr "Paramètres des heures supplémentaires"

#: app/templates/user/settings.html:209
msgid ""
"Set your standard working hours per day. Any time worked beyond this will be"
" counted as overtime."
msgstr ""
"Définissez vos heures de travail standard par jour. Tout temps travaillé au-"
"delà de ce délai sera compté comme heures supplémentaires."

#: app/templates/user/settings.html:215
msgid "Standard Hours Per Day"
msgstr "Heures standard par jour"

#: app/templates/user/settings.html:224
msgid "Typically 8 hours for a full-time job"
msgstr "Généralement 8 heures pour un travail à temps plein"

#: app/templates/user/settings.html:230
msgid "How it works"
msgstr "Comment ça marche"

#: app/templates/user/settings.html:233
msgid ""
"If you work more than your standard hours in a day, the extra time will be "
"tracked as overtime in reports and analytics."
msgstr ""
"Si vous travaillez plus que vos heures normales dans une journée, le temps "
"supplémentaire sera enregistré comme heures supplémentaires dans les "
"rapports et analyses."

#: app/templates/user/settings.html:243
msgid "Regional Settings"
msgstr "Paramètres régionaux"

#: app/templates/user/settings.html:249
msgid "Timezone"
msgstr "Fuseau horaire"

#: app/templates/user/settings.html:262
msgid "Date Format"
msgstr "Format des dates"

#: app/templates/user/settings.html:275
msgid "Time Format"
msgstr "Format de l'heure"

#: app/templates/user/settings.html:286
msgid "Week Starts On"
msgstr "La semaine commence le"

#: app/templates/user/settings.html:290
msgid "Sunday"
msgstr "Dimanche"

#: app/templates/user/settings.html:291
msgid "Monday"
msgstr "Lundi"

#: app/templates/user/settings.html:292
msgid "Saturday"
msgstr "Samedi"

#: app/templates/user/settings.html:370
msgid "Time rounding is disabled. All times will be recorded exactly as tracked."
msgstr ""
"L'arrondi temporel est désactivé. Tous les temps seront enregistrés "
"exactement comme suivis."

#: app/templates/user/settings.html:375
msgid "No rounding - times will be recorded exactly as tracked."
msgstr ""
"Pas d'arrondi - les temps seront enregistrés exactement tels qu'ils sont "
"suivis."

#: app/templates/user/settings.html:401
msgid "Actual time:"
msgstr "Heure réelle :"

#: app/templates/user/settings.html:401
msgid "Rounded:"
msgstr "Arrondi :"

#: app/templates/user/settings.html:402
msgid "With "
msgstr "Avec"

#: app/templates/user/settings.html:402
msgid " minute intervals"
msgstr "intervalles de minutes"

#: app/templates/weekly_goals/create.html:3
msgid "Create Weekly Goal"
msgstr "Créer un objectif hebdomadaire"

#: app/templates/weekly_goals/create.html:11
msgid "Create Weekly Time Goal"
msgstr "Créer un objectif de temps hebdomadaire"

#: app/templates/weekly_goals/create.html:14
msgid "Set a target for hours to work this week"
msgstr "Fixez-vous un objectif d’heures de travail cette semaine"

#: app/templates/weekly_goals/create.html:26
#: app/templates/weekly_goals/edit.html:42
#: app/templates/weekly_goals/index.html:83
#: app/templates/weekly_goals/view.html:34
msgid "Target Hours"
msgstr "Heures cibles"

#: app/templates/weekly_goals/create.html:41
msgid "How many hours do you want to work this week?"
msgstr "Combien d'heures souhaitez-vous travailler cette semaine ?"

#: app/templates/weekly_goals/create.html:48
msgid "Week Start Date"
msgstr "Date de début de la semaine"

#: app/templates/weekly_goals/create.html:55
msgid "Leave blank to use current week (starting Monday)"
msgstr "Laisser vide pour utiliser la semaine en cours (à partir de lundi)"

#: app/templates/weekly_goals/create.html:67
#: app/templates/weekly_goals/edit.html:81
msgid "Optional notes about your goal..."
msgstr "Notes facultatives sur votre objectif..."

#: app/templates/weekly_goals/create.html:74
msgid "Quick Presets"
msgstr "Préréglages rapides"

#: app/templates/weekly_goals/create.html:122
msgid "Tips for Setting Goals"
msgstr "Conseils pour fixer des objectifs"

#: app/templates/weekly_goals/create.html:126
msgid "Be realistic: Consider holidays, meetings, and other commitments"
msgstr "Soyez réaliste : envisagez les vacances, les réunions et autres engagements"

#: app/templates/weekly_goals/create.html:127
msgid "Start conservative: You can always adjust your goal later"
msgstr "Commencez prudemment : vous pourrez toujours ajuster votre objectif plus tard"

#: app/templates/weekly_goals/create.html:128
msgid "Track progress: Check your dashboard regularly to stay on track"
msgstr ""
"Suivez les progrès : consultez régulièrement votre tableau de bord pour "
"rester sur la bonne voie"

#: app/templates/weekly_goals/create.html:129
msgid "Typical full-time: 40 hours per week (8 hours/day, 5 days)"
msgstr "Temps plein typique : 40 heures par semaine (8 heures/jour, 5 jours)"

#: app/templates/weekly_goals/edit.html:3
msgid "Edit Weekly Goal"
msgstr "Modifier l'objectif hebdomadaire"

#: app/templates/weekly_goals/edit.html:11
msgid "Edit Weekly Time Goal"
msgstr "Modifier l'objectif de temps hebdomadaire"

#: app/templates/weekly_goals/edit.html:27
msgid "Week Period"
msgstr "Période de la semaine"

#: app/templates/weekly_goals/edit.html:31
msgid "Current Progress"
msgstr "Progrès actuels"

#: app/templates/weekly_goals/edit.html:93
msgid "Are you sure you want to delete this goal?"
msgstr "Êtes-vous sûr de vouloir supprimer cet objectif ?"

#: app/templates/weekly_goals/edit.html:93
msgid "Delete Goal"
msgstr "Supprimer l'objectif"

#: app/templates/weekly_goals/index.html:4
#: app/templates/weekly_goals/index.html:13
msgid "Weekly Time Goals"
msgstr "Objectifs de temps hebdomadaires"

#: app/templates/weekly_goals/index.html:14
msgid "Set and track your weekly hour targets"
msgstr "Définissez et suivez vos objectifs d'heures hebdomadaires"

#: app/templates/weekly_goals/index.html:16
msgid "New Goal"
msgstr "Nouvel objectif"

#: app/templates/weekly_goals/index.html:27
msgid "Total Goals"
msgstr "Objectifs totaux"

#: app/templates/weekly_goals/index.html:63
msgid "Success Rate"
msgstr "Taux de réussite"

#: app/templates/weekly_goals/index.html:75
msgid "Current Week Goal"
msgstr "Objectif de la semaine en cours"

#: app/templates/weekly_goals/index.html:106
#: app/templates/weekly_goals/view.html:101
msgid "Remaining Hours"
msgstr "Heures restantes"

#: app/templates/weekly_goals/index.html:110
#: app/templates/weekly_goals/view.html:105
msgid "Days Remaining"
msgstr "Jours restants"

#: app/templates/weekly_goals/index.html:114
#: app/templates/weekly_goals/view.html:109
msgid "Avg Hours/Day Needed"
msgstr "Heures moyennes/jour nécessaires"

#: app/templates/weekly_goals/index.html:126
msgid "Edit Goal"
msgstr "Modifier l'objectif"

#: app/templates/weekly_goals/index.html:139
msgid "No goal set for this week"
msgstr "Aucun objectif fixé pour cette semaine"

#: app/templates/weekly_goals/index.html:142
msgid "Create a weekly time goal to start tracking your progress"
msgstr "Créez un objectif de temps hebdomadaire pour commencer à suivre vos progrès"

#: app/templates/weekly_goals/index.html:158
msgid "Goal History"
msgstr "Historique des buts"

#: app/templates/weekly_goals/index.html:185
msgid "Target"
msgstr "Cible"

#: app/templates/weekly_goals/view.html:3 app/templates/weekly_goals/view.html:12
msgid "Weekly Goal Details"
msgstr "Détails de l'objectif hebdomadaire"

#: app/templates/weekly_goals/view.html:119
msgid "Daily Breakdown"
msgstr "Répartition quotidienne"

#: app/templates/weekly_goals/view.html:162
msgid "Time Entries This Week"
msgstr "Entrées de temps cette semaine"

#: app/templates/weekly_goals/view.html:171
msgid "No Project"
msgstr "Aucun projet"

#: app/templates/weekly_goals/view.html:206
msgid "No time entries recorded for this week yet"
msgstr "Aucune entrée de temps enregistrée pour cette semaine pour le moment"

#: app/utils/i18n_helpers.py:108 app/utils/i18n_helpers.py:119
msgid "Overpaid"
msgstr "Surpayé"

#: app/utils/i18n_helpers.py:127 app/utils/i18n_helpers.py:143
msgid "Cash"
msgstr "Espèces"

#: app/utils/i18n_helpers.py:128 app/utils/i18n_helpers.py:144
msgid "Check"
msgstr "Vérifier"

#: app/utils/i18n_helpers.py:129 app/utils/i18n_helpers.py:145
msgid "Bank Transfer"
msgstr "Virement bancaire"

#: app/utils/i18n_helpers.py:130 app/utils/i18n_helpers.py:146
msgid "Credit Card"
msgstr "Carte de crédit"

#: app/utils/i18n_helpers.py:131 app/utils/i18n_helpers.py:147
msgid "Debit Card"
msgstr "Carte de débit"

#: app/utils/i18n_helpers.py:132 app/utils/i18n_helpers.py:148
msgid "PayPal"
msgstr "Paypal"

#: app/utils/i18n_helpers.py:133 app/utils/i18n_helpers.py:149
msgid "Stripe"
msgstr "Bande"

#: app/utils/i18n_helpers.py:134 app/utils/i18n_helpers.py:150
msgid "Company Card"
msgstr "Carte d'entreprise"

#: app/utils/i18n_helpers.py:160 app/utils/i18n_helpers.py:171
msgid "Approved"
msgstr "Approuvé"

#: app/utils/i18n_helpers.py:162 app/utils/i18n_helpers.py:173
msgid "Reimbursed"
msgstr "Remboursé"

#: app/utils/i18n_helpers.py:238 app/utils/i18n_helpers.py:250
msgid "Processing"
msgstr "Traitement"

#: app/utils/i18n_helpers.py:241 app/utils/i18n_helpers.py:253
msgid "Partial"
msgstr "Partiel"

#: app/utils/i18n_helpers.py:283
msgid "80% Budget Warning"
msgstr "Avertissement budgétaire à 80 %"

#: app/utils/i18n_helpers.py:284
msgid "Budget Limit Reached"
msgstr "Limite budgétaire atteinte"

#: app/utils/i18n_helpers.py:293 app/utils/i18n_helpers.py:303
msgid "Info"
msgstr "Informations"

#: app/utils/pdf_generator_fallback.py:163
#, python-format
msgid "Invoice #: %(num)s"
msgstr "Facture n° : %(num)s"

#: app/utils/pdf_generator_fallback.py:166 app/utils/pdf_generator_fallback.py:169
#, python-format
msgid "Issue Date: %(date)s"
msgstr "Date d'émission : %(date)s"

#: app/utils/pdf_generator_fallback.py:167 app/utils/pdf_generator_fallback.py:170
#, python-format
msgid "Due Date: %(date)s"
msgstr "Date d'échéance : %(date)s"

#: app/utils/pdf_generator_fallback.py:457
msgid "Quote For:"
msgstr "Devis pour :"

#: app/utils/pdf_generator_fallback.py:467
msgid "Quote Details:"
msgstr "Détails du devis :"

#: app/utils/pdf_generator_fallback.py:479
msgid "Items:"
msgstr "Articles:"

#: app/utils/pdf_generator_fallback.py:523
msgid "Total:"
msgstr "Total:"

#: app/utils/permissions.py:29 app/utils/permissions.py:61
msgid "Please log in to access this page"
msgstr "Veuillez vous connecter pour accéder à cette page"

# Navigation and Common
#~ msgid "Time Tracker"
#~ msgstr "Suivi du temps"

#~ msgid "Dashboard"
#~ msgstr "Tableau de bord"

#~ msgid "Projects"
#~ msgstr "Projets"

#~ msgid "Clients"
#~ msgstr "Clients"

#~ msgid "Tasks"
#~ msgstr "Tâches"

#~ msgid "Log Time"
#~ msgstr "Enregistrer le temps"

#~ msgid "Bulk Time Entry"
#~ msgstr "Saisie en masse"

#~ msgid "Calendar"
#~ msgstr "Calendrier"

#~ msgid "Reports"
#~ msgstr "Rapports"

#~ msgid "Invoices"
#~ msgstr "Factures"

#~ msgid "Analytics"
#~ msgstr "Analytique"

#~ msgid "Admin"
#~ msgstr "Admin"

#~ msgid "Profile"
#~ msgstr "Profil"

#~ msgid "Logout"
#~ msgstr "Déconnexion"

#~ msgid "Language"
#~ msgstr "Langue"

#~ msgid "Home"
#~ msgstr "Accueil"

#~ msgid "Log"
#~ msgstr "Journal"

#~ msgid "About"
#~ msgstr "À propos"

#~ msgid "Help"
#~ msgstr "Aide"

#~ msgid "Buy me a coffee"
#~ msgstr "Offrez-moi un café"

#~ msgid "All rights reserved."
#~ msgstr "Tous droits réservés."

#~ msgid "Skip to content"
#~ msgstr "Passer au contenu"

#~ msgid "Work"
#~ msgstr "Travail"

#~ msgid "Insights"
#~ msgstr "Aperçus"

#~ msgid "Search"
#~ msgstr "Rechercher"

#~ msgid "Open Command Palette"
#~ msgstr "Ouvrir la palette de commandes"

#~ msgid "Ctrl"
#~ msgstr "Ctrl"

#~ msgid "Keyboard Shortcuts"
#~ msgstr "Raccourcis clavier"

#~ msgid "Install App"
#~ msgstr "Installer l'application"

#~ msgid "App installed"
#~ msgstr "Application installée"

#~ msgid "Close"
#~ msgstr "Fermer"

#~ msgid "Cancel"
#~ msgstr "Annuler"

#~ msgid "Confirm"
#~ msgstr "Confirmer"

#~ msgid "Please confirm"
#~ msgstr "Veuillez confirmer"

# Dashboard
#~ msgid "Welcome back,"
#~ msgstr "Bon retour,"

#~ msgid "h today"
#~ msgstr "h aujourd'hui"

#~ msgid "Timer Status"
#~ msgstr "État du chronomètre"

#~ msgid "Timer Running"
#~ msgstr "Chronomètre en cours"

#~ msgid "No Active Timer"
#~ msgstr "Aucun chronomètre actif"

#~ msgid "Choose a project or one of its tasks to start tracking."
#~ msgstr "Choisissez un projet ou une de ses tâches pour commencer le suivi."

#~ msgid "Idle"
#~ msgstr "Inactif"

#~ msgid "Started at"
#~ msgstr "Démarré à"

#~ msgid "Stop Timer"
#~ msgstr "Arrêter le chronomètre"

#~ msgid "Start Timer"
#~ msgstr "Démarrer le chronomètre"

#~ msgid "Hours Today"
#~ msgstr "Heures aujourd'hui"

#~ msgid "Hours This Week"
#~ msgstr "Heures cette semaine"

#~ msgid "Hours This Month"
#~ msgstr "Heures ce mois"

#~ msgid "Quick Actions"
#~ msgstr "Actions rapides"

#~ msgid "Manual entry"
#~ msgstr "Saisie manuelle"

#~ msgid "Bulk Entry"
#~ msgstr "Saisie en masse"

#~ msgid "Multi-day time entry"
#~ msgstr "Saisie de temps multi-jours"

#~ msgid "Manage projects"
#~ msgstr "Gérer les projets"

#~ msgid "View analytics"
#~ msgstr "Voir les analyses"

#~ msgid "Find entries"
#~ msgstr "Trouver des entrées"

#~ msgid "Today by Task"
#~ msgstr "Aujourd'hui par tâche"

#~ msgid "Loading..."
#~ msgstr "Chargement..."

#~ msgid "Recent Entries"
#~ msgstr "Entrées récentes"

#~ msgid "View All"
#~ msgstr "Voir tout"

#~ msgid "Select all"
#~ msgstr "Tout sélectionner"

#~ msgid "Delete"
#~ msgstr "Supprimer"

#~ msgid "Set Billable"
#~ msgstr "Marquer comme facturable"

#~ msgid "Set Non-billable"
#~ msgstr "Marquer comme non facturable"

#~ msgid "Project"
#~ msgstr "Projet"

#~ msgid "Duration"
#~ msgstr "Durée"

#~ msgid "Date"
#~ msgstr "Date"

#~ msgid "Notes"
#~ msgstr "Notes"

#~ msgid "Actions"
#~ msgstr "Actions"

#~ msgid "No notes"
#~ msgstr "Aucune note"

#~ msgid "Edit entry"
#~ msgstr "Modifier l'entrée"

#~ msgid "Delete entry"
#~ msgstr "Supprimer l'entrée"

#~ msgid "No recent entries"
#~ msgstr "Aucune entrée récente"

#~ msgid "Start tracking your time to see entries here"
#~ msgstr "Commencez à suivre votre temps pour voir les entrées ici"

#~ msgid "Log Your First Entry"
#~ msgstr "Enregistrer votre première entrée"

#~ msgid "Select Project"
#~ msgstr "Sélectionner un projet"

#~ msgid "Choose a project..."
#~ msgstr "Choisissez un projet..."

#~ msgid "Select Task (Optional)"
#~ msgstr "Sélectionner une tâche (Optionnel)"

#~ msgid "Choose a task..."
#~ msgstr "Choisissez une tâche..."

#~ msgid ""
#~ "Tasks list updates after choosing a "
#~ "project. Leave empty to log at "
#~ "project level."
#~ msgstr ""
#~ "La liste des tâches se met à "
#~ "jour après avoir choisi un projet. "
#~ "Laissez vide pour enregistrer au niveau "
#~ "du projet."

#~ msgid "Notes (Optional)"
#~ msgstr "Notes (Optionnel)"

#~ msgid "What are you working on?"
#~ msgstr "Sur quoi travaillez-vous ?"

#~ msgid "Delete Time Entry"
#~ msgstr "Supprimer l'entrée de temps"

#~ msgid "Warning:"
#~ msgstr "Avertissement :"

#~ msgid "This action cannot be undone."
#~ msgstr "Cette action ne peut pas être annulée."

#~ msgid "Are you sure you want to delete the time entry for"
#~ msgstr "Êtes-vous sûr de vouloir supprimer l'entrée de temps pour"

#~ msgid "Duration:"
#~ msgstr "Durée :"

#~ msgid "Delete Entry"
#~ msgstr "Supprimer l'entrée"

#~ msgid "Please select a project"
#~ msgstr "Veuillez sélectionner un projet"

#~ msgid "Starting..."
#~ msgstr "Démarrage..."

#~ msgid "Deleting..."
#~ msgstr "Suppression..."

#~ msgid "No time tracked yet today"
#~ msgstr "Aucun temps enregistré aujourd'hui"

#~ msgid "h"
#~ msgstr "h"

#~ msgid "Bulk action completed"
#~ msgstr "Action en masse terminée"

#~ msgid "Bulk action failed"
#~ msgstr "Action en masse échouée"

# Login
#~ msgid "Login"
#~ msgstr "Connexion"

#~ msgid "Company Logo"
#~ msgstr "Logo de l'entreprise"

#~ msgid "DryTrix Logo"
#~ msgstr "Logo DryTrix"

#~ msgid "TimeTracker"
#~ msgstr "TimeTracker"

#~ msgid "Professional Time Management"
#~ msgstr "Gestion professionnelle du temps"

#~ msgid "Sign in to your account to start tracking your time"
#~ msgstr "Connectez-vous à votre compte pour commencer à suivre votre temps"

#~ msgid "Welcome to TimeTracker"
#~ msgstr "Bienvenue sur TimeTracker"

#~ msgid "Powered by"
#~ msgstr "Propulsé par"

#~ msgid "Enter your username to start tracking time"
#~ msgstr "Entrez votre nom d'utilisateur pour commencer le suivi du temps"

#~ msgid "Username"
#~ msgstr "Nom d'utilisateur"

#~ msgid "Enter your username"
#~ msgstr "Entrez votre nom d'utilisateur"

#~ msgid "Sign In"
#~ msgstr "Se connecter"

#~ msgid "Signing in..."
#~ msgstr "Connexion en cours..."

#~ msgid "Continue"
#~ msgstr "Continuer"

#~ msgid "or"
#~ msgstr "ou"

#~ msgid "Sign in with SSO"
#~ msgstr "Se connecter avec SSO"

#~ msgid "Internal Tool"
#~ msgstr "Outil interne"

#~ msgid "Internal Tool:"
#~ msgstr "Outil interne :"

#~ msgid "This is a private time tracking application for internal use only."
#~ msgstr ""
#~ "Ceci est une application privée de "
#~ "suivi du temps pour un usage interne"
#~ " uniquement."

#~ msgid "New users will be created automatically"
#~ msgstr "Les nouveaux utilisateurs seront créés automatiquement"

#~ msgid "Version"
#~ msgstr "Version"

#~ msgid "Please enter a username"
#~ msgstr "Veuillez entrer un nom d'utilisateur"

# Tasks
#~ msgid "Board"
#~ msgstr "Tableau"

#~ msgid "Table"
#~ msgstr "Table"

#~ msgid "New Task"
#~ msgstr "Nouvelle tâche"

#~ msgid "Plan and track work"
#~ msgstr "Planifier et suivre le travail"

#~ msgid "total"
#~ msgstr "total"

#~ msgid "To Do"
#~ msgstr "À faire"

#~ msgid "In Progress"
#~ msgstr "En cours"

#~ msgid "Review"
#~ msgstr "Révision"

#~ msgid "Completed"
#~ msgstr "Terminé"

#~ msgid "Filter Tasks"
#~ msgstr "Filtrer les tâches"

#~ msgid "Toggle Filters"
#~ msgstr "Basculer les filtres"

#~ msgid "Task name or description"
#~ msgstr "Nom de la tâche ou description"

#~ msgid "Status"
#~ msgstr "Statut"

#~ msgid "All Statuses"
#~ msgstr "Tous les statuts"

#~ msgid "Done"
#~ msgstr "Fait"

#~ msgid "Cancelled"
#~ msgstr "Annulé"

#~ msgid "Priority"
#~ msgstr "Priorité"

#~ msgid "All Priorities"
#~ msgstr "Toutes les priorités"

#~ msgid "Low"
#~ msgstr "Basse"

#~ msgid "Medium"
#~ msgstr "Moyenne"

#~ msgid "High"
#~ msgstr "Haute"

#~ msgid "Urgent"
#~ msgstr "Urgent"

#~ msgid "All Projects"
#~ msgstr "Tous les projets"

# Command Palette
#~ msgid "Command Palette"
#~ msgstr "Palette de commandes"

#~ msgid "Type a command or search..."
#~ msgstr "Tapez une commande ou recherchez..."

# Socket.IO messages
#~ msgid "Timer started for"
#~ msgstr "Chronomètre démarré pour"

#~ msgid "Timer stopped. Duration:"
#~ msgstr "Chronomètre arrêté. Durée :"

# Theme toggle
#~ msgid "Switch to light mode"
#~ msgstr "Passer en mode clair"

#~ msgid "Switch to dark mode"
#~ msgstr "Passer en mode sombre"

#~ msgid "Light mode"
#~ msgstr "Mode clair"

#~ msgid "Dark mode"
#~ msgstr "Mode sombre"

# Mobile
#~ msgid "Log time"
#~ msgstr "Enregistrer le temps"

# About page
#~ msgid "About TimeTracker"
#~ msgstr "À propos de TimeTracker"

#~ msgid "Developed by DryTrix"
#~ msgstr "Développé par DryTrix"

#~ msgid "What is"
#~ msgstr "Qu'est-ce que"

#~ msgid "A simple, efficient time tracking solution for teams and individuals."
#~ msgstr ""
#~ "Une solution simple et efficace de "
#~ "suivi du temps pour les équipes et"
#~ " les particuliers."

#~ msgid ""
#~ "It provides a simple and intuitive "
#~ "interface for tracking time spent on "
#~ "various projects and tasks."
#~ msgstr ""
#~ "Il fournit une interface simple et "
#~ "intuitive pour suivre le temps passé "
#~ "sur divers projets et tâches."

#~ msgid ""
#~ "%(app)s is a web-based time tracking"
#~ " application designed for internal use "
#~ "within organizations."
#~ msgstr ""
#~ "%(app)s est une application web de "
#~ "suivi du temps conçue pour un usage"
#~ " interne au sein des organisations."

#~ msgid "Learn more about "
#~ msgstr "En savoir plus sur "

#~ msgid "Privacy First"
#~ msgstr "Confidentialité d'abord"

#~ msgid "Self-hosted on your server"
#~ msgstr "Auto-hébergé sur votre serveur"

#~ msgid "Anonymous telemetry (opt-in)"
#~ msgstr "Télémétrie anonyme (opt-in)"

#~ msgid "No PII collected ever"
#~ msgstr "Aucune donnée personnelle collectée"

#~ msgid "Open source & transparent"
#~ msgstr "Open source et transparent"

#~ msgid "Let's get you set up in just a moment"
#~ msgstr "Configurons-vous en un instant"

#~ msgid "Thank you for choosing TimeTracker!"
#~ msgstr "Merci d'avoir choisi TimeTracker !"

#~ msgid "Your data stays on your server, and you have complete control."
#~ msgstr "Vos données restent sur votre serveur et vous avez un contrôle total."

#~ msgid "Help Us Improve (Optional)"
#~ msgstr "Aidez-nous à nous améliorer (Optionnel)"

#~ msgid "Enable anonymous telemetry"
#~ msgstr "Activer la télémétrie anonyme"

#~ msgid "Help us understand usage patterns to improve TimeTracker"
#~ msgstr ""
#~ "Aidez-nous à comprendre les modèles "
#~ "d'utilisation pour améliorer TimeTracker"

#~ msgid "What data is collected?"
#~ msgstr "Quelles données sont collectées ?"

#~ msgid "What we collect:"
#~ msgstr "Ce que nous collectons :"

#~ msgid "Anonymous installation fingerprint (hashed)"
#~ msgstr "Empreinte d'installation anonyme (hachée)"

#~ msgid "Application version & platform info"
#~ msgstr "Version de l'application et informations sur la plateforme"

#~ msgid "Feature usage statistics"
#~ msgstr "Statistiques d'utilisation des fonctionnalités"

#~ msgid "Internal numeric IDs only"
#~ msgstr "ID numériques internes uniquement"

#~ msgid "What we DON'T collect:"
#~ msgstr "Ce que nous ne collectons PAS :"

#~ msgid "No usernames or emails"
#~ msgstr "Aucun nom d'utilisateur ou e-mail"

#~ msgid "No project names or descriptions"
#~ msgstr "Aucun nom ou description de projet"

#~ msgid "No time entry data or notes"
#~ msgstr "Aucune donnée d'entrée de temps ou note"

#~ msgid "No client or business data"
#~ msgstr "Aucune donnée client ou commerciale"

#~ msgid "No IP addresses or PII"
#~ msgstr "Aucune adresse IP ou donnée personnelle"

#~ msgid "Why?"
#~ msgstr "Pourquoi ?"

#~ msgid "Anonymous usage data helps us prioritize features and fix issues."
#~ msgstr ""
#~ "Les données d'utilisation anonymes nous "
#~ "aident à prioriser les fonctionnalités et"
#~ " à corriger les problèmes."

#~ msgid "You can change this anytime in"
#~ msgstr "Vous pouvez modifier cela à tout moment dans"

#~ msgid "Admin → Settings"
#~ msgstr "Admin → Paramètres"

#~ msgid "Privacy & Analytics section"
#~ msgstr "Section Confidentialité et Analyses"

#~ msgid "Complete Setup & Continue"
#~ msgstr "Terminer la configuration et continuer"

#~ msgid "By continuing, you agree to use TimeTracker under the"
#~ msgstr "En continuant, vous acceptez d'utiliser TimeTracker sous la"

#~ msgid "GPL-3.0 License"
#~ msgstr "Licence GPL-3.0"

#~ msgid "Duplicate Time Entry"
#~ msgstr "Dupliquer l'entrée de temps"

#~ msgid "Log Time Manually"
#~ msgstr "Enregistrer le temps manuellement"

#~ msgid "Create a copy of a previous entry with new times"
#~ msgstr "Créer une copie d'une entrée précédente avec de nouveaux horaires"

#~ msgid "Create a new time entry"
#~ msgstr "Créer une nouvelle entrée de temps"

#~ msgid "Duplicating entry:"
#~ msgstr "Duplication de l'entrée :"

#~ msgid "Original:"
#~ msgstr "Original :"

#~ msgid "to"
#~ msgstr "à"

#~ msgid "N/A"
#~ msgstr "N/D"

#~ msgid "What did you work on?"
#~ msgstr "Sur quoi avez-vous travaillé ?"

#~ msgid "tag1, tag2"
#~ msgstr "tag1, tag2"

#~ msgid "Failed to load tasks"
#~ msgstr "Échec du chargement des tâches"

#~ msgid "Move Selected Tasks to Project"
#~ msgstr "Déplacer les tâches sélectionnées vers le projet"

#~ msgid "Move Tasks"
#~ msgstr "Déplacer les tâches"

#~ msgid "Add notes about what you're working on..."
#~ msgstr "Ajouter des notes sur ce sur quoi vous travaillez..."

#~ msgid "Set as default template"
#~ msgstr "Définir comme modèle par défaut"

#~ msgid "HTML Template"
#~ msgstr "Modèle HTML"

#~ msgid "Invoice Number"
#~ msgstr "Numéro de facture"

#~ msgid "Company Name"
#~ msgstr "Nom de l'entreprise"

#~ msgid "Custom Message"
#~ msgstr "Message personnalisé"

#~ msgid "More Variables"
#~ msgstr "Plus de variables"

#~ msgid "Invoice number or client"
#~ msgstr "Numéro de facture ou client"

#~ msgid "Receipt/Invoice Number"
#~ msgstr "Numéro de reçu/facture"

#~ msgid "Your session expired or the page was open too long. Please try again."
#~ msgstr ""

#~ msgid "Administrator access required"
#~ msgstr ""

#~ msgid "Could not update PDF layout due to a database error."
#~ msgstr ""

#~ msgid "PDF layout updated successfully"
#~ msgstr ""

#~ msgid "Could not reset PDF layout due to a database error."
#~ msgstr ""

#~ msgid "PDF layout reset to defaults"
#~ msgstr ""

#~ msgid "Username is required"
#~ msgstr ""

#~ msgid ""
#~ "Could not create your account due to"
#~ " a database error. Please try again "
#~ "later."
#~ msgstr ""

#~ msgid "Welcome! Your account has been created."
#~ msgstr ""

#~ msgid "User not found. Please contact an administrator."
#~ msgstr ""

#~ msgid "Could not update your account role due to a database error."
#~ msgstr ""

#~ msgid "Account is disabled. Please contact an administrator."
#~ msgstr ""

#~ msgid "Welcome back, %(username)s!"
#~ msgstr ""

#~ msgid "Unexpected error during login. Please try again or check server logs."
#~ msgstr ""

#~ msgid "Goodbye, %(username)s!"
#~ msgstr ""

#~ msgid "Invalid avatar file type. Allowed: PNG, JPG, JPEG, GIF, WEBP"
#~ msgstr ""

#~ msgid "Invalid image file."
#~ msgstr ""

#~ msgid "Failed to save avatar on server."
#~ msgstr ""

#~ msgid "Profile updated successfully"
#~ msgstr ""

#~ msgid "Could not update your profile due to a database error."
#~ msgstr ""

#~ msgid "Avatar removed"
#~ msgstr ""

#~ msgid "Failed to remove avatar."
#~ msgstr ""

#~ msgid "Single Sign-On is not configured yet. Please contact an administrator."
#~ msgstr ""

#~ msgid "Single Sign-On is not configured."
#~ msgstr ""

#~ msgid ""
#~ "Authentication failed: missing issuer or "
#~ "subject claim. Please check OIDC "
#~ "configuration."
#~ msgstr ""

#~ msgid "User account does not exist and self-registration is disabled."
#~ msgstr ""

#~ msgid "Could not create your account due to a database error."
#~ msgstr ""

#~ msgid "Unexpected error during SSO login. Please try again or contact support."
#~ msgstr ""

#~ msgid "Event created successfully"
#~ msgstr ""

#~ msgid "Event updated successfully"
#~ msgstr ""

#~ msgid "You do not have permission to delete this event."
#~ msgstr ""

#~ msgid "Failed to delete event"
#~ msgstr ""

#~ msgid "Event deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting event: %(error)s"
#~ msgstr ""

#~ msgid "Event moved successfully"
#~ msgstr ""

#~ msgid "Event resized successfully"
#~ msgstr ""

#~ msgid "You do not have permission to view this event."
#~ msgstr ""

#~ msgid "You do not have permission to edit this event."
#~ msgstr ""

#~ msgid "Note content cannot be empty"
#~ msgstr ""

#~ msgid "Note added successfully"
#~ msgstr ""

#~ msgid "Error adding note"
#~ msgstr ""

#~ msgid "Error adding note: %(error)s"
#~ msgstr ""

#~ msgid "Note does not belong to this client"
#~ msgstr ""

#~ msgid "You do not have permission to edit this note"
#~ msgstr ""

#~ msgid "Error updating note"
#~ msgstr ""

#~ msgid "Note updated successfully"
#~ msgstr ""

#~ msgid "Error updating note: %(error)s"
#~ msgstr ""

#~ msgid "You do not have permission to delete this note"
#~ msgstr ""

#~ msgid "Error deleting note"
#~ msgstr ""

#~ msgid "Note deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting note: %(error)s"
#~ msgstr ""

#~ msgid "You do not have permission to create clients"
#~ msgstr ""

#~ msgid "Comment content cannot be empty"
#~ msgstr ""

#~ msgid "Comment must be associated with a project or task"
#~ msgstr ""

#~ msgid "Comment cannot be associated with both a project and a task"
#~ msgstr ""

#~ msgid "Invalid parent comment"
#~ msgstr ""

#~ msgid "Comment added successfully"
#~ msgstr ""

#~ msgid "Error adding comment"
#~ msgstr ""

#~ msgid "Error adding comment: %(error)s"
#~ msgstr ""

#~ msgid "You do not have permission to edit this comment"
#~ msgstr ""

#~ msgid "Comment updated successfully"
#~ msgstr ""

#~ msgid "Error updating comment: %(error)s"
#~ msgstr ""

#~ msgid "You do not have permission to delete this comment"
#~ msgstr ""

#~ msgid "Comment deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting comment: %(error)s"
#~ msgstr ""

#~ msgid "Category name is required"
#~ msgstr ""

#~ msgid "Expense category created successfully"
#~ msgstr ""

#~ msgid "Error creating expense category"
#~ msgstr ""

#~ msgid "Expense category updated successfully"
#~ msgstr ""

#~ msgid "Error updating expense category"
#~ msgstr ""

#~ msgid "Expense category deactivated successfully"
#~ msgstr ""

#~ msgid "Error deactivating expense category"
#~ msgstr ""

#~ msgid "Title is required"
#~ msgstr ""

#~ msgid "Category is required"
#~ msgstr ""

#~ msgid "Amount is required"
#~ msgstr ""

#~ msgid "Expense date is required"
#~ msgstr ""

#~ msgid "Invalid date format"
#~ msgstr ""

#~ msgid "Invalid amount format"
#~ msgstr ""

#~ msgid "Expense created successfully"
#~ msgstr ""

#~ msgid "Error creating expense"
#~ msgstr ""

#~ msgid "You do not have permission to view this expense"
#~ msgstr ""

#~ msgid "You do not have permission to edit this expense"
#~ msgstr ""

#~ msgid "Cannot edit approved or reimbursed expenses"
#~ msgstr ""

#~ msgid "Please fill in all required fields"
#~ msgstr ""

#~ msgid "Expense updated successfully"
#~ msgstr ""

#~ msgid "Error updating expense"
#~ msgstr ""

#~ msgid "You do not have permission to delete this expense"
#~ msgstr ""

#~ msgid "Cannot delete approved or invoiced expenses"
#~ msgstr ""

#~ msgid "Expense deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting expense"
#~ msgstr ""

#~ msgid "Only administrators can approve expenses"
#~ msgstr ""

#~ msgid "Only pending expenses can be approved"
#~ msgstr ""

#~ msgid "Expense approved successfully"
#~ msgstr ""

#~ msgid "Error approving expense"
#~ msgstr ""

#~ msgid "Only administrators can reject expenses"
#~ msgstr ""

#~ msgid "Only pending expenses can be rejected"
#~ msgstr ""

#~ msgid "Rejection reason is required"
#~ msgstr ""

#~ msgid "Expense rejected"
#~ msgstr ""

#~ msgid "Error rejecting expense"
#~ msgstr ""

#~ msgid "Only administrators can mark expenses as reimbursed"
#~ msgstr ""

#~ msgid "Only approved expenses can be marked as reimbursed"
#~ msgstr ""

#~ msgid "This expense is not marked as reimbursable"
#~ msgstr ""

#~ msgid "Expense marked as reimbursed"
#~ msgstr ""

#~ msgid "Error marking expense as reimbursed"
#~ msgstr ""

#~ msgid "OCR is not available. Please contact your administrator."
#~ msgstr ""

#~ msgid "No file provided"
#~ msgstr ""

#~ msgid "No file selected"
#~ msgstr ""

#~ msgid "Invalid file type. Allowed types: png, jpg, jpeg, gif, pdf"
#~ msgstr ""

#~ msgid ""
#~ "Receipt scanned successfully! You can now"
#~ " create an expense with the extracted"
#~ " data."
#~ msgstr ""

#~ msgid "Error scanning receipt. Please try again or enter the expense manually."
#~ msgstr ""

#~ msgid "No scanned receipt data found. Please scan a receipt first."
#~ msgstr ""

#~ msgid "Expense created successfully from scanned receipt"
#~ msgstr ""

#~ msgid "You do not have permission to export this invoice"
#~ msgstr ""

#~ msgid "PDF generation failed: %(err)s. Fallback also failed: %(fb)s"
#~ msgstr ""

#~ msgid "Mileage entry created successfully"
#~ msgstr ""

#~ msgid "Error creating mileage entry"
#~ msgstr ""

#~ msgid "You do not have permission to view this mileage entry"
#~ msgstr ""

#~ msgid "You do not have permission to edit this mileage entry"
#~ msgstr ""

#~ msgid "Cannot edit approved or reimbursed mileage entries"
#~ msgstr ""

#~ msgid "Mileage entry updated successfully"
#~ msgstr ""

#~ msgid "Error updating mileage entry"
#~ msgstr ""

#~ msgid "You do not have permission to delete this mileage entry"
#~ msgstr ""

#~ msgid "Mileage entry deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting mileage entry"
#~ msgstr ""

#~ msgid "Only administrators can approve mileage entries"
#~ msgstr ""

#~ msgid "Only pending mileage entries can be approved"
#~ msgstr ""

#~ msgid "Mileage entry approved successfully"
#~ msgstr ""

#~ msgid "Error approving mileage entry"
#~ msgstr ""

#~ msgid "Only administrators can reject mileage entries"
#~ msgstr ""

#~ msgid "Only pending mileage entries can be rejected"
#~ msgstr ""

#~ msgid "Mileage entry rejected"
#~ msgstr ""

#~ msgid "Error rejecting mileage entry"
#~ msgstr ""

#~ msgid "Only administrators can mark mileage entries as reimbursed"
#~ msgstr ""

#~ msgid "Only approved mileage entries can be marked as reimbursed"
#~ msgstr ""

#~ msgid "Mileage entry marked as reimbursed"
#~ msgstr ""

#~ msgid "Error marking mileage entry as reimbursed"
#~ msgstr ""

#~ msgid "Start date must be before end date"
#~ msgstr ""

#~ msgid "No per diem rate found for this location. Please configure rates first."
#~ msgstr ""

#~ msgid "Per diem claim created successfully"
#~ msgstr ""

#~ msgid "Error creating per diem claim"
#~ msgstr ""

#~ msgid "You do not have permission to view this per diem claim"
#~ msgstr ""

#~ msgid "You do not have permission to edit this per diem claim"
#~ msgstr ""

#~ msgid "Cannot edit approved or reimbursed per diem claims"
#~ msgstr ""

#~ msgid "Per diem claim updated successfully"
#~ msgstr ""

#~ msgid "Error updating per diem claim"
#~ msgstr ""

#~ msgid "You do not have permission to delete this per diem claim"
#~ msgstr ""

#~ msgid "Per diem claim deleted successfully"
#~ msgstr ""

#~ msgid "Error deleting per diem claim"
#~ msgstr ""

#~ msgid "Only administrators can approve per diem claims"
#~ msgstr ""

#~ msgid "Only pending per diem claims can be approved"
#~ msgstr ""

#~ msgid "Per diem claim approved successfully"
#~ msgstr ""

#~ msgid "Error approving per diem claim"
#~ msgstr ""

#~ msgid "Only administrators can reject per diem claims"
#~ msgstr ""

#~ msgid "Only pending per diem claims can be rejected"
#~ msgstr ""

#~ msgid "Per diem claim rejected"
#~ msgstr ""

#~ msgid "Error rejecting per diem claim"
#~ msgstr ""

#~ msgid "Per diem rate created successfully"
#~ msgstr ""

#~ msgid "Error creating per diem rate"
#~ msgstr ""

#~ msgid "You do not have permission to access this page"
#~ msgstr ""

#~ msgid "Role name is required"
#~ msgstr ""

#~ msgid "A role with this name already exists"
#~ msgstr ""

#~ msgid "Could not create role due to a database error"
#~ msgstr ""

#~ msgid "Role created successfully"
#~ msgstr ""

#~ msgid "System roles cannot be edited"
#~ msgstr ""

#~ msgid "Could not update role due to a database error"
#~ msgstr ""

#~ msgid "Role updated successfully"
#~ msgstr ""

#~ msgid "You do not have permission to perform this action"
#~ msgstr ""

#~ msgid "System roles cannot be deleted"
#~ msgstr ""

#~ msgid "Cannot delete role that is assigned to users. Please reassign users first."
#~ msgstr ""

#~ msgid "Could not delete role due to a database error"
#~ msgstr ""

#~ msgid "Role \"%(name)s\" deleted successfully"
#~ msgstr ""

#~ msgid "Could not update user roles due to a database error"
#~ msgstr ""

#~ msgid "User roles updated successfully"
#~ msgstr ""

#~ msgid "Project code already in use"
#~ msgstr ""

#~ msgid "Project is already in favorites"
#~ msgstr ""

#~ msgid "Project added to favorites"
#~ msgstr ""

#~ msgid "Failed to add project to favorites"
#~ msgstr ""

#~ msgid "Project is not in favorites"
#~ msgstr ""

#~ msgid "Project removed from favorites"
#~ msgstr ""

#~ msgid "Failed to remove project from favorites"
#~ msgstr ""

#~ msgid "Description, category, amount, and date are required"
#~ msgstr ""

#~ msgid "Could not add cost due to a database error. Please check server logs."
#~ msgstr ""

#~ msgid "Cost added successfully"
#~ msgstr ""

#~ msgid "Cost not found"
#~ msgstr ""

#~ msgid "You do not have permission to edit this cost"
#~ msgstr ""

#~ msgid "Could not update cost due to a database error. Please check server logs."
#~ msgstr ""

#~ msgid "Cost updated successfully"
#~ msgstr ""

#~ msgid "You do not have permission to delete this cost"
#~ msgstr ""

#~ msgid "Cannot delete cost that has been invoiced"
#~ msgstr ""

#~ msgid "Could not delete cost due to a database error. Please check server logs."
#~ msgstr ""

#~ msgid "Name and unit price are required"
#~ msgstr ""

#~ msgid "Invalid quantity format"
#~ msgstr ""

#~ msgid "Invalid unit price format"
#~ msgstr ""

#~ msgid ""
#~ "Could not add extra good due to "
#~ "a database error. Please check server "
#~ "logs."
#~ msgstr ""

#~ msgid "Extra good added successfully"
#~ msgstr ""

#~ msgid "Extra good not found"
#~ msgstr ""

#~ msgid "You do not have permission to edit this extra good"
#~ msgstr ""

#~ msgid ""
#~ "Could not update extra good due to"
#~ " a database error. Please check server"
#~ " logs."
#~ msgstr ""

#~ msgid "Extra good updated successfully"
#~ msgstr ""

#~ msgid "You do not have permission to delete this extra good"
#~ msgstr ""

#~ msgid "Cannot delete extra good that has been added to an invoice"
#~ msgstr ""

#~ msgid ""
#~ "Could not delete extra good due to"
#~ " a database error. Please check server"
#~ " logs."
#~ msgstr ""

#~ msgid "Invalid project selected"
#~ msgstr ""

#~ msgid ""
#~ "Cannot start timer for an archived "
#~ "project. Please unarchive the project "
#~ "first."
#~ msgstr ""

#~ msgid "Cannot start timer for an inactive project"
#~ msgstr ""

#~ msgid ""
#~ "Cannot create time entries for an "
#~ "archived project. Please unarchive the "
#~ "project first."
#~ msgstr ""

#~ msgid "Cannot create time entries for an inactive project"
#~ msgstr ""

#~ msgid "Invalid timezone selected"
#~ msgstr ""

#~ msgid "Standard hours per day must be between 0.5 and 24"
#~ msgstr ""

#~ msgid "Settings saved successfully"
#~ msgstr ""

#~ msgid "Error saving settings"
#~ msgstr ""

#~ msgid "Error saving settings: %(error)s"
#~ msgstr ""

#~ msgid "Preferences updated"
#~ msgstr ""

#~ msgid "Language updated successfully"
#~ msgstr ""

#~ msgid "Invalid language"
#~ msgstr ""

#~ msgid "Language updated to %(language)s"
#~ msgstr ""

#~ msgid "Please enter a valid target hours (greater than 0)"
#~ msgstr ""

#~ msgid ""
#~ "A goal already exists for this week."
#~ " Please edit the existing goal instead."
#~ msgstr ""

#~ msgid "Weekly time goal created successfully!"
#~ msgstr ""

#~ msgid "Failed to create goal. Please try again."
#~ msgstr ""

#~ msgid "You do not have permission to view this goal"
#~ msgstr ""

#~ msgid "You do not have permission to edit this goal"
#~ msgstr ""

#~ msgid "Weekly time goal updated successfully!"
#~ msgstr ""

#~ msgid "Failed to update goal. Please try again."
#~ msgstr ""

#~ msgid "You do not have permission to delete this goal"
#~ msgstr ""

#~ msgid "Weekly time goal deleted successfully"
#~ msgstr ""

#~ msgid "Failed to delete goal. Please try again."
#~ msgstr ""

#~ msgid "remaining"
#~ msgstr ""

#~ msgid "Success"
#~ msgstr ""

#~ msgid "Error"
#~ msgstr ""

#~ msgid "Warning"
#~ msgstr ""

#~ msgid "Information"
#~ msgstr ""

#~ msgid "Saving..."
#~ msgstr ""

#~ msgid "Save"
#~ msgstr ""

#~ msgid "Edit"
#~ msgstr ""

#~ msgid "Add"
#~ msgstr ""

#~ msgid "Remove"
#~ msgstr ""

#~ msgid "Yes"
#~ msgstr ""

#~ msgid "No"
#~ msgstr ""

#~ msgid "OK"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this?"
#~ msgstr ""

#~ msgid "You have unsaved changes. Are you sure you want to leave?"
#~ msgstr ""

#~ msgid "Operation failed"
#~ msgstr ""

#~ msgid "Operation completed successfully"
#~ msgstr ""

#~ msgid "No items selected"
#~ msgstr ""

#~ msgid "Invalid input"
#~ msgstr ""

#~ msgid "This field is required"
#~ msgstr ""

#~ msgid "No active timer"
#~ msgstr ""

#~ msgid "Timer stopped"
#~ msgstr ""

#~ msgid "Failed to stop timer"
#~ msgstr ""

#~ msgid "Error stopping timer"
#~ msgstr ""

#~ msgid "No form to save"
#~ msgstr ""

#~ msgid "No timer found"
#~ msgstr ""

#~ msgid "Timer stopped due to inactivity"
#~ msgstr ""

#~ msgid "Navigation"
#~ msgstr ""

#~ msgid "Time Tracking"
#~ msgstr ""

#~ msgid "Kanban Board"
#~ msgstr ""

#~ msgid "Weekly Goals"
#~ msgstr ""

#~ msgid "Templates"
#~ msgstr ""

#~ msgid "Finance & Expenses"
#~ msgstr ""

#~ msgid "Payments"
#~ msgstr ""

#~ msgid "Expenses"
#~ msgstr ""

#~ msgid "Mileage"
#~ msgstr ""

#~ msgid "Per Diem"
#~ msgstr ""

#~ msgid "Budget Alerts"
#~ msgstr ""

#~ msgid "Tools & Data"
#~ msgstr ""

#~ msgid "Import / Export"
#~ msgstr ""

#~ msgid "Saved Filters"
#~ msgstr ""

#~ msgid "Admin Dashboard"
#~ msgstr ""

#~ msgid "Users"
#~ msgstr ""

#~ msgid "API Tokens"
#~ msgstr ""

#~ msgid "Roles & Permissions"
#~ msgstr ""

#~ msgid "System Settings"
#~ msgstr ""

#~ msgid "PDF Layout"
#~ msgstr ""

#~ msgid "Expense Categories"
#~ msgstr ""

#~ msgid "Per Diem Rates"
#~ msgstr ""

#~ msgid "System Info"
#~ msgstr ""

#~ msgid "Backups"
#~ msgstr ""

#~ msgid "OIDC Settings"
#~ msgstr ""

#~ msgid "Support TimeTracker"
#~ msgstr ""

#~ msgid ""
#~ "Enjoying TimeTracker? Consider buying me a"
#~ " coffee to support continued development!"
#~ msgstr ""

#~ msgid "Made with"
#~ msgstr ""

#~ msgid "by"
#~ msgstr ""

#~ msgid "Support TimeTracker development"
#~ msgstr ""

#~ msgid "Support"
#~ msgstr ""

#~ msgid "Enjoying TimeTracker?"
#~ msgstr ""

#~ msgid "Support continued development with a coffee"
#~ msgstr ""

#~ msgid "Dismiss"
#~ msgstr ""

#~ msgid "Toggle dark mode"
#~ msgstr ""

#~ msgid "Change language"
#~ msgstr ""

#~ msgid "User menu"
#~ msgstr ""

#~ msgid "Guest"
#~ msgstr ""

#~ msgid "My Profile"
#~ msgstr ""

#~ msgid "My Settings"
#~ msgstr ""

#~ msgid "Are you sure you want to"
#~ msgstr ""

#~ msgid "deactivate"
#~ msgstr ""

#~ msgid "activate"
#~ msgstr ""

#~ msgid "this token?"
#~ msgstr ""

#~ msgid "Deactivate Token"
#~ msgstr ""

#~ msgid "Activate Token"
#~ msgstr ""

#~ msgid "Deactivate"
#~ msgstr ""

#~ msgid "Activate"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this token? This action cannot be undone."
#~ msgstr ""

#~ msgid "Delete Token"
#~ msgstr ""

#~ msgid "Email Configuration & Testing"
#~ msgstr ""

#~ msgid "Configure and test email delivery"
#~ msgstr ""

#~ msgid "Back to Admin"
#~ msgstr ""

#~ msgid "Email Configuration"
#~ msgstr ""

#~ msgid ""
#~ "Configure email settings here to save "
#~ "them in the database. Database settings "
#~ "take precedence over environment variables."
#~ msgstr ""

#~ msgid "Enable Database Email Configuration"
#~ msgstr ""

#~ msgid "Mail Server"
#~ msgstr ""

#~ msgid "Mail Port"
#~ msgstr ""

#~ msgid "Use TLS"
#~ msgstr ""

#~ msgid "Use SSL"
#~ msgstr ""

#~ msgid "Password"
#~ msgstr ""

#~ msgid "Leave empty to keep current"
#~ msgstr ""

#~ msgid "Default Sender"
#~ msgstr ""

#~ msgid "Save Configuration"
#~ msgstr ""

#~ msgid "Reset"
#~ msgstr ""

#~ msgid "Email Configuration Status"
#~ msgstr ""

#~ msgid "Refresh"
#~ msgstr ""

#~ msgid "Email is configured!"
#~ msgstr ""

#~ msgid "Your email settings are properly set up."
#~ msgstr ""

#~ msgid "Email is not configured"
#~ msgstr ""

#~ msgid "Please configure email settings in your environment variables."
#~ msgstr ""

#~ msgid "Configuration Errors"
#~ msgstr ""

#~ msgid "Configuration Warnings"
#~ msgstr ""

#~ msgid "Current Email Settings"
#~ msgstr ""

#~ msgid "Port"
#~ msgstr ""

#~ msgid "Password Set"
#~ msgstr ""

#~ msgid "Send Test Email"
#~ msgstr ""

#~ msgid "Recipient Email Address"
#~ msgstr ""

#~ msgid "Configuration Guide"
#~ msgstr ""

#~ msgid "To configure email, set the following environment variables:"
#~ msgstr ""

#~ msgid "Basic SMTP Settings"
#~ msgstr ""

#~ msgid "Authentication"
#~ msgstr ""

#~ msgid "Sender Information"
#~ msgstr ""

#~ msgid "Common SMTP Providers"
#~ msgstr ""

#~ msgid "Requires app password"
#~ msgstr ""

#~ msgid "Important Notes"
#~ msgstr ""

#~ msgid "Gmail requires an App Password if 2FA is enabled"
#~ msgstr ""

#~ msgid "Restart the application after changing email settings"
#~ msgstr ""

#~ msgid "Check firewall rules if emails are not sending"
#~ msgstr ""

#~ msgid "For production, use a dedicated email service like SendGrid or Amazon SES"
#~ msgstr ""

#~ msgid "password is set"
#~ msgstr ""

#~ msgid "no password set"
#~ msgstr ""

#~ msgid "Failed to save configuration. Please try again."
#~ msgstr ""

#~ msgid "Success!"
#~ msgstr ""

#~ msgid "Failed to refresh status. Please try again."
#~ msgstr ""

#~ msgid "Please enter a valid email address"
#~ msgstr ""

#~ msgid "Sending..."
#~ msgstr ""

#~ msgid "Failed to send test email. Please check your configuration."
#~ msgstr ""

#~ msgid "OIDC Debug Dashboard"
#~ msgstr ""

#~ msgid "Inspect configuration, provider metadata and OIDC users"
#~ msgstr ""

#~ msgid "Test Configuration"
#~ msgstr ""

#~ msgid "OIDC Configuration"
#~ msgstr ""

#~ msgid "Enabled"
#~ msgstr ""

#~ msgid "Disabled"
#~ msgstr ""

#~ msgid "Auth Method"
#~ msgstr ""

#~ msgid "Issuer"
#~ msgstr ""

#~ msgid "Not configured"
#~ msgstr ""

#~ msgid "Client ID"
#~ msgstr ""

#~ msgid "Client Secret"
#~ msgstr ""

#~ msgid "Set"
#~ msgstr ""

#~ msgid "Not set"
#~ msgstr ""

#~ msgid "Redirect URI"
#~ msgstr ""

#~ msgid "Auto-generated"
#~ msgstr ""

#~ msgid "Scopes"
#~ msgstr ""

#~ msgid "Claim Mapping"
#~ msgstr ""

#~ msgid "Username Claim"
#~ msgstr ""

#~ msgid "Email Claim"
#~ msgstr ""

#~ msgid "Full Name Claim"
#~ msgstr ""

#~ msgid "Groups Claim"
#~ msgstr ""

#~ msgid "Admin Group"
#~ msgstr ""

#~ msgid "Admin Emails"
#~ msgstr ""

#~ msgid "Post-Logout URI"
#~ msgstr ""

#~ msgid "Provider Metadata"
#~ msgstr ""

#~ msgid "Error loading metadata:"
#~ msgstr ""

#~ msgid "Discovery endpoint:"
#~ msgstr ""

#~ msgid "Successfully loaded provider metadata"
#~ msgstr ""

#~ msgid "Endpoints"
#~ msgstr ""

#~ msgid "Authorization"
#~ msgstr ""

#~ msgid "Token"
#~ msgstr ""

#~ msgid "UserInfo"
#~ msgstr ""

#~ msgid "End Session"
#~ msgstr ""

#~ msgid "JWKS URI"
#~ msgstr ""

#~ msgid "Supported Features"
#~ msgstr ""

#~ msgid "Response Types"
#~ msgstr ""

#~ msgid "Grant Types"
#~ msgstr ""

#~ msgid "Auth Methods"
#~ msgstr ""

#~ msgid "Claims"
#~ msgstr ""

#~ msgid "Provider metadata not loaded. Click \"Test Configuration\" to fetch."
#~ msgstr ""

#~ msgid "OIDC Users"
#~ msgstr ""

#~ msgid "Email"
#~ msgstr ""

#~ msgid "Full Name"
#~ msgstr ""

#~ msgid "Role"
#~ msgstr ""

#~ msgid "Last Login"
#~ msgstr ""

#~ msgid "OIDC Subject"
#~ msgstr ""

#~ msgid "Inactive"
#~ msgstr ""

#~ msgid "User"
#~ msgstr ""

#~ msgid "Never"
#~ msgstr ""

#~ msgid "Details"
#~ msgstr ""

#~ msgid "No users have logged in via OIDC yet."
#~ msgstr ""

#~ msgid "Environment Variables Reference"
#~ msgstr ""

#~ msgid "Configure OIDC using these environment variables:"
#~ msgstr ""

#~ msgid "Variable"
#~ msgstr ""

#~ msgid "Description"
#~ msgstr ""

#~ msgid "Example"
#~ msgstr ""

#~ msgid "Authentication method"
#~ msgstr ""

#~ msgid "OIDC provider issuer URL"
#~ msgstr ""

#~ msgid "Client ID from OIDC provider"
#~ msgstr ""

#~ msgid "Client secret from OIDC provider"
#~ msgstr ""

#~ msgid "Callback URL (optional, auto-generated)"
#~ msgstr ""

#~ msgid "Requested scopes"
#~ msgstr ""

#~ msgid "Claim containing username"
#~ msgstr ""

#~ msgid "Claim containing email"
#~ msgstr ""

#~ msgid "Claim containing full name"
#~ msgstr ""

#~ msgid "Claim containing groups"
#~ msgstr ""

#~ msgid "Group name for admin role (optional)"
#~ msgstr ""

#~ msgid "Comma-separated admin emails (optional)"
#~ msgstr ""

#~ msgid "OIDC User Details"
#~ msgstr ""

#~ msgid "Profile and OIDC identity for this user"
#~ msgstr ""

#~ msgid "Back to OIDC Debug"
#~ msgstr ""

#~ msgid "User Profile"
#~ msgstr ""

#~ msgid "Active"
#~ msgstr ""

#~ msgid "Preferred Language"
#~ msgstr ""

#~ msgid "Theme"
#~ msgstr ""

#~ msgid "Created At"
#~ msgstr ""

#~ msgid "Unknown"
#~ msgstr ""

#~ msgid "OIDC Information"
#~ msgstr ""

#~ msgid "OIDC Issuer"
#~ msgstr ""

#~ msgid "OIDC Subject (sub)"
#~ msgstr ""

#~ msgid "Authentication Method"
#~ msgstr ""

#~ msgid "Local"
#~ msgstr ""

#~ msgid ""
#~ "This user was created or linked via"
#~ " OIDC. The issuer and subject are "
#~ "used to uniquely identify the user "
#~ "across login sessions."
#~ msgstr ""

#~ msgid ""
#~ "This user has no OIDC information. "
#~ "They may have been created manually "
#~ "or via self-registration without OIDC."
#~ msgstr ""

#~ msgid "Activity Statistics"
#~ msgstr ""

#~ msgid "Time Entries"
#~ msgstr ""

#~ msgid "None"
#~ msgstr ""

#~ msgid "Active Timer"
#~ msgstr ""

#~ msgid "Tasks Created"
#~ msgstr ""

#~ msgid "Edit User"
#~ msgstr ""

#~ msgid "View All Users"
#~ msgstr ""

#~ msgid "Are you sure you want to remove the company logo?"
#~ msgstr ""

#~ msgid "Remove Logo"
#~ msgstr ""

#~ msgid "Admin Access"
#~ msgstr ""

#~ msgid "Migrate to new role system"
#~ msgstr ""

#~ msgid "Migrate"
#~ msgstr ""

#~ msgid "Roles"
#~ msgstr ""

#~ msgid "No users found."
#~ msgstr ""

#~ msgid ""
#~ "Cannot delete user \"{name}\" because they"
#~ " have {count} time entries. Users with"
#~ " existing time entries cannot be "
#~ "deleted."
#~ msgstr ""

#~ msgid "Cannot Delete User"
#~ msgstr ""

#~ msgid ""
#~ "Are you sure you want to delete "
#~ "user \"{name}\"? This action cannot be "
#~ "undone."
#~ msgstr ""

#~ msgid "Delete User"
#~ msgstr ""

#~ msgid "System Permissions"
#~ msgstr ""

#~ msgid "All available permissions in the system"
#~ msgstr ""

#~ msgid "Back to Roles"
#~ msgstr ""

#~ msgid "permissions"
#~ msgstr ""

#~ msgid "No description available"
#~ msgstr ""

#~ msgid "About Permissions"
#~ msgstr ""

#~ msgid ""
#~ "Permissions define what actions users can"
#~ " perform in the system. These "
#~ "permissions are assigned to roles, and "
#~ "roles are assigned to users. This "
#~ "provides a flexible and granular access "
#~ "control system."
#~ msgstr ""

#~ msgid "Edit Role"
#~ msgstr ""

#~ msgid "Create New Role"
#~ msgstr ""

#~ msgid "Role Name"
#~ msgstr ""

#~ msgid "A unique name for this role"
#~ msgstr ""

#~ msgid "Optional description of this role"
#~ msgstr ""

#~ msgid "Permissions"
#~ msgstr ""

#~ msgid "Select the permissions this role should have:"
#~ msgstr ""

#~ msgid "Toggle All"
#~ msgstr ""

#~ msgid "Update Role"
#~ msgstr ""

#~ msgid "Create Role"
#~ msgstr ""

#~ msgid "Manage roles and their permissions"
#~ msgstr ""

#~ msgid "View Permissions"
#~ msgstr ""

#~ msgid "Total Roles"
#~ msgstr ""

#~ msgid "System Roles"
#~ msgstr ""

#~ msgid "Custom Roles"
#~ msgstr ""

#~ msgid "Assigned Users"
#~ msgstr ""

#~ msgid "Type"
#~ msgstr ""

#~ msgid "Default role"
#~ msgstr ""

#~ msgid "user"
#~ msgstr ""

#~ msgid "users"
#~ msgstr ""

#~ msgid "No users"
#~ msgstr ""

#~ msgid "System"
#~ msgstr ""

#~ msgid "Custom"
#~ msgstr ""

#~ msgid "View"
#~ msgstr ""

#~ msgid "Permissions for"
#~ msgstr ""

#~ msgid "No permissions assigned."
#~ msgstr ""

#~ msgid "No roles found."
#~ msgstr ""

#~ msgid "About Roles & Permissions"
#~ msgstr ""

#~ msgid ""
#~ "Roles are collections of permissions that"
#~ " can be assigned to users. System "
#~ "roles are predefined and cannot be "
#~ "deleted or renamed, but custom roles "
#~ "can be created for your specific "
#~ "needs."
#~ msgstr ""

#~ msgid "Are you sure you want to delete the role"
#~ msgstr ""

#~ msgid "Delete Role"
#~ msgstr ""

#~ msgid "No description"
#~ msgstr ""

#~ msgid "Role Information"
#~ msgstr ""

#~ msgid "System Role"
#~ msgstr ""

#~ msgid "Custom Role"
#~ msgstr ""

#~ msgid "Total Permissions"
#~ msgstr ""

#~ msgid "Created"
#~ msgstr ""

#~ msgid "Users with this Role"
#~ msgstr ""

#~ msgid "No users assigned to this role yet."
#~ msgstr ""

#~ msgid "This role has no permissions assigned."
#~ msgstr ""

#~ msgid "Back to User"
#~ msgstr ""

#~ msgid "Manage Roles for"
#~ msgstr ""

#~ msgid "Assign Roles"
#~ msgstr ""

#~ msgid ""
#~ "Select the roles this user should "
#~ "have. Users inherit all permissions from"
#~ " their assigned roles."
#~ msgstr ""

#~ msgid "Update Roles"
#~ msgstr ""

#~ msgid "Current Effective Permissions"
#~ msgstr ""

#~ msgid "These are all the permissions the user currently has through their roles:"
#~ msgstr ""

#~ msgid "No permissions (assign roles to grant permissions)"
#~ msgstr ""

#~ msgid "Analytics Dashboard"
#~ msgstr ""

#~ msgid "Last 7 days"
#~ msgstr ""

#~ msgid "Last 30 days"
#~ msgstr ""

#~ msgid "Last 90 days"
#~ msgstr ""

#~ msgid "Last year"
#~ msgstr ""

#~ msgid "Key metrics and insights about your time tracking"
#~ msgstr ""

#~ msgid "Total Hours"
#~ msgstr ""

#~ msgid "Billable Hours"
#~ msgstr ""

#~ msgid "Active Projects"
#~ msgstr ""

#~ msgid "Avg Daily Hours"
#~ msgstr ""

#~ msgid "Daily Hours Trend"
#~ msgstr ""

#~ msgid "Billable vs Non-Billable"
#~ msgstr ""

#~ msgid "Hours by Project"
#~ msgstr ""

#~ msgid "Weekly Trends"
#~ msgstr ""

#~ msgid "Hours by Time of Day"
#~ msgstr ""

#~ msgid "Project Efficiency"
#~ msgstr ""

#~ msgid "User Performance"
#~ msgstr ""

#~ msgid "Failed to load charts. Please try again."
#~ msgstr ""

#~ msgid "Failed to refresh charts. Please try again."
#~ msgstr ""

#~ msgid "Hours"
#~ msgstr ""

#~ msgid "Hour of Day"
#~ msgstr ""

#~ msgid "Revenue"
#~ msgstr ""

#~ msgid "Key metrics and actionable insights"
#~ msgstr ""

#~ msgid "Export"
#~ msgstr ""

#~ msgid "vs previous period"
#~ msgstr ""

#~ msgid "of total"
#~ msgstr ""

#~ msgid "Potential Revenue"
#~ msgstr ""

#~ msgid "Avg rate:"
#~ msgstr ""

#~ msgid "Trend"
#~ msgstr ""

#~ msgid "active projects"
#~ msgstr ""

#~ msgid "Insights & Recommendations"
#~ msgstr ""

#~ msgid "Cumulative"
#~ msgstr ""

#~ msgid "Billable Distribution"
#~ msgstr ""

#~ msgid "Task Status Overview"
#~ msgstr ""

#~ msgid "Tasks Completed"
#~ msgstr ""

#~ msgid "Revenue by Project"
#~ msgstr ""

#~ msgid "Payments Over Time"
#~ msgstr ""

#~ msgid "Payment Status"
#~ msgstr ""

#~ msgid "Payment Methods"
#~ msgstr ""

#~ msgid "Revenue vs Payments"
#~ msgstr ""

#~ msgid "Collection Rate"
#~ msgstr ""

#~ msgid "Project Completion Rate"
#~ msgstr ""

#~ msgid "Billable"
#~ msgstr ""

#~ msgid "Non-Billable"
#~ msgstr ""

#~ msgid "Completion Rate (%)"
#~ msgstr ""

#~ msgid "Mobile insights overview"
#~ msgstr ""

#~ msgid "Daily Avg"
#~ msgstr ""

#~ msgid "Daily Hours"
#~ msgstr ""

#~ msgid "Top Projects"
#~ msgstr ""

#~ msgid "Track time. Stay organized."
#~ msgstr ""

#~ msgid "Sign in to your account"
#~ msgstr ""

#~ msgid "Sign in"
#~ msgstr ""

#~ msgid "Tip: Enter a new username to create your account."
#~ msgstr ""

#~ msgid "Or continue with"
#~ msgstr ""

#~ msgid "Single Sign-On"
#~ msgstr ""

#~ msgid "Budget Alerts & Forecasting"
#~ msgstr ""

#~ msgid "Monitor project budgets and forecast completion"
#~ msgstr ""

#~ msgid "Unacknowledged Alerts"
#~ msgstr ""

#~ msgid "Critical Alerts"
#~ msgstr ""

#~ msgid "Projects with Budgets"
#~ msgstr ""

#~ msgid "Warning Alerts"
#~ msgstr ""

#~ msgid "Active Alerts"
#~ msgstr ""

#~ msgid "Acknowledge"
#~ msgstr ""

#~ msgid "Project Budget Status"
#~ msgstr ""

#~ msgid "Budget"
#~ msgstr ""

#~ msgid "Consumed"
#~ msgstr ""

#~ msgid "Remaining"
#~ msgstr ""

#~ msgid "Progress"
#~ msgstr ""

#~ msgid "over"
#~ msgstr ""

#~ msgid "Over Budget"
#~ msgstr ""

#~ msgid "Critical"
#~ msgstr ""

#~ msgid "Healthy"
#~ msgstr ""

#~ msgid "No projects with budgets found"
#~ msgstr ""

#~ msgid "Alert acknowledged successfully"
#~ msgstr ""

#~ msgid "Failed to acknowledge alert"
#~ msgstr ""

#~ msgid "Budget Analysis & Forecasting"
#~ msgstr ""

#~ msgid "Back to Dashboard"
#~ msgstr ""

#~ msgid "View Project"
#~ msgstr ""

#~ msgid "Total Budget"
#~ msgstr ""

#~ msgid "Burn Rate Analysis"
#~ msgstr ""

#~ msgid "Daily Burn Rate"
#~ msgstr ""

#~ msgid "Weekly Burn Rate"
#~ msgstr ""

#~ msgid "Monthly Burn Rate"
#~ msgstr ""

#~ msgid "Period Total"
#~ msgstr ""

#~ msgid "Based on last"
#~ msgstr ""

#~ msgid "days"
#~ msgstr ""

#~ msgid "No burn rate data available"
#~ msgstr ""

#~ msgid "Completion Estimate"
#~ msgstr ""

#~ msgid "Estimated Completion Date"
#~ msgstr ""

#~ msgid "days remaining"
#~ msgstr ""

#~ msgid "Confidence Level"
#~ msgstr ""

#~ msgid "No completion estimate available"
#~ msgstr ""

#~ msgid "Cost Trend Analysis"
#~ msgstr ""

#~ msgid "Average"
#~ msgstr ""

#~ msgid "Change"
#~ msgstr ""

#~ msgid "Resource Allocation"
#~ msgstr ""

#~ msgid "Total Cost"
#~ msgstr ""

#~ msgid "Hourly Rate"
#~ msgstr ""

#~ msgid "Team Member"
#~ msgstr ""

#~ msgid "Cost"
#~ msgstr ""

#~ msgid "Hours %"
#~ msgstr ""

#~ msgid "Cost %"
#~ msgstr ""

#~ msgid "Entries"
#~ msgstr ""

#~ msgid "Date & Time"
#~ msgstr ""

#~ msgid "Location"
#~ msgstr ""

#~ msgid "Task"
#~ msgstr ""

#~ msgid "Client"
#~ msgstr ""

#~ msgid "Reminder"
#~ msgstr ""

#~ msgid "minutes before"
#~ msgstr ""

#~ msgid "hours before"
#~ msgstr ""

#~ msgid "days before"
#~ msgstr ""

#~ msgid "Recurring"
#~ msgstr ""

#~ msgid "Until"
#~ msgstr ""

#~ msgid "Last Updated"
#~ msgstr ""

#~ msgid "Back to Calendar"
#~ msgstr ""

#~ msgid "Delete Event"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this event? This action cannot be undone."
#~ msgstr ""

#~ msgid "Edit Event"
#~ msgstr ""

#~ msgid "New Event"
#~ msgstr ""

#~ msgid "Title"
#~ msgstr ""

#~ msgid "Start Date"
#~ msgstr ""

#~ msgid "Start Time"
#~ msgstr ""

#~ msgid "End Date"
#~ msgstr ""

#~ msgid "End Time"
#~ msgstr ""

#~ msgid "All Day Event"
#~ msgstr ""

#~ msgid "Event Type"
#~ msgstr ""

#~ msgid "Event"
#~ msgstr ""

#~ msgid "Meeting"
#~ msgstr ""

#~ msgid "Appointment"
#~ msgstr ""

#~ msgid "Deadline"
#~ msgstr ""

#~ msgid "-- None --"
#~ msgstr ""

#~ msgid "No reminder"
#~ msgstr ""

#~ msgid "5 minutes before"
#~ msgstr ""

#~ msgid "15 minutes before"
#~ msgstr ""

#~ msgid "30 minutes before"
#~ msgstr ""

#~ msgid "1 hour before"
#~ msgstr ""

#~ msgid "1 day before"
#~ msgstr ""

#~ msgid "Color"
#~ msgstr ""

#~ msgid "Choose a color for this event"
#~ msgstr ""

#~ msgid "Private Event"
#~ msgstr ""

#~ msgid "Private events are only visible to you"
#~ msgstr ""

#~ msgid "Recurring Event"
#~ msgstr ""

#~ msgid "This is a recurring event"
#~ msgstr ""

#~ msgid "Recurrence Pattern"
#~ msgstr ""

#~ msgid "Use RRULE format (e.g., FREQ=WEEKLY;BYDAY=MO,WE,FR)"
#~ msgstr ""

#~ msgid "Recurrence End Date"
#~ msgstr ""

#~ msgid "Update Event"
#~ msgstr ""

#~ msgid "Create Event"
#~ msgstr ""

#~ msgid "View and manage your events, tasks, and time entries"
#~ msgstr ""

#~ msgid "Day"
#~ msgstr ""

#~ msgid "Week"
#~ msgstr ""

#~ msgid "Month"
#~ msgstr ""

#~ msgid "Today"
#~ msgstr ""

#~ msgid "Events"
#~ msgstr ""

#~ msgid "Loading calendar..."
#~ msgstr ""

#~ msgid "Event Details"
#~ msgstr ""

#~ msgid "Edit Client Note"
#~ msgstr ""

#~ msgid "Back to Client"
#~ msgstr ""

#~ msgid "Client:"
#~ msgstr ""

#~ msgid "Created on"
#~ msgstr ""

#~ msgid "Last edited on"
#~ msgstr ""

#~ msgid "Note Content"
#~ msgstr ""

#~ msgid "Internal note visible only to your team."
#~ msgstr ""

#~ msgid "Mark as important"
#~ msgstr ""

#~ msgid "Save Changes"
#~ msgstr ""

#~ msgid "Create Client"
#~ msgstr ""

#~ msgid "Add a new client to manage related projects and billing."
#~ msgstr ""

#~ msgid "Back to Clients"
#~ msgstr ""

#~ msgid "Client Name"
#~ msgstr ""

#~ msgid "Enter client name"
#~ msgstr ""

#~ msgid "Default Hourly Rate"
#~ msgstr ""

#~ msgid "e.g. 75.00"
#~ msgstr ""

#~ msgid ""
#~ "This rate will be automatically filled "
#~ "when creating projects for this client"
#~ msgstr ""

#~ msgid "Supports Markdown"
#~ msgstr ""

#~ msgid "Brief description of the client or project scope"
#~ msgstr ""

#~ msgid "Contact Person"
#~ msgstr ""

#~ msgid "Primary contact name"
#~ msgstr ""

#~ msgid "contact@client.com"
#~ msgstr ""

#~ msgid "Phone"
#~ msgstr ""

#~ msgid "+1 (555) 123-4567"
#~ msgstr ""

#~ msgid "Address"
#~ msgstr ""

#~ msgid "Client address"
#~ msgstr ""

#~ msgid "Choose a clear, descriptive name for the client organization."
#~ msgstr ""

#~ msgid ""
#~ "Set the standard hourly rate for this"
#~ " client. This will automatically populate "
#~ "when creating new projects."
#~ msgstr ""

#~ msgid "Contact Information"
#~ msgstr ""

#~ msgid "Add contact details for easy communication and record keeping."
#~ msgstr ""

#~ msgid "Provide context about the client relationship or typical project types."
#~ msgstr ""

#~ msgid "Edit Client"
#~ msgstr ""

#~ msgid "Update Client"
#~ msgstr ""

#~ msgid "Client Statistics"
#~ msgstr ""

#~ msgid "Total Projects"
#~ msgstr ""

#~ msgid "Est. Total Cost"
#~ msgstr ""

#~ msgid "Mark client as Inactive?"
#~ msgstr ""

#~ msgid "Change Client Status"
#~ msgstr ""

#~ msgid "Mark Inactive"
#~ msgstr ""

#~ msgid "Activate client?"
#~ msgstr ""

#~ msgid "Activate Client"
#~ msgstr ""

#~ msgid "Delete Client"
#~ msgstr ""

#~ msgid "Archived"
#~ msgstr ""

#~ msgid "Internal Notes"
#~ msgstr ""

#~ msgid "Add Note"
#~ msgstr ""

#~ msgid "Add an internal note about this client..."
#~ msgstr ""

#~ msgid "Save Note"
#~ msgstr ""

#~ msgid "edited"
#~ msgstr ""

#~ msgid "Important"
#~ msgstr ""

#~ msgid "Unmark"
#~ msgstr ""

#~ msgid "Mark Important"
#~ msgstr ""

#~ msgid ""
#~ "No notes yet. Add a note to "
#~ "keep track of important information about"
#~ " this client."
#~ msgstr ""

#~ msgid "Are you sure you want to delete this note?"
#~ msgstr ""

#~ msgid "Delete Note"
#~ msgstr ""

#~ msgid "Edited on"
#~ msgstr ""

#~ msgid "Reply"
#~ msgstr ""

#~ msgid "Write your reply..."
#~ msgstr ""

#~ msgid "Comments"
#~ msgstr ""

#~ msgid "Add Comment"
#~ msgstr ""

#~ msgid "Your Comment"
#~ msgstr ""

#~ msgid "Share your thoughts, updates, or questions..."
#~ msgstr ""

#~ msgid "You can use line breaks to format your comment."
#~ msgstr ""

#~ msgid "Add Image"
#~ msgstr ""

#~ msgid "Post Comment"
#~ msgstr ""

#~ msgid "No comments yet"
#~ msgstr ""

#~ msgid "Start the conversation by adding the first comment."
#~ msgstr ""

#~ msgid "Add First Comment"
#~ msgstr ""

#~ msgid "Edit Comment"
#~ msgstr ""

#~ msgid "Back"
#~ msgstr ""

#~ msgid "Editing comment on:"
#~ msgstr ""

#~ msgid "Originally posted on"
#~ msgstr ""

#~ msgid "Comment Content"
#~ msgstr ""

#~ msgid "Recent Activity"
#~ msgstr ""

#~ msgid "All Activities"
#~ msgstr ""

#~ msgid "Time Templates"
#~ msgstr ""

#~ msgid "No recent activity"
#~ msgstr ""

#~ msgid "Activity will appear here as you work"
#~ msgstr ""

#~ msgid "Load More"
#~ msgstr ""

#~ msgid "Failed to load activities"
#~ msgstr ""

#~ msgid "400 Bad Request"
#~ msgstr ""

#~ msgid "Invalid Request"
#~ msgstr ""

#~ msgid "The request you made is invalid or contains errors. This could be due to:"
#~ msgstr ""

#~ msgid "Missing or invalid form data"
#~ msgstr ""

#~ msgid "Malformed request parameters"
#~ msgstr ""

#~ msgid "Go to Dashboard"
#~ msgstr ""

#~ msgid "Go Back"
#~ msgstr ""

#~ msgid "403 Forbidden"
#~ msgstr ""

#~ msgid "Access Denied"
#~ msgstr ""

#~ msgid "You don't have permission to access this resource. This could be due to:"
#~ msgstr ""

#~ msgid "Insufficient privileges"
#~ msgstr ""

#~ msgid "Not logged in"
#~ msgstr ""

#~ msgid "Resource access restrictions"
#~ msgstr ""

#~ msgid "Page Not Found"
#~ msgstr ""

#~ msgid "The page you're looking for doesn't exist or has been moved."
#~ msgstr ""

#~ msgid "Server Error"
#~ msgstr ""

#~ msgid "Something went wrong on our end. Please try again later."
#~ msgstr ""

#~ msgid "Try Again"
#~ msgstr ""

#~ msgid "An error occurred while processing your request."
#~ msgstr ""

#~ msgid "Are you sure you want to delete this expense?"
#~ msgstr ""

#~ msgid "Delete Expense"
#~ msgstr ""

#~ msgid "Import/Export Data"
#~ msgstr ""

#~ msgid "Import/Export"
#~ msgstr ""

#~ msgid ""
#~ "Import data from other time trackers "
#~ "or export your data for GDPR "
#~ "compliance and backups"
#~ msgstr ""

#~ msgid "Import Data"
#~ msgstr ""

#~ msgid "CSV Import"
#~ msgstr ""

#~ msgid "Import time entries from a CSV file"
#~ msgstr ""

#~ msgid "Choose CSV File"
#~ msgstr ""

#~ msgid "Download Template"
#~ msgstr ""

#~ msgid "Import from Toggl Track"
#~ msgstr ""

#~ msgid "Import time entries from Toggl Track"
#~ msgstr ""

#~ msgid "Import from Toggl"
#~ msgstr ""

#~ msgid "Import from Harvest"
#~ msgstr ""

#~ msgid "Import time entries from Harvest"
#~ msgstr ""

#~ msgid "Restore from Backup"
#~ msgstr ""

#~ msgid "Restore data from a backup file"
#~ msgstr ""

#~ msgid "Restore Backup"
#~ msgstr ""

#~ msgid "Import History"
#~ msgstr ""

#~ msgid "Export Data"
#~ msgstr ""

#~ msgid "Full Data Export (GDPR)"
#~ msgstr ""

#~ msgid "Export all your personal data"
#~ msgstr ""

#~ msgid "Export as JSON"
#~ msgstr ""

#~ msgid "Export as ZIP"
#~ msgstr ""

#~ msgid "Filtered Export"
#~ msgstr ""

#~ msgid "Export specific data with filters"
#~ msgstr ""

#~ msgid "Export with Filters"
#~ msgstr ""

#~ msgid "Create Backup"
#~ msgstr ""

#~ msgid "Create a full database backup"
#~ msgstr ""

#~ msgid "Export History"
#~ msgstr ""

#~ msgid "API Token"
#~ msgstr ""

#~ msgid "Workspace ID"
#~ msgstr ""

#~ msgid "Import"
#~ msgstr ""

#~ msgid "Account ID"
#~ msgstr ""

#~ msgid "Create Invoice"
#~ msgstr ""

#~ msgid "Generate a new invoice for a project and client"
#~ msgstr ""

#~ msgid "Back to Invoices"
#~ msgstr ""

#~ msgid "Select a project"
#~ msgstr ""

#~ msgid "Selecting a project will auto-fill client details"
#~ msgstr ""

#~ msgid "Client Email"
#~ msgstr ""

#~ msgid "Due Date"
#~ msgstr ""

#~ msgid "Client Address"
#~ msgstr ""

#~ msgid "Tax Rate (%)"
#~ msgstr ""

#~ msgid "Terms"
#~ msgstr ""

#~ msgid "Tips"
#~ msgstr ""

#~ msgid "Choose the correct project to auto-fill client details."
#~ msgstr ""

#~ msgid "You can customize notes and terms before sending the invoice."
#~ msgstr ""

#~ msgid "Edit Invoice"
#~ msgstr ""

#~ msgid "Update invoice details, items, and terms"
#~ msgstr ""

#~ msgid "Invoice Items"
#~ msgstr ""

#~ msgid "Time-based services and hourly work"
#~ msgstr ""

#~ msgid "Add Item"
#~ msgstr ""

#~ msgid "Quantity"
#~ msgstr ""

#~ msgid "Unit Price"
#~ msgstr ""

#~ msgid "Action"
#~ msgstr ""

#~ msgid "e.g., Web Development Services"
#~ msgstr ""

#~ msgid "Remove item"
#~ msgstr ""

#~ msgid "Items Subtotal"
#~ msgstr ""

#~ msgid "Billable expenses such as travel, meals, and materials"
#~ msgstr ""

#~ msgid "Add Expense"
#~ msgstr ""

#~ msgid "Category"
#~ msgstr ""

#~ msgid "Amount"
#~ msgstr ""

#~ msgid "e.g., Travel to Client Meeting"
#~ msgstr ""

#~ msgid "Linked expense - title cannot be edited"
#~ msgstr ""

#~ msgid "Linked expense - description cannot be edited"
#~ msgstr ""

#~ msgid "Linked expense - category cannot be edited"
#~ msgstr ""

#~ msgid "Travel"
#~ msgstr ""

#~ msgid "Meals"
#~ msgstr ""

#~ msgid "Accommodation"
#~ msgstr ""

#~ msgid "Supplies"
#~ msgstr ""

#~ msgid "Software"
#~ msgstr ""

#~ msgid "Equipment"
#~ msgstr ""

#~ msgid "Services"
#~ msgstr ""

#~ msgid "Marketing"
#~ msgstr ""

#~ msgid "Training"
#~ msgstr ""

#~ msgid "Other"
#~ msgstr ""

#~ msgid "Linked expense - amount cannot be edited"
#~ msgstr ""

#~ msgid "Linked expense - date cannot be edited"
#~ msgstr ""

#~ msgid "Unlink expense from invoice"
#~ msgstr ""

#~ msgid "Expenses Subtotal"
#~ msgstr ""

#~ msgid "Extra Goods"
#~ msgstr ""

#~ msgid "Products, materials, licenses, and other goods"
#~ msgstr ""

#~ msgid "Add Good"
#~ msgstr ""

#~ msgid "Name"
#~ msgstr ""

#~ msgid "Qty"
#~ msgstr ""

#~ msgid "Price"
#~ msgstr ""

#~ msgid "SKU"
#~ msgstr ""

#~ msgid "e.g., Software License"
#~ msgstr ""

#~ msgid "Product"
#~ msgstr ""

#~ msgid "Service"
#~ msgstr ""

#~ msgid "Material"
#~ msgstr ""

#~ msgid "License"
#~ msgstr ""

#~ msgid "Remove good"
#~ msgstr ""

#~ msgid "Goods Subtotal"
#~ msgstr ""

#~ msgid "Live Preview"
#~ msgstr ""

#~ msgid "Issue Date"
#~ msgstr ""

#~ msgid "Payment"
#~ msgstr ""

#~ msgid "Currency"
#~ msgstr ""

#~ msgid "Items"
#~ msgstr ""

#~ msgid "Goods"
#~ msgstr ""

#~ msgid "Subtotal"
#~ msgstr ""

#~ msgid "Tax"
#~ msgstr ""

#~ msgid "Total"
#~ msgstr ""

#~ msgid "Amount Paid"
#~ msgstr ""

#~ msgid "Outstanding"
#~ msgstr ""

#~ msgid "Generate from Time/Costs"
#~ msgstr ""

#~ msgid "Record Payment"
#~ msgstr ""

#~ msgid "Export PDF"
#~ msgstr ""

#~ msgid "Export CSV"
#~ msgstr ""

#~ msgid "Duplicate Invoice"
#~ msgstr ""

#~ msgid "Are you sure you want to unlink this expense from the invoice?"
#~ msgstr ""

#~ msgid "Unlink Expense"
#~ msgstr ""

#~ msgid "Unlink"
#~ msgstr ""

#~ msgid "Please add at least one item, expense, or extra good to the invoice"
#~ msgstr ""

#~ msgid "Generate from Time, Costs & Goods"
#~ msgstr ""

#~ msgid ""
#~ "Select unbilled time entries, project "
#~ "costs, and extra goods to add to "
#~ "this invoice"
#~ msgstr ""

#~ msgid "Back to Edit"
#~ msgstr ""

#~ msgid "Unbilled Time Entries"
#~ msgstr ""

#~ msgid "Time Entry"
#~ msgstr ""

#~ msgid "No unbilled time entries found for this project."
#~ msgstr ""

#~ msgid "Uninvoiced Project Costs"
#~ msgstr ""

#~ msgid "No uninvoiced costs found for this project."
#~ msgstr ""

#~ msgid "Uninvoiced Billable Expenses"
#~ msgstr ""

#~ msgid "Vendor"
#~ msgstr ""

#~ msgid "No uninvoiced billable expenses found for this project."
#~ msgstr ""

#~ msgid "Project Extra Goods"
#~ msgstr ""

#~ msgid "No extra goods found for this project."
#~ msgstr ""

#~ msgid "Add Selected to Invoice"
#~ msgstr ""

#~ msgid "Selection Summary"
#~ msgstr ""

#~ msgid "Total available hours"
#~ msgstr ""

#~ msgid "Total available costs"
#~ msgstr ""

#~ msgid "Total available expenses"
#~ msgstr ""

#~ msgid "Total available goods"
#~ msgstr ""

#~ msgid "You can select multiple time entries, costs, expenses, and extra goods."
#~ msgstr ""

#~ msgid "Time entries are grouped by task or project at item creation."
#~ msgstr ""

#~ msgid "Costs and extra goods are added as individual invoice items."
#~ msgstr ""

#~ msgid "Expenses are linked to the invoice and appear in a separate section."
#~ msgstr ""

#~ msgid "Please select at least one time entry, cost, expense, or extra good"
#~ msgstr ""

#~ msgid "Delete Invoice"
#~ msgstr ""

#~ msgid "Are you sure you want to delete invoice"
#~ msgstr ""

#~ msgid ""
#~ "All invoice items, extra goods, and "
#~ "payment records associated with this "
#~ "invoice will be permanently deleted."
#~ msgstr ""

#~ msgid "Invoice"
#~ msgstr ""

#~ msgid "Website"
#~ msgstr ""

#~ msgid "Tax ID"
#~ msgstr ""

#~ msgid "INVOICE"
#~ msgstr ""

#~ msgid "Invoice #"
#~ msgstr ""

#~ msgid "Bill To"
#~ msgstr ""

#~ msgid "Quantity (Hours)"
#~ msgstr ""

#~ msgid "Total Amount"
#~ msgstr ""

#~ msgid "Generated from %(num)d time entries"
#~ msgstr ""

#~ msgid "Expense"
#~ msgstr ""

#~ msgid "Subtotal:"
#~ msgstr ""

#~ msgid "Tax (%(rate).2f%%):"
#~ msgstr ""

#~ msgid "Total Amount:"
#~ msgstr ""

#~ msgid "Notes:"
#~ msgstr ""

#~ msgid "Terms:"
#~ msgstr ""

#~ msgid "Payment Information:"
#~ msgstr ""

#~ msgid "Terms & Conditions:"
#~ msgstr ""

#~ msgid "Kanban"
#~ msgstr ""

#~ msgid "All"
#~ msgstr ""

#~ msgid "Manage Columns"
#~ msgstr ""

#~ msgid "Drag tasks between columns to update their status"
#~ msgstr ""

#~ msgid "Kanban board"
#~ msgstr ""

#~ msgid "moved to"
#~ msgstr ""

#~ msgid "No tasks in this column."
#~ msgstr ""

#~ msgid "Manage Kanban Columns"
#~ msgstr ""

#~ msgid "Customize your kanban board columns and task states"
#~ msgstr ""

#~ msgid "Add Column"
#~ msgstr ""

#~ msgid "Kanban columns list"
#~ msgstr ""

#~ msgid "Key"
#~ msgstr ""

#~ msgid "Label"
#~ msgstr ""

#~ msgid "Icon"
#~ msgstr ""

#~ msgid "Complete?"
#~ msgstr ""

#~ msgid "Drag to reorder"
#~ msgstr ""

#~ msgid "Edit column"
#~ msgstr ""

#~ msgid "Toggle active state"
#~ msgstr ""

#~ msgid "No kanban columns found. Create your first column to get started."
#~ msgstr ""

#~ msgid "Tips:"
#~ msgstr ""

#~ msgid "Drag and drop rows to reorder columns"
#~ msgstr ""

#~ msgid ""
#~ "System columns (todo, in_progress, done) "
#~ "cannot be deleted but can be "
#~ "customized"
#~ msgstr ""

#~ msgid ""
#~ "Columns marked as \"Complete\" will mark"
#~ " tasks as completed when dragged to "
#~ "that column"
#~ msgstr ""

#~ msgid ""
#~ "Inactive columns are hidden from the "
#~ "kanban board but tasks with that "
#~ "status remain accessible"
#~ msgstr ""

#~ msgid "Delete Kanban Column"
#~ msgstr ""

#~ msgid "Are you sure you want to delete the column?"
#~ msgstr ""

#~ msgid "Key:"
#~ msgstr ""

#~ msgid ""
#~ "Note: Tasks with this status will "
#~ "remain accessible but the column will "
#~ "no longer appear on the kanban board."
#~ msgstr ""

#~ msgid "Delete Column"
#~ msgstr ""

#~ msgid "Columns reordered successfully"
#~ msgstr ""

#~ msgid "Failed to reorder columns. Please try again."
#~ msgstr ""

#~ msgid "Create Kanban Column"
#~ msgstr ""

#~ msgid "Add a new column to your kanban board"
#~ msgstr ""

#~ msgid "Create Kanban Column form"
#~ msgstr ""

#~ msgid "Column Label"
#~ msgstr ""

#~ msgid "e.g., In Review, Blocked, Testing"
#~ msgstr ""

#~ msgid "The display name shown on the kanban board"
#~ msgstr ""

#~ msgid "Column Key"
#~ msgstr ""

#~ msgid "e.g., in_review, blocked, testing"
#~ msgstr ""

#~ msgid ""
#~ "Unique identifier (lowercase, no spaces, "
#~ "use underscores). Auto-generated from label"
#~ " if empty."
#~ msgstr ""

#~ msgid "Icon Class"
#~ msgstr ""

#~ msgid "Font Awesome icon class"
#~ msgstr ""

#~ msgid "Browse icons"
#~ msgstr ""

#~ msgid "Primary (Blue)"
#~ msgstr ""

#~ msgid "Secondary (Gray)"
#~ msgstr ""

#~ msgid "Success (Green)"
#~ msgstr ""

#~ msgid "Danger (Red)"
#~ msgstr ""

#~ msgid "Warning (Yellow)"
#~ msgstr ""

#~ msgid "Info (Cyan)"
#~ msgstr ""

#~ msgid "Dark"
#~ msgstr ""

#~ msgid "Bootstrap color class for styling"
#~ msgstr ""

#~ msgid "Mark as Complete State"
#~ msgstr ""

#~ msgid "Tasks moved to this column will be marked as completed"
#~ msgstr ""

#~ msgid "Create Column"
#~ msgstr ""

#~ msgid "Note:"
#~ msgstr ""

#~ msgid ""
#~ "The column will be added at the "
#~ "end of the board. You can reorder "
#~ "columns later from the management page."
#~ msgstr ""

#~ msgid "Edit Kanban Column"
#~ msgstr ""

#~ msgid "Modify column settings"
#~ msgstr ""

#~ msgid "Edit Kanban Column form"
#~ msgstr ""

#~ msgid "The key cannot be changed after creation"
#~ msgstr ""

#~ msgid "Preview"
#~ msgstr ""

#~ msgid "Inactive columns are hidden from the kanban board"
#~ msgstr ""

#~ msgid "System Column:"
#~ msgstr ""

#~ msgid ""
#~ "This is a system column. You can "
#~ "customize its appearance but cannot delete"
#~ " it."
#~ msgstr ""

#~ msgid "Professional time tracking and project management"
#~ msgstr ""

#~ msgid ""
#~ "A comprehensive web-based time tracking "
#~ "application built with Flask, featuring "
#~ "project management, client organization, task "
#~ "management, invoicing, and advanced analytics."
#~ msgstr ""

#~ msgid "Project Management"
#~ msgstr ""

#~ msgid "Invoicing"
#~ msgstr ""

#~ msgid "Smart Timers"
#~ msgstr ""

#~ msgid "Real-time tracking with idle detection and live updates"
#~ msgstr ""

#~ msgid "Client Management"
#~ msgstr ""

#~ msgid "Organize clients with contacts, rates, and project relations"
#~ msgstr ""

#~ msgid "Task System"
#~ msgstr ""

#~ msgid "Break down projects into tasks with progress tracking"
#~ msgstr ""

#~ msgid "PDF Invoices"
#~ msgstr ""

#~ msgid "Generate professional invoices from tracked time"
#~ msgstr ""

#~ msgid "Core Features"
#~ msgstr ""

#~ msgid "Start/stop timers with project and task association"
#~ msgstr ""

#~ msgid "Manual time entry with notes and tags"
#~ msgstr ""

#~ msgid "Client and project organization"
#~ msgstr ""

#~ msgid "Role-based access and user profiles"
#~ msgstr ""

#~ msgid "Advanced Features"
#~ msgstr ""

#~ msgid "Branded PDF invoicing with tax and payment tracking"
#~ msgstr ""

#~ msgid "Visual analytics and detailed reporting"
#~ msgstr ""

#~ msgid "REST API for integrations"
#~ msgstr ""

#~ msgid "PWA capabilities and mobile-friendly UI"
#~ msgstr ""

#~ msgid "Platform Support"
#~ msgstr ""

#~ msgid "Web Application"
#~ msgstr ""

#~ msgid "Desktop browsers (Chrome, Firefox, Safari, Edge)"
#~ msgstr ""

#~ msgid "Mobile responsive design"
#~ msgstr ""

#~ msgid "Progressive Web App (PWA)"
#~ msgstr ""

#~ msgid "Touch-friendly tablet interface"
#~ msgstr ""

#~ msgid "Operating Systems"
#~ msgstr ""

#~ msgid "Windows, macOS, Linux"
#~ msgstr ""

#~ msgid "Android and iOS (browser)"
#~ msgstr ""

#~ msgid "Raspberry Pi support"
#~ msgstr ""

#~ msgid "Dockerized deployment"
#~ msgstr ""

#~ msgid "Database Support"
#~ msgstr ""

#~ msgid "PostgreSQL (recommended)"
#~ msgstr ""

#~ msgid "SQLite (dev/test)"
#~ msgstr ""

#~ msgid "Automatic migrations with Flask-Migrate"
#~ msgstr ""

#~ msgid "Backup and restoration tools"
#~ msgstr ""

#~ msgid "Technical Specifications"
#~ msgstr ""

#~ msgid "Technology Stack"
#~ msgstr ""

#~ msgid "Backend"
#~ msgstr ""

#~ msgid "Frontend"
#~ msgstr ""

#~ msgid "Database"
#~ msgstr ""

#~ msgid "Deployment"
#~ msgstr ""

#~ msgid "Key Capabilities"
#~ msgstr ""

#~ msgid "Real-time"
#~ msgstr ""

#~ msgid "i18n"
#~ msgstr ""

#~ msgid "Security"
#~ msgstr ""

#~ msgid "Mobile"
#~ msgstr ""

#~ msgid "Open Source & Community"
#~ msgstr ""

#~ msgid "Open Source Benefits"
#~ msgstr ""

#~ msgid "Full source code available on GitHub"
#~ msgstr ""

#~ msgid "Licensed under GPL v3.0"
#~ msgstr ""

#~ msgid "Community-driven development"
#~ msgstr ""

#~ msgid "Transparent issue tracking and bug reports"
#~ msgstr ""

#~ msgid "Deployment Options"
#~ msgstr ""

#~ msgid "Docker images (GHCR)"
#~ msgstr ""

#~ msgid "Self-hosted deployment with full control"
#~ msgstr ""

#~ msgid "Cloud-ready with Compose configs"
#~ msgstr ""

#~ msgid "View on GitHub"
#~ msgstr ""

#~ msgid "Support Development"
#~ msgstr ""

#~ msgid "Getting Help & Resources"
#~ msgstr ""

#~ msgid "Documentation"
#~ msgstr ""

#~ msgid "Step-by-step guides for all features."
#~ msgstr ""

#~ msgid "View Help"
#~ msgstr ""

#~ msgid "System Information"
#~ msgstr ""

#~ msgid "Status, versions, and configuration details."
#~ msgstr ""

#~ msgid "Admin access required"
#~ msgstr ""

#~ msgid "Community Support"
#~ msgstr ""

#~ msgid "Report issues, request features, contribute."
#~ msgstr ""

#~ msgid "GitHub Issues"
#~ msgstr ""

#~ msgid "Here's a quick overview of your work."
#~ msgstr ""

#~ msgid "Timer"
#~ msgstr "Minuteur"

#~ msgid "No active timer."
#~ msgstr "Aucun minuteur actif."

#~ msgid "Tags"
#~ msgstr "Étiquettes"

#~ msgid "Duplicate entry"
#~ msgstr "Entrée dupliquée"

#~ msgid "No recent entries found."
#~ msgstr "Aucune entrée récente trouvée."

#~ msgid "Weekly Goal"
#~ msgstr "Objectif Hebdomadaire"

#~ msgid "Days Left"
#~ msgstr "Jours Restants"

#~ msgid "Need"
#~ msgstr "Besoin"

#~ msgid "to reach goal"
#~ msgstr "pour atteindre l'objectif"

#~ msgid "No Weekly Goal"
#~ msgstr "Aucun Objectif Hebdomadaire"

#~ msgid "Set a weekly time goal to track your progress"
#~ msgstr "Définissez un objectif de temps hebdomadaire pour suivre vos progrès"

#~ msgid "Create Goal"
#~ msgstr "Créer un Objectif"

#~ msgid "Top Projects (30 days)"
#~ msgstr "Meilleurs Projets (30 jours)"

#~ msgid "No activity in the last 30 days."
#~ msgstr "Aucune activité au cours des 30 derniers jours."

#~ msgid "Task (optional)"
#~ msgstr "Tâche (optionnel)"

#~ msgid "Notes (optional)"
#~ msgstr "Notes (optionnel)"

#~ msgid "Or use a template"
#~ msgstr "Ou utiliser un modèle"

#~ msgid "View all templates"
#~ msgstr "Voir tous les modèles"

#~ msgid "Start"
#~ msgstr "Démarrer"

#~ msgid "Complete documentation and user guide"
#~ msgstr "Documentation complète et guide utilisateur"

#~ msgid "Quick Navigation"
#~ msgstr "Navigation Rapide"

#~ msgid "Filter sections..."
#~ msgstr "Filtrer les sections..."

#~ msgid "Quick Start"
#~ msgstr "Démarrage Rapide"

#~ msgid "Task Management"
#~ msgstr "Gestion des Tâches"

#~ msgid "Reports & Analytics"
#~ msgstr "Rapports & Analyses"

#~ msgid "Productivity Features"
#~ msgstr "Fonctionnalités de Productivité"

#~ msgid "Admin Features"
#~ msgstr "Fonctionnalités Admin"

#~ msgid "Mobile Usage"
#~ msgstr "Utilisation Mobile"

#~ msgid "Troubleshooting"
#~ msgstr "Dépannage"

#~ msgid "TimeTracker Help Center"
#~ msgstr "Centre d'Aide TimeTracker"

#~ msgid "Everything you need to know to get the most out of TimeTracker"
#~ msgstr "Tout ce que vous devez savoir pour tirer le meilleur parti de TimeTracker"

#~ msgid "Start Tracking Time"
#~ msgstr "Commencer le Suivi du Temps"

#~ msgid "View Projects"
#~ msgstr "Voir les Projets"

#~ msgid "Generate Reports"
#~ msgstr "Générer des Rapports"

#~ msgid "Quick Start Guide"
#~ msgstr "Guide de Démarrage Rapide"

#~ msgid "For New Users"
#~ msgstr "Pour les Nouveaux Utilisateurs"

#~ msgid "Log in with your username (no password required)"
#~ msgstr "Connectez-vous avec votre nom d'utilisateur (aucun mot de passe requis)"

#~ msgid "Explore the dashboard to see your overview"
#~ msgstr "Explorez le tableau de bord pour voir votre aperçu"

#~ msgid "Start your first timer on an existing project"
#~ msgstr "Démarrez votre premier minuteur sur un projet existant"

#~ msgid "View your time entries in reports"
#~ msgstr "Consultez vos entrées de temps dans les rapports"

#~ msgid "For Administrators"
#~ msgstr "Pour les Administrateurs"

#~ msgid "Set up clients in the Client Management section"
#~ msgstr "Configurez les clients dans la section Gestion des Clients"

#~ msgid "Create projects and assign them to clients"
#~ msgstr "Créez des projets et assignez-les aux clients"

#~ msgid "Configure system settings (timezone, currency, etc.)"
#~ msgstr "Configurez les paramètres système (fuseau horaire, devise, etc.)"

#~ msgid "Manage users and permissions"
#~ msgstr "Gérez les utilisateurs et les permissions"

#~ msgid "Pro Tip:"
#~ msgstr "Astuce Pro :"

#~ msgid ""
#~ "Use the mobile-friendly interface to "
#~ "track time on the go. The timer "
#~ "continues running even if you close "
#~ "your browser!"
#~ msgstr ""
#~ "Utilisez l'interface mobile pour suivre le"
#~ " temps en déplacement. Le minuteur "
#~ "continue de fonctionner même si vous "
#~ "fermez votre navigateur !"

#~ msgid "Real-time tracking with automatic idle detection and WebSocket updates"
#~ msgstr ""
#~ "Suivi en temps réel avec détection "
#~ "automatique d'inactivité et mises à jour"
#~ " WebSocket"

#~ msgid "Manual Entry"
#~ msgstr "Saisie Manuelle"

#~ msgid "Log time manually with custom start and end times"
#~ msgstr ""
#~ "Enregistrer le temps manuellement avec des"
#~ " heures de début et de fin "
#~ "personnalisées"

#~ msgid "Starting a Timer"
#~ msgstr "Démarrer un Minuteur"

#~ msgid "Navigate to the Timer page or dashboard"
#~ msgstr "Naviguez vers la page Minuteur ou le tableau de bord"

#~ msgid "Select a project from the dropdown"
#~ msgstr "Sélectionnez un projet dans le menu déroulant"

#~ msgid "Optionally select a task for more detailed tracking"
#~ msgstr "Sélectionnez optionnellement une tâche pour un suivi plus détaillé"

#~ msgid "Add notes about what you're working on (optional)"
#~ msgstr "Ajoutez des notes sur ce sur quoi vous travaillez (optionnel)"

#~ msgid "Add tags separated by commas (optional)"
#~ msgstr "Ajoutez des étiquettes séparées par des virgules (optionnel)"

#~ msgid "Click \"Start Timer\""
#~ msgstr "Cliquez sur \"Démarrer le Minuteur\""

#~ msgid "Timer Features"
#~ msgstr "Fonctionnalités du Minuteur"

#~ msgid "Real-time duration display"
#~ msgstr "Affichage de la durée en temps réel"

#~ msgid "Continues running if browser closes"
#~ msgstr "Continue de fonctionner si le navigateur se ferme"

#~ msgid "Automatic idle detection (configurable)"
#~ msgstr "Détection automatique d'inactivité (configurable)"

#~ msgid "One active timer per user (configurable)"
#~ msgstr "Un minuteur actif par utilisateur (configurable)"

#~ msgid "WebSocket live updates"
#~ msgstr "Mises à jour en direct WebSocket"

#~ msgid "Manual Time Entry"
#~ msgstr ""

#~ msgid ""
#~ "Create time entries manually when you "
#~ "need to record time spent away from"
#~ " the computer or adjust existing "
#~ "entries."
#~ msgstr ""

#~ msgid "Required Information"
#~ msgstr ""

#~ msgid "Project selection"
#~ msgstr ""

#~ msgid "Start date and time"
#~ msgstr ""

#~ msgid "End date and time"
#~ msgstr ""

#~ msgid "Optional Information"
#~ msgstr ""

#~ msgid "Task assignment"
#~ msgstr ""

#~ msgid "Description/notes"
#~ msgstr ""

#~ msgid "Tags for categorization"
#~ msgstr ""

#~ msgid "Billable status override"
#~ msgstr ""

#~ msgid "Advanced Time Entry Features"
#~ msgstr ""

#~ msgid ""
#~ "Create multiple time entries for "
#~ "consecutive days with the same project "
#~ "and duration. Perfect for regular work "
#~ "patterns."
#~ msgstr ""

#~ msgid ""
#~ "Save frequently used time entries as "
#~ "templates for quick reuse. Saves project,"
#~ " task, and notes."
#~ msgstr ""

#~ msgid "Calendar View"
#~ msgstr ""

#~ msgid ""
#~ "Visualize your time entries on a "
#~ "calendar. Drag-and-drop to reschedule "
#~ "or click dates to add entries."
#~ msgstr ""

#~ msgid "Project Information"
#~ msgstr ""

#~ msgid "Descriptive project name"
#~ msgstr ""

#~ msgid "Associated client organization"
#~ msgstr ""

#~ msgid "Project details and scope"
#~ msgstr ""

#~ msgid "Active, completed, or archived"
#~ msgstr ""

#~ msgid "Billing Information"
#~ msgstr ""

#~ msgid "Whether time should be tracked for billing"
#~ msgstr ""

#~ msgid "Rate for billable time calculations"
#~ msgstr ""

#~ msgid "Billing Reference"
#~ msgstr ""

#~ msgid "PO number or billing code"
#~ msgstr ""

#~ msgid "Project Operations"
#~ msgstr ""

#~ msgid "Create new projects with client relationships"
#~ msgstr ""

#~ msgid "Edit existing projects to update details"
#~ msgstr ""

#~ msgid "Archive projects to hide from timers (preserves data)"
#~ msgstr ""

#~ msgid "Delete projects (removes all associated time entries)"
#~ msgstr ""

#~ msgid "Best Practices"
#~ msgstr ""

#~ msgid "Use descriptive project names"
#~ msgstr ""

#~ msgid "Set accurate hourly rates for billing"
#~ msgstr ""

#~ msgid "Archive instead of delete when possible"
#~ msgstr ""

#~ msgid "Use billing references for external tracking"
#~ msgstr ""

#~ msgid ""
#~ "The client management system helps organize"
#~ " your work by client organizations, "
#~ "preventing errors and streamlining project "
#~ "creation."
#~ msgstr ""

#~ msgid "Client Information"
#~ msgstr ""

#~ msgid "Organization Name"
#~ msgstr ""

#~ msgid "Company or client name"
#~ msgstr ""

#~ msgid "Primary contact details"
#~ msgstr ""

#~ msgid "Email & Phone"
#~ msgstr ""

#~ msgid "Contact information"
#~ msgstr ""

#~ msgid "Business address"
#~ msgstr ""

#~ msgid "Benefits"
#~ msgstr ""

#~ msgid "Dropdown selection prevents typos"
#~ msgstr ""

#~ msgid "Default rates auto-populate projects"
#~ msgstr ""

#~ msgid "Consistent client naming"
#~ msgstr ""

#~ msgid "Easier project organization"
#~ msgstr ""

#~ msgid "Project Count"
#~ msgstr ""

#~ msgid "Total and active projects"
#~ msgstr ""

#~ msgid "Total hours worked"
#~ msgstr ""

#~ msgid "Cost Estimation"
#~ msgstr ""

#~ msgid "Estimated billing amounts"
#~ msgstr ""

#~ msgid ""
#~ "Break down projects into manageable tasks"
#~ " with detailed tracking and progress "
#~ "monitoring."
#~ msgstr ""

#~ msgid "Task Properties"
#~ msgstr ""

#~ msgid "Name & Description"
#~ msgstr ""

#~ msgid "Clear task identification"
#~ msgstr ""

#~ msgid "Priority Levels"
#~ msgstr ""

#~ msgid "Low, Medium, High, Urgent"
#~ msgstr ""

#~ msgid "Due Dates"
#~ msgstr ""

#~ msgid "Deadline tracking"
#~ msgstr ""

#~ msgid "Assignment"
#~ msgstr ""

#~ msgid "Task ownership"
#~ msgstr ""

#~ msgid "Status Tracking"
#~ msgstr ""

#~ msgid "To Do - Not started"
#~ msgstr ""

#~ msgid "In Progress - Currently working"
#~ msgstr ""

#~ msgid "Review - Ready for review"
#~ msgstr ""

#~ msgid "Done - Completed"
#~ msgstr ""

#~ msgid "Cancelled - Not needed"
#~ msgstr ""

#~ msgid "Time Tracking Features"
#~ msgstr ""

#~ msgid "Start timers directly from tasks"
#~ msgstr ""

#~ msgid "Link time entries to specific tasks"
#~ msgstr ""

#~ msgid "Track estimated vs actual hours"
#~ msgstr ""

#~ msgid "Monitor task progress automatically"
#~ msgstr ""

#~ msgid "Task Views"
#~ msgstr ""

#~ msgid "My Tasks - Your assigned tasks"
#~ msgstr ""

#~ msgid "All Tasks - Complete task list"
#~ msgstr ""

#~ msgid "Overdue Tasks - Past due items"
#~ msgstr ""

#~ msgid "Project Tasks - Tasks within projects"
#~ msgstr ""

#~ msgid "Collaboration Features"
#~ msgstr ""

#~ msgid "Task Comments - Threaded discussions on tasks"
#~ msgstr ""

#~ msgid "Markdown Support - Rich formatting in descriptions"
#~ msgstr ""

#~ msgid "User Mentions - Tag team members (if enabled)"
#~ msgstr ""

#~ msgid "File Attachments - Attach files to tasks (if enabled)"
#~ msgstr ""

#~ msgid "Markdown Formatting"
#~ msgstr ""

#~ msgid "Task and project descriptions support Markdown:"
#~ msgstr ""

#~ msgid "**Bold**, *Italic*, ~~Strikethrough~~"
#~ msgstr ""

#~ msgid "# Headings, - Lists, [Links](url)"
#~ msgstr ""

#~ msgid "```code blocks```, tables, images"
#~ msgstr ""

#~ msgid ""
#~ "Visualize your workflow with a drag-"
#~ "and-drop Kanban board for intuitive task"
#~ " management."
#~ msgstr ""

#~ msgid "Board Features"
#~ msgstr ""

#~ msgid "Customizable columns matching task statuses"
#~ msgstr ""

#~ msgid "Drag-and-drop tasks between columns"
#~ msgstr ""

#~ msgid "Filter by project, user, or priority"
#~ msgstr ""

#~ msgid "Quick search across all tasks"
#~ msgstr ""

#~ msgid "Using the Kanban Board"
#~ msgstr ""

#~ msgid "Access from the Tasks menu or project page"
#~ msgstr ""

#~ msgid "Drag tasks to different columns to change status"
#~ msgstr ""

#~ msgid "Click on a task card to view/edit details"
#~ msgstr ""

#~ msgid "Use filters to focus on specific work"
#~ msgstr ""

#~ msgid ""
#~ "The Kanban board is perfect for "
#~ "sprint planning and daily standups. Each"
#~ " column represents a stage in your "
#~ "workflow!"
#~ msgstr ""

#~ msgid "Expense Tracking"
#~ msgstr ""

#~ msgid ""
#~ "Track business expenses, manage receipts, "
#~ "and handle reimbursements efficiently."
#~ msgstr ""

#~ msgid "Expense Features"
#~ msgstr ""

#~ msgid "Categorize expenses (travel, meals, supplies, etc.)"
#~ msgstr ""

#~ msgid "Attach receipt images and documents"
#~ msgstr ""

#~ msgid "Track amounts, tax, and payment methods"
#~ msgstr ""

#~ msgid "Approval workflow for expense requests"
#~ msgstr ""

#~ msgid "Billing & Reimbursement"
#~ msgstr ""

#~ msgid "Mark expenses as billable to clients"
#~ msgstr ""

#~ msgid "Include expenses in client invoices"
#~ msgstr ""

#~ msgid "Track reimbursement status"
#~ msgstr ""

#~ msgid "Link expenses to specific projects"
#~ msgstr ""

#~ msgid "Record Expense"
#~ msgstr ""

#~ msgid "Enter details and upload receipt"
#~ msgstr ""

#~ msgid "Submit for Approval"
#~ msgstr ""

#~ msgid "Admin reviews and approves"
#~ msgstr ""

#~ msgid "Invoice/Reimburse"
#~ msgstr ""

#~ msgid "Add to invoice or reimburse"
#~ msgstr ""

#~ msgid "Track Payment"
#~ msgstr ""

#~ msgid "Monitor reimbursement status"
#~ msgstr ""

#~ msgid "Professional Invoicing"
#~ msgstr ""

#~ msgid "Professional PDF generation"
#~ msgstr ""

#~ msgid "Company branding and logos"
#~ msgstr ""

#~ msgid "Automatic invoice numbering"
#~ msgstr ""

#~ msgid "Tax calculations"
#~ msgstr ""

#~ msgid "Time Integration"
#~ msgstr ""

#~ msgid "Generate from time entries"
#~ msgstr ""

#~ msgid "Smart grouping by task/project"
#~ msgstr ""

#~ msgid "Prevent double-billing"
#~ msgstr ""

#~ msgid "Use project hourly rates"
#~ msgstr ""

#~ msgid "Set up client and project details"
#~ msgstr ""

#~ msgid "Add Items"
#~ msgstr ""

#~ msgid "Generate from time or add manually"
#~ msgstr ""

#~ msgid "Review & Send"
#~ msgstr ""

#~ msgid "Export PDF and update status"
#~ msgstr ""

#~ msgid "Monitor status and payments"
#~ msgstr ""

#~ msgid "Standard Reports"
#~ msgstr ""

#~ msgid "Project Report - Time breakdown by project"
#~ msgstr ""

#~ msgid "User Report - Individual performance metrics"
#~ msgstr ""

#~ msgid "Summary Report - Key metrics and trends"
#~ msgstr ""

#~ msgid "Time Entry Report - Detailed time logs"
#~ msgstr ""

#~ msgid "Export Options"
#~ msgstr ""

#~ msgid "CSV Export - For external analysis"
#~ msgstr ""

#~ msgid "Configurable delimiters"
#~ msgstr ""

#~ msgid "Custom date ranges"
#~ msgstr ""

#~ msgid "Filtered data export"
#~ msgstr ""

#~ msgid "Filter Options"
#~ msgstr ""

#~ msgid "Date Range - Custom start and end dates"
#~ msgstr ""

#~ msgid "Project - Filter by specific projects"
#~ msgstr ""

#~ msgid "User - Filter by team members"
#~ msgstr ""

#~ msgid "Client - Filter by client organization"
#~ msgstr ""

#~ msgid "Saved Filters - Save frequently used filters"
#~ msgstr ""

#~ msgid "Visual Analytics"
#~ msgstr ""

#~ msgid "Interactive bar charts"
#~ msgstr ""

#~ msgid "Time distribution pie charts"
#~ msgstr ""

#~ msgid "Trend analysis over time"
#~ msgstr ""

#~ msgid "Mobile-optimized charts"
#~ msgstr ""

#~ msgid ""
#~ "Use Saved Filters to quickly access "
#~ "your most common report views. Save "
#~ "filters for weekly reviews, monthly "
#~ "billing, or specific project tracking!"
#~ msgstr ""

#~ msgid ""
#~ "Boost your efficiency with keyboard "
#~ "shortcuts, command palette, and automation "
#~ "features."
#~ msgstr ""

#~ msgid "Access any feature instantly without leaving the keyboard"
#~ msgstr ""

#~ msgid "Opening the Command Palette"
#~ msgstr ""

#~ msgid "Press the question mark key"
#~ msgstr ""

#~ msgid "Quick search"
#~ msgstr ""

#~ msgid "Go to Projects"
#~ msgstr ""

#~ msgid "Go to Tasks"
#~ msgstr ""

#~ msgid "New Time Entry"
#~ msgstr ""

#~ msgid ""
#~ "Navigate faster with keyboard-driven "
#~ "commands. Press Shift+? to see all "
#~ "shortcuts."
#~ msgstr ""

#~ msgid "Global Search"
#~ msgstr ""

#~ msgid ""
#~ "Quickly find projects, tasks, clients, and"
#~ " time entries from anywhere in the "
#~ "app."
#~ msgstr ""

#~ msgid "Email Notifications"
#~ msgstr ""

#~ msgid ""
#~ "Get notified about task assignments, "
#~ "overdue invoices, and weekly summaries via"
#~ " email."
#~ msgstr ""

#~ msgid "Administrator Features"
#~ msgstr ""

#~ msgid "User Management"
#~ msgstr ""

#~ msgid "Create new users with flexible authentication"
#~ msgstr ""

#~ msgid "Assign custom roles with specific permissions"
#~ msgstr ""

#~ msgid "Activate/deactivate user accounts"
#~ msgstr ""

#~ msgid "View user statistics and activity"
#~ msgstr ""

#~ msgid "Generate API tokens for users"
#~ msgstr ""

#~ msgid "Access Control"
#~ msgstr ""

#~ msgid "Granular role-based permissions system"
#~ msgstr ""

#~ msgid "Custom roles with fine-grained access"
#~ msgstr ""

#~ msgid "User data access controls"
#~ msgstr ""

#~ msgid "OIDC/SSO integration (Azure AD, Authelia, etc.)"
#~ msgstr ""

#~ msgid "API token management for integrations"
#~ msgstr ""

#~ msgid "Authentication Methods"
#~ msgstr ""

#~ msgid "Username-only (simple internal use)"
#~ msgstr ""

#~ msgid "OIDC/SSO (enterprise authentication)"
#~ msgstr ""

#~ msgid "Both methods simultaneously"
#~ msgstr ""

#~ msgid "Automatic role assignment via groups"
#~ msgstr ""

#~ msgid "Role & Permission Management"
#~ msgstr ""

#~ msgid "Create custom roles beyond Admin/User"
#~ msgstr ""

#~ msgid "Set granular permissions per feature"
#~ msgstr ""

#~ msgid "Assign users to multiple roles"
#~ msgstr ""

#~ msgid "View and manage all permissions"
#~ msgstr ""

#~ msgid "General Settings"
#~ msgstr ""

#~ msgid "Timezone and locale settings"
#~ msgstr ""

#~ msgid "Currency configuration"
#~ msgstr ""

#~ msgid "Time rounding rules"
#~ msgstr ""

#~ msgid "Self-registration settings"
#~ msgstr ""

#~ msgid "Timer Settings"
#~ msgstr ""

#~ msgid "Idle timeout configuration"
#~ msgstr ""

#~ msgid "Single active timer mode"
#~ msgstr ""

#~ msgid "Timer display preferences"
#~ msgstr ""

#~ msgid "Notification settings"
#~ msgstr ""

#~ msgid "Database Management"
#~ msgstr ""

#~ msgid "Create manual database backups"
#~ msgstr ""

#~ msgid "View database migration status"
#~ msgstr ""

#~ msgid "Monitor database performance"
#~ msgstr ""

#~ msgid "Clean up old data and logs"
#~ msgstr ""

#~ msgid "System Monitoring"
#~ msgstr ""

#~ msgid "View system information and health"
#~ msgstr ""

#~ msgid "Monitor application performance"
#~ msgstr ""

#~ msgid "Review system logs and errors"
#~ msgstr ""

#~ msgid "Mobile-Friendly Features"
#~ msgstr ""

#~ msgid "Optimized for phones and tablets"
#~ msgstr ""

#~ msgid "Touch-friendly interface"
#~ msgstr ""

#~ msgid "Adaptive layouts for all screen sizes"
#~ msgstr ""

#~ msgid "High contrast for outdoor visibility"
#~ msgstr ""

#~ msgid "Mobile Navigation"
#~ msgstr ""

#~ msgid "Bottom tab bar for easy access"
#~ msgstr ""

#~ msgid "Quick access to dashboard"
#~ msgstr ""

#~ msgid "One-tap time logging"
#~ msgstr ""

#~ msgid "Mobile-optimized reports"
#~ msgstr ""

#~ msgid "Installation"
#~ msgstr ""

#~ msgid "Open TimeTracker in your mobile browser"
#~ msgstr ""

#~ msgid "Look for \"Add to Home Screen\" option"
#~ msgstr ""

#~ msgid "Follow browser-specific installation prompts"
#~ msgstr ""

#~ msgid "Launch from your home screen like a native app"
#~ msgstr ""

#~ msgid "PWA Benefits"
#~ msgstr ""

#~ msgid "Offline capability for basic functions"
#~ msgstr ""

#~ msgid "Faster loading times"
#~ msgstr ""

#~ msgid "Native app-like experience"
#~ msgstr ""

#~ msgid "Push notifications (where supported)"
#~ msgstr ""

#~ msgid "Troubleshooting & FAQ"
#~ msgstr ""

#~ msgid "What happens if I forget to stop my timer?"
#~ msgstr ""

#~ msgid ""
#~ "The timer will continue running until "
#~ "you stop it manually. You can see "
#~ "your active timer on the dashboard "
#~ "and timer page. The timer persists "
#~ "even if you close your browser or "
#~ "restart your device. If idle detection "
#~ "is enabled, the timer may pause "
#~ "automatically after the configured timeout "
#~ "period."
#~ msgstr ""

#~ msgid "Can I edit time entries after they're created?"
#~ msgstr ""

#~ msgid ""
#~ "Yes, you can edit any time entry "
#~ "by clicking the edit button in the"
#~ " time entry list. You can modify "
#~ "the project, start/end times, notes, tags,"
#~ " billable status, and task assignment. "
#~ "Admins can edit all time entries, "
#~ "while regular users can only edit "
#~ "their own entries."
#~ msgstr ""

#~ msgid "How do I track time for multiple projects?"
#~ msgstr ""

#~ msgid ""
#~ "By default, you can only have one "
#~ "active timer at a time. To switch "
#~ "projects, stop your current timer and "
#~ "start a new one for the different "
#~ "project. Alternatively, you can create "
#~ "manual time entries for past work or"
#~ " configure the system to allow multiple"
#~ " active timers (admin setting)."
#~ msgstr ""

#~ msgid "How do I export my time data?"
#~ msgstr ""

#~ msgid ""
#~ "Go to the Reports page and use "
#~ "the \"Export CSV\" feature. You can "
#~ "apply filters to export specific data, "
#~ "or export all time entries. The CSV"
#~ " file includes all time entry details"
#~ " and can be opened in Excel or "
#~ "other spreadsheet applications. You can "
#~ "also configure the delimiter for different"
#~ " regional standards."
#~ msgstr ""

#~ msgid "What's the difference between billable and non-billable time?"
#~ msgstr ""

#~ msgid ""
#~ "Billable time is tracked for client "
#~ "billing purposes and can have an "
#~ "hourly rate associated with it. Non-"
#~ "billable time is for internal work "
#~ "that doesn't get charged to clients. "
#~ "You can mark individual time entries "
#~ "as billable or non-billable, and "
#~ "projects can have default billable "
#~ "settings. This distinction is crucial for"
#~ " accurate invoicing and profitability "
#~ "analysis."
#~ msgstr ""

#~ msgid "How do I create an invoice from my time entries?"
#~ msgstr ""

#~ msgid ""
#~ "Navigate to Invoices → Create Invoice, "
#~ "set up the client and project "
#~ "details, then use \"Generate from Time "
#~ "Entries\" to automatically create invoice "
#~ "items from your tracked time. You can"
#~ " filter by date range and project, "
#~ "and the system will group time "
#~ "entries intelligently. Review the generated "
#~ "items and export as a professional "
#~ "PDF."
#~ msgstr ""

#~ msgid "Can I use TimeTracker on my mobile device?"
#~ msgstr ""

#~ msgid ""
#~ "Yes! TimeTracker is fully responsive and"
#~ " works great on mobile devices. You "
#~ "can install it as a Progressive Web"
#~ " App (PWA) for a native-like "
#~ "experience. The mobile interface includes a"
#~ " bottom tab bar for easy navigation "
#~ "and touch-optimized controls for time "
#~ "tracking on the go."
#~ msgstr ""

#~ msgid "How do I use the command palette and keyboard shortcuts?"
#~ msgstr ""

#~ msgid ""
#~ "Press the question mark key (?) to"
#~ " open the command palette. From there,"
#~ " you can type to search for any"
#~ " action or navigation target. Use "
#~ "keyboard sequences like \"g d\" for "
#~ "Dashboard, \"g p\" for Projects, or "
#~ "\"n e\" for New Entry. Press Shift+?"
#~ " to see all available shortcuts. Press"
#~ " Ctrl+K (or Cmd+K on Mac) for "
#~ "quick search."
#~ msgstr ""

#~ msgid "How do I create bulk time entries for multiple days?"
#~ msgstr ""

#~ msgid ""
#~ "Navigate to Work → Bulk Time Entry."
#~ " Select your project, choose a date "
#~ "range, set your daily start and end"
#~ " times, and optionally skip weekends. "
#~ "The system will create identical time "
#~ "entries for each day in the range."
#~ " This is perfect for logging regular "
#~ "work patterns or filling in past time"
#~ " when you worked consistent hours."
#~ msgstr ""

#~ msgid "What are time entry templates and how do I use them?"
#~ msgstr ""

#~ msgid ""
#~ "Time entry templates let you save "
#~ "frequently used time entry configurations. "
#~ "When creating a manual time entry, "
#~ "check \"Save as Template\" to save "
#~ "the project, task, and notes. Later, "
#~ "when creating new entries, you can "
#~ "select a template to quickly fill in"
#~ " these details. Templates are personal "
#~ "and only visible to you."
#~ msgstr ""

#~ msgid "How do I track expenses and add them to invoices?"
#~ msgstr ""

#~ msgid ""
#~ "Go to Expenses → New Expense to "
#~ "record business expenses. Upload receipt "
#~ "images, categorize the expense, and mark"
#~ " it as billable if needed. When "
#~ "creating invoices, you can include these"
#~ " expenses as line items. Expenses "
#~ "support approval workflows, reimbursement "
#~ "tracking, and can be linked to "
#~ "specific projects."
#~ msgstr ""

#~ msgid "Can I use Markdown in descriptions?"
#~ msgstr ""

#~ msgid ""
#~ "Yes! Project and task descriptions support"
#~ " full Markdown formatting. You can use"
#~ " bold, italic, headings, lists, links, "
#~ "code blocks, tables, and images. This "
#~ "allows you to create rich, well-"
#~ "formatted documentation directly in your "
#~ "projects and tasks. The Markdown editor "
#~ "includes a preview mode and supports "
#~ "dark theme."
#~ msgstr ""

#~ msgid "Where can I get additional help?"
#~ msgstr ""

#~ msgid "This help page covers most common questions and features."
#~ msgstr ""

#~ msgid "Report issues and request features on"
#~ msgstr ""

#~ msgid ""
#~ "As an admin, you can access "
#~ "additional system information and diagnostics "
#~ "in the"
#~ msgstr ""

#~ msgid "section."
#~ msgstr ""

#~ msgid "Still Need Help?"
#~ msgstr ""

#~ msgid "Can't find what you're looking for? Here are additional resources:"
#~ msgstr ""

#~ msgid "GitHub Repository"
#~ msgstr ""

#~ msgid "Report Issue"
#~ msgstr ""

#~ msgid "Search Results"
#~ msgstr ""

#~ msgid "Search notes or tags"
#~ msgstr ""

#~ msgid "Results"
#~ msgstr ""

#~ msgid "End"
#~ msgstr ""

#~ msgid ""
#~ "Are you sure you want to delete "
#~ "this time entry? This action cannot "
#~ "be undone."
#~ msgstr ""

#~ msgid "Previous"
#~ msgstr ""

#~ msgid "Page"
#~ msgstr ""

#~ msgid "of"
#~ msgstr ""

#~ msgid "Next"
#~ msgstr ""

#~ msgid "No results found"
#~ msgstr ""

#~ msgid "Try a different query or check your spelling."
#~ msgstr ""

#~ msgid "Kanban board columns"
#~ msgstr ""

#~ msgid "Edit swimlane"
#~ msgstr ""

#~ msgid "Column"
#~ msgstr ""

#~ msgid "Add Extra Good"
#~ msgstr ""

#~ msgid "Add a product or service to"
#~ msgstr ""

#~ msgid "Back to Project"
#~ msgstr ""

#~ msgid "SKU/Product Code"
#~ msgstr ""

#~ msgid "What happens when you archive a project?"
#~ msgstr ""

#~ msgid "The project will be hidden from active project lists"
#~ msgstr ""

#~ msgid "No new time entries can be added to this project"
#~ msgstr ""

#~ msgid "Existing data and time entries are preserved"
#~ msgstr ""

#~ msgid "You can unarchive the project later if needed"
#~ msgstr ""

#~ msgid "Reason for Archiving"
#~ msgstr ""

#~ msgid "Optional"
#~ msgstr ""

#~ msgid "e.g., Project completed, Client contract ended, Project cancelled, etc."
#~ msgstr ""

#~ msgid "Adding a reason helps with project organization and future reference."
#~ msgstr ""

#~ msgid "Quick Select"
#~ msgstr ""

#~ msgid "Project completed successfully"
#~ msgstr ""

#~ msgid "Project Completed"
#~ msgstr ""

#~ msgid "Client contract ended"
#~ msgstr ""

#~ msgid "Contract Ended"
#~ msgstr ""

#~ msgid "Project cancelled by client"
#~ msgstr ""

#~ msgid "Project on hold indefinitely"
#~ msgstr ""

#~ msgid "On Hold"
#~ msgstr ""

#~ msgid "Maintenance period ended"
#~ msgstr ""

#~ msgid "Maintenance Ended"
#~ msgstr ""

#~ msgid "Archive Project"
#~ msgstr ""

#~ msgid "Create Project"
#~ msgstr ""

#~ msgid "Set up a new project to organize your work and track time effectively"
#~ msgstr ""

#~ msgid "Back to Projects"
#~ msgstr ""

#~ msgid "Project Name"
#~ msgstr ""

#~ msgid "Enter a descriptive project name"
#~ msgstr ""

#~ msgid "Choose a clear, descriptive name that explains the project scope"
#~ msgstr ""

#~ msgid "Project Code"
#~ msgstr ""

#~ msgid "Short code, e.g., ABC"
#~ msgstr ""

#~ msgid "Optional: Short tag shown on Kanban cards"
#~ msgstr ""

#~ msgid "Select a client..."
#~ msgstr ""

#~ msgid "Create new client"
#~ msgstr ""

#~ msgid ""
#~ "Provide detailed information about the "
#~ "project, objectives, and deliverables..."
#~ msgstr ""

#~ msgid ""
#~ "Optional: Add context, objectives, or "
#~ "specific requirements for the project"
#~ msgstr ""

#~ msgid "Billable Project"
#~ msgstr ""

#~ msgid "Enable billing for this project"
#~ msgstr ""

#~ msgid "Leave empty for non-billable projects"
#~ msgstr ""

#~ msgid "PO number, contract reference, etc."
#~ msgstr ""

#~ msgid "Optional: Add a reference number or identifier for billing purposes"
#~ msgstr ""

#~ msgid "Budget Amount"
#~ msgstr ""

#~ msgid "e.g. 10000.00"
#~ msgstr ""

#~ msgid "Optional: Set a total project budget to monitor spend"
#~ msgstr ""

#~ msgid "Alert Threshold (%)"
#~ msgstr ""

#~ msgid "Notify when consumed budget exceeds this threshold"
#~ msgstr ""

#~ msgid "Project Creation Tips"
#~ msgstr ""

#~ msgid "Clear Naming"
#~ msgstr ""

#~ msgid "Use descriptive names that clearly indicate the project's purpose"
#~ msgstr ""

#~ msgid "Billing Setup"
#~ msgstr ""

#~ msgid "Set appropriate hourly rates based on project complexity and client budget"
#~ msgstr ""

#~ msgid "Detailed Description"
#~ msgstr ""

#~ msgid "Include project objectives, deliverables, and key requirements"
#~ msgstr ""

#~ msgid "Client Selection"
#~ msgstr ""

#~ msgid "Choose the right client to ensure proper project organization"
#~ msgstr ""

#~ msgid "Creating..."
#~ msgstr ""

#~ msgid "Could not create client. Please try again."
#~ msgstr ""

#~ msgid "Client created"
#~ msgstr ""

#~ msgid "Network error while creating client"
#~ msgstr ""

#~ msgid "Project Dashboard & Analytics"
#~ msgstr ""

#~ msgid "Budget Analysis"
#~ msgstr ""

#~ msgid "All Time"
#~ msgstr ""

#~ msgid "Last 7 Days"
#~ msgstr ""

#~ msgid "Last 30 Days"
#~ msgstr ""

#~ msgid "Last 3 Months"
#~ msgstr ""

#~ msgid "Last Year"
#~ msgstr ""

#~ msgid "estimated"
#~ msgstr ""

#~ msgid "Budget Used"
#~ msgstr ""

#~ msgid "of budget"
#~ msgstr ""

#~ msgid "Tasks Complete"
#~ msgstr ""

#~ msgid "completion"
#~ msgstr ""

#~ msgid "Team Members"
#~ msgstr ""

#~ msgid "contributing"
#~ msgstr ""

#~ msgid "Budget vs. Actual"
#~ msgstr ""

#~ msgid "No budget set for this project"
#~ msgstr ""

#~ msgid "Task Status Distribution"
#~ msgstr ""

#~ msgid "No tasks created yet"
#~ msgstr ""

#~ msgid "Team Member Contributions"
#~ msgstr ""

#~ msgid "No time entries recorded yet"
#~ msgstr ""

#~ msgid "Time Tracking Timeline"
#~ msgstr ""

#~ msgid "Select a time period to view timeline"
#~ msgstr ""

#~ msgid "Team Member Details"
#~ msgstr ""

#~ msgid "entries"
#~ msgstr ""

#~ msgid "tasks"
#~ msgstr ""

#~ msgid "No team members have logged time yet"
#~ msgstr ""

#~ msgid "Attention Required"
#~ msgstr ""

#~ msgid "task(s) are overdue"
#~ msgstr ""

#~ msgid "Edit Project"
#~ msgstr ""

#~ msgid "Edit Extra Good"
#~ msgstr ""

#~ msgid "Manage products and services for this project"
#~ msgstr ""

#~ msgid "Total Goods"
#~ msgstr ""

#~ msgid "Billable Amount"
#~ msgstr ""

#~ msgid "Categories"
#~ msgstr ""

#~ msgid "Invoiced"
#~ msgstr ""

#~ msgid "Non-billable"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this extra good?"
#~ msgstr ""

#~ msgid "Delete Extra Good"
#~ msgstr ""

#~ msgid "No extra goods found for this project"
#~ msgstr ""

#~ msgid "Add Your First Good"
#~ msgstr ""

#~ msgid "Breakdown by Category"
#~ msgstr ""

#~ msgid "item(s)"
#~ msgstr ""

#~ msgid "Mark project as Inactive?"
#~ msgstr ""

#~ msgid "Change Project Status"
#~ msgstr ""

#~ msgid "Activate project?"
#~ msgstr ""

#~ msgid "Activate Project"
#~ msgstr ""

#~ msgid "Archive"
#~ msgstr ""

#~ msgid "Unarchive project?"
#~ msgstr ""

#~ msgid "Unarchive Project"
#~ msgstr ""

#~ msgid "Unarchive"
#~ msgstr ""

#~ msgid "Delete Project"
#~ msgstr ""

#~ msgid "Archive Information"
#~ msgstr ""

#~ msgid "Archived on:"
#~ msgstr ""

#~ msgid "Archived by:"
#~ msgstr ""

#~ msgid "Reason:"
#~ msgstr ""

#~ msgid "Budget Overview"
#~ msgstr ""

#~ msgid "Over"
#~ msgstr ""

#~ msgid "View Full Budget Analysis"
#~ msgstr ""

#~ msgid "Tasks for this project"
#~ msgstr ""

#~ msgid "Due"
#~ msgstr ""

#~ msgid "No tasks for this project."
#~ msgstr ""

#~ msgid "Are you sure you want to delete this filter?"
#~ msgstr ""

#~ msgid "Delete Filter"
#~ msgstr ""

#~ msgid "This will reset all keyboard shortcuts to their default values. Continue?"
#~ msgstr ""

#~ msgid "Reset to Defaults"
#~ msgstr ""

#~ msgid "Edit Task"
#~ msgstr ""

#~ msgid "Overdue"
#~ msgstr ""

#~ msgid "Failed to update status"
#~ msgstr ""

#~ msgid "Failed to update task status"
#~ msgstr ""

#~ msgid "Kanban column created"
#~ msgstr ""

#~ msgid "Kanban column deleted"
#~ msgstr ""

#~ msgid "Kanban columns reordered"
#~ msgstr ""

#~ msgid "Kanban column visibility changed"
#~ msgstr ""

#~ msgid "Kanban columns updated"
#~ msgstr ""

#~ msgid "Update"
#~ msgstr ""

#~ msgid "Failed to refresh kanban columns"
#~ msgstr ""

#~ msgid "Loading task details..."
#~ msgstr ""

#~ msgid "Assigned To"
#~ msgstr ""

#~ msgid "Tracked"
#~ msgstr ""

#~ msgid "Estimated"
#~ msgstr ""

#~ msgid "View Full Details"
#~ msgstr ""

#~ msgid "Create Task"
#~ msgstr ""

#~ msgid ""
#~ "Add a new task to your project "
#~ "to break down work into manageable "
#~ "components"
#~ msgstr ""

#~ msgid "Back to Tasks"
#~ msgstr ""

#~ msgid "Task Name"
#~ msgstr ""

#~ msgid "Enter a descriptive task name"
#~ msgstr ""

#~ msgid "Choose a clear, descriptive name that explains what needs to be done"
#~ msgstr ""

#~ msgid ""
#~ "Provide detailed information about the "
#~ "task, requirements, and any specific "
#~ "instructions..."
#~ msgstr ""

#~ msgid "Optional: Add context, requirements, or specific instructions for the task"
#~ msgstr ""

#~ msgid "Select the project this task belongs to"
#~ msgstr ""

#~ msgid "Initial Status"
#~ msgstr ""

#~ msgid "Optional: Set a deadline for this task"
#~ msgstr ""

#~ msgid "Estimated Hours"
#~ msgstr ""

#~ msgid "Optional: Estimate how long this task will take"
#~ msgstr ""

#~ msgid "Assign To"
#~ msgstr ""

#~ msgid "Unassigned"
#~ msgstr ""

#~ msgid "Optional: Assign this task to a team member"
#~ msgstr ""

#~ msgid "Task Creation Tips"
#~ msgstr ""

#~ msgid "Use action verbs and be specific about what needs to be done"
#~ msgstr ""

#~ msgid "Realistic Estimates"
#~ msgstr ""

#~ msgid "Consider complexity and dependencies when estimating time"
#~ msgstr ""

#~ msgid "Set Deadlines"
#~ msgstr ""

#~ msgid "Due dates help prioritize work and track progress"
#~ msgstr ""

#~ msgid "Priority Matters"
#~ msgstr ""

#~ msgid "Use priority levels to help team members focus on what's most important"
#~ msgstr ""

#~ msgid "Update task details and settings for \"%(task)s\""
#~ msgstr ""

#~ msgid "Back to Task"
#~ msgstr ""

#~ msgid "Task Information"
#~ msgstr ""

#~ msgid "Update Task"
#~ msgstr ""

#~ msgid "Estimate used"
#~ msgstr ""

#~ msgid "Actual"
#~ msgstr ""

#~ msgid "Current Task Info"
#~ msgstr ""

#~ msgid "Current Status"
#~ msgstr ""

#~ msgid "Current Priority"
#~ msgstr ""

#~ msgid "Currently Assigned To"
#~ msgstr ""

#~ msgid "Current Due Date"
#~ msgstr ""

#~ msgid "Current Estimate"
#~ msgstr ""

#~ msgid "hours"
#~ msgstr ""

#~ msgid "Actual Hours"
#~ msgstr ""

#~ msgid "Updated"
#~ msgstr ""

#~ msgid "Started"
#~ msgstr ""

#~ msgid "View Task"
#~ msgstr ""

#~ msgid "Edit Tips"
#~ msgstr ""

#~ msgid "Status Changes"
#~ msgstr ""

#~ msgid "Changing status may affect time tracking and progress calculations"
#~ msgstr ""

#~ msgid "Due Date Updates"
#~ msgstr ""

#~ msgid "Consider team workload when adjusting deadlines"
#~ msgstr ""

#~ msgid "Assignment Changes"
#~ msgstr ""

#~ msgid "Notify team members when reassigning tasks"
#~ msgstr ""

#~ msgid "Updating..."
#~ msgstr ""

#~ msgid "Are you sure you want to delete the task \"{name}\"?"
#~ msgstr ""

#~ msgid ""
#~ "Cannot delete task \"{name}\" because it"
#~ " has time entries. Please delete the "
#~ "time entries first."
#~ msgstr ""

#~ msgid "Delete Task"
#~ msgstr ""

#~ msgid "Hide Filters"
#~ msgstr ""

#~ msgid "Show Filters"
#~ msgstr ""

#~ msgid "My Tasks"
#~ msgstr ""

#~ msgid "Tasks assigned to or created by you"
#~ msgstr ""

#~ msgid "Filter My Tasks"
#~ msgstr ""

#~ msgid "Task Type"
#~ msgstr ""

#~ msgid "All Types"
#~ msgstr ""

#~ msgid "Assigned to Me"
#~ msgstr ""

#~ msgid "Created by Me"
#~ msgstr ""

#~ msgid "Show overdue only"
#~ msgstr ""

#~ msgid "Apply Filters"
#~ msgstr ""

#~ msgid "Clear"
#~ msgstr ""

#~ msgid "Created by me"
#~ msgstr ""

#~ msgid "View Details"
#~ msgstr ""

#~ msgid "My tasks pagination"
#~ msgstr ""

#~ msgid "..."
#~ msgstr ""

#~ msgid "No tasks found"
#~ msgstr ""

#~ msgid "You don't have any tasks assigned to you or created by you yet."
#~ msgstr ""

#~ msgid "Create Your First Task"
#~ msgstr ""

#~ msgid "View All Tasks"
#~ msgstr ""

#~ msgid "Overdue Tasks"
#~ msgstr ""

#~ msgid "Requires immediate attention"
#~ msgstr ""

#~ msgid "items"
#~ msgstr ""

#~ msgid "Overdue Tasks Detected"
#~ msgstr ""

#~ msgid "There are"
#~ msgstr ""

#~ msgid "overdue tasks that require immediate attention."
#~ msgstr ""

#~ msgid "Please review and update these tasks to prevent further delays."
#~ msgstr ""

#~ msgid "Due:"
#~ msgstr ""

#~ msgid "Est:"
#~ msgstr ""

#~ msgid "Actual:"
#~ msgstr ""

#~ msgid "No Overdue Tasks!"
#~ msgstr ""

#~ msgid "Great job! All tasks are currently on schedule."
#~ msgstr ""

#~ msgid "Enter new due date (YYYY-MM-DD):"
#~ msgstr ""

#~ msgid "Are you sure you want to extend the due date to"
#~ msgstr ""

#~ msgid "for all overdue tasks?"
#~ msgstr ""

#~ msgid "Bulk due date update feature coming soon!"
#~ msgstr ""

#~ msgid "Enter new priority (low/medium/high/urgent):"
#~ msgstr ""

#~ msgid "Are you sure you want to set priority to"
#~ msgstr ""

#~ msgid "Bulk priority update feature coming soon!"
#~ msgstr ""

#~ msgid "Invalid priority. Please use: low, medium, high, or urgent"
#~ msgstr ""

#~ msgid "Start task and mark as In Progress?"
#~ msgstr ""

#~ msgid "Change Task Status"
#~ msgstr ""

#~ msgid "Mark task as To Do?"
#~ msgstr ""

#~ msgid "Pause"
#~ msgstr ""

#~ msgid "Mark task as Done?"
#~ msgstr ""

#~ msgid "Complete Task"
#~ msgstr ""

#~ msgid "Complete"
#~ msgstr ""

#~ msgid "Reopen task to Review?"
#~ msgstr ""

#~ msgid "Reopen Task"
#~ msgstr ""

#~ msgid "Reopen"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this template?"
#~ msgstr ""

#~ msgid "Delete Template"
#~ msgstr ""

#~ msgid "Settings"
#~ msgstr ""

#~ msgid "No project"
#~ msgstr ""

#~ msgid "Member Since"
#~ msgstr ""

#~ msgid "Recent Time Entries"
#~ msgstr ""

#~ msgid "In progress"
#~ msgstr ""

#~ msgid "View all time entries"
#~ msgstr ""

#~ msgid "No recent time entries"
#~ msgstr ""

#~ msgid "Manage your account settings and preferences"
#~ msgstr ""

#~ msgid "Profile Information"
#~ msgstr ""

#~ msgid "Username cannot be changed"
#~ msgstr ""

#~ msgid "Email Address"
#~ msgstr ""

#~ msgid "Required for email notifications"
#~ msgstr ""

#~ msgid "Notification Preferences"
#~ msgstr ""

#~ msgid "Enable Email Notifications"
#~ msgstr ""

#~ msgid "Master switch for all email notifications"
#~ msgstr ""

#~ msgid "Overdue Invoice Notifications"
#~ msgstr ""

#~ msgid "Task Assignment Notifications"
#~ msgstr ""

#~ msgid "Comment & Mention Notifications"
#~ msgstr ""

#~ msgid "Weekly Time Summary Email"
#~ msgstr ""

#~ msgid "Display Preferences"
#~ msgstr ""

#~ msgid "System Default"
#~ msgstr ""

#~ msgid "Light"
#~ msgstr ""

#~ msgid "Time Rounding Preferences"
#~ msgstr ""

#~ msgid ""
#~ "Configure how your time entries are "
#~ "rounded. This affects how durations are "
#~ "calculated when you stop timers."
#~ msgstr ""

#~ msgid "Enable Time Rounding"
#~ msgstr ""

#~ msgid "Round time entries to configured intervals"
#~ msgstr ""

#~ msgid "Rounding Interval"
#~ msgstr ""

#~ msgid "Time entries will be rounded to this interval"
#~ msgstr ""

#~ msgid "Rounding Method"
#~ msgstr ""

#~ msgid "Overtime Settings"
#~ msgstr ""

#~ msgid ""
#~ "Set your standard working hours per "
#~ "day. Any time worked beyond this will"
#~ " be counted as overtime."
#~ msgstr ""

#~ msgid "Standard Hours Per Day"
#~ msgstr ""

#~ msgid "Typically 8 hours for a full-time job"
#~ msgstr ""

#~ msgid "How it works"
#~ msgstr ""

#~ msgid ""
#~ "If you work more than your standard"
#~ " hours in a day, the extra time"
#~ " will be tracked as overtime in "
#~ "reports and analytics."
#~ msgstr ""

#~ msgid "Regional Settings"
#~ msgstr ""

#~ msgid "Timezone"
#~ msgstr ""

#~ msgid "Date Format"
#~ msgstr ""

#~ msgid "Time Format"
#~ msgstr ""

#~ msgid "Week Starts On"
#~ msgstr ""

#~ msgid "Sunday"
#~ msgstr ""

#~ msgid "Monday"
#~ msgstr ""

#~ msgid "Saturday"
#~ msgstr ""

#~ msgid "Save Settings"
#~ msgstr ""

#~ msgid "Time rounding is disabled. All times will be recorded exactly as tracked."
#~ msgstr ""

#~ msgid "No rounding - times will be recorded exactly as tracked."
#~ msgstr ""

#~ msgid "Actual time:"
#~ msgstr ""

#~ msgid "Rounded:"
#~ msgstr ""

#~ msgid "With "
#~ msgstr ""

#~ msgid " minute intervals"
#~ msgstr ""

#~ msgid "Create Weekly Goal"
#~ msgstr ""

#~ msgid "Create Weekly Time Goal"
#~ msgstr ""

#~ msgid "Set a target for hours to work this week"
#~ msgstr ""

#~ msgid "Target Hours"
#~ msgstr ""

#~ msgid "How many hours do you want to work this week?"
#~ msgstr ""

#~ msgid "Week Start Date"
#~ msgstr ""

#~ msgid "Leave blank to use current week (starting Monday)"
#~ msgstr ""

#~ msgid "Optional notes about your goal..."
#~ msgstr ""

#~ msgid "Quick Presets"
#~ msgstr ""

#~ msgid "Tips for Setting Goals"
#~ msgstr ""

#~ msgid "Be realistic: Consider holidays, meetings, and other commitments"
#~ msgstr ""

#~ msgid "Start conservative: You can always adjust your goal later"
#~ msgstr ""

#~ msgid "Track progress: Check your dashboard regularly to stay on track"
#~ msgstr ""

#~ msgid "Typical full-time: 40 hours per week (8 hours/day, 5 days)"
#~ msgstr ""

#~ msgid "Edit Weekly Goal"
#~ msgstr ""

#~ msgid "Edit Weekly Time Goal"
#~ msgstr ""

#~ msgid "Week Period"
#~ msgstr ""

#~ msgid "Current Progress"
#~ msgstr ""

#~ msgid "Failed"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this goal?"
#~ msgstr ""

#~ msgid "Delete Goal"
#~ msgstr ""

#~ msgid "Weekly Time Goals"
#~ msgstr ""

#~ msgid "Set and track your weekly hour targets"
#~ msgstr ""

#~ msgid "New Goal"
#~ msgstr ""

#~ msgid "Total Goals"
#~ msgstr ""

#~ msgid "Success Rate"
#~ msgstr ""

#~ msgid "Current Week Goal"
#~ msgstr ""

#~ msgid "Remaining Hours"
#~ msgstr ""

#~ msgid "Days Remaining"
#~ msgstr ""

#~ msgid "Avg Hours/Day Needed"
#~ msgstr ""

#~ msgid "Edit Goal"
#~ msgstr ""

#~ msgid "No goal set for this week"
#~ msgstr ""

#~ msgid "Create a weekly time goal to start tracking your progress"
#~ msgstr ""

#~ msgid "Goal History"
#~ msgstr ""

#~ msgid "Target"
#~ msgstr ""

#~ msgid "Weekly Goal Details"
#~ msgstr ""

#~ msgid "Daily Breakdown"
#~ msgstr ""

#~ msgid "Time Entries This Week"
#~ msgstr ""

#~ msgid "No Project"
#~ msgstr ""

#~ msgid "No time entries recorded for this week yet"
#~ msgstr ""

#~ msgid "Draft"
#~ msgstr ""

#~ msgid "Sent"
#~ msgstr ""

#~ msgid "Paid"
#~ msgstr ""

#~ msgid "Unpaid"
#~ msgstr ""

#~ msgid "Partially Paid"
#~ msgstr ""

#~ msgid "Fully Paid"
#~ msgstr ""

#~ msgid "Overpaid"
#~ msgstr ""

#~ msgid "Cash"
#~ msgstr ""

#~ msgid "Check"
#~ msgstr ""

#~ msgid "Bank Transfer"
#~ msgstr ""

#~ msgid "Credit Card"
#~ msgstr ""

#~ msgid "Debit Card"
#~ msgstr ""

#~ msgid "PayPal"
#~ msgstr ""

#~ msgid "Stripe"
#~ msgstr ""

#~ msgid "Company Card"
#~ msgstr ""

#~ msgid "Pending"
#~ msgstr ""

#~ msgid "Approved"
#~ msgstr ""

#~ msgid "Rejected"
#~ msgstr ""

#~ msgid "Reimbursed"
#~ msgstr ""

#~ msgid "Processing"
#~ msgstr ""

#~ msgid "Partial"
#~ msgstr ""

#~ msgid "80% Budget Warning"
#~ msgstr ""

#~ msgid "Budget Limit Reached"
#~ msgstr ""

#~ msgid "Info"
#~ msgstr ""

#~ msgid "Invoice #: %(num)s"
#~ msgstr ""

#~ msgid "Issue Date: %(date)s"
#~ msgstr ""

#~ msgid "Due Date: %(date)s"
#~ msgstr ""

#~ msgid "Please log in to access this page"
#~ msgstr ""

#~ msgid "PDF Invoice Designer"
#~ msgstr ""

#~ msgid "Visual Invoice Designer"
#~ msgstr ""

#~ msgid "Drag and drop elements to design your invoice layout"
#~ msgstr ""

#~ msgid "How to use:"
#~ msgstr ""

#~ msgid ""
#~ "Click elements from the left sidebar "
#~ "to add them to the canvas. Click "
#~ "elements to select and customize them "
#~ "in the properties panel. Use the "
#~ "alignment tools and keyboard shortcuts for"
#~ " faster editing."
#~ msgstr ""

#~ msgid "Keyboard Shortcuts:"
#~ msgstr ""

#~ msgid "Clear Canvas"
#~ msgstr ""

#~ msgid "Generate Preview"
#~ msgstr ""

#~ msgid "Save Design"
#~ msgstr ""

#~ msgid "View Code"
#~ msgstr ""

#~ msgid "Toolbox"
#~ msgstr ""

#~ msgid "Search elements & variables..."
#~ msgstr ""

#~ msgid "Elements"
#~ msgstr ""

#~ msgid "Variables"
#~ msgstr ""

#~ msgid "Basic Elements"
#~ msgstr ""

#~ msgid "Custom Text"
#~ msgstr ""

#~ msgid "Text"
#~ msgstr ""

#~ msgid "Heading"
#~ msgstr ""

#~ msgid "Line"
#~ msgstr ""

#~ msgid "Rectangle"
#~ msgstr ""

#~ msgid "Circle"
#~ msgstr ""

#~ msgid "Company Info"
#~ msgstr ""

#~ msgid "Company Details"
#~ msgstr ""

#~ msgid "Invoice Data"
#~ msgstr ""

#~ msgid "Invoice Date"
#~ msgstr ""

#~ msgid "Client Info"
#~ msgstr ""

#~ msgid "Items Table"
#~ msgstr ""

#~ msgid "Payment & Project"
#~ msgstr ""

#~ msgid "Payment Date"
#~ msgstr ""

#~ msgid "Payment Method"
#~ msgstr ""

#~ msgid "Client Phone"
#~ msgstr ""

#~ msgid "Advanced"
#~ msgstr ""

#~ msgid "QR Code"
#~ msgstr ""

#~ msgid "Barcode"
#~ msgstr ""

#~ msgid "Page Number"
#~ msgstr ""

#~ msgid "Current Date"
#~ msgstr ""

#~ msgid "Watermark"
#~ msgstr ""

#~ msgid "Bank Info"
#~ msgstr ""

#~ msgid "Invoice Fields"
#~ msgstr ""

#~ msgid "Invoice number"
#~ msgstr ""

#~ msgid "Invoice status (draft/sent/paid/overdue)"
#~ msgstr ""

#~ msgid "Issue date"
#~ msgstr ""

#~ msgid "Due date"
#~ msgstr ""

#~ msgid "Subtotal amount"
#~ msgstr ""

#~ msgid "Tax rate (%)"
#~ msgstr ""

#~ msgid "Tax amount"
#~ msgstr ""

#~ msgid "Total amount"
#~ msgstr ""

#~ msgid "Currency code (EUR, USD, etc)"
#~ msgstr ""

#~ msgid "Invoice notes"
#~ msgstr ""

#~ msgid "Terms & conditions"
#~ msgstr ""

#~ msgid "Client Fields"
#~ msgstr ""

#~ msgid "Client company name"
#~ msgstr ""

#~ msgid "Client email address"
#~ msgstr ""

#~ msgid "Client full address"
#~ msgstr ""

#~ msgid "Client contact person"
#~ msgstr ""

#~ msgid "Client phone number"
#~ msgstr ""

#~ msgid "Payment Fields"
#~ msgstr ""

#~ msgid "Payment status"
#~ msgstr ""

#~ msgid "Payment date"
#~ msgstr ""

#~ msgid "Payment method"
#~ msgstr ""

#~ msgid "Payment reference number"
#~ msgstr ""

#~ msgid "Amount paid"
#~ msgstr ""

#~ msgid "Outstanding amount"
#~ msgstr ""

#~ msgid "Payment notes"
#~ msgstr ""

#~ msgid "Project Fields"
#~ msgstr ""

#~ msgid "Project name"
#~ msgstr ""

#~ msgid "Project code"
#~ msgstr ""

#~ msgid "Project description"
#~ msgstr ""

#~ msgid "Project billing reference"
#~ msgstr ""

#~ msgid "Company/Settings Fields"
#~ msgstr ""

#~ msgid "Your company name"
#~ msgstr ""

#~ msgid "Your company address"
#~ msgstr ""

#~ msgid "Your company email"
#~ msgstr ""

#~ msgid "Your company phone"
#~ msgstr ""

#~ msgid "Your company website"
#~ msgstr ""

#~ msgid "Your tax ID number"
#~ msgstr ""

#~ msgid "Your bank account info"
#~ msgstr ""

#~ msgid "Default invoice terms"
#~ msgstr ""

#~ msgid "Default invoice notes"
#~ msgstr ""

#~ msgid "Date/Time Fields"
#~ msgstr ""

#~ msgid "Current date"
#~ msgstr ""

#~ msgid "Invoice creation date"
#~ msgstr ""

#~ msgid "Invoice last update date"
#~ msgstr ""

#~ msgid "Invoice Items Loop"
#~ msgstr ""

#~ msgid "Loop through invoice items"
#~ msgstr ""

#~ msgid "Item description"
#~ msgstr ""

#~ msgid "Item quantity"
#~ msgstr ""

#~ msgid "Item unit price"
#~ msgstr ""

#~ msgid "Item total amount"
#~ msgstr ""

#~ msgid "End loop"
#~ msgstr ""

#~ msgid "Design Canvas"
#~ msgstr ""

#~ msgid "Zoom In"
#~ msgstr ""

#~ msgid "Zoom Out"
#~ msgstr ""

#~ msgid "Delete Selected"
#~ msgstr ""

#~ msgid "Properties"
#~ msgstr ""

#~ msgid "Select an element to edit its properties"
#~ msgstr ""

#~ msgid "Generating..."
#~ msgstr ""

#~ msgid "Generated Code"
#~ msgstr ""

#~ msgid "Clear all elements?"
#~ msgstr ""

#~ msgid "Reset to defaults?"
#~ msgstr ""

#~ msgid "Reset PDF Layout"
#~ msgstr ""

#~ msgid "Danger Operation"
#~ msgstr ""

#~ msgid "Upload Backup Archive (.zip)"
#~ msgstr ""

#~ msgid ""
#~ "Restoring a backup will overwrite your "
#~ "current database and files. Ensure you "
#~ "have a recent backup before proceeding."
#~ msgstr ""

#~ msgid "Status:"
#~ msgstr ""

#~ msgid "Backup Archive (.zip)"
#~ msgstr ""

#~ msgid "Select a .zip archive previously created via the Backup action."
#~ msgstr ""

#~ msgid "Restore"
#~ msgstr ""

#~ msgid "Safety Tips"
#~ msgstr ""

#~ msgid "Verify the backup archive integrity before restoring."
#~ msgstr ""

#~ msgid "Ensure no active writes are occurring during restore."
#~ msgstr ""

#~ msgid "Keep a copy of the current data in case you need to roll back."
#~ msgstr ""

#~ msgid "After restore, review settings and re-run migrations if required."
#~ msgstr ""

#~ msgid "Add Cost"
#~ msgstr ""

#~ msgid "Add Cost to Project"
#~ msgstr ""

#~ msgid "e.g., Travel expenses to client site"
#~ msgstr ""

#~ msgid "Brief description of the cost"
#~ msgstr ""

#~ msgid "Select category"
#~ msgstr ""

#~ msgid "Materials"
#~ msgstr ""

#~ msgid "Software/Licenses"
#~ msgstr ""

#~ msgid "Additional details about this cost"
#~ msgstr ""

#~ msgid "Billable to client"
#~ msgstr ""

#~ msgid "If checked, this cost will be included in invoices"
#~ msgstr ""

#~ msgid "Edit Cost"
#~ msgstr ""

#~ msgid "This cost has been invoiced. Changes may affect existing invoices."
#~ msgstr ""

#~ msgid "Update Cost"
#~ msgstr ""

#~ msgid "Single Entry"
#~ msgstr ""

#~ msgid "Create multiple time entries for consecutive days"
#~ msgstr ""

#~ msgid "Bulk Entry Form"
#~ msgstr ""

#~ msgid "Select the project to log time for"
#~ msgstr ""

#~ msgid "Tasks load after selecting a project"
#~ msgstr ""

#~ msgid "Date Range"
#~ msgstr ""

#~ msgid "Skip weekends (Saturday & Sunday)"
#~ msgstr ""

#~ msgid "Entries will be created for these dates"
#~ msgstr ""

#~ msgid "Same start time for all days"
#~ msgstr ""

#~ msgid "Same end time for all days"
#~ msgstr ""

#~ msgid "What did you work on? (same notes for all entries)"
#~ msgstr ""

#~ msgid "tag1, tag2, tag3"
#~ msgstr ""

#~ msgid "Separate tags with commas (same for all entries)"
#~ msgstr ""

#~ msgid "Include in invoices"
#~ msgstr ""

#~ msgid "Create Entries"
#~ msgstr ""

#~ msgid "Bulk Entry Tips"
#~ msgstr ""

#~ msgid ""
#~ "Select start and end dates. Entries "
#~ "will be created for each day in "
#~ "the range."
#~ msgstr ""

#~ msgid "Skip Weekends"
#~ msgstr ""

#~ msgid "Enable to automatically skip Saturdays and Sundays from the date range."
#~ msgstr ""

#~ msgid "Same Time Daily"
#~ msgstr ""

#~ msgid "All entries will use the same start and end time each day."
#~ msgstr ""

#~ msgid "Conflict Check"
#~ msgstr ""

#~ msgid "System will check for existing time entries and prevent overlaps."
#~ msgstr ""

#~ msgid "No task"
#~ msgstr ""

#~ msgid "Total days"
#~ msgstr ""

#~ msgid "Weekdays only"
#~ msgstr ""

#~ msgid "Total hours"
#~ msgstr ""

#~ msgid "Entries will be created for"
#~ msgstr ""

#~ msgid "Agenda"
#~ msgstr ""

#~ msgid "iCal Format"
#~ msgstr ""

#~ msgid "CSV Format"
#~ msgstr ""

#~ msgid "All Tasks"
#~ msgstr ""

#~ msgid "Filter by tags..."
#~ msgstr ""

#~ msgid "Show billable entries only"
#~ msgstr ""

#~ msgid "Billable Only"
#~ msgstr ""

#~ msgid "Assign to project for new events..."
#~ msgstr ""

#~ msgid "Total Hours:"
#~ msgstr ""

#~ msgid "Colors assigned by project"
#~ msgstr ""

#~ msgid "Create Time Entry"
#~ msgstr ""

#~ msgid "Select a project..."
#~ msgstr ""

#~ msgid "Comma-separated tags"
#~ msgstr ""

#~ msgid "Create"
#~ msgstr ""

#~ msgid "Time Entry Details"
#~ msgstr ""

#~ msgid "Duplicate"
#~ msgstr ""

#~ msgid "Recurring Time Blocks"
#~ msgstr ""

#~ msgid "Manage your recurring time entry templates."
#~ msgstr ""

#~ msgid "New Recurring Block"
#~ msgstr ""

#~ msgid "Jump to Today"
#~ msgstr ""

#~ msgid "Next Week/Month"
#~ msgstr ""

#~ msgid "Previous Week/Month"
#~ msgstr ""

#~ msgid "Navigate Days"
#~ msgstr ""

#~ msgid "Views"
#~ msgstr ""

#~ msgid "Day View"
#~ msgstr ""

#~ msgid "Week View"
#~ msgstr ""

#~ msgid "Month View"
#~ msgstr ""

#~ msgid "Agenda View"
#~ msgstr ""

#~ msgid "Create New Entry"
#~ msgstr ""

#~ msgid "Focus Filter"
#~ msgstr ""

#~ msgid "Clear All Filters"
#~ msgstr ""

#~ msgid "Close Modal"
#~ msgstr ""

#~ msgid "Show This Help"
#~ msgstr ""

#~ msgid "Got it!"
#~ msgstr ""

#~ msgid "Failed to load events"
#~ msgstr ""

#~ msgid "Please select a project for new entries"
#~ msgstr ""

#~ msgid "Please select a project first"
#~ msgstr ""

#~ msgid "Showing billable entries only"
#~ msgstr ""

#~ msgid "Entry created successfully"
#~ msgstr ""

#~ msgid "Failed to create entry"
#~ msgstr ""

#~ msgid "Entry updated"
#~ msgstr ""

#~ msgid "Failed to update entry"
#~ msgstr ""

#~ msgid "Source"
#~ msgstr ""

#~ msgid "Automatic Timer"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this entry?"
#~ msgstr ""

#~ msgid "Entry deleted"
#~ msgstr ""

#~ msgid "Failed to delete entry"
#~ msgstr ""

#~ msgid "Export started"
#~ msgstr ""

#~ msgid "No recurring blocks yet"
#~ msgstr ""

#~ msgid "Unknown Project"
#~ msgstr ""

#~ msgid "Failed to load recurring blocks"
#~ msgstr ""

#~ msgid "No events in this period"
#~ msgstr ""

#~ msgid "Failed to load agenda view"
#~ msgstr ""

#~ msgid "Failed to load event details"
#~ msgstr ""

#~ msgid "Are you sure you want to delete this recurring block?"
#~ msgstr ""

#~ msgid "Delete Recurring Block"
#~ msgstr ""

#~ msgid "Recurring block deleted"
#~ msgstr ""

#~ msgid "Failed to delete recurring block"
#~ msgstr ""

#~ msgid "Enter new start time (YYYY-MM-DD HH:MM):"
#~ msgstr ""

#~ msgid "Entry duplicated successfully"
#~ msgstr ""

#~ msgid "Failed to duplicate entry"
#~ msgstr ""

#~ msgid "Jumped to today"
#~ msgstr ""

#~ msgid "💡 Press ? to see keyboard shortcuts"
#~ msgstr ""

#~ msgid "Edit Time Entry"
#~ msgstr ""

#~ msgid "These updates will modify this time entry permanently."
#~ msgstr ""

#~ msgid "Confirm Changes"
#~ msgstr ""

#~ msgid "Confirm & Save"
#~ msgstr ""

#~ msgid "Admin Mode"
#~ msgstr ""

#~ msgid "Admin Mode:"
#~ msgstr ""

#~ msgid ""
#~ "You can edit all fields of this "
#~ "time entry, including project, task, "
#~ "start/end times, and source."
#~ msgstr ""

#~ msgid "Select the project this time entry belongs to"
#~ msgstr ""

#~ msgid "Task (Optional)"
#~ msgstr ""

#~ msgid "Select a specific task within the project"
#~ msgstr ""

#~ msgid "When the work started"
#~ msgstr ""

#~ msgid "Time the work started"
#~ msgstr ""

#~ msgid "When the work ended (leave empty if still running)"
#~ msgstr ""

#~ msgid "Time the work ended"
#~ msgstr ""

#~ msgid "Manual"
#~ msgstr ""

#~ msgid "Automatic"
#~ msgstr ""

#~ msgid "How this entry was created"
#~ msgstr ""

#~ msgid "Describe what you worked on"
#~ msgstr ""

#~ msgid "Separate tags with commas"
#~ msgstr ""

#~ msgid "Project:"
#~ msgstr ""

#~ msgid "Task:"
#~ msgstr ""

#~ msgid "Start:"
#~ msgstr ""

#~ msgid "End:"
#~ msgstr ""

#~ msgid "Running"
#~ msgstr ""

#~ msgid "Entry Details"
#~ msgstr ""

#~ msgid "Entry ID"
#~ msgstr ""

#~ msgid "Admin Notice"
#~ msgstr ""

#~ msgid ""
#~ "As an admin, you have full editing"
#~ " privileges for this time entry. Changes"
#~ " will be logged for audit purposes."
#~ msgstr ""

#~ msgid "{editor}: Editing failed"
#~ msgstr ""

#~ msgid "{editor}: Editing failed: {e}"
#~ msgstr ""

#~ msgid "{text} {deprecated_message}"
#~ msgstr ""

#~ msgid "Options"
#~ msgstr ""

#~ msgid "Got unexpected extra argument ({args})"
#~ msgid_plural "Got unexpected extra arguments ({args})"
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "DeprecationWarning: The command {name!r} is deprecated.{extra_message}"
#~ msgstr ""

#~ msgid "Aborted!"
#~ msgstr ""

#~ msgid "Commands"
#~ msgstr ""

#~ msgid "Missing command."
#~ msgstr ""

#~ msgid "No such command {name!r}."
#~ msgstr ""

#~ msgid "Value must be an iterable."
#~ msgstr ""

#~ msgid "Takes {nargs} values but 1 was given."
#~ msgid_plural "Takes {nargs} values but {len} were given."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid ""
#~ "DeprecationWarning: The {param_type} {name!r} is"
#~ " deprecated.{extra_message}"
#~ msgstr ""

#~ msgid "env var: {var}"
#~ msgstr ""

#~ msgid "default: {default}"
#~ msgstr ""

#~ msgid "required"
#~ msgstr ""

#~ msgid "(dynamic)"
#~ msgstr ""

#~ msgid "%(prog)s, version %(version)s"
#~ msgstr ""

#~ msgid "Show the version and exit."
#~ msgstr ""

#~ msgid "Show this message and exit."
#~ msgstr ""

#~ msgid "Error: {message}"
#~ msgstr ""

#~ msgid "Try '{command} {option}' for help."
#~ msgstr ""

#~ msgid "Invalid value: {message}"
#~ msgstr ""

#~ msgid "Invalid value for {param_hint}: {message}"
#~ msgstr ""

#~ msgid "Missing argument"
#~ msgstr ""

#~ msgid "Missing option"
#~ msgstr ""

#~ msgid "Missing parameter"
#~ msgstr ""

#~ msgid "Missing {param_type}"
#~ msgstr ""

#~ msgid "Missing parameter: {param_name}"
#~ msgstr ""

#~ msgid "No such option: {name}"
#~ msgstr ""

#~ msgid "Did you mean {possibility}?"
#~ msgid_plural "(Possible options: {possibilities})"
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "unknown error"
#~ msgstr ""

#~ msgid "Could not open file {filename!r}: {message}"
#~ msgstr ""

#~ msgid "Usage:"
#~ msgstr ""

#~ msgid "Argument {name!r} takes {nargs} values."
#~ msgstr ""

#~ msgid "Option {name!r} does not take a value."
#~ msgstr ""

#~ msgid "Option {name!r} requires an argument."
#~ msgid_plural "Option {name!r} requires {nargs} arguments."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "Shell completion is not supported for Bash versions older than 4.4."
#~ msgstr ""

#~ msgid "Couldn't detect Bash version, shell completion is not supported."
#~ msgstr ""

#~ msgid "Repeat for confirmation"
#~ msgstr ""

#~ msgid "Error: The value you entered was invalid."
#~ msgstr ""

#~ msgid "Error: {e.message}"
#~ msgstr ""

#~ msgid "Error: The two entered values do not match."
#~ msgstr ""

#~ msgid "Error: invalid input"
#~ msgstr ""

#~ msgid "Press any key to continue..."
#~ msgstr ""

#~ msgid ""
#~ "Choose from:\n"
#~ "\t{choices}"
#~ msgstr ""

#~ msgid "{value!r} is not {choice}."
#~ msgid_plural "{value!r} is not one of {choices}."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "{value!r} does not match the format {format}."
#~ msgid_plural "{value!r} does not match the formats {formats}."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "{value!r} is not a valid {number_type}."
#~ msgstr ""

#~ msgid "{value} is not in the range {range}."
#~ msgstr ""

#~ msgid "{value!r} is not a valid boolean. Recognized values: {states}"
#~ msgstr ""

#~ msgid "{value!r} is not a valid UUID."
#~ msgstr ""

#~ msgid "file"
#~ msgstr ""

#~ msgid "directory"
#~ msgstr ""

#~ msgid "path"
#~ msgstr ""

#~ msgid "{name} {filename!r} does not exist."
#~ msgstr ""

#~ msgid "{name} {filename!r} is a file."
#~ msgstr ""

#~ msgid "{name} {filename!r} is a directory."
#~ msgstr ""

#~ msgid "{name} {filename!r} is not readable."
#~ msgstr ""

#~ msgid "{name} {filename!r} is not writable."
#~ msgstr ""

#~ msgid "{name} {filename!r} is not executable."
#~ msgstr ""

#~ msgid "{len_type} values are required, but {len_value} was given."
#~ msgid_plural "{len_type} values are required, but {len_value} were given."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "This field is required."
#~ msgstr ""

#~ msgid "File does not have an approved extension: {extensions}"
#~ msgstr ""

#~ msgid "File does not have an approved extension."
#~ msgstr ""

#~ msgid "File must be between {min_size} and {max_size} bytes."
#~ msgstr ""

#~ msgid "show this help message and exit"
#~ msgstr ""

#~ msgid "%(prog)s: error: %(message)s\n"
#~ msgstr ""

#~ msgid "Arguments"
#~ msgstr ""

#~ msgid "(deprecated) "
#~ msgstr ""

#~ msgid "[default: {}]"
#~ msgstr ""

#~ msgid "[env var: {}]"
#~ msgstr ""

#~ msgid "[required]"
#~ msgstr ""

#~ msgid "Aborted."
#~ msgstr ""

#~ msgid "Try [blue]'{command_path} {help_option}'[/] for help."
#~ msgstr ""

#~ msgid "Invalid field name '%s'."
#~ msgstr ""

#~ msgid "Field must be equal to %(other_name)s."
#~ msgstr ""

#~ msgid "Field must be at least %(min)d character long."
#~ msgid_plural "Field must be at least %(min)d characters long."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "Field cannot be longer than %(max)d character."
#~ msgid_plural "Field cannot be longer than %(max)d characters."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "Field must be exactly %(max)d character long."
#~ msgid_plural "Field must be exactly %(max)d characters long."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "Field must be between %(min)d and %(max)d characters long."
#~ msgstr ""

#~ msgid "Number must be at least %(min)s."
#~ msgstr ""

#~ msgid "Number must be at most %(max)s."
#~ msgstr ""

#~ msgid "Number must be between %(min)s and %(max)s."
#~ msgstr ""

#~ msgid "Invalid input."
#~ msgstr ""

#~ msgid "Invalid email address."
#~ msgstr ""

#~ msgid "Invalid IP address."
#~ msgstr ""

#~ msgid "Invalid Mac address."
#~ msgstr ""

#~ msgid "Invalid URL."
#~ msgstr ""

#~ msgid "Invalid UUID."
#~ msgstr ""

#~ msgid "Invalid value, must be one of: %(values)s."
#~ msgstr ""

#~ msgid "Invalid value, can't be any of: %(values)s."
#~ msgstr ""

#~ msgid "This field cannot be edited."
#~ msgstr ""

#~ msgid "This field is disabled and cannot have a value."
#~ msgstr ""

#~ msgid "Invalid CSRF Token."
#~ msgstr ""

#~ msgid "CSRF token missing."
#~ msgstr ""

#~ msgid "CSRF failed."
#~ msgstr ""

#~ msgid "CSRF token expired."
#~ msgstr ""

#~ msgid "Invalid Choice: could not coerce."
#~ msgstr ""

#~ msgid "Choices cannot be None."
#~ msgstr ""

#~ msgid "Not a valid choice."
#~ msgstr ""

#~ msgid "Invalid choice(s): one or more data inputs could not be coerced."
#~ msgstr ""

#~ msgid "'%(value)s' is not a valid choice for this field."
#~ msgid_plural "'%(value)s' are not valid choices for this field."
#~ msgstr[0] ""
#~ msgstr[1] ""

#~ msgid "Not a valid datetime value."
#~ msgstr ""

#~ msgid "Not a valid date value."
#~ msgstr ""

#~ msgid "Not a valid time value."
#~ msgstr ""

#~ msgid "Not a valid week value."
#~ msgstr ""

#~ msgid "Not a valid integer value."
#~ msgstr ""

#~ msgid "Not a valid decimal value."
#~ msgstr ""

#~ msgid "Not a valid float value."
#~ msgstr ""

