
msgid ""
msgstr ""
"Project-Id-Version:  TimeTracker\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-04-29 07:57+0200\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:867 app/__init__.py:899
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:613 app/utils/decorators.py:20
msgid "Administrator access required"
msgstr "Accès administrateur requis"

#: app/routes/admin.py:825
msgid "User creation is disabled in demo mode."
msgstr ""

#: app/routes/admin.py:833 app/routes/admin.py:905 app/routes/kiosk.py:118
msgid "Username is required"
msgstr "Le nom d'utilisateur est requis"

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

#: app/routes/admin.py:849 app/routes/admin.py:943
msgid "Default 'user' role not found. Please run 'flask seed_permissions_cmd' first."
msgstr ""

#: app/routes/admin.py:873
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:877
#, python-format
msgid "User \"%(username)s\" created successfully"
msgstr "L'utilisateur \"%(username)s\" a été créé avec succès"

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

#: app/routes/admin.py:928
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:960 app/routes/auth.py:258 app/routes/auth.py:394
#: app/routes/auth.py:516 app/routes/auth.py:795 app/routes/auth.py:887
#: app/routes/client_portal.py:387 app/templates/auth/change_password.html:28
msgid "Password must be at least 8 characters long."
msgstr "Le mot de passe doit comporter au moins 8 caractères."

#: app/routes/admin.py:970 app/routes/auth.py:261 app/routes/auth.py:799
#: app/routes/auth.py:891 app/routes/client_portal.py:391
msgid "Passwords do not match."
msgstr "Les mots de passe ne correspondent pas."

#: app/routes/admin.py:1023
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:1033
#, python-format
msgid "Password reset successfully for user \"%(username)s\""
msgstr ""

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

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

#: app/routes/admin.py:1059
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:1078
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:1081
#, python-format
msgid "User \"%(username)s\" deleted successfully"
msgstr "L'utilisateur \"%(username)s\" a été supprimé avec succès"

#: app/routes/admin.py:1150
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:1152
msgid "Detailed analytics has been disabled. Anonymous base telemetry remains active."
msgstr ""

#: app/routes/admin.py:1196
msgid "Invalid locked client selection."
msgstr ""

#: app/routes/admin.py:1207
msgid "Selected locked client does not exist or is not active."
msgstr ""

#: app/routes/admin.py:1241
#, python-format
msgid "Cannot disable '%(module)s' because the following modules depend on it: %(dependents)s"
msgstr ""

#: app/routes/admin.py:1264
msgid "Could not update module visibility due to a database error. Please check server logs."
msgstr ""

#: app/routes/admin.py:1274
msgid "Module visibility updated successfully"
msgstr ""

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

#: app/routes/admin.py:1378
#, python-format
msgid "Invalid invoice number pattern: %(reason)s"
msgstr ""

#: app/routes/admin.py:1543
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:1578
msgid "Settings updated successfully"
msgstr "Paramètres mis à jour avec succès"

#: app/routes/admin.py:1631 app/routes/admin.py:1644 app/routes/user.py:249
#: app/routes/user.py:261 app/routes/user.py:288 app/routes/user.py:301
#: app/templates/admin/settings.html:766
msgid "Invalid code."
msgstr ""

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

#: app/routes/admin.py:1753 app/routes/admin.py:2103
msgid "Invalid template JSON format. Please try again."
msgstr ""

#: app/routes/admin.py:1795 app/routes/admin.py:2152
msgid "Error: Template JSON is empty. Please try saving again."
msgstr ""

#: app/routes/admin.py:1807 app/routes/admin.py:2164
msgid "Error: Template JSON is invalid. Please try saving again."
msgstr ""

#: app/routes/admin.py:1817 app/routes/admin.py:2174
msgid "Error: Template JSON is not valid JSON. Please try saving again."
msgstr ""

#: app/routes/admin.py:1850 app/routes/admin.py:2188
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:1860 app/routes/admin.py:2196
msgid "PDF layout updated successfully"
msgstr "Mise en page PDF mise à jour avec succès"

#: app/routes/admin.py:1866 app/routes/admin.py:2202
msgid "PDF layout saved but template JSON verification failed. Please check the template."
msgstr ""

#: app/routes/admin.py:1996 app/routes/admin.py:2311
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:1998 app/routes/admin.py:2313
msgid "PDF layout reset to defaults"
msgstr "Mise en page PDF réinitialisée aux valeurs par défaut"

#: app/routes/admin.py:2329 app/routes/admin.py:2440
msgid "Invalid page size"
msgstr ""

#: app/routes/admin.py:2335 app/routes/admin.py:2446
msgid "Template not found for this page size"
msgstr ""

#: app/routes/admin.py:2372 app/routes/admin.py:2483
msgid "No file uploaded"
msgstr ""

#: app/routes/admin.py:2377 app/routes/admin.py:2488 app/routes/clients.py:1269
#: app/routes/comments.py:291 app/routes/expenses.py:1270
#: app/routes/invoices.py:1615 app/routes/projects.py:2028
#: app/routes/quotes.py:1132 app/routes/quotes.py:1994
#: app/routes/team_chat.py:481
msgid "No file selected"
msgstr "Aucun fichier sélectionné"

#: app/routes/admin.py:2387 app/routes/admin.py:2498
msgid "Invalid template JSON format. Missing 'page' property."
msgstr ""

#: app/routes/admin.py:2413 app/routes/admin.py:2524
msgid "Could not import template due to a database error."
msgstr ""

#: app/routes/admin.py:2415 app/routes/admin.py:2526
msgid "Template imported successfully"
msgstr ""

#: app/routes/admin.py:2420 app/routes/admin.py:2531
#, python-format
msgid "Invalid JSON file: %(error)s"
msgstr ""

#: app/routes/admin.py:2424 app/routes/admin.py:2535
#, python-format
msgid "Error importing template: %(error)s"
msgstr ""

#: app/routes/admin.py:2704
msgid "Invoice not found"
msgstr ""

#: app/routes/admin.py:3342 app/routes/quotes.py:495
msgid "Quote not found"
msgstr ""

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

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

#: app/routes/admin.py:3929
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:3933
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:3939
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:3963
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:3965
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:3967
msgid "No logo to remove"
msgstr "Aucun logo à supprimer"

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

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

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

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

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

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

#: app/routes/admin.py:4167
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:4171
msgid "Backup file not found."
msgstr "Fichier de sauvegarde introuvable."

#: app/routes/admin.py:4182
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:4189
msgid "No backup file provided"
msgstr "Aucun fichier de sauvegarde fourni"

#: app/routes/admin.py:4224
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:4362
#, fuzzy
msgid "OIDC is not enabled. Set AUTH_METHOD to \"oidc\", \"both\", or \"all\"."
msgstr "OIDC n’est pas activé. Définissez AUTH_METHOD sur « oidc » ou « les deux »."

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

#: app/routes/admin.py:4375
#, python-format
msgid "✗ Failed to parse issuer URL: %(error)s"
msgstr ""

#: app/routes/admin.py:4379
msgid "Testing DNS resolution with multiple strategies..."
msgstr ""

#: app/routes/admin.py:4402
#, python-format
msgid "✓ DNS resolution successful using %(strategy)s strategy: %(ip)s"
msgstr ""

#: app/routes/admin.py:4407
#, python-format
msgid "✗ DNS resolution failed using %(strategy)s strategy: %(error)s"
msgstr ""

#: app/routes/admin.py:4417
msgid "ℹ Docker environment detected - internal service names may be available"
msgstr ""

#: app/routes/admin.py:4441
#, 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:4446
#, python-format
msgid "✓ DNS strategy used: %(strategy)s"
msgstr ""

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

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

#: app/routes/admin.py:4463
msgid "✗ Failed to retrieve discovery document"
msgstr ""

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

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

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

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

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

#: app/routes/admin.py:4492
#, 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:4498
#, 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:4506
#, python-format
msgid "ℹ Provider supports claims: %(claims)s"
msgstr "ℹ Le fournisseur prend en charge les réclamations : %(claims)s"

#: app/routes/admin.py:4519
#, 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:4528
#, 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:4536
msgid "OIDC configuration test completed"
msgstr "Test de configuration OIDC terminé"

#: app/routes/admin.py:5334 app/routes/admin.py:5448
#: app/routes/link_templates.py:42 app/routes/link_templates.py:98
#: app/routes/quotes.py:1433 app/routes/quotes.py:1518
#: app/routes/time_entry_templates.py:57 app/routes/time_entry_templates.py:167
msgid "Template name is required"
msgstr "Le nom du modèle est obligatoire"

#: app/routes/admin.py:5340 app/templates/admin/email_templates/create.html:104
#: app/templates/admin/email_templates/edit.html:121
#, fuzzy
msgid "HTML template content is required"
msgstr "Le nom du modèle est obligatoire"

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

#: app/routes/admin.py:5368
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:5373
msgid "Email template created successfully"
msgstr "Modèle d'e-mail créé avec succès"

#: app/routes/admin.py:5470
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:5473
msgid "Email template updated successfully"
msgstr "Modèle d'e-mail mis à jour avec succès"

#: app/routes/admin.py:5491
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:5496
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:5498
#, 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/api.py:1325
msgid "Task name and project are required"
msgstr ""

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

#: app/routes/api.py:1358 app/routes/invoices_refactored.py:222
#: app/routes/invoices_refactored.py:261
#: app/routes/projects_refactored_example.py:193 app/routes/tasks.py:273
#: app/routes/timer.py:193 app/routes/timer_refactored.py:51
#: app/routes/timer_refactored.py:127
msgid "message"
msgstr "message"

#: app/routes/api.py:1394
#, python-format
msgid "Task \"%(name)s\" created successfully"
msgstr ""

#: app/routes/audit_logs.py:27
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:147 app/templates/auth/change_password.html:8
msgid "You must change your password before continuing."
msgstr ""

#: app/routes/auth.py:155
msgid "Administrator accounts must enable two-factor authentication."
msgstr ""

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

#: app/routes/auth.py:178
msgid "Password reset is not available for this authentication method."
msgstr ""

#: app/routes/auth.py:182 app/routes/auth.py:240
msgid "Demo mode: password reset is disabled."
msgstr ""

#: app/routes/auth.py:189
msgid "If an account matches what you entered and email is configured, you'll receive a reset link shortly."
msgstr ""

#: app/routes/auth.py:213
#, fuzzy
msgid "Reset your TimeTracker password"
msgstr "Définissez votre mot de passe"

#: app/routes/auth.py:214
#, python-format
msgid ""
"A password reset was requested for your account.\n"
"\n"
"Use this link to set a new password:\n"
"%(url)s\n"
"\n"
"If you did not request this, you can ignore this email."
msgstr ""

#: app/routes/auth.py:246
#, fuzzy
msgid "This reset link is invalid or has expired. Please request a new one."
msgstr "Jeton de configuration de mot de passe invalide ou expiré. Veuillez en demander un nouveau."

#: app/routes/auth.py:250
#, fuzzy
msgid "Password reset is not available for this account."
msgstr "Le portail client n'est pas activé pour ce client."

#: app/routes/auth.py:270
msgid "Your password has been updated. You can now sign in."
msgstr ""

#: app/routes/auth.py:274
#, fuzzy
msgid "Could not reset 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/auth.py:336
msgid "Invalid username format"
msgstr ""

#: app/routes/auth.py:349
msgid "Only the demo account can be used. Please use the credentials shown below."
msgstr ""

#: app/routes/auth.py:357 app/routes/auth.py:465 app/routes/auth.py:483
#: app/routes/kiosk.py:132
msgid "Password is required"
msgstr ""

#: app/routes/auth.py:363 app/routes/auth.py:439 app/routes/auth.py:471
#: app/routes/auth.py:496 app/routes/kiosk.py:123 app/routes/kiosk.py:136
msgid "Invalid username or password"
msgstr ""

#: app/routes/auth.py:391
msgid "Password is required to create an account."
msgstr ""

#: app/routes/auth.py:425
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:435 app/routes/auth.py:1387
msgid "Welcome! Your account has been created."
msgstr "Accueillir! Votre compte a été créé."

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

#: app/routes/auth.py:449
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:455 app/routes/auth.py:1434
msgid "Account is disabled. Please contact an administrator."
msgstr "Le compte est désactivé. Veuillez contacter un administrateur."

#: app/routes/auth.py:506
msgid "No password is set for your account. Please enter a password to set one and log in."
msgstr ""

#: app/routes/auth.py:525
msgid "Could not set password due to a database error. Please try again."
msgstr ""

#: app/routes/auth.py:528
msgid "Password has been set. You are now logged in."
msgstr ""

#: app/routes/auth.py:537
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:551 app/routes/auth.py:558
#, fuzzy
msgid "Your login session expired. Please sign in again."
msgstr "Votre session a expiré ou la page est restée ouverte trop longtemps. Veuillez réessayer."

#: app/routes/auth.py:572 app/routes/auth.py:616 app/routes/auth.py:644
#, fuzzy
msgid "Invalid authentication code."
msgstr "Méthode d'authentification"

#: app/routes/auth.py:625
#, fuzzy
msgid "Two-factor authentication enabled."
msgstr "Méthode d'authentification"

#: app/routes/auth.py:628
#, fuzzy
msgid "Could not enable two-factor authentication 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:654
#, fuzzy
msgid "Two-factor authentication disabled."
msgstr "Méthode d'authentification"

#: app/routes/auth.py:657
#, fuzzy
msgid "Could not disable two-factor authentication 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:727
#, python-format
msgid "Goodbye, %(username)s!"
msgstr "Au revoir, %(username)s !"

#: app/routes/auth.py:815
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:840
msgid "Failed to save avatar on server."
msgstr "Échec de l'enregistrement de l'avatar sur le serveur."

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

#: app/routes/auth.py:862
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:873
msgid "Password cannot be changed here for your account."
msgstr ""

#: app/routes/auth.py:883
msgid "New password is required"
msgstr ""

#: app/routes/auth.py:897
msgid "Current password is required"
msgstr ""

#: app/routes/auth.py:901
msgid "Current password is incorrect"
msgstr ""

#: app/routes/auth.py:911
msgid "Password changed successfully. You can now continue."
msgstr ""

#: app/routes/auth.py:915
msgid "Could not update password due to a database error."
msgstr ""

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

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

#: app/routes/auth.py:981 app/routes/auth.py:1339
msgid "Demo mode: only the demo account can be used. Please use the credentials on the login page."
msgstr ""

#: app/routes/auth.py:1052
#, python-format
msgid "Failed to connect to Single Sign-On provider. Please contact an administrator. Error: %(error)s"
msgstr ""

#: app/routes/auth.py:1061
#, python-format
msgid "Cannot connect to Single Sign-On provider. DNS resolution may be failing. Please contact an administrator. Error: %(error)s"
msgstr ""

#: app/routes/auth.py:1070 app/routes/auth.py:1111
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:1131
msgid "Single Sign-On is not configured."
msgstr "L’authentification unique n’est pas configurée."

#: app/routes/auth.py:1156
msgid "SSO failed: encrypted or unsupported ID tokens. Disable ID token encryption on your provider (e.g. in Authentik, leave the Encryption Key empty)."
msgstr ""

#: app/routes/auth.py:1169
msgid "SSO failed. If this repeats, check session cookie and proxy configuration."
msgstr ""

#: app/routes/auth.py:1312
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:1347
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:1391
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:1511
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:332
msgid "You do not have access to this project."
msgstr "Vous n'avez pas accès à ce projet."

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

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

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

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

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

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

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

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

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

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

#: app/routes/calendar.py:466
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/clients.py:67
#: app/routes/clients.py:71
msgid "Clients module is disabled by the administrator."
msgstr ""

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

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

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

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

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

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

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

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

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

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

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

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

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

#: app/routes/client_portal.py:64 app/routes/client_portal.py:71
#: app/routes/client_portal.py:200 app/routes/client_portal.py:228
#: app/routes/client_portal.py:237 app/routes/client_portal.py:241
#: app/routes/client_portal.py:266
msgid "Please log in to access the client portal."
msgstr "Veuillez vous connecter pour accéder au portail client."

#: app/routes/client_portal.py:79 app/templates/errors/403.html:13
msgid "Access Denied"
msgstr "Accès refusé"

#: app/routes/client_portal.py:80 app/templates/errors/403.html:3
msgid "403 Forbidden"
msgstr "403 Interdit"

#: app/routes/client_portal.py:81
msgid "You don't have permission to access this resource. Client portal access may not be enabled for your account."
msgstr ""

#: app/routes/client_portal.py:85
msgid "Your account may not have client portal access enabled"
msgstr ""

#: app/routes/client_portal.py:86
msgid "Your account may be inactive"
msgstr ""

#: app/routes/client_portal.py:87
msgid "You may not be assigned to a client"
msgstr ""

#: app/routes/client_portal.py:105 app/templates/errors/404.html:3
#: app/templates/errors/404.html:14
msgid "Page Not Found"
msgstr "Page introuvable"

#: app/routes/client_portal.py:106
msgid "404 Not Found"
msgstr ""

#: app/routes/client_portal.py:107 app/templates/errors/404.html:17
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/routes/client_portal.py:125 app/templates/errors/500.html:3
#: app/templates/errors/500.html:14
msgid "Server Error"
msgstr "Erreur de serveur"

#: app/routes/client_portal.py:126
msgid "500 Internal Server Error"
msgstr ""

#: app/routes/client_portal.py:127
msgid "An unexpected error occurred. Please try again later or contact support if the problem persists."
msgstr ""

#: app/routes/client_portal.py:204
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:209
msgid "Your client account is inactive."
msgstr "Votre compte client est inactif."

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

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

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

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

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

#: app/routes/client_portal.py:374
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:383 app/routes/integrations.py:563
msgid "Password is required."
msgstr "Un mot de passe est requis."

#: app/routes/client_portal.py:399
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:402
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:428 app/routes/client_portal.py:564
#: app/routes/client_portal.py:590 app/routes/client_portal.py:669
msgid "Unable to load client portal data."
msgstr "Impossible de charger les données du portail client."

#: app/routes/client_portal.py:525
msgid "widget_ids must be a list"
msgstr ""

#: app/routes/client_portal.py:528
#, python-format
msgid "Invalid widget id(s): %(ids)s"
msgstr ""

#: app/routes/client_portal.py:530
msgid "widget_order must be a list"
msgstr ""

#: app/routes/client_portal.py:534
#, python-format
msgid "Invalid widget id(s) in order: %(ids)s"
msgstr ""

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

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

#: app/routes/client_portal.py:718 app/routes/client_portal.py:752
#: app/routes/client_portal.py:844
msgid "Issue reporting is not available."
msgstr ""

#: app/routes/client_portal.py:769 app/routes/issues.py:189
#: app/routes/issues.py:338
msgid "Title is required."
msgstr ""

#: app/routes/client_portal.py:786 app/routes/integrations.py:1096
#: app/routes/integrations.py:1234 app/routes/issues.py:200
msgid "Invalid project selected."
msgstr ""

#: app/routes/client_portal.py:815 app/routes/issues.py:218
msgid "Could not create issue due to a database error."
msgstr ""

#: app/routes/client_portal.py:828
msgid "Issue reported successfully. We will review it shortly."
msgstr ""

#: app/routes/client_portal.py:850
msgid "Issue not found."
msgstr ""

#: app/routes/client_portal.py:916 app/routes/client_portal.py:936
#: app/routes/client_portal.py:976 app/routes/invoice_approvals.py:124
msgid "Approval not found."
msgstr ""

#: app/routes/client_portal.py:946 app/routes/client_portal.py:991
msgid "No contact found for approval."
msgstr ""

#: app/routes/client_portal.py:955
msgid "Time entry approved successfully."
msgstr ""

#: app/routes/client_portal.py:957
#, python-format
msgid "Error approving time entry: %(error)s"
msgstr ""

#: app/routes/client_portal.py:981
msgid "Rejection reason is required."
msgstr ""

#: app/routes/client_portal.py:998
msgid "Time entry rejected."
msgstr ""

#: app/routes/client_portal.py:1000
#, python-format
msgid "Error rejecting time entry: %(error)s"
msgstr ""

#: app/routes/client_portal.py:1022
msgid "This quote cannot be accepted."
msgstr ""

#: app/routes/client_portal.py:1049
msgid "Quote accepted successfully. We will contact you shortly."
msgstr ""

#: app/routes/client_portal.py:1067
msgid "This quote cannot be rejected."
msgstr ""

#: app/routes/client_portal.py:1097
msgid "Quote rejected. We appreciate your feedback."
msgstr ""

#: app/routes/client_portal.py:1119
msgid "This invoice is already paid."
msgstr ""

#: app/routes/client_portal.py:1127
msgid "Online payment is not currently available. Please contact us for payment instructions."
msgstr ""

#: app/routes/client_portal.py:1134 app/routes/payment_gateways.py:122
msgid "Payment gateway not yet supported."
msgstr ""

#: app/routes/client_portal.py:1151
msgid "Project not found."
msgstr ""

#: app/routes/client_portal.py:1157
msgid "Comment cannot be empty."
msgstr ""

#: app/routes/client_portal.py:1167
msgid "No contact found for commenting."
msgstr ""

#: app/routes/client_portal.py:1180
msgid "Comment added successfully."
msgstr ""

#: app/routes/client_portal.py:1259
#, python-format
msgid "Marked %(count)d notifications as read."
msgstr ""

#: app/routes/client_portal.py:1357
msgid "Attachment not found or access denied."
msgstr ""

#: app/routes/client_portal.py:1382
#, fuzzy
msgid "Unable to load report data."
msgstr "Impossible de charger les données du portail client."

#: app/routes/client_portal.py:1415
#, fuzzy
msgid "Client Report"
msgstr "Portail client"

#: app/routes/client_portal.py:1415 app/templates/client_portal/reports.html:15
#, fuzzy, python-format
msgid "Last %(days)s days"
msgstr "7 derniers jours"

#: app/routes/client_portal.py:1417
#: app/templates/inventory/purchase_orders/view.html:182
#: app/templates/inventory/stock_items/view.html:271
#: app/templates/inventory/suppliers/view.html:171
#: app/templates/inventory/warehouses/view.html:165
#: app/templates/reports/builder.html:53 app/templates/reports/builder.html:411
#: app/templates/reports/builder.html:584
#: app/templates/reports/custom_view.html:61
#: app/templates/reports/unpaid_hours_report.html:42
msgid "Summary"
msgstr "Résumé"

#: app/routes/client_portal.py:1418 app/templates/admin/dashboard.html:114
#: app/templates/analytics/dashboard.html:43
#: 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/projects.html:46
#: app/templates/client_portal/reports.html:24
#: app/templates/client_portal/reports.html:91
#: app/templates/client_portal/widgets/stats.html:18
#: app/templates/clients/edit.html:184 app/templates/projects/dashboard.html:53
#: app/templates/projects/time_entries_overview.html:22
#: app/templates/reports/index.html:26
#: app/templates/reports/unpaid_hours_report.html:74
#: app/templates/reports/unpaid_hours_report.html:91
#: app/templates/timer/time_entries_overview.html:22
#: app/templates/user/profile.html:45
msgid "Total Hours"
msgstr "Heures totales"

#: app/routes/client_portal.py:1420 app/templates/client_portal/reports.html:37
msgid "Total Invoiced"
msgstr ""

#: app/routes/client_portal.py:1421
#: app/templates/client_portal/invoices.html:40
#: app/templates/client_portal/reports.html:50
#: app/templates/invoices/list.html:131
#: app/templates/timer/_time_entries_list.html:164
#: app/templates/timer/edit_timer.html:360
#: app/templates/timer/edit_timer.html:481
#: app/templates/timer/time_entries_overview.html:105
#: app/templates/timer/time_entries_overview.html:198
#: app/templates/timer/view_timer.html:136
#: app/templates/timer/view_timer.html:140 app/utils/i18n_helpers.py:66
#: app/utils/i18n_helpers.py:78
msgid "Paid"
msgstr "Payé"

#: app/routes/client_portal.py:1422 app/templates/admin/pdf_layout.html:1892
#: app/templates/admin/quote_pdf_layout.html:1698
#: app/templates/client_portal/invoice_detail.html:97
#: app/templates/client_portal/reports.html:63
#: app/templates/client_portal/widgets/stats.html:42
#: app/templates/invoices/edit.html:368
msgid "Outstanding"
msgstr "Remarquable"

#: app/routes/client_portal.py:1424 app/templates/analytics/dashboard.html:101
#: app/templates/analytics/dashboard_improved.html:168
#: app/templates/email/weekly_summary.html:104
msgid "Hours by Project"
msgstr "Heures par projet"

#: app/routes/client_portal.py:1425 app/routes/reports.py:1017
#: app/templates/admin/dashboard.html:335 app/templates/approvals/view.html:35
#: app/templates/audit_logs/list.html:112 app/templates/audit_logs/view.html:89
#: app/templates/budget/dashboard.html:116
#: app/templates/calendar/event_detail.html:88
#: app/templates/calendar/event_form.html:116
#: app/templates/client_portal/approvals.html:119
#: app/templates/client_portal/issue_detail.html:63
#: app/templates/client_portal/new_issue.html:41
#: app/templates/client_portal/reports.html:89
#: app/templates/client_portal/reports.html:220
#: app/templates/client_portal/time_entries.html:24
#: app/templates/client_portal/time_entries.html:63
#: app/templates/client_portal/widgets/time_entries.html:21
#: app/templates/clients/view.html:350
#: app/templates/components/offline_indicator.html:87
#: app/templates/expenses/list.html:330 app/templates/gantt/view.html:28
#: app/templates/inventory/movements/list.html:40
#: app/templates/invoices/create.html:17
#: app/templates/invoices/pdf_default.html:76 app/templates/issues/edit.html:60
#: app/templates/issues/list.html:61 app/templates/issues/list.html:95
#: app/templates/issues/list.html:112 app/templates/issues/new.html:54
#: app/templates/issues/view.html:132
#: app/templates/kanban/create_column.html:39
#: app/templates/kiosk/dashboard.html:303 app/templates/main/dashboard.html:335
#: app/templates/main/dashboard.html:344 app/templates/main/dashboard.html:733
#: app/templates/main/search.html:33 app/templates/mileage/gps.html:18
#: app/templates/recurring_invoices/list.html:24
#: app/templates/recurring_invoices/list.html:38
#: app/templates/recurring_tasks/form.html:35
#: app/templates/recurring_tasks/list.html:31
#: app/templates/recurring_tasks/list.html:47
#: app/templates/reports/builder.html:94 app/templates/reports/index.html:225
#: app/templates/reports/index.html:233
#: app/templates/reports/iterative_view.html:44
#: app/templates/reports/iterative_view.html:55
#: app/templates/reports/time_entries_report.html:35
#: app/templates/reports/time_entries_report.html:106
#: app/templates/reports/time_entries_report.html:120
#: app/templates/reports/unpaid_hours_report.html:120
#: app/templates/reports/user_report.html:76
#: app/templates/tasks/_kanban.html:1245
#: app/templates/tasks/_tasks_list.html:48 app/templates/tasks/create.html:46
#: app/templates/tasks/edit.html:53 app/templates/tasks/edit.html:201
#: app/templates/tasks/my_tasks.html:149
#: app/templates/timer/bulk_entry.html:101
#: app/templates/timer/calendar.html:148 app/templates/timer/calendar.html:858
#: app/templates/timer/calendar.html:863
#: app/templates/timer/edit_timer.html:229
#: app/templates/timer/manual_entry.html:62
#: app/templates/timer/time_entries_overview.html:89
#: app/templates/timer/timer_page.html:138
#: app/templates/timer/view_timer.html:71 app/utils/pdf_generator.py:1143
msgid "Project"
msgstr "Projet"

#: app/routes/client_portal.py:1425 app/routes/client_portal.py:1432
#: app/templates/admin/dashboard.html:506
#: app/templates/analytics/dashboard.html:221
#: app/templates/analytics/dashboard_improved.html:215
#: app/templates/analytics/mobile_dashboard.html:161
#: app/templates/budget/project_detail.html:206
#: app/templates/client_portal/reports.html:186
#: app/templates/main/dashboard.html:499
#: app/templates/projects/dashboard.html:454
#: app/templates/projects/dashboard.html:488
#: app/templates/projects/time_entries_overview.html:70
#: app/templates/projects/time_entries_overview.html:81
#: app/templates/reports/iterative_view.html:46
#: app/templates/reports/iterative_view.html:57
#: app/templates/reports/summary.html:43 app/templates/reports/summary.html:86
msgid "Hours"
msgstr "Heures"

#: app/routes/client_portal.py:1425 app/templates/admin/dashboard.html:129
#: app/templates/analytics/dashboard.html:48
#: app/templates/analytics/dashboard_improved.html:44
#: app/templates/client_portal/reports.html:92
#: app/templates/reports/index.html:27
#: app/templates/timer/time_entries_overview.html:23
msgid "Billable Hours"
msgstr "Heures facturables"

#: app/routes/client_portal.py:1431
#, fuzzy
msgid "Time by Date"
msgstr "Plage de temps"

#: app/routes/client_portal.py:1432 app/routes/reports.py:1013
#: app/templates/admin/dashboard.html:337
#: app/templates/analytics/dashboard.html:222
#: app/templates/analytics/dashboard_improved.html:216
#: app/templates/analytics/mobile_dashboard.html:162
#: app/templates/approvals/view.html:57
#: app/templates/client_portal/approvals.html:141
#: app/templates/client_portal/quote_detail.html:35
#: app/templates/client_portal/quotes.html:27
#: app/templates/client_portal/quotes.html:43
#: app/templates/client_portal/reports.html:185
#: app/templates/client_portal/reports.html:219
#: app/templates/client_portal/time_entries.html:62
#: app/templates/client_portal/widgets/time_entries.html:20
#: app/templates/clients/view.html:349
#: app/templates/contacts/communication_form.html:52
#: app/templates/expenses/dashboard.html:187
#: app/templates/expenses/list.html:296
#: app/templates/inventory/adjustments/list.html:56
#: app/templates/inventory/adjustments/list.html:67
#: app/templates/inventory/movements/list.html:54
#: app/templates/inventory/movements/list.html:68
#: app/templates/inventory/reports/movement_history.html:70
#: app/templates/inventory/reports/movement_history.html:84
#: app/templates/inventory/stock_items/history.html:62
#: app/templates/inventory/stock_items/history.html:75
#: app/templates/inventory/stock_items/view.html:239
#: app/templates/inventory/stock_items/view.html:249
#: app/templates/inventory/transfers/list.html:38
#: app/templates/inventory/transfers/list.html:53
#: app/templates/inventory/warehouses/view.html:129
#: app/templates/inventory/warehouses/view.html:139
#: app/templates/invoices/edit.html:164
#: app/templates/invoices/pdf_default.html:123
#: app/templates/main/dashboard.html:337 app/templates/main/dashboard.html:366
#: app/templates/payments/list.html:157 app/templates/projects/add_cost.html:50
#: app/templates/projects/edit_cost.html:57 app/templates/quotes/create.html:98
#: app/templates/quotes/edit.html:146 app/templates/quotes/pdf_default.html:57
#: app/templates/reports/index.html:227 app/templates/reports/index.html:235
#: app/templates/reports/iterative_view.html:42
#: app/templates/reports/iterative_view.html:53
#: app/templates/reports/time_entries_report.html:102
#: app/templates/reports/time_entries_report.html:116
#: app/templates/reports/unpaid_hours_report.html:122
#: app/templates/reports/user_report.html:74 app/templates/tasks/view.html:75
#: app/templates/timer/_time_entries_list.html:34
#: app/templates/timer/_time_entries_list.html:57
#: app/utils/pdf_generator_fallback.py:291
#: app/utils/pdf_generator_fallback.py:555
msgid "Date"
msgstr "Date"

#: app/routes/client_portal_customization.py:50
#: app/routes/recurring_tasks.py:81 app/routes/time_approvals.py:48
#: app/routes/webhooks.py:103 app/routes/webhooks.py:126
#: app/routes/webhooks.py:169 app/routes/workflows.py:95
#: app/routes/workflows.py:116 app/routes/workforce.py:147
#: app/routes/workforce.py:169 app/routes/workforce.py:228
#: app/routes/workforce.py:251 app/routes/workforce.py:278
#: app/routes/workforce.py:331 app/routes/workforce.py:355
#: app/routes/workforce.py:398 app/routes/workforce.py:419
#: app/routes/workforce.py:565 app/routes/workforce.py:614
msgid "Access denied"
msgstr "Accès refusé"

#: app/routes/client_portal_customization.py:111
msgid "File too large. Maximum 5MB."
msgstr ""

#: app/routes/client_portal_customization.py:139
msgid "Portal customization updated successfully"
msgstr ""

#: app/routes/clients.py:89
msgid "Search query is too long. Maximum 200 characters."
msgstr ""

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

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

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

#: app/routes/clients.py:307
msgid "Invalid email address"
msgstr ""

#: app/routes/clients.py:316 app/routes/clients.py:620 app/routes/offers.py:92
#: app/routes/offers.py:224 app/routes/projects.py:349
#: app/routes/projects.py:953 app/routes/quotes.py:197
msgid "Invalid hourly rate format"
msgstr "Format de taux horaire invalide"

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

#: app/routes/clients.py:337 app/routes/clients.py:645
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:359 app/routes/clients.py:364
#: app/routes/clients.py:686 app/routes/projects.py:433
#: app/routes/projects.py:1048
#, python-format
msgid "Custom field '%(field)s' is required"
msgstr ""

#: app/routes/clients.py:389
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:439 app/routes/clients.py:580
#, fuzzy
msgid "You do not have access to this client."
msgstr "Vous n'avez pas accès à ce projet."

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

#: app/routes/clients.py:660
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:669
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:719
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:742
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:747
msgid "Client portal is not enabled for this client."
msgstr "Le portail client n'est pas activé pour ce client."

#: app/routes/clients.py:751
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:755
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:762
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:777
#, 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:788
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:795
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:802
#, 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 : %(error)s"

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

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

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

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

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

#: app/routes/clients.py:879
msgid "Cannot delete client with existing projects. Please delete all projects first."
msgstr ""

#: app/routes/clients.py:886
msgid "Cannot delete client with existing invoices. Please delete all invoices first before deleting the client."
msgstr ""

#: app/routes/clients.py:904
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:937
msgid "No clients selected for deletion"
msgstr "Aucun client sélectionné pour la suppression"

#: app/routes/clients.py:987
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:1007
msgid "No clients were deleted"
msgstr "Aucun client n'a été supprimé"

#: app/routes/clients.py:1018
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:1025
msgid "No clients selected"
msgstr "Aucun client sélectionné"

#: app/routes/clients.py:1029 app/routes/projects.py:1354
#: app/routes/tasks.py:632
msgid "Invalid status"
msgstr "Statut invalide"

#: app/routes/clients.py:1060
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:1077
msgid "No clients were updated"
msgstr "Aucun client n'a été mis à jour"

#: app/routes/clients.py:1264 app/routes/comments.py:286
#: app/routes/expenses.py:1264 app/routes/invoices.py:1608
#: app/routes/projects.py:2023 app/routes/quotes.py:1127
#: app/routes/quotes.py:1987 app/routes/team_chat.py:477
msgid "No file provided"
msgstr "Aucun fichier fourni"

#: app/routes/clients.py:1273 app/routes/comments.py:295
#: app/routes/projects.py:2032 app/routes/quotes.py:1136
msgid "File type not allowed"
msgstr "Type de fichier non autorisé"

#: app/routes/clients.py:1282 app/routes/comments.py:304
#: app/routes/projects.py:2041 app/routes/quotes.py:1145
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/clients.py:1319 app/routes/clients.py:1335
#: app/routes/comments.py:337 app/routes/projects.py:2078
#: app/routes/projects.py:2094 app/routes/quotes.py:1191
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/clients.py:1332 app/routes/projects.py:2091
msgid "The attachments feature requires a database migration. Please run: flask db upgrade"
msgstr ""

#: app/routes/clients.py:1357 app/routes/comments.py:354
#: app/routes/projects.py:2116 app/routes/quotes.py:1212
msgid "Attachment uploaded successfully"
msgstr "Pièce jointe téléchargée avec succès"

#: app/routes/clients.py:1376 app/routes/comments.py:369
#: app/routes/projects.py:2135 app/routes/quotes.py:1236
#: app/routes/team_chat.py:424
msgid "File not found"
msgstr "Fichier introuvable"

#: app/routes/clients.py:1408 app/routes/projects.py:2169
#: app/routes/quotes.py:1275
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/clients.py:1418 app/routes/comments.py:402
#: app/routes/projects.py:2184 app/routes/quotes.py:1285
msgid "Attachment deleted successfully"
msgstr "Pièce jointe supprimée avec succès"

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

#: app/routes/comments.py:34
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:40
msgid "Comment cannot be associated with multiple targets"
msgstr "Le commentaire ne peut pas être associé à plusieurs cibles"

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

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

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

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

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

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

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

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

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

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

#: app/routes/comments.py:274
msgid "You do not have permission to add attachments to this comment"
msgstr ""

#: app/routes/comments.py:350
#, python-format
msgid "Error uploading attachment: %(error)s"
msgstr ""

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

#: app/routes/comments.py:404
msgid "Error deleting attachment"
msgstr ""

#: app/routes/comments.py:406
#, python-format
msgid "Error deleting attachment: %(error)s"
msgstr ""

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

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

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

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

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

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

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

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

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

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

#: app/routes/custom_field_definitions.py:44
#: app/routes/custom_field_definitions.py:101 app/routes/link_templates.py:54
#: app/routes/link_templates.py:110
msgid "Field key is required"
msgstr ""

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

#: app/routes/custom_field_definitions.py:53
#: app/routes/custom_field_definitions.py:110
msgid "Field key must contain only letters, numbers, and underscores"
msgstr ""

#: app/routes/custom_field_definitions.py:59
#: app/routes/custom_field_definitions.py:118
msgid "A custom field definition with this key already exists"
msgstr ""

#: app/routes/custom_field_definitions.py:75
msgid "Could not create custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:78
msgid "Custom field definition created successfully"
msgstr ""

#: app/routes/custom_field_definitions.py:131
msgid "Could not update custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:134
msgid "Custom field definition updated successfully"
msgstr ""

#: app/routes/custom_field_definitions.py:167
msgid "Could not remove custom field from clients due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:174
msgid "Could not delete custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:178
#, python-format
msgid "Custom field definition deleted successfully. The field was removed from %(count)d client(s)."
msgstr ""

#: app/routes/custom_field_definitions.py:185
msgid "Custom field definition deleted successfully"
msgstr ""

#: app/routes/custom_reports.py:43 app/routes/custom_reports.py:661
msgid "You do not have permission to edit this report."
msgstr ""

#: app/routes/custom_reports.py:164
#, python-format
msgid "Report %(action)s successfully"
msgstr ""

#: app/routes/custom_reports.py:192
msgid "You do not have permission to view this report."
msgstr ""

#: app/routes/custom_reports.py:699
msgid "You do not have permission to delete this report view."
msgstr ""

#: app/routes/custom_reports.py:710
#, python-format
msgid "Cannot delete report view: it is used in %(count)d scheduled report(s)."
msgstr ""

#: app/routes/custom_reports.py:716
#, python-format
msgid "Report view \"%(name)s\" deleted successfully."
msgstr ""

#: app/routes/custom_reports.py:718
msgid "Could not delete report view due to a database error"
msgstr ""

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#: app/routes/expenses.py:305 app/routes/expenses.py:555
#: app/routes/expenses.py:1388 app/routes/mileage.py:362
#: app/routes/per_diem.py:312 app/routes/projects.py:1618
#: app/routes/projects.py:1689 app/routes/reports.py:129
#: app/routes/reports.py:189 app/routes/reports.py:369
#: app/routes/reports.py:696 app/routes/reports.py:882
#: app/routes/reports.py:964 app/routes/reports.py:1005
#: app/routes/reports.py:1075 app/routes/reports.py:1155
#: app/routes/reports.py:1252 app/routes/reports.py:1427
#: app/routes/reports.py:1506 app/routes/reports.py:1657
#: app/routes/reports.py:1753 app/routes/timer.py:1703
#: app/routes/weekly_goals.py:89 app/templates/timer/calendar.html:1152
msgid "Invalid date format"
msgstr "Format de date invalide"

#: app/routes/expenses.py:313 app/routes/expenses.py:563
#: app/routes/expenses.py:1396 app/routes/projects.py:1611
#: app/routes/projects.py:1682
msgid "Invalid amount format"
msgstr "Format de montant invalide"

#: app/routes/expenses.py:333 app/routes/issues.py:184
#: app/routes/mileage.py:373 app/routes/per_diem.py:368
#: app/routes/recurring_invoices.py:100 app/routes/timer.py:122
#: app/routes/timer.py:1362
msgid "Selected project does not match the locked client."
msgstr ""

#: app/routes/expenses.py:372 app/routes/expenses.py:632
msgid "Error saving receipt file. Please check directory permissions."
msgstr ""

#: app/routes/expenses.py:375 app/routes/expenses.py:635
msgid "Error uploading receipt file."
msgstr ""

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

#: app/routes/expenses.py:418 app/routes/expenses.py:423
#: app/routes/expenses.py:1443 app/routes/expenses.py:1448
msgid "Error creating expense"
msgstr "Erreur lors de la création de la dépense"

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

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

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

#: app/routes/expenses.py:548 app/routes/expenses.py:1381
#: app/routes/mileage.py:355 app/routes/per_diem.py:304
#: app/routes/per_diem.py:764 app/routes/per_diem.py:820
msgid "Please fill in all required fields"
msgstr "Veuillez remplir tous les champs obligatoires"

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

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

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

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

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

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

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

#: app/routes/expenses.py:752
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:757
#, 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:761
#, python-format
msgid "Skipped %(count)d expense(s): %(errors)s"
msgstr "%(count)d dépense(s) ignorée(s) : %(errors)s"

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

#: app/routes/expenses.py:781 app/routes/invoices.py:834
#: app/routes/mileage.py:631 app/routes/payments.py:544
#: app/routes/per_diem.py:617 app/routes/tasks.py:918
msgid "Invalid status value"
msgstr "Valeur de statut invalide"

#: app/routes/expenses.py:811
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:815
#, 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:824
#, fuzzy, python-format
msgid "Skipped %(count)d expense(s): %(summary)s"
msgstr "%(count)d dépense(s) ignorée(s) : %(errors)s"

#: app/routes/expenses.py:826
#, 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:836
msgid "Only administrators can approve expenses"
msgstr "Seuls les administrateurs peuvent approuver les dépenses"

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

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

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

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

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

#: app/routes/expenses.py:880 app/routes/mileage.py:735
#: app/routes/per_diem.py:709 app/routes/quotes.py:1389
#: app/routes/time_approvals.py:92 app/routes/workforce.py:173
msgid "Rejection reason is required"
msgstr "Le motif du refus est requis"

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

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

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

#: app/routes/expenses.py:910
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:914
msgid "This expense is not marked as reimbursable"
msgstr "Cette dépense n'est pas marquée comme remboursable"

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

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

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

#: app/routes/expenses.py:1274
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:1329
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:1334
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:1347
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:1434
msgid "Expense created successfully from scanned receipt"
msgstr "Dépense créée avec succès à partir du reçu numérisé"

#: app/routes/integrations.py:67
#, fuzzy
msgid "Permission denied."
msgstr "Aucune autorisation attribuée."

#: app/routes/integrations.py:105 app/routes/integrations.py:1372
msgid "Integration provider not available."
msgstr ""

#: app/routes/integrations.py:111 app/templates/integrations/manage.html:665
msgid "Trello integration must be configured by an administrator."
msgstr ""

#: app/routes/integrations.py:132
msgid "Only administrators can set up global integrations."
msgstr ""

#: app/routes/integrations.py:154 app/routes/integrations.py:275
msgid "Could not initialize connector."
msgstr ""

#: app/routes/integrations.py:185
msgid "Google Calendar OAuth credentials need to be configured first. Redirecting to setup..."
msgstr ""

#: app/routes/integrations.py:189
msgid "Google Calendar integration needs to be configured by an administrator first."
msgstr ""

#: app/routes/integrations.py:191
msgid "OAuth credentials not configured. Please configure them first."
msgstr ""

#: app/routes/integrations.py:194
msgid "Integration not configured. Please ask an administrator to set up OAuth credentials."
msgstr ""

#: app/routes/integrations.py:210
#, python-format
msgid "Authorization failed: %(error)s"
msgstr ""

#: app/routes/integrations.py:214
msgid "Authorization code not received."
msgstr ""

#: app/routes/integrations.py:225 app/routes/integrations.py:509
#: app/routes/integrations.py:809 app/routes/integrations.py:857
#: app/routes/integrations.py:898 app/routes/integrations.py:923
#: app/routes/integrations.py:952
msgid "Integration not found."
msgstr ""

#: app/routes/integrations.py:262
msgid "Invalid state parameter. Please try connecting again."
msgstr ""

#: app/routes/integrations.py:297
msgid "Integration connected successfully!"
msgstr ""

#: app/routes/integrations.py:302
#, python-format
msgid "Integration connected but connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:312
#, python-format
msgid "Error connecting integration: %(error)s"
msgstr ""

#: app/routes/integrations.py:366 app/routes/integrations.py:1399
msgid "Only administrators can configure global integrations."
msgstr ""

#: app/routes/integrations.py:379
msgid "Trello API Key is required."
msgstr ""

#: app/routes/integrations.py:385
msgid "Trello API Secret is required for new setup."
msgstr ""

#: app/routes/integrations.py:411
msgid "OAuth Client ID is required."
msgstr ""

#: app/routes/integrations.py:417
msgid "OAuth Client Secret is required for new setup."
msgstr ""

#: app/routes/integrations.py:473
msgid "GitLab Instance URL must be a valid URL (e.g., https://gitlab.com)."
msgstr ""

#: app/routes/integrations.py:476
msgid "GitLab Instance URL format is invalid."
msgstr ""

#: app/routes/integrations.py:492
msgid "Integration credentials updated successfully."
msgstr ""

#: app/routes/integrations.py:495
msgid "Users can now connect their Google Calendar. They will be automatically redirected to Google for authorization."
msgstr ""

#: app/routes/integrations.py:502
msgid "Failed to update credentials."
msgstr ""

#: app/routes/integrations.py:506
#, fuzzy
msgid "Invalid action for this integration."
msgstr "API REST pour les intégrations"

#: app/routes/integrations.py:513
#, fuzzy
msgid "Linear API key is required."
msgstr "Le nom du client est requis"

#: app/routes/integrations.py:527
msgid "Linear API key saved. Use Sync to import issues as tasks."
msgstr ""

#: app/routes/integrations.py:529
msgid "Could not save API key."
msgstr ""

#: app/routes/integrations.py:536
msgid "This action is only available for CalDAV integrations."
msgstr ""

#: app/routes/integrations.py:542 app/routes/integrations.py:594
msgid "Integration not found. Please connect the integration first."
msgstr ""

#: app/routes/integrations.py:550 app/routes/integrations.py:1084
msgid "Username is required."
msgstr ""

#: app/routes/integrations.py:556 app/routes/integrations.py:1086
msgid "Password is required for new setup."
msgstr ""

#: app/routes/integrations.py:578
msgid "CalDAV credentials updated successfully."
msgstr ""

#: app/routes/integrations.py:584
#, python-format
msgid "Failed to update CalDAV credentials: %(message)s"
msgstr ""

#: app/routes/integrations.py:644
#, python-format
msgid "Invalid number for field %(field)s"
msgstr ""

#: app/routes/integrations.py:651 app/routes/integrations.py:673
#, python-format
msgid "Field %(field)s is required"
msgstr ""

#: app/routes/integrations.py:664 app/routes/integrations.py:1451
#, python-format
msgid "Invalid JSON for field %(field)s"
msgstr ""

#: app/routes/integrations.py:697
msgid "Integration configuration updated successfully."
msgstr ""

#: app/routes/integrations.py:700
msgid "Failed to update configuration."
msgstr ""

#: app/routes/integrations.py:879
msgid "Connection test successful!"
msgstr ""

#: app/routes/integrations.py:881
#, python-format
msgid "Connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:904
msgid "Integration deleted successfully."
msgstr ""

#: app/routes/integrations.py:932
msgid "Integration reset successfully. You can now reconfigure it."
msgstr ""

#: app/routes/integrations.py:957
msgid "Connector not available."
msgstr ""

#: app/routes/integrations.py:975
#, python-format
msgid "Sync completed successfully. %(details)s"
msgstr ""

#: app/routes/integrations.py:979
#, python-format
msgid "Sync failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:1001
#, python-format
msgid "Error during sync: %(error)s"
msgstr ""

#: app/routes/integrations.py:1051
msgid "Either server URL or calendar URL is required."
msgstr ""

#: app/routes/integrations.py:1060
msgid "Server URL must be a valid URL (e.g., https://mail.example.com/dav)."
msgstr ""

#: app/routes/integrations.py:1062 app/routes/integrations.py:1225
msgid "Server URL format is invalid."
msgstr ""

#: app/routes/integrations.py:1070
msgid "Calendar URL must be a valid URL."
msgstr ""

#: app/routes/integrations.py:1072
msgid "Calendar URL format is invalid."
msgstr ""

#: app/routes/integrations.py:1094 app/routes/integrations.py:1232
msgid "Selected project not found or is not active."
msgstr ""

#: app/routes/integrations.py:1101
msgid "Lookback days must be between 1 and 365."
msgstr ""

#: app/routes/integrations.py:1103 app/routes/integrations.py:1241
msgid "Lookback days must be a valid number."
msgstr ""

#: app/routes/integrations.py:1148
#, python-format
msgid "Failed to save credentials: %(message)s"
msgstr ""

#: app/routes/integrations.py:1164
msgid "CalDAV integration configured successfully."
msgstr ""

#: app/routes/integrations.py:1167
msgid "Failed to save CalDAV configuration."
msgstr ""

#: app/routes/integrations.py:1218
msgid "ActivityWatch server URL is required."
msgstr ""

#: app/routes/integrations.py:1223
msgid "Server URL must be a valid URL (e.g., http://localhost:5600)."
msgstr ""

#: app/routes/integrations.py:1239
msgid "Lookback days must be between 1 and 90."
msgstr ""

#: app/routes/integrations.py:1276
msgid "ActivityWatch integration configured successfully."
msgstr ""

#: app/routes/integrations.py:1282
#, python-format
msgid "Configuration saved but connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:1288
msgid "Failed to save ActivityWatch configuration."
msgstr ""

#: app/routes/integrations.py:1365
msgid "Setup wizard not available for this integration."
msgstr ""

#: app/routes/integrations.py:1378
msgid "Connector class not found."
msgstr ""

#: app/routes/integrations.py:1512
msgid "Integration configured successfully!"
msgstr ""

#: app/routes/integrations.py:1519
msgid "Failed to save configuration."
msgstr ""

#: app/routes/integrations.py:1535
msgid "OAuth Setup"
msgstr ""

#: app/routes/integrations.py:1535 app/routes/integrations.py:1541
msgid "Connection Test"
msgstr ""

#: app/routes/integrations.py:1535 app/routes/integrations.py:1537
#: app/routes/integrations.py:1538 app/routes/integrations.py:1539
#: app/routes/integrations.py:1540
msgid "Sync Config"
msgstr ""

#: app/routes/integrations.py:1535 app/templates/admin/modules.html:179
#: app/templates/admin/modules.html:221
#: app/templates/admin/oidc_setup_wizard.html:41
#: app/templates/admin/pdf_layout.html:1909
#: app/templates/admin/quote_pdf_layout.html:1715
msgid "Advanced"
msgstr "Avancé"

#: app/routes/integrations.py:1535 app/routes/integrations.py:1536
#: app/routes/integrations.py:1537 app/routes/integrations.py:1538
#: app/routes/integrations.py:1539 app/routes/integrations.py:1540
#: app/routes/integrations.py:1541 app/routes/integrations.py:1542
#: app/routes/integrations.py:1543
#: app/templates/analytics/dashboard_improved.html:224
#: app/templates/tasks/create.html:73 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:477 app/templates/tasks/edit.html:82
#: app/templates/tasks/edit.html:657 app/templates/tasks/my_tasks.html:74
#: app/templates/tasks/my_tasks.html:133 app/utils/i18n_helpers.py:18
#: app/utils/i18n_helpers.py:30
msgid "Review"
msgstr "Revoir"

#: app/routes/integrations.py:1536
msgid "Instance"
msgstr ""

#: app/routes/integrations.py:1536 app/routes/integrations.py:1537
#: app/routes/integrations.py:1538 app/routes/integrations.py:1539
#: app/routes/integrations.py:1540 app/routes/integrations.py:1542
#: app/routes/integrations.py:1543
msgid "OAuth"
msgstr ""

#: app/routes/integrations.py:1536 app/routes/integrations.py:1539
#: app/templates/integrations/wizard_github.html:50
#: app/templates/integrations/wizard_github.html:197
msgid "Repositories"
msgstr ""

#: app/routes/integrations.py:1536
msgid "Sync Settings"
msgstr ""

#: app/routes/integrations.py:1537 app/templates/leads/list.html:51
#: app/templates/leads/list.html:65 app/templates/leads/view.html:43
#: app/templates/setup/initial_setup.html:135
msgid "Company"
msgstr "Entreprise"

#: app/routes/integrations.py:1537 app/routes/integrations.py:1538
msgid "Mappings"
msgstr ""

#: app/routes/integrations.py:1538
msgid "Tenant"
msgstr ""

#: app/routes/integrations.py:1539 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 app/templates/base.html:1079
msgid "Webhooks"
msgstr "Webhooks"

#: app/routes/integrations.py:1540
msgid "Workspace"
msgstr ""

#: app/routes/integrations.py:1540 app/templates/admin/oidc_user_detail.html:61
#: app/templates/analytics/mobile_dashboard.html:49
#: app/templates/auth/login.html:37 app/templates/base.html:602
#: app/templates/client_portal/base.html:257
#: app/templates/client_portal/base.html:342
#: app/templates/client_portal/dashboard.html:76
#: app/templates/client_portal/project_comments.html:9
#: app/templates/client_portal/projects.html:4
#: app/templates/client_portal/projects.html:9
#: app/templates/client_portal/projects.html:14
#: app/templates/client_portal/widgets/projects.html:8
#: app/templates/components/activity_feed_widget.html:23
#: app/templates/components/offline_indicator.html:84
#: app/templates/integrations/wizard_asana.html:110
#: app/templates/integrations/wizard_gitlab.html:148
#: app/templates/integrations/wizard_jira.html:134
#: app/templates/partials/_bottom_nav.html:78
#: app/templates/partials/_bottom_nav.html:82
#: app/templates/projects/add_cost.html:11
#: app/templates/projects/edit_cost.html:11
#: app/templates/projects/time_entries_overview.html:8
#: app/templates/projects/view.html:6 app/templates/reports/builder.html:367
#: app/templates/reports/unpaid_hours_report.html:76
#: app/templates/reports/unpaid_hours_report.html:97
msgid "Projects"
msgstr "Projets"

#: app/routes/integrations.py:1541
msgid "API Keys"
msgstr ""

#: app/routes/integrations.py:1542 app/routes/integrations.py:1543
#: app/templates/admin/integrations/setup.html:100
#: app/templates/integrations/manage.html:151
#: app/templates/integrations/wizard_microsoft_teams.html:18
#: app/templates/integrations/wizard_microsoft_teams.html:82
#: app/templates/integrations/wizard_outlook_calendar.html:18
#: app/templates/integrations/wizard_outlook_calendar.html:82
#: app/templates/integrations/wizard_xero.html:43
#: app/templates/integrations/wizard_xero.html:179
msgid "Tenant ID"
msgstr ""

#: app/routes/integrations.py:1554
#, python-format
msgid "%(name)s Setup Wizard"
msgstr ""

#: app/routes/integrations.py:1555
#, python-format
msgid "Guided step-by-step configuration for %(name)s"
msgstr ""

#: app/routes/integrations.py:1593
msgid "Integration not found"
msgstr ""

#: app/routes/integrations.py:1598
msgid "Connector not available"
msgstr ""

#: app/routes/inventory.py:190
msgid "SKU is required"
msgstr ""

#: app/routes/inventory.py:194
msgid "Name is required"
msgstr ""

#: app/routes/inventory.py:201
#, python-format
msgid "Invalid SKU: %(error)s"
msgstr ""

#: app/routes/inventory.py:208
#, python-format
msgid "Invalid name: %(error)s"
msgstr ""

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

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

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

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

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

#: app/routes/inventory.py:590
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:598
msgid "Stock item deleted successfully."
msgstr "Article en stock supprimé avec succès."

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

#: app/routes/inventory.py:640 app/routes/inventory.py:710
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:659
msgid "Warehouse created successfully."
msgstr "Entrepôt créé avec succès."

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

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

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

#: app/routes/inventory.py:747
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:755
msgid "Warehouse deleted successfully."
msgstr "Entrepôt supprimé avec succès."

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

#: app/routes/inventory.py:945 app/routes/inventory.py:1027
msgid "Stock item is not trackable. Devaluation requires trackable items."
msgstr ""

#: app/routes/inventory.py:947
msgid "Devaluation quantity must be positive"
msgstr ""

#: app/routes/inventory.py:951 app/routes/inventory.py:1031
msgid "Stock item must have a default cost to perform devaluation"
msgstr ""

#: app/routes/inventory.py:956
msgid "Devaluation percent is required when using percent method"
msgstr ""

#: app/routes/inventory.py:960 app/routes/inventory.py:1040
msgid "Invalid devaluation percent value"
msgstr ""

#: app/routes/inventory.py:962 app/routes/inventory.py:1042
msgid "Devaluation percent cannot be negative"
msgstr ""

#: app/routes/inventory.py:964 app/routes/inventory.py:1044
msgid "Devaluation percent cannot exceed 100%"
msgstr ""

#: app/routes/inventory.py:968
msgid "New unit cost is required when using fixed cost method"
msgstr ""

#: app/routes/inventory.py:972 app/routes/inventory.py:1054
msgid "Invalid unit cost value"
msgstr ""

#: app/routes/inventory.py:974 app/routes/inventory.py:1056
msgid "Unit cost cannot be negative"
msgstr ""

#: app/routes/inventory.py:976 app/routes/inventory.py:1058
msgid "Invalid devaluation method"
msgstr ""

#: app/routes/inventory.py:984 app/routes/inventory.py:1070
#: app/routes/inventory.py:1084
#, python-format
msgid "Devaluation cost (%(devalued)s) cannot be greater than original cost (%(original)s)"
msgstr ""

#: app/routes/inventory.py:998
#, python-format
msgid "Insufficient stock to devalue. Available: %(available)s, Requested: %(requested)s"
msgstr ""

#: app/routes/inventory.py:1013
msgid "Stock devaluation recorded successfully."
msgstr ""

#: app/routes/inventory.py:1020
msgid "Return movements must use a positive quantity"
msgstr ""

#: app/routes/inventory.py:1022
msgid "Waste movements must use a negative quantity"
msgstr ""

#: app/routes/inventory.py:1036
msgid "Devaluation percent is required when devaluation is enabled"
msgstr ""

#: app/routes/inventory.py:1050
msgid "New unit cost is required when devaluation is enabled"
msgstr ""

#: app/routes/inventory.py:1098
#, python-format
msgid "Insufficient stock to waste. Available: %(available)s, Requested: %(requested)s"
msgstr ""

#: app/routes/inventory.py:1120
#, python-format
msgid "Failed to devalue stock before waste: %(error)s"
msgstr ""

#: app/routes/inventory.py:1142
#, python-format
msgid "Failed to record movement: %(error)s"
msgstr ""

#: app/routes/inventory.py:1156
msgid "Return movement recorded successfully with devaluation applied."
msgstr ""

#: app/routes/inventory.py:1158
msgid "Waste movement recorded successfully with devaluation applied."
msgstr ""

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

#: app/routes/inventory.py:1166
#, python-format
msgid "Error: %(error)s"
msgstr ""

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

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

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

#: app/routes/inventory.py:1271
msgid "Stock item not found."
msgstr ""

#: app/routes/inventory.py:1274
msgid "Source warehouse not found."
msgstr ""

#: app/routes/inventory.py:1277
msgid "Destination warehouse not found."
msgstr ""

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

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

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

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

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

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

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

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

#: app/routes/inventory.py:1642
#, python-format
msgid "Supplier with code '%(code)s' already exists"
msgstr ""

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

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

#: app/routes/inventory.py:1715
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:1736
msgid "Supplier updated successfully."
msgstr "Fournisseur mis à jour avec succès."

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

#: app/routes/inventory.py:1757
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:1766
msgid "Supplier deleted successfully."
msgstr "Fournisseur supprimé avec succès."

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

#: app/routes/inventory.py:1817
#, fuzzy
msgid "Supplier is required."
msgstr "Le titre est requis"

#: app/routes/inventory.py:1822
#, fuzzy
msgid "Supplier not found."
msgstr "Aucun fournisseur trouvé."

#: app/routes/inventory.py:1827
#, fuzzy
msgid "Order date is required."
msgstr "Le nom du rôle est requis"

#: app/routes/inventory.py:1908
#, fuzzy
msgid "Could not create purchase order 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/inventory.py:1916
msgid "Purchase order created successfully."
msgstr "Bon de commande créé avec succès."

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

#: app/routes/inventory.py:1966
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:2038
#, fuzzy
msgid "Could not update purchase order 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/inventory.py:2042
msgid "Purchase order updated successfully."
msgstr "Bon de commande mis à jour avec succès."

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

#: app/routes/inventory.py:2079
#, fuzzy
msgid "Could not update purchase order status 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/inventory.py:2083
msgid "Purchase order marked as sent."
msgstr "Bon de commande marqué comme envoyé."

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

#: app/routes/inventory.py:2103
#, fuzzy
msgid "Could not cancel purchase order 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/inventory.py:2107
msgid "Purchase order cancelled successfully."
msgstr "Bon de commande annulé avec succès."

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

#: app/routes/inventory.py:2125
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:2131
#, fuzzy
msgid "Could not delete purchase order due to a database error."
msgstr "Impossible de supprimer le rôle en raison d'une erreur de base de données"

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

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

#: app/routes/inventory.py:2175
#, fuzzy
msgid "Could not receive purchase order 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/inventory.py:2179
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:2182
#, python-format
msgid "Error receiving purchase order: %(error)s"
msgstr "Erreur lors de la réception du bon de commande : %(error)s"

#: app/routes/invoice_approvals.py:31
msgid "An approval request is already pending for this invoice."
msgstr ""

#: app/routes/invoice_approvals.py:44
#: app/templates/invoice_approvals/request.html:49
msgid "Please select at least one approver."
msgstr ""

#: app/routes/invoice_approvals.py:52
msgid "Approval request created successfully."
msgstr ""

#: app/routes/invoice_approvals.py:83
msgid "Invoice approved successfully."
msgstr ""

#: app/routes/invoice_approvals.py:100
msgid "Please provide a reason for rejection."
msgstr ""

#: app/routes/invoice_approvals.py:107
msgid "Invoice approval rejected."
msgstr ""

#: app/routes/invoices.py:112
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:118 app/routes/tasks.py:238 app/routes/tasks.py:461
msgid "Invalid due date format"
msgstr "Format de date d'échéance invalide"

#: app/routes/invoices.py:124 app/routes/offers.py:108 app/routes/offers.py:240
#: app/routes/quotes.py:225 app/routes/quotes.py:544
#: app/routes/recurring_invoices.py:88
msgid "Invalid tax rate format"
msgstr "Format de taux de taxe invalide"

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

#: app/routes/invoices.py:187
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:259
msgid "You do not have permission to view this invoice"
msgstr "Vous n'êtes pas autorisé à consulter cette facture"

#: app/routes/invoices.py:305
msgid "Company Tax ID (VAT) is missing in Admin → Settings → Company Branding."
msgstr ""

#: app/routes/invoices.py:309
msgid "Sender Endpoint ID is missing in Admin → Settings → Peppol e-Invoicing."
msgstr ""

#: app/routes/invoices.py:313
msgid "Sender Scheme ID is missing in Admin → Settings → Peppol e-Invoicing."
msgstr ""

#: app/routes/invoices.py:319
msgid "Client Peppol Endpoint ID is missing. Add peppol_endpoint_id to the client's custom fields."
msgstr ""

#: app/routes/invoices.py:323
msgid "Client Peppol Scheme ID is missing. Add peppol_scheme_id to the client's custom fields."
msgstr ""

#: app/routes/invoices.py:327
msgid "Invoice has no linked client; buyer PEPPOL identifiers cannot be checked."
msgstr ""

#: app/routes/invoices.py:334 app/routes/invoices.py:341
msgid "Could not verify PEPPOL compliance; check configuration."
msgstr ""

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

#: app/routes/invoices.py:553 app/routes/quotes.py:902
#: app/routes/quotes.py:1008
#, 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:561
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:568
msgid "Invoice updated successfully"
msgstr "Facture mise à jour avec succès"

#: app/routes/invoices.py:715
#, 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:745
msgid "You do not have permission to delete this invoice"
msgstr "Vous n'êtes pas autorisé à supprimer cette facture"

#: app/routes/invoices.py:749
#, fuzzy
msgid "Only draft invoices can be deleted."
msgstr "Seuls les brouillons de devis peuvent être modifiés"

#: app/routes/invoices.py:755
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:769
msgid "No invoices selected for deletion"
msgstr "Aucune facture sélectionnée pour suppression"

#: app/routes/invoices.py:806
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:828
msgid "No invoices selected"
msgstr "Aucune facture sélectionnée"

#: app/routes/invoices.py:872
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:905
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:1009
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:1021
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:1024
#, 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:1064 app/routes/invoices.py:1115
#: app/routes/invoices.py:1167
msgid "You do not have permission to export this invoice"
msgstr "Vous n'êtes pas autorisé à exporter cette facture"

#: app/routes/invoices.py:1130
#, python-format
msgid "Cannot generate UBL: %(msg)s"
msgstr ""

#: app/routes/invoices.py:1134
#, python-format
msgid "UBL export failed: %(msg)s"
msgstr ""

#: app/routes/invoices.py:1216
#, python-format
msgid "Factur-X embedding is enabled but failed: %(err)s. Export aborted so the PDF does not ship without embedded XML."
msgstr ""

#: app/routes/invoices.py:1228 app/routes/invoices.py:1290
#, python-format
msgid "PDF/A-3 normalization failed: %(err)s. Export aborted."
msgstr ""

#: app/routes/invoices.py:1241
#, python-format
msgid "veraPDF validation reported issues: %(summary)s"
msgstr ""

#: app/routes/invoices.py:1243
#, python-format
msgid "veraPDF: %(summary)s"
msgstr ""

#: app/routes/invoices.py:1285
#, python-format
msgid "Factur-X embedding is enabled but failed: %(err)s. Export aborted."
msgstr ""

#: app/routes/invoices.py:1307
#, 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:1321
msgid "You do not have permission to duplicate this invoice"
msgstr "Vous n'êtes pas autorisé à dupliquer cette facture"

#: app/routes/invoices.py:1348
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:1379
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.py:1594
msgid "You do not have permission to upload images to this invoice"
msgstr ""

#: app/routes/invoices.py:1621 app/routes/quotes.py:2000
msgid "File type not allowed. Only images are allowed"
msgstr ""

#: app/routes/invoices.py:1635 app/routes/quotes.py:2014
msgid "File size exceeds maximum allowed size (5 MB)"
msgstr ""

#: app/routes/invoices.py:1683 app/routes/quotes.py:2062
msgid "Could not upload image due to a database error. Please check server logs."
msgstr ""

#: app/routes/invoices.py:1707 app/routes/quotes.py:2086
#: app/templates/main/dashboard.html:1606
#: app/templates/timer/edit_timer.html:871
#: app/templates/timer/manual_entry.html:1045
msgid "Image uploaded successfully"
msgstr ""

#: app/routes/invoices.py:1759
msgid "You do not have permission to delete images from this invoice"
msgstr ""

#: app/routes/invoices.py:1776 app/routes/quotes.py:2157
msgid "Could not delete image due to a database error. Please check server logs."
msgstr ""

#: app/routes/invoices.py:1794 app/routes/quotes.py:2175
msgid "Image deleted successfully"
msgstr ""

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

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

#: app/routes/issues.py:166
msgid "You do not have permission to create issues."
msgstr ""

#: app/routes/issues.py:193
msgid "Client is required."
msgstr ""

#: app/routes/issues.py:221
msgid "Issue created successfully."
msgstr ""

#: app/routes/issues.py:270
msgid "You do not have permission to view this issue."
msgstr ""

#: app/routes/issues.py:325
msgid "You do not have permission to edit this issue."
msgstr ""

#: app/routes/issues.py:345
msgid "Project must belong to the same client."
msgstr ""

#: app/routes/issues.py:367
msgid "Could not update issue due to a database error."
msgstr ""

#: app/routes/issues.py:370
msgid "Issue updated successfully."
msgstr ""

#: app/routes/issues.py:398
msgid "Please select a task."
msgstr ""

#: app/routes/issues.py:403
msgid "Issue linked to task successfully."
msgstr ""

#: app/routes/issues.py:420
msgid "Please select a project."
msgstr ""

#: app/routes/issues.py:429
msgid "Task created from issue successfully."
msgstr ""

#: app/routes/issues.py:445
msgid "Status is required."
msgstr ""

#: app/routes/issues.py:464
msgid "Issue status updated successfully."
msgstr ""

#: app/routes/issues.py:481
msgid "Issue assigned successfully."
msgstr ""

#: app/routes/issues.py:483
msgid "Could not assign issue."
msgstr ""

#: app/routes/issues.py:497
msgid "Priority is required."
msgstr ""

#: app/routes/issues.py:502
msgid "Issue priority updated successfully."
msgstr ""

#: app/routes/issues.py:515
msgid "Only administrators can delete issues."
msgstr ""

#: app/routes/issues.py:523
msgid "Could not delete issue due to a database error."
msgstr ""

#: app/routes/issues.py:526
msgid "Issue deleted successfully."
msgstr ""

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

#: app/routes/kanban.py:189
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:261
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:299
msgid "System columns cannot be deleted"
msgstr "Les colonnes système ne peuvent pas être supprimées"

#: app/routes/kanban.py:335
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:385
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/kiosk.py:35 app/routes/kiosk.py:95
msgid "Kiosk mode is not enabled. Please contact an administrator."
msgstr ""

#: app/routes/kiosk.py:140
msgid "No password is set for this account. Please set a password in your profile first."
msgstr ""

#: app/routes/kiosk.py:179
msgid "You have been logged out"
msgstr ""

#: app/routes/kiosk.py:326
msgid "Stock adjustment recorded successfully"
msgstr ""

#: app/routes/kiosk.py:437
msgid "Stock transfer completed successfully"
msgstr ""

#: app/routes/kiosk.py:503
msgid "Timer started successfully"
msgstr ""

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

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

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

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

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

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

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

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

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

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

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

#: app/routes/link_templates.py:46 app/routes/link_templates.py:102
msgid "URL template is required"
msgstr ""

#: app/routes/link_templates.py:50 app/routes/link_templates.py:106
#, python-brace-format
msgid "URL template must contain {value} or %value% placeholder"
msgstr ""

#: app/routes/link_templates.py:71
msgid "Could not create link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:74
msgid "Link template created successfully"
msgstr ""

#: app/routes/link_templates.py:124
msgid "Could not update link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:127
msgid "Link template updated successfully"
msgstr ""

#: app/routes/link_templates.py:142
msgid "Could not delete link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:144
msgid "Link template deleted successfully"
msgstr ""

#: app/routes/main.py:236
msgid "You have been using TimeTracker for a week or more. If it fits your workflow, consider supporting continued development."
msgstr ""

#: app/routes/main.py:244
msgid "You have tracked a solid amount of time today. If TimeTracker makes your day easier, you can support the project in a click."
msgstr ""

#: app/routes/mileage.py:303 app/routes/per_diem.py:257
#: app/routes/reports.py:572 app/routes/timer.py:2956
#, python-format
msgid "PDF export failed: %(error)s"
msgstr ""

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

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

#: app/routes/mileage.py:434
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:453
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:458
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:503
msgid "Mileage entry updated successfully"
msgstr "Entrée de kilométrage mise à jour avec succès"

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

#: app/routes/mileage.py:526
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:533
msgid "Mileage entry deleted successfully"
msgstr "Entrée de kilométrage supprimée avec succès"

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

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

#: app/routes/mileage.py:585
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:594
#, python-format
msgid "Successfully deleted %(count)d mileage entr%(plural)s"
msgstr "%(count)d entrée de kilométrage %(plural)s a été supprimée avec succès"

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

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

#: app/routes/mileage.py:658
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:662
#, python-format
msgid "Successfully updated %(count)d mileage entr%(plural)s to %(status)s"
msgstr "%(count)d entrée de kilométrage %(plural)s a été mise à jour avec succès en %(status)s"

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

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

#: app/routes/mileage.py:696
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:704
msgid "Mileage entry approved successfully"
msgstr "Entrée de kilométrage approuvée avec succès"

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

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

#: app/routes/mileage.py:729
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:741
msgid "Mileage entry rejected"
msgstr "Entrée de kilométrage refusée"

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

#: app/routes/mileage.py:760
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:766
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:773
msgid "Mileage entry marked as reimbursed"
msgstr "Entrée de kilométrage marquée comme remboursée"

#: app/routes/mileage.py:777 app/routes/mileage.py:781
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:156
msgid "Quote title and client are required"
msgstr "Le titre du devis et le client sont requis"

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

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

#: app/routes/offers.py:100 app/routes/offers.py:232 app/routes/quotes.py:211
msgid "Invalid estimated hours format"
msgstr "Format des heures estimées invalide"

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

#: app/routes/offers.py:163 app/routes/quotes.py:450
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:172 app/routes/quotes.py:465
msgid "Quote created successfully"
msgstr "Devis créé avec succès"

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

#: app/routes/offers.py:265 app/routes/quotes.py:833
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:271 app/routes/quotes.py:845
msgid "Quote updated successfully"
msgstr "Devis mis à jour avec succès"

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

#: app/routes/offers.py:291 app/routes/quotes.py:908
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:297 app/routes/quotes.py:928
msgid "Quote sent successfully"
msgstr "Devis envoyé avec succès"

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

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

#: app/routes/offers.py:345 app/routes/quotes.py:1014
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:357 app/routes/quotes.py:1040
msgid "Quote accepted and project created successfully"
msgstr "Devis accepté et projet créé avec succès"

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

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

#: app/routes/offers.py:381 app/routes/quotes.py:1064 app/routes/quotes.py:1399
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:387 app/routes/quotes.py:1070
msgid "Quote rejected"
msgstr "Devis rejeté"

#: app/routes/offers.py:400 app/routes/quotes.py:1083
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:407 app/routes/quotes.py:1090
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:413 app/routes/quotes.py:1096
msgid "Quote deleted successfully"
msgstr "Devis supprimé avec succès"

#: app/routes/payment_gateways.py:61
msgid "Payment gateway created successfully."
msgstr ""

#: app/routes/payment_gateways.py:81
msgid "No payment gateway configured. Please contact an administrator."
msgstr ""

#: app/routes/payment_gateways.py:97
msgid "Stripe API key not configured."
msgstr ""

#: app/routes/payment_gateways.py:225
msgid "Payment processed successfully."
msgstr ""

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

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

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

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

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

#: app/routes/payments.py:171
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:178 app/routes/payments.py:348
msgid "Payment amount must be greater than zero"
msgstr "Le montant du paiement doit être supérieur à zéro"

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

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

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

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

#: app/routes/payments.py:278
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:325
msgid "You do not have permission to edit this payment"
msgstr "Vous n'êtes pas autorisé à modifier ce paiement"

#: app/routes/payments.py:407
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:417
msgid "Payment updated successfully"
msgstr "Paiement mis à jour avec succès"

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

#: app/routes/payments.py:453
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:459
msgid "Payment deleted successfully"
msgstr "Paiement supprimé avec succès"

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

#: app/routes/payments.py:516
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:538
msgid "No payments selected"
msgstr "Aucun paiement sélectionné"

#: app/routes/payments.py:589
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:316
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:352
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:408
msgid "Per diem claim created successfully"
msgstr "Réclamation d'indemnité journalière créée avec succès"

#: app/routes/per_diem.py:417 app/routes/per_diem.py:422
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:435
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:454
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:459
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:501
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:506 app/routes/per_diem.py:511
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:524
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:531
msgid "Per diem claim deleted successfully"
msgstr "Demande d'indemnité journalière supprimée avec succès"

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

#: app/routes/per_diem.py:552
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:583
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:591
#, 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:595
#, python-format
msgid "Skipped %(count)d per diem claim(s): %(errors)s"
msgstr "%(count)d demandes d'indemnités journalières ignorées : %(errors)s"

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

#: app/routes/per_diem.py:644
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:648
#, 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:653
#, 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:664
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:670
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:678
msgid "Per diem claim approved successfully"
msgstr "Demande d'indemnité journalière approuvée avec succès"

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

#: app/routes/per_diem.py:697
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:703
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:715
msgid "Per diem claim rejected"
msgstr "Demande d'indemnité journalière rejetée"

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

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

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

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

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

#: app/routes/per_diem.py:877
#, 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:888
msgid "Per diem rate deleted successfully"
msgstr "Taux journalier supprimé avec succès"

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

#: app/routes/permissions.py:66 app/routes/permissions.py:137
#: app/routes/permissions.py:226 app/routes/permissions.py:275
#: app/routes/permissions.py:302 app/utils/permissions.py:42
#: app/utils/permissions.py:74
msgid "You do not have permission to access this page"
msgstr "Vous n'êtes pas autorisé à accéder à cette page"

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

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

#: app/routes/permissions.py:109
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:117
msgid "Role created successfully"
msgstr "Rôle créé avec succès"

#: app/routes/permissions.py:159 app/templates/admin/roles/form.html:39
msgid "System role names cannot be changed"
msgstr ""

#: app/routes/permissions.py:197
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:205
msgid "Role updated successfully"
msgstr "Rôle mis à jour avec succès"

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

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

#: app/routes/permissions.py:254
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:261
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:264
#, python-format
msgid "Role \"%(name)s\" deleted successfully"
msgstr "Le rôle « %(name)s » a été supprimé avec succès"

#: app/routes/permissions.py:320
msgid "Only Super Admins can assign the super_admin role"
msgstr ""

#: app/routes/permissions.py:328
msgid "Only Super Admins can remove the admin role from themselves"
msgstr ""

#: app/routes/permissions.py:334
msgid "Only Super Admins can remove the admin role from other users"
msgstr ""

#: app/routes/permissions.py:355
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:358
msgid "User roles updated successfully"
msgstr "Les rôles d'utilisateur ont été mis à jour avec succès"

#: app/routes/project_templates.py:163
msgid "Template created successfully."
msgstr ""

#: app/routes/project_templates.py:182 app/routes/project_templates.py:202
#: app/routes/project_templates.py:307
msgid "Template not found."
msgstr ""

#: app/routes/project_templates.py:187
msgid "You do not have permission to view this template."
msgstr ""

#: app/routes/project_templates.py:206
msgid "You do not have permission to edit this template."
msgstr ""

#: app/routes/project_templates.py:270
msgid "Template updated successfully."
msgstr ""

#: app/routes/project_templates.py:289
msgid "Template deleted successfully."
msgstr ""

#: app/routes/project_templates.py:317
msgid "Please select a client."
msgstr ""

#: app/routes/project_templates.py:347
msgid "Project created from template successfully."
msgstr ""

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

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

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

#: app/routes/projects.py:449
msgid "Could not save project due to a database error"
msgstr ""

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

#: app/routes/projects.py:1068
msgid "Could not update project due to a database error"
msgstr ""

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

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

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

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

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

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

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

#: app/routes/projects.py:1239
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:1259
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:1272
msgid "You do not have permission to delete projects"
msgstr "Vous n'êtes pas autorisé à supprimer des projets"

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

#: app/routes/projects.py:1317
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:1331
msgid "No projects were deleted"
msgstr "Aucun projet n'a été supprimé"

#: app/routes/projects.py:1342
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:1350
msgid "No projects selected"
msgstr "Aucun projet sélectionné"

#: app/routes/projects.py:1413
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:1430
msgid "No projects were updated"
msgstr "Aucun projet n'a été mis à jour"

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

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

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

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

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

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

#: app/routes/projects.py:1602 app/routes/projects.py:1673
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:1636
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:1639
msgid "Cost added successfully"
msgstr "Coût ajouté avec succès"

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

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

#: app/routes/projects.py:1703
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:1706
msgid "Cost updated successfully"
msgstr "Coût mis à jour avec succès"

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

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

#: app/routes/projects.py:1737
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:1830 app/routes/projects.py:1905
msgid "Name and unit price are required"
msgstr "Le nom et le prix unitaire sont requis"

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

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

#: app/routes/projects.py:1867
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:1870
msgid "Extra good added successfully"
msgstr "Extra bon ajouté avec succès"

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

#: app/routes/projects.py:1890
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:1938
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:1941
msgid "Extra good updated successfully"
msgstr "Extra bon mis à jour avec succès"

#: app/routes/projects.py:1961
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:1966
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:1972
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:190
msgid "Project created successfully"
msgstr "Projet créé avec succès"

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

#: app/routes/quotes.py:866
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:874
#, python-format
msgid "Cannot send quote: %(error)s"
msgstr "Impossible d'envoyer le devis : %(error)s"

#: app/routes/quotes.py:1115
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:1229
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:1298
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:1302 app/routes/quotes.py:1340
#: app/routes/quotes.py:1380
msgid "This quote does not require approval"
msgstr "Ce devis ne nécessite pas d'approbation"

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

#: app/routes/quotes.py:1312
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:1328
msgid "Approval requested successfully"
msgstr "Approbation demandée avec succès"

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

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

#: app/routes/quotes.py:1356
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:1368
msgid "Quote approved successfully"
msgstr "Devis approuvé avec succès"

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

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

#: app/routes/quotes.py:1488
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:1494
msgid "Template created successfully"
msgstr "Modèle créé avec succès"

#: app/routes/quotes.py:1507
msgid "Quote ID is required"
msgstr ""

#: app/routes/quotes.py:1513
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:1555
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:1561
msgid "Template saved successfully"
msgstr "Modèle enregistré avec succès"

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

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

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

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

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

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

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

#: app/routes/quotes.py:1771
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:1796
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:1799
#, python-format
msgid "Quote %(quote_number)s created as duplicate"
msgstr "Citation %(quote_number)s créée en double"

#: app/routes/quotes.py:1824
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:1830
msgid "Invalid quote IDs"
msgstr "ID de devis invalides"

#: app/routes/quotes.py:1839
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:1905
#, python-format
msgid "Duplicated %(count)d quote(s)"
msgstr "%(count)d citation(s) en double"

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

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

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

#: app/routes/quotes.py:1926
#, 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:1928
msgid "Error updating quotes"
msgstr "Erreur lors de la mise à jour des devis"

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

#: app/routes/quotes.py:1946
#, 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:1948
msgid "Error deleting quotes"
msgstr "Erreur lors de la suppression des guillemets"

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

#: app/routes/quotes.py:1973
msgid "You do not have permission to upload images to this quote"
msgstr ""

#: app/routes/quotes.py:2140
msgid "You do not have permission to delete images from this quote"
msgstr ""

#: app/routes/recurring_invoices.py:68
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:74
msgid "Invalid next run date format"
msgstr "Format de date de prochaine exécution non valide"

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

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

#: app/routes/recurring_invoices.py:137
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:173
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:191
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:216
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:224
msgid "Recurring invoice updated successfully"
msgstr "Facture récurrente mise à jour avec succès"

#: app/routes/recurring_invoices.py:251
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:257
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/recurring_tasks.py:64
msgid "Recurring task created successfully"
msgstr ""

#: app/routes/reports.py:134 app/routes/reports.py:208
#: app/routes/reports.py:860 app/routes/timer.py:2266
msgid "You do not have permission to view other users' time entries"
msgstr ""

#: app/routes/reports.py:387 app/routes/reports.py:959
#: app/routes/reports.py:1000 app/routes/reports.py:1093
#: app/routes/reports.py:1176 app/routes/reports.py:1270
#: app/routes/reports.py:1445
msgid "You do not have permission to export other users' time entries"
msgstr ""

#: app/routes/reports.py:1014 app/templates/main/dashboard.html:706
#: app/templates/main/search.html:34 app/templates/mileage/gps.html:31
#: app/templates/projects/_kanban_tailwind.html:78
#: app/templates/projects/time_entries_overview.html:68
#: app/templates/projects/time_entries_overview.html:79
#: app/templates/reports/time_entries_report.html:103
#: app/templates/reports/time_entries_report.html:117
#: app/templates/tasks/view.html:14 app/templates/timer/calendar.html:868
#: app/templates/timer/time_entries_export_pdf.html:14
msgid "Start"
msgstr "Commencer"

#: app/routes/reports.py:1015 app/templates/main/search.html:35
#: app/templates/projects/time_entries_overview.html:69
#: app/templates/projects/time_entries_overview.html:80
#: app/templates/timer/calendar.html:872
#: app/templates/timer/time_entries_export_pdf.html:15
msgid "End"
msgstr "Fin"

#: app/routes/reports.py:1016 app/templates/reports/user_report.html:78
msgid "Duration (hours)"
msgstr ""

#: app/routes/reports.py:1018 app/templates/approvals/view.html:52
#: app/templates/audit_logs/view.html:95
#: app/templates/calendar/event_detail.html:104
#: app/templates/calendar/event_form.html:129
#: app/templates/clients/view.html:351
#: app/templates/components/offline_indicator.html:78
#: app/templates/kiosk/dashboard.html:331 app/templates/main/dashboard.html:750
#: app/templates/projects/_kanban_tailwind.html:30
#: app/templates/projects/time_entries_overview.html:71
#: app/templates/projects/time_entries_overview.html:82
#: app/templates/reports/time_entries_report.html:57
#: app/templates/reports/time_entries_report.html:107
#: app/templates/reports/time_entries_report.html:121
#: app/templates/reports/unpaid_hours_report.html:121
#: app/templates/reports/user_report.html:77
#: app/templates/timer/_time_entries_list.html:39
#: app/templates/timer/_time_entries_list.html:80
#: app/templates/timer/calendar.html:158 app/templates/timer/calendar.html:811
#: app/templates/timer/calendar.html:866
#: app/templates/timer/manual_entry.html:79
#: app/templates/timer/time_entries_export_pdf.html:17
#: app/templates/timer/timer_page.html:160
#: app/templates/timer/view_timer.html:91
msgid "Task"
msgstr "Tâche"

#: app/routes/reports.py:1019 app/templates/admin/pdf_layout.html:1864
#: app/templates/admin/quote_pdf_layout.html:1670
#: app/templates/admin/salesman_email_mappings.html:124
#: app/templates/approvals/view.html:62
#: app/templates/client_portal/invoice_detail.html:123
#: app/templates/clients/view.html:354 app/templates/contacts/form.html:84
#: app/templates/contacts/view.html:70 app/templates/deals/form.html:102
#: app/templates/deals/view.html:112
#: app/templates/inventory/adjustments/form.html:50
#: app/templates/inventory/movements/form.html:108
#: 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:51 app/templates/invoices/edit.html:46
#: app/templates/kiosk/dashboard.html:347 app/templates/leads/form.html:88
#: app/templates/leads/view.html:115 app/templates/main/dashboard.html:760
#: app/templates/main/search.html:37 app/templates/projects/add_cost.html:76
#: app/templates/projects/edit_cost.html:83
#: app/templates/reports/iterative_view.html:47
#: app/templates/reports/iterative_view.html:58
#: app/templates/reports/time_entries_report.html:108
#: app/templates/reports/time_entries_report.html:122
#: app/templates/reports/unpaid_hours_report.html:124
#: app/templates/reports/user_report.html:79 app/templates/tasks/view.html:78
#: app/templates/timer/_time_entries_list.html:41
#: app/templates/timer/_time_entries_list.html:107
#: app/templates/timer/bulk_entry.html:189
#: app/templates/timer/calendar.html:187 app/templates/timer/calendar.html:879
#: app/templates/timer/edit_timer.html:337
#: app/templates/timer/edit_timer.html:448
#: app/templates/timer/manual_entry.html:140
#: app/templates/timer/time_entries_export_pdf.html:19
#: app/templates/timer/timer_page.html:169
#: app/templates/timer/view_timer.html:46
#: app/templates/weekly_goals/create.html:83
#: app/templates/weekly_goals/edit.html:98
#: app/templates/weekly_goals/view.html:163
msgid "Notes"
msgstr "Remarques"

#: app/routes/reports.py:1020 app/templates/reports/time_entries_report.html:68
#: app/templates/reports/time_entries_report.html:109
#: app/templates/reports/time_entries_report.html:123
#, fuzzy
msgid "Billed"
msgstr "Facturable"

#: app/routes/reports.py:1021 app/templates/approvals/view.html:44
#: app/templates/audit_logs/list.html:114 app/templates/audit_logs/view.html:92
#: 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/project_comments.html:51
#: app/templates/client_portal/quote_detail.html:23
#: app/templates/client_portal/set_password.html:41
#: app/templates/deals/form.html:30 app/templates/deals/list.html:51
#: app/templates/deals/list.html:65 app/templates/deals/view.html:36
#: app/templates/issues/list.html:57 app/templates/issues/list.html:94
#: app/templates/issues/list.html:111 app/templates/issues/new.html:37
#: app/templates/issues/view.html:126 app/templates/issues/view.html:156
#: app/templates/leads/convert_to_deal.html:29
#: app/templates/main/dashboard.html:742 app/templates/main/help.html:196
#: app/templates/project_templates/create_project.html:21
#: app/templates/projects/_projects_list.html:79
#: app/templates/projects/create.html:32 app/templates/projects/edit.html:30
#: app/templates/projects/list.html:160
#: app/templates/quotes/_quotes_list.html:35
#: app/templates/quotes/_quotes_list.html:52
#: app/templates/quotes/accept.html:22 app/templates/quotes/create.html:32
#: app/templates/quotes/edit.html:36 app/templates/quotes/view.html:84
#: app/templates/recurring_invoices/list.html:25
#: app/templates/recurring_invoices/list.html:41
#: app/templates/reports/iterative_view.html:43
#: app/templates/reports/iterative_view.html:54
#: app/templates/reports/time_entries_report.html:46
#: app/templates/reports/time_entries_report.html:110
#: app/templates/reports/time_entries_report.html:124
#: app/templates/reports/unpaid_hours_report.html:73
#: app/templates/reports/unpaid_hours_report.html:85
#: app/templates/reports/user_report.html:81
#: app/templates/timer/manual_entry.html:71
#: app/templates/timer/time_entries_overview.html:98
#: app/templates/timer/timer_page.html:149
#: app/templates/timer/view_timer.html:81
msgid "Client"
msgstr "Client"

#: app/routes/reports.py:1024 app/templates/admin/dashboard.html:334
#: 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/audit_logs/list.html:90
#: app/templates/client_portal/reports.html:222
#: app/templates/client_portal/time_entries.html:64
#: app/templates/client_portal/widgets/time_entries.html:22
#: app/templates/clients/view.html:352 app/templates/deals/view.html:193
#: app/templates/deals/view.html:203 app/templates/expenses/list.html:329
#: app/templates/integrations/health.html:41
#: app/templates/inventory/adjustments/list.html:61
#: app/templates/inventory/adjustments/list.html:82
#: app/templates/inventory/movements/list.html:62
#: app/templates/inventory/movements/list.html:145
#: app/templates/inventory/reports/movement_history.html:78
#: app/templates/inventory/reports/movement_history.html:165
#: app/templates/inventory/stock_items/history.html:69
#: app/templates/inventory/stock_items/history.html:151
#: app/templates/inventory/transfers/list.html:43
#: app/templates/inventory/transfers/list.html:70
#: app/templates/projects/time_entries_overview.html:73
#: app/templates/projects/time_entries_overview.html:90
#: app/templates/reports/iterative_view.html:45
#: app/templates/reports/iterative_view.html:56
#: app/templates/reports/time_entries_report.html:24
#: app/templates/reports/unpaid_hours_report.html:119
#: app/templates/reports/user_report.html:75 app/templates/tasks/view.html:77
#: app/templates/timer/_time_entries_list.html:36
#: app/templates/timer/_time_entries_list.html:63
#: app/templates/timer/edit_timer.html:533
#: app/templates/timer/time_entries_overview.html:67
#: app/templates/timer/view_timer.html:118 app/templates/user/profile.html:23
#: app/templates/workforce/dashboard.html:21
#: app/templates/workforce/dashboard.html:208
msgid "User"
msgstr "Utilisateur"

#: app/routes/reports.py:1038 app/templates/admin/email_support.html:183
#: app/templates/admin/settings.html:413 app/templates/base.html:395
#: app/templates/integrations/health.html:46
#: app/templates/integrations/view.html:32
#: app/templates/integrations/wizard_jira.html:253
#: app/templates/inventory/stock_items/view.html:113
#: app/templates/kanban/columns.html:79
#: app/templates/project_templates/view.html:40
#: app/templates/reports/time_entries_report.html:72
#: app/templates/reports/time_entries_report.html:123
#: app/templates/timer/calendar.html:885
msgid "Yes"
msgstr "Oui"

#: app/routes/reports.py:1038 app/templates/admin/email_support.html:185
#: app/templates/admin/settings.html:413 app/templates/base.html:396
#: app/templates/integrations/health.html:48
#: app/templates/integrations/view.html:43
#: app/templates/integrations/wizard_jira.html:253
#: app/templates/inventory/stock_items/view.html:115
#: app/templates/kanban/columns.html:81
#: app/templates/project_templates/view.html:40
#: app/templates/reports/time_entries_report.html:73
#: app/templates/reports/time_entries_report.html:123
#: app/templates/timer/calendar.html:885
msgid "No"
msgstr "Non"

#: app/routes/salesman_reports.py:27
msgid "You do not have permission to access this page."
msgstr ""

#: app/routes/saved_filters.py:248
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/scheduled_reports.py:104
msgid "Error loading scheduled reports. Please check the logs."
msgstr ""

#: app/routes/scheduled_reports.py:129 app/routes/scheduled_reports.py:195
msgid "Please fill in all required fields."
msgstr ""

#: app/routes/scheduled_reports.py:133 app/routes/scheduled_reports.py:200
msgid "Please specify a custom field name when enabling report iteration."
msgstr ""

#: app/routes/scheduled_reports.py:151
msgid "Scheduled report created successfully."
msgstr ""

#: app/routes/scheduled_reports.py:168
msgid "Scheduled report deleted successfully."
msgstr ""

#: app/routes/scheduled_reports.py:250 app/routes/scheduled_reports.py:355
msgid "Permission denied"
msgstr ""

#: app/routes/scheduled_reports.py:305
msgid "You do not have permission to fix this schedule."
msgstr ""

#: app/routes/scheduled_reports.py:313
msgid "Scheduled report deleted: saved view no longer exists."
msgstr ""

#: app/routes/scheduled_reports.py:327
msgid "Scheduled report deactivated: invalid configuration."
msgstr ""

#: app/routes/scheduled_reports.py:334
msgid "Scheduled report deactivated: could not parse configuration."
msgstr ""

#: app/routes/scheduled_reports.py:340
msgid "Scheduled report validated and reactivated."
msgstr ""

#: app/routes/scheduled_reports.py:359
msgid "Saved report view not found"
msgstr ""

#: app/routes/settings.py:46
msgid "Your preferences are managed on the main Settings page."
msgstr ""

#: app/routes/setup.py:107
#, fuzzy
msgid "Could not save settings. 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/setup.py:125
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:127
msgid "Setup complete! Detailed analytics is disabled; anonymous base telemetry remains active."
msgstr ""

#: app/routes/setup.py:129
msgid "Google Calendar OAuth credentials have been configured."
msgstr ""

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

#: app/routes/tasks.py:200 app/routes/tasks.py:422
#, python-format
msgid "Invalid task name: %(error)s"
msgstr ""

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

#: app/routes/tasks.py:331
msgid "Task not found"
msgstr ""

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

#: app/routes/tasks.py:395
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:415
msgid "Task name is required"
msgstr "Le nom de la tâche est obligatoire"

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

#: app/routes/tasks.py:525
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:588
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:626
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:736
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:757
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:763
msgid "Selected user does not exist"
msgstr "L'utilisateur sélectionné n'existe pas"

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

#: app/routes/tasks.py:783
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:788
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:809
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:831
msgid "No tasks selected for deletion"
msgstr "Aucune tâche sélectionnée pour suppression"

#: app/routes/tasks.py:893
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:914 app/routes/tasks.py:989 app/routes/tasks.py:990
#: app/routes/tasks.py:1068 app/routes/tasks.py:1069 app/routes/tasks.py:1137
#: app/routes/tasks.py:1196
msgid "No tasks selected"
msgstr "Aucune tâche sélectionnée"

#: app/routes/tasks.py:962 app/routes/tasks.py:1030 app/routes/tasks.py:1105
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:995
#, fuzzy
msgid "Due date is required (YYYY-MM-DD)"
msgstr "Entrez la nouvelle date d'échéance (AAAA-MM-JJ) :"

#: app/routes/tasks.py:996
#, fuzzy
msgid "Due date is required"
msgstr "La date de dépense est requise"

#: app/routes/tasks.py:1005 app/routes/tasks.py:1006
#, fuzzy
msgid "Invalid date format. Use YYYY-MM-DD"
msgstr "Format de date invalide"

#: app/routes/tasks.py:1029 app/routes/tasks.py:1104
#, fuzzy
msgid "Database error"
msgstr "Prise en charge de la base de données"

#: app/routes/tasks.py:1040 app/routes/tasks.py:1115
#, fuzzy, python-format
msgid "Updated %(count)s task(s)"
msgstr "%(count)d citation(s) en double"

#: app/routes/tasks.py:1040 app/routes/tasks.py:1115
#, fuzzy
msgid "No tasks updated"
msgstr "Aucune tâche trouvée"

#: app/routes/tasks.py:1046
#, fuzzy, python-format
msgid "Successfully updated %(count)s task(s) due date to %(date)s"
msgstr "%(count)d dépense(s) a été mise à jour avec succès vers %(status)s"

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

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

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

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

#: app/routes/tasks.py:1174
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:1200
msgid "No project selected"
msgstr "Aucun projet sélectionné"

#: app/routes/tasks.py:1206 app/routes/timer.py:116 app/routes/timer.py:434
#: app/routes/timer.py:823 app/routes/timer.py:1639
msgid "Invalid project selected"
msgstr "Projet sélectionné non valide"

#: app/routes/tasks.py:1251
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:1484
msgid "Only administrators can view all overdue tasks"
msgstr "Seuls les administrateurs peuvent voir toutes les tâches en retard"

#: app/routes/team_chat.py:58 app/routes/team_chat.py:106
#: app/routes/team_chat.py:413 app/routes/team_chat.py:451
msgid "You don't have access to this channel"
msgstr ""

#: app/routes/team_chat.py:113
msgid "Message cannot be empty"
msgstr ""

#: app/routes/team_chat.py:133
msgid "Attachment data was invalid; message sent without attachment."
msgstr ""

#: app/routes/team_chat.py:406
msgid "Invalid message"
msgstr ""

#: app/routes/team_chat.py:417
msgid "No attachment found"
msgstr ""

#: app/routes/team_chat.py:496
msgid "Invalid filename"
msgstr ""

#: app/routes/team_chat.py:507
msgid "Server error: Could not create upload directory"
msgstr ""

#: app/routes/team_chat.py:515
msgid "Server error: Could not save file"
msgstr ""

#: app/routes/team_chat.py:556
msgid "Cannot create direct message with yourself"
msgstr ""

#: app/routes/team_chat.py:559
msgid "User is not active"
msgstr ""

#: app/routes/time_approvals.py:73
msgid "Time entry approved"
msgstr ""

#: app/routes/time_approvals.py:101
msgid "Time entry rejected"
msgstr ""

#: app/routes/time_approvals.py:127
msgid "Approval requested"
msgstr ""

#: app/routes/time_approvals.py:147
msgid "Approval cancelled"
msgstr ""

#: app/routes/time_entry_templates.py:93
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:248
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:105
msgid "Either a project or a client is required"
msgstr ""

#: app/routes/timer.py:127 app/routes/timer.py:440 app/routes/timer.py:2042
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:131 app/routes/timer.py:444 app/routes/timer.py:2045
msgid "Cannot start timer for an inactive project"
msgstr "Impossible de démarrer le minuteur pour un projet inactif"

#: app/routes/timer.py:139
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:153
msgid "Invalid client selected"
msgstr ""

#: app/routes/timer.py:159
msgid "Tasks can only be selected for project-based timers"
msgstr ""

#: app/routes/timer.py:167 app/routes/timer.py:356 app/routes/timer.py:449
#, fuzzy
msgid "You do not have access to this project"
msgstr "Vous n'avez pas accès à ce projet."

#: app/routes/timer.py:171
#, fuzzy
msgid "You do not have access to this client"
msgstr "Vous n'avez pas accès à cette tâche"

#: app/routes/timer.py:177 app/routes/timer.py:341 app/routes/timer.py:455
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:219 app/routes/timer.py:382 app/routes/timer.py:470
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:267 app/routes/timer.py:272 app/routes/timer.py:1048
#: app/routes/timer.py:1055 app/routes/timer.py:2148
#: app/templates/admin/oidc_user_detail.html:30
#: app/templates/client_portal/project_comments.html:55
#: app/templates/invoice_approvals/list.html:56
#: app/templates/invoice_approvals/view.html:43
#: app/templates/invoice_approvals/view.html:50
#: app/templates/invoice_approvals/view.html:73
#: app/templates/reports/scheduled.html:38
msgid "Unknown"
msgstr "Inconnu"

#: app/routes/timer.py:326
msgid "Timer started"
msgstr ""

#: app/routes/timer.py:346
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:352
msgid "Cannot start timer for this project"
msgstr "Impossible de démarrer le minuteur pour ce projet"

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

#: app/routes/timer.py:623 app/templates/issues/edit.html:62
#: app/templates/issues/new.html:56 app/templates/main/dashboard.html:91
#: app/templates/recurring_tasks/list.html:53
#: app/templates/timer/timer_page.html:59 app/templates/user/profile.html:60
#: app/templates/user/profile.html:98
msgid "No project"
msgstr "Aucun projet"

#: app/routes/timer.py:634
#, python-format
msgid "Cannot stop timer: %(error)s"
msgstr ""

#: app/routes/timer.py:639
msgid "Could not stop timer due to an error. Please try again or contact support if the problem persists."
msgstr ""

#: app/routes/timer.py:651
#, fuzzy
msgid "No active timer to pause"
msgstr "Aucune minuterie active pour arrêter"

#: app/routes/timer.py:655
#, fuzzy
msgid "Timer paused"
msgstr "Minuterie arrêtée"

#: app/routes/timer.py:660
#, fuzzy
msgid "Could not pause timer. Please try again."
msgstr "Impossible de créer le client. Veuillez réessayer."

#: app/routes/timer.py:676
#, fuzzy
msgid "No active timer to resume"
msgstr "Aucune minuterie active pour arrêter"

#: app/routes/timer.py:680 app/routes/timer.py:2202
msgid "Timer resumed"
msgstr ""

#: app/routes/timer.py:685
#, fuzzy
msgid "Could not resume timer. Please try again."
msgstr "Impossible de créer le client. Veuillez réessayer."

#: app/routes/timer.py:701
#, fuzzy
msgid "No active timer to adjust"
msgstr "Aucune minuterie active pour arrêter"

#: app/routes/timer.py:707
#, fuzzy
msgid "Invalid adjustment value"
msgstr "Valeur de statut invalide"

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

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

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

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

#: app/routes/timer.py:894 app/routes/timer.py:1423 app/templates/base.html:415
#: app/templates/timer/manual_entry.html:648
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:902
msgid "Invalid end date/time format"
msgstr "Format de date/heure de fin non valide"

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

#: app/routes/timer.py:979
msgid "You do not have permission to view this time entry"
msgstr ""

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

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

#: app/routes/timer.py:1085 app/routes/timer.py:1092
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:1147 app/routes/timer.py:2983
msgid "No time entries selected"
msgstr ""

#: app/routes/timer.py:1153 app/routes/timer.py:2995
msgid "Invalid entry IDs"
msgstr ""

#: app/routes/timer.py:1159 app/routes/timer.py:3001
#: app/templates/client_portal/time_entries.html:167
#: app/templates/client_portal/widgets/time_entries.html:68
msgid "No time entries found"
msgstr ""

#: app/routes/timer.py:1195
#, python-format
msgid "Successfully deleted %(count)d time entry/entries"
msgstr ""

#: app/routes/timer.py:1198 app/routes/timer.py:3055
#, python-format
msgid "Skipped %(count)d time entry/entries (no permission or active timer)"
msgstr ""

#: app/routes/timer.py:1309 app/templates/timer/manual_entry.html:622
msgid "Please provide either start/end date+time or a worked time duration (HH:MM)."
msgstr ""

#: app/routes/timer.py:1334
msgid "Either a project or a client must be selected"
msgstr ""

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

#: app/routes/timer.py:1501
#, python-format
msgid "Manual entry created for %(project)s - %(task)s"
msgstr ""

#: app/routes/timer.py:1504
#, python-format
msgid "Manual entry created for %(target)s"
msgstr ""

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

#: app/routes/timer.py:1649
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:1657
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:1669
msgid "Invalid task selected"
msgstr "Tâche non valide sélectionnée"

#: app/routes/timer.py:1685
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:1695
msgid "Date range cannot exceed 31 days"
msgstr "La plage de dates ne peut pas dépasser 31 jours"

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

#: app/routes/timer.py:1747
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:1813
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:1832
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:1961
msgid "You can only duplicate your own timers"
msgstr "Vous ne pouvez dupliquer que vos propres minuteries"

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

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

#: app/routes/timer.py:2064
msgid "Client no longer exists or is inactive"
msgstr ""

#: app/routes/timer.py:2070
msgid "Timer is not linked to a project or client"
msgstr ""

#: app/routes/timer.py:2098
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.py:2149
msgid "Resumed timer"
msgstr ""

#: app/routes/timer.py:2987
msgid "Invalid paid status"
msgstr ""

#: app/routes/timer.py:3042
msgid "Could not update time entries due to a database error. Please check server logs."
msgstr ""

#: app/routes/timer.py:3046
#, python-format
msgid "Successfully marked %(count)d time entry/entries as %(status)s"
msgstr ""

#: app/routes/timer.py:3049
msgid "paid"
msgstr ""

#: app/routes/timer.py:3049
msgid "unpaid"
msgstr ""

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

#: app/routes/user.py:169
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:182
#, fuzzy
msgid "Standard hours per week must be between 1 and 168"
msgstr "Les heures standard par jour doivent être comprises entre 0,5 et 24"

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

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

#: app/routes/user.py:244
msgid "This instance is already licensed."
msgstr ""

#: app/routes/user.py:265
#, fuzzy
msgid "License activated. Thank you for supporting TimeTracker!"
msgstr "Merci d'avoir choisi TimeTracker !"

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

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

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

#: app/routes/user.py:411 app/routes/user.py:440
msgid "Invalid language"
msgstr "Langue invalide"

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

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

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

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

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

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

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

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

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

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

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

#: app/routes/weekly_goals.py:80 app/routes/weekly_goals.py:224
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:101
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:116
msgid "Weekly time goal created successfully!"
msgstr "Objectif de temps hebdomadaire créé avec succès !"

#: app/routes/weekly_goals.py:132
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:147
msgid "You do not have permission to view this goal"
msgstr "Vous n'êtes pas autorisé à afficher cet objectif"

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

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

#: app/routes/weekly_goals.py:262
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:277
msgid "You do not have permission to delete this goal"
msgstr "Vous n'êtes pas autorisé à supprimer cet objectif"

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

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

#: app/routes/workflows.py:58
msgid "Workflow created successfully"
msgstr ""

#: app/routes/workflows.py:63 app/routes/workflows.py:139
msgid "Task Status Changes"
msgstr ""

#: app/routes/workflows.py:64 app/routes/workflows.py:140
msgid "Task Created"
msgstr ""

#: app/routes/workflows.py:65 app/routes/workflows.py:141
msgid "Task Completed"
msgstr ""

#: app/routes/workflows.py:66 app/routes/workflows.py:142
msgid "Time Logged"
msgstr ""

#: app/routes/workflows.py:67 app/routes/workflows.py:143
msgid "Deadline Approaching"
msgstr ""

#: app/routes/workflows.py:68 app/routes/workflows.py:144
msgid "Budget Threshold Reached"
msgstr ""

#: app/routes/workflows.py:69
msgid "Invoice Created"
msgstr ""

#: app/routes/workflows.py:70
msgid "Invoice Paid"
msgstr ""

#: app/routes/workflows.py:74 app/routes/workflows.py:148
msgid "Log Time Entry"
msgstr ""

#: app/routes/workflows.py:75 app/routes/workflows.py:149
msgid "Send Notification"
msgstr ""

#: app/routes/workflows.py:76 app/routes/workflows.py:150
#: app/templates/expenses/list.html:234 app/templates/invoices/list.html:140
#: app/templates/payments/list.html:253 app/templates/per_diem/list.html:183
#: app/templates/tasks/list.html:177
msgid "Update Status"
msgstr "Statut de la mise à jour"

#: app/routes/workflows.py:77 app/routes/workflows.py:151
msgid "Assign Task"
msgstr ""

#: app/routes/workflows.py:78 app/templates/issues/view.html:80
#: app/templates/tasks/create.html:4 app/templates/tasks/create.html:16
#: app/templates/tasks/create.html:139
msgid "Create Task"
msgstr "Créer une tâche"

#: app/routes/workflows.py:79
msgid "Update Project"
msgstr ""

#: app/routes/workflows.py:80 app/templates/invoices/edit.html:10
#: app/templates/invoices/view.html:519 app/templates/quotes/view.html:41
#: app/templates/quotes/view.html:480
msgid "Send Email"
msgstr "Envoyer un e-mail"

#: app/routes/workflows.py:81
msgid "Trigger Webhook"
msgstr ""

#: app/routes/workflows.py:135
msgid "Workflow updated successfully"
msgstr ""

#: app/routes/workflows.py:175
msgid "Workflow deleted successfully"
msgstr ""

#: app/routes/workforce.py:121
#, python-format
msgid "Timesheet period ready: %(start)s to %(end)s"
msgstr ""

#: app/routes/workforce.py:136
msgid "Timesheet period submitted"
msgstr ""

#: app/routes/workforce.py:158
msgid "Timesheet period approved"
msgstr ""

#: app/routes/workforce.py:180
#, fuzzy
msgid "Timesheet period rejected"
msgstr "Sélectionnez un projet"

#: app/routes/workforce.py:191
#, fuzzy
msgid "Only admins can close periods"
msgstr "Seuls les administrateurs peuvent refuser les entrées de miles"

#: app/routes/workforce.py:202
msgid "Timesheet period closed"
msgstr ""

#: app/routes/workforce.py:243
#, fuzzy
msgid "Timesheet policy updated"
msgstr "Mises à jour en direct de WebSocket"

#: app/routes/workforce.py:257
#, fuzzy
msgid "Name and code are required"
msgstr "Le nom et le prix unitaire sont requis"

#: app/routes/workforce.py:270
#, fuzzy
msgid "Leave type created"
msgstr "Client créé"

#: app/routes/workforce.py:303
#, fuzzy
msgid "Leave type and date range are required"
msgstr "La clé et l'étiquette sont requises"

#: app/routes/workforce.py:320
msgid "Time-off request submitted"
msgstr ""

#: app/routes/workforce.py:344
#, fuzzy
msgid "Time-off request approved"
msgstr "Demander l'approbation"

#: app/routes/workforce.py:368
#, fuzzy
msgid "Time-off request rejected"
msgstr "Devis rejeté"

#: app/routes/workforce.py:405
#, fuzzy
msgid "Name and date range are required"
msgstr "Le nom et le prix unitaire sont requis"

#: app/routes/workforce.py:411
#, fuzzy
msgid "Holiday created"
msgstr "Taux horaire"

#: app/routes/workforce.py:441
msgid "Start date and end date are required for payroll export"
msgstr ""

#: app/routes/workforce.py:505
msgid "Start date and end date are required for capacity export"
msgstr ""

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

#: app/templates/admin/webhooks/list.html:68
#: app/templates/admin/webhooks/view.html:114 app/templates/base.html:378
#: app/templates/integrations/health.html:60
#: app/templates/integrations/view.html:53
#: app/templates/integrations/view.html:84
#: app/templates/kanban/columns.html:226 app/templates/reports/builder.html:772
msgid "Success"
msgstr "Succès"

#: app/templates/admin/email_support.html:401
#: app/templates/admin/email_support.html:500 app/templates/base.html:379
#: app/templates/integrations/health.html:64
#: app/templates/integrations/view.html:55
#: app/templates/integrations/view.html:86
#: app/templates/main/dashboard.html:691 app/templates/reports/builder.html:792
#: app/templates/reports/builder.html:806
#: app/templates/reports/scheduled.html:71
#: app/templates/timer/manual_entry.html:400
#: app/templates/timer/manual_entry.html:412
#: app/templates/timer/manual_entry.html:444
#: app/templates/timer/manual_entry.html:533
#: app/templates/timer/manual_entry.html:560
#: app/templates/timer/manual_entry.html:583
#: app/templates/timer/manual_entry.html:598
#: app/templates/timer/manual_entry.html:624
#: app/templates/timer/manual_entry.html:650
#: app/templates/timer/timer_page.html:364
msgid "Error"
msgstr "Erreur"

#: app/templates/base.html:380 app/templates/budget/dashboard.html:161
#: app/templates/budget/project_detail.html:67
#: app/templates/main/dashboard.html:1616 app/templates/projects/view.html:287
#: app/templates/timer/edit_timer.html:881
#: app/templates/timer/manual_entry.html:1055 app/utils/i18n_helpers.py:275
#: app/utils/i18n_helpers.py:281
msgid "Warning"
msgstr "Avertissement"

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

#: app/templates/admin/salesman_email_mappings.html:51
#: app/templates/analytics/dashboard.html:208
#: app/templates/analytics/dashboard_improved.html:200
#: app/templates/analytics/mobile_dashboard.html:148
#: app/templates/base.html:384
#: app/templates/components/activity_feed_widget.html:237
#: app/templates/components/ui.html:275
#: app/templates/import_export/index.html:128
#: app/templates/import_export/index.html:202
#: app/templates/main/dashboard.html:180 app/templates/main/dashboard.html:201
#: app/templates/main/dashboard.html:222
#: app/templates/reports/unpaid_hours_report.html:64
#: app/templates/timer/calendar.html:678
msgid "Loading..."
msgstr "Chargement..."

#: app/templates/admin/email_support.html:342 app/templates/base.html:385
#: app/templates/client_notes/edit.html:115
#: app/templates/client_portal/dashboard.html:135
#: app/templates/comments/_comments_section.html:169
#: app/templates/comments/edit.html:112 app/templates/reports/builder.html:674
#: app/templates/settings/keyboard_shortcuts.html:469
msgid "Saving..."
msgstr "Économie..."

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

#: app/templates/admin/api_tokens.html:461
#: app/templates/admin/api_tokens.html:494
#: app/templates/admin/custom_field_definitions/form.html:66
#: app/templates/admin/email_templates/create.html:120
#: app/templates/admin/email_templates/edit.html:137
#: app/templates/admin/email_templates/list.html:80
#: app/templates/admin/integrations/setup.html:162
#: app/templates/admin/ldap_setup_wizard.html:265
#: app/templates/admin/link_templates/form.html:72
#: app/templates/admin/oidc_setup_wizard.html:316
#: app/templates/admin/pdf_layout.html:4409
#: app/templates/admin/pdf_layout.html:7736
#: app/templates/admin/quote_pdf_layout.html:3928
#: app/templates/admin/quote_pdf_layout.html:7176
#: app/templates/admin/roles/form.html:149
#: app/templates/admin/roles/list.html:215
#: app/templates/admin/salesman_email_mappings.html:145
#: app/templates/admin/settings.html:716 app/templates/admin/users.html:124
#: app/templates/admin/users/roles.html:57
#: app/templates/admin/webhooks/form.html:128
#: app/templates/approvals/list.html:138 app/templates/approvals/view.html:157
#: app/templates/auth/change_password.html:37 app/templates/base.html:387
#: app/templates/calendar/event_detail.html:194
#: app/templates/calendar/event_form.html:237
#: app/templates/chat/channel.html:268 app/templates/chat/index.html:122
#: app/templates/client_notes/edit.html:83
#: app/templates/client_portal/dashboard.html:88
#: app/templates/client_portal/new_issue.html:82
#: app/templates/client_portal/quote_detail.html:168
#: app/templates/clients/create.html:108 app/templates/clients/edit.html:143
#: app/templates/clients/view.html:238 app/templates/clients/view.html:461
#: app/templates/clients/view.html:598 app/templates/clients/view.html:634
#: app/templates/comments/_comment.html:120
#: app/templates/comments/_comment.html:140
#: app/templates/comments/_comment.html:164
#: app/templates/comments/_comments_section.html:44
#: app/templates/comments/edit.html:83
#: app/templates/contacts/communication_form.html:82
#: app/templates/contacts/form.html:99
#: app/templates/deals/activity_form.html:63 app/templates/deals/form.html:112
#: app/templates/expenses/view.html:401
#: app/templates/import_export/index.html:239
#: app/templates/import_export/index.html:277
#: app/templates/integrations/activitywatch_setup.html:148
#: app/templates/integrations/caldav_setup.html:202
#: app/templates/integrations/wizard_base.html:55
#: app/templates/inventory/adjustments/form.html:56
#: app/templates/inventory/movements/form.html:114
#: 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/invoice_approvals/list.html:85
#: app/templates/invoice_approvals/request.html:38
#: app/templates/invoices/edit.html:286 app/templates/invoices/edit.html:670
#: app/templates/invoices/generate_from_time.html:136
#: app/templates/invoices/list.html:171 app/templates/invoices/view.html:383
#: app/templates/issues/edit.html:86 app/templates/issues/new.html:80
#: app/templates/kanban/columns.html:162
#: app/templates/kanban/create_column.html:86
#: app/templates/kanban/edit_column.html:88
#: app/templates/leads/activity_form.html:63
#: app/templates/leads/convert_to_client.html:35
#: app/templates/leads/convert_to_deal.html:63
#: app/templates/leads/form.html:103 app/templates/main/dashboard.html:790
#: app/templates/payment_gateways/create.html:79
#: app/templates/payment_gateways/pay.html:35
#: app/templates/per_diem/rates_list.html:113
#: app/templates/project_templates/create.html:106
#: app/templates/project_templates/create_project.html:66
#: app/templates/project_templates/edit.html:136
#: app/templates/projects/add_cost.html:98
#: app/templates/projects/add_good.html:68
#: app/templates/projects/archive.html:82
#: app/templates/projects/create.html:137
#: app/templates/projects/create.html:307 app/templates/projects/edit.html:128
#: app/templates/projects/edit_cost.html:105
#: app/templates/projects/edit_good.html:68
#: app/templates/projects/view.html:365 app/templates/quotes/accept.html:54
#: app/templates/quotes/create.html:262 app/templates/quotes/edit.html:348
#: app/templates/quotes/view.html:304 app/templates/quotes/view.html:385
#: app/templates/quotes/view.html:477 app/templates/quotes/view.html:551
#: app/templates/quotes/view.html:569 app/templates/quotes/view.html:581
#: app/templates/recurring_tasks/form.html:128
#: app/templates/reports/builder.html:220 app/templates/reports/index.html:492
#: app/templates/reports/schedule_form.html:100
#: app/templates/settings/keyboard_shortcuts.html:484
#: app/templates/tasks/create.html:138 app/templates/tasks/edit.html:146
#: app/templates/tasks/list.html:216 app/templates/tasks/list.html:423
#: app/templates/timer/calendar.html:204 app/templates/timer/calendar.html:829
#: app/templates/timer/calendar.html:1119
#: app/templates/timer/time_entries_overview.html:181
#: app/templates/timer/time_entries_overview.html:207
#: app/templates/user/settings.html:494
#: app/templates/weekly_goals/create.html:125
#: app/templates/weekly_goals/edit.html:112
msgid "Cancel"
msgstr "Annuler"

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

#: app/templates/admin/pdf_layout.html:2361
#: app/templates/admin/quote_pdf_layout.html:2133
#: app/templates/approvals/list.html:129 app/templates/approvals/view.html:148
#: app/templates/base.html:389 app/templates/base.html:1427
#: app/templates/base.html:1504 app/templates/calendar/view.html:148
#: app/templates/chat/index.html:101
#: app/templates/components/support_modal.html:18
#: app/templates/invoices/list.html:155 app/templates/invoices/view.html:367
#: app/templates/kanban/columns.html:143 app/templates/main/dashboard.html:707
#: app/templates/partials/_bottom_nav.html:18
#: app/templates/projects/create.html:267 app/templates/quotes/view.html:447
#: app/templates/tasks/_kanban.html:1363 app/templates/timer/calendar.html:234
#: app/templates/timer/calendar.html:259
#: app/templates/workforce/dashboard.html:87
msgid "Close"
msgstr "Fermer"

#: app/templates/admin/custom_field_definitions/form.html:67
#: app/templates/admin/link_templates/form.html:73
#: app/templates/admin/salesman_email_mappings.html:148
#: app/templates/admin/webhooks/form.html:125 app/templates/base.html:390
#: app/templates/calendar/view.html:112
#: app/templates/client_portal/dashboard.html:91
#: app/templates/comments/_comment.html:137
#: app/templates/inventory/stock_items/form.html:137
#: app/templates/inventory/suppliers/form.html:88
#: app/templates/inventory/warehouses/form.html:63
#: app/templates/recurring_tasks/form.html:130
#: app/templates/reports/builder.html:69 app/templates/reports/builder.html:221
msgid "Save"
msgstr "Sauvegarder"

#: app/templates/admin/api_tokens.html:493
#: app/templates/admin/custom_field_definitions/list.html:67
#: app/templates/admin/email_templates/list.html:83
#: app/templates/admin/link_templates/list.html:71
#: app/templates/admin/roles/list.html:149
#: app/templates/admin/roles/list.html:214 app/templates/admin/users.html:83
#: app/templates/admin/users.html:123 app/templates/base.html:391
#: app/templates/calendar/event_detail.html:26
#: app/templates/calendar/event_detail.html:193
#: app/templates/calendar/view.html:154 app/templates/clients/view.html:278
#: app/templates/clients/view.html:280 app/templates/clients/view.html:512
#: app/templates/clients/view.html:633 app/templates/comments/_comment.html:41
#: app/templates/comments/_comment.html:85 app/templates/expenses/view.html:400
#: app/templates/integrations/view.html:156 app/templates/issues/view.html:16
#: app/templates/issues/view.html:19 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/projects/view.html:405
#: app/templates/projects/view.html:407
#: app/templates/quotes/_quotes_list.html:15 app/templates/quotes/list.html:368
#: app/templates/quotes/view.html:331 app/templates/quotes/view.html:356
#: app/templates/quotes/view.html:584
#: app/templates/reports/saved_views_list.html:69
#: app/templates/reports/scheduled.html:100
#: app/templates/saved_filters/list.html:51 app/templates/tasks/list.html:422
#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
#: app/templates/timer/_time_entries_list.html:21
#: app/templates/timer/calendar.html:232 app/templates/timer/calendar.html:829
#: app/templates/timer/calendar.html:991 app/templates/timer/calendar.html:1118
#: app/templates/timer/time_entries_overview.html:184
#: app/templates/weekly_goals/edit.html:115
#: app/templates/weekly_goals/edit.html:117
#: app/templates/workforce/dashboard.html:94
#: app/templates/workforce/dashboard.html:193
#: app/templates/workforce/dashboard.html:267
#: app/templates/workforce/dashboard.html:292
msgid "Delete"
msgstr "Supprimer"

#: app/templates/admin/custom_field_definitions/form.html:8
#: app/templates/admin/custom_field_definitions/list.html:62
#: app/templates/admin/link_templates/form.html:8
#: app/templates/admin/link_templates/list.html:66
#: app/templates/admin/roles/list.html:144 app/templates/admin/users.html:77
#: app/templates/admin/webhooks/view.html:18 app/templates/base.html:392
#: app/templates/calendar/event_detail.html:22
#: app/templates/calendar/view.html:151 app/templates/clients/edit.html:10
#: app/templates/clients/view.html:504 app/templates/comments/_comment.html:36
#: app/templates/contacts/list.html:59 app/templates/deals/view.html:14
#: app/templates/kanban/columns.html:93 app/templates/leads/view.html:14
#: app/templates/per_diem/rates_list.html:70
#: app/templates/project_templates/list.html:60
#: app/templates/project_templates/view.html:17
#: app/templates/quotes/view.html:328 app/templates/quotes/view.html:353
#: app/templates/recurring_invoices/view.html:16
#: app/templates/reports/iterative_view.html:19
#: app/templates/reports/saved_views_list.html:64
#: app/templates/tasks/edit.html:16 app/templates/tasks/overdue.html:74
#: app/templates/timer/_time_entries_list.html:182
#: app/templates/timer/calendar.html:239 app/templates/timer/calendar.html:818
#: app/templates/timer/calendar.html:988 app/templates/timer/view_timer.html:17
#: app/templates/weekly_goals/index.html:196
#: app/templates/weekly_goals/view.html:26
msgid "Edit"
msgstr "Modifier"

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

#: app/templates/admin/settings.html:715 app/templates/base.html:394
#: app/templates/inventory/purchase_orders/form.html:153
#: app/templates/inventory/stock_items/form.html:120
#: app/templates/inventory/stock_items/form.html:171
#: app/templates/quotes/_edit_quote_form_scripts.html:204
#: app/templates/quotes/_edit_quote_form_scripts.html:239
#: app/templates/quotes/edit.html:171 app/templates/quotes/edit.html:229
#: app/templates/reports/builder.html:433
msgid "Remove"
msgstr "Retirer"

#: app/templates/admin/settings.html:828 app/templates/admin/users.html:108
#: app/templates/base.html:397 app/templates/integrations/health.html:78
#: app/templates/inventory/stock_levels/warehouse.html:77
msgid "OK"
msgstr "D'ACCORD"

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

#: app/templates/base.html:401
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:402
msgid "Operation failed"
msgstr "L'opération a échoué"

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

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

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

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

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

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

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

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

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

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

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

#: app/templates/base.html:414 app/templates/main/dashboard.html:689
#: app/templates/timer/manual_entry.html:531
#: app/templates/timer/timer_page.html:362
msgid "Please select either a project or a client"
msgstr ""

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

#: app/templates/base.html:480
#, fuzzy
msgid "Main navigation"
msgstr "Navigation mobile"

#: app/templates/base.html:502 app/templates/timer/calendar.html:277
msgid "Navigation"
msgstr "Navigation"

#: app/templates/base.html:507 app/templates/base.html:508
#: app/templates/base.html:1222
#, fuzzy
msgid "Open command palette"
msgstr "Palette de commandes"

#: app/templates/base.html:512
#, fuzzy
msgid "Commands"
msgstr "Commentaires"

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

#: app/templates/base.html:525 app/templates/base.html:527
#: app/templates/client_portal/base.html:254
#: app/templates/client_portal/base.html:339
#: app/templates/main/dashboard.html:28 app/templates/main/dashboard.html:29
#: app/templates/main/donate.html:8 app/templates/partials/_bottom_nav.html:60
#: app/templates/partials/_bottom_nav.html:64
#: app/templates/projects/view.html:35
msgid "Dashboard"
msgstr "Tableau de bord"

#: app/templates/base.html:531 app/templates/base.html:533
#: app/templates/base.html:1253 app/templates/kiosk/base.html:155
#: app/templates/main/dashboard.html:38
#: app/templates/partials/_bottom_nav.html:66
#: app/templates/partials/_bottom_nav.html:70
#: app/templates/tasks/overdue.html:76 app/templates/timer/timer_page.html:7
#: app/templates/timer/timer_page.html:12
msgid "Timer"
msgstr "Minuteur"

#: app/templates/base.html:537 app/templates/base.html:539
#: app/templates/main/dashboard.html:250
#: app/templates/partials/_bottom_nav.html:72
#: app/templates/partials/_bottom_nav.html:76
#, fuzzy
msgid "Time entries"
msgstr "Entrées de temps"

#: app/templates/base.html:544 app/templates/base.html:546
#: app/templates/base.html:733 app/templates/base.html:902
#: app/templates/base.html:1479 app/templates/budget/dashboard.html:17
#: app/templates/client_portal/base.html:293
#: app/templates/client_portal/base.html:372
#: app/templates/client_portal/reports.html:4
#: app/templates/client_portal/reports.html:9
#: app/templates/client_portal/reports.html:14
#: app/templates/components/support_modal.html:33
#: app/templates/partials/_bottom_nav.html:46
#: app/templates/reports/index.html:7 app/templates/reports/index.html:12
#: app/templates/reports/week_in_review.html:6
msgid "Reports"
msgstr "Rapports"

#: app/templates/base.html:552 app/templates/base.html:554
#: app/templates/calendar/view.html:12 app/templates/calendar/view.html:17
#: app/templates/timer/calendar.html:3 app/templates/timer/calendar.html:23
msgid "Calendar"
msgstr "Calendrier"

#: app/templates/base.html:562 app/templates/main/help.html:181
msgid "Calendar View"
msgstr "Vue du calendrier"

#: app/templates/base.html:567 app/templates/base.html:930
#: app/templates/integrations/list.html:4
#: app/templates/integrations/wizard_base.html:8
#: app/templates/setup/initial_setup.html:202
msgid "Integrations"
msgstr ""

#: app/templates/admin/modules.html:172 app/templates/admin/modules.html:214
#: app/templates/auth/login.html:34 app/templates/base.html:574
#: app/templates/base.html:576 app/templates/main/about.html:29
#: app/templates/main/help.html:27 app/templates/main/help.html:108
#: app/templates/main/help.html:266 app/templates/timer/manual_entry.html:7
msgid "Time Tracking"
msgstr "Suivi du temps"

#: app/templates/base.html:596
#, fuzzy
msgid "Time Approvals"
msgstr "Demander l'approbation"

#: app/templates/base.html:608 app/templates/project_templates/list.html:4
msgid "Project Templates"
msgstr ""

#: app/templates/base.html:615 app/templates/gantt/view.html:4
msgid "Gantt Chart"
msgstr ""

#: app/templates/base.html:621 app/templates/calendar/view.html:80
#: app/templates/calendar/view.html:97 app/templates/calendar/view.html:98
#: app/templates/calendar/view.html:108
#: app/templates/components/activity_feed_widget.html:27
#: app/templates/components/offline_indicator.html:75
#: app/templates/integrations/wizard_asana.html:116
#: app/templates/reports/builder.html:368 app/templates/tasks/create.html:16
#: app/templates/tasks/edit.html:16 app/templates/tasks/overdue.html:8
#: app/templates/tasks/view.html:47
msgid "Tasks"
msgstr "Tâches"

#: app/templates/base.html:627 app/templates/client_portal/base.html:273
#: app/templates/client_portal/base.html:358
#: app/templates/client_portal/issue_detail.html:9
#: app/templates/client_portal/issues.html:4
#: app/templates/client_portal/issues.html:9
#: app/templates/client_portal/new_issue.html:9
#: app/templates/integrations/wizard_github.html:100
#: app/templates/integrations/wizard_gitlab.html:136
msgid "Issues"
msgstr ""

#: app/templates/base.html:634 app/templates/kanban/board.html:9
#: app/templates/kanban/board.html:55 app/templates/main/help.html:31
#: app/templates/main/help.html:346 app/templates/tasks/_kanban.html:9
msgid "Kanban Board"
msgstr "Tableau Kanban"

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

#: app/templates/base.html:647
msgid "Workforce"
msgstr ""

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

#: app/templates/admin/modules.html:174 app/templates/admin/modules.html:216
#: app/templates/base.html:661 app/templates/base.html:663
msgid "CRM"
msgstr "GRC"

#: app/templates/base.html:675 app/templates/clients/create.html:10
#: app/templates/clients/edit.html:10 app/templates/clients/view.html:53
#: app/templates/components/activity_feed_widget.html:43
#: app/templates/partials/_bottom_nav.html:38
msgid "Clients"
msgstr "Clientèle"

#: app/templates/base.html:682 app/templates/integrations/wizard_xero.html:102
msgid "Contacts"
msgstr ""

#: app/templates/base.html:683
msgid "via Clients"
msgstr ""

#: app/templates/base.html:690 app/templates/deals/activity_form.html:8
#: app/templates/deals/view.html:8
msgid "Deals"
msgstr ""

#: app/templates/base.html:697 app/templates/leads/activity_form.html:8
#: app/templates/leads/convert_to_client.html:8
#: app/templates/leads/convert_to_deal.html:8 app/templates/leads/view.html:8
msgid "Leads"
msgstr ""

#: app/templates/base.html:704 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/admin/modules.html:175 app/templates/admin/modules.html:217
#: app/templates/base.html:715
msgid "Finance & Expenses"
msgstr "Finances et dépenses"

#: app/templates/base.html:740
msgid "All Reports"
msgstr ""

#: app/templates/base.html:746 app/templates/reports/index.html:201
msgid "Report Builder"
msgstr ""

#: app/templates/base.html:751 app/templates/reports/builder.html:17
msgid "Saved Views"
msgstr ""

#: app/templates/base.html:758 app/templates/reports/index.html:159
#: app/templates/reports/index.html:214 app/templates/reports/index.html:262
#: app/templates/reports/scheduled.html:4
msgid "Scheduled Reports"
msgstr "Rapports planifiés"

#: app/templates/base.html:768 app/templates/client_portal/base.html:260
#: app/templates/client_portal/base.html:345
#: 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
#: app/templates/integrations/wizard_quickbooks.html:101
#: app/templates/integrations/wizard_xero.html:84
#: app/templates/invoices/create.html:8 app/templates/invoices/edit.html:13
#: app/templates/invoices/view.html:46
#: app/templates/partials/_bottom_nav.html:30
#: app/templates/reports/builder.html:369
msgid "Invoices"
msgstr "Factures"

#: app/templates/base.html:775
msgid "Invoice Approvals"
msgstr ""

#: app/templates/base.html:782 app/templates/payment_gateways/list.html:4
msgid "Payment Gateways"
msgstr ""

#: app/templates/base.html:789 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:796
#: app/templates/integrations/wizard_quickbooks.html:113
#: app/templates/integrations/wizard_xero.html:96
msgid "Payments"
msgstr "Paiements"

#: app/templates/base.html:803
#: app/templates/integrations/wizard_quickbooks.html:107
#: app/templates/integrations/wizard_xero.html:90
#: app/templates/invoices/edit.html:148 app/templates/invoices/edit.html:338
#: app/templates/main/help.html:33 app/templates/reports/builder.html:370
msgid "Expenses"
msgstr "Dépenses"

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

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

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

#: app/templates/admin/modules.html:176 app/templates/admin/modules.html:218
#: app/templates/base.html:835
msgid "Inventory"
msgstr "Inventaire"

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

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

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

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

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

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

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

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

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

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

#: app/templates/admin/modules.html:177 app/templates/admin/modules.html:219
#: app/templates/analytics/dashboard.html:8
#: app/templates/analytics/mobile_dashboard.html:3
#: app/templates/analytics/mobile_dashboard.html:20 app/templates/base.html:912
#: app/templates/main/about.html:38
msgid "Analytics"
msgstr "Analytique"

#: app/templates/admin/modules.html:178 app/templates/admin/modules.html:220
#: app/templates/base.html:920
msgid "Tools & Data"
msgstr "Outils et données"

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

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

#: app/templates/admin/custom_field_definitions/form.html:6
#: app/templates/admin/custom_field_definitions/list.html:6
#: app/templates/admin/ldap_setup_wizard.html:8
#: app/templates/admin/link_templates/form.html:6
#: app/templates/admin/link_templates/list.html:6
#: app/templates/admin/modules.html:15 app/templates/admin/oidc_debug.html:8
#: app/templates/admin/oidc_debug.html:152
#: app/templates/admin/oidc_setup_wizard.html:8
#: 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/salesman_email_mappings.html:4
#: 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:955
#: app/templates/comments/_comment.html:19 app/templates/user/profile.html:21
msgid "Admin"
msgstr "Administrateur"

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

#: app/templates/admin/settings.html:145 app/templates/base.html:973
#: app/templates/main/help.html:569
msgid "User Management"
msgstr "Gestion des utilisateurs"

#: app/templates/base.html:980
msgid "Manage Users"
msgstr ""

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

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

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

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

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

#: app/templates/admin/ldap_setup_wizard.html:9 app/templates/base.html:1030
#: app/templates/partials/_bottom_nav.html:54 app/templates/user/license.html:2
#: 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/admin/modules.html:15 app/templates/base.html:1035
msgid "Module Management"
msgstr ""

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

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

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

#: app/templates/base.html:1065
msgid "Security & Access"
msgstr ""

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

#: 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:1086
msgid "Audit Logs"
msgstr "Journaux d'audit"

#: app/templates/base.html:1098
msgid "Data Management"
msgstr ""

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

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

#: app/templates/base.html:1122 app/templates/clients/create.html:78
#: app/templates/clients/edit.html:72 app/templates/clients/view.html:133
#: app/templates/projects/create.html:107 app/templates/projects/edit.html:98
#: app/templates/projects/view.html:160
msgid "Custom Fields"
msgstr ""

#: app/templates/admin/link_templates/form.html:7
#: app/templates/admin/link_templates/list.html:7
#: app/templates/admin/link_templates/list.html:12 app/templates/base.html:1127
msgid "Link Templates"
msgstr ""

#: app/templates/base.html:1140
msgid "System Maintenance"
msgstr ""

#: app/templates/base.html:1147 app/templates/main/about.html:250
#: app/templates/main/help.html:783 app/templates/main/help.html:825
msgid "System Info"
msgstr "Informations système"

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

#: app/templates/base.html:1161
msgid "Telemetry"
msgstr ""

#: app/templates/base.html:1178 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:1184 app/templates/base.html:1255
#: app/templates/clients/create.html:117 app/templates/main/help.html:3
#: app/templates/main/help.html:8 app/templates/main/help.html:12
#: app/templates/timer/calendar.html:337
msgid "Help"
msgstr "Aide"

#: app/templates/base.html:1189
#, fuzzy
msgid "Open support options"
msgstr "Options d'exportation"

#: app/templates/base.html:1191 app/templates/base.html:1264
#: app/templates/base.html:1266 app/templates/base.html:1329
#: app/templates/components/support_modal.html:9
#: app/templates/main/about.html:46 app/templates/main/donate.html:2
#: app/templates/main/help.html:836 app/templates/user/settings.html:26
msgid "Support TimeTracker"
msgstr "Prise en charge de TimeTracker"

#: app/templates/base.html:1211
#, fuzzy
msgid "Open sidebar"
msgstr "Basculer la barre latérale"

#: app/templates/base.html:1219 app/templates/base.html:1220
#: app/templates/components/multi_select.html:68
#: app/templates/inventory/stock_items/list.html:21
#: app/templates/inventory/suppliers/list.html:21
#: app/templates/issues/list.html:31 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
#: app/templates/timer/time_entries_overview.html:118
msgid "Search"
msgstr "Recherche"

#: app/templates/admin/oidc_user_detail.html:29 app/templates/base.html:1229
#: app/templates/user/settings.html:215
msgid "Theme"
msgstr "Thème"

#: app/templates/base.html:1234
#, fuzzy
msgid "Theme options"
msgstr "Options de filtre"

#: app/templates/base.html:1235 app/templates/user/settings.html:220
msgid "Light"
msgstr "Lumière"

#: app/templates/base.html:1236 app/templates/kanban/create_column.html:68
#: app/templates/kanban/edit_column.html:60
#: app/templates/user/settings.html:221
msgid "Dark"
msgstr "Sombre"

#: app/templates/admin/roles/list.html:132
#: app/templates/admin/users/roles.html:36 app/templates/base.html:1237
#: app/templates/deals/view.html:204 app/templates/kanban/columns.html:54
#: app/templates/kanban/columns.html:86
#: app/templates/setup/initial_setup.html:165
msgid "System"
msgstr "Système"

#: app/templates/base.html:1244
msgid "Open chat"
msgstr ""

#: app/templates/base.html:1250 app/templates/base.html:1458
#: app/templates/kiosk/dashboard.html:353 app/templates/main/dashboard.html:58
#: app/templates/main/dashboard.html:59 app/templates/main/dashboard.html:704
#: app/templates/tasks/_kanban.html:60 app/templates/tasks/edit.html:285
#: app/templates/tasks/my_tasks.html:341
msgid "Start Timer"
msgstr "Démarrer la minuterie"

#: app/templates/base.html:1251 app/templates/mileage/gps.html:32
#: app/templates/reports/time_entries_report.html:104
#: app/templates/reports/time_entries_report.html:118
#, fuzzy
msgid "Stop"
msgstr "à"

#: app/templates/admin/settings.html:516 app/templates/base.html:1259
#: app/templates/base.html:1491 app/templates/base.html:1493
#: app/templates/base.html:1498 app/templates/base.html:1501
#, fuzzy
msgid "AI Helper"
msgstr "Afficher l'aide"

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

#: app/templates/base.html:1278 app/templates/user/settings.html:227
msgid "Language"
msgstr "Langue"

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

#: app/templates/base.html:1308
#, fuzzy
msgid "Supporter"
msgstr "Soutien"

#: app/templates/base.html:1314 app/templates/base.html:1320
msgid "Guest"
msgstr "Invité"

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

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

#: app/templates/base.html:1326 app/templates/invoices/edit.html:255
#: app/templates/invoices/edit.html:615 app/templates/main/dashboard.html:648
#: app/templates/projects/add_good.html:34
#: app/templates/projects/edit_good.html:34
#: app/templates/quotes/_edit_quote_form_scripts.html:223
#: app/templates/quotes/edit.html:222 app/templates/user/license.html:2
#: app/templates/user/license.html:7
msgid "License"
msgstr "Licence"

#: app/templates/base.html:1329
msgid "Donate or get a supporter license"
msgstr ""

#: app/templates/base.html:1331 app/templates/client_portal/base.html:302
#: app/templates/client_portal/base.html:379 app/templates/kiosk/base.html:129
msgid "Logout"
msgstr "Déconnexion"

#: app/templates/base.html:1364 app/templates/base.html:2459
#: app/templates/main/dashboard.html:635 app/templates/main/help.html:843
#: app/templates/reports/index.html:20
msgid "Enjoying TimeTracker?"
msgstr "Vous appréciez TimeTracker ?"

#: app/templates/base.html:1367
msgid "Support independent development — licenses are supporter badges, not paywalls."
msgstr ""

#: app/templates/base.html:1374 app/templates/main/about.html:212
#, fuzzy
msgid "Support / Get key"
msgstr "Prise en charge de TimeTracker"

#: app/templates/base.html:1381
msgid "Buy Me a Coffee"
msgstr ""

#: app/templates/base.html:1388 app/utils/i18n_helpers.py:115
#: app/utils/i18n_helpers.py:131
msgid "PayPal"
msgstr "Paypal"

#: app/templates/base.html:1391
#, fuzzy
msgid "Support / License"
msgstr "Fournitures"

#: app/templates/base.html:1395 app/templates/base.html:1431
msgid "Dismiss"
msgstr "Rejeter"

#: app/templates/base.html:1408
msgid "Built by an independent developer"
msgstr ""

#: app/templates/base.html:1417
#, fuzzy
msgid "Software update"
msgstr "Date de début"

#: app/templates/base.html:1425
#, fuzzy
msgid "Read more"
msgstr "Charger plus"

#: app/templates/base.html:1430
#, fuzzy
msgid "View Release"
msgstr "Afficher la tâche"

#: app/templates/base.html:1432
msgid "Don't show again for this version"
msgstr ""

#: app/templates/base.html:1447
#, fuzzy
msgid "Quick actions dock"
msgstr "Actions rapides"

#: app/templates/admin/custom_field_definitions/list.html:29
#: app/templates/admin/custom_field_definitions/list.html:59
#: app/templates/admin/link_templates/list.html:30
#: app/templates/admin/link_templates/list.html:63
#: 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/salesman_email_mappings.html:44
#: app/templates/admin/salesman_email_mappings.html:217
#: app/templates/admin/webhooks/list.html:29
#: app/templates/admin/webhooks/list.html:72
#: app/templates/audit_logs/list.html:81 app/templates/audit_logs/list.html:160
#: app/templates/base.html:1454 app/templates/base.html:1482
#: app/templates/base.html:1484 app/templates/budget/dashboard.html:122
#: app/templates/client_portal/invoices.html:76
#: app/templates/client_portal/quote_detail.html:129
#: app/templates/client_portal/quotes.html:31
#: app/templates/client_portal/quotes.html:65
#: app/templates/components/ui.html:526 app/templates/contacts/list.html:32
#: app/templates/contacts/list.html:56 app/templates/deals/list.html:56
#: app/templates/deals/list.html:80 app/templates/expenses/dashboard.html:222
#: app/templates/expenses/list.html:337
#: app/templates/integrations/health.html:29
#: app/templates/integrations/view.html:114
#: app/templates/inventory/low_stock/list.html:28
#: app/templates/inventory/low_stock/list.html:44
#: app/templates/inventory/purchase_orders/list.html:56
#: app/templates/inventory/purchase_orders/list.html:90
#: app/templates/inventory/reports/low_stock.html:36
#: app/templates/inventory/reports/low_stock.html:57
#: app/templates/inventory/reservations/list.html:47
#: app/templates/inventory/reservations/list.html:100
#: app/templates/inventory/stock_items/list.html:56
#: app/templates/inventory/stock_items/list.html:94
#: app/templates/inventory/suppliers/list.html:47
#: app/templates/inventory/suppliers/list.html:81
#: app/templates/inventory/warehouses/list.html:27
#: app/templates/inventory/warehouses/list.html:54
#: app/templates/issues/list.html:100 app/templates/issues/list.html:134
#: app/templates/kanban/columns.html:55 app/templates/leads/list.html:56
#: app/templates/leads/list.html:84 app/templates/main/dashboard.html:338
#: app/templates/main/dashboard.html:367 app/templates/main/search.html:39
#: app/templates/payment_gateways/list.html:29
#: app/templates/payment_gateways/list.html:55
#: app/templates/payments/list.html:172
#: app/templates/projects/_projects_list.html:126
#: app/templates/projects/goods.html:45 app/templates/projects/goods.html:75
#: app/templates/projects/list.html:207 app/templates/projects/view.html:434
#: app/templates/projects/view.html:479
#: app/templates/quotes/_quotes_list.html:39
#: app/templates/quotes/_quotes_list.html:76 app/templates/quotes/view.html:191
#: app/templates/recurring_invoices/list.html:29
#: app/templates/recurring_invoices/list.html:59
#: app/templates/recurring_invoices/view.html:113
#: app/templates/recurring_tasks/list.html:35
#: app/templates/recurring_tasks/list.html:79
#: app/templates/reports/saved_views_list.html:32
#: app/templates/reports/saved_views_list.html:59
#: app/templates/reports/scheduled.html:31
#: app/templates/reports/scheduled.html:79
#: app/templates/tasks/_tasks_list.html:99 app/templates/tasks/view.html:79
#: app/templates/timer/_time_entries_list.html:45
#: app/templates/timer/_time_entries_list.html:177
#: app/templates/timer/calendar.html:317
msgid "Actions"
msgstr "Actes"

#: app/templates/base.html:1462 app/templates/reports/index.html:247
#: app/templates/timer/_time_entries_list.html:201
#: app/templates/timer/_time_entries_list.html:208
#: app/templates/timer/manual_entry.html:8
#: app/templates/timer/manual_entry.html:162
msgid "Log Time"
msgstr "Heure de journalisation"

#: app/templates/base.html:1466 app/templates/tasks/my_tasks.html:20
msgid "New Task"
msgstr "Nouvelle tâche"

#: app/templates/base.html:1471
#, fuzzy
msgid "New Project"
msgstr "Voir le projet"

#: app/templates/base.html:1475
#, fuzzy
msgid "New Client"
msgstr "Modifier le client"

#: app/templates/base.html:1491
#, fuzzy
msgid "Open AI Helper"
msgstr "L'opération a échoué"

#: app/templates/base.html:1502
msgid "Ask about your tracked work, summaries, gaps, and next actions."
msgstr ""

#: app/templates/base.html:1508
#, fuzzy
msgid "Context included"
msgstr "Contrat terminé"

#: app/templates/base.html:1509
#, fuzzy
msgid "Loading context preview..."
msgstr "Aperçu du logo"

#: app/templates/base.html:1515
msgid "Ask: What did I work on this week? Draft a time entry from these notes..."
msgstr ""

#: app/templates/base.html:1518
#, fuzzy
msgid "Send"
msgstr "Fin"

#: app/templates/base.html:2450
msgid "Amazing! You've tracked over 100 hours"
msgstr ""

#: app/templates/base.html:2451 app/templates/base.html:2454
#: app/templates/base.html:2457 app/templates/base.html:2460
msgid "Support updates and new features — or remove prompts with a key"
msgstr ""

#: app/templates/base.html:2453
msgid "Great progress! You've logged 50+ entries"
msgstr ""

#: app/templates/base.html:2456
msgid "Thanks for using TimeTracker!"
msgstr ""

#: app/templates/admin/api_tokens.html:129
msgid "Create API Token"
msgstr "Créer un jeton API"

#: app/templates/admin/api_tokens.html:356
msgid "Your API Token"
msgstr "Votre jeton API"

#: app/templates/admin/api_tokens.html:368
msgid "Usage Examples"
msgstr "Exemples d'utilisation"

#: app/templates/admin/api_tokens.html:457
msgid "Are you sure you want to"
msgstr "Etes-vous sûr de vouloir"

#: app/templates/admin/api_tokens.html:457
msgid "deactivate"
msgstr "désactiver"

#: app/templates/admin/api_tokens.html:457
msgid "activate"
msgstr "activer"

#: app/templates/admin/api_tokens.html:457
msgid "this token?"
msgstr "ce jeton ?"

#: app/templates/admin/api_tokens.html:459
msgid "Deactivate Token"
msgstr "Désactiver le jeton"

#: app/templates/admin/api_tokens.html:459
msgid "Activate Token"
msgstr "Activer le jeton"

#: app/templates/admin/api_tokens.html:460 app/templates/kanban/columns.html:98
msgid "Deactivate"
msgstr "Désactiver"

#: app/templates/admin/api_tokens.html:460 app/templates/clients/view.html:35
#: app/templates/clients/view.html:37 app/templates/kanban/columns.html:98
#: app/templates/projects/view.html:61 app/templates/projects/view.html:64
msgid "Activate"
msgstr "Activer"

#: app/templates/admin/api_tokens.html:490
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:492
msgid "Delete Token"
msgstr "Supprimer le jeton"

#: app/templates/admin/backups.html:28
#: app/templates/import_export/index.html:185
#: app/templates/import_export/index.html:189
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:114
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:24
msgid "Total Users"
msgstr ""

#: app/templates/admin/dashboard.html:26 app/templates/admin/dashboard.html:56
#: app/templates/audit_logs/list.html:59 app/templates/reports/index.html:26
#: app/templates/reports/index.html:27
msgid "All time"
msgstr "Tout le temps"

#: app/templates/admin/dashboard.html:39 app/templates/admin/dashboard.html:430
#: app/templates/reports/index.html:29
msgid "Active Users"
msgstr ""

#: app/templates/admin/dashboard.html:41 app/templates/admin/dashboard.html:71
#: app/templates/reports/index.html:28 app/templates/reports/index.html:29
msgid "Currently active"
msgstr ""

#: app/templates/admin/dashboard.html:54 app/templates/clients/edit.html:176
msgid "Total Projects"
msgstr "Total des projets"

#: app/templates/admin/dashboard.html:69
#: app/templates/analytics/dashboard.html:53
#: app/templates/client_portal/widgets/stats.html:6
#: app/templates/clients/edit.html:180 app/templates/reports/index.html:28
msgid "Active Projects"
msgstr "Projets actifs"

#: app/templates/admin/dashboard.html:84
msgid "Total Entries"
msgstr ""

#: app/templates/admin/dashboard.html:86
msgid "Time entries logged"
msgstr ""

#: app/templates/admin/dashboard.html:99
msgid "Active Timers"
msgstr ""

#: app/templates/admin/dashboard.html:101
msgid "Currently running"
msgstr ""

#: app/templates/admin/dashboard.html:116
msgid "All time tracked"
msgstr ""

#: app/templates/admin/dashboard.html:131
msgid "Billable time"
msgstr ""

#: app/templates/admin/dashboard.html:146
msgid "User Activity (30 Days)"
msgstr ""

#: app/templates/admin/dashboard.html:157
msgid "Project Status"
msgstr ""

#: app/templates/admin/dashboard.html:168
msgid "Time Entry Trends (30 Days)"
msgstr ""

#: app/templates/admin/dashboard.html:180
msgid "System Health"
msgstr ""

#: app/templates/admin/dashboard.html:189 app/templates/main/about.html:147
msgid "Database"
msgstr "Base de données"

#: app/templates/admin/dashboard.html:190
#: app/templates/admin/integrations/setup.html:191
#: app/templates/integrations/list.html:127
#: app/templates/integrations/manage.html:552
#: app/templates/integrations/view.html:31
#: app/templates/integrations/view.html:42
#: app/templates/integrations/wizard_trello.html:92
msgid "Connected"
msgstr ""

#: app/templates/admin/dashboard.html:200
msgid "OIDC Authentication"
msgstr ""

#: app/templates/admin/dashboard.html:202
msgid "Configured"
msgstr ""

#: app/templates/admin/dashboard.html:202
#: app/templates/integrations/list.html:51
msgid "Not Configured"
msgstr ""

#: app/templates/admin/dashboard.html:214
#: app/templates/admin/oidc_debug.html:128
msgid "OIDC Users"
msgstr "Utilisateurs OIDC"

#: app/templates/admin/dashboard.html:215
#: app/templates/admin/roles/list.html:123
#: app/templates/admin/settings.html:827
msgid "users"
msgstr "utilisateurs"

#: app/templates/admin/dashboard.html:226
msgid "Admin Sections"
msgstr "Sections d'administration"

#: app/templates/admin/dashboard.html:327
#: app/templates/components/activity_feed_widget.html:6
#: app/templates/main/dashboard.html:592
#: app/templates/projects/dashboard.html:242
#: app/templates/user/profile.html:131
msgid "Recent Activity"
msgstr "Activité récente"

#: app/templates/admin/dashboard.html:336 app/templates/approvals/view.html:30
#: app/templates/calendar/event_detail.html:57
#: app/templates/client_portal/approvals.html:130
#: app/templates/client_portal/reports.html:221
#: app/templates/client_portal/time_entries.html:66
#: app/templates/client_portal/widgets/time_entries.html:23
#: app/templates/clients/view.html:353 app/templates/main/dashboard.html:336
#: app/templates/main/dashboard.html:361 app/templates/main/search.html:36
#: app/templates/reports/index.html:226 app/templates/reports/index.html:234
#: app/templates/reports/time_entries_report.html:105
#: app/templates/reports/time_entries_report.html:119
#: app/templates/reports/unpaid_hours_report.html:123
#: app/templates/tasks/view.html:76
#: app/templates/timer/_time_entries_list.html:40
#: app/templates/timer/_time_entries_list.html:89
#: app/templates/timer/calendar.html:876
#: app/templates/timer/time_entries_export_pdf.html:18
#: app/templates/timer/view_timer.html:41
msgid "Duration"
msgstr "Durée"

#: app/templates/admin/dashboard.html:352
#: app/templates/client_portal/activity_feed.html:60
#: app/templates/client_portal/approvals.html:90
#: app/templates/client_portal/approvals.html:121
#: app/templates/client_portal/approvals.html:143
#: app/templates/client_portal/notifications.html:96
#: app/templates/client_portal/project_comments.html:59
#: app/templates/client_portal/quotes.html:51
#: app/templates/client_portal/reports.html:102
#: app/templates/client_portal/reports.html:230
#: app/templates/client_portal/reports.html:236
#: app/templates/client_portal/reports.html:250
#: app/templates/client_portal/time_entries.html:90
#: app/templates/client_portal/time_entries.html:101
#: app/templates/client_portal/widgets/time_entries.html:37
#: app/templates/client_portal/widgets/time_entries.html:45
#: app/templates/clients/view.html:388 app/templates/main/dashboard.html:358
#: app/templates/main/search.html:51 app/templates/timer/calendar.html:847
#: app/templates/timer/calendar.html:851 app/templates/timer/calendar.html:864
#: app/templates/timer/manual_entry.html:33 app/templates/user/profile.html:77
msgid "N/A"
msgstr "N / A"

#: 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:168
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:190
msgid "Use TLS"
msgstr "Utiliser TLS"

#: app/templates/admin/email_support.html:55
#: app/templates/admin/email_support.html:194
msgid "Use SSL"
msgstr "Utiliser SSL"

#: app/templates/admin/email_support.html:61
#: app/templates/admin/email_support.html:176
#: app/templates/admin/oidc_debug.html:134
#: app/templates/admin/oidc_user_detail.html:23
#: app/templates/auth/login.html:51 app/templates/auth/login.html:57
#: app/templates/client_portal/login.html:48
#: app/templates/client_portal/set_password.html:42
#: app/templates/integrations/caldav_setup.html:77
#: app/templates/integrations/manage.html:235
#: app/templates/kiosk/login.html:116 app/templates/user/settings.html:49
msgid "Username"
msgstr "Nom d'utilisateur"

#: app/templates/admin/email_support.html:68 app/templates/auth/login.html:52
#: app/templates/auth/login.html:64 app/templates/auth/login.html:67
#: app/templates/client_portal/login.html:54
#: app/templates/client_portal/set_password.html:50
#: app/templates/integrations/caldav_setup.html:93
#: app/templates/integrations/manage.html:251
#: app/templates/kiosk/login.html:136 app/templates/kiosk/login.html:146
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:198
msgid "Default Sender"
msgstr "Expéditeur par défaut"

#: app/templates/admin/email_support.html:82
#, fuzzy
msgid "Test recipient email"
msgstr "E-mail du destinataire"

#: app/templates/admin/email_support.html:84
msgid "Used to prefill “Send Test Email” and invoice template test sends."
msgstr ""

#: app/templates/admin/email_support.html:91
#: app/templates/admin/email_support.html:376
#: app/templates/integrations/activitywatch_setup.html:145
#: app/templates/integrations/caldav_setup.html:199
#: app/templates/integrations/manage.html:520
msgid "Save Configuration"
msgstr "Enregistrer la configuration"

#: app/templates/admin/email_support.html:94
#: app/templates/admin/pdf_layout.html:1715
#: app/templates/admin/pdf_layout.html:7735
#: app/templates/admin/quote_pdf_layout.html:1525
#: app/templates/admin/quote_pdf_layout.html:7175
#: app/templates/components/ui.html:838
#: app/templates/integrations/health.html:107
#: app/templates/integrations/view.html:150
#: app/templates/projects/time_entries_overview.html:40
#: app/templates/settings/keyboard_shortcuts.html:484
#: app/templates/timer/bulk_entry.html:90
msgid "Reset"
msgstr "Réinitialiser"

#: app/templates/admin/email_support.html:106
msgid "Email Configuration Status"
msgstr "État de la configuration de la messagerie"

#: app/templates/admin/email_support.html:108
#: app/templates/analytics/dashboard.html:20
#: app/templates/analytics/dashboard_improved.html:22
#: app/templates/budget/dashboard.html:18
#: app/templates/components/persistent_chat_widget.html:34
#: app/templates/gantt/view.html:46
msgid "Refresh"
msgstr "Rafraîchir"

#: app/templates/admin/email_support.html:118
msgid "Email is configured!"
msgstr "L'e-mail est configuré !"

#: app/templates/admin/email_support.html:119
msgid "Your email settings are properly set up."
msgstr "Vos paramètres de messagerie sont correctement configurés."

#: app/templates/admin/email_support.html:128
msgid "Email is not configured"
msgstr "L'e-mail n'est pas configuré"

#: app/templates/admin/email_support.html:129
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:139
msgid "Configuration Errors"
msgstr "Erreurs de configuration"

#: app/templates/admin/email_support.html:153
msgid "Configuration Warnings"
msgstr "Avertissements de configuration"

#: app/templates/admin/email_support.html:165
msgid "Current Email Settings"
msgstr "Paramètres de messagerie actuels"

#: app/templates/admin/email_support.html:172
#: app/templates/admin/ldap_setup_wizard.html:66
#: app/templates/admin/settings.html:416
msgid "Port"
msgstr "Port"

#: app/templates/admin/email_support.html:180
msgid "Password Set"
msgstr "Mot de passe défini"

#: app/templates/admin/email_support.html:208
#: app/templates/admin/email_support.html:225
#: app/templates/admin/email_support.html:475
msgid "Send Test Email"
msgstr "Envoyer un e-mail de test"

#: app/templates/admin/email_support.html:213
msgid "Recipient Email Address"
msgstr "Adresse e-mail du destinataire"

#: app/templates/admin/email_support.html:235
msgid "Configuration Guide"
msgstr "Guide de configuration"

#: app/templates/admin/email_support.html:238
msgid "Common SMTP Providers"
msgstr "Fournisseurs SMTP courants"

#: app/templates/admin/email_support.html:240
msgid "Requires app password"
msgstr "Nécessite le mot de passe de l'application"

#: app/templates/admin/email_support.html:249
msgid "Important Notes"
msgstr "Remarques importantes"

#: app/templates/admin/email_support.html:252
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:253
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:254
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:255
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:307
msgid "password is set"
msgstr "le mot de passe est défini"

#: app/templates/admin/email_support.html:310
msgid "no password set"
msgstr "aucun mot de passe défini"

#: app/templates/admin/email_support.html:372
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:390
#: app/templates/admin/email_support.html:489
msgid "Success!"
msgstr "Succès!"

#: app/templates/admin/email_support.html:428
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:443
msgid "Please enter a valid email address"
msgstr "S'il vous plaît, mettez une adresse email valide"

#: app/templates/admin/email_support.html:449
msgid "Sending..."
msgstr "Envoi..."

#: app/templates/admin/email_support.html:471
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/ldap_setup_wizard.html:4
#: app/templates/admin/ldap_setup_wizard.html:10
#: app/templates/admin/ldap_setup_wizard.html:15
msgid "LDAP Setup Wizard"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:16
#, fuzzy
msgid "Guided configuration for LDAP authentication (environment variables)"
msgstr "Configurez OIDC à l'aide de ces variables d'environnement :"

#: app/templates/admin/ldap_setup_wizard.html:31
#, fuzzy
msgid "Server"
msgstr "Service"

#: app/templates/admin/ldap_setup_wizard.html:36
msgid "Bind"
msgstr ""

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

#: app/templates/admin/ldap_setup_wizard.html:46
#, fuzzy
msgid "Groups"
msgstr "Réclamation de groupes"

#: app/templates/admin/ldap_setup_wizard.html:51
#: app/templates/admin/oidc_setup_wizard.html:46
msgid "Finalize"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:57
msgid "Step 1: Server and TLS"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:60
#, fuzzy
msgid "LDAP host"
msgstr "Perdu"

#: app/templates/admin/ldap_setup_wizard.html:73
#, fuzzy
msgid "Use SSL (LDAPS)"
msgstr "Utiliser SSL"

#: app/templates/admin/ldap_setup_wizard.html:77
#, fuzzy
msgid "StartTLS"
msgstr "Commencer"

#: app/templates/admin/ldap_setup_wizard.html:81
#, fuzzy
msgid "Connection timeout (seconds)"
msgstr "Délai d'expiration (secondes)"

#: app/templates/admin/ldap_setup_wizard.html:86
msgid "TLS CA certificate file"
msgstr ""

#: app/templates/admin/email_templates/edit.html:27
#: app/templates/admin/email_templates/view.html:29
#: app/templates/admin/integrations/setup.html:100
#: app/templates/admin/ldap_setup_wizard.html:86
#: app/templates/admin/ldap_setup_wizard.html:127
#: app/templates/admin/ldap_setup_wizard.html:167
#: app/templates/admin/ldap_setup_wizard.html:179
#: app/templates/admin/ldap_setup_wizard.html:185
#: app/templates/admin/oidc_setup_wizard.html:193
#: app/templates/admin/oidc_setup_wizard.html:206
#: app/templates/admin/oidc_setup_wizard.html:251
#: app/templates/admin/salesman_email_mappings.html:124
#: app/templates/integrations/activitywatch_setup.html:51
#: app/templates/integrations/activitywatch_setup.html:100
#: app/templates/integrations/caldav_setup.html:60
#: app/templates/integrations/caldav_setup.html:130
#: app/templates/integrations/manage.html:151
#: app/templates/integrations/wizard_asana.html:65
#: app/templates/integrations/wizard_github.html:50
#: app/templates/integrations/wizard_github.html:144
#: app/templates/integrations/wizard_gitlab.html:81
#: app/templates/integrations/wizard_gitlab.html:199
#: app/templates/integrations/wizard_jira.html:86
#: app/templates/integrations/wizard_microsoft_teams.html:18
#: app/templates/integrations/wizard_outlook_calendar.html:18
#: app/templates/integrations/wizard_quickbooks.html:145
#: app/templates/integrations/wizard_xero.html:128
#: app/templates/setup/initial_setup.html:152
#: app/templates/setup/initial_setup.html:156
#: app/templates/setup/initial_setup.html:202
msgid "optional"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:95
msgid "Step 2: Service bind account"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:98
msgid "Bind DN"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:104
#, fuzzy
msgid "Bind password"
msgstr "Mot de passe"

#: app/templates/admin/ldap_setup_wizard.html:107
#, fuzzy
msgid "Enter bind password"
msgstr "Entrez votre mot de passe"

#: app/templates/admin/ldap_setup_wizard.html:110
msgid "A bind password is already set in the environment. Enter it again here to test or generate configuration."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:118
msgid "Step 3: User directory and attributes"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:121
#: app/templates/admin/settings.html:425
#, fuzzy
msgid "Base DN"
msgstr "Basé sur le dernier"

#: app/templates/admin/ldap_setup_wizard.html:127
msgid "User subtree (relative to base)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:133
#, fuzzy
msgid "User object class"
msgstr "Utiliser les taux horaires du projet"

#: app/templates/admin/ldap_setup_wizard.html:140
#, fuzzy
msgid "Login attribute"
msgstr "Heure de journalisation"

#: app/templates/admin/ldap_setup_wizard.html:145
#, fuzzy
msgid "Email attribute"
msgstr "Adresse email"

#: app/templates/admin/ldap_setup_wizard.html:150
#, fuzzy
msgid "First name attribute"
msgstr "Prénom"

#: app/templates/admin/ldap_setup_wizard.html:155
#, fuzzy
msgid "Last name attribute"
msgstr "Nom de famille"

#: app/templates/admin/ldap_setup_wizard.html:164
#, fuzzy
msgid "Step 4: Groups and authentication mode"
msgstr "Méthode d'authentification"

#: app/templates/admin/ldap_setup_wizard.html:167
msgid "Group subtree (relative to base)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:173
#, fuzzy
msgid "Group object class"
msgstr "Meilleurs projets"

#: app/templates/admin/ldap_setup_wizard.html:179
#: app/templates/admin/settings.html:437
#, fuzzy
msgid "Admin group (CN)"
msgstr "Groupe d'administrateurs"

#: app/templates/admin/ldap_setup_wizard.html:185
#: app/templates/admin/settings.html:441
msgid "Required group (CN)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:190
#, fuzzy
msgid "AUTH_METHOD"
msgstr "Méthode d'authentification"

#: app/templates/admin/ldap_setup_wizard.html:193
#, fuzzy
msgid "LDAP only"
msgstr "Actif uniquement"

#: app/templates/admin/ldap_setup_wizard.html:194
msgid "All (local + OIDC + LDAP)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:197
msgid "Use \"All\" only if you also configure local and OIDC sign-in; AUTH_METHOD=all enables every method."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:204
#, fuzzy
msgid "Step 5: Test and generate configuration"
msgstr "Configuration des tests"

#: app/templates/admin/ldap_setup_wizard.html:209
msgid "Test the service bind and user search, then generate .env snippets to copy into your deployment."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:214
#, fuzzy
msgid "Test connection"
msgstr "Configuration des tests"

#: app/templates/admin/ldap_setup_wizard.html:221
msgid "Generate environment variable lines for your .env file or Docker Compose."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:225
#, fuzzy
msgid "Generate configuration"
msgstr "Configuration des tests"

#: app/templates/admin/ldap_setup_wizard.html:230
#, fuzzy
msgid "Environment variables (.env)"
msgstr "Référence des variables d'environnement"

#: app/templates/admin/ldap_setup_wizard.html:233
#: app/templates/admin/ldap_setup_wizard.html:242
#: app/templates/admin/oidc_setup_wizard.html:283
#: app/templates/admin/oidc_setup_wizard.html:292
#: app/templates/admin/settings.html:180
msgid "Copy"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:239
#: app/templates/admin/oidc_setup_wizard.html:289
msgid "Docker Compose"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:250
msgid "Add these variables to your environment or Compose file, restart the application, then confirm under Settings → LDAP."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:258
#: app/templates/admin/oidc_setup_wizard.html:309
#: app/templates/components/ui.html:85
#: app/templates/integrations/wizard_base.html:48
#: app/templates/issues/list.html:152 app/templates/main/search.html:95
#: app/templates/project_templates/list.html:100
#: app/templates/reports/time_entries_report.html:148
#: app/templates/tasks/my_tasks.html:358
#: app/templates/timer/_time_entries_list.html:229
msgid "Previous"
msgstr "Précédent"

#: app/templates/admin/ldap_setup_wizard.html:262
#: app/templates/admin/oidc_setup_wizard.html:313
#: app/templates/components/ui.html:99
#: app/templates/integrations/wizard_base.html:52
#: app/templates/issues/list.html:159 app/templates/main/search.html:105
#: app/templates/project_templates/list.html:108
#: app/templates/reports/time_entries_report.html:151
#: app/templates/setup/initial_setup.html:285
#: app/templates/tasks/my_tasks.html:384
#: app/templates/timer/_time_entries_list.html:247
msgid "Next"
msgstr "Suivant"

#: app/templates/admin/modules.html:39
#, fuzzy
msgid "Feature Module Load Status"
msgstr "Statistiques d'utilisation des fonctionnalités"

#: app/templates/admin/modules.html:41
msgid "This reflects which optional feature modules successfully loaded when the server started."
msgstr ""

#: app/templates/admin/modules.html:45
#, fuzzy
msgid "Optional loaded:"
msgstr "Code promo facultatif"

#: app/templates/admin/modules.html:47
#, fuzzy
msgid "Attention needed"
msgstr "Attention requise"

#: app/templates/admin/modules.html:56
#, fuzzy
msgid "Module"
msgstr "Mobile"

#: app/templates/admin/modules.html:57
msgid "Blueprint"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:28
#: app/templates/admin/custom_field_definitions/list.html:52
#: app/templates/admin/link_templates/list.html:29
#: app/templates/admin/link_templates/list.html:56
#: app/templates/admin/modules.html:58 app/templates/admin/oidc_debug.html:29
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/pdf_layout.html:1828
#: app/templates/admin/quote_pdf_layout.html:1638
#: app/templates/admin/salesman_email_mappings.html:41
#: app/templates/admin/salesman_email_mappings.html:212
#: app/templates/admin/webhooks/list.html:27
#: app/templates/admin/webhooks/list.html:58
#: app/templates/admin/webhooks/view.html:32
#: app/templates/admin/webhooks/view.html:102
#: app/templates/admin/webhooks/view.html:112
#: app/templates/approvals/list.html:99 app/templates/approvals/view.html:74
#: 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:75
#: app/templates/client_portal/issue_detail.html:39
#: app/templates/client_portal/quote_detail.html:39
#: app/templates/client_portal/quotes.html:30
#: app/templates/client_portal/quotes.html:55
#: app/templates/client_portal/reports.html:90
#: app/templates/contacts/communication_form.html:57
#: app/templates/deals/activity_form.html:34 app/templates/deals/list.html:22
#: app/templates/deals/view.html:53 app/templates/expenses/dashboard.html:203
#: app/templates/expenses/list.html:316 app/templates/integrations/view.html:20
#: app/templates/integrations/wizard_trello.html:71
#: app/templates/inventory/purchase_orders/list.html:21
#: app/templates/inventory/purchase_orders/list.html:54
#: app/templates/inventory/purchase_orders/list.html:74
#: app/templates/inventory/purchase_orders/view.html:34
#: app/templates/inventory/reports/turnover.html:49
#: app/templates/inventory/reports/turnover.html:64
#: app/templates/inventory/reservations/list.html:20
#: app/templates/inventory/reservations/list.html:44
#: app/templates/inventory/reservations/list.html:78
#: app/templates/inventory/stock_items/list.html:55
#: app/templates/inventory/stock_items/list.html:87
#: app/templates/inventory/stock_items/view.html:100
#: app/templates/inventory/stock_items/view.html:181
#: app/templates/inventory/stock_items/view.html:202
#: app/templates/inventory/stock_levels/warehouse.html:52
#: app/templates/inventory/stock_levels/warehouse.html:71
#: app/templates/inventory/suppliers/list.html:25
#: app/templates/inventory/suppliers/list.html:46
#: app/templates/inventory/suppliers/list.html:74
#: app/templates/inventory/suppliers/view.html:30
#: app/templates/inventory/warehouses/list.html:26
#: app/templates/inventory/warehouses/list.html:47
#: app/templates/inventory/warehouses/view.html:30
#: app/templates/invoices/edit.html:309
#: app/templates/invoices/pdf_default.html:59 app/templates/issues/edit.html:37
#: app/templates/issues/list.html:36 app/templates/issues/list.html:96
#: app/templates/issues/list.html:113 app/templates/issues/view.html:95
#: app/templates/kanban/columns.html:52
#: app/templates/leads/activity_form.html:34 app/templates/leads/form.html:60
#: app/templates/leads/list.html:26 app/templates/leads/list.html:53
#: app/templates/leads/list.html:73 app/templates/leads/view.html:81
#: app/templates/main/help.html:198 app/templates/mileage/gps.html:44
#: app/templates/payment_gateways/list.html:27
#: app/templates/payment_gateways/list.html:41
#: app/templates/payments/list.html:159
#: app/templates/projects/_kanban_tailwind.html:30
#: app/templates/projects/_projects_list.html:86
#: app/templates/projects/goods.html:44 app/templates/projects/goods.html:66
#: app/templates/projects/list.html:167 app/templates/projects/view.html:275
#: app/templates/projects/view.html:430 app/templates/projects/view.html:449
#: app/templates/quotes/_quotes_list.html:37
#: app/templates/quotes/_quotes_list.html:60 app/templates/quotes/list.html:78
#: app/templates/quotes/pdf_default.html:61 app/templates/quotes/view.html:68
#: app/templates/recurring_invoices/list.html:28
#: app/templates/recurring_invoices/list.html:52
#: app/templates/recurring_invoices/view.html:110
#: app/templates/recurring_tasks/list.html:34
#: app/templates/recurring_tasks/list.html:71
#: app/templates/reports/scheduled.html:30
#: app/templates/reports/scheduled.html:68
#: app/templates/tasks/_kanban.html:1227
#: app/templates/tasks/_tasks_list.html:68 app/templates/tasks/edit.html:78
#: app/templates/tasks/my_tasks.html:128
#: app/templates/timer/_time_entries_list.html:44
#: app/templates/timer/_time_entries_list.html:161
#: app/templates/timer/calendar.html:857
#: app/templates/timer/time_entries_overview.html:196
#: app/templates/weekly_goals/edit.html:83
#: app/templates/weekly_goals/view.html:55
#: app/templates/workforce/dashboard.html:64
#: app/templates/workforce/dashboard.html:175 app/utils/pdf_generator.py:1129
msgid "Status"
msgstr "Statut"

#: app/templates/admin/modules.html:59 app/templates/admin/oidc_debug.html:157
#: app/templates/admin/webhooks/view.html:25
#: app/templates/budget/dashboard.html:172
#: app/templates/client_portal/error.html:32
#: app/templates/client_portal/issue_detail.html:36
#: app/templates/integrations/view.html:96 app/templates/issues/view.html:92
#: app/templates/projects/view.html:234
#: app/templates/timer/manual_entry.html:136
msgid "Details"
msgstr "Détails"

#: app/templates/admin/modules.html:70
#, fuzzy
msgid "Loaded"
msgstr "Charger plus"

#: app/templates/admin/modules.html:74
#: 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:90
#: app/templates/weekly_goals/index.html:51
#: app/templates/weekly_goals/index.html:180
#: app/templates/weekly_goals/view.html:71 app/utils/i18n_helpers.py:223
#: app/utils/i18n_helpers.py:235 app/utils/i18n_helpers.py:246
#: app/utils/i18n_helpers.py:257
msgid "Failed"
msgstr "Échoué"

#: app/templates/admin/modules.html:82 app/templates/main/dashboard.html:290
msgid "—"
msgstr ""

#: app/templates/admin/modules.html:101
msgid "Client Lock (optional)"
msgstr ""

#: app/templates/admin/modules.html:103
msgid "If set, all client selectors across the app will auto-select this client and prevent changes."
msgstr ""

#: app/templates/admin/modules.html:106
msgid "Locked Client"
msgstr ""

#: app/templates/admin/modules.html:108
msgid "None (no lock)"
msgstr ""

#: app/templates/admin/modules.html:120
msgid "Module Visibility"
msgstr ""

#: app/templates/admin/modules.html:122
msgid "Disable modules to hide them from all users. Disabled modules will not appear in the sidebar. Core modules (Dashboard, Projects, Timer, etc.) are always enabled and cannot be disabled."
msgstr ""

#: app/templates/admin/modules.html:127 app/templates/admin/modules.html:229
msgid "Enable All"
msgstr ""

#: app/templates/admin/modules.html:130 app/templates/admin/modules.html:233
msgid "Disable All"
msgstr ""

#: app/templates/admin/modules.html:148
msgid "Total Modules:"
msgstr ""

#: app/templates/admin/modules.html:152
msgid "Enabled:"
msgstr ""

#: app/templates/admin/modules.html:156
msgid "Disabled:"
msgstr ""

#: app/templates/admin/modules.html:165
msgid "Search modules..."
msgstr ""

#: app/templates/admin/modules.html:169
#: 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
#: app/templates/project_templates/list.html:24
msgid "All Categories"
msgstr "Toutes les catégories"

#: app/templates/admin/modules.html:173 app/templates/admin/modules.html:215
#: app/templates/main/about.html:32 app/templates/main/help.html:28
#: app/templates/main/help.html:190
msgid "Project Management"
msgstr "Gestion de projet"

#: app/templates/admin/modules.html:186
msgid "Show disabled only"
msgstr ""

#: app/templates/admin/modules.html:190
msgid "Show with dependencies"
msgstr ""

#: app/templates/admin/modules.html:200
msgid "Warning: Disabling these modules will also affect dependent modules:"
msgstr ""

#: app/templates/admin/modules.html:263 app/templates/admin/oidc_debug.html:32
#: app/templates/admin/settings.html:525
#: app/templates/integrations/list.html:47
#: app/templates/integrations/list.html:87
msgid "Enabled"
msgstr "Activé"

#: app/templates/admin/modules.html:265 app/templates/admin/oidc_debug.html:34
#: app/templates/admin/settings.html:526
msgid "Disabled"
msgstr "Désactivé"

#: app/templates/admin/modules.html:274
msgid "Depends on:"
msgstr ""

#: app/templates/admin/modules.html:301
msgid "Disabling \"Reports\" hides the whole Reports submenu including Report Builder and Scheduled Reports."
msgstr ""

#: app/templates/admin/modules.html:305 app/templates/auth/edit_profile.html:81
#: app/templates/client_notes/edit.html:86 app/templates/comments/edit.html:80
#: app/templates/invoices/edit.html:287 app/templates/issues/edit.html:83
#: app/templates/kanban/edit_column.html:91
#: app/templates/projects/edit.html:129
#: app/templates/projects/edit_good.html:69
#: app/templates/timer/edit_timer.html:393
#: app/templates/timer/edit_timer.html:514
#: app/templates/weekly_goals/edit.html:122
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: app/templates/admin/modules.html:310
msgid "No modules available."
msgstr ""

#: app/templates/admin/modules.html:320
#: app/templates/contacts/communication_form.html:33
#: app/templates/deals/activity_form.html:27
#: app/templates/leads/activity_form.html:27
msgid "Note"
msgstr "Note"

#: app/templates/admin/modules.html:322
msgid "All modules are enabled by default."
msgstr ""

#: app/templates/admin/modules.html:323
msgid "Core modules cannot be disabled as they are required for the application to function."
msgstr ""

#: app/templates/admin/modules.html:324
msgid "Disabling a module affects all users system-wide. Disabled modules will not appear in the navigation sidebar."
msgstr ""

#: app/templates/admin/modules.html:538
msgid "Enable all modules?"
msgstr ""

#: app/templates/admin/modules.html:547
msgid "Disable all modules? This may affect functionality."
msgstr ""

#: app/templates/admin/modules.html:573
msgid "Disable"
msgstr ""

#: app/templates/admin/modules.html:573
msgid "module(s) in this category?"
msgstr ""

#: app/templates/admin/modules.html:618
msgid "Validation errors:"
msgstr ""

#: 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
#: app/templates/admin/oidc_setup_wizard.html:10
#: app/templates/integrations/list.html:58
#: app/templates/integrations/list.html:98
#: app/templates/integrations/list.html:155
#: app/templates/integrations/wizard_base.html:10
msgid "Setup Wizard"
msgstr ""

#: 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: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
#: app/templates/integrations/health.html:86
#: app/templates/integrations/list.html:91
msgid "Not configured"
msgstr "Non configuré"

#: app/templates/admin/oidc_debug.html:47
#: app/templates/admin/oidc_setup_wizard.html:70
#: app/templates/payment_gateways/create.html:60
msgid "Client ID"
msgstr "Identifiant client"

#: app/templates/admin/oidc_debug.html:51
#: app/templates/admin/oidc_setup_wizard.html:83
#: app/templates/payment_gateways/create.html:64
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
#: app/templates/integrations/wizard_asana.html:191
#: app/templates/integrations/wizard_jira.html:255
#: app/templates/integrations/wizard_quickbooks.html:224
#: app/templates/integrations/wizard_xero.html:207
msgid "Not set"
msgstr "Non défini"

#: app/templates/admin/oidc_debug.html:55
#: app/templates/admin/oidc_setup_wizard.html:238
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
#: app/templates/admin/oidc_setup_wizard.html:225
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
#: app/templates/admin/oidc_setup_wizard.html:141
msgid "Username Claim"
msgstr "Réclamation de nom d'utilisateur"

#: app/templates/admin/oidc_debug.html:70
#: app/templates/admin/oidc_setup_wizard.html:154
msgid "Email Claim"
msgstr "Réclamation par courrier électronique"

#: app/templates/admin/oidc_debug.html:71
#: app/templates/admin/oidc_setup_wizard.html:167
msgid "Full Name Claim"
msgstr "Réclamation du nom complet"

#: app/templates/admin/oidc_debug.html:72
#: app/templates/admin/oidc_setup_wizard.html:180
msgid "Groups Claim"
msgstr "Réclamation de groupes"

#: app/templates/admin/oidc_debug.html:73
#: app/templates/admin/oidc_setup_wizard.html:193
msgid "Admin Group"
msgstr "Groupe d'administrateurs"

#: app/templates/admin/oidc_debug.html:74
#: app/templates/admin/oidc_setup_wizard.html:206
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
#: app/templates/admin/oidc_setup_wizard.html:128
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
#: app/templates/admin/oidc_setup_wizard.html:36
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:135
#: app/templates/admin/oidc_user_detail.html:24
#: app/templates/admin/pdf_layout.html:1796
#: app/templates/admin/quote_pdf_layout.html:1606
#: app/templates/clients/create.html:47 app/templates/clients/edit.html:54
#: app/templates/contacts/communication_form.html:30
#: app/templates/contacts/form.html:37 app/templates/contacts/list.html:29
#: app/templates/contacts/list.html:47 app/templates/contacts/view.html:33
#: app/templates/deals/activity_form.html:29
#: app/templates/inventory/suppliers/form.html:40
#: app/templates/inventory/suppliers/list.html:44
#: app/templates/inventory/suppliers/list.html:60
#: app/templates/inventory/suppliers/view.html:53
#: app/templates/invoices/pdf_default.html:45
#: app/templates/leads/activity_form.html:29 app/templates/leads/form.html:40
#: app/templates/leads/list.html:52 app/templates/leads/list.html:66
#: app/templates/leads/view.html:49 app/templates/projects/create.html:292
#: app/templates/quotes/pdf_default.html:45
#: app/templates/setup/initial_setup.html:147 app/utils/pdf_generator.py:1117
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:58
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/list.html:55 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:58
msgid "Last Login"
msgstr "Dernière connexion"

#: app/templates/admin/oidc_debug.html:139
msgid "OIDC Subject"
msgstr "Sujet OIDC"

#: app/templates/admin/custom_field_definitions/list.html:56
#: app/templates/admin/link_templates/list.html:60
#: 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/calendar/integrations.html:40
#: app/templates/clients/view.html:321 app/templates/integrations/view.html:25
#: 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/payment_gateways/list.html:45
#: app/templates/projects/view.html:121
#: app/templates/recurring_tasks/list.html:76
#: app/templates/reports/scheduled.html:76
#: app/templates/timer/calendar.html:975 app/utils/i18n_helpers.py:51
#: app/utils/i18n_helpers.py:57 app/utils/i18n_helpers.py:287
#: app/utils/i18n_helpers.py:293
msgid "Inactive"
msgstr "Inactif"

#: app/templates/admin/oidc_debug.html:153
#: app/templates/admin/oidc_user_detail.html:31
#: app/templates/integrations/manage.html:604
msgid "Never"
msgstr "Jamais"

#: 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/custom_field_definitions/form.html:36
#: app/templates/admin/link_templates/form.html:30
#: app/templates/admin/oidc_debug.html:179
#: app/templates/admin/roles/form.html:47
#: 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/chat/index.html:111
#: app/templates/client_portal/approvals.html:151
#: app/templates/client_portal/invoice_detail.html:57
#: app/templates/client_portal/invoice_detail.html:66
#: app/templates/client_portal/issue_detail.html:23
#: app/templates/client_portal/new_issue.html:33
#: app/templates/client_portal/quote_detail.html:57
#: app/templates/client_portal/quote_detail.html:69
#: app/templates/client_portal/quote_detail.html:78
#: app/templates/client_portal/time_entries.html:67
#: app/templates/client_portal/widgets/time_entries.html:24
#: app/templates/clients/create.html:32 app/templates/clients/create.html:136
#: app/templates/clients/edit.html:31 app/templates/deals/activity_form.html:54
#: app/templates/deals/form.html:97 app/templates/deals/view.html:105
#: 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/purchase_orders/view.html:110
#: 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:161
#: app/templates/invoices/edit.html:176 app/templates/invoices/edit.html:233
#: app/templates/invoices/edit.html:248 app/templates/invoices/edit.html:608
#: app/templates/invoices/pdf_default.html:88 app/templates/issues/edit.html:30
#: app/templates/issues/new.html:30 app/templates/issues/view.html:31
#: app/templates/leads/activity_form.html:54
#: app/templates/leads/convert_to_deal.html:54 app/templates/main/help.html:197
#: app/templates/project_templates/create.html:25
#: app/templates/project_templates/edit.html:25
#: app/templates/project_templates/view.html:30
#: app/templates/projects/add_cost.html:28
#: app/templates/projects/add_good.html:24
#: app/templates/projects/create.html:52 app/templates/projects/create.html:283
#: app/templates/projects/edit.html:48 app/templates/projects/edit_cost.html:35
#: app/templates/projects/edit_good.html:24
#: app/templates/projects/time_entries_overview.html:72
#: app/templates/projects/time_entries_overview.html:83
#: app/templates/quotes/_edit_quote_form_scripts.html:199
#: app/templates/quotes/_edit_quote_form_scripts.html:233
#: app/templates/quotes/create.html:41 app/templates/quotes/create.html:64
#: app/templates/quotes/create.html:95 app/templates/quotes/create.html:126
#: app/templates/quotes/edit.html:46 app/templates/quotes/edit.html:69
#: app/templates/quotes/edit.html:143 app/templates/quotes/edit.html:158
#: app/templates/quotes/edit.html:200 app/templates/quotes/edit.html:216
#: app/templates/quotes/pdf_default.html:95 app/templates/quotes/view.html:61
#: app/templates/quotes/view.html:102
#: app/templates/recurring_tasks/form.html:47
#: app/templates/tasks/_kanban.html:1253 app/templates/tasks/create.html:34
#: app/templates/tasks/edit.html:41 app/utils/pdf_generator.py:1154
#: app/utils/pdf_generator_fallback.py:240
#: app/utils/pdf_generator_fallback.py:575
msgid "Description"
msgstr "Description"

#: app/templates/admin/oidc_debug.html:180 app/templates/user/settings.html:297
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_setup_wizard.html:4
#: app/templates/admin/oidc_setup_wizard.html:15
msgid "OIDC Setup Wizard"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:16
msgid "Guided step-by-step configuration for OpenID Connect authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:26
msgid "Basic Config"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:31
#: app/templates/admin/oidc_setup_wizard.html:125
#: app/templates/integrations/activitywatch_setup.html:161
#: app/templates/integrations/caldav_setup.html:210
#: app/templates/integrations/caldav_setup.html:215
#: app/templates/integrations/manage.html:624
#: app/templates/integrations/view.html:137
#: app/templates/integrations/wizard_jira.html:76
#: app/templates/integrations/wizard_trello.html:53
msgid "Test Connection"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:53
msgid "Step 1: Basic Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:57
msgid "OIDC Issuer URL"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:64
msgid "The base URL of your OIDC provider (e.g., https://auth.example.com or https://login.microsoftonline.com/tenant-id/v2.0)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:77
msgid "The client ID from your OIDC provider"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:87
msgid "Enter client secret"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:89
msgid "The client secret from your OIDC provider"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:95
#: app/templates/admin/oidc_user_detail.html:41
msgid "Authentication Method"
msgstr "Méthode d'authentification"

#: app/templates/admin/oidc_setup_wizard.html:100
msgid "OIDC Only"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:100
msgid "SSO login only, no local passwords"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:103
msgid "Both"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:103
msgid "SSO and local password authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:107
msgid "Choose whether to allow only OIDC login or both OIDC and local password authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:115
#: app/templates/integrations/wizard_jira.html:66
#: app/templates/integrations/wizard_trello.html:43
msgid "Step 2: Test Connection"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:120
msgid "Click \"Test Connection\" to verify DNS resolution and metadata endpoint accessibility."
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:137
msgid "Step 3: Claim Mapping"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:148
msgid "Claim name containing the username (default: preferred_username)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:161
msgid "Claim name containing the email address (default: email)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:174
msgid "Claim name containing the full name (default: name)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:187
msgid "Claim name containing user groups (default: groups, optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:200
msgid "Group name that grants admin access (optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:213
msgid "Comma-separated list of email addresses that grant admin access (optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:221
#: app/templates/integrations/wizard_jira.html:152
msgid "Step 4: Advanced Settings"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:232
msgid "Space-separated list of OIDC scopes (default: openid profile email)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:245
msgid "OAuth callback URL (usually auto-generated, but can be customized)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:251
msgid "Post-Logout Redirect URI"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:258
msgid "URL to redirect to after logout (optional, only if your provider supports end_session_endpoint)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:266
msgid "Step 5: Generate Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:271
msgid "Click \"Generate Configuration\" to create environment variable configuration."
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:275
msgid "Generate Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:280
msgid "Environment Variables (.env file)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:300
msgid "Copy the configuration above and add it to your environment variables or Docker Compose file, then restart the application."
msgstr ""

#: 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/custom_field_definitions/form.html:59
#: app/templates/admin/custom_field_definitions/list.html:54
#: app/templates/admin/link_templates/form.html:64
#: app/templates/admin/link_templates/list.html:58
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/oidc_user_detail.html:71
#: app/templates/admin/salesman_email_mappings.html:133
#: app/templates/admin/webhooks/form.html:106
#: app/templates/admin/webhooks/list.html:60
#: app/templates/admin/webhooks/view.html:35
#: app/templates/calendar/integrations.html:38
#: app/templates/clients/view.html:320
#: app/templates/integrations/health.html:24
#: app/templates/integrations/view.html:23
#: 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/payment_gateways/list.html:43
#: app/templates/projects/view.html:120
#: app/templates/recurring_tasks/list.html:76
#: app/templates/reports/scheduled.html:74 app/templates/tasks/_kanban.html:98
#: app/templates/timer/calendar.html:975
#: app/templates/weekly_goals/edit.html:88
#: app/templates/weekly_goals/index.html:176
#: app/templates/weekly_goals/view.html:69 app/utils/i18n_helpers.py:51
#: app/utils/i18n_helpers.py:57 app/utils/i18n_helpers.py:244
#: app/utils/i18n_helpers.py:255 app/utils/i18n_helpers.py:287
#: app/utils/i18n_helpers.py:293
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:30
#: app/templates/reports/user_report.html:89
msgid "Created At"
msgstr "Créé à"

#: 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 "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:84 app/templates/calendar/view.html:101
#: app/templates/calendar/view.html:102 app/templates/calendar/view.html:109
#: app/templates/client_portal/base.html:263
#: app/templates/client_portal/base.html:348
#: app/templates/client_portal/projects.html:59
#: 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
#: app/templates/components/offline_indicator.html:63
#: app/templates/integrations/wizard_jira.html:142
#: app/templates/projects/time_entries_overview.html:4
#: app/templates/reports/builder.html:366
#: app/templates/timer/time_entries_overview.html:9
#: app/templates/timer/view_timer.html:8
msgid "Time Entries"
msgstr "Entrées de temps"

#: app/templates/admin/link_templates/list.html:52
#: app/templates/admin/oidc_user_detail.html:73
#: app/templates/integrations/wizard_asana.html:194
#: app/templates/integrations/wizard_github.html:228
#: app/templates/integrations/wizard_gitlab.html:252
#: app/templates/integrations/wizard_jira.html:257
#: app/templates/integrations/wizard_quickbooks.html:227
#: app/templates/integrations/wizard_xero.html:210
#: app/templates/invoices/edit.html:98 app/templates/invoices/edit.html:106
#: app/templates/invoices/edit.html:505 app/templates/invoices/edit.html:516
#: app/templates/mileage/gps.html:20
#: app/templates/quotes/_edit_quote_form_scripts.html:62
#: app/templates/quotes/_edit_quote_form_scripts.html:73
#: app/templates/quotes/edit.html:93 app/templates/quotes/edit.html:99
msgid "None"
msgstr "Aucun"

#: app/templates/admin/oidc_user_detail.html:76
#: app/templates/kiosk/dashboard.html:288 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/pdf_layout.html:3
#, fuzzy
msgid "PDF Invoice Designer"
msgstr "Concepteur de devis PDF"

#: app/templates/admin/pdf_layout.html:1649
#, fuzzy
msgid "Visual Invoice Designer"
msgstr "Concepteur de devis visuel"

#: app/templates/admin/pdf_layout.html:1652
#, fuzzy
msgid "Drag and drop elements to design your invoice layout"
msgstr "Glissez et déposez des éléments pour concevoir la mise en page de votre devis"

#: app/templates/admin/pdf_layout.html:1661
#: app/templates/admin/quote_pdf_layout.html:1472
msgid "How to use:"
msgstr "Comment utiliser :"

#: app/templates/admin/pdf_layout.html:1662
#: app/templates/admin/quote_pdf_layout.html:1473
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/pdf_layout.html:1665
#: app/templates/admin/quote_pdf_layout.html:1476
msgid "Keyboard Shortcuts:"
msgstr "Raccourcis clavier :"

#: app/templates/admin/pdf_layout.html:1676
msgid "Help: Items Table, Expenses Table & Saving"
msgstr ""

#: app/templates/admin/pdf_layout.html:1679
#, fuzzy
msgid "Items Table:"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/pdf_layout.html:1679
msgid "Displays time entries, extra goods, and expenses. Add from Invoice Data in the sidebar. Uses"
msgstr ""

#: app/templates/admin/pdf_layout.html:1680
#, fuzzy
msgid "Expenses Table:"
msgstr "Sous-total des dépenses"

#: app/templates/admin/pdf_layout.html:1680
msgid "Optional separate table for expenses. Add from Invoice Data in the sidebar."
msgstr ""

#: app/templates/admin/pdf_layout.html:1681
#: app/templates/admin/quote_pdf_layout.html:1491
#, fuzzy
msgid "Saving:"
msgstr "Économie..."

#: app/templates/admin/pdf_layout.html:1681
msgid "Click \"Save Design\" to persist. If tables disappear after save, try Reset to restore defaults, then re-add tables."
msgstr ""

#: app/templates/admin/pdf_layout.html:1682
#: app/templates/admin/quote_pdf_layout.html:1492
#: app/templates/admin/salesman_email_mappings.html:138
msgid "Preview:"
msgstr ""

#: app/templates/admin/pdf_layout.html:1682
msgid "Use \"Generate Preview\" to see how the PDF will look with real invoice data."
msgstr ""

#: app/templates/admin/pdf_layout.html:1683
#: app/templates/admin/quote_pdf_layout.html:1493
#, fuzzy
msgid "See"
msgstr "Ensemble"

#: app/templates/admin/pdf_layout.html:1683
#: app/templates/admin/quote_pdf_layout.html:1493
#, fuzzy
msgid "for full documentation."
msgstr "Documentation"

#: app/templates/admin/pdf_layout.html:1690
#: app/templates/admin/pdf_layout.html:4407
#: app/templates/admin/quote_pdf_layout.html:1500
#: app/templates/admin/quote_pdf_layout.html:3926
msgid "Clear Canvas"
msgstr "Toile transparente"

#: app/templates/admin/pdf_layout.html:1693
#: app/templates/admin/quote_pdf_layout.html:1503
msgid "Generate Preview"
msgstr "Générer un aperçu"

#: app/templates/admin/pdf_layout.html:1696
#: app/templates/admin/quote_pdf_layout.html:1506
msgid "Save Design"
msgstr "Enregistrer la conception"

#: app/templates/admin/pdf_layout.html:1699
#: app/templates/admin/quote_pdf_layout.html:1509
msgid "View Code"
msgstr "Voir le code"

#: app/templates/admin/pdf_layout.html:1702
#: app/templates/admin/quote_pdf_layout.html:1512
msgid "Export JSON"
msgstr ""

#: app/templates/admin/pdf_layout.html:1705
#: app/templates/admin/quote_pdf_layout.html:1515
msgid "Import JSON"
msgstr ""

#: app/templates/admin/pdf_layout.html:1710
#: app/templates/admin/quote_pdf_layout.html:1520
msgid "Snap to Grid (10px)"
msgstr "Aligner sur la grille (10 px)"

#: app/templates/admin/pdf_layout.html:1726
#: app/templates/admin/quote_pdf_layout.html:1536
msgid "Toolbox"
msgstr "Boîte à outils"

#: app/templates/admin/pdf_layout.html:1731
#: app/templates/admin/quote_pdf_layout.html:1541
msgid "Search elements & variables..."
msgstr "Rechercher des éléments et des variables..."

#: app/templates/admin/pdf_layout.html:1737
#: app/templates/admin/quote_pdf_layout.html:1547
msgid "Elements"
msgstr "Éléments"

#: app/templates/admin/pdf_layout.html:1740
#: app/templates/admin/quote_pdf_layout.html:1550
msgid "Variables"
msgstr "Variables"

#: app/templates/admin/pdf_layout.html:1749
#: app/templates/admin/quote_pdf_layout.html:1559
msgid "Basic Elements"
msgstr "Éléments de base"

#: app/templates/admin/pdf_layout.html:1752
#: app/templates/admin/quote_pdf_layout.html:1562
msgid "Custom Text"
msgstr "Texte personnalisé"

#: app/templates/admin/pdf_layout.html:1756
#: app/templates/admin/quote_pdf_layout.html:1566
msgid "Text"
msgstr "Texte"

#: app/templates/admin/pdf_layout.html:1760
#: app/templates/admin/quote_pdf_layout.html:1570
msgid "Heading"
msgstr "Titre"

#: app/templates/admin/pdf_layout.html:1764
#: app/templates/admin/quote_pdf_layout.html:1574
msgid "Line"
msgstr "Doubler"

#: app/templates/admin/pdf_layout.html:1768
#: app/templates/admin/quote_pdf_layout.html:1578
msgid "Rectangle"
msgstr "Rectangle"

#: app/templates/admin/pdf_layout.html:1772
#: app/templates/admin/quote_pdf_layout.html:1582
msgid "Circle"
msgstr "Cercle"

#: app/templates/admin/pdf_layout.html:1777
#: app/templates/admin/quote_pdf_layout.html:1587
msgid "Company Info"
msgstr "Informations sur l'entreprise"

#: app/templates/admin/pdf_layout.html:1780
#: app/templates/admin/quote_pdf_layout.html:1590
#: app/templates/admin/settings.html:611 app/templates/admin/settings.html:632
#: app/templates/invoices/pdf_default.html:37
#: app/templates/quotes/pdf_default.html:37
msgid "Company Logo"
msgstr "Logo de l'entreprise"

#: app/templates/admin/email_templates/create.html:52
#: app/templates/admin/email_templates/edit.html:69
#: app/templates/admin/pdf_layout.html:1784
#: app/templates/admin/quote_pdf_layout.html:1594
#: app/templates/admin/settings.html:211 app/templates/leads/form.html:35
msgid "Company Name"
msgstr "Nom de l'entreprise"

#: app/templates/admin/pdf_layout.html:1788
#: app/templates/admin/quote_pdf_layout.html:1598
msgid "Company Details"
msgstr "Détails de l'entreprise"

#: app/templates/admin/pdf_layout.html:1792
#: app/templates/admin/quote_pdf_layout.html:1602
#: app/templates/clients/create.html:71 app/templates/clients/edit.html:65
#: 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:245 app/templates/projects/create.html:302
#: app/templates/setup/initial_setup.html:143
msgid "Address"
msgstr "Adresse"

#: app/templates/admin/pdf_layout.html:1800
#: app/templates/admin/quote_pdf_layout.html:1610
#: app/templates/clients/create.html:67 app/templates/clients/edit.html:61
#: app/templates/contacts/form.html:42 app/templates/contacts/list.html:30
#: app/templates/contacts/list.html:54 app/templates/contacts/view.html:37
#: app/templates/inventory/suppliers/form.html:44
#: app/templates/inventory/suppliers/list.html:45
#: app/templates/inventory/suppliers/list.html:67
#: app/templates/inventory/suppliers/view.html:61
#: app/templates/invoices/pdf_default.html:45 app/templates/leads/form.html:45
#: app/templates/leads/view.html:55 app/templates/projects/create.html:298
#: app/templates/quotes/pdf_default.html:45
#: app/templates/setup/initial_setup.html:152 app/utils/pdf_generator.py:1117
msgid "Phone"
msgstr "Téléphone"

#: app/templates/admin/pdf_layout.html:1804
#: app/templates/admin/quote_pdf_layout.html:1614
#: app/templates/inventory/suppliers/form.html:52
#: app/templates/inventory/suppliers/view.html:75
#: app/templates/invoices/pdf_default.html:46
#: app/templates/quotes/pdf_default.html:46
#: app/templates/setup/initial_setup.html:156 app/utils/pdf_generator.py:1118
msgid "Website"
msgstr "Site web"

#: app/templates/admin/pdf_layout.html:1808
#: app/templates/admin/quote_pdf_layout.html:1618
#: app/templates/inventory/suppliers/form.html:56
#: app/templates/inventory/suppliers/view.html:83
#: app/templates/invoices/pdf_default.html:48
#: app/templates/quotes/pdf_default.html:48
msgid "Tax ID"
msgstr "Numéro d'identification fiscale"

#: app/templates/admin/pdf_layout.html:1813
#, fuzzy
msgid "Invoice Data"
msgstr "Détails de la facture"

#: app/templates/admin/email_templates/create.html:49
#: app/templates/admin/email_templates/edit.html:66
#: app/templates/admin/pdf_layout.html:1816
#: app/templates/client_portal/invoices.html:71
#: app/templates/payment_gateways/pay.html:11
#: app/templates/payments/view.html:155
#: app/templates/recurring_invoices/view.html:97
#: app/templates/recurring_invoices/view.html:107
#: app/templates/timer/edit_timer.html:366
#: app/templates/timer/edit_timer.html:487
msgid "Invoice Number"
msgstr "Numéro de facture"

#: app/templates/admin/pdf_layout.html:1820
#, fuzzy
msgid "Invoice Date"
msgstr "Facturé"

#: app/templates/admin/pdf_layout.html:1824
#: app/templates/admin/quote_pdf_layout.html:1634
#: app/templates/client_portal/invoice_detail.html:35
#: app/templates/client_portal/invoices.html:73
#: app/templates/deals/activity_form.html:46
#: app/templates/invoices/create.html:35 app/templates/invoices/edit.html:30
#: app/templates/invoices/pdf_default.html:58
#: app/templates/leads/activity_form.html:46
#: app/templates/payment_gateways/pay.html:19
#: app/templates/tasks/_kanban.html:132 app/templates/tasks/_kanban.html:1271
#: app/templates/tasks/_tasks_list.html:78 app/templates/tasks/create.html:93
#: app/templates/tasks/edit.html:101 app/utils/pdf_generator.py:1128
msgid "Due Date"
msgstr "Date d'échéance"

#: app/templates/admin/pdf_layout.html:1832
#: app/templates/admin/quote_pdf_layout.html:1642
msgid "Client Info"
msgstr "Informations client"

#: app/templates/admin/pdf_layout.html:1836
#: app/templates/admin/quote_pdf_layout.html:1646
#: app/templates/clients/create.html:20 app/templates/clients/create.html:120
#: app/templates/clients/edit.html:20 app/templates/import_export/index.html:69
#: app/templates/invoices/create.html:27 app/templates/invoices/edit.html:22
#: app/templates/projects/create.html:274
msgid "Client Name"
msgstr "Nom du client"

#: app/templates/admin/pdf_layout.html:1840
#: app/templates/admin/quote_pdf_layout.html:1650
#: app/templates/invoices/create.html:39 app/templates/invoices/edit.html:38
msgid "Client Address"
msgstr "Adresse du client"

#: app/templates/admin/pdf_layout.html:1844
#, fuzzy
msgid "Items Table"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/pdf_layout.html:1848
#, fuzzy
msgid "Expenses Table"
msgstr "Sous-total des dépenses"

#: app/templates/admin/pdf_layout.html:1852
#: app/templates/admin/quote_pdf_layout.html:1658
#: app/templates/client_portal/invoice_detail.html:82
#: app/templates/client_portal/quote_detail.html:103
#: app/templates/inventory/purchase_orders/form.html:93
#: app/templates/inventory/purchase_orders/view.html:122
#: app/templates/invoices/edit.html:346 app/templates/quotes/view.html:129
msgid "Subtotal"
msgstr "Total"

#: app/templates/admin/pdf_layout.html:1856
#: app/templates/admin/quote_pdf_layout.html:1662
#: app/templates/client_portal/invoice_detail.html:87
#: app/templates/client_portal/quote_detail.html:108
#: app/templates/inventory/purchase_orders/view.html:133
#: app/templates/invoices/edit.html:351 app/templates/quotes/view.html:155
#: app/utils/pdf_generator_fallback.py:620
msgid "Tax"
msgstr "Impôt"

#: app/templates/admin/pdf_layout.html:1860
#: app/templates/admin/quote_pdf_layout.html:1666
#: app/templates/inventory/purchase_orders/list.html:55
#: app/templates/inventory/purchase_orders/list.html:87
#: app/templates/inventory/purchase_orders/view.html:189
#: app/templates/invoices/pdf_default.html:91
#: app/templates/payments/list.html:28 app/templates/projects/goods.html:21
#: app/templates/quotes/accept.html:27 app/templates/quotes/pdf_default.html:98
#: app/utils/pdf_generator.py:1157 app/utils/pdf_generator_fallback.py:240
msgid "Total Amount"
msgstr "Montant total"

#: app/templates/admin/pdf_layout.html:1868
#: app/templates/admin/quote_pdf_layout.html:1674
#: app/templates/client_portal/invoice_detail.html:130
#: app/templates/invoices/create.html:55 app/templates/invoices/edit.html:50
msgid "Terms"
msgstr "Termes"

#: app/templates/admin/pdf_layout.html:1873
#: app/templates/admin/quote_pdf_layout.html:1679
msgid "Payment & Project"
msgstr "Paiement et projet"

#: app/templates/admin/pdf_layout.html:1876
#: app/templates/admin/quote_pdf_layout.html:1682
msgid "Payment Date"
msgstr "Date de paiement"

#: app/templates/admin/pdf_layout.html:1880
#: app/templates/admin/quote_pdf_layout.html:1686
msgid "Payment Method"
msgstr "Mode de paiement"

#: app/templates/admin/pdf_layout.html:1884
#: app/templates/admin/quote_pdf_layout.html:1690
#: app/templates/analytics/dashboard_improved.html:136
msgid "Payment Status"
msgstr "Statut du paiement"

#: app/templates/admin/pdf_layout.html:1888
#: app/templates/admin/quote_pdf_layout.html:1694
#: app/templates/invoices/edit.html:364
msgid "Amount Paid"
msgstr "Montant payé"

#: app/templates/admin/pdf_layout.html:1896
#: app/templates/admin/quote_pdf_layout.html:1702
#: app/templates/project_templates/create_project.html:26
#: 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/pdf_layout.html:1900
#: app/templates/admin/quote_pdf_layout.html:1706
#: app/templates/invoices/create.html:31 app/templates/invoices/edit.html:26
msgid "Client Email"
msgstr "Courriel du client"

#: app/templates/admin/pdf_layout.html:1904
#: app/templates/admin/quote_pdf_layout.html:1710
msgid "Client Phone"
msgstr "Téléphone du client"

#: app/templates/admin/pdf_layout.html:1912
#: app/templates/admin/quote_pdf_layout.html:1718
msgid "QR Code"
msgstr "Code QR"

#: app/templates/admin/pdf_layout.html:1916
#: app/templates/admin/quote_pdf_layout.html:1722
#: app/templates/inventory/stock_items/form.html:49
#: app/templates/inventory/stock_items/view.html:40
msgid "Barcode"
msgstr "Code à barres"

#: app/templates/admin/pdf_layout.html:1920
#: app/templates/admin/quote_pdf_layout.html:1726
msgid "Page Number"
msgstr "Numéro de page"

#: app/templates/admin/pdf_layout.html:1924
#: app/templates/admin/quote_pdf_layout.html:1730
msgid "Current Date"
msgstr "Date actuelle"

#: app/templates/admin/pdf_layout.html:1928
#: app/templates/admin/quote_pdf_layout.html:1734
msgid "Watermark"
msgstr "Filigrane"

#: app/templates/admin/pdf_layout.html:1932
#: app/templates/admin/quote_pdf_layout.html:1738
msgid "Bank Info"
msgstr "Informations bancaires"

#: app/templates/admin/pdf_layout.html:1936
#: app/templates/admin/quote_pdf_layout.html:1742
#: 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:325 app/templates/leads/form.html:79
#: app/templates/projects/add_cost.html:64
#: app/templates/projects/add_good.html:55
#: app/templates/projects/edit_cost.html:71
#: app/templates/projects/edit_good.html:55
#: app/templates/quotes/create.html:160 app/templates/quotes/edit.html:259
#: app/templates/setup/initial_setup.html:127
msgid "Currency"
msgstr "Devise"

#: app/templates/admin/pdf_layout.html:1940
#: app/templates/admin/quote_pdf_layout.html:1746
msgid "Decorative Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:1948
#, fuzzy
msgid "Invoice Fields"
msgstr "Postes de facture"

#: app/templates/admin/pdf_layout.html:1951
#, fuzzy
msgid "Invoice number"
msgstr "Numéro de facture"

#: app/templates/admin/pdf_layout.html:1955
#, fuzzy
msgid "Invoice status (draft/sent/paid/overdue)"
msgstr "Statut du devis (projet/envoyé/payé/en retard)"

#: app/templates/admin/pdf_layout.html:1959
#: app/templates/admin/quote_pdf_layout.html:1765
msgid "Issue date"
msgstr "Date d'émission"

#: app/templates/admin/pdf_layout.html:1963
#: app/templates/admin/quote_pdf_layout.html:1769
msgid "Due date"
msgstr "Date d'échéance"

#: app/templates/admin/pdf_layout.html:1967
#: app/templates/admin/quote_pdf_layout.html:1773
msgid "Subtotal amount"
msgstr "Montant du sous-total"

#: app/templates/admin/pdf_layout.html:1971
#: app/templates/admin/quote_pdf_layout.html:1777
msgid "Tax rate (%)"
msgstr "Taux d'imposition (%)"

#: app/templates/admin/pdf_layout.html:1975
#: app/templates/admin/quote_pdf_layout.html:1781
msgid "Tax amount"
msgstr "Montant de la taxe"

#: app/templates/admin/pdf_layout.html:1979
#: app/templates/admin/quote_pdf_layout.html:1785
msgid "Total amount"
msgstr "Montant total"

#: app/templates/admin/pdf_layout.html:1983
#: app/templates/admin/quote_pdf_layout.html:1789
msgid "Currency code (EUR, USD, etc)"
msgstr "Code de devise (EUR, USD, etc.)"

#: app/templates/admin/pdf_layout.html:1987
#, fuzzy
msgid "Invoice notes"
msgstr "Postes de facture"

#: app/templates/admin/pdf_layout.html:1991
#: app/templates/admin/quote_pdf_layout.html:1797
msgid "Terms & conditions"
msgstr "Conditions générales"

#: app/templates/admin/pdf_layout.html:1996
#: app/templates/admin/quote_pdf_layout.html:1802
msgid "Client Fields"
msgstr "Champs clients"

#: app/templates/admin/pdf_layout.html:1999
#: app/templates/admin/quote_pdf_layout.html:1805
msgid "Client company name"
msgstr "Nom de l'entreprise cliente"

#: app/templates/admin/pdf_layout.html:2003
#: app/templates/admin/quote_pdf_layout.html:1809
msgid "Client email address"
msgstr "Adresse e-mail du client"

#: app/templates/admin/pdf_layout.html:2007
#: app/templates/admin/quote_pdf_layout.html:1813
msgid "Client full address"
msgstr "Adresse complète du client"

#: app/templates/admin/pdf_layout.html:2011
#: app/templates/admin/quote_pdf_layout.html:1817
msgid "Client contact person"
msgstr "Personne de contact client"

#: app/templates/admin/pdf_layout.html:2015
#: app/templates/admin/quote_pdf_layout.html:1821
msgid "Client phone number"
msgstr "Numéro de téléphone du client"

#: app/templates/admin/pdf_layout.html:2020
#: app/templates/admin/quote_pdf_layout.html:1826
msgid "Payment Fields"
msgstr "Champs de paiement"

#: app/templates/admin/pdf_layout.html:2023
#, fuzzy
msgid "Payment status"
msgstr "Statut du paiement"

#: app/templates/admin/pdf_layout.html:2027
#, fuzzy
msgid "Payment date"
msgstr "Date de paiement"

#: app/templates/admin/pdf_layout.html:2031
#: app/templates/admin/quote_pdf_layout.html:1837
msgid "Payment method"
msgstr "Mode de paiement"

#: app/templates/admin/pdf_layout.html:2035
#: app/templates/admin/quote_pdf_layout.html:1841
msgid "Payment reference number"
msgstr "Numéro de référence du paiement"

#: app/templates/admin/pdf_layout.html:2039
#: app/templates/admin/quote_pdf_layout.html:1845
msgid "Amount paid"
msgstr "Montant payé"

#: app/templates/admin/pdf_layout.html:2043
#: app/templates/admin/quote_pdf_layout.html:1849
msgid "Outstanding amount"
msgstr "Montant impayé"

#: app/templates/admin/pdf_layout.html:2047
#: app/templates/admin/quote_pdf_layout.html:1853
msgid "Payment notes"
msgstr "Notes de paiement"

#: app/templates/admin/pdf_layout.html:2052
#: app/templates/admin/quote_pdf_layout.html:1858
msgid "Project Fields"
msgstr "Champs du projet"

#: app/templates/admin/pdf_layout.html:2055
#: app/templates/admin/quote_pdf_layout.html:1861
#: app/templates/quotes/accept.html:49
msgid "Project name"
msgstr "Nom du projet"

#: app/templates/admin/pdf_layout.html:2059
#: app/templates/admin/quote_pdf_layout.html:1865
msgid "Project code"
msgstr "Code du projet"

#: app/templates/admin/pdf_layout.html:2063
#: app/templates/admin/quote_pdf_layout.html:1869
msgid "Project description"
msgstr "Descriptif du projet"

#: app/templates/admin/pdf_layout.html:2067
#: app/templates/admin/quote_pdf_layout.html:1873
msgid "Project billing reference"
msgstr "Référence de facturation du projet"

#: app/templates/admin/pdf_layout.html:2072
#: app/templates/admin/quote_pdf_layout.html:1878
msgid "Company/Settings Fields"
msgstr "Champs Entreprise/Paramètres"

#: app/templates/admin/pdf_layout.html:2075
#: app/templates/admin/quote_pdf_layout.html:1881
msgid "Your company name"
msgstr "Le nom de votre entreprise"

#: app/templates/admin/pdf_layout.html:2079
#: app/templates/admin/quote_pdf_layout.html:1885
msgid "Your company address"
msgstr "Adresse de votre entreprise"

#: app/templates/admin/pdf_layout.html:2083
#: app/templates/admin/quote_pdf_layout.html:1889
msgid "Your company email"
msgstr "L'e-mail de votre entreprise"

#: app/templates/admin/pdf_layout.html:2087
#: app/templates/admin/quote_pdf_layout.html:1893
msgid "Your company phone"
msgstr "Votre téléphone d'entreprise"

#: app/templates/admin/pdf_layout.html:2091
#: app/templates/admin/quote_pdf_layout.html:1897
msgid "Your company website"
msgstr "Site Internet de votre entreprise"

#: app/templates/admin/pdf_layout.html:2095
#: app/templates/admin/quote_pdf_layout.html:1901
msgid "Your tax ID number"
msgstr "Votre numéro d'identification fiscale"

#: app/templates/admin/pdf_layout.html:2099
#: app/templates/admin/quote_pdf_layout.html:1905
msgid "Your bank account info"
msgstr "Informations sur votre compte bancaire"

#: app/templates/admin/pdf_layout.html:2103
#: app/templates/admin/quote_pdf_layout.html:1909
msgid "Default invoice terms"
msgstr "Conditions de facturation par défaut"

#: app/templates/admin/pdf_layout.html:2107
#: app/templates/admin/quote_pdf_layout.html:1913
msgid "Default invoice notes"
msgstr "Notes de facture par défaut"

#: app/templates/admin/pdf_layout.html:2112
#: app/templates/admin/quote_pdf_layout.html:1918
msgid "Date/Time Fields"
msgstr "Champs de date/heure"

#: app/templates/admin/pdf_layout.html:2115
#: app/templates/admin/quote_pdf_layout.html:1921
msgid "Current date"
msgstr "Date actuelle"

#: app/templates/admin/pdf_layout.html:2119
#, fuzzy
msgid "Invoice creation date"
msgstr "Date de création du devis"

#: app/templates/admin/pdf_layout.html:2123
#, fuzzy
msgid "Invoice last update date"
msgstr "Date de la dernière mise à jour du devis"

#: app/templates/admin/pdf_layout.html:2128
#, fuzzy
msgid "Invoice Items Loop"
msgstr "Postes de facture"

#: app/templates/admin/pdf_layout.html:2131
msgid "All items (time + extra goods + expenses)"
msgstr ""

#: app/templates/admin/pdf_layout.html:2135
#, fuzzy
msgid "Time-based items only"
msgstr "Services basés sur le temps et travail horaire"

#: app/templates/admin/pdf_layout.html:2139
#: app/templates/admin/quote_pdf_layout.html:1941
#: app/templates/quotes/_edit_quote_form_scripts.html:172
#: app/templates/quotes/edit.html:106
msgid "Item description"
msgstr "Description de l'article"

#: app/templates/admin/pdf_layout.html:2143
#: app/templates/admin/quote_pdf_layout.html:1945
msgid "Item quantity"
msgstr "Quantité d'article"

#: app/templates/admin/pdf_layout.html:2147
#: app/templates/admin/quote_pdf_layout.html:1949
msgid "Item unit price"
msgstr "Prix ​​unitaire de l'article"

#: app/templates/admin/pdf_layout.html:2151
#: app/templates/admin/quote_pdf_layout.html:1953
msgid "Item total amount"
msgstr "Montant total de l'article"

#: app/templates/admin/pdf_layout.html:2155
#: app/templates/admin/quote_pdf_layout.html:1957
msgid "End loop"
msgstr "Fin de la boucle"

#: app/templates/admin/pdf_layout.html:2159
#, fuzzy
msgid "Extra Goods Loop"
msgstr "Marchandises supplémentaires"

#: app/templates/admin/pdf_layout.html:2162
#, fuzzy
msgid "Loop through extra goods only"
msgstr "Projet de biens supplémentaires"

#: app/templates/admin/pdf_layout.html:2166
#, fuzzy
msgid "Good name"
msgstr "Nom du rôle"

#: app/templates/admin/pdf_layout.html:2170
#, fuzzy
msgid "Good total amount"
msgstr "Montant total"

#: app/templates/admin/pdf_layout.html:2182
#: app/templates/admin/quote_pdf_layout.html:1969
msgid "Design Canvas"
msgstr "Toile de conception"

#: app/templates/admin/pdf_layout.html:2186
#: app/templates/admin/quote_pdf_layout.html:1973
msgid "Page Size:"
msgstr "Taille des pages :"

#: app/templates/admin/pdf_layout.html:2208
#: app/templates/admin/pdf_layout.html:2317
#: app/templates/admin/quote_pdf_layout.html:1995
#: app/templates/admin/quote_pdf_layout.html:2089
msgid "Zoom In"
msgstr "Zoomer"

#: app/templates/admin/pdf_layout.html:2211
#: app/templates/admin/pdf_layout.html:2310
#: app/templates/admin/quote_pdf_layout.html:1998
#: app/templates/admin/quote_pdf_layout.html:2082
msgid "Zoom Out"
msgstr "Zoom arrière"

#: app/templates/admin/pdf_layout.html:2215
#: app/templates/admin/quote_pdf_layout.html:2002
msgid "Delete Selected"
msgstr "Supprimer la sélection"

#: app/templates/admin/pdf_layout.html:2228
#: app/templates/admin/quote_pdf_layout.html:2015
msgid "Properties"
msgstr "Propriétés"

#: app/templates/admin/pdf_layout.html:2235
#, fuzzy
msgid "Warnings"
msgstr "Avertissement"

#: app/templates/admin/pdf_layout.html:2237
#, fuzzy
msgid "Refresh warnings"
msgstr "Actualiser la page"

#: app/templates/admin/pdf_layout.html:2242
#, fuzzy
msgid "No warnings"
msgstr "Avertissement"

#: app/templates/admin/pdf_layout.html:2249
#: app/templates/admin/quote_pdf_layout.html:2021
msgid "Template Settings"
msgstr ""

#: app/templates/admin/pdf_layout.html:2253
#: app/templates/admin/quote_pdf_layout.html:2025
#: app/templates/user/settings.html:432
msgid "Date Format"
msgstr "Format des dates"

#: app/templates/admin/pdf_layout.html:2259
#: app/templates/admin/quote_pdf_layout.html:2031
#, python-format
msgid "Use strftime format (e.g., %d.%m.%Y for 12.09.2025)"
msgstr ""

#: app/templates/admin/pdf_layout.html:2264
#: app/templates/admin/quote_pdf_layout.html:2036
msgid "Select an element to edit its properties"
msgstr "Sélectionnez un élément pour modifier ses propriétés"

#: app/templates/admin/pdf_layout.html:2276
#: app/templates/admin/pdf_layout.html:2369
#: app/templates/admin/quote_pdf_layout.html:2048
#: app/templates/admin/quote_pdf_layout.html:2141
msgid "PDF Preview"
msgstr "Aperçu PDF"

#: app/templates/admin/pdf_layout.html:2281
#: app/templates/admin/pdf_layout.html:2282
#: app/templates/admin/quote_pdf_layout.html:2053
#: app/templates/admin/quote_pdf_layout.html:2054
msgid "Page Size"
msgstr ""

#: app/templates/admin/pdf_layout.html:2292
#: app/templates/admin/quote_pdf_layout.html:2064
msgid "Refresh Preview"
msgstr ""

#: app/templates/admin/pdf_layout.html:2295
#: app/templates/admin/pdf_layout.html:4901
#: app/templates/admin/quote_pdf_layout.html:2067
#: app/templates/admin/quote_pdf_layout.html:4439
#: app/templates/kiosk/base.html:121
msgid "Toggle Fullscreen"
msgstr ""

#: app/templates/admin/pdf_layout.html:2300
#: app/templates/admin/quote_pdf_layout.html:2072
msgid "Close Preview"
msgstr ""

#: app/templates/admin/pdf_layout.html:2314
#: app/templates/admin/quote_pdf_layout.html:2086
msgid "Zoom Level"
msgstr ""

#: app/templates/admin/pdf_layout.html:2320
#: app/templates/admin/quote_pdf_layout.html:2092
msgid "Reset Zoom"
msgstr ""

#: app/templates/admin/pdf_layout.html:2325
#: app/templates/admin/quote_pdf_layout.html:2097
msgid "Fit to Width"
msgstr ""

#: app/templates/admin/pdf_layout.html:2326
#: app/templates/admin/quote_pdf_layout.html:2098
msgid "Fit Width"
msgstr ""

#: app/templates/admin/pdf_layout.html:2328
#: app/templates/admin/quote_pdf_layout.html:2100
msgid "Fit to Height"
msgstr ""

#: app/templates/admin/pdf_layout.html:2329
#: app/templates/admin/quote_pdf_layout.html:2101
msgid "Fit Height"
msgstr ""

#: app/templates/admin/pdf_layout.html:2331
#: app/templates/admin/pdf_layout.html:2332
#: app/templates/admin/quote_pdf_layout.html:2103
#: app/templates/admin/quote_pdf_layout.html:2104
msgid "Actual Size"
msgstr ""

#: app/templates/admin/pdf_layout.html:2343
#: app/templates/admin/quote_pdf_layout.html:2115
msgid "Generating preview..."
msgstr ""

#: app/templates/admin/pdf_layout.html:2354
#: app/templates/admin/quote_pdf_layout.html:2126
msgid "Preview Error"
msgstr ""

#: app/templates/admin/pdf_layout.html:2358
#: app/templates/admin/quote_pdf_layout.html:2130
msgid "Retry"
msgstr ""

#: app/templates/admin/pdf_layout.html:2391
#: app/templates/admin/quote_pdf_layout.html:2163
msgid "Generated Code"
msgstr "Code généré"

#: app/templates/admin/pdf_layout.html:3717
#: app/templates/admin/pdf_layout.html:4229
#: app/templates/admin/quote_pdf_layout.html:3267
#: app/templates/admin/quote_pdf_layout.html:3752
msgid "Change Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:3717
#: app/templates/admin/quote_pdf_layout.html:3267
msgid "Upload Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:3724
#: app/templates/admin/quote_pdf_layout.html:3274
msgid "Remove Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:4173
#: app/templates/admin/quote_pdf_layout.html:3702
msgid "Only image files (PNG, JPG, JPEG, GIF, WEBP) are allowed"
msgstr ""

#: app/templates/admin/pdf_layout.html:4179
#: app/templates/admin/quote_pdf_layout.html:3708
msgid "File size must be less than 5MB"
msgstr ""

#: app/templates/admin/pdf_layout.html:4192
#: app/templates/admin/quote_pdf_layout.html:3718
#: app/templates/chat/channel.html:316
msgid "Uploading..."
msgstr ""

#: app/templates/admin/pdf_layout.html:4215
#: app/templates/admin/quote_pdf_layout.html:3740
msgid "Error: Image update function not found"
msgstr ""

#: app/templates/admin/pdf_layout.html:4218
#: app/templates/admin/pdf_layout.html:4223
#: app/templates/admin/quote_pdf_layout.html:3743
#: app/templates/admin/quote_pdf_layout.html:3748
msgid "Failed to upload image"
msgstr ""

#: app/templates/admin/pdf_layout.html:4247
#: app/templates/admin/quote_pdf_layout.html:3766
msgid "Are you sure you want to remove this image?"
msgstr ""

#: app/templates/admin/pdf_layout.html:4405
#: app/templates/admin/quote_pdf_layout.html:3924
msgid "Clear all elements?"
msgstr "Effacer tous les éléments ?"

#: app/templates/admin/pdf_layout.html:4408
#: app/templates/admin/quote_pdf_layout.html:3927
#: app/templates/audit_logs/list.html:63
#: app/templates/components/multi_select.html:116
#: app/templates/tasks/my_tasks.html:181
#: app/templates/timer/bulk_entry.html:226 app/templates/timer/calendar.html:80
#: app/templates/timer/manual_entry.html:161
msgid "Clear"
msgstr "Clair"

#: app/templates/admin/pdf_layout.html:4898
#: app/templates/admin/quote_pdf_layout.html:4436
msgid "Exit Fullscreen"
msgstr ""

#: app/templates/admin/pdf_layout.html:5034
#: app/templates/admin/quote_pdf_layout.html:4572
msgid "Failed to load preview. Please try again."
msgstr ""

#: app/templates/admin/pdf_layout.html:5106
#: app/templates/admin/quote_pdf_layout.html:4648
msgid "Changing page size will reload the preview with the template for that size. Continue?"
msgstr ""

#: app/templates/admin/pdf_layout.html:5158
#: app/templates/admin/quote_pdf_layout.html:4703
msgid "Preview functionality is currently unavailable. Please check the browser console for errors."
msgstr ""

#: app/templates/admin/pdf_layout.html:7732
#: app/templates/admin/quote_pdf_layout.html:7172
msgid "Reset to defaults?"
msgstr "Réinitialiser aux valeurs par défaut ?"

#: app/templates/admin/pdf_layout.html:7734
#: app/templates/admin/quote_pdf_layout.html:7174
msgid "Reset PDF Layout"
msgstr "Réinitialiser la mise en page du PDF"

#: app/templates/admin/pdf_layout.html:7770
#: app/templates/admin/quote_pdf_layout.html:7210
msgid "Error importing template"
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:3
msgid "PDF Quote Designer"
msgstr "Concepteur de devis PDF"

#: app/templates/admin/quote_pdf_layout.html:1460
msgid "Visual Quote Designer"
msgstr "Concepteur de devis visuel"

#: app/templates/admin/quote_pdf_layout.html:1463
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:1487
#, fuzzy
msgid "Help: Quote Items Table & Saving"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/quote_pdf_layout.html:1490
#, fuzzy
msgid "Quote Items Table:"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/quote_pdf_layout.html:1490
msgid "Displays quote line items. Add from Invoice Data in the sidebar."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1491
msgid "Click \"Save Design\" to persist. If the table disappears after save, try Reset to restore defaults, then re-add the Items Table."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1492
msgid "Use \"Generate Preview\" to see how the PDF will look with real quote data."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1623
msgid "Quote Data"
msgstr "Données de devis"

#: app/templates/admin/quote_pdf_layout.html:1626
#: app/templates/client_portal/quotes.html:25
#: app/templates/client_portal/quotes.html:37
#: app/templates/quotes/_quotes_list.html:33
#: app/templates/quotes/_quotes_list.html:50
msgid "Quote Number"
msgstr "Numéro de devis"

#: app/templates/admin/quote_pdf_layout.html:1630
msgid "Quote Date"
msgstr "Date du devis"

#: app/templates/admin/quote_pdf_layout.html:1654
msgid "Quote Items Table"
msgstr "Tableau des éléments du devis"

#: app/templates/admin/quote_pdf_layout.html:1754
msgid "Quote Fields"
msgstr "Champs de devis"

#: app/templates/admin/quote_pdf_layout.html:1757
msgid "Quote number"
msgstr "Numéro de devis"

#: app/templates/admin/quote_pdf_layout.html:1761
msgid "Quote status (draft/sent/paid/overdue)"
msgstr "Statut du devis (projet/envoyé/payé/en retard)"

#: app/templates/admin/quote_pdf_layout.html:1793
msgid "Quote notes"
msgstr "Notes de devis"

#: app/templates/admin/quote_pdf_layout.html:1829
msgid "Quote status"
msgstr "Statut du devis"

#: app/templates/admin/quote_pdf_layout.html:1833
msgid "Quote accepted date"
msgstr "Date d'acceptation du devis"

#: app/templates/admin/quote_pdf_layout.html:1925
msgid "Quote creation date"
msgstr "Date de création du devis"

#: app/templates/admin/quote_pdf_layout.html:1929
msgid "Quote last update date"
msgstr "Date de la dernière mise à jour du devis"

#: app/templates/admin/quote_pdf_layout.html:1934
msgid "Quote Items Loop"
msgstr "Boucle d'articles de devis"

#: app/templates/admin/quote_pdf_layout.html:1937
msgid "Loop through invoice items"
msgstr "Parcourez les éléments de facture"

#: app/templates/admin/quote_pdf_layout.html:5971
msgid "Align Left"
msgstr "Aligner à gauche"

#: app/templates/admin/quote_pdf_layout.html:5974
msgid "Center Horizontally"
msgstr "Centrer horizontalement"

#: app/templates/admin/quote_pdf_layout.html:5977
msgid "Align Right"
msgstr "Aligner à droite"

#: app/templates/admin/quote_pdf_layout.html:5980
msgid "Align Top"
msgstr "Aligner en haut"

#: app/templates/admin/quote_pdf_layout.html:5983
msgid "Center Vertically"
msgstr "Centrer verticalement"

#: app/templates/admin/quote_pdf_layout.html:5986
msgid "Align Bottom"
msgstr "Aligner en bas"

#: app/templates/admin/salesman_email_mappings.html:4
msgid "Salesman Email Mappings"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:21
msgid "Email Mappings"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:23
msgid "Add Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:32
#: app/templates/admin/salesman_email_mappings.html:74
#: app/templates/admin/salesman_email_mappings.html:201
msgid "Salesman Initial"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:35
#: app/templates/admin/salesman_email_mappings.html:206
#: app/templates/user/settings.html:66
msgid "Email Address"
msgstr "Adresse email"

#: app/templates/admin/salesman_email_mappings.html:38
#: app/templates/admin/salesman_email_mappings.html:209
msgid "Pattern/Domain"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:63
#: app/templates/admin/salesman_email_mappings.html:230
msgid "Add Email Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:78
msgid "1-20 letters only"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:80
msgid "The salesman initial from client custom fields (e.g., MM for Max Mustermann)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:92
msgid "Direct Email Address"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:101
#, python-brace-format
msgid "Pattern (e.g., {value}@test.de)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:110
msgid "Domain (e.g., test.de)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:116
#, python-brace-format
msgid "Will generate: {initial}@domain"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:127
msgid "Additional notes about this mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:192
msgid "No mappings configured. Click \"Add Mapping\" to create one."
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:242
msgid "Edit Email Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:366
#: app/templates/admin/salesman_email_mappings.html:370
msgid "Error saving mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:375
msgid "Are you sure you want to delete this mapping?"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:394
#: app/templates/admin/salesman_email_mappings.html:398
msgid "Error deleting mapping"
msgstr ""

#: app/templates/admin/settings.html:117
#, fuzzy
msgid "Time Entry Requirements"
msgstr "Modèles de saisie du temps"

#: app/templates/admin/settings.html:119
msgid "Optionally require users to provide task and description when logging worked time. Enforced across web, mobile, and desktop."
msgstr ""

#: app/templates/admin/settings.html:124
msgid "Require task selection when logging time (project-based entries only)"
msgstr ""

#: app/templates/admin/settings.html:128
msgid "Require description when logging time"
msgstr ""

#: app/templates/admin/settings.html:131
msgid "Minimum description length (characters)"
msgstr ""

#: app/templates/admin/settings.html:133
msgid "Minimum number of characters required in the description field."
msgstr ""

#: app/templates/admin/settings.html:136
msgid "Default daily working hours (for new users)"
msgstr ""

#: app/templates/admin/settings.html:138
msgid "Used as the standard hours per day for overtime calculation when new users are created. Existing users keep their own setting."
msgstr ""

#: app/templates/admin/settings.html:159
msgid "Support visibility"
msgstr ""

#: app/templates/admin/settings.html:161
msgid "Remove donate and support prompts for all users with a one-time key (€25, one key per instance)."
msgstr ""

#: app/templates/admin/settings.html:164
msgid "Copy your System ID below and use it when buying the key."
msgstr ""

#: app/templates/admin/settings.html:165
#, fuzzy
msgid "Buy key"
msgstr "Clé"

#: app/templates/admin/settings.html:165
#, fuzzy
msgid "— key sent by email."
msgstr "Envoyer un e-mail"

#: app/templates/admin/settings.html:166
msgid "Paste the code below and click Verify."
msgstr ""

#: app/templates/admin/settings.html:170 app/templates/main/about.html:220
#: app/templates/main/donate.html:50 app/templates/main/donate.html:138
#, fuzzy
msgid "Get key"
msgstr "Clé"

#: app/templates/admin/settings.html:176
msgid "Step 1: System ID"
msgstr ""

#: app/templates/admin/settings.html:183
msgid "Use this ID when purchasing your key."
msgstr ""

#: app/templates/admin/settings.html:189
msgid "Supporter instance: prompts are minimized; support entry points remain available."
msgstr ""

#: app/templates/admin/settings.html:195
msgid "Step 3: Paste code"
msgstr ""

#: app/templates/admin/settings.html:196
#, fuzzy
msgid "Enter code from email"
msgstr "Code, nom, email"

#: app/templates/admin/settings.html:199
msgid "Verify and hide for everyone"
msgstr ""

#: app/templates/admin/settings.html:208
msgid "Company Branding"
msgstr "Image de marque de l’entreprise"

#: app/templates/admin/settings.html:243
msgid "Invoice Defaults"
msgstr "Valeurs par défaut des factures"

#: app/templates/admin/settings.html:391
msgid "Backup Settings"
msgstr "Paramètres de sauvegarde"

#: app/templates/admin/settings.html:406
#: app/templates/integrations/list.html:74
msgid "LDAP"
msgstr ""

#: app/templates/admin/settings.html:408
msgid "LDAP authentication is configured with environment variables. Values below are read-only."
msgstr ""

#: app/templates/admin/settings.html:412
#, fuzzy
msgid "Enabled for auth"
msgstr "Activé"

#: app/templates/admin/settings.html:416
#, fuzzy
msgid "Host"
msgstr "Perdu"

#: app/templates/admin/settings.html:420 app/templates/admin/settings.html:421
#, fuzzy
msgid "SSL"
msgstr "Utiliser SSL"

#: app/templates/admin/settings.html:420 app/templates/admin/settings.html:422
#, fuzzy
msgid "TLS"
msgstr "Utiliser TLS"

#: app/templates/admin/settings.html:421 app/templates/admin/settings.html:422
#: app/templates/quotes/view.html:217 app/templates/quotes/view.html:224
msgid "on"
msgstr "sur"

#: app/templates/admin/settings.html:421 app/templates/admin/settings.html:422
#, fuzzy
msgid "off"
msgstr "de"

#: app/templates/admin/settings.html:429
#, fuzzy
msgid "User DN"
msgstr "Menu utilisateur"

#: app/templates/admin/settings.html:433
#, fuzzy
msgid "User login attribute"
msgstr "Des temps de chargement plus rapides"

#: app/templates/admin/settings.html:447
#, fuzzy
msgid "Test LDAP Connection"
msgstr "Termes et conditions"

#: app/templates/admin/settings.html:455
msgid "Export Settings"
msgstr "Paramètres d'exportation"

#: app/templates/admin/settings.html:470 app/templates/kiosk/base.html:6
msgid "Kiosk Mode"
msgstr ""

#: app/templates/admin/settings.html:475
msgid "Enable Kiosk Mode"
msgstr ""

#: app/templates/admin/settings.html:479
msgid "Kiosk mode provides a simplified interface for warehouse operations with barcode scanning and time tracking. Access at"
msgstr ""

#: app/templates/admin/settings.html:484
msgid "Auto-Logout Timeout (Minutes)"
msgstr ""

#: app/templates/admin/settings.html:488
msgid "Default Movement Type"
msgstr ""

#: app/templates/admin/settings.html:490
#: app/templates/inventory/movements/form.html:32
#: 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/admin/settings.html:491
#: app/templates/inventory/movements/form.html:33
#: app/templates/inventory/movements/list.html:25
#: app/templates/inventory/reports/movement_history.html:43
#: app/templates/inventory/stock_items/history.html:35
#: app/templates/kiosk/base.html:151
msgid "Transfer"
msgstr "Transfert"

#: app/templates/admin/settings.html:492
#: app/templates/inventory/movements/form.html:34
#: 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/admin/settings.html:493
#: app/templates/inventory/movements/form.html:35
#: app/templates/inventory/movements/list.html:27
#: app/templates/inventory/reports/movement_history.html:45
#: app/templates/inventory/stock_items/history.html:37
msgid "Rent"
msgstr "Location"

#: app/templates/admin/settings.html:494
#: app/templates/inventory/movements/form.html:36
#: app/templates/inventory/movements/list.html:28
#: app/templates/inventory/reports/movement_history.html:46
#: app/templates/inventory/stock_items/history.html:38
msgid "Purchase"
msgstr "Achat"

#: app/templates/admin/settings.html:500
msgid "Allow Camera-Based Barcode Scanning"
msgstr ""

#: app/templates/admin/settings.html:506
msgid "Require Reason for Stock Adjustments"
msgstr ""

#: app/templates/admin/settings.html:518
msgid "Configure the shared server-side AI helper for the web app, desktop app, and API clients. Hosted provider keys stay on the server."
msgstr ""

#: app/templates/admin/settings.html:522
#, fuzzy
msgid "Availability"
msgstr "Disponible"

#: app/templates/admin/settings.html:524
#, fuzzy
msgid "Use environment default"
msgstr "Valeurs par défaut des factures"

#: app/templates/admin/settings.html:524
#, fuzzy
msgid "currently"
msgstr "Devise"

#: app/templates/admin/settings.html:530
#: app/templates/integrations/health.html:22
#: app/templates/payment_gateways/create.html:26
#: app/templates/payment_gateways/list.html:26
#: app/templates/payment_gateways/list.html:38
msgid "Provider"
msgstr ""

#: app/templates/admin/settings.html:537
#, fuzzy
msgid "Base URL"
msgstr "URL de l'image"

#: app/templates/admin/settings.html:539
msgid "For Ollama, this is the URL from the Flask server to Ollama."
msgstr ""

#: app/templates/admin/settings.html:542
#, fuzzy
msgid "Model"
msgstr "Code"

#: app/templates/admin/settings.html:546
#, fuzzy
msgid "Hosted API key"
msgstr "Créer un jeton API"

#: app/templates/admin/settings.html:547
#, fuzzy
msgid "Stored; leave blank to keep"
msgstr "Laisser vide pour conserver le mot de passe actuel"

#: app/templates/admin/settings.html:547
msgid "Only required for hosted providers"
msgstr ""

#: app/templates/admin/settings.html:551
msgid "Clear stored API key"
msgstr ""

#: app/templates/admin/settings.html:557
#, fuzzy
msgid "Timeout seconds"
msgstr "Délai d'expiration (secondes)"

#: app/templates/admin/settings.html:561
#, fuzzy
msgid "Context limit"
msgstr "Type de contenu"

#: app/templates/admin/settings.html:566
#, fuzzy
msgid "System prompt"
msgstr "Rôle système"

#: app/templates/admin/settings.html:571
#, fuzzy
msgid "Test AI connection"
msgstr "Termes et conditions"

#: app/templates/admin/settings.html:580
msgid "Privacy & Analytics"
msgstr "Confidentialité et analyses"

#: app/templates/admin/settings.html:604 app/templates/user/settings.html:497
msgid "Save Settings"
msgstr "Enregistrer les paramètres"

#: app/templates/admin/settings.html:649
msgid "Upload New Logo"
msgstr "Télécharger un nouveau logo"

#: app/templates/admin/settings.html:663
msgid "Logo Preview"
msgstr "Aperçu du logo"

#: app/templates/admin/settings.html:712
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:714
msgid "Remove Logo"
msgstr "Supprimer le logo"

#: app/templates/admin/settings.html:731
msgid "Copied"
msgstr ""

#: app/templates/admin/settings.html:745
msgid "Please enter a code."
msgstr ""

#: app/templates/admin/settings.html:760
msgid "Success. Donate UI is now hidden for everyone. Reload the page to see the change."
msgstr ""

#: app/templates/admin/settings.html:772 app/templates/admin/settings.html:835
#, fuzzy
msgid "Request failed."
msgstr "Demander l'approbation"

#: app/templates/admin/settings.html:815 app/templates/admin/settings.html:848
#, fuzzy
msgid "Testing connection..."
msgstr "Configuration des tests"

#: app/templates/admin/settings.html:831
#, fuzzy
msgid "Connection failed."
msgstr "L'opération a échoué"

#: app/templates/admin/settings.html:859
msgid "AI connection succeeded."
msgstr ""

#: app/templates/admin/settings.html:862 app/templates/admin/settings.html:866
#, fuzzy
msgid "AI connection failed."
msgstr "L'opération a échoué"

#: 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:50
#: app/templates/setup/initial_setup.html:268
msgid "Admin → Settings"
msgstr "Administrateur → Paramètres"

#: app/templates/admin/user_form.html:60
msgid "Password Reset"
msgstr ""

#: app/templates/admin/user_form.html:67
#: app/templates/auth/edit_profile.html:69
msgid "Leave blank to keep current password"
msgstr "Laisser vide pour conserver le mot de passe actuel"

#: app/templates/admin/user_form.html:84 app/templates/clients/edit.html:102
#: app/templates/email/client_portal_password_setup.html:72
msgid "Client Portal Access"
msgstr "Accès au portail client"

#: app/templates/admin/user_form.html:107
msgid "Assigned Clients (Subcontractor)"
msgstr ""

#: app/templates/admin/user_form.html:112
#, fuzzy
msgid "Assigned clients"
msgstr "Attribué à"

#: app/templates/admin/user_form.html:118
msgid "Hold Ctrl/Cmd to select multiple clients."
msgstr ""

#: 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:80
msgid "Roles"
msgstr "Rôles"

#: app/templates/admin/users.html:93
msgid "No users found."
msgstr "Aucun utilisateur trouvé."

#: app/templates/admin/users.html:104
#, python-brace-format
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:107
msgid "Cannot Delete User"
msgstr "Impossible de supprimer l'utilisateur"

#: app/templates/admin/users.html:119
#, python-brace-format
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:122
msgid "Delete User"
msgstr "Supprimer un utilisateur"

#: app/templates/admin/custom_field_definitions/form.html:7
#: app/templates/admin/custom_field_definitions/list.html:7
#: app/templates/admin/custom_field_definitions/list.html:12
msgid "Custom Field Definitions"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:8
#: app/templates/admin/custom_field_definitions/form.html:67
#: app/templates/admin/link_templates/form.html:8
#: app/templates/admin/link_templates/form.html:73
#: app/templates/chat/index.html:124 app/templates/main/dashboard.html:791
#: app/templates/timer/calendar.html:206
msgid "Create"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:13
msgid "Edit Custom Field Definition"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:13
msgid "Create Custom Field Definition"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:14
msgid "Define a global custom field that can be used across all clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:24
#: app/templates/admin/custom_field_definitions/list.html:24
#: app/templates/admin/custom_field_definitions/list.html:35
#: app/templates/admin/link_templates/form.html:42
#: app/templates/admin/link_templates/list.html:26
#: app/templates/admin/link_templates/list.html:45
msgid "Field Key"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:25
#: app/templates/admin/link_templates/form.html:43
msgid "e.g., debtor_number"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:26
msgid "Unique identifier for this field (letters, numbers, and underscores only). Cannot be changed after creation."
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:30
#: app/templates/admin/custom_field_definitions/list.html:25
#: app/templates/admin/custom_field_definitions/list.html:38
#: app/templates/kanban/columns.html:49
msgid "Label"
msgstr "Étiquette"

#: app/templates/admin/custom_field_definitions/form.html:31
msgid "e.g., Debtor Number"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:32
msgid "Display name shown in client forms"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:37
msgid "Optional help text for this field"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:42
#: app/templates/admin/link_templates/form.html:56
msgid "Display Order"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:44
#: app/templates/admin/link_templates/form.html:58
msgid "Lower numbers appear first"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:50
#: app/templates/admin/custom_field_definitions/list.html:26
#: app/templates/admin/custom_field_definitions/list.html:44
msgid "Mandatory"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:52
msgid "Required field - clients must fill this in"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:61
msgid "Only active fields are shown in client forms"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:13
msgid "Manage global custom field definitions for clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:15
#: app/templates/admin/custom_field_definitions/list.html:82
msgid "Create Custom Field"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:27
#: app/templates/admin/custom_field_definitions/list.html:51
#: app/templates/admin/link_templates/list.html:28
#: app/templates/admin/link_templates/list.html:55
#: app/templates/quotes/create.html:61 app/templates/quotes/create.html:93
#: app/templates/quotes/create.html:124 app/templates/quotes/edit.html:66
#: app/templates/quotes/edit.html:141 app/templates/quotes/edit.html:198
msgid "Order"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:46
msgid "Required"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:48
#: app/templates/invoices/edit.html:748 app/templates/invoices/list.html:135
#: app/templates/invoices/view.html:514 app/templates/kiosk/dashboard.html:331
#: app/templates/kiosk/dashboard.html:347
#: app/templates/projects/archive.html:41
#: app/templates/timer/time_entries_overview.html:202
#: app/templates/timer/timer_page.html:160
#: app/templates/timer/timer_page.html:169
msgid "Optional"
msgstr "Facultatif"

#: app/templates/admin/custom_field_definitions/list.html:80
msgid "No custom field definitions found."
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:89
msgid "How Custom Field Definitions Work"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:91
msgid "Custom field definitions allow you to create global fields that can be used across all clients. This eliminates the need to recreate the same custom fields for each client."
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:92
msgid "Features:"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:94
msgid "Define custom fields once and use them for all clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:95
msgid "Mark fields as mandatory to ensure they are always filled"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:96
msgid "Control field order and visibility"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:97
msgid "Link templates can be assigned to make field values clickable"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:99
#: app/templates/admin/link_templates/list.html:96
msgid "Example:"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:101
msgid "Create a field definition with key \"debtor_number\" and label \"Debtor Number\""
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:102
msgid "Mark it as mandatory if required"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:103
msgid "When creating or editing a client, this field will automatically appear"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:104
msgid "Create a link template to make the value clickable (e.g., https://erp.example.com/customer/%value%)"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:119
#, python-format
msgid "Warning: %(count)d client(s) have a value for this custom field. Deleting this field definition will remove the field value from all %(count)d client(s). Are you sure you want to delete the custom field definition \"%(label)s\"?"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:123
msgid "Are you sure you want to delete this custom field definition?"
msgstr ""

#: app/templates/admin/email_templates/create.html:38
#: app/templates/admin/email_templates/edit.html:55
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:63
#: app/templates/admin/email_templates/view.html:75
msgid "HTML Template"
msgstr "Modèle HTML"

#: app/templates/admin/email_templates/create.html:55
#: app/templates/admin/email_templates/edit.html:72
#: app/templates/invoices/edit.html:748 app/templates/invoices/view.html:514
msgid "Custom Message"
msgstr "Message personnalisé"

#: app/templates/admin/email_templates/create.html:58
#: app/templates/admin/email_templates/edit.html:75
msgid "More Variables"
msgstr "Plus de variables"

#: app/templates/admin/email_templates/create.html:121
#: app/templates/project_templates/create.html:107
#: app/templates/project_templates/list.html:118
msgid "Create Template"
msgstr "Créer un modèle"

#: app/templates/admin/email_templates/create.html:130
#: app/templates/admin/email_templates/edit.html:147
msgid "Available Variables"
msgstr "Variables disponibles"

#: app/templates/admin/email_templates/create.html:137
#: app/templates/admin/email_templates/edit.html:154
msgid "Invoice Variables"
msgstr "Variables de facture"

#: app/templates/admin/email_templates/create.html:160
#: app/templates/admin/email_templates/edit.html:177
msgid "Other Variables"
msgstr "Autres variables"

#: app/templates/admin/email_templates/edit.html:19
#: app/templates/admin/email_templates/edit.html:31
#: app/templates/admin/email_templates/view.html:21
#: app/templates/admin/email_templates/view.html:33
#, fuzzy
msgid "Send test email"
msgstr "Envoyer un e-mail de test"

#: app/templates/admin/email_templates/edit.html:20
msgid "Sends the saved template (save changes first). Uses the same rendering as a real invoice email. Default recipient can be set under Admin → Email Configuration."
msgstr ""

#: app/templates/admin/email_templates/edit.html:23
#: app/templates/admin/email_templates/view.html:25
#, fuzzy
msgid "Recipient"
msgstr "E-mail du destinataire"

#: app/templates/admin/email_templates/edit.html:27
#: app/templates/admin/email_templates/view.html:29
#, fuzzy
msgid "Invoice ID"
msgstr "Facturé"

#: app/templates/admin/email_templates/edit.html:138
#: app/templates/project_templates/edit.html:137
msgid "Update Template"
msgstr "Modèle de mise à jour"

#: app/templates/admin/email_templates/edit.html:622
#: app/templates/admin/email_templates/view.html:130
#, fuzzy
msgid "Failed to send test email."
msgstr "Envoyer un e-mail de test"

#: 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:368
#: app/templates/timer/time_entries_overview.html:388
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:161 app/templates/invoices/view.html:373
#: app/templates/kanban/columns.html:149
#: app/templates/timer/time_entries_overview.html:388
msgid "This action cannot be undone."
msgstr "Cette action ne peut pas être annulée."

#: app/templates/admin/email_templates/view.html:22
msgid "Uses the same rendering as a real invoice email. Set a default address under Admin → Email Configuration (Test recipient email)."
msgstr ""

#: app/templates/admin/email_templates/view.html:40
msgid "Template Information"
msgstr "Informations sur le modèle"

#: app/templates/admin/integrations/list.html:4
msgid "Integration Setup"
msgstr ""

#: app/templates/admin/integrations/list.html:21
msgid "Configure OAuth credentials for each integration. Global integrations are shared across all users."
msgstr ""

#: app/templates/admin/integrations/list.html:34
#: app/templates/integrations/health.html:39
#: app/templates/integrations/list.html:136
#: app/templates/integrations/manage.html:561
msgid "Global"
msgstr ""

#: app/templates/admin/integrations/list.html:38
msgid "Per User"
msgstr ""

#: app/templates/admin/integrations/setup.html:4
#: app/templates/admin/integrations/setup.html:15
#: app/templates/integrations/list.html:167
msgid "Setup"
msgstr ""

#: app/templates/admin/integrations/setup.html:29
#: app/templates/integrations/manage.html:79
#: app/templates/integrations/wizard_trello.html:18
msgid "Trello API Key"
msgstr ""

#: app/templates/admin/integrations/setup.html:36
#: app/templates/integrations/manage.html:86
msgid "Get from https://trello.com/app-key"
msgstr ""

#: app/templates/admin/integrations/setup.html:39
#: app/templates/integrations/manage.html:89
msgid "Get your API key from"
msgstr ""

#: app/templates/admin/integrations/setup.html:45
#: app/templates/integrations/manage.html:95
#: app/templates/integrations/wizard_trello.html:28
msgid "Trello API Secret"
msgstr ""

#: app/templates/admin/integrations/setup.html:52
#: app/templates/admin/integrations/setup.html:91
msgid "Leave empty to keep current value"
msgstr ""

#: app/templates/admin/integrations/setup.html:54
#: app/templates/integrations/manage.html:104
msgid "Get your API secret from"
msgstr ""

#: app/templates/admin/integrations/setup.html:55
#: app/templates/integrations/manage.html:105
msgid "(shown after generating API key)"
msgstr ""

#: app/templates/admin/integrations/setup.html:62
msgid "After saving API Key and Secret, you can connect Trello using OAuth flow. The token will be generated automatically during connection."
msgstr ""

#: app/templates/admin/integrations/setup.html:72
#: app/templates/admin/integrations/setup.html:79
#: app/templates/integrations/manage.html:122
#: app/templates/integrations/manage.html:129
msgid "OAuth Client ID"
msgstr ""

#: app/templates/admin/integrations/setup.html:85
#: app/templates/integrations/manage.html:135
#: app/templates/integrations/manage.html:141
msgid "OAuth Client Secret"
msgstr ""

#: app/templates/admin/integrations/setup.html:93
#: app/templates/integrations/manage.html:144
msgid "Required for new setup. Leave empty to keep existing secret."
msgstr ""

#: app/templates/admin/integrations/setup.html:107
msgid "Leave empty for \"common\" (multi-tenant)"
msgstr ""

#: app/templates/admin/integrations/setup.html:109
#: app/templates/integrations/manage.html:160
#: app/templates/integrations/wizard_microsoft_teams.html:25
#: app/templates/integrations/wizard_outlook_calendar.html:25
msgid "Leave empty to use \"common\" (multi-tenant). Enter your Azure AD tenant ID for single-tenant apps."
msgstr ""

#: app/templates/admin/integrations/setup.html:117
#: app/templates/integrations/manage.html:168
#: app/templates/integrations/wizard_gitlab.html:11
msgid "GitLab Instance URL"
msgstr ""

#: app/templates/admin/integrations/setup.html:127
#: app/templates/integrations/manage.html:178
#: app/templates/integrations/wizard_gitlab.html:18
msgid "URL of your GitLab instance. Use \"https://gitlab.com\" for GitLab.com or your self-hosted GitLab URL."
msgstr ""

#: app/templates/admin/integrations/setup.html:134
#: app/templates/integrations/manage.html:186
#: app/templates/integrations/wizard_asana.html:36
#: app/templates/integrations/wizard_github.html:36
#: app/templates/integrations/wizard_gitlab.html:64
#: app/templates/integrations/wizard_jira.html:53
#: app/templates/integrations/wizard_microsoft_teams.html:64
#: app/templates/integrations/wizard_outlook_calendar.html:64
msgid "OAuth Redirect URI"
msgstr ""

#: app/templates/admin/integrations/setup.html:136
#: app/templates/integrations/manage.html:188
msgid "Add this URL as an authorized redirect URI in your OAuth app settings:"
msgstr ""

#: app/templates/admin/integrations/setup.html:144
#: app/templates/integrations/manage.html:196
msgid "Automatic Connection Flow"
msgstr ""

#: app/templates/admin/integrations/setup.html:147
#: app/templates/integrations/manage.html:199
msgid "After you save these credentials, users can click \"Connect Google Calendar\""
msgstr ""

#: app/templates/admin/integrations/setup.html:148
#: app/templates/integrations/manage.html:200
msgid "They will be automatically redirected to Google OAuth"
msgstr ""

#: app/templates/admin/integrations/setup.html:149
#: app/templates/integrations/manage.html:201
msgid "No manual credential entry needed - fully automatic!"
msgstr ""

#: app/templates/admin/integrations/setup.html:150
#: app/templates/integrations/manage.html:202
msgid "Each user connects their own Google Calendar account"
msgstr ""

#: app/templates/admin/integrations/setup.html:159
#: app/templates/integrations/manage.html:212
#: app/templates/integrations/manage.html:270
msgid "Save Credentials"
msgstr ""

#: app/templates/admin/integrations/setup.html:170
msgid "How Google Calendar Works"
msgstr ""

#: app/templates/admin/integrations/setup.html:174
msgid "After you save the OAuth credentials above, users can connect their Google Calendar by clicking \"Connect Google Calendar\" on the Integrations page."
msgstr ""

#: app/templates/admin/integrations/setup.html:178
msgid "They will be automatically redirected to Google to authorize access - no manual credential entry needed!"
msgstr ""

#: app/templates/admin/integrations/setup.html:182
msgid "Each user connects their own Google Calendar account (per-user integration)."
msgstr ""

#: app/templates/admin/integrations/setup.html:188
#: app/templates/integrations/manage.html:578
#: app/templates/integrations/manage.html:589
msgid "Connection Status"
msgstr ""

#: app/templates/admin/integrations/setup.html:194
msgid "View Integration"
msgstr ""

#: app/templates/admin/integrations/setup.html:200
msgid "Next Steps"
msgstr ""

#: app/templates/admin/integrations/setup.html:202
msgid "After saving credentials, connect the integration:"
msgstr ""

#: app/templates/admin/integrations/setup.html:205
msgid "Connect Integration"
msgstr ""

#: app/templates/admin/link_templates/form.html:13
msgid "Edit Link Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:13
#: app/templates/admin/link_templates/list.html:15
#: app/templates/admin/link_templates/list.html:86
msgid "Create Link Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:14
msgid "Configure URL template for client custom fields"
msgstr ""

#: app/templates/admin/link_templates/form.html:24
#: app/templates/project_templates/create.html:20
#: app/templates/project_templates/edit.html:20
msgid "Template Name"
msgstr ""

#: app/templates/admin/link_templates/form.html:25
msgid "e.g., ERP System Link"
msgstr ""

#: app/templates/admin/link_templates/form.html:26
msgid "A descriptive name for this link template"
msgstr ""

#: app/templates/admin/link_templates/form.html:31
msgid "Optional description"
msgstr ""

#: app/templates/admin/link_templates/form.html:35
#: app/templates/admin/link_templates/list.html:25
#: app/templates/admin/link_templates/list.html:42
msgid "URL Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:36
msgid "https://example.com/customer/%value%"
msgstr ""

#: app/templates/admin/link_templates/form.html:37
#, python-brace-format
msgid "URL with {value} or %value% placeholder. Examples: https://erp.example.com/customer/{value} or https://erp.example.com/customer/%value%"
msgstr ""

#: app/templates/admin/link_templates/form.html:44
msgid "The key in the client custom_fields JSON to use"
msgstr ""

#: app/templates/admin/link_templates/form.html:48
#: app/templates/admin/link_templates/list.html:27
#: app/templates/admin/link_templates/list.html:48
#: app/templates/kanban/columns.html:50
msgid "Icon"
msgstr "Icône"

#: app/templates/admin/link_templates/form.html:49
msgid "fas fa-link"
msgstr ""

#: app/templates/admin/link_templates/form.html:50
msgid "Font Awesome icon class (e.g., fas fa-link)"
msgstr ""

#: app/templates/admin/link_templates/form.html:66
msgid "Only active templates are shown on client pages"
msgstr ""

#: app/templates/admin/link_templates/list.html:13
msgid "Manage URL templates for client custom fields"
msgstr ""

#: app/templates/admin/link_templates/list.html:24
#: app/templates/admin/link_templates/list.html:36
#: app/templates/admin/webhooks/form.html:23
#: app/templates/admin/webhooks/list.html:24
#: app/templates/admin/webhooks/list.html:35
#: app/templates/contacts/list.html:27 app/templates/contacts/list.html:38
#: app/templates/inventory/stock_items/form.html:27
#: app/templates/inventory/stock_items/list.html:50
#: app/templates/inventory/stock_items/list.html:63
#: app/templates/inventory/suppliers/form.html:28
#: app/templates/inventory/suppliers/list.html:42
#: app/templates/inventory/suppliers/list.html:54
#: app/templates/inventory/warehouses/form.html:28
#: app/templates/inventory/warehouses/list.html:23
#: app/templates/inventory/warehouses/list.html:34
#: app/templates/invoices/edit.html:232 app/templates/leads/list.html:50
#: app/templates/leads/list.html:62 app/templates/main/help.html:195
#: app/templates/payment_gateways/list.html:25
#: app/templates/payment_gateways/list.html:35
#: app/templates/projects/_projects_list.html:78
#: app/templates/projects/add_good.html:19
#: app/templates/projects/edit_good.html:19
#: app/templates/projects/goods.html:39 app/templates/projects/goods.html:51
#: app/templates/projects/list.html:159 app/templates/projects/view.html:428
#: app/templates/projects/view.html:440
#: app/templates/quotes/_edit_quote_form_scripts.html:232
#: app/templates/quotes/create.html:125 app/templates/quotes/edit.html:199
#: app/templates/quotes/edit.html:215
#: app/templates/recurring_invoices/list.html:23
#: app/templates/recurring_invoices/list.html:35
#: app/templates/recurring_tasks/list.html:30
#: app/templates/recurring_tasks/list.html:41
#: app/templates/reports/saved_views_list.html:27
#: app/templates/reports/saved_views_list.html:38
#: app/templates/tasks/_tasks_list.html:47
#: app/templates/workforce/dashboard.html:254
msgid "Name"
msgstr "Nom"

#: app/templates/admin/link_templates/list.html:68
msgid "Are you sure you want to delete this link template?"
msgstr ""

#: app/templates/admin/link_templates/list.html:84
msgid "No link templates found."
msgstr ""

#: app/templates/admin/link_templates/list.html:93
msgid "How Link Templates Work"
msgstr ""

#: app/templates/admin/link_templates/list.html:95
msgid "Link templates allow you to create quick links to external systems (like ERP systems) using values from client custom fields."
msgstr ""

#: app/templates/admin/link_templates/list.html:98
msgid "Create a custom field called \"debtor_number\" on a client"
msgstr ""

#: app/templates/admin/link_templates/list.html:99
msgid "Create a link template with URL:"
msgstr ""

#: app/templates/admin/link_templates/list.html:100
msgid "Set the field key to \"debtor_number\""
msgstr ""

#: app/templates/admin/link_templates/list.html:101
msgid "When viewing the client, a link will appear that opens the ERP system with the correct customer ID"
msgstr ""

#: app/templates/admin/link_templates/list.html:103
msgid "URL Template Format:"
msgstr ""

#: app/templates/admin/link_templates/list.html:103
#, python-brace-format
msgid "Use {value} as a placeholder for the custom field value."
msgstr ""

#: 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:41
msgid "A unique name for this role"
msgstr "Un nom unique pour ce rôle"

#: app/templates/admin/roles/form.html:55
msgid "Optional description of this role"
msgstr "Description facultative de ce rôle"

#: app/templates/admin/roles/form.html:59
#: app/templates/admin/roles/list.html:93
#: app/templates/admin/roles/view.html:76
msgid "Permissions"
msgstr "Autorisations"

#: app/templates/admin/roles/form.html:60
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:75
#: app/templates/admin/roles/form.html:112
msgid "Toggle All"
msgstr "Tout basculer"

#: app/templates/admin/roles/form.html:99
msgid "Module visibility"
msgstr ""

#: app/templates/admin/roles/form.html:101
msgid "Select which modules should be hidden for this role. Hidden modules will not appear in the navigation and cannot be accessed directly."
msgstr ""

#: app/templates/admin/roles/form.html:124
msgid "Hide"
msgstr ""

#: app/templates/admin/roles/form.html:143
msgid "Update Role"
msgstr "Mettre à jour le rôle"

#: app/templates/admin/roles/form.html:145
#: 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/deals/activity_form.html:25
#: app/templates/inventory/movements/list.html:57
#: app/templates/inventory/movements/list.html:79
#: app/templates/inventory/reports/movement_history.html:73
#: app/templates/inventory/reports/movement_history.html:95
#: app/templates/inventory/reservations/list.html:42
#: app/templates/inventory/reservations/list.html:64
#: app/templates/inventory/stock_items/history.html:64
#: app/templates/inventory/stock_items/history.html:81
#: app/templates/inventory/stock_items/view.html:240
#: app/templates/inventory/stock_items/view.html:250
#: app/templates/inventory/warehouses/view.html:131
#: app/templates/inventory/warehouses/view.html:145
#: app/templates/leads/activity_form.html:25
#: app/templates/workforce/dashboard.html:120
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:126
msgid "No users"
msgstr "Aucun utilisateur"

#: 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:135
#: app/templates/client_portal/quotes.html:67
#: app/templates/contacts/list.html:58 app/templates/deals/list.html:81
#: app/templates/integrations/health.html:99 app/templates/issues/list.html:136
#: app/templates/leads/list.html:85
#: app/templates/projects/_kanban_tailwind.html:79
#: app/templates/projects/view.html:480
#: app/templates/quotes/_quotes_list.html:77
#: app/templates/reports/saved_views_list.html:61
#: app/templates/tasks/overdue.html:72
#: app/templates/timer/_time_entries_list.html:179
#: app/templates/weekly_goals/index.html:191
msgid "View"
msgstr "Voir"

#: app/templates/admin/roles/list.html:159
msgid "Permissions for"
msgstr "Autorisations pour"

#: app/templates/admin/roles/list.html:187
msgid "No permissions assigned."
msgstr "Aucune autorisation attribuée."

#: app/templates/admin/roles/list.html:194
msgid "No roles found."
msgstr "Aucun rôle trouvé."

#: app/templates/admin/roles/list.html:202
msgid "About Roles & Permissions"
msgstr "À propos des rôles et des autorisations"

#: app/templates/admin/roles/list.html:204
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:211
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:213
msgid "Delete Role"
msgstr "Supprimer le rôle"

#: app/templates/admin/roles/view.html:16
#: app/templates/client_portal/widgets/projects.html:28
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/audit_logs/list.html:117
#: app/templates/budget/dashboard.html:86
#: app/templates/budget/project_detail.html:279
#: app/templates/calendar/event_detail.html:172
#: app/templates/client_portal/issue_detail.html:83
#: app/templates/deals/view.html:93
#: app/templates/inventory/purchase_orders/view.html:195
#: app/templates/inventory/stock_items/view.html:182
#: app/templates/inventory/stock_items/view.html:213
#: app/templates/issues/list.html:99 app/templates/issues/list.html:133
#: app/templates/issues/view.html:165 app/templates/leads/view.html:107
#: app/templates/project_templates/view.html:94
#: app/templates/quotes/_quotes_list.html:38
#: app/templates/quotes/_quotes_list.html:73 app/templates/quotes/view.html:408
#: app/templates/reports/saved_views_list.html:30
#: app/templates/reports/saved_views_list.html:53
#: app/templates/tasks/_kanban.html:1335 app/templates/tasks/edit.html:263
#: app/templates/timer/edit_timer.html:528
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: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:36
#: app/templates/integrations/wizard_github.html:176
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/list.html:44
#: app/templates/admin/webhooks/view.html:46
#: app/templates/calendar/view.html:76 app/templates/calendar/view.html:93
#: app/templates/calendar/view.html:94 app/templates/calendar/view.html:107
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/list.html:41
#: app/templates/admin/webhooks/view.html:28
msgid "URL"
msgstr "URL"

#: app/templates/admin/webhooks/list.html:28
#: app/templates/admin/webhooks/list.html:65
#: 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:69
#: app/templates/client_portal/invoice_detail.html:92
#: app/templates/client_portal/quote_detail.html:72
#: app/templates/client_portal/quote_detail.html:90
#: app/templates/client_portal/quote_detail.html:113
#: app/templates/inventory/purchase_orders/form.html:81
#: app/templates/inventory/purchase_orders/view.html:138
#: app/templates/inventory/stock_items/view.html:223
#: app/templates/inventory/stock_levels/item.html:63
#: app/templates/invoices/edit.html:356
#: app/templates/invoices/generate_from_time.html:123
#: app/templates/projects/goods.html:43 app/templates/projects/goods.html:65
#: app/templates/quotes/create.html:68 app/templates/quotes/edit.html:73
#: app/templates/quotes/view.html:105 app/templates/quotes/view.html:160
#: app/templates/reports/iterative_view.html:64
#: app/utils/pdf_generator_fallback.py:575
msgid "Total"
msgstr "Total"

#: 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
#: app/templates/integrations/health.html:103
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/admin/webhooks/view.html:111
#: app/templates/calendar/event_form.html:106
msgid "Event"
msgstr "Événement"

#: app/templates/admin/webhooks/view.html:103
#: app/templates/admin/webhooks/view.html:123
msgid "Attempt"
msgstr "Tentative"

#: app/templates/admin/webhooks/view.html:104
#: app/templates/admin/webhooks/view.html:124
msgid "Response"
msgstr "Réponse"

#: app/templates/admin/webhooks/view.html:105
#: app/templates/admin/webhooks/view.html:132
#: app/templates/client_portal/time_entries.html:65
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
#: app/templates/reports/scheduled.html:156
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:30
#: 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 app/templates/reports/index.html:39
#: app/templates/reports/index.html:47 app/templates/reports/index.html:55
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:22
#, fuzzy
msgid "Export all charts as PNG"
msgstr "Exporter au format JSON"

#: app/templates/analytics/dashboard.html:23
#, fuzzy
msgid "Export Charts"
msgstr "Exporter au format CSV"

#: app/templates/analytics/dashboard.html:31
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:58
#: app/templates/analytics/dashboard_improved.html:62
msgid "Avg Daily Hours"
msgstr "Heures quotidiennes moyennes"

#: app/templates/analytics/dashboard.html:63
#, fuzzy
msgid "Regular"
msgstr "Retour"

#: app/templates/analytics/dashboard.html:63
#, fuzzy
msgid "Overtime"
msgstr "Temps"

#: app/templates/analytics/dashboard.html:73
#: app/templates/analytics/dashboard_improved.html:83
msgid "Daily Hours Trend"
msgstr "Tendance des heures quotidiennes"

#: app/templates/analytics/dashboard.html:85
#: 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:172
msgid "Weekly Trends"
msgstr "Tendances hebdomadaires"

#: app/templates/analytics/dashboard.html:129
#, fuzzy
msgid "Hours Forecast"
msgstr "heures avant"

#: app/templates/analytics/dashboard.html:131
msgid "Next 7 days based on 7-day average"
msgstr ""

#: app/templates/analytics/dashboard.html:146
#, fuzzy
msgid "Daily Regular vs Overtime"
msgstr "Paiements au fil du temps"

#: app/templates/analytics/dashboard.html:162
#: 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:174
msgid "Project Efficiency"
msgstr "Efficacité du projet"

#: app/templates/analytics/dashboard.html:191
#: 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:219
#: 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:220
#: 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:223
#: 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:224
#: app/templates/analytics/dashboard_improved.html:218
#: app/templates/analytics/mobile_dashboard.html:164
msgid "Revenue"
msgstr "Revenu"

#: app/templates/analytics/dashboard.html:499
#, fuzzy
msgid "Forecast"
msgstr "Réinitialiser"

#: app/templates/analytics/dashboard.html:745
msgid "Charts exported. Check your downloads."
msgstr ""

#: app/templates/analytics/dashboard.html:745
#: app/templates/analytics/dashboard_improved.html:19
#: app/templates/timer/calendar.html:49
msgid "Export"
msgstr "Exporter"

#: 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: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/client_portal/issues.html:31 app/templates/issues/edit.html:40
#: app/templates/issues/list.html:40 app/templates/issues/view.html:101
#: app/templates/tasks/create.html:72 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:476 app/templates/tasks/edit.html:81
#: app/templates/tasks/edit.html:656 app/templates/tasks/my_tasks.html:57
#: app/templates/tasks/my_tasks.html:132 app/utils/i18n_helpers.py:17
#: app/utils/i18n_helpers.py:29
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:71 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:475 app/templates/tasks/edit.html:80
#: app/templates/tasks/edit.html:655 app/templates/tasks/my_tasks.html:40
#: app/templates/tasks/my_tasks.html:131 app/utils/i18n_helpers.py:16
#: app/utils/i18n_helpers.py:28
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:555 app/templates/main/help.html:204
#: app/templates/project_templates/view.html:39
#: app/templates/projects/_projects_list.html:95
#: app/templates/projects/add_good.html:62 app/templates/projects/edit.html:61
#: app/templates/projects/edit_good.html:62
#: app/templates/projects/goods.html:70 app/templates/projects/list.html:176
#: app/templates/reports/user_report.html:83
#: app/templates/reports/week_in_review.html:30
#: app/templates/tasks/edit.html:175
#: app/templates/timer/_time_entries_list.html:173
#: app/templates/timer/bulk_entry.html:207
#: app/templates/timer/calendar.html:199 app/templates/timer/calendar.html:883
#: app/templates/timer/edit_timer.html:322
#: app/templates/timer/edit_timer.html:469
#: app/templates/timer/manual_entry.html:153
#: app/templates/timer/time_entries_overview.html:113
#: app/templates/timer/view_timer.html:122
#: app/templates/timer/view_timer.html:126 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/deals/activity_form.html:36
#: app/templates/leads/activity_form.html:36
#: app/templates/tasks/_kanban.html:1346 app/templates/tasks/edit.html:266
#: app/templates/tasks/my_tasks.html:91 app/templates/weekly_goals/edit.html:89
#: app/templates/weekly_goals/index.html:39
#: app/templates/weekly_goals/index.html:172
#: app/templates/weekly_goals/view.html:67 app/utils/i18n_helpers.py:222
#: app/utils/i18n_helpers.py:234 app/utils/i18n_helpers.py:245
#: app/utils/i18n_helpers.py:256
msgid "Completed"
msgstr "Complété"

#: 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/issues/edit.html:43 app/templates/issues/list.html:43
#: app/templates/issues/view.html:104 app/templates/projects/archive.html:68
#: app/templates/tasks/create.html:75 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:479 app/templates/tasks/edit.html:84
#: app/templates/tasks/edit.html:659 app/templates/tasks/my_tasks.html:135
#: app/templates/weekly_goals/edit.html:91
#: app/templates/weekly_goals/view.html:73 app/utils/i18n_helpers.py:20
#: app/utils/i18n_helpers.py:32 app/utils/i18n_helpers.py:68
#: app/utils/i18n_helpers.py:80 app/utils/i18n_helpers.py:247
#: app/utils/i18n_helpers.py:258
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/approvals/list.html:4 app/templates/approvals/list.html:8
#: app/templates/approvals/list.html:13 app/templates/approvals/view.html:8
#: app/templates/client_portal/approvals.html:4
#: app/templates/client_portal/approvals.html:14
msgid "Time Entry Approvals"
msgstr ""

#: app/templates/approvals/list.html:14
#: app/templates/client_portal/approvals.html:15
msgid "Review and approve time entries"
msgstr ""

#: app/templates/approvals/list.html:23
#: app/templates/client_portal/widgets/pending_actions.html:9
#: app/templates/invoice_approvals/list.html:4
msgid "Pending Approvals"
msgstr ""

#: app/templates/approvals/list.html:33 app/templates/approvals/list.html:95
#: app/templates/client_portal/approvals.html:86
#: app/templates/components/offline_indicator.html:66
#: app/templates/invoices/generate_from_time.html:39
#: app/templates/invoices/generate_from_time.html:57
#: app/templates/timer/view_timer.html:4 app/templates/timer/view_timer.html:14
msgid "Time Entry"
msgstr "Saisie du temps"

#: app/templates/approvals/list.html:37 app/templates/approvals/view.html:86
#: app/templates/invoice_approvals/list.html:31
msgid "Requested by"
msgstr ""

#: app/templates/approvals/list.html:38 app/templates/approvals/view.html:31
#: app/templates/client_portal/approvals.html:132
#: app/templates/project_templates/view.html:74
#: app/templates/projects/time_entries_overview.html:60
#: app/templates/reports/iterative_view.html:33
#: app/templates/reports/iterative_view.html:65
#: app/templates/reports/iterative_view.html:80
#: app/templates/reports/time_entries_report.html:85
#: app/templates/reports/unpaid_hours_report.html:92
#: app/templates/tasks/edit.html:243 app/templates/tasks/edit.html:255
#: app/templates/timer/calendar.html:877 app/templates/user/settings.html:349
#: app/templates/user/settings.html:364
msgid "hours"
msgstr "heures"

#: app/templates/approvals/list.html:46 app/templates/approvals/view.html:46
#: app/templates/client_portal/time_entries.html:88
#: app/templates/clients/view.html:377 app/templates/main/dashboard.html:89
#: app/templates/main/dashboard.html:354 app/templates/main/search.html:49
#: app/templates/timer/manual_entry.html:29
#: app/templates/timer/timer_page.html:57
#: app/templates/weekly_goals/view.html:186
msgid "Direct"
msgstr ""

#: app/templates/approvals/list.html:54 app/templates/approvals/view.html:132
#: app/templates/invoice_approvals/list.html:39
#: app/templates/invoice_approvals/view.html:108
#: app/templates/quotes/view.html:209 app/templates/quotes/view.html:550
#: app/templates/workforce/dashboard.html:76
#: app/templates/workforce/dashboard.html:181
msgid "Approve"
msgstr "Approuver"

#: app/templates/approvals/list.html:58 app/templates/approvals/list.html:140
#: app/templates/approvals/view.html:136 app/templates/approvals/view.html:159
#: app/templates/invoice_approvals/list.html:43
#: app/templates/invoice_approvals/list.html:86
#: app/templates/invoice_approvals/view.html:112
#: app/templates/quotes/view.html:210 app/templates/quotes/view.html:252
#: app/templates/quotes/view.html:568 app/templates/workforce/dashboard.html:81
#: app/templates/workforce/dashboard.html:186
msgid "Reject"
msgstr "Rejeter"

#: app/templates/approvals/list.html:75
msgid "No pending approvals"
msgstr ""

#: app/templates/approvals/list.html:76
msgid "All time entries have been reviewed."
msgstr ""

#: app/templates/approvals/list.html:85
msgid "My Requests"
msgstr ""

#: app/templates/approvals/list.html:116
msgid "No pending requests"
msgstr ""

#: app/templates/approvals/list.html:117
msgid "You have no time entry approval requests."
msgstr ""

#: app/templates/approvals/list.html:128 app/templates/approvals/view.html:147
msgid "Reject Time Entry"
msgstr ""

#: app/templates/approvals/list.html:134 app/templates/approvals/view.html:153
msgid "Reason for rejection"
msgstr ""

#: app/templates/approvals/view.html:4 app/templates/approvals/view.html:9
#: app/templates/approvals/view.html:14
#: app/templates/invoice_approvals/view.html:3
#: app/templates/invoice_approvals/view.html:8
msgid "Approval Details"
msgstr ""

#: app/templates/approvals/view.html:15
msgid "Review time entry approval request"
msgstr ""

#: app/templates/approvals/view.html:23
#: app/templates/reports/unpaid_hours_report.html:114
#: app/templates/timer/calendar.html:217 app/templates/timer/calendar.html:799
#: app/templates/timer/calendar.html:803
msgid "Time Entry Details"
msgstr ""

#: app/templates/approvals/view.html:26 app/templates/timer/edit_timer.html:538
msgid "Entry ID"
msgstr ""

#: app/templates/approvals/view.html:71
msgid "Approval Information"
msgstr ""

#: app/templates/approvals/view.html:90
msgid "Requested at"
msgstr ""

#: app/templates/approvals/view.html:95 app/templates/quotes/view.html:215
msgid "Approved by"
msgstr "Approuvé par"

#: app/templates/approvals/view.html:101
#: app/templates/invoice_approvals/view.html:88
msgid "Approved at"
msgstr ""

#: app/templates/approvals/view.html:107
#, fuzzy
msgid "Request comment"
msgstr "Publier un commentaire"

#: app/templates/approvals/view.html:113
#, fuzzy
msgid "Approval comment"
msgstr "Publier un commentaire"

#: app/templates/approvals/view.html:119
#, fuzzy
msgid "Rejection reason"
msgstr "Motif du rejet"

#: 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
#: app/templates/projects/time_entries_overview.html:28
#: app/templates/reports/builder.html:83
#: app/templates/timer/time_entries_overview.html:31
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:162
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
#: app/templates/reports/time_entries_report.html:27
#: app/templates/timer/time_entries_overview.html:69
msgid "All Users"
msgstr "Tous les utilisateurs"

#: app/templates/audit_logs/list.html:44 app/templates/audit_logs/list.html:77
#: app/templates/audit_logs/list.html:97 app/templates/deals/view.html:194
#: app/templates/deals/view.html:206
#: app/templates/inventory/purchase_orders/form.html:84
#: app/templates/invoices/edit.html:77 app/templates/invoices/edit.html:165
#: app/templates/invoices/edit.html:238 app/templates/quotes/create.html:99
#: app/templates/quotes/create.html:131 app/templates/quotes/edit.html:147
#: app/templates/quotes/edit.html:205
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/deals/view.html:97
#: app/templates/reports/saved_views_list.html:31
#: app/templates/reports/saved_views_list.html:56
#: app/templates/tasks/edit.html:264
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:64
#: app/templates/client_portal/time_entries.html:50
#: app/templates/deals/list.html:39
#: app/templates/inventory/adjustments/list.html:43
#: app/templates/inventory/movements/list.html:45
#: app/templates/inventory/purchase_orders/list.html:41
#: app/templates/inventory/reports/movement_history.html:57
#: 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:49
#: 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/project_templates/list.html:37
#: app/templates/reports/time_entries_report.html:78
#: app/templates/workforce/dashboard.html:36
msgid "Filter"
msgstr "Filtre"

#: app/templates/audit_logs/list.html:75 app/templates/audit_logs/list.html:87
#: app/templates/deals/view.html:192 app/templates/deals/view.html:202
msgid "Timestamp"
msgstr "Horodatage"

#: app/templates/audit_logs/list.html:78 app/templates/audit_logs/list.html:100
msgid "Entity"
msgstr "Entité"

#: app/templates/audit_logs/list.html:79 app/templates/audit_logs/list.html:133
#: app/templates/deals/view.html:195 app/templates/deals/view.html:207
msgid "Field"
msgstr "Champ"

#: app/templates/audit_logs/list.html:80 app/templates/audit_logs/list.html:140
#: app/templates/budget/project_detail.html:171
#: app/templates/clients/view.html:30 app/templates/deals/view.html:196
#: app/templates/deals/view.html:210 app/templates/projects/view.html:54
#: app/templates/tasks/view.html:21
msgid "Change"
msgstr "Changement"

#: app/templates/audit_logs/list.html:129 app/templates/audit_logs/view.html:76
#: app/templates/inventory/adjustments/form.html:46
#: app/templates/inventory/adjustments/list.html:60
#: app/templates/inventory/adjustments/list.html:81
#: app/templates/inventory/movements/form.html:104
#: app/templates/inventory/movements/list.html:61
#: app/templates/inventory/movements/list.html:144
#: app/templates/inventory/reports/movement_history.html:77
#: app/templates/inventory/reports/movement_history.html:164
#: app/templates/inventory/stock_items/history.html:68
#: app/templates/inventory/stock_items/history.html:150
#: app/templates/inventory/stock_items/view.html:243
#: app/templates/inventory/stock_items/view.html:259
#: app/templates/inventory/warehouses/view.html:133
#: app/templates/inventory/warehouses/view.html:153
#: app/templates/kiosk/dashboard.html:192
#: app/templates/workforce/dashboard.html:80
#: app/templates/workforce/dashboard.html:185
msgid "Reason"
msgstr "Raison"

#: app/templates/audit_logs/view.html:22
msgid "Change Information"
msgstr "Modifier les informations"

#: app/templates/audit_logs/view.html:85
msgid "Entity Context"
msgstr ""

#: app/templates/audit_logs/view.html:98
msgid "TimeEntry Created"
msgstr ""

#: app/templates/audit_logs/view.html:107
msgid "Entry Owner"
msgstr ""

#: app/templates/audit_logs/view.html:119
msgid "Field Change Details"
msgstr ""

#: app/templates/audit_logs/view.html:144
msgid "Full Entity State"
msgstr ""

#: app/templates/audit_logs/view.html:148
msgid "Before Change"
msgstr ""

#: app/templates/audit_logs/view.html:161
msgid "After Change"
msgstr ""

#: app/templates/audit_logs/view.html:178
msgid "Request Information"
msgstr "Demander des informations"

#: app/templates/auth/change_password.html:8
msgid "Update your password."
msgstr ""

#: app/templates/auth/change_password.html:21
msgid "Current Password"
msgstr ""

#: app/templates/auth/change_password.html:26
msgid "New Password"
msgstr ""

#: app/templates/auth/change_password.html:31
msgid "Confirm New Password"
msgstr ""

#: app/templates/auth/change_password.html:39
msgid "Change Password"
msgstr ""

#: app/templates/auth/edit_profile.html:87 app/templates/main/about.html:156
msgid "Security"
msgstr "Sécurité"

#: app/templates/auth/edit_profile.html:89
msgid "Manage two-factor authentication for your account."
msgstr ""

#: app/templates/auth/edit_profile.html:92 app/templates/auth/two_factor.html:6
#: app/templates/auth/two_factor_setup.html:3
#: app/templates/auth/two_factor_setup.html:8
#, fuzzy
msgid "Two-factor authentication"
msgstr "OIDC/SSO (authentification d'entreprise)"

#: app/templates/auth/edit_profile.html:183
msgid "Please fill both password fields or leave both empty"
msgstr ""

#: app/templates/auth/edit_profile.html:193
#: app/templates/client_portal/set_password.html:55
msgid "Password must be at least 8 characters long"
msgstr "Le mot de passe doit comporter au moins 8 caractères"

#: app/templates/auth/edit_profile.html:202
msgid "Passwords do not match"
msgstr ""

#: app/templates/auth/forgot_password.html:6
#, fuzzy
msgid "Forgot password"
msgstr "Mot de passe du portail"

#: app/templates/auth/forgot_password.html:19
#, fuzzy
msgid "Reset your password"
msgstr "Définissez votre mot de passe"

#: app/templates/auth/forgot_password.html:21
msgid "Enter your username or email address. If an account matches and email is configured, we will send you a reset link."
msgstr ""

#: app/templates/auth/forgot_password.html:27
#, fuzzy
msgid "Username or email"
msgstr "Aucun nom d'utilisateur ni e-mail"

#: app/templates/auth/forgot_password.html:30
msgid "your-username or you@example.com"
msgstr ""

#: app/templates/auth/forgot_password.html:32
#, fuzzy
msgid "Send reset link"
msgstr "Envoyer un e-mail de test"

#: app/templates/auth/forgot_password.html:35
#: app/templates/auth/reset_password.html:40
#: app/templates/auth/two_factor.html:35
#, fuzzy
msgid "Back to sign in"
msgstr "Retour à l'administrateur"

#: app/templates/auth/login.html:6 app/templates/errors/403.html:27
msgid "Login"
msgstr "Se connecter"

#: app/templates/auth/login.html:31 app/templates/setup/initial_setup.html:32
msgid "Track time. Stay organized."
msgstr "Suivez le temps. Restez organisé."

#: app/templates/auth/login.html:47
msgid "Sign in to your account"
msgstr "Connectez-vous à votre compte"

#: app/templates/auth/login.html:50
#, fuzzy
msgid "Demo credentials"
msgstr "Détails de l'article"

#: app/templates/auth/login.html:72
#, fuzzy
msgid "Forgot your password?"
msgstr "Définissez votre mot de passe"

#: app/templates/auth/login.html:79
#, fuzzy
msgid "LDAP authentication is enabled"
msgstr "Méthode d'authentification"

#: app/templates/auth/login.html:82 app/templates/client_portal/login.html:60
#: app/templates/kiosk/login.html:153
msgid "Sign in"
msgstr "Se connecter"

#: app/templates/auth/login.html:85
msgid "Use the demo credentials above."
msgstr ""

#: app/templates/auth/login.html:87
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:96
msgid "Or continue with"
msgstr "Ou continuez avec"

#: app/templates/auth/login.html:101
msgid "Single Sign-On"
msgstr "Authentification unique"

#: app/templates/auth/profile.html:6
msgid "Edit Profile"
msgstr "Modifier le profil"

#: app/templates/auth/profile.html:53 app/templates/user/profile.html:75
msgid "Member Since"
msgstr "Membre depuis"

#: app/templates/auth/emails/password_reset.html:12
#: app/templates/auth/reset_password.html:6
#, fuzzy
msgid "Reset password"
msgstr "Définir le mot de passe"

#: app/templates/auth/reset_password.html:19
#, fuzzy
msgid "Choose a new password"
msgstr "Définir le mot de passe"

#: app/templates/auth/reset_password.html:21
#, fuzzy
msgid "Enter a new password for your account."
msgstr "Définir un mot de passe pour votre compte portail client"

#: app/templates/auth/reset_password.html:27
#, fuzzy
msgid "New password"
msgstr "Définir le mot de passe"

#: app/templates/auth/reset_password.html:30
#, fuzzy
msgid "At least 8 characters"
msgstr "Le mot de passe doit comporter au moins 8 caractères"

#: app/templates/auth/reset_password.html:32
#, fuzzy
msgid "Confirm password"
msgstr "Confirmez le mot de passe"

#: app/templates/auth/reset_password.html:35
#, fuzzy
msgid "Repeat your new password"
msgstr "Définissez votre mot de passe"

#: app/templates/auth/reset_password.html:37
#, fuzzy
msgid "Update password"
msgstr "Définir le mot de passe"

#: app/templates/auth/two_factor.html:19
#, fuzzy
msgid "Enter authentication code"
msgstr "Méthode d'authentification"

#: app/templates/auth/two_factor.html:21
msgid "Open your authenticator app and enter the 6-digit code."
msgstr ""

#: app/templates/auth/two_factor.html:27
#: app/templates/inventory/suppliers/list.html:41
#: app/templates/inventory/suppliers/list.html:53
#: app/templates/inventory/suppliers/view.html:26
#: app/templates/inventory/warehouses/list.html:22
#: app/templates/inventory/warehouses/list.html:33
#: app/templates/inventory/warehouses/view.html:26
#: app/templates/workforce/dashboard.html:255
msgid "Code"
msgstr "Code"

#: app/templates/auth/two_factor.html:32
msgid "Verify"
msgstr ""

#: app/templates/auth/two_factor_setup.html:10
msgid "Add an extra layer of security to your account using a TOTP authenticator app (Google Authenticator, Authy, 1Password, etc.)."
msgstr ""

#: app/templates/auth/two_factor_setup.html:18
#, fuzzy
msgid "Two-factor authentication is enabled for your account."
msgstr "L'accès au portail client n'est pas activé pour votre compte."

#: app/templates/auth/two_factor_setup.html:26
msgid "Enter a current code to disable"
msgstr ""

#: app/templates/auth/two_factor_setup.html:29
#, fuzzy
msgid "Disable 2FA"
msgstr "Désactivé"

#: app/templates/auth/two_factor_setup.html:34
msgid "Two-factor authentication is currently disabled."
msgstr ""

#: app/templates/auth/two_factor_setup.html:40
msgid "A secret will be generated when you enable 2FA."
msgstr ""

#: app/templates/auth/two_factor_setup.html:44
msgid "1) Add to your authenticator app"
msgstr ""

#: app/templates/auth/two_factor_setup.html:46
msgid "If you cannot scan a QR code, you can manually enter this secret:"
msgstr ""

#: app/templates/auth/two_factor_setup.html:52
msgid "Provisioning URI:"
msgstr ""

#: app/templates/auth/two_factor_setup.html:63
msgid "2) Verify and enable"
msgstr ""

#: app/templates/auth/two_factor_setup.html:64
#, fuzzy
msgid "Enter the 6-digit code"
msgstr "Code généré"

#: app/templates/auth/two_factor_setup.html:67
#, fuzzy
msgid "Enable 2FA"
msgstr "Activé"

#: app/templates/auth/emails/password_reset.html:9
msgid "A password reset was requested for your TimeTracker account."
msgstr ""

#: app/templates/auth/emails/password_reset.html:16
msgid "If the button does not work, copy and paste this link into your browser:"
msgstr ""

#: app/templates/auth/emails/password_reset.html:20
msgid "If you did not request this, you can ignore this email."
msgstr ""

#: 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:117
#: app/templates/projects/_projects_list.html:109
#: app/templates/projects/dashboard.html:130
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/list.html:190
msgid "Budget"
msgstr "Budget"

#: app/templates/budget/dashboard.html:118
#: app/templates/budget/project_detail.html:39
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/view.html:264
msgid "Consumed"
msgstr "Consommé"

#: app/templates/budget/dashboard.html:119
#: app/templates/budget/project_detail.html:48
#: app/templates/main/dashboard.html:437
#: app/templates/projects/dashboard.html:134
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/view.html:268
#: app/templates/workforce/dashboard.html:123
msgid "Remaining"
msgstr "Restant"

#: app/templates/budget/dashboard.html:120 app/templates/projects/view.html:433
#: app/templates/projects/view.html:473 app/templates/tasks/_kanban.html:112
#: app/templates/tasks/_kanban.html:1281
#: app/templates/tasks/_tasks_list.html:93 app/templates/tasks/edit.html:159
#: app/templates/tasks/my_tasks.html:312 app/templates/tasks/overdue.html:62
#: app/templates/weekly_goals/index.html:95
#: app/templates/weekly_goals/index.html:205
#: app/templates/weekly_goals/view.html:82
msgid "Progress"
msgstr "Progrès"

#: app/templates/budget/dashboard.html:137 app/templates/projects/view.html:271
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:268
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:283 app/utils/i18n_helpers.py:275
#: app/utils/i18n_helpers.py:281
msgid "Critical"
msgstr "Critique"

#: app/templates/budget/dashboard.html:165
#: app/templates/budget/project_detail.html:68
#: app/templates/projects/view.html:291
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:409
msgid "Alert acknowledged successfully"
msgstr "Alerte reconnue avec succès"

#: app/templates/budget/dashboard.html:242
#: app/templates/budget/project_detail.html:414
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/_projects_list.html:146
#: app/templates/projects/list.html:228 app/templates/quotes/view.html:182
msgid "View Project"
msgstr "Voir le projet"

#: app/templates/budget/project_detail.html:30
#: app/templates/projects/view.html:260
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:73
#: app/templates/main/help.html:205
#: app/templates/project_templates/create_project.html:36
#: app/templates/project_templates/view.html:44
#: app/templates/projects/create.html:71 app/templates/projects/edit.html:65
#: 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:314
#: app/templates/budget/project_detail.html:344
#: 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
#: app/templates/clients/view.html:586
#: app/templates/components/support_modal.html:29
#: app/templates/projects/time_entries_overview.html:23
#: app/templates/timer/time_entries_overview.html:25
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:77
#: app/templates/calendar/event_form.html:94
#: app/templates/inventory/stock_items/view.html:133
#: app/templates/inventory/stock_items/view.html:152
#: app/templates/inventory/stock_levels/item.html:27
#: app/templates/inventory/stock_levels/item.html:44
#: app/templates/inventory/stock_levels/list.html:52
#: app/templates/inventory/stock_levels/list.html:72
#: app/templates/inventory/warehouses/view.html:89
#: app/templates/inventory/warehouses/view.html:109
msgid "Location"
msgstr "Emplacement"

#: 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
#: app/templates/timer/calendar.html:43
msgid "Recurring"
msgstr "Récurrent"

#: app/templates/calendar/event_detail.html:159
msgid "Until"
msgstr "Jusqu'à"

#: app/templates/calendar/event_detail.html:173
#: app/templates/client_portal/issue_detail.html:89
#: app/templates/issues/view.html:171
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:49 app/templates/timer/calendar.html:40
msgid "New Event"
msgstr "Nouvel événement"

#: app/templates/calendar/event_form.html:19
#: app/templates/client_portal/new_issue.html:26
#: app/templates/client_portal/quote_detail.html:34
#: app/templates/client_portal/quotes.html:26
#: app/templates/client_portal/quotes.html:42
#: app/templates/contacts/form.html:52 app/templates/contacts/list.html:28
#: app/templates/contacts/list.html:46 app/templates/contacts/view.html:48
#: app/templates/expenses/dashboard.html:190
#: app/templates/expenses/list.html:297 app/templates/invoices/edit.html:160
#: app/templates/issues/edit.html:24 app/templates/issues/list.html:93
#: app/templates/issues/list.html:106 app/templates/issues/new.html:24
#: app/templates/leads/form.html:50 app/templates/leads/view.html:61
#: app/templates/quotes/_edit_quote_form_scripts.html:198
#: app/templates/quotes/_quotes_list.html:34
#: app/templates/quotes/_quotes_list.html:51
#: app/templates/quotes/accept.html:18 app/templates/quotes/create.html:36
#: app/templates/quotes/create.html:94 app/templates/quotes/edit.html:32
#: app/templates/quotes/edit.html:142 app/templates/quotes/edit.html:157
#: app/templates/timer/calendar.html:850
#: app/utils/pdf_generator_fallback.py:552
msgid "Title"
msgstr "Titre"

#: app/templates/calendar/event_form.html:40 app/templates/gantt/view.html:37
#: app/templates/import_export/index.html:225
#: app/templates/import_export/index.html:263
#: app/templates/projects/time_entries_overview.html:31
#: app/templates/reports/builder.html:86
#: app/templates/reports/time_entries_report.html:12
#: app/templates/timer/bulk_entry.html:137
#: app/templates/timer/calendar.html:166
#: app/templates/timer/edit_timer.html:260
#: app/templates/timer/manual_entry.html:97
#: app/templates/timer/time_entries_overview.html:79
msgid "Start Date"
msgstr "Date de début"

#: app/templates/calendar/event_form.html:50
#: app/templates/reports/user_report.html:86
#: app/templates/timer/bulk_entry.html:170
#: app/templates/timer/calendar.html:170
#: app/templates/timer/edit_timer.html:268
#: app/templates/timer/manual_entry.html:107
#: app/templates/timer/view_timer.html:28
msgid "Start Time"
msgstr "Heure de début"

#: app/templates/calendar/event_form.html:61 app/templates/gantt/view.html:41
#: app/templates/import_export/index.html:230
#: app/templates/import_export/index.html:268
#: app/templates/projects/time_entries_overview.html:35
#: app/templates/recurring_tasks/form.html:79
#: app/templates/reports/builder.html:90
#: app/templates/reports/time_entries_report.html:18
#: app/templates/timer/bulk_entry.html:141
#: app/templates/timer/calendar.html:177
#: app/templates/timer/edit_timer.html:280
#: app/templates/timer/manual_entry.html:101
#: app/templates/timer/time_entries_overview.html:83
msgid "End Date"
msgstr "Date de fin"

#: app/templates/calendar/event_form.html:71
#: app/templates/reports/user_report.html:87
#: app/templates/timer/bulk_entry.html:179
#: app/templates/timer/calendar.html:181
#: app/templates/timer/edit_timer.html:288
#: app/templates/timer/manual_entry.html:111
#: app/templates/timer/view_timer.html:34
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
#: app/templates/deals/activity_form.html:30
#: app/templates/leads/activity_form.html:30
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/integrations.html:4
msgid "Calendar Integrations"
msgstr ""

#: app/templates/calendar/integrations.html:56
msgid "Last synced"
msgstr ""

#: app/templates/calendar/integrations.html:71
msgid "Manage Integration"
msgstr ""

#: app/templates/calendar/integrations.html:78
msgid "Are you sure you want to disconnect this integration?"
msgstr ""

#: app/templates/calendar/integrations.html:78
msgid "Disconnect"
msgstr ""

#: app/templates/calendar/integrations.html:91
msgid "No Calendar Integrations"
msgstr ""

#: app/templates/calendar/integrations.html:92
msgid "Connect your calendar to automatically sync time entries and events."
msgstr ""

#: app/templates/calendar/integrations.html:93
#: app/templates/integrations/manage.html:714
msgid "Connect Google Calendar"
msgstr ""

#: app/templates/calendar/integrations.html:99
msgid "How Calendar Integration Works"
msgstr ""

#: app/templates/calendar/integrations.html:101
msgid "Time entries are automatically synced to your calendar"
msgstr ""

#: app/templates/calendar/integrations.html:102
msgid "Calendar events can be converted to time entries"
msgstr ""

#: app/templates/calendar/integrations.html:103
msgid "Bidirectional sync keeps everything in sync"
msgstr ""

#: 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:31 app/templates/timer/calendar.html:32
#: app/templates/user/settings.html:475
msgid "Day"
msgstr "Jour"

#: app/templates/calendar/view.html:36
#: app/templates/reports/week_in_review.html:21
#: app/templates/timer/calendar.html:33 app/templates/user/settings.html:476
#: app/templates/weekly_goals/index.html:79
msgid "Week"
msgstr "Semaine"

#: app/templates/calendar/view.html:41 app/templates/timer/calendar.html:34
#: app/templates/user/settings.html:477
msgid "Month"
msgstr "Mois"

#: app/templates/calendar/view.html:62 app/templates/reports/index.html:76
#: app/templates/timer/calendar.html:29
msgid "Today"
msgstr "Aujourd'hui"

#: app/templates/calendar/view.html:90
msgid "Calendar colors"
msgstr ""

#: app/templates/calendar/view.html:106
msgid "Legend"
msgstr ""

#: app/templates/calendar/view.html:123
msgid "Loading calendar..."
msgstr "Chargement du calendrier..."

#: app/templates/calendar/view.html:133 app/templates/timer/calendar.html:807
msgid "Event Details"
msgstr "Détails de l'événement"

#: app/templates/calendar/view.html:136 app/templates/timer/calendar.html:220
#: app/templates/timer/calendar.html:818
msgid "Go to all details"
msgstr ""

#: app/templates/chat/channel.html:4 app/templates/chat/channel.html:8
#: app/templates/chat/index.html:4 app/templates/chat/index.html:8
#: app/templates/chat/index.html:13
msgid "Team Chat"
msgstr ""

#: app/templates/chat/channel.html:15
msgid "Team chat channel"
msgstr ""

#: app/templates/chat/channel.html:56
#: app/templates/components/persistent_chat_widget.html:107
msgid "Type a message..."
msgstr ""

#: app/templates/chat/channel.html:75
msgid "Channel Info"
msgstr ""

#: app/templates/chat/channel.html:84
msgid "Members"
msgstr ""

#: app/templates/chat/channel.html:126
msgid "Channel Settings"
msgstr ""

#: app/templates/chat/channel.html:252
msgid "Upload Attachment"
msgstr ""

#: app/templates/chat/channel.html:259
msgid "Select File"
msgstr ""

#: app/templates/chat/channel.html:261
msgid "Maximum file size: 10 MB"
msgstr ""

#: app/templates/chat/channel.html:264
msgid "Selected:"
msgstr ""

#: app/templates/chat/channel.html:271 app/templates/clients/view.html:208
#: app/templates/clients/view.html:235 app/templates/comments/_comment.html:117
#: app/templates/projects/view.html:335 app/templates/projects/view.html:362
msgid "Upload"
msgstr ""

#: app/templates/chat/channel.html:303
msgid "Please select a file"
msgstr ""

#: app/templates/chat/channel.html:309
msgid "File size exceeds 10 MB limit"
msgstr ""

#: app/templates/chat/channel.html:348 app/templates/chat/channel.html:355
msgid "Failed to upload attachment"
msgstr ""

#: app/templates/chat/index.html:14
msgid "Communicate with your team"
msgstr ""

#: app/templates/chat/index.html:22
#: app/templates/components/persistent_chat_widget.html:53
msgid "Channels"
msgstr ""

#: app/templates/chat/index.html:48
#: app/templates/components/persistent_chat_widget.html:58
msgid "Direct Messages"
msgstr ""

#: app/templates/chat/index.html:89
#: app/templates/components/persistent_chat_widget.html:71
msgid "Select a channel to start chatting"
msgstr ""

#: app/templates/chat/index.html:100
msgid "Create Channel"
msgstr ""

#: app/templates/chat/index.html:107
msgid "Channel Name"
msgstr ""

#: app/templates/chat/index.html:117
msgid "Private channel"
msgstr ""

#: 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:8
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:58
msgid "Last edited on"
msgstr "Dernière modification le"

#: app/templates/client_notes/edit.html:54 app/templates/clients/view.html:435
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:453
msgid "Mark as important"
msgstr "Marquer comme important"

#: app/templates/client_portal/activity_feed.html:4
#: app/templates/client_portal/activity_feed.html:9
#: app/templates/client_portal/activity_feed.html:14
msgid "Activity Feed"
msgstr ""

#: app/templates/client_portal/activity_feed.html:4
#: app/templates/client_portal/activity_feed.html:8
#: app/templates/client_portal/approvals.html:4
#: app/templates/client_portal/approvals.html:8
#: app/templates/client_portal/base.html:6
#: app/templates/client_portal/base.html:13
#: app/templates/client_portal/base.html:20
#: app/templates/client_portal/base.html:240
#: app/templates/client_portal/base.html:324
#: 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/documents.html:4
#: app/templates/client_portal/documents.html:8
#: app/templates/client_portal/error.html:4
#: 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/issue_detail.html:4
#: app/templates/client_portal/issue_detail.html:8
#: app/templates/client_portal/issues.html:4
#: app/templates/client_portal/issues.html:8
#: app/templates/client_portal/login.html:31
#: app/templates/client_portal/login.html:38
#: app/templates/client_portal/new_issue.html:4
#: app/templates/client_portal/new_issue.html:8
#: app/templates/client_portal/notifications.html:4
#: app/templates/client_portal/notifications.html:8
#: app/templates/client_portal/project_comments.html:4
#: app/templates/client_portal/project_comments.html:8
#: 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/reports.html:4
#: app/templates/client_portal/reports.html:8
#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:29
#: 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/activity_feed.html:15
msgid "Recent project activities"
msgstr ""

#: app/templates/client_portal/activity_feed.html:69
#, fuzzy
msgid "View details"
msgstr "Afficher les détails"

#: app/templates/client_portal/activity_feed.html:83
msgid "No Activity"
msgstr ""

#: app/templates/client_portal/activity_feed.html:85
msgid "No recent activity to display. Activity will appear here as projects are updated and time entries are logged."
msgstr ""

#: app/templates/client_portal/approvals.html:9
#: app/templates/client_portal/base.html:266
#: app/templates/client_portal/base.html:351
msgid "Approvals"
msgstr ""

#: app/templates/client_portal/approvals.html:30
#: app/templates/contacts/communication_form.html:60
#: app/templates/deals/activity_form.html:37
#: app/templates/integrations/view.html:57
#: app/templates/integrations/view.html:88
#: app/templates/leads/activity_form.html:37 app/utils/i18n_helpers.py:142
#: app/utils/i18n_helpers.py:153 app/utils/i18n_helpers.py:220
#: app/utils/i18n_helpers.py:232
msgid "Pending"
msgstr "En attente"

#: app/templates/client_portal/approvals.html:43 app/utils/i18n_helpers.py:143
#: app/utils/i18n_helpers.py:154
msgid "Approved"
msgstr "Approuvé"

#: app/templates/client_portal/approvals.html:53
#: app/templates/quotes/_quotes_list.html:68 app/templates/quotes/list.html:84
#: app/templates/quotes/view.html:77 app/utils/i18n_helpers.py:144
#: app/utils/i18n_helpers.py:155
msgid "Rejected"
msgstr "Rejeté"

#: app/templates/client_portal/approvals.html:63
#: app/templates/client_portal/invoices.html:30
#: app/templates/client_portal/issues.html:23
#: app/templates/client_portal/notifications.html:31
#: app/templates/components/multi_select.html:82
#: app/templates/components/multi_select.html:206
#: app/templates/inventory/movements/list.html:37
#: app/templates/inventory/purchase_orders/list.html:23
#: app/templates/inventory/reservations/list.html:22
#: app/templates/inventory/suppliers/list.html:28
#: app/templates/issues/list.html:38 app/templates/issues/list.html:49
#: app/templates/issues/list.html:63 app/templates/issues/list.html:72
#: app/templates/quotes/list.html:80
#: app/templates/reports/time_entries_report.html:71
#: app/templates/timer/time_entries_overview.html:104
#: app/templates/timer/time_entries_overview.html:112
msgid "All"
msgstr "Tous"

#: app/templates/client_portal/approvals.html:90
msgid "Requested on"
msgstr ""

#: app/templates/client_portal/approvals.html:160
msgid "Request Comment"
msgstr ""

#: app/templates/client_portal/approvals.html:172
#: app/templates/client_portal/notifications.html:108
#: app/templates/integrations/manage.html:634
#: app/templates/tasks/my_tasks.html:330
#: app/templates/weekly_goals/index.html:122
msgid "View Details"
msgstr "Afficher les détails"

#: app/templates/client_portal/approvals.html:186
msgid "No Approvals"
msgstr ""

#: app/templates/client_portal/approvals.html:189
msgid "You have no pending time entry approvals. All caught up!"
msgstr ""

#: app/templates/client_portal/approvals.html:191
msgid "No approvals found for this status."
msgstr ""

#: app/templates/client_portal/base.html:277
#: app/templates/client_portal/base.html:362
#: app/templates/client_portal/notifications.html:4
#: app/templates/client_portal/notifications.html:9
#: app/templates/client_portal/notifications.html:14
msgid "Notifications"
msgstr ""

#: app/templates/client_portal/base.html:284
#: app/templates/partials/_bottom_nav.html:17
#: app/templates/partials/_bottom_nav.html:84
#: app/templates/partials/_bottom_nav.html:88
#: app/templates/projects/view.html:49
msgid "More"
msgstr ""

#: app/templates/client_portal/base.html:290
#: app/templates/client_portal/base.html:369
#: app/templates/client_portal/documents.html:4
#: app/templates/client_portal/documents.html:9
#: app/templates/client_portal/documents.html:14
msgid "Documents"
msgstr ""

#: app/templates/client_portal/base.html:296
#: app/templates/client_portal/base.html:375 app/templates/deals/view.html:143
#: app/templates/leads/view.html:136
msgid "Activity"
msgstr ""

#: app/templates/client_portal/base.html:307
msgid "Toggle menu"
msgstr ""

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "Approval update"
msgstr "Statut d'approbation"

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "A time entry approval was requested."
msgstr "Approbation demandée"

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "An approval was updated."
msgstr "Aucun projet n'a été mis à jour"

#: 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:21
#: app/templates/client_portal/dashboard.html:67
#, fuzzy
msgid "Customize dashboard"
msgstr "Personnaliser les raccourcis"

#: app/templates/client_portal/dashboard.html:68
msgid "Choose which widgets to show and their order."
msgstr ""

#: app/templates/client_portal/dashboard.html:74
#, fuzzy
msgid "Statistics cards"
msgstr "Statistiques"

#: app/templates/client_portal/dashboard.html:75
#, fuzzy
msgid "Pending actions"
msgstr "Sections d'administration"

#: app/templates/client_portal/dashboard.html:77
#, fuzzy
msgid "Recent invoices"
msgstr "Factures récentes"

#: app/templates/client_portal/dashboard.html:78
#, fuzzy
msgid "Recent time entries"
msgstr "Entrées de temps récentes"

#: app/templates/client_portal/dashboard.html:127
#, fuzzy
msgid "Select at least one widget."
msgstr "Sélectionnez un client..."

#: app/templates/client_portal/dashboard.html:147
#, fuzzy
msgid "Failed to save."
msgstr "Échec de l'arrêt du chronomètre"

#: app/templates/client_portal/documents.html:15
msgid "View and download project documents"
msgstr ""

#: app/templates/client_portal/documents.html:41
msgid "Client Document"
msgstr ""

#: app/templates/client_portal/documents.html:67
msgid "Download"
msgstr ""

#: app/templates/client_portal/documents.html:80
msgid "No Documents"
msgstr ""

#: app/templates/client_portal/documents.html:82
msgid "No documents have been shared with you yet. Documents will appear here once they are uploaded and made visible to clients."
msgstr ""

#: app/templates/client_portal/error.html:18
msgid "An error occurred"
msgstr ""

#: app/templates/client_portal/error.html:47 app/templates/errors/400.html:23
#: app/templates/errors/403.html:24 app/templates/errors/404.html:21
#: app/templates/errors/500.html:24 app/templates/errors/generic.html:24
#: app/templates/errors/generic.html:42 app/templates/main/help.html:538
msgid "Go to Dashboard"
msgstr "Aller au tableau de bord"

#: app/templates/client_portal/error.html:52
msgid "Login to Client Portal"
msgstr ""

#: app/templates/client_portal/error.html:59 app/templates/errors/400.html:26
#: app/templates/errors/404.html:24 app/templates/errors/generic.html:28
#: app/templates/errors/generic.html:45
msgid "Go Back"
msgstr "Retourner"

#: app/templates/client_portal/error.html:69
msgid "If you believe you should have access to the client portal, please contact your administrator or use the login link above."
msgstr ""

#: 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:72
#: app/templates/invoices/edit.html:305
#: app/templates/invoices/pdf_default.html:57
#: app/templates/recurring_invoices/view.html:108
#: app/utils/pdf_generator.py:1127
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:237
msgid "Invoice Items"
msgstr "Postes de facture"

#: app/templates/client_portal/invoice_detail.html:58
#: app/templates/client_portal/invoice_detail.html:67
#: app/templates/client_portal/quote_detail.html:70
#: app/templates/client_portal/quote_detail.html:88
#: app/templates/inventory/adjustments/list.html:59
#: app/templates/inventory/adjustments/list.html:78
#: app/templates/inventory/movements/form.html:62
#: app/templates/inventory/movements/list.html:58
#: app/templates/inventory/movements/list.html:102
#: app/templates/inventory/reports/movement_history.html:74
#: app/templates/inventory/reports/movement_history.html:118
#: app/templates/inventory/reports/valuation.html:61
#: app/templates/inventory/reports/valuation.html:81
#: app/templates/inventory/reservations/list.html:41
#: app/templates/inventory/reservations/list.html:63
#: app/templates/inventory/stock_items/history.html:65
#: app/templates/inventory/stock_items/history.html:104
#: app/templates/inventory/stock_items/view.html:178
#: app/templates/inventory/stock_items/view.html:189
#: app/templates/inventory/stock_items/view.html:242
#: app/templates/inventory/stock_items/view.html:256
#: app/templates/inventory/transfers/form.html:50
#: app/templates/inventory/transfers/list.html:42
#: app/templates/inventory/transfers/list.html:69
#: app/templates/inventory/warehouses/view.html:132
#: app/templates/inventory/warehouses/view.html:150
#: app/templates/invoices/edit.html:75 app/templates/invoices/edit.html:118
#: app/templates/invoices/edit.html:120 app/templates/invoices/edit.html:541
#: app/templates/kiosk/dashboard.html:172
#: app/templates/kiosk/dashboard.html:263
#: app/templates/projects/add_good.html:45
#: app/templates/projects/edit_good.html:45
#: app/templates/projects/goods.html:41 app/templates/projects/goods.html:63
#: app/templates/quotes/pdf_default.html:96 app/templates/quotes/view.html:103
#: app/utils/pdf_generator_fallback.py:575
msgid "Quantity"
msgstr "Quantité"

#: app/templates/client_portal/invoice_detail.html:59
#: app/templates/client_portal/invoice_detail.html:68
#: app/templates/client_portal/quote_detail.html:71
#: app/templates/client_portal/quote_detail.html:89
#: app/templates/invoices/edit.html:76 app/templates/invoices/edit.html:124
#: app/templates/invoices/edit.html:544
#: app/templates/invoices/pdf_default.html:90
#: app/templates/projects/add_good.html:50
#: app/templates/projects/edit_good.html:50
#: app/templates/projects/goods.html:42 app/templates/projects/goods.html:64
#: app/templates/quotes/pdf_default.html:97 app/templates/quotes/view.html:104
#: app/utils/pdf_generator.py:1156 app/utils/pdf_generator_fallback.py:240
#: app/utils/pdf_generator_fallback.py:575
msgid "Unit Price"
msgstr "Prix ​​unitaire"

#: app/templates/client_portal/invoice_detail.html:111
#: app/templates/payment_gateways/pay.html:3
#: app/templates/payment_gateways/pay.html:8
msgid "Pay Invoice"
msgstr ""

#: app/templates/client_portal/invoice_detail.html:115
#: app/templates/invoices/create.html:6
msgid "Back to Invoices"
msgstr "Retour aux factures"

#: 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:50
#: app/templates/invoices/_invoices_list.html:79
#: app/templates/timer/_time_entries_list.html:168
#: app/templates/timer/time_entries_overview.html:106
#: app/templates/timer/time_entries_overview.html:199
#: app/templates/timer/view_timer.html:144 app/utils/i18n_helpers.py:88
#: app/utils/i18n_helpers.py:99
msgid "Unpaid"
msgstr "Non rémunéré"

#: app/templates/client_portal/invoices.html:60
#: app/templates/invoices/list.html:132 app/templates/tasks/_kanban.html:103
#: app/templates/tasks/overdue.html:35 app/utils/i18n_helpers.py:67
#: app/utils/i18n_helpers.py:79
msgid "Overdue"
msgstr "En retard"

#: app/templates/client_portal/invoices.html:74
#: app/templates/client_portal/quotes.html:29
#: app/templates/client_portal/quotes.html:54
#: app/templates/expenses/dashboard.html:200
#: app/templates/expenses/list.html:310 app/templates/invoices/edit.html:163
#: app/templates/invoices/edit.html:193 app/templates/payments/list.html:147
#: app/templates/projects/add_cost.html:58
#: app/templates/projects/dashboard.html:375
#: app/templates/projects/edit_cost.html:65
#: app/templates/quotes/_quotes_list.html:36
#: app/templates/quotes/_quotes_list.html:53
#: app/templates/quotes/create.html:97 app/templates/quotes/edit.html:145
#: app/templates/recurring_invoices/view.html:109
msgid "Amount"
msgstr "Montant"

#: app/templates/client_portal/invoices.html:103
msgid "days overdue"
msgstr "jours de retard"

#: app/templates/client_portal/invoices.html:153
#: app/templates/client_portal/widgets/invoices.html:45
msgid "No invoices found"
msgstr ""

#: app/templates/client_portal/invoices.html:155
msgid "No paid invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:157
msgid "No unpaid invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:159
msgid "No overdue invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:164
msgid "There are no invoices available at this time. Invoices will appear here once they are created."
msgstr ""

#: app/templates/client_portal/invoices.html:166
msgid "There are no invoices matching this filter. Try selecting a different status."
msgstr ""

#: app/templates/client_portal/invoices.html:173
msgid "View All Invoices"
msgstr ""

#: app/templates/client_portal/issue_detail.html:16
#: app/templates/issues/view.html:8
#, python-format
msgid "Issue #%(id)s"
msgstr ""

#: app/templates/client_portal/issue_detail.html:29
msgid "No description provided."
msgstr ""

#: app/templates/client_portal/issue_detail.html:51
#: app/templates/client_portal/new_issue.html:52
#: app/templates/issues/edit.html:48 app/templates/issues/list.html:47
#: app/templates/issues/list.html:97 app/templates/issues/list.html:123
#: app/templates/issues/new.html:42 app/templates/issues/view.html:111
#: app/templates/project_templates/create.html:79
#: app/templates/project_templates/edit.html:82
#: app/templates/project_templates/edit.html:108
#: app/templates/projects/view.html:429 app/templates/projects/view.html:441
#: app/templates/recurring_tasks/form.html:91
#: app/templates/tasks/_kanban.html:1235
#: app/templates/tasks/_tasks_list.html:60 app/templates/tasks/create.html:59
#: app/templates/tasks/edit.html:69 app/templates/tasks/my_tasks.html:139
msgid "Priority"
msgstr "Priorité"

#: app/templates/client_portal/issue_detail.html:70
#: app/templates/issues/view.html:41
msgid "Linked Task"
msgstr ""

#: app/templates/client_portal/issue_detail.html:77
#: app/templates/issues/edit.html:70 app/templates/issues/list.html:70
#: app/templates/issues/list.html:98 app/templates/issues/list.html:132
#: app/templates/issues/new.html:64 app/templates/issues/view.html:138
#: app/templates/tasks/_kanban.html:1263
msgid "Assigned To"
msgstr "Attribué à"

#: app/templates/client_portal/issue_detail.html:96
#: app/templates/client_portal/issues.html:35 app/templates/issues/edit.html:41
#: app/templates/issues/list.html:41 app/templates/issues/view.html:102
#: app/templates/issues/view.html:178
msgid "Resolved"
msgstr ""

#: app/templates/client_portal/issue_detail.html:107
#: app/templates/issues/view.html:189
msgid "Back to Issues"
msgstr ""

#: app/templates/client_portal/issues.html:14
msgid "Issue Reports"
msgstr ""

#: app/templates/client_portal/issues.html:15
#, python-format
msgid "Report and track issues for %(client_name)s"
msgstr ""

#: app/templates/client_portal/issues.html:27 app/templates/deals/list.html:24
#: app/templates/issues/edit.html:39 app/templates/issues/list.html:39
#: app/templates/issues/view.html:100
msgid "Open"
msgstr "Ouvrir"

#: app/templates/client_portal/issues.html:39 app/templates/issues/edit.html:42
#: app/templates/issues/list.html:42 app/templates/issues/view.html:103
msgid "Closed"
msgstr ""

#: app/templates/client_portal/issues.html:43
#: app/templates/client_portal/new_issue.html:4
#: app/templates/client_portal/new_issue.html:10
#: app/templates/client_portal/new_issue.html:15
msgid "Report New Issue"
msgstr ""

#: app/templates/client_portal/issues.html:93
msgid "No issues found."
msgstr ""

#: app/templates/client_portal/login.html:6
msgid "Client Portal Login"
msgstr "Connexion au portail client"

#: app/templates/client_portal/login.html:32
msgid "View your projects and invoices"
msgstr "Consultez vos projets et factures"

#: app/templates/client_portal/login.html:40
msgid "Sign in to Client Portal"
msgstr "Connectez-vous au portail client"

#: app/templates/client_portal/login.html:41
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:51
#: app/templates/clients/edit.html:124
msgid "portal_username"
msgstr "nom_utilisateur_portail"

#: app/templates/client_portal/login.html:57
#: app/templates/client_portal/set_password.html:53
msgid "Enter your password"
msgstr "Entrez votre mot de passe"

#: app/templates/client_portal/new_issue.html:16
msgid "Report a bug or issue you've encountered"
msgstr ""

#: app/templates/client_portal/new_issue.html:29
msgid "Brief description of the issue"
msgstr ""

#: app/templates/client_portal/new_issue.html:36
msgid "Detailed description of the issue, steps to reproduce, etc."
msgstr ""

#: app/templates/client_portal/new_issue.html:44
#: app/templates/main/dashboard.html:735
#: app/templates/timer/manual_entry.html:64
#: app/templates/timer/timer_page.html:141
msgid "Select a project (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:55
#: app/templates/issues/edit.html:50 app/templates/issues/list.html:50
#: app/templates/issues/new.html:44 app/templates/issues/view.html:116
#: app/templates/project_templates/create.html:81
#: app/templates/project_templates/edit.html:84
#: app/templates/project_templates/edit.html:110
#: app/templates/recurring_tasks/form.html:93
#: app/templates/tasks/create.html:61 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:470 app/templates/tasks/edit.html:71
#: app/templates/tasks/edit.html:650 app/templates/tasks/my_tasks.html:142
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Low"
msgstr "Faible"

#: app/templates/client_portal/new_issue.html:56
#: app/templates/issues/edit.html:51 app/templates/issues/list.html:51
#: app/templates/issues/new.html:45 app/templates/issues/view.html:117
#: app/templates/project_templates/create.html:82
#: app/templates/project_templates/edit.html:85
#: app/templates/project_templates/edit.html:111
#: app/templates/recurring_tasks/form.html:94
#: app/templates/tasks/create.html:62 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:471 app/templates/tasks/edit.html:72
#: app/templates/tasks/edit.html:651 app/templates/tasks/my_tasks.html:143
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Medium"
msgstr "Moyen"

#: app/templates/client_portal/new_issue.html:57
#: app/templates/issues/edit.html:52 app/templates/issues/list.html:52
#: app/templates/issues/new.html:46 app/templates/issues/view.html:118
#: app/templates/project_templates/create.html:83
#: app/templates/project_templates/edit.html:86
#: app/templates/project_templates/edit.html:112
#: app/templates/recurring_tasks/form.html:95
#: app/templates/tasks/create.html:63 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:472 app/templates/tasks/edit.html:73
#: app/templates/tasks/edit.html:652 app/templates/tasks/my_tasks.html:144
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "High"
msgstr "Haut"

#: app/templates/client_portal/new_issue.html:58
#: app/templates/issues/edit.html:53 app/templates/issues/list.html:53
#: app/templates/issues/new.html:47 app/templates/issues/view.html:119
#: app/templates/recurring_tasks/form.html:96
#: app/templates/tasks/create.html:64 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:473 app/templates/tasks/edit.html:74
#: app/templates/tasks/edit.html:653 app/templates/tasks/my_tasks.html:145
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Urgent"
msgstr "Urgent"

#: app/templates/client_portal/new_issue.html:65
msgid "Your Name"
msgstr ""

#: app/templates/client_portal/new_issue.html:68
msgid "Your name (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:72
msgid "Your Email"
msgstr ""

#: app/templates/client_portal/new_issue.html:75
msgid "Your email (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:85
msgid "Submit Issue"
msgstr ""

#: app/templates/client_portal/notifications.html:15
msgid "Stay updated on your projects and invoices"
msgstr ""

#: app/templates/client_portal/notifications.html:41
#: app/templates/client_portal/widgets/pending_actions.html:24
msgid "Unread"
msgstr ""

#: app/templates/client_portal/notifications.html:56
msgid "Mark All as Read"
msgstr ""

#: app/templates/client_portal/notifications.html:120
msgid "Mark as read"
msgstr ""

#: app/templates/client_portal/notifications.html:140
msgid "No Notifications"
msgstr ""

#: app/templates/client_portal/notifications.html:143
msgid "You have no unread notifications. All caught up!"
msgstr ""

#: app/templates/client_portal/notifications.html:145
msgid "You have no notifications yet. Notifications will appear here when there are updates to your projects or invoices."
msgstr ""

#: app/templates/client_portal/project_comments.html:4
#: app/templates/client_portal/project_comments.html:16
msgid "Project Comments"
msgstr ""

#: app/templates/client_portal/project_comments.html:11
#: app/templates/comments/_comments_section.html:6
#: app/templates/quotes/view.html:274
msgid "Comments"
msgstr "Commentaires"

#: app/templates/client_portal/project_comments.html:22
#: app/templates/comments/_comments_section.html:12
#: app/templates/quotes/view.html:280
msgid "Add Comment"
msgstr "Ajouter un commentaire"

#: app/templates/client_portal/project_comments.html:26
#: app/templates/comments/_comments_section.html:28
#: app/templates/quotes/view.html:290
msgid "Your Comment"
msgstr "Votre commentaire"

#: app/templates/client_portal/project_comments.html:29
msgid "Enter your comment..."
msgstr ""

#: app/templates/client_portal/project_comments.html:33
#: app/templates/comments/_comments_section.html:41
#: app/templates/quotes/view.html:301
msgid "Post Comment"
msgstr "Publier un commentaire"

#: app/templates/client_portal/project_comments.html:72
msgid "No Comments"
msgstr ""

#: app/templates/client_portal/project_comments.html:73
msgid "Be the first to comment on this project."
msgstr ""

#: app/templates/client_portal/project_comments.html:81
#: app/templates/projects/create.html:11
msgid "Back to Projects"
msgstr "Retour aux projets"

#: 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/projects.html:85
msgid "View Time Entries"
msgstr ""

#: app/templates/client_portal/projects.html:99
#: app/templates/client_portal/widgets/projects.html:41
msgid "No projects found"
msgstr ""

#: app/templates/client_portal/projects.html:101
msgid "There are no projects available at this time. Projects will appear here once they are created and assigned to your account."
msgstr ""

#: 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:78
#: app/templates/quotes/view.html:57
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/client_portal/quotes.html:44
#: app/templates/quotes/create.html:168 app/templates/quotes/edit.html:267
#: app/templates/quotes/pdf_default.html:59 app/templates/quotes/view.html:413
#: app/utils/pdf_generator_fallback.py:562
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/view.html:97
msgid "Quote Items"
msgstr "Articles de devis"

#: app/templates/client_portal/quote_detail.html:86
#: app/templates/inventory/reports/low_stock.html:30
#: app/templates/inventory/reports/low_stock.html:47
#: app/templates/inventory/reports/turnover.html:45
#: app/templates/inventory/reports/turnover.html:60
#: app/templates/inventory/reports/valuation.html:59
#: app/templates/inventory/reports/valuation.html:79
#: app/templates/inventory/stock_items/form.html:23
#: app/templates/inventory/stock_items/list.html:49
#: app/templates/inventory/stock_items/list.html:62
#: app/templates/inventory/stock_items/view.html:28
#: app/templates/inventory/stock_levels/warehouse.html:46
#: app/templates/inventory/stock_levels/warehouse.html:63
#: app/templates/inventory/warehouses/view.html:85
#: app/templates/inventory/warehouses/view.html:100
#: app/templates/invoices/edit.html:237 app/templates/invoices/edit.html:266
#: app/templates/invoices/edit.html:626
#: app/templates/invoices/pdf_default.html:139
#: app/templates/quotes/_edit_quote_form_scripts.html:237
#: app/templates/quotes/create.html:130 app/templates/quotes/edit.html:204
#: app/templates/quotes/edit.html:228 app/templates/quotes/pdf_default.html:107
#: app/templates/quotes/view.html:119 app/utils/pdf_generator.py:1273
#: app/utils/pdf_generator_reportlab.py:639
msgid "SKU"
msgstr "UGS"

#: app/templates/client_portal/quote_detail.html:122
msgid "Terms & Conditions"
msgstr "Conditions générales"

#: app/templates/client_portal/quote_detail.html:135
msgid "Are you sure you want to accept this quote?"
msgstr ""

#: app/templates/client_portal/quote_detail.html:137
#: app/templates/quotes/accept.html:3 app/templates/quotes/accept.html:8
#: app/templates/quotes/view.html:248
msgid "Accept Quote"
msgstr "Accepter le devis"

#: app/templates/client_portal/quote_detail.html:144
#: app/templates/client_portal/quote_detail.html:155
#: app/templates/client_portal/quote_detail.html:172
#: app/templates/quotes/view.html:252 app/templates/quotes/view.html:254
msgid "Reject Quote"
msgstr "Rejeter le devis"

#: app/templates/client_portal/quote_detail.html:148
#: app/templates/quotes/view.html:15
msgid "Back to Quotes"
msgstr "Retour aux citations"

#: app/templates/client_portal/quote_detail.html:159
msgid "Reason (optional)"
msgstr ""

#: app/templates/client_portal/quote_detail.html:162
msgid "Please provide a reason for rejecting this quote..."
msgstr ""

#: 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/integrations/health.html:74
#: app/templates/inventory/reservations/list.html:26
#: app/templates/inventory/reservations/list.html:86
#: app/templates/inventory/reservations/list.html:94
#: app/templates/kiosk/dashboard.html:202
#: app/templates/quotes/_quotes_list.html:70 app/templates/quotes/list.html:85
#: app/templates/quotes/view.html:79 app/templates/quotes/view.html:417
msgid "Expired"
msgstr "Expiré"

#: app/templates/client_portal/quotes.html:76
msgid "No quotes found."
msgstr "Aucune citation trouvée."

#: app/templates/client_portal/reports.html:15
msgid "Project and invoice summaries"
msgstr ""

#: app/templates/client_portal/reports.html:26
#: app/templates/client_portal/widgets/stats.html:20
#: app/templates/components/support_modal.html:25
#: app/templates/main/donate.html:173
msgid "Hours tracked"
msgstr ""

#: app/templates/client_portal/reports.html:81
#, fuzzy
msgid "Project progress"
msgstr "Code du projet"

#: app/templates/client_portal/reports.html:93
#, fuzzy
msgid "Est. / Budget"
msgstr "Au-dessus du budget"

#: app/templates/client_portal/reports.html:136
msgid "No project hours data available."
msgstr ""

#: app/templates/client_portal/reports.html:149
#, fuzzy
msgid "Task summary"
msgstr "Résumé"

#: app/templates/client_portal/reports.html:153
#, fuzzy, python-format
msgid "Total tasks: %(count)s"
msgstr "Montant total"

#: app/templates/client_portal/reports.html:164
#, fuzzy
msgid "No tasks yet."
msgstr "Aucune tâche sélectionnée"

#: app/templates/client_portal/reports.html:178
#, fuzzy
msgid "Time by date (last 30 days)"
msgstr "Aucune activité au cours des 30 derniers jours."

#: app/templates/client_portal/reports.html:211
msgid "Recent Time Entries (Last 30 Days)"
msgstr ""

#: app/templates/client_portal/reports.html:263
msgid "No recent time entries."
msgstr ""

#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:63
msgid "Set Password"
msgstr "Définir le mot de passe"

#: app/templates/client_portal/set_password.html:30
msgid "Set your password to get started"
msgstr "Définissez votre mot de passe pour commencer"

#: app/templates/client_portal/set_password.html:34
#: 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:36
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:57
msgid "Confirm Password"
msgstr "Confirmez le mot de passe"

#: app/templates/client_portal/set_password.html:60
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:27
#: app/templates/gantt/view.html:30 app/templates/reports/builder.html:96
#: app/templates/reports/time_entries_report.html:38
#: app/templates/tasks/my_tasks.html:151 app/templates/timer/calendar.html:62
#: app/templates/timer/time_entries_overview.html:91
msgid "All Projects"
msgstr "Tous les projets"

#: app/templates/client_portal/time_entries.html:35
msgid "From Date"
msgstr "À partir de la date"

#: app/templates/client_portal/time_entries.html:42
msgid "To Date"
msgstr "À ce jour"

#: app/templates/client_portal/time_entries.html:148
msgid "Total entries"
msgstr "Total des entrées"

#: app/templates/client_portal/time_entries.html:154
#: app/templates/clients/view.html:409 app/templates/clients/view.html:588
#: app/templates/reports/week_in_review.html:26
#: app/templates/timer/bulk_entry.html:337
msgid "Total hours"
msgstr "Heures totales"

#: app/templates/client_portal/time_entries.html:170
msgid "No time entries match your current filters. Try adjusting your filter criteria."
msgstr ""

#: app/templates/client_portal/time_entries.html:172
msgid "There are no time entries available at this time. Time entries will appear here once they are logged for your projects."
msgstr ""

#: app/templates/client_portal/time_entries.html:179
#: app/templates/timer/time_entries_overview.html:37
#: app/templates/timer/time_entries_overview.html:38
msgid "Clear Filters"
msgstr ""

#: app/templates/client_portal/widgets/invoices.html:8
msgid "Recent Invoices"
msgstr "Factures récentes"

#: app/templates/client_portal/widgets/invoices.html:11
#: app/templates/client_portal/widgets/pending_actions.html:29
#: app/templates/client_portal/widgets/projects.html:11
#: app/templates/client_portal/widgets/time_entries.html:11
msgid "View All"
msgstr "Tout afficher"

#: app/templates/client_portal/widgets/invoices.html:46
msgid "Invoices will appear here once they are created"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:8
msgid "Action Required"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:10
msgid "Time entries awaiting your review"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:14
msgid "Review Now"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:23
msgid "New Updates"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:25
msgid "Notifications waiting for you"
msgstr ""

#: app/templates/client_portal/widgets/projects.html:42
msgid "Projects will appear here once they are created"
msgstr ""

#: app/templates/client_portal/widgets/stats.html:8
msgid "Total active"
msgstr ""

#: app/templates/client_portal/widgets/stats.html:30
msgid "Total Invoices"
msgstr "Total des factures"

#: app/templates/client_portal/widgets/stats.html:32
msgid "All invoices"
msgstr ""

#: app/templates/client_portal/widgets/time_entries.html:8
#: app/templates/user/profile.html:89
msgid "Recent Time Entries"
msgstr "Entrées de temps récentes"

#: app/templates/client_portal/widgets/time_entries.html:69
msgid "Time entries will appear here once they are logged"
msgstr ""

#: app/templates/clients/_clients_list.html:7
#: app/templates/expenses/list.html:171 app/templates/expenses/list.html:250
#: app/templates/projects/_projects_list.html:18
#: app/templates/projects/list.html:99
#: app/templates/reports/export_form.html:196
#: app/templates/reports/export_form.html:329
#: app/templates/reports/time_entries_report.html:93
#: app/templates/tasks/_tasks_list.html:7
msgid "Export to CSV"
msgstr "Exporter au format CSV"

#: app/templates/clients/create.html:4 app/templates/clients/create.html:10
#: app/templates/clients/create.html:109 app/templates/projects/create.html:266
#: app/templates/projects/create.html:308
msgid "Create Client"
msgstr "Créer un client"

#: app/templates/clients/create.html:8
msgid "Back to Clients"
msgstr "Retour aux Clients"

#: app/templates/clients/create.html:10
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:21 app/templates/clients/edit.html:21
#: app/templates/projects/create.html:275
msgid "Enter client name"
msgstr "Entrez le nom du client"

#: app/templates/clients/create.html:24 app/templates/clients/create.html:124
#: app/templates/clients/edit.html:24
#: app/templates/project_templates/create.html:52
#: app/templates/project_templates/edit.html:52
#: app/templates/projects/create.html:278
msgid "Default Hourly Rate"
msgstr "Taux horaire par défaut"

#: app/templates/clients/create.html:25 app/templates/clients/edit.html:25
#: app/templates/projects/create.html:72 app/templates/projects/create.html:279
msgid "e.g. 75.00"
msgstr "par ex. 75.00"

#: app/templates/clients/create.html:26 app/templates/clients/edit.html:26
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:33 app/templates/projects/create.html:53
#: app/templates/projects/edit.html:49 app/templates/tasks/create.html:35
msgid "Supports Markdown"
msgstr "Prend en charge la démarque"

#: app/templates/clients/create.html:36 app/templates/clients/edit.html:32
#: app/templates/projects/create.html:284
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:43 app/templates/clients/edit.html:50
#: app/templates/inventory/suppliers/form.html:36
#: app/templates/inventory/suppliers/list.html:43
#: app/templates/inventory/suppliers/list.html:59
#: 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/list.html:39
#: app/templates/inventory/warehouses/view.html:47
#: app/templates/main/help.html:243 app/templates/projects/create.html:288
msgid "Contact Person"
msgstr "Personne de contact"

#: app/templates/clients/create.html:44 app/templates/clients/edit.html:51
#: app/templates/projects/create.html:289
msgid "Primary contact name"
msgstr "Nom du contact principal"

#: app/templates/clients/create.html:48 app/templates/clients/edit.html:55
#: app/templates/projects/create.html:293
msgid "contact@client.com"
msgstr "contact@client.com"

#: app/templates/clients/create.html:54 app/templates/clients/edit.html:37
msgid "Monthly Prepaid Hours"
msgstr "Heures mensuelles prépayées"

#: app/templates/clients/create.html:55 app/templates/clients/edit.html:38
msgid "e.g. 50"
msgstr "par ex. 50"

#: app/templates/clients/create.html:56 app/templates/clients/edit.html:39
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:59 app/templates/clients/edit.html:42
msgid "Prepaid Reset Day"
msgstr "Jour de réinitialisation prépayé"

#: app/templates/clients/create.html:61 app/templates/clients/edit.html:44
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:68 app/templates/clients/edit.html:62
msgid "+1 (555) 123-4567"
msgstr "+1 (555) 123-4567"

#: app/templates/clients/create.html:72 app/templates/clients/edit.html:66
msgid "Client address"
msgstr "Adresse du client"

#: app/templates/clients/create.html:80 app/templates/clients/edit.html:74
msgid "These custom fields are defined globally and available for all clients."
msgstr ""

#: app/templates/clients/create.html:94 app/templates/clients/edit.html:88
#: app/templates/projects/create.html:123 app/templates/projects/edit.html:114
msgid "Enter value"
msgstr ""

#: app/templates/clients/create.html:121
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:125
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:128 app/templates/contacts/view.html:25
#: app/templates/leads/view.html:39
msgid "Contact Information"
msgstr "Coordonnées"

#: app/templates/clients/create.html:129
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:132 app/templates/clients/view.html:176
msgid "Prepaid Hours"
msgstr "Heures prépayées"

#: app/templates/clients/create.html:133
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:137
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:4 app/templates/clients/edit.html:10
#: app/templates/clients/view.html:9
msgid "Edit Client"
msgstr "Modifier le client"

#: app/templates/clients/edit.html:104
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:109
msgid "Enable Client Portal"
msgstr "Activer le portail client"

#: app/templates/clients/edit.html:115
msgid "Enable Issue Reporting"
msgstr ""

#: app/templates/clients/edit.html:118
msgid "Allow clients to report bugs and issues through the portal"
msgstr ""

#: app/templates/clients/edit.html:123
msgid "Portal Username"
msgstr "Nom d'utilisateur du portail"

#: app/templates/clients/edit.html:125
msgid "Unique username for portal login"
msgstr "Nom d'utilisateur unique pour la connexion au portail"

#: app/templates/clients/edit.html:128
msgid "Portal Password"
msgstr "Mot de passe du portail"

#: app/templates/clients/edit.html:129
#: app/templates/integrations/caldav_setup.html:99
#: app/templates/integrations/manage.html:257
msgid "Leave empty to keep current password"
msgstr "Laisser vide pour conserver le mot de passe actuel"

#: app/templates/clients/edit.html:130
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:135
msgid "Current portal username"
msgstr "Nom d'utilisateur actuel du portail"

#: app/templates/clients/edit.html:144
msgid "Update Client"
msgstr "Mettre à jour le client"

#: app/templates/clients/edit.html:153
msgid "Send Password Setup Email"
msgstr "Envoyer un e-mail de configuration du mot de passe"

#: app/templates/clients/edit.html:157
#, 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:163
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:172
msgid "Client Statistics"
msgstr "Statistiques clients"

#: app/templates/clients/edit.html:188
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:68
#: app/templates/payments/list.html:46 app/templates/per_diem/list.html:56
#: app/templates/projects/list.html:20 app/templates/quotes/list.html:67
#: app/templates/tasks/list.html:34 app/templates/tasks/my_tasks.html:107
msgid "Toggle Filters"
msgstr "Basculer les filtres"

#: app/templates/clients/list.html:77 app/templates/clients/list.html:106
#: app/templates/expenses/list.html:445 app/templates/expenses/list.html:474
#: app/templates/invoices/list.html:304 app/templates/invoices/list.html:333
#: app/templates/mileage/list.html:326 app/templates/mileage/list.html:355
#: app/templates/payments/list.html:281 app/templates/payments/list.html:310
#: app/templates/per_diem/list.html:365 app/templates/per_diem/list.html:394
#: app/templates/projects/list.html:459 app/templates/projects/list.html:488
#: app/templates/quotes/list.html:116 app/templates/quotes/list.html:143
#: app/templates/tasks/list.html:456 app/templates/tasks/list.html:485
#: app/templates/tasks/my_tasks.html:608 app/templates/tasks/my_tasks.html:638
msgid "Hide Filters"
msgstr "Masquer les filtres"

#: app/templates/clients/list.html:84 app/templates/clients/list.html:100
#: app/templates/expenses/list.html:452 app/templates/expenses/list.html:468
#: app/templates/invoices/list.html:311 app/templates/invoices/list.html:327
#: app/templates/mileage/list.html:333 app/templates/mileage/list.html:349
#: app/templates/payments/list.html:288 app/templates/payments/list.html:304
#: app/templates/per_diem/list.html:372 app/templates/per_diem/list.html:388
#: app/templates/projects/list.html:466 app/templates/projects/list.html:482
#: app/templates/quotes/list.html:122 app/templates/quotes/list.html:138
#: app/templates/tasks/list.html:463 app/templates/tasks/list.html:479
#: app/templates/tasks/my_tasks.html:615 app/templates/tasks/my_tasks.html:632
msgid "Show Filters"
msgstr "Afficher les filtres"

#: app/templates/clients/view.html:24
msgid "Assign a project to direct time entries before invoicing."
msgstr ""

#: app/templates/clients/view.html:24
#, fuzzy
msgid "No billable unbilled time for this client."
msgstr "Aucune entrée de temps non facturé trouvée pour ce projet."

#: app/templates/clients/view.html:25
#, fuzzy
msgid "No unbilled time"
msgstr "Saisies de temps non facturées"

#: app/templates/clients/view.html:25 app/templates/clients/view.html:596
#, fuzzy
msgid "Invoice unbilled time"
msgstr "Postes de facture"

#: app/templates/clients/view.html:30
msgid "Mark client as Inactive?"
msgstr "Marquer le client comme inactif ?"

#: app/templates/clients/view.html:30
msgid "Change Client Status"
msgstr "Changer le statut du client"

#: app/templates/clients/view.html:32 app/templates/projects/view.html:57
msgid "Mark Inactive"
msgstr "Marquer comme inactif"

#: app/templates/clients/view.html:35
msgid "Activate client?"
msgstr "Activer le client ?"

#: app/templates/clients/view.html:35
msgid "Activate Client"
msgstr "Activer le client"

#: app/templates/clients/view.html:44
msgid "Delete Client"
msgstr "Supprimer le client"

#: app/templates/clients/view.html:53
#, fuzzy
msgid "Client details and associated projects."
msgstr "Projets totaux et actifs"

#: app/templates/clients/view.html:62 app/templates/integrations/list.html:162
msgid "Manage"
msgstr "Gérer"

#: app/templates/clients/view.html:76 app/templates/contacts/form.html:65
#: app/templates/contacts/list.html:42
msgid "Primary"
msgstr "Primaire"

#: app/templates/clients/view.html:87
msgid "more contact(s)"
msgstr "plus de contact(s)"

#: app/templates/clients/view.html:92
msgid "No contacts yet"
msgstr "Aucun contact pour l'instant"

#: app/templates/clients/view.html:94
msgid "Add Contact"
msgstr "Ajouter un contact"

#: app/templates/clients/view.html:100
msgid "Legacy Contact Info"
msgstr "Informations de contact héritées"

#: app/templates/clients/view.html:178
#, python-format
msgid "Plan includes %(hours)s hours per cycle. Resets on day %(day)s."
msgstr "Le forfait comprend %(hours)s heures par cycle. Se réinitialise le jour %(day)s."

#: app/templates/clients/view.html:182
msgid "Current cycle start"
msgstr "Début du cycle en cours"

#: app/templates/clients/view.html:186
msgid "Remaining hours"
msgstr "Heures restantes"

#: app/templates/clients/view.html:187 app/templates/clients/view.html:191
#: app/templates/invoices/generate_from_time.html:30
#: app/templates/invoices/generate_from_time.html:39
#: app/templates/invoices/generate_from_time.html:57
#: app/templates/projects/view.html:468 app/templates/tasks/_tasks_list.html:88
#: app/templates/tasks/edit.html:170 app/templates/tasks/edit.html:172
#: app/templates/tasks/edit.html:175 app/templates/tasks/view.html:155
msgid "h"
msgstr "h"

#: app/templates/clients/view.html:190
msgid "Consumed this cycle"
msgstr "J'ai consommé ce cycle"

#: app/templates/clients/view.html:201 app/templates/projects/view.html:328
msgid "Attachments"
msgstr ""

#: app/templates/clients/view.html:219 app/templates/projects/view.html:346
msgid "File"
msgstr ""

#: app/templates/clients/view.html:221 app/templates/projects/view.html:348
msgid "Max size: 10 MB. Allowed: images, PDFs, documents, spreadsheets, archives"
msgstr ""

#: app/templates/clients/view.html:224 app/templates/projects/view.html:351
msgid "Description (optional)"
msgstr ""

#: app/templates/clients/view.html:225
msgid "e.g., Contract, Agreement, etc."
msgstr ""

#: app/templates/clients/view.html:230 app/templates/projects/view.html:357
msgid "Visible to client in portal"
msgstr ""

#: app/templates/clients/view.html:272 app/templates/projects/view.html:399
#: app/templates/quotes/view.html:322
msgid "Client Visible"
msgstr "Client visible"

#: app/templates/clients/view.html:278 app/templates/comments/_comment.html:83
#: app/templates/projects/view.html:405
msgid "Are you sure you want to delete this attachment?"
msgstr ""

#: app/templates/clients/view.html:278 app/templates/projects/view.html:405
msgid "Delete Attachment"
msgstr ""

#: app/templates/clients/view.html:288 app/templates/projects/view.html:415
msgid "No attachments yet"
msgstr ""

#: app/templates/clients/view.html:322 app/templates/projects/view.html:122
#: app/utils/i18n_helpers.py:51 app/utils/i18n_helpers.py:57
msgid "Archived"
msgstr "Archivé"

#: app/templates/clients/view.html:343
msgid "Recent Hours History"
msgstr ""

#: app/templates/clients/view.html:408
#, python-format
msgid "Showing last %(count)s entries"
msgstr ""

#: app/templates/clients/view.html:414
msgid "No recent time entries found."
msgstr ""

#: app/templates/clients/view.html:424
#: app/templates/inventory/purchase_orders/form.html:59
#: app/templates/quotes/create.html:248 app/templates/quotes/edit.html:334
msgid "Internal Notes"
msgstr "Notes internes"

#: app/templates/clients/view.html:426
msgid "Add Note"
msgstr "Ajouter une note"

#: app/templates/clients/view.html:442
msgid "Add an internal note about this client..."
msgstr "Ajouter une note interne sur ce client..."

#: app/templates/clients/view.html:458
msgid "Save Note"
msgstr "Enregistrer la note"

#: app/templates/clients/view.html:482 app/templates/comments/_comment.html:29
msgid "edited"
msgstr "édité"

#: app/templates/clients/view.html:491
msgid "Important"
msgstr "Important"

#: app/templates/clients/view.html:500
msgid "Unmark"
msgstr "Décocher"

#: app/templates/clients/view.html:500
msgid "Mark Important"
msgstr "Marquer comme important"

#: app/templates/clients/view.html:527
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:590
#, fuzzy
msgid "Estimated total"
msgstr "Valeur estimée"

#: app/templates/clients/view.html:594
#, fuzzy
msgid "Create a draft invoice?"
msgstr "Créer une facture"

#: app/templates/clients/view.html:597
#, fuzzy
msgid "Create invoice"
msgstr "Créer une facture"

#: app/templates/clients/view.html:615 app/templates/clients/view.html:621
#, fuzzy
msgid "Could not create invoice."
msgstr "Créer une facture"

#: app/templates/clients/view.html:630
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:632
msgid "Delete Note"
msgstr "Supprimer la note"

#: app/templates/comments/_comment.html:28
msgid "Edited on"
msgstr "Edité le"

#: app/templates/comments/_comment.html:45
#: app/templates/comments/_comment.html:161 app/templates/quotes/view.html:370
#: app/templates/quotes/view.html:384
msgid "Reply"
msgstr "Répondre"

#: app/templates/comments/_comment.html:103
msgid "Add Attachment"
msgstr ""

#: app/templates/comments/_comment.html:114
msgid "Max 10 MB. Images, PDFs, documents, spreadsheets, archives"
msgstr ""

#: app/templates/comments/_comment.html:157
msgid "Write your reply..."
msgstr "Écrivez votre réponse..."

#: app/templates/comments/_comment.html:184
msgid "Replies are too deeply nested to display."
msgstr ""

#: app/templates/comments/_comment.html:193
msgid "Comment nesting too deep to display."
msgstr ""

#: app/templates/comments/_comments_section.html:30
#: app/templates/quotes/view.html:291
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:74
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:73
msgid "No comments yet"
msgstr "Pas encore de commentaires"

#: app/templates/comments/_comments_section.html:74
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:76
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:7
#: app/templates/setup/initial_setup.html:279
#: app/templates/setup/initial_setup.html:280
#: app/templates/timer/bulk_entry.html:71
#: app/templates/timer/bulk_entry.html:219
#: app/templates/timer/edit_timer.html:386
#: app/templates/timer/edit_timer.html:507
#: app/templates/weekly_goals/view.html:30
msgid "Back"
msgstr "Dos"

#: app/templates/comments/edit.html:26
msgid "Editing comment on:"
msgstr "Modification du commentaire sur :"

#: app/templates/comments/edit.html:54
msgid "Originally posted on"
msgstr "Initialement publié sur"

#: app/templates/comments/edit.html:70
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:306
#: app/templates/main/dashboard.html:623
#: app/templates/projects/dashboard.html:267
#: 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:307
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:296
#: app/templates/components/activity_feed_widget.html:334
msgid "Load More"
msgstr "Charger plus"

#: app/templates/components/activity_feed_widget.html:327
msgid "Failed to load activities"
msgstr "Échec du chargement des activités"

#: app/templates/components/chat_user_selector.html:6
msgid "Start a Chat"
msgstr ""

#: app/templates/components/chat_user_selector.html:17
msgid "Search users..."
msgstr ""

#: app/templates/components/chat_user_selector.html:26
msgid "Loading users..."
msgstr ""

#: app/templates/components/chat_user_selector.html:32
#: app/templates/components/chat_user_selector.html:116
msgid "Failed to load users"
msgstr ""

#: app/templates/components/chat_user_selector.html:43
msgid "No users found"
msgstr ""

#: app/templates/components/chat_user_selector.html:213
msgid "Starting chat..."
msgstr ""

#: app/templates/components/chat_user_selector.html:270
msgid "Failed to start chat"
msgstr ""

#: app/templates/components/client_select.html:8
#: app/templates/components/client_select.html:13
#: app/templates/components/client_select.html:17
#: app/templates/projects/create.html:35 app/templates/projects/edit.html:33
msgid "Client (auto-selected)"
msgstr ""

#: app/templates/components/client_select.html:20
#: app/templates/projects/create.html:38 app/templates/projects/edit.html:36
msgid "Select a client..."
msgstr "Sélectionnez un client..."

#: app/templates/components/client_select.html:20
msgid "Select a client (optional)"
msgstr ""

#: app/templates/components/multi_select.html:47
#: app/templates/components/multi_select.html:209
msgid "Selected"
msgstr ""

#: app/templates/components/multi_select.html:67
msgid "Search..."
msgstr ""

#: app/templates/components/multi_select.html:80
msgid "Select all"
msgstr ""

#: app/templates/components/multi_select.html:105
msgid "No items available"
msgstr ""

#: app/templates/components/multi_select.html:122
#: app/templates/projects/time_entries_overview.html:39
#: app/templates/reports/index.html:94
msgid "Apply"
msgstr ""

#: app/templates/components/offline_indicator.html:10
#: app/templates/integrations/manage.html:630
#: app/templates/integrations/view.html:143
msgid "Sync Now"
msgstr ""

#: app/templates/components/offline_indicator.html:18
msgid "Pending Sync"
msgstr ""

#: app/templates/components/offline_indicator.html:24
#: app/templates/components/offline_indicator.html:56
msgid "No pending items"
msgstr ""

#: app/templates/components/offline_indicator.html:29
msgid "Sync All"
msgstr ""

#: app/templates/components/offline_indicator.html:96
msgid "Error loading queue"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:9
msgid "Toggle chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:21
msgid "Chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:27
msgid "Start new chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:41
msgid "Minimize chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:90
msgid "View full"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:331
msgid "Failed to load messages"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:341
msgid "No messages yet"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:403
#: app/templates/components/persistent_chat_widget.html:409
msgid "Failed to send message"
msgstr ""

#: app/templates/components/support_modal.html:12
msgid "Thank you for being a supporter. Sharing the app helps others discover it too."
msgstr ""

#: app/templates/components/support_modal.html:14
msgid "TimeTracker is free and built independently. If it helps you, consider supporting its development."
msgstr ""

#: app/templates/components/support_modal.html:37
msgid "Trusted by teams and freelancers who want simple, reliable time tracking."
msgstr ""

#: app/templates/components/support_modal.html:40
#: app/templates/components/support_modal.html:41
#: app/templates/components/support_modal.html:42
#: app/templates/main/about.html:215 app/templates/main/dashboard.html:653
#: app/templates/main/donate.html:34 app/templates/main/donate.html:43
#, fuzzy
msgid "Donate"
msgstr "Fait"

#: app/templates/components/support_modal.html:46
#: app/templates/user/license.html:28
msgid "Buy license (€25)"
msgstr ""

#: app/templates/components/support_modal.html:48
#, fuzzy
msgid "Love TimeTracker? Share it"
msgstr "Centre d'aide TimeTracker"

#: app/templates/components/support_modal.html:51
msgid "A license is a supporter badge — it does not lock features. You keep full access either way."
msgstr ""

#: app/templates/components/ui.html:52
msgid "Home"
msgstr "Maison"

#: app/templates/components/ui.html:79
#: app/templates/reports/time_entries_report.html:142
#, fuzzy
msgid "Pagination"
msgstr "Pagination de mes tâches"

#: app/templates/components/ui.html:81
#: app/templates/timer/_time_entries_list.html:224
#, python-format
msgid "Showing %(start)s to %(end)s of %(total)s entries"
msgstr ""

#: app/templates/components/ui.html:750
msgid "Click to upload or drag and drop"
msgstr ""

#: app/templates/contacts/communication_form.html:31
#: app/templates/deals/activity_form.html:28
#: app/templates/leads/activity_form.html:28
msgid "Call"
msgstr "Appel"

#: 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/deals/activity_form.html:50
#: app/templates/leads/activity_form.html:50 app/templates/quotes/view.html:459
msgid "Subject"
msgstr "Sujet"

#: app/templates/contacts/communication_form.html:61
#: app/templates/deals/activity_form.html:38
#: app/templates/leads/activity_form.html:38
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:157
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
#: app/templates/deals/view.html:42
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/leads/view.html:122 app/templates/main/search.html:38
#: app/templates/project_templates/create.html:35
#: app/templates/project_templates/edit.html:35
#: app/templates/project_templates/view.html:112
#: app/templates/reports/user_report.html:82
#: app/templates/tasks/_kanban.html:1299
#: app/templates/tasks/_tasks_list.html:32
#: app/templates/tasks/_tasks_list.html:49 app/templates/tasks/create.html:119
#: app/templates/tasks/edit.html:127 app/templates/tasks/list.html:45
#: app/templates/tasks/my_tasks.html:123 app/templates/tasks/view.html:139
#: app/templates/timer/_time_entries_list.html:42
#: app/templates/timer/_time_entries_list.html:122
#: app/templates/timer/bulk_entry.html:198
#: app/templates/timer/calendar.html:192 app/templates/timer/calendar.html:880
#: app/templates/timer/edit_timer.html:348
#: app/templates/timer/edit_timer.html:460
#: app/templates/timer/manual_entry.html:148
#: app/templates/timer/time_entries_export_pdf.html:20
#: app/templates/timer/view_timer.html:52
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/activity_form.html:4
#: app/templates/deals/activity_form.html:10
#: app/templates/deals/activity_form.html:15
#: app/templates/deals/activity_form.html:60 app/templates/deals/view.html:15
#: app/templates/deals/view.html:145 app/templates/leads/activity_form.html:4
#: app/templates/leads/activity_form.html:10
#: app/templates/leads/activity_form.html:15
#: app/templates/leads/activity_form.html:60 app/templates/leads/view.html:15
#: app/templates/leads/view.html:138
msgid "Add Activity"
msgstr ""

#: app/templates/deals/activity_form.html:42
#: app/templates/leads/activity_form.html:42
#, fuzzy
msgid "Activity Date"
msgstr "Activer"

#: app/templates/deals/activity_form.html:51
#: app/templates/leads/activity_form.html:51
msgid "Brief subject or title"
msgstr ""

#: app/templates/deals/form.html:25 app/templates/deals/list.html:50
#: app/templates/deals/list.html:62 app/templates/leads/convert_to_deal.html:25
msgid "Deal Name"
msgstr "Nom de l'offre"

#: app/templates/deals/form.html:32 app/templates/leads/convert_to_deal.html:31
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 app/templates/deals/list.html:66
#: app/templates/deals/view.html:47
#: app/templates/invoice_approvals/list.html:32
#: app/templates/invoice_approvals/view.html:70
#: app/templates/leads/convert_to_deal.html:38
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 app/templates/leads/convert_to_deal.html:46
msgid "Win Probability"
msgstr "Probabilité de gagner"

#: app/templates/deals/form.html:80 app/templates/leads/convert_to_deal.html:50
msgid "Expected Close Date"
msgstr "Date de clôture prévue"

#: app/templates/deals/form.html:86 app/templates/deals/view.html:126
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: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 app/templates/deals/list.html:71
#: app/templates/deals/view.html:60
msgid "Value"
msgstr "Valeur"

#: app/templates/deals/list.html:54 app/templates/deals/list.html:78
#: app/templates/deals/view.html:65
msgid "Probability"
msgstr "Probabilité"

#: app/templates/deals/list.html:55 app/templates/deals/list.html:79
#: app/templates/deals/view.html:70
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/deals/view.html:16
msgid "Pipeline"
msgstr ""

#: app/templates/deals/view.html:32
msgid "Deal Information"
msgstr ""

#: app/templates/deals/view.html:76
msgid "Actual Close"
msgstr ""

#: app/templates/deals/view.html:82 app/templates/leads/view.html:102
msgid "Owner"
msgstr ""

#: app/templates/deals/view.html:88
msgid "Related Lead"
msgstr ""

#: app/templates/deals/view.html:119
msgid "Loss Reason"
msgstr ""

#: app/templates/deals/view.html:133 app/templates/quotes/view.html:179
msgid "Related Project"
msgstr "Projet connexe"

#: app/templates/deals/view.html:158 app/templates/leads/view.html:151
msgid "by"
msgstr ""

#: app/templates/deals/view.html:171 app/templates/leads/view.html:164
msgid "No activities recorded yet"
msgstr ""

#: app/templates/deals/view.html:173 app/templates/leads/view.html:166
msgid "Add first activity"
msgstr ""

#: app/templates/deals/view.html:180
#, fuzzy
msgid "History"
msgstr "Historique des buts"

#: app/templates/deals/view.html:183
#, fuzzy
msgid "View full history"
msgstr "Afficher tous les détails"

#: app/templates/deals/view.html:226
msgid "No change history yet"
msgstr ""

#: 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:38
#: app/templates/invoice_approvals/list.html:27
#: app/templates/invoice_approvals/request.html:9
#: app/templates/invoice_approvals/view.html:10
#: app/templates/invoices/pdf_default.html:5
#: app/templates/payments/list.html:142 app/utils/pdf_generator.py:1032
#: app/utils/pdf_generator.py:1042
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
#: app/templates/invoice_approvals/view.html:13
#: app/templates/invoices/view.html:46
msgid "View Invoice"
msgstr "Afficher la facture"

#: app/templates/email/quote.html:63
#: app/templates/inventory/movements/list.html:39
#: app/templates/quotes/pdf_default.html:5 app/utils/pdf_generator.py:2310
msgid "Quote"
msgstr "Citation"

#: app/templates/email/quote_approval_rejected.html:74
msgid "Quote Approval Rejected"
msgstr "Approbation du devis rejetée"

#: 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_sent.html:81
msgid "View Quote"
msgstr "Voir le devis"

#: 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_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:280
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
msgid "400 Bad Request"
msgstr "400 requêtes incorrectes"

#: app/templates/errors/400.html:13
msgid "Invalid Request"
msgstr "Demande invalide"

#: app/templates/errors/400.html:15
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:18
msgid "Missing or invalid form data"
msgstr "Données de formulaire manquantes ou invalides"

#: app/templates/errors/400.html:19
msgid "Malformed request parameters"
msgstr "Paramètres de requête mal formés"

#: app/templates/errors/403.html:15
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:18
msgid "Insufficient privileges"
msgstr "Privilèges insuffisants"

#: app/templates/errors/403.html:19
msgid "Not logged in"
msgstr "Non connecté"

#: app/templates/errors/403.html:20
msgid "Resource access restrictions"
msgstr "Restrictions d'accès aux ressources"

#: app/templates/errors/500.html:17
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:21
msgid "Try Again"
msgstr "Essayer à nouveau"

#: app/templates/errors/generic.html:17
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:32
msgid "Refresh Page"
msgstr "Actualiser la page"

#: app/templates/errors/generic.html:36
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/dashboard.html:195
#: app/templates/expenses/list.html:305
#: app/templates/inventory/reports/valuation.html:30
#: app/templates/inventory/reports/valuation.html:60
#: app/templates/inventory/reports/valuation.html:80
#: 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/list.html:68
#: 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/inventory/stock_levels/warehouse.html:64
#: app/templates/invoices/edit.html:162 app/templates/invoices/edit.html:234
#: app/templates/invoices/pdf_default.html:142
#: app/templates/kiosk/dashboard.html:123
#: app/templates/project_templates/create.html:30
#: app/templates/project_templates/edit.html:30
#: app/templates/project_templates/list.html:22
#: app/templates/projects/add_cost.html:37
#: app/templates/projects/add_good.html:29
#: app/templates/projects/edit_cost.html:44
#: app/templates/projects/edit_good.html:29
#: app/templates/projects/goods.html:40 app/templates/projects/goods.html:60
#: app/templates/quotes/create.html:96 app/templates/quotes/create.html:127
#: app/templates/quotes/edit.html:144 app/templates/quotes/edit.html:201
#: app/utils/pdf_generator.py:1276 app/utils/pdf_generator_reportlab.py:642
msgid "Category"
msgstr "Catégorie"

#: app/templates/expenses/form.html:23
#: app/templates/inventory/purchase_orders/form.html:25
#: app/templates/quotes/create.html:28 app/templates/quotes/edit.html:28
#: app/templates/recurring_tasks/form.html:26
msgid "Basic Information"
msgstr "Informations de base"

#: app/templates/expenses/form.html:33
msgid "e.g., Flight to Berlin"
msgstr "par exemple, vol pour Berlin"

#: app/templates/expenses/form.html:42
msgid "Additional details about the expense..."
msgstr "Détails supplémentaires sur les dépenses..."

#: app/templates/expenses/form.html:52
#, fuzzy
msgid "Select Category"
msgstr "Catégorie"

#: app/templates/expenses/form.html:75
#, fuzzy
msgid "Amount Details"
msgstr "Détails du paiement"

#: app/templates/expenses/form.html:124
#, fuzzy
msgid "Association"
msgstr "Emplacement"

#: app/templates/expenses/form.html:158 app/templates/payments/view.html:21
msgid "Payment Details"
msgstr "Détails du paiement"

#: app/templates/expenses/form.html:192
msgid "e.g., Lufthansa"
msgstr "par exemple, Lufthansa"

#: app/templates/expenses/form.html:201
#, fuzzy
msgid "Receipt & Additional Information"
msgstr "Informations Complémentaires"

#: app/templates/expenses/form.html:222
msgid "Receipt/Invoice Number"
msgstr "Numéro de reçu/facture"

#: app/templates/expenses/form.html:226
msgid "e.g., INV-2024-001"
msgstr "par exemple, INV-2024-001"

#: app/templates/expenses/form.html:237
msgid "e.g., conference, client-meeting, urgent"
msgstr "par exemple, conférence, réunion client, urgence"

#: app/templates/expenses/form.html:246 app/templates/mileage/form.html:238
#: app/templates/per_diem/form.html:190
msgid "Additional notes..."
msgstr "Notes complémentaires..."

#: app/templates/expenses/form.html:254
#, fuzzy
msgid "Options"
msgstr "Facultatif"

#: app/templates/expenses/list.html:65
msgid "Filter Expenses"
msgstr "Filtrer les dépenses"

#: app/templates/expenses/list.html:203
msgid "Delete Selected Expenses"
msgstr "Supprimer les dépenses sélectionnées"

#: app/templates/expenses/list.html:223
msgid "Change Status for Selected Expenses"
msgstr "Modifier le statut des dépenses sélectionnées"

#: app/templates/expenses/view.html:252
msgid "Associated With"
msgstr "Associé à"

#: app/templates/expenses/view.html:348
msgid "Reject Expense"
msgstr "Rejeter la dépense"

#: app/templates/expenses/view.html:357
msgid "Explain why this expense is being rejected..."
msgstr "Expliquez pourquoi cette dépense est rejetée..."

#: app/templates/expenses/view.html:397
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:399
msgid "Delete Expense"
msgstr "Supprimer une dépense"

#: app/templates/gantt/view.html:13 app/templates/kanban/board.html:15
msgid "Add task"
msgstr ""

#: 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 - Time Entries"
msgstr ""

#: 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
#: app/templates/import_export/index.html:53
msgid "Choose CSV File"
msgstr "Choisissez un fichier CSV"

#: app/templates/import_export/index.html:38
#: app/templates/import_export/index.html:57
msgid "Download Template"
msgstr "Télécharger le modèle"

#: app/templates/import_export/index.html:48
msgid "CSV Import - Clients"
msgstr ""

#: app/templates/import_export/index.html:49
msgid "Import clients with custom fields and multiple contacts from a CSV file"
msgstr ""

#: app/templates/import_export/index.html:63
msgid "Skip duplicate clients"
msgstr ""

#: app/templates/import_export/index.html:66
msgid "Use these fields for duplicate detection:"
msgstr ""

#: app/templates/import_export/index.html:72
msgid "Custom fields (comma-separated):"
msgstr ""

#: app/templates/import_export/index.html:73
msgid "e.g., debtor_number, erp_id"
msgstr ""

#: app/templates/import_export/index.html:75
msgid "Example: Enter \"debtor_number\" to detect duplicates by debtor number only (not by name)"
msgstr ""

#: app/templates/import_export/index.html:85
#: app/templates/import_export/index.html:211
msgid "Import from Toggl Track"
msgstr "Importer depuis Toggl Track"

#: app/templates/import_export/index.html:86
msgid "Import time entries from Toggl Track"
msgstr "Importer les entrées de temps depuis Toggl Track"

#: app/templates/import_export/index.html:89
msgid "Import from Toggl"
msgstr "Importer depuis Toggl"

#: app/templates/import_export/index.html:97
#: app/templates/import_export/index.html:101
#: app/templates/import_export/index.html:249
msgid "Import from Harvest"
msgstr "Importer depuis la récolte"

#: app/templates/import_export/index.html:98
msgid "Import time entries from Harvest"
msgstr "Importer les entrées de temps depuis Harvest"

#: app/templates/import_export/index.html:110
msgid "Restore from Backup"
msgstr "Restaurer à partir d'une sauvegarde"

#: app/templates/import_export/index.html:111
msgid "Restore data from a JSON or ZIP backup file"
msgstr ""

#: app/templates/import_export/index.html:125
msgid "Import History"
msgstr "Historique d'importation"

#: app/templates/import_export/index.html:137
msgid "Export Data"
msgstr "Exporter des données"

#: app/templates/import_export/index.html:142
msgid "Full Data Export (GDPR)"
msgstr "Exportation complète des données (RGPD)"

#: app/templates/import_export/index.html:143
msgid "Export all your personal data"
msgstr "Exportez toutes vos données personnelles"

#: app/templates/import_export/index.html:147
msgid "Export as JSON"
msgstr "Exporter au format JSON"

#: app/templates/import_export/index.html:150
msgid "Export as ZIP"
msgstr "Exporter au format ZIP"

#: app/templates/import_export/index.html:160
msgid "Filtered Export"
msgstr "Exportation filtrée"

#: app/templates/import_export/index.html:161
msgid "Export specific data with filters"
msgstr "Exporter des données spécifiques avec des filtres"

#: app/templates/import_export/index.html:164
msgid "Export with Filters"
msgstr "Exporter avec des filtres"

#: app/templates/import_export/index.html:172
msgid "Export Clients"
msgstr ""

#: app/templates/import_export/index.html:173
msgid "Export all clients with custom fields and contacts to CSV"
msgstr ""

#: app/templates/import_export/index.html:176
msgid "Export Clients to CSV"
msgstr ""

#: app/templates/import_export/index.html:186
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:199
msgid "Export History"
msgstr "Historique des exportations"

#: app/templates/import_export/index.html:215
#: app/templates/import_export/index.html:258
msgid "API Token"
msgstr "Jeton API"

#: app/templates/import_export/index.html:220
msgid "Workspace ID"
msgstr "ID de l'espace de travail"

#: app/templates/import_export/index.html:236
#: app/templates/import_export/index.html:274
msgid "Import"
msgstr "Importer"

#: app/templates/import_export/index.html:253
msgid "Account ID"
msgstr "Identifiant du compte"

#: app/templates/integrations/activitywatch_setup.html:4
#: app/templates/integrations/activitywatch_setup.html:14
msgid "ActivityWatch Setup"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:15
msgid "Import window and web activity from ActivityWatch (aw-server) as automatic time entries"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:25
#: app/templates/integrations/caldav_setup.html:25
msgid "Server Connection"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:29
msgid "ActivityWatch Server URL"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:39
msgid "Base URL of your aw-server (no trailing slash). aw-server must be running and reachable from this server."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:40
msgid "Use http://localhost:5600 if TimeTracker runs on the same machine."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:47
#: app/templates/integrations/caldav_setup.html:126
msgid "Import Settings"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:51
#: app/templates/integrations/caldav_setup.html:130
msgid "Default Project"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:57
#: app/templates/integrations/caldav_setup.html:136
msgid "No project (import without project)"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:66
msgid "Assign imported activity events to this project. Leave empty to import without a project."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:72
#: app/templates/integrations/caldav_setup.html:153
msgid "No active projects found. Events will be imported without a project."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:73
#: app/templates/integrations/caldav_setup.html:154
msgid "You can create a project later and assign events to it."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:76
#: app/templates/integrations/caldav_setup.html:157
msgid "Create a project"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:84
#: app/templates/integrations/caldav_setup.html:165
msgid "Lookback Days"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:94
msgid "How many days back to import on full sync (1–90, default: 7)."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:100
msgid "Bucket IDs"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:108
msgid "Comma-separated or JSON array. Leave empty to use all aw-watcher-window_* and aw-watcher-web_* buckets."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:119
#: app/templates/integrations/caldav_setup.html:186
msgid "Enable automatic sync"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:122
msgid "Automatically sync activity on a schedule. You can also trigger manual syncs."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:128
#: app/templates/integrations/wizard_asana.html:128
#: app/templates/integrations/wizard_github.html:155
#: app/templates/integrations/wizard_gitlab.html:174
#: app/templates/integrations/wizard_jira.html:168
#: app/templates/integrations/wizard_quickbooks.html:125
#: app/templates/integrations/wizard_xero.html:108
msgid "Sync Schedule"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:133
#: app/templates/integrations/wizard_asana.html:131
#: app/templates/integrations/wizard_github.html:158
#: app/templates/integrations/wizard_gitlab.html:178
#: app/templates/integrations/wizard_jira.html:173
#: app/templates/integrations/wizard_quickbooks.html:128
#: app/templates/integrations/wizard_xero.html:111
msgid "Manual only"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:134
#: app/templates/integrations/wizard_asana.html:132
#: app/templates/integrations/wizard_github.html:159
#: app/templates/integrations/wizard_gitlab.html:179
#: app/templates/integrations/wizard_jira.html:176
#: app/templates/integrations/wizard_quickbooks.html:129
#: app/templates/integrations/wizard_xero.html:112
msgid "Every hour"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:135
#: app/templates/integrations/wizard_asana.html:133
#: app/templates/integrations/wizard_github.html:160
#: app/templates/integrations/wizard_gitlab.html:180
#: app/templates/integrations/wizard_jira.html:179
#: app/templates/integrations/wizard_quickbooks.html:130
#: app/templates/integrations/wizard_xero.html:113
#: app/templates/recurring_tasks/form.html:60
#: app/templates/reports/index.html:485
#: app/templates/reports/schedule_form.html:47
msgid "Daily"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:156
msgid "Test & Sync"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:158
msgid "After saving, you can test the connection and run a sync from the integration page."
msgstr ""

#: app/templates/integrations/caldav_setup.html:4
#: app/templates/integrations/caldav_setup.html:14
msgid "CalDAV Calendar Setup"
msgstr ""

#: app/templates/integrations/caldav_setup.html:15
msgid "Connect to a CalDAV server (e.g., Zimbra) to import calendar events as time entries"
msgstr ""

#: app/templates/integrations/caldav_setup.html:29
msgid "CalDAV Server URL"
msgstr ""

#: app/templates/integrations/caldav_setup.html:29
msgid "optional if calendar URL is provided"
msgstr ""

#: app/templates/integrations/caldav_setup.html:38
msgid "Base URL of your CalDAV server. Used for calendar discovery."
msgstr ""

#: app/templates/integrations/caldav_setup.html:39
msgid "Example: https://mail.example.com/dav for Zimbra"
msgstr ""

#: app/templates/integrations/caldav_setup.html:45
msgid "Calendar URL"
msgstr ""

#: app/templates/integrations/caldav_setup.html:45
msgid "optional if server URL is provided"
msgstr ""

#: app/templates/integrations/caldav_setup.html:54
msgid "Direct URL to your calendar collection. If provided, server URL is only used for discovery."
msgstr ""

#: app/templates/integrations/caldav_setup.html:60
msgid "Calendar Name"
msgstr ""

#: app/templates/integrations/caldav_setup.html:67
msgid "My Calendar"
msgstr ""

#: app/templates/integrations/caldav_setup.html:73
msgid "Authentication"
msgstr ""

#: app/templates/integrations/caldav_setup.html:87
#: app/templates/integrations/manage.html:245
msgid "Your CalDAV username (usually your email address)."
msgstr ""

#: app/templates/integrations/caldav_setup.html:102
#: app/templates/integrations/manage.html:260
msgid "Your CalDAV password or app-specific password."
msgstr ""

#: app/templates/integrations/caldav_setup.html:104
#: app/templates/integrations/manage.html:262
msgid "Leave empty to keep your current password."
msgstr ""

#: app/templates/integrations/caldav_setup.html:116
msgid "Verify SSL certificate"
msgstr ""

#: app/templates/integrations/caldav_setup.html:119
msgid "Uncheck only if using a self-signed certificate."
msgstr ""

#: app/templates/integrations/caldav_setup.html:145
msgid "Calendar events will be imported as time entries. If a project is selected, events will be assigned to that project."
msgstr ""

#: app/templates/integrations/caldav_setup.html:146
msgid "If an event title contains a project name, that project will be used instead."
msgstr ""

#: app/templates/integrations/caldav_setup.html:147
msgid "If no project is selected, events will be imported without a project."
msgstr ""

#: app/templates/integrations/caldav_setup.html:175
msgid "How many days back to import events from (default: 90)."
msgstr ""

#: app/templates/integrations/caldav_setup.html:189
msgid "Automatically sync calendar events every hour. You can still trigger manual syncs."
msgstr ""

#: app/templates/integrations/caldav_setup.html:212
msgid "After saving, you can test the connection and discover available calendars."
msgstr ""

#: app/templates/integrations/health.html:4
#, fuzzy
msgid "Integration Health"
msgstr "Intégration du temps"

#: app/templates/integrations/health.html:23
#: app/templates/reports/builder.html:185
#: app/templates/reports/saved_views_list.html:28
#: app/templates/reports/saved_views_list.html:41
msgid "Scope"
msgstr ""

#: app/templates/integrations/health.html:25
#, fuzzy
msgid "Last sync"
msgstr "L'année dernière"

#: app/templates/integrations/health.html:26
#, fuzzy
msgid "Last status"
msgstr "Statut de la mise à jour"

#: app/templates/integrations/health.html:27
#, fuzzy
msgid "Credentials"
msgstr "Détails"

#: app/templates/integrations/health.html:28
#, fuzzy
msgid "Last error"
msgstr "L'année dernière"

#: app/templates/integrations/health.html:62 app/utils/i18n_helpers.py:224
#: app/utils/i18n_helpers.py:236
msgid "Partial"
msgstr "Partiel"

#: app/templates/integrations/health.html:76
#, fuzzy
msgid "Needs refresh"
msgstr "Rafraîchir"

#: app/templates/integrations/health.html:82
#: app/templates/integrations/manage.html:581
msgid "Expires"
msgstr ""

#: app/templates/integrations/health.html:105
msgid "Reset this integration? This removes stored OAuth tokens."
msgstr ""

#: app/templates/integrations/list.html:20
msgid "Connect your Time Tracker with external services. Configure integrations below to sync data, automate workflows, and enhance productivity."
msgstr ""

#: app/templates/integrations/list.html:34
msgid "OIDC / Single Sign-On"
msgstr ""

#: app/templates/integrations/list.html:36
msgid "Configure OpenID Connect authentication for Single Sign-On (SSO) with your identity provider"
msgstr ""

#: app/templates/integrations/list.html:76
msgid "Configure directory authentication via environment variables; use the wizard to build a working .env snippet and test connectivity."
msgstr ""

#: app/templates/integrations/list.html:131
#: app/templates/integrations/manage.html:556
msgid "Not Connected"
msgstr ""

#: app/templates/integrations/list.html:141
msgid "Synced"
msgstr ""

#: app/templates/integrations/list.html:146
msgid "Not Set Up"
msgstr ""

#: app/templates/integrations/list.html:164
#: app/templates/integrations/manage.html:716
msgid "Connect"
msgstr ""

#: app/templates/integrations/manage.html:4
#: app/templates/integrations/view.html:3
msgid "Integration"
msgstr ""

#: app/templates/integrations/manage.html:26
msgid "Guided Setup Wizard"
msgstr ""

#: app/templates/integrations/manage.html:29
msgid "Use our step-by-step wizard to configure this integration easily."
msgstr ""

#: app/templates/integrations/manage.html:34
msgid "Launch Setup Wizard"
msgstr ""

#: app/templates/integrations/manage.html:43
#, fuzzy
msgid "Linear API Key"
msgstr "Créer un jeton API"

#: app/templates/integrations/manage.html:50
msgid "Personal API Key"
msgstr ""

#: app/templates/integrations/manage.html:54
msgid "Create at linear.app/settings/api"
msgstr ""

#: app/templates/integrations/manage.html:57
msgid "From Linear: Settings → API → Personal API keys"
msgstr ""

#: app/templates/integrations/manage.html:60
#, fuzzy
msgid "Save API Key"
msgstr "Créer un jeton API"

#: app/templates/integrations/manage.html:68
msgid "OAuth Credentials Setup"
msgstr ""

#: app/templates/integrations/manage.html:101
#: app/templates/integrations/manage.html:141
#, fuzzy
msgid "Stored; leave empty to keep"
msgstr "Laisser vide pour rester à jour"

#: app/templates/integrations/manage.html:101
#, fuzzy
msgid "Enter API secret"
msgstr "Régénérer le secret"

#: app/templates/integrations/manage.html:112
msgid "After saving API Key and Secret, you can connect Trello using OAuth flow."
msgstr ""

#: app/templates/integrations/manage.html:158
msgid "Use \"common\" for multi-tenant, or leave empty for common"
msgstr ""

#: app/templates/integrations/manage.html:223
msgid "CalDAV Authentication"
msgstr ""

#: app/templates/integrations/manage.html:226
msgid "CalDAV uses username and password authentication (not OAuth). Update your credentials below."
msgstr ""

#: app/templates/integrations/manage.html:281
msgid "Integration Configuration"
msgstr ""

#: app/templates/integrations/manage.html:284
msgid "Configure sync settings, data mappings, and other integration options."
msgstr ""

#: app/templates/integrations/manage.html:530
msgid "Connection Management"
msgstr ""

#: app/templates/integrations/manage.html:539
#: app/templates/integrations/view.html:119
msgid "Connector Error"
msgstr ""

#: app/templates/integrations/manage.html:566
msgid "Sync OK"
msgstr ""

#: app/templates/integrations/manage.html:570
msgid "Sync Error"
msgstr ""

#: app/templates/integrations/manage.html:583
msgid "No expiration"
msgstr ""

#: app/templates/integrations/manage.html:590
msgid "Not connected"
msgstr ""

#: app/templates/integrations/manage.html:596
#: app/templates/integrations/manage.html:603
#: app/templates/integrations/view.html:48
msgid "Last Sync"
msgstr ""

#: app/templates/integrations/manage.html:613
#: app/templates/integrations/view.html:65
msgid "Last Error"
msgstr ""

#: app/templates/integrations/manage.html:643
msgid "CalDAV uses username/password authentication. Click below to set up your CalDAV connection."
msgstr ""

#: app/templates/integrations/manage.html:646
msgid "Setup CalDAV Integration"
msgstr ""

#: app/templates/integrations/manage.html:653
msgid "ActivityWatch imports window and web activity from your local aw-server. Click below to configure."
msgstr ""

#: app/templates/integrations/manage.html:656
msgid "Setup ActivityWatch Integration"
msgstr ""

#: app/templates/integrations/manage.html:671
msgid "OAuth credentials are configured. You can now connect Trello."
msgstr ""

#: app/templates/integrations/manage.html:674
msgid "Connect Trello"
msgstr ""

#: app/templates/integrations/manage.html:681
msgid "Please configure Trello API key and token in the OAuth Credentials Setup section above."
msgstr ""

#: app/templates/integrations/manage.html:693
msgid "Please configure OAuth credentials in the section above before connecting."
msgstr ""

#: app/templates/integrations/manage.html:700
#: app/templates/integrations/manage.html:725
msgid "OAuth credentials need to be configured by an administrator first."
msgstr ""

#: app/templates/integrations/manage.html:706
msgid "Connect your Google Calendar account. You will be redirected to Google for authorization."
msgstr ""

#: app/templates/integrations/manage.html:708
msgid "Connect this integration. You will be redirected to the provider for authorization."
msgstr ""

#: app/templates/integrations/view.html:11
msgid "Back to Integrations"
msgstr ""

#: app/templates/integrations/view.html:17
msgid "Integration Status"
msgstr ""

#: app/templates/integrations/view.html:36
msgid "Token Expires"
msgstr ""

#: app/templates/integrations/view.html:74
msgid "Sync History"
msgstr ""

#: app/templates/integrations/view.html:107
msgid "No sync events yet"
msgstr ""

#: app/templates/integrations/view.html:123
msgid "Configure CalDAV Integration"
msgstr ""

#: app/templates/integrations/view.html:127
msgid "Configure ActivityWatch"
msgstr ""

#: app/templates/integrations/view.html:147
msgid "Are you sure you want to reset this integration? This will remove all credentials and configuration."
msgstr ""

#: app/templates/integrations/view.html:153
msgid "Are you sure you want to delete this integration? This action cannot be undone."
msgstr ""

#: app/templates/integrations/view.html:161
#: app/templates/integrations/view.html:165
msgid "Edit Configuration"
msgstr ""

#: app/templates/integrations/wizard_asana.html:6
#: app/templates/integrations/wizard_github.html:6
msgid "Step 1: OAuth Setup"
msgstr ""

#: app/templates/integrations/wizard_asana.html:12
msgid "Create an Asana app in Settings → Apps → Manage Developer Apps."
msgstr ""

#: app/templates/integrations/wizard_asana.html:18
msgid "Asana OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:22
#: app/templates/integrations/wizard_github.html:22
#: app/templates/integrations/wizard_gitlab.html:50
#: app/templates/integrations/wizard_jira.html:23
#: app/templates/integrations/wizard_microsoft_teams.html:50
#: app/templates/integrations/wizard_outlook_calendar.html:50
#: app/templates/integrations/wizard_quickbooks.html:22
#: app/templates/integrations/wizard_xero.html:22
msgid "Enter OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:27
msgid "Asana OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_asana.html:31
#: app/templates/integrations/wizard_github.html:31
#: app/templates/integrations/wizard_gitlab.html:59
#: app/templates/integrations/wizard_jira.html:35
#: app/templates/integrations/wizard_microsoft_teams.html:59
#: app/templates/integrations/wizard_outlook_calendar.html:59
#: app/templates/integrations/wizard_quickbooks.html:31
#: app/templates/integrations/wizard_xero.html:31
msgid "Enter OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_asana.html:46
msgid "Step 2: Workspace Selection"
msgstr ""

#: app/templates/integrations/wizard_asana.html:50
#: app/templates/integrations/wizard_asana.html:163
msgid "Workspace GID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:57
msgid "Find your workspace GID in Asana workspace settings or API"
msgstr ""

#: app/templates/integrations/wizard_asana.html:65
msgid "Step 3: Project Selection"
msgstr ""

#: app/templates/integrations/wizard_asana.html:69
msgid "Project GIDs"
msgstr ""

#: app/templates/integrations/wizard_asana.html:76
msgid "Comma-separated list of specific project GIDs to sync. Leave empty to sync all projects in the workspace."
msgstr ""

#: app/templates/integrations/wizard_asana.html:84
msgid "Step 4: Sync Configuration"
msgstr ""

#: app/templates/integrations/wizard_asana.html:87
#: app/templates/integrations/wizard_asana.html:167
#: app/templates/integrations/wizard_github.html:77
#: app/templates/integrations/wizard_github.html:201
#: app/templates/integrations/wizard_gitlab.html:112
#: app/templates/integrations/wizard_gitlab.html:225
#: app/templates/integrations/wizard_jira.html:98
#: app/templates/integrations/wizard_jira.html:217
#: app/templates/integrations/wizard_quickbooks.html:78
#: app/templates/integrations/wizard_quickbooks.html:200
#: app/templates/integrations/wizard_xero.html:61
#: app/templates/integrations/wizard_xero.html:183
msgid "Sync Direction"
msgstr ""

#: app/templates/integrations/wizard_asana.html:91
msgid "Asana → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:94
msgid "TimeTracker → Asana (Export only)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:97
#: app/templates/integrations/wizard_github.html:87
#: app/templates/integrations/wizard_gitlab.html:123
#: app/templates/integrations/wizard_jira.html:109
#: app/templates/integrations/wizard_quickbooks.html:88
#: app/templates/integrations/wizard_xero.html:71
msgid "Bidirectional (Two-way sync)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:103
#: app/templates/integrations/wizard_asana.html:171
#: app/templates/integrations/wizard_github.html:93
#: app/templates/integrations/wizard_github.html:205
#: app/templates/integrations/wizard_gitlab.html:129
#: app/templates/integrations/wizard_gitlab.html:229
#: app/templates/integrations/wizard_jira.html:118
#: app/templates/integrations/wizard_jira.html:221
#: app/templates/integrations/wizard_quickbooks.html:94
#: app/templates/integrations/wizard_quickbooks.html:204
#: app/templates/integrations/wizard_xero.html:77
#: app/templates/integrations/wizard_xero.html:187
msgid "Items to Sync"
msgstr ""

#: app/templates/integrations/wizard_asana.html:122
msgid "Subtasks"
msgstr ""

#: app/templates/integrations/wizard_asana.html:141
#: app/templates/integrations/wizard_github.html:169
#: app/templates/integrations/wizard_gitlab.html:190
#: app/templates/integrations/wizard_jira.html:159
#: app/templates/integrations/wizard_jira.html:225
#: app/templates/integrations/wizard_quickbooks.html:138
#: app/templates/integrations/wizard_xero.html:121
msgid "Auto Sync"
msgstr ""

#: app/templates/integrations/wizard_asana.html:148
msgid "Sync Completed Tasks"
msgstr ""

#: app/templates/integrations/wizard_asana.html:155
#: app/templates/integrations/wizard_github.html:189
#: app/templates/integrations/wizard_gitlab.html:213
#: app/templates/integrations/wizard_jira.html:203
#: app/templates/integrations/wizard_quickbooks.html:188
#: app/templates/integrations/wizard_xero.html:171
msgid "Step 5: Review & Save"
msgstr ""

#: app/templates/integrations/wizard_asana.html:159
#: app/templates/integrations/wizard_github.html:193
#: app/templates/integrations/wizard_gitlab.html:217
#: app/templates/integrations/wizard_microsoft_teams.html:78
#: app/templates/integrations/wizard_quickbooks.html:192
#: app/templates/integrations/wizard_trello.html:63
#: app/templates/integrations/wizard_xero.html:175
msgid "Review your configuration and click \"Finish\" to save."
msgstr ""

#: app/templates/integrations/wizard_asana.html:188
#: app/templates/integrations/wizard_github.html:222
#: app/templates/integrations/wizard_gitlab.html:246
#: app/templates/integrations/wizard_jira.html:245
#: app/templates/integrations/wizard_microsoft_teams.html:99
#: app/templates/integrations/wizard_outlook_calendar.html:99
#: app/templates/integrations/wizard_quickbooks.html:221
#: app/templates/integrations/wizard_trello.html:89
#: app/templates/integrations/wizard_xero.html:204
#: app/templates/setup/initial_setup.html:288
msgid "Finish"
msgstr ""

#: app/templates/integrations/wizard_base.html:27
msgid "Step"
msgstr ""

#: app/templates/integrations/wizard_github.html:12
msgid "Create a GitHub OAuth App in Settings → Developer settings → OAuth Apps."
msgstr ""

#: app/templates/integrations/wizard_github.html:18
msgid "GitHub OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_github.html:27
msgid "GitHub OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:46
msgid "Step 2: Repository Selection"
msgstr ""

#: app/templates/integrations/wizard_github.html:57
msgid "Comma-separated list of repositories (e.g., \"octocat/Hello-World\"). Leave empty to sync all accessible repositories."
msgstr ""

#: app/templates/integrations/wizard_github.html:66
#: app/templates/integrations/wizard_gitlab.html:97
#: app/templates/integrations/wizard_jira.html:192
msgid "Create Projects"
msgstr ""

#: app/templates/integrations/wizard_github.html:74
#: app/templates/integrations/wizard_jira.html:82
#: app/templates/integrations/wizard_quickbooks.html:75
#: app/templates/integrations/wizard_xero.html:58
msgid "Step 3: Sync Configuration"
msgstr ""

#: app/templates/integrations/wizard_github.html:81
msgid "GitHub → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_github.html:84
msgid "TimeTracker → GitHub (Export only)"
msgstr ""

#: app/templates/integrations/wizard_github.html:106
msgid "Pull Requests"
msgstr ""

#: app/templates/integrations/wizard_github.html:112
msgid "Projects (Repositories)"
msgstr ""

#: app/templates/integrations/wizard_github.html:118
#: app/templates/integrations/wizard_gitlab.html:154
msgid "Issue States to Sync"
msgstr ""

#: app/templates/integrations/wizard_github.html:125
#: app/templates/integrations/wizard_gitlab.html:161
msgid "Open Issues"
msgstr ""

#: app/templates/integrations/wizard_github.html:131
#: app/templates/integrations/wizard_gitlab.html:167
msgid "Closed Issues"
msgstr ""

#: app/templates/integrations/wizard_github.html:140
msgid "Step 4: Webhook Setup"
msgstr ""

#: app/templates/integrations/wizard_github.html:144
#: app/templates/integrations/wizard_gitlab.html:199
#: app/templates/payment_gateways/create.html:49
msgid "Webhook Secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:148
#: app/templates/integrations/wizard_gitlab.html:203
msgid "Enter webhook secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:150
msgid "Secret token for verifying webhook signatures. Configure this in your GitHub repository webhook settings."
msgstr ""

#: app/templates/integrations/wizard_github.html:161
#: app/templates/integrations/wizard_gitlab.html:181
#: app/templates/integrations/wizard_jira.html:182
#: app/templates/recurring_tasks/form.html:61
#: app/templates/reports/index.html:486
#: app/templates/reports/schedule_form.html:48
msgid "Weekly"
msgstr ""

#: app/templates/integrations/wizard_github.html:172
msgid "Automatically sync when webhooks are received from GitHub"
msgstr ""

#: app/templates/integrations/wizard_github.html:178
msgid "Add this URL as a webhook in your GitHub repository settings:"
msgstr ""

#: app/templates/integrations/wizard_github.html:225
msgid "All repositories"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:6
msgid "Step 1: Instance Configuration"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:26
msgid "You can use GitLab.com or your self-hosted GitLab instance."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:34
#: app/templates/integrations/wizard_microsoft_teams.html:34
#: app/templates/integrations/wizard_outlook_calendar.html:34
msgid "Step 2: OAuth Setup"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:40
msgid "Configure OAuth credentials. Create an application in GitLab Settings → Applications."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:46
msgid "GitLab OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:55
msgid "GitLab OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:66
msgid "Add this URL as an authorized redirect URI in your GitLab application settings:"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:77
msgid "Step 3: Repository Selection"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:81
msgid "Repository IDs"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:88
msgid "Comma-separated list of GitLab project IDs to sync. Leave empty to sync all accessible projects."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:101
msgid "Automatically create projects in TimeTracker from GitLab projects"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:108
msgid "Step 4: Sync Settings"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:117
msgid "GitLab → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:120
msgid "TimeTracker → GitLab (Export only)"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:142
msgid "Merge Requests"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:194
msgid "Automatically sync when webhooks are received from GitLab"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:205
msgid "Secret token for verifying webhook signatures"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:221
msgid "Instance URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:6
msgid "Step 1: OAuth Setup & Basic Configuration"
msgstr ""

#: app/templates/integrations/wizard_jira.html:12
msgid "First, configure OAuth credentials for Jira. You can get these from Atlassian Developer Console."
msgstr ""

#: app/templates/integrations/wizard_jira.html:18
msgid "Jira OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_jira.html:25
msgid "Get this from Atlassian Developer Console"
msgstr ""

#: app/templates/integrations/wizard_jira.html:31
msgid "Jira OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_jira.html:41
msgid "Jira Instance URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:48
msgid "Your Jira Cloud or Server URL (e.g., https://your-domain.atlassian.net)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:55
msgid "Add this URL as an authorized redirect URI in your Jira OAuth app settings:"
msgstr ""

#: app/templates/integrations/wizard_jira.html:71
msgid "Click \"Test Connection\" to verify that Jira is accessible and OAuth credentials are correct."
msgstr ""

#: app/templates/integrations/wizard_jira.html:86
msgid "JQL Query"
msgstr ""

#: app/templates/integrations/wizard_jira.html:92
msgid "Jira Query Language query to filter issues to sync. Leave empty to sync all assigned issues."
msgstr ""

#: app/templates/integrations/wizard_jira.html:103
msgid "Jira → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:106
msgid "TimeTracker → Jira (Export only)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:113
msgid "Choose how data flows between Jira and TimeTracker"
msgstr ""

#: app/templates/integrations/wizard_jira.html:126
msgid "Issues (Tasks)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:163
msgid "Automatically sync when webhooks are received from Jira"
msgstr ""

#: app/templates/integrations/wizard_jira.html:196
msgid "Automatically create projects in TimeTracker from Jira projects"
msgstr ""

#: app/templates/integrations/wizard_jira.html:208
msgid "Review your configuration below. Click \"Finish\" to save and complete the setup."
msgstr ""

#: app/templates/integrations/wizard_jira.html:213
msgid "Jira URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:265
#: app/templates/integrations/wizard_trello.html:100
msgid "Please test the connection before proceeding."
msgstr ""

#: app/templates/integrations/wizard_jira.html:277
msgid "Please enter Jira URL first."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:6
#: app/templates/integrations/wizard_outlook_calendar.html:6
msgid "Step 1: Tenant ID Configuration"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:12
#: app/templates/integrations/wizard_outlook_calendar.html:12
msgid "Enter your Azure AD tenant ID. Use \"common\" for multi-tenant apps or leave empty for default."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:40
#: app/templates/integrations/wizard_outlook_calendar.html:40
msgid "Configure OAuth credentials from Azure AD App Registrations."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:46
msgid "Microsoft Teams OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:55
msgid "Microsoft Teams OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:74
#: app/templates/integrations/wizard_outlook_calendar.html:74
#: app/templates/integrations/wizard_trello.html:59
msgid "Step 3: Review & Save"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:46
msgid "Outlook Calendar OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:55
msgid "Outlook Calendar OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:78
msgid "Review your configuration and click \"Finish\" to save. After saving, users can connect their Outlook Calendar accounts."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:6
#: app/templates/integrations/wizard_xero.html:6
msgid "Step 1: OAuth Connection"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:12
msgid "Configure OAuth credentials from Intuit Developer Dashboard."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:18
msgid "QuickBooks OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:27
msgid "QuickBooks OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:38
msgid "After saving OAuth credentials, you will need to connect your QuickBooks account via OAuth."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:46
msgid "Step 2: Company Selection"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:50
msgid "Company ID (Realm ID)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:57
msgid "Find your company ID (realm ID) in QuickBooks after connecting via OAuth."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:65
msgid "Use Sandbox"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:68
msgid "Use QuickBooks sandbox environment for testing"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:82
msgid "QuickBooks → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:85
msgid "TimeTracker → QuickBooks (Export only)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:119
msgid "Customers"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:145
#: app/templates/integrations/wizard_xero.html:128
msgid "Step 4: Account Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:149
msgid "Default Expense Account ID"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:156
msgid "QuickBooks account ID to use for expenses when no mapping is configured"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:162
msgid "Customer Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:162
#: app/templates/integrations/wizard_quickbooks.html:174
#: app/templates/integrations/wizard_xero.html:145
#: app/templates/integrations/wizard_xero.html:157
msgid "JSON"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:168
msgid "Map TimeTracker client IDs to QuickBooks customer IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:174
#: app/templates/integrations/wizard_xero.html:157
msgid "Account Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:180
msgid "Map TimeTracker expense category IDs to QuickBooks account IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:196
msgid "Company ID"
msgstr ""

#: app/templates/integrations/wizard_trello.html:6
msgid "Step 1: API Keys Setup"
msgstr ""

#: app/templates/integrations/wizard_trello.html:12
msgid "Get your API key and secret from"
msgstr ""

#: app/templates/integrations/wizard_trello.html:23
msgid "Enter API Key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:32
msgid "Enter API Secret"
msgstr ""

#: app/templates/integrations/wizard_trello.html:34
msgid "Generate a token after creating the API key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:48
msgid "Click \"Test Connection\" to verify that your Trello API credentials are correct."
msgstr ""

#: app/templates/integrations/wizard_trello.html:67
#: app/templates/payment_gateways/create.html:39
msgid "API Key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:72
msgid "Not tested"
msgstr ""

#: app/templates/integrations/wizard_trello.html:92
msgid "Connection failed"
msgstr ""

#: app/templates/integrations/wizard_xero.html:12
msgid "Configure OAuth credentials from Xero Developer Portal."
msgstr ""

#: app/templates/integrations/wizard_xero.html:18
msgid "Xero OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_xero.html:27
msgid "Xero OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_xero.html:39
msgid "Step 2: Tenant Selection"
msgstr ""

#: app/templates/integrations/wizard_xero.html:50
msgid "Find your tenant ID (organisation ID) in Xero after connecting via OAuth."
msgstr ""

#: app/templates/integrations/wizard_xero.html:65
msgid "Xero → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:68
msgid "TimeTracker → Xero (Export only)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:132
msgid "Default Expense Account Code"
msgstr ""

#: app/templates/integrations/wizard_xero.html:139
msgid "Xero account code to use for expenses when no mapping is configured"
msgstr ""

#: app/templates/integrations/wizard_xero.html:145
msgid "Contact Mappings"
msgstr ""

#: app/templates/integrations/wizard_xero.html:151
msgid "Map TimeTracker client IDs to Xero Contact IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:163
msgid "Map TimeTracker expense category IDs to Xero account codes (JSON format)"
msgstr ""

#: app/templates/inventory/adjustments/form.html:23
#: app/templates/inventory/adjustments/list.html:30
#: app/templates/inventory/movements/form.html:44
#: app/templates/inventory/purchase_orders/form.html:77
#: app/templates/inventory/reports/movement_history.html:30
#: app/templates/inventory/transfers/form.html:23
msgid "Stock Item"
msgstr "Article en stock"

#: app/templates/inventory/adjustments/form.html:25
#: app/templates/inventory/movements/form.html:46
#: 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/adjustments/list.html:73
#: app/templates/inventory/low_stock/list.html:22
#: app/templates/inventory/low_stock/list.html:34
#: app/templates/inventory/movements/form.html:53
#: app/templates/inventory/movements/list.html:56
#: app/templates/inventory/movements/list.html:74
#: app/templates/inventory/purchase_orders/form.html:82
#: app/templates/inventory/reports/low_stock.html:31
#: app/templates/inventory/reports/low_stock.html:48
#: app/templates/inventory/reports/movement_history.html:21
#: app/templates/inventory/reports/movement_history.html:72
#: app/templates/inventory/reports/movement_history.html:90
#: app/templates/inventory/reports/valuation.html:21
#: app/templates/inventory/reports/valuation.html:57
#: app/templates/inventory/reports/valuation.html:69
#: app/templates/inventory/reservations/list.html:40
#: app/templates/inventory/reservations/list.html:58
#: app/templates/inventory/stock_items/history.html:22
#: app/templates/inventory/stock_items/history.html:63
#: app/templates/inventory/stock_items/history.html:76
#: app/templates/inventory/stock_items/view.html:129
#: app/templates/inventory/stock_items/view.html:139
#: app/templates/inventory/stock_items/view.html:241
#: app/templates/inventory/stock_items/view.html:255
#: app/templates/inventory/stock_levels/item.html:23
#: app/templates/inventory/stock_levels/item.html:34
#: app/templates/inventory/stock_levels/list.html:20
#: app/templates/inventory/stock_levels/list.html:47
#: app/templates/inventory/stock_levels/list.html:58
#: app/templates/kiosk/dashboard.html:150 app/templates/quotes/create.html:63
#: app/templates/quotes/edit.html:68
msgid "Warehouse"
msgstr "Entrepôt"

#: app/templates/inventory/adjustments/form.html:34
#: app/templates/inventory/movements/form.html:55
#: app/templates/inventory/purchase_orders/form.html:131
#: app/templates/invoices/edit.html:105 app/templates/quotes/edit.html:98
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: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:53
#: app/templates/inventory/reports/turnover.html:21
#: app/templates/inventory/stock_items/history.html:45
#: 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:60
#: app/templates/inventory/reports/turnover.html:25
#: app/templates/inventory/stock_items/history.html:52
#: app/templates/inventory/transfers/list.html:25
msgid "Date To"
msgstr "Date de"

#: app/templates/inventory/adjustments/list.html:57
#: app/templates/inventory/adjustments/list.html:68
#: app/templates/inventory/low_stock/list.html:23
#: app/templates/inventory/low_stock/list.html:35
#: app/templates/inventory/movements/list.html:55
#: app/templates/inventory/movements/list.html:69
#: app/templates/inventory/purchase_orders/view.html:90
#: app/templates/inventory/purchase_orders/view.html:101
#: app/templates/inventory/reports/low_stock.html:29
#: app/templates/inventory/reports/low_stock.html:42
#: app/templates/inventory/reports/movement_history.html:71
#: app/templates/inventory/reports/movement_history.html:85
#: app/templates/inventory/reports/turnover.html:44
#: app/templates/inventory/reports/turnover.html:55
#: app/templates/inventory/reports/valuation.html:58
#: app/templates/inventory/reports/valuation.html:74
#: app/templates/inventory/reservations/list.html:39
#: app/templates/inventory/reservations/list.html:53
#: app/templates/inventory/stock_levels/list.html:48
#: app/templates/inventory/stock_levels/list.html:59
#: app/templates/inventory/stock_levels/warehouse.html:45
#: app/templates/inventory/stock_levels/warehouse.html:58
#: app/templates/inventory/suppliers/view.html:114
#: app/templates/inventory/suppliers/view.html:125
#: app/templates/inventory/transfers/list.html:39
#: app/templates/inventory/transfers/list.html:54
#: app/templates/inventory/warehouses/view.html:84
#: app/templates/inventory/warehouses/view.html:95
#: app/templates/inventory/warehouses/view.html:130
#: app/templates/inventory/warehouses/view.html:140
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/low_stock/list.html:40
#: app/templates/inventory/stock_items/view.html:130
#: app/templates/inventory/stock_items/view.html:144
#: app/templates/inventory/stock_levels/list.html:49
#: app/templates/inventory/stock_levels/list.html:64
#: app/templates/inventory/warehouses/view.html:86
#: app/templates/inventory/warehouses/view.html:101
msgid "On Hand"
msgstr "À portée de main"

#: app/templates/inventory/low_stock/list.html:25
#: app/templates/inventory/low_stock/list.html:41
#: app/templates/inventory/reports/low_stock.html:33
#: app/templates/inventory/reports/low_stock.html:54
#: app/templates/inventory/stock_items/form.html:69
#: app/templates/inventory/stock_items/view.html:91
#: app/templates/inventory/stock_levels/warehouse.html:51
#: app/templates/inventory/stock_levels/warehouse.html:70
msgid "Reorder Point"
msgstr "Point de commande"

#: app/templates/inventory/low_stock/list.html:26
#: app/templates/inventory/low_stock/list.html:42
#: app/templates/inventory/reports/low_stock.html:34
#: app/templates/inventory/reports/low_stock.html:55
msgid "Shortfall"
msgstr "Manque à gagner"

#: app/templates/inventory/low_stock/list.html:27
#: app/templates/inventory/low_stock/list.html:43
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:20
msgid "Use a positive quantity (items coming back)"
msgstr ""

#: app/templates/inventory/movements/form.html:21
msgid "Use a negative quantity (items written off)"
msgstr ""

#: app/templates/inventory/movements/form.html:22
msgid "Quantity to revalue (positive)"
msgstr ""

#: app/templates/inventory/movements/form.html:23
#: app/templates/inventory/movements/form.html:64
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:24
msgid "Return requires a positive quantity."
msgstr ""

#: app/templates/inventory/movements/form.html:25
msgid "Waste requires a negative quantity."
msgstr ""

#: app/templates/inventory/movements/form.html:26
msgid "Devaluation requires a trackable item with a default cost."
msgstr ""

#: app/templates/inventory/movements/form.html:30
#: 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:37
#: app/templates/inventory/movements/list.html:29
#: app/templates/inventory/reports/movement_history.html:47
#: app/templates/inventory/stock_items/history.html:39
msgid "Return"
msgstr "Retour"

#: app/templates/inventory/movements/form.html:38
#: app/templates/inventory/movements/list.html:30
#: app/templates/inventory/reports/movement_history.html:48
#: app/templates/inventory/stock_items/history.html:40
msgid "Waste"
msgstr "Déchets"

#: app/templates/inventory/movements/form.html:39
#: app/templates/inventory/movements/form.html:73
#: app/templates/inventory/movements/list.html:31
#: app/templates/inventory/reports/movement_history.html:49
#: app/templates/inventory/stock_items/history.html:41
#: app/templates/inventory/stock_items/view.html:180
#: app/templates/inventory/stock_items/view.html:191
msgid "Devaluation"
msgstr ""

#: app/templates/inventory/movements/form.html:41
msgid "You can apply devaluation below to record returned or wasted items at a reduced cost."
msgstr ""

#: app/templates/inventory/movements/form.html:74
msgid "Devalue items without creating a new stock item"
msgstr ""

#: app/templates/inventory/movements/form.html:78
msgid "Apply devaluation"
msgstr ""

#: app/templates/inventory/movements/form.html:84
#: app/templates/payments/list.html:158
msgid "Method"
msgstr ""

#: app/templates/inventory/movements/form.html:86
msgid "Percent off default cost"
msgstr ""

#: app/templates/inventory/movements/form.html:87
msgid "Fixed new unit cost"
msgstr ""

#: app/templates/inventory/movements/form.html:92
msgid "Percent"
msgstr ""

#: app/templates/inventory/movements/form.html:94
msgid "Example: 30 = reduce cost by 30%"
msgstr ""

#: app/templates/inventory/movements/form.html:98
msgid "New Unit Cost"
msgstr ""

#: app/templates/inventory/movements/form.html:105
msgid "e.g., Physical count correction"
msgstr "par exemple, correction du comptage physique"

#: app/templates/inventory/movements/form.html:117
msgid "Record Movement"
msgstr "Mouvement d'enregistrement"

#: app/templates/inventory/movements/list.html:35
msgid "Reference Type"
msgstr "Type de référence"

#: app/templates/inventory/movements/list.html:41
#: app/templates/timer/edit_timer.html:312
#: app/templates/timer/edit_timer.html:435
msgid "Manual"
msgstr "Manuel"

#: app/templates/inventory/movements/list.html:59
#: app/templates/inventory/movements/list.html:105
#: app/templates/inventory/purchase_orders/form.html:80
#: app/templates/inventory/purchase_orders/view.html:94
#: app/templates/inventory/purchase_orders/view.html:115
#: app/templates/inventory/reports/movement_history.html:75
#: app/templates/inventory/reports/movement_history.html:121
#: app/templates/inventory/reports/valuation.html:62
#: app/templates/inventory/reports/valuation.html:82
#: app/templates/inventory/stock_items/form.html:113
#: app/templates/inventory/stock_items/form.html:164
#: app/templates/inventory/stock_items/history.html:66
#: app/templates/inventory/stock_items/history.html:107
#: app/templates/inventory/stock_items/view.html:179
#: app/templates/inventory/stock_items/view.html:190
#: app/templates/inventory/suppliers/view.html:116
#: app/templates/inventory/suppliers/view.html:131
msgid "Unit Cost"
msgstr "Coût unitaire"

#: app/templates/inventory/movements/list.html:60
#: app/templates/inventory/movements/list.html:127
#: app/templates/inventory/reports/movement_history.html:76
#: app/templates/inventory/reports/movement_history.html:143
#: app/templates/inventory/reservations/list.html:43
#: app/templates/inventory/reservations/list.html:65
#: app/templates/inventory/stock_items/history.html:67
#: app/templates/inventory/stock_items/history.html:129
msgid "Reference"
msgstr "Référence"

#: app/templates/inventory/movements/list.html:97
#: app/templates/inventory/reports/movement_history.html:113
#: app/templates/inventory/stock_items/history.html:99
#: app/templates/inventory/stock_items/view.html:205
msgid "Devalued"
msgstr ""

#: app/templates/inventory/movements/list.html:150
msgid "No stock movements found."
msgstr "Aucun mouvement de stock trouvé."

#: 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/list.html:67
#: 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/list.html:72
#: 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:334
msgid "Items"
msgstr "Articles"

#: app/templates/inventory/purchase_orders/form.html:72
#: app/templates/invoices/edit.html:66
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:235 app/templates/invoices/edit.html:260
#: app/templates/invoices/edit.html:620 app/templates/quotes/create.html:65
#: app/templates/quotes/create.html:128 app/templates/quotes/edit.html:70
#: app/templates/quotes/edit.html:108 app/templates/quotes/edit.html:202
msgid "Qty"
msgstr "Qté"

#: 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
#: app/templates/inventory/suppliers/view.html:130
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/invoices/list.html:129
#: app/templates/quotes/_quotes_list.html:62 app/templates/quotes/list.html:81
#: app/templates/quotes/view.html:71 app/utils/i18n_helpers.py:64
#: app/utils/i18n_helpers.py:76
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/invoices/list.html:130
#: app/templates/quotes/_quotes_list.html:64 app/templates/quotes/list.html:82
#: app/templates/quotes/view.html:73 app/utils/i18n_helpers.py:65
#: app/utils/i18n_helpers.py:77
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/list.html:62
#: 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/list.html:73
#: 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
#: app/templates/inventory/purchase_orders/view.html:111
msgid "Quantity Ordered"
msgstr "Quantité commandée"

#: app/templates/inventory/purchase_orders/view.html:93
#: app/templates/inventory/purchase_orders/view.html:112
msgid "Quantity Received"
msgstr "Quantité reçue"

#: app/templates/inventory/purchase_orders/view.html:95
#: app/templates/inventory/purchase_orders/view.html:116
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: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:32
#: app/templates/inventory/reports/low_stock.html:53
#: app/templates/inventory/stock_levels/item.html:24
#: app/templates/inventory/stock_levels/item.html:39
#: app/templates/inventory/stock_levels/warehouse.html:48
#: app/templates/inventory/stock_levels/warehouse.html:65
msgid "Quantity On Hand"
msgstr "Quantité disponible"

#: app/templates/inventory/reports/low_stock.html:35
#: app/templates/inventory/reports/low_stock.html:56
#: 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:170
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
#: app/templates/inventory/reports/turnover.html:61
msgid "Total Sold"
msgstr "Total vendu"

#: app/templates/inventory/reports/turnover.html:47
#: app/templates/inventory/reports/turnover.html:62
msgid "Avg Stock Level"
msgstr "Niveau de stock moyen"

#: app/templates/inventory/reports/turnover.html:48
#: app/templates/inventory/reports/turnover.html:63
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
#: app/templates/inventory/stock_items/view.html:209
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: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:83
#: 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_items/view.html:145
#: app/templates/inventory/stock_levels/list.html:50
#: app/templates/inventory/stock_levels/list.html:65
#: app/templates/inventory/warehouses/view.html:87
#: app/templates/inventory/warehouses/view.html:102
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
#: app/templates/inventory/reservations/list.html:89
msgid "Reserved At"
msgstr "Réservé à"

#: app/templates/inventory/reservations/list.html:46
#: app/templates/inventory/reservations/list.html:90
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/list.html:69
#: app/templates/inventory/stock_items/view.html:36
#: app/templates/kiosk/dashboard.html:132
#: app/templates/quotes/_edit_quote_form_scripts.html:174
#: app/templates/quotes/create.html:66 app/templates/quotes/edit.html:71
#: app/templates/quotes/edit.html:109
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
#: app/templates/inventory/suppliers/view.html:138
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:146
#: 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:156
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
#: app/templates/inventory/stock_items/list.html:70
msgid "Total Qty"
msgstr "Qté totale"

#: app/templates/inventory/stock_items/list.html:54
#: app/templates/inventory/stock_items/list.html:77
#: app/templates/inventory/stock_items/view.html:132
#: app/templates/inventory/stock_items/view.html:146
#: app/templates/inventory/stock_levels/item.html:26
#: app/templates/inventory/stock_levels/item.html:41
#: app/templates/inventory/stock_levels/list.html:51
#: app/templates/inventory/stock_levels/list.html:66
#: app/templates/inventory/stock_levels/warehouse.html:50
#: app/templates/inventory/stock_levels/warehouse.html:67
#: app/templates/inventory/warehouses/view.html:88
#: app/templates/inventory/warehouses/view.html:103
#: app/templates/workforce/dashboard.html:212
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
msgid "Stock Breakdown by Valuation"
msgstr ""

#: app/templates/inventory/stock_items/view.html:164
msgid "Detailed breakdown showing remaining stock with different devaluation rates"
msgstr ""

#: app/templates/inventory/stock_items/view.html:198
msgid "No devaluation"
msgstr ""

#: app/templates/inventory/stock_items/view.html:235
#: app/templates/inventory/warehouses/view.html:125
msgid "Recent Stock Movements"
msgstr "Mouvements de stocks récents"

#: app/templates/inventory/stock_items/view.html:275
msgid "Total On Hand"
msgstr "Total disponible"

#: app/templates/inventory/stock_items/view.html:279
msgid "Total Reserved"
msgstr "Total réservé"

#: app/templates/inventory/stock_items/view.html:283
msgid "Total Available"
msgstr "Total disponible"

#: app/templates/inventory/stock_items/view.html:289
msgid "Low Stock Alert"
msgstr "Alerte de stock faible"

#: app/templates/inventory/stock_items/view.html:295
msgid "This item is not trackable."
msgstr "Cet article n'est pas traçable."

#: app/templates/inventory/stock_items/view.html:302
msgid "Active Reservations"
msgstr "Réservations actives"

#: app/templates/inventory/stock_levels/item.html:25
#: app/templates/inventory/stock_levels/item.html:40
#: app/templates/inventory/stock_levels/warehouse.html:49
#: app/templates/inventory/stock_levels/warehouse.html:66
msgid "Quantity Reserved"
msgstr "Quantité réservée"

#: app/templates/inventory/stock_levels/item.html:28
#: app/templates/inventory/stock_levels/item.html:45
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:177 app/templates/quotes/create.html:180
#: app/templates/quotes/edit.html:276 app/templates/quotes/edit.html:279
#: app/templates/quotes/pdf_default.html:85 app/templates/quotes/view.html:89
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: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
#: app/templates/inventory/suppliers/view.html:139
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
#: app/templates/inventory/transfers/list.html:59
#: app/templates/kiosk/dashboard.html:229
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
#: app/templates/inventory/transfers/list.html:64
#: app/templates/kiosk/dashboard.html:246
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/list.html:40
#: 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/invoice_approvals/list.html:51
msgid "Current Approver"
msgstr ""

#: app/templates/invoice_approvals/list.html:54
msgid "You"
msgstr ""

#: app/templates/invoice_approvals/list.html:67
msgid "No Pending Approvals"
msgstr ""

#: app/templates/invoice_approvals/list.html:68
msgid "You have no invoices awaiting your approval."
msgstr ""

#: app/templates/invoice_approvals/list.html:77
msgid "Reject Invoice Approval"
msgstr ""

#: app/templates/invoice_approvals/list.html:81
msgid "Reason for Rejection"
msgstr ""

#: app/templates/invoice_approvals/list.html:82
msgid "Please provide a reason for rejecting this invoice..."
msgstr ""

#: app/templates/invoice_approvals/request.html:3
#: app/templates/invoice_approvals/request.html:8
msgid "Request Invoice Approval"
msgstr ""

#: app/templates/invoice_approvals/request.html:11
msgid "Back to Invoice"
msgstr ""

#: app/templates/invoice_approvals/request.html:19
msgid "Select Approvers"
msgstr ""

#: app/templates/invoice_approvals/request.html:20
msgid "Select one or more users who need to approve this invoice. Approvals will be processed in order."
msgstr ""

#: app/templates/invoice_approvals/request.html:39
#: app/templates/invoices/view.html:140 app/templates/quotes/view.html:202
msgid "Request Approval"
msgstr "Demander l'approbation"

#: app/templates/invoice_approvals/view.html:19
#: app/templates/invoices/view.html:107 app/templates/quotes/view.html:196
msgid "Approval Status"
msgstr "Statut d'approbation"

#: app/templates/invoice_approvals/view.html:31
msgid "Requested By"
msgstr ""

#: app/templates/invoice_approvals/view.html:36
msgid "Requested At"
msgstr ""

#: app/templates/invoice_approvals/view.html:42
msgid "Approved By"
msgstr ""

#: app/templates/invoice_approvals/view.html:49
msgid "Rejected By"
msgstr ""

#: app/templates/invoice_approvals/view.html:54
#: app/templates/quotes/view.html:564
msgid "Rejection Reason"
msgstr "Motif du rejet"

#: app/templates/invoice_approvals/view.html:64
msgid "Approval Stages"
msgstr ""

#: app/templates/invoice_approvals/view.html:100
#: app/templates/invoices/edit.html:376 app/templates/main/help.html:536
#: app/templates/reports/index.html:166 app/templates/tasks/edit.html:275
msgid "Quick Actions"
msgstr "Actions rapides"

#: app/templates/invoice_approvals/view.html:116
msgid "Waiting for approval from another user."
msgstr ""

#: app/templates/invoices/_invoices_list.html:9
#: app/templates/payments/list.html:96
#: app/templates/reports/export_form.html:196
#: app/templates/reports/export_form.html:329
#: app/templates/reports/summary.html:12
#: app/templates/reports/task_report.html:55
#: app/templates/reports/time_entries_report.html:89
#: app/templates/reports/user_report.html:56
msgid "Export to Excel"
msgstr "Exporter vers Excel"

#: app/templates/invoices/_invoices_list.html:83 app/utils/i18n_helpers.py:89
#: app/utils/i18n_helpers.py:100
msgid "Partially Paid"
msgstr "Partiellement payé"

#: app/templates/invoices/_invoices_list.html:87 app/utils/i18n_helpers.py:90
#: app/utils/i18n_helpers.py:101
msgid "Fully Paid"
msgstr "Entièrement payé"

#: app/templates/invoices/create.html:8 app/templates/invoices/create.html:60
#: app/templates/main/help.html:448
msgid "Create Invoice"
msgstr "Créer une facture"

#: app/templates/invoices/create.html:8
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:19 app/templates/issues/view.html:68
#: app/templates/recurring_tasks/form.html:37
#: app/templates/tasks/create.html:48 app/templates/tasks/edit.html:56
msgid "Select a project"
msgstr "Sélectionnez un projet"

#: app/templates/invoices/create.html:24
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:43 app/templates/invoices/edit.html:42
msgid "Buyer reference (PEPPOL BT-10)"
msgstr ""

#: app/templates/invoices/create.html:44 app/templates/invoices/edit.html:43
msgid "Optional; used in PEPPOL UBL"
msgstr ""

#: app/templates/invoices/create.html:47 app/templates/invoices/edit.html:34
#: app/templates/quotes/create.html:156 app/templates/quotes/edit.html:255
msgid "Tax Rate (%)"
msgstr "Taux d'imposition (%)"

#: app/templates/invoices/create.html:67
#: app/templates/invoices/generate_from_time.html:173
msgid "Tips"
msgstr "Conseils"

#: app/templates/invoices/create.html:69
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:70
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:13
msgid "Edit Invoice"
msgstr "Modifier la facture"

#: app/templates/invoices/edit.html:13
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:63
msgid "Time-based services and hourly work"
msgstr "Services basés sur le temps et travail horaire"

#: app/templates/invoices/edit.html:72
msgid "Project / Stock Item"
msgstr ""

#: app/templates/invoices/edit.html:73
msgid "Task / Warehouse"
msgstr ""

#: app/templates/invoices/edit.html:92
msgid "Project hours"
msgstr ""

#: app/templates/invoices/edit.html:97 app/templates/quotes/edit.html:92
msgid "Select Stock Item"
msgstr "Sélectionnez un article en stock"

#: app/templates/invoices/edit.html:114 app/templates/invoices/edit.html:538
msgid "e.g., Web Development Services"
msgstr "par exemple, services de développement Web"

#: app/templates/invoices/edit.html:118
msgid "Quantity is from logged hours and cannot be edited"
msgstr ""

#: app/templates/invoices/edit.html:127 app/templates/invoices/edit.html:547
#: app/templates/quotes/_edit_quote_form_scripts.html:178
#: app/templates/quotes/edit.html:113
msgid "Remove item"
msgstr "Supprimer l'élément"

#: app/templates/invoices/edit.html:137
msgid "Items Subtotal"
msgstr "Sous-total des articles"

#: app/templates/invoices/edit.html:151
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:154
msgid "Add Expense"
msgstr "Ajouter une dépense"

#: app/templates/invoices/edit.html:173
msgid "e.g., Travel to Client Meeting"
msgstr "par exemple, déplacement pour se rendre à une réunion client"

#: app/templates/invoices/edit.html:173
msgid "Linked expense - title cannot be edited"
msgstr "Dépense liée – le titre ne peut pas être modifié"

#: app/templates/invoices/edit.html:176
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:179
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:180 app/templates/projects/add_cost.html:40
#: app/templates/projects/edit_cost.html:47
#: app/templates/quotes/_edit_quote_form_scripts.html:185
#: app/templates/quotes/edit.html:161 app/utils/i18n_helpers.py:164
#: app/utils/i18n_helpers.py:181
msgid "Travel"
msgstr "Voyage"

#: app/templates/invoices/edit.html:181
#: app/templates/quotes/_edit_quote_form_scripts.html:186
#: app/templates/quotes/edit.html:162 app/utils/i18n_helpers.py:165
#: app/utils/i18n_helpers.py:182
msgid "Meals"
msgstr "Repas"

#: app/templates/invoices/edit.html:182 app/utils/i18n_helpers.py:166
#: app/utils/i18n_helpers.py:183
msgid "Accommodation"
msgstr "Hébergement"

#: app/templates/invoices/edit.html:183
#: app/templates/quotes/_edit_quote_form_scripts.html:187
#: app/templates/quotes/edit.html:163 app/utils/i18n_helpers.py:167
#: app/utils/i18n_helpers.py:184
msgid "Supplies"
msgstr "Fournitures"

#: app/templates/invoices/edit.html:184 app/utils/i18n_helpers.py:168
#: app/utils/i18n_helpers.py:185
msgid "Software"
msgstr "Logiciel"

#: app/templates/invoices/edit.html:185 app/templates/projects/add_cost.html:43
#: app/templates/projects/edit_cost.html:50
#: app/templates/quotes/_edit_quote_form_scripts.html:189
#: app/templates/quotes/edit.html:165 app/utils/i18n_helpers.py:169
#: app/utils/i18n_helpers.py:186
msgid "Equipment"
msgstr "Équipement"

#: app/templates/invoices/edit.html:186 app/templates/projects/add_cost.html:42
#: app/templates/projects/edit_cost.html:49
#: app/templates/quotes/_edit_quote_form_scripts.html:188
#: app/templates/quotes/edit.html:164 app/utils/i18n_helpers.py:170
#: app/utils/i18n_helpers.py:187
msgid "Services"
msgstr "Services"

#: app/templates/invoices/edit.html:187 app/utils/i18n_helpers.py:171
#: app/utils/i18n_helpers.py:188
msgid "Marketing"
msgstr "Commercialisation"

#: app/templates/invoices/edit.html:188 app/utils/i18n_helpers.py:172
#: app/utils/i18n_helpers.py:189
msgid "Training"
msgstr "Entraînement"

#: app/templates/invoices/edit.html:189 app/templates/invoices/edit.html:256
#: app/templates/invoices/edit.html:616 app/templates/kiosk/dashboard.html:203
#: app/templates/projects/add_cost.html:45
#: app/templates/projects/add_good.html:35
#: app/templates/projects/edit_cost.html:52
#: app/templates/projects/edit_good.html:35
#: app/templates/quotes/_edit_quote_form_scripts.html:190
#: app/templates/quotes/_edit_quote_form_scripts.html:224
#: app/templates/quotes/edit.html:166 app/templates/quotes/edit.html:223
#: app/utils/i18n_helpers.py:118 app/utils/i18n_helpers.py:134
#: app/utils/i18n_helpers.py:173 app/utils/i18n_helpers.py:190
msgid "Other"
msgstr "Autre"

#: app/templates/invoices/edit.html:193
msgid "Linked expense - amount cannot be edited"
msgstr "Dépense liée - le montant ne peut pas être modifié"

#: app/templates/invoices/edit.html:196
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:199
msgid "Unlink expense from invoice"
msgstr "Dissocier les dépenses de la facture"

#: app/templates/invoices/edit.html:209
msgid "Expenses Subtotal"
msgstr "Sous-total des dépenses"

#: app/templates/invoices/edit.html:220 app/templates/invoices/view.html:203
#: app/templates/projects/goods.html:6
msgid "Extra Goods"
msgstr "Marchandises supplémentaires"

#: app/templates/invoices/edit.html:223
msgid "Products, materials, licenses, and other goods"
msgstr "Produits, matériaux, licences et autres biens"

#: app/templates/invoices/edit.html:226 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:236 app/templates/invoices/edit.html:263
#: app/templates/invoices/edit.html:623 app/templates/quotes/create.html:67
#: app/templates/quotes/create.html:129 app/templates/quotes/edit.html:72
#: app/templates/quotes/edit.html:110 app/templates/quotes/edit.html:203
msgid "Price"
msgstr "Prix"

#: app/templates/invoices/edit.html:245 app/templates/invoices/edit.html:605
msgid "e.g., Software License"
msgstr "par exemple, licence de logiciel"

#: app/templates/invoices/edit.html:252 app/templates/invoices/edit.html:612
#: app/templates/projects/add_good.html:31
#: app/templates/projects/edit_good.html:31
#: app/templates/quotes/_edit_quote_form_scripts.html:220
#: app/templates/quotes/edit.html:219
msgid "Product"
msgstr "Produit"

#: app/templates/invoices/edit.html:253 app/templates/invoices/edit.html:613
#: app/templates/projects/add_good.html:32
#: app/templates/projects/edit_good.html:32
#: app/templates/quotes/_edit_quote_form_scripts.html:221
#: app/templates/quotes/edit.html:220
msgid "Service"
msgstr "Service"

#: app/templates/invoices/edit.html:254 app/templates/invoices/edit.html:614
#: app/templates/projects/add_good.html:33
#: app/templates/projects/edit_good.html:33
#: app/templates/quotes/_edit_quote_form_scripts.html:222
#: app/templates/quotes/edit.html:221
msgid "Material"
msgstr "Matériel"

#: app/templates/invoices/edit.html:269 app/templates/invoices/edit.html:629
msgid "Remove good"
msgstr "Supprimer le bien"

#: app/templates/invoices/edit.html:279
msgid "Goods Subtotal"
msgstr "Sous-total des marchandises"

#: app/templates/invoices/edit.html:297
msgid "Live Preview"
msgstr "Aperçu en direct"

#: app/templates/invoices/edit.html:317
msgid "Payment"
msgstr "Paiement"

#: app/templates/invoices/edit.html:342
msgid "Goods"
msgstr "Marchandises"

#: app/templates/invoices/edit.html:378
msgid "Generate from Time/Costs"
msgstr "Générer à partir du temps/des coûts"

#: app/templates/invoices/edit.html:379 app/templates/invoices/view.html:40
msgid "Record Payment"
msgstr "Enregistrer le paiement"

#: app/templates/invoices/edit.html:380 app/templates/invoices/view.html:17
#: app/templates/mileage/list.html:66 app/templates/per_diem/list.html:54
#: app/templates/quotes/view.html:37 app/templates/reports/summary.html:9
#: app/templates/timer/time_entries_overview.html:54
#: app/templates/timer/time_entries_overview.html:56
msgid "Export PDF"
msgstr "Exporter un PDF"

#: app/templates/invoices/edit.html:381 app/templates/mileage/list.html:63
#: app/templates/per_diem/list.html:51
#: app/templates/timer/time_entries_overview.html:45
#: app/templates/timer/time_entries_overview.html:47
msgid "Export CSV"
msgstr "Exporter au format CSV"

#: app/templates/invoices/edit.html:382
msgid "Duplicate Invoice"
msgstr "Facture en double"

#: app/templates/invoices/edit.html:666
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:668
msgid "Unlink Expense"
msgstr "Dissocier les dépenses"

#: app/templates/invoices/edit.html:669
msgid "Unlink"
msgstr "Dissocier"

#: app/templates/invoices/edit.html:720
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/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:31
#: app/templates/projects/dashboard.html:290
#: app/templates/projects/time_entries_overview.html:61
#: app/templates/reports/iterative_view.html:32
#: app/templates/reports/time_entries_report.html:85
msgid "entries"
msgstr "entrées"

#: app/templates/invoices/generate_from_time.html:67
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:72
msgid "Uninvoiced Project Costs"
msgstr "Coûts du projet non facturés"

#: app/templates/invoices/generate_from_time.html:86
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:91
msgid "Uninvoiced Billable Expenses"
msgstr "Dépenses facturables non facturées"

#: app/templates/invoices/generate_from_time.html:101
#: app/templates/invoices/pdf_default.html:120
#: app/utils/pdf_generator_fallback.py:289
msgid "Vendor"
msgstr "Fournisseur"

#: app/templates/invoices/generate_from_time.html:109
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:114
msgid "Project Extra Goods"
msgstr "Projet de biens supplémentaires"

#: app/templates/invoices/generate_from_time.html:131
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:137
msgid "Add Selected to Invoice"
msgstr "Ajouter la sélection à la facture"

#: app/templates/invoices/generate_from_time.html:145
msgid "Selection Summary"
msgstr "Résumé de la sélection"

#: app/templates/invoices/generate_from_time.html:146
msgid "Total available hours"
msgstr "Nombre total d'heures disponibles"

#: app/templates/invoices/generate_from_time.html:147
msgid "Total available costs"
msgstr "Coûts totaux disponibles"

#: app/templates/invoices/generate_from_time.html:148
msgid "Total available expenses"
msgstr "Total des dépenses disponibles"

#: app/templates/invoices/generate_from_time.html:149
msgid "Total available goods"
msgstr "Total des biens disponibles"

#: app/templates/invoices/generate_from_time.html:152
msgid "Prepaid Hours Overview"
msgstr "Aperçu des heures prépayées"

#: app/templates/invoices/generate_from_time.html:154
#, 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:161
#, python-format
msgid "Consumed: %(consumed)s h • Remaining: %(remaining)s h"
msgstr "Consommé : %(consumed)s h • Restant : %(remaining)s h"

#: app/templates/invoices/generate_from_time.html:166
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:175
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:176
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:177
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:178
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:194
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:105
msgid "Delete Selected Invoices"
msgstr "Supprimer les factures sélectionnées"

#: app/templates/invoices/list.html:125
msgid "Change Status for Selected Invoices"
msgstr "Modifier le statut des factures sélectionnées"

#: app/templates/invoices/list.html:126 app/templates/invoices/list.html:128
msgid "Select Status"
msgstr ""

#: app/templates/invoices/list.html:135
#: app/templates/timer/time_entries_overview.html:202
#: app/templates/timer/view_timer.html:151
msgid "Invoice Reference"
msgstr ""

#: app/templates/invoices/list.html:136
msgid "e.g., Payment confirmation number"
msgstr ""

#: app/templates/invoices/list.html:153 app/templates/invoices/list.html:176
#: app/templates/invoices/view.html:365 app/templates/invoices/view.html:388
msgid "Delete Invoice"
msgstr "Supprimer la facture"

#: app/templates/invoices/list.html:161 app/templates/invoices/view.html:373
#: app/templates/kanban/columns.html:149
msgid "Warning:"
msgstr "Avertissement:"

#: app/templates/invoices/list.html:164 app/templates/invoices/view.html:376
msgid "Are you sure you want to delete invoice"
msgstr "Êtes-vous sûr de vouloir supprimer la facture"

#: app/templates/invoices/list.html:166 app/templates/invoices/view.html:378
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:54 app/utils/pdf_generator.py:1124
#: app/utils/pdf_generator_fallback.py:167
msgid "INVOICE"
msgstr "FACTURE"

#: app/templates/invoices/pdf_default.html:56 app/utils/pdf_generator.py:1126
msgid "Invoice #"
msgstr "Facture #"

#: app/templates/invoices/pdf_default.html:66 app/utils/pdf_generator.py:1137
msgid "Bill To"
msgstr "Facturer à"

#: app/templates/invoices/pdf_default.html:89 app/utils/pdf_generator.py:1155
#: app/utils/pdf_generator_fallback.py:240
msgid "Quantity (Hours)"
msgstr "Quantité (heures)"

#: app/templates/invoices/pdf_default.html:101
#, 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:117
#: app/utils/pdf_generator_fallback.py:287
msgid "Expense"
msgstr "Frais"

#: app/templates/invoices/pdf_default.html:153
#: app/templates/quotes/pdf_default.html:117
#: app/utils/pdf_generator_fallback.py:305
#: app/utils/pdf_generator_fallback.py:616
msgid "Subtotal:"
msgstr "Total:"

#: app/templates/invoices/pdf_default.html:158
#: app/templates/quotes/pdf_default.html:140
#: app/utils/pdf_generator_fallback.py:312
#, python-format
msgid "Tax (%(rate).2f%%):"
msgstr "Taxe (%(rate).2f%%) :"

#: app/templates/invoices/pdf_default.html:163
#: app/templates/quotes/pdf_default.html:145
#: app/utils/pdf_generator_fallback.py:317
msgid "Total Amount:"
msgstr "Montant total:"

#: app/templates/invoices/pdf_default.html:174 app/utils/pdf_generator.py:1347
#: app/utils/pdf_generator_fallback.py:377
msgid "Notes:"
msgstr "Remarques :"

#: app/templates/invoices/pdf_default.html:180 app/utils/pdf_generator.py:1357
#: app/utils/pdf_generator_fallback.py:382
msgid "Terms:"
msgstr "Termes:"

#: app/templates/invoices/pdf_default.html:189
#: app/templates/quotes/pdf_default.html:171 app/utils/pdf_generator.py:1378
#: app/utils/pdf_generator_fallback.py:394
msgid "Payment Information:"
msgstr "Informations de paiement :"

#: app/templates/invoices/pdf_default.html:192
#: app/templates/quotes/pdf_default.html:162
#: app/templates/quotes/pdf_default.html:175 app/utils/pdf_generator.py:1175
#: app/utils/pdf_generator_fallback.py:399
#: app/utils/pdf_generator_fallback.py:652
msgid "Terms & Conditions:"
msgstr "Conditions générales :"

#: app/templates/invoices/view.html:32
msgid "Download UBL"
msgstr ""

#: app/templates/invoices/view.html:37
msgid "Pay Online"
msgstr ""

#: app/templates/invoices/view.html:77
msgid "Payment Reference"
msgstr ""

#: app/templates/invoices/view.html:122
msgid "PEPPOL compliance: the following are missing"
msgstr ""

#: app/templates/invoices/view.html:135
msgid "Invoice Approval"
msgstr ""

#: app/templates/invoices/view.html:136
msgid "Request approval before sending this invoice to the client."
msgstr ""

#: app/templates/invoices/view.html:260 app/templates/invoices/view.html:349
msgid "Payment History"
msgstr "Historique des paiements"

#: app/templates/invoices/view.html:497
msgid "Send Invoice via Email"
msgstr "Envoyer la facture par e-mail"

#: app/templates/issues/edit.html:13 app/templates/issues/view.html:12
msgid "Edit Issue"
msgstr ""

#: app/templates/issues/edit.html:72 app/templates/issues/new.html:66
#: app/templates/issues/view.html:74 app/templates/issues/view.html:143
#: app/templates/recurring_tasks/form.html:108
#: app/templates/tasks/create.html:108 app/templates/tasks/edit.html:116
#: app/templates/tasks/overdue.html:54
msgid "Unassigned"
msgstr "Non attribué"

#: app/templates/issues/list.html:15 app/templates/issues/list.html:166
#: app/templates/issues/new.html:77
msgid "Create Issue"
msgstr ""

#: app/templates/issues/list.html:28
msgid "Filter Issues"
msgstr ""

#: app/templates/issues/list.html:33
msgid "Search by title or description"
msgstr ""

#: app/templates/issues/list.html:80 app/templates/tasks/my_tasks.html:178
msgid "Apply Filters"
msgstr "Appliquer des filtres"

#: app/templates/issues/list.html:155 app/templates/main/search.html:101
#: app/templates/project_templates/list.html:104
#: app/templates/reports/time_entries_report.html:144
#: app/utils/pdf_generator_fallback.py:665
msgid "Page"
msgstr "Page"

#: app/templates/issues/list.html:155 app/templates/main/search.html:101
#: app/templates/project_templates/list.html:104
#: app/templates/projects/dashboard.html:57
#: app/templates/reports/time_entries_report.html:144
msgid "of"
msgstr "de"

#: app/templates/issues/list.html:169
#, fuzzy
msgid "No issues found"
msgstr "Aucun utilisateur trouvé."

#: app/templates/issues/list.html:170
msgid "No issues match your filters. Create an issue or adjust your filters."
msgstr ""

#: app/templates/issues/new.html:13
msgid "Create New Issue"
msgstr ""

#: app/templates/issues/view.html:16
msgid "Are you sure you want to delete this issue?"
msgstr ""

#: app/templates/issues/view.html:16
msgid "Delete Issue"
msgstr ""

#: app/templates/issues/view.html:38 app/templates/main/help.html:30
#: app/templates/main/help.html:279
msgid "Task Management"
msgstr "Gestion des tâches"

#: app/templates/issues/view.html:49
msgid "Link to existing task"
msgstr ""

#: app/templates/issues/view.html:53
msgid "Select a task"
msgstr ""

#: app/templates/issues/view.html:59
msgid "Link"
msgstr ""

#: app/templates/issues/view.html:64
msgid "Create new task from this issue"
msgstr ""

#: app/templates/issues/view.html:154
msgid "Submitted By"
msgstr ""

#: app/templates/kanban/board.html:5
msgid "Kanban"
msgstr "Kanban"

#: app/templates/kanban/board.html:47 app/templates/tasks/_kanban.html:14
msgid "Manage Columns"
msgstr "Gérer les colonnes"

#: app/templates/kanban/board.html:56
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:61
msgid "Kanban board"
msgstr "Tableau Kanban"

#: app/templates/kanban/board.html:113
msgid "moved to"
msgstr "déménagé à"

#: app/templates/kanban/board.html:147
#: app/templates/projects/_kanban_tailwind.html:86
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 app/templates/timer/edit_timer.html:407
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: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: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/reports/builder.html:66 app/templates/tasks/create.html:80
#: app/templates/tasks/edit.html:89 app/templates/timer/bulk_entry.html:154
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/kiosk/base.html:112
msgid "Keyboard Shortcuts (Press ?)"
msgstr ""

#: app/templates/kiosk/base.html:112
msgid "Show keyboard shortcuts"
msgstr ""

#: app/templates/kiosk/base.html:116 app/templates/kiosk/login.html:72
msgid "Toggle dark mode"
msgstr "Activer le mode sombre"

#: app/templates/kiosk/base.html:127
msgid "Logout from kiosk mode"
msgstr ""

#: app/templates/kiosk/base.html:143
msgid "Scan"
msgstr ""

#: app/templates/kiosk/base.html:147
msgid "Adjust Stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:10
msgid "Close keyboard shortcuts"
msgstr ""

#: app/templates/kiosk/dashboard.html:43
msgid "Scan Barcode or Enter SKU"
msgstr ""

#: app/templates/kiosk/dashboard.html:45
msgid "Use a barcode scanner or type the SKU manually"
msgstr ""

#: app/templates/kiosk/dashboard.html:55
msgid "Scan barcode or enter SKU..."
msgstr ""

#: app/templates/kiosk/dashboard.html:58
msgid "Barcode or SKU input"
msgstr ""

#: app/templates/kiosk/dashboard.html:64
msgid "Use Camera to Scan"
msgstr ""

#: app/templates/kiosk/dashboard.html:65
msgid "Open camera scanner"
msgstr ""

#: app/templates/kiosk/dashboard.html:91
msgid "Close camera scanner"
msgstr ""

#: app/templates/kiosk/dashboard.html:93
msgid "Close Camera"
msgstr ""

#: app/templates/kiosk/dashboard.html:174
msgid "Decrease quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:183
msgid "Adjustment quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:185
msgid "Increase quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:198
msgid "Kiosk adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:199
msgid "Physical count"
msgstr ""

#: app/templates/kiosk/dashboard.html:200
msgid "Found"
msgstr ""

#: app/templates/kiosk/dashboard.html:201
msgid "Damaged"
msgstr ""

#: app/templates/kiosk/dashboard.html:211
msgid "Apply stock adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:213
msgid "Apply Adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:218
msgid "Undo last adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:220
msgid "Undo Last Adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:271
msgid "Transfer quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:275
msgid "Transfer stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:277
msgid "Transfer Stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:295
msgid "Stop timer"
msgstr ""

#: app/templates/kiosk/dashboard.html:297 app/templates/tasks/_kanban.html:51
#: app/templates/tasks/my_tasks.html:336 app/templates/timer/timer_page.html:90
msgid "Stop Timer"
msgstr "Arrêter la minuterie"

#: app/templates/kiosk/dashboard.html:309
msgid "Select project..."
msgstr ""

#: app/templates/kiosk/dashboard.html:315
msgid "No projects available"
msgstr ""

#: app/templates/kiosk/dashboard.html:321
msgid "No active projects found. Please create a project first."
msgstr ""

#: app/templates/kiosk/dashboard.html:337
#: app/templates/kiosk/dashboard.html:400 app/templates/main/dashboard.html:684
#: app/templates/main/dashboard.html:752
#: app/templates/timer/bulk_entry.html:333
#: app/templates/timer/calendar.html:160 app/templates/timer/calendar.html:681
#: app/templates/timer/calendar.html:691 app/templates/timer/calendar.html:700
#: app/templates/timer/calendar.html:705
#: app/templates/timer/manual_entry.html:81
#: app/templates/timer/manual_entry.html:347
#: app/templates/timer/timer_page.html:163
#: app/templates/timer/timer_page.html:263
msgid "No task"
msgstr "Aucune tâche"

#: app/templates/kiosk/dashboard.html:343
msgid "Tasks will load after selecting a project"
msgstr ""

#: app/templates/kiosk/dashboard.html:348 app/templates/main/dashboard.html:692
#: app/templates/main/dashboard.html:762
msgid "What are you working on?"
msgstr "Sur quoi travaillez-vous ?"

#: app/templates/kiosk/dashboard.html:351
msgid "Start timer"
msgstr ""

#: app/templates/kiosk/dashboard.html:369
msgid "Recent Items"
msgstr ""

#: app/templates/kiosk/login.html:6
msgid "Kiosk Login"
msgstr ""

#: app/templates/kiosk/login.html:40
msgid "Quick access for warehouse operations"
msgstr ""

#: app/templates/kiosk/login.html:46
msgid "Barcode scanning"
msgstr ""

#: app/templates/kiosk/login.html:52
msgid "Stock management"
msgstr ""

#: app/templates/kiosk/login.html:58
msgid "Time tracking"
msgstr ""

#: app/templates/kiosk/login.html:68
msgid "Sign in to Kiosk Mode"
msgstr ""

#: app/templates/kiosk/login.html:69
msgid "Select your username to continue"
msgstr ""

#: app/templates/kiosk/login.html:72
msgid "Toggle Theme"
msgstr ""

#: app/templates/kiosk/login.html:98
msgid "Select User"
msgstr ""

#: app/templates/kiosk/login.html:126
msgid "your-username"
msgstr ""

#: app/templates/kiosk/login.html:159
msgid "Standard Login"
msgstr ""

#: app/templates/leads/convert_to_client.html:4
#: app/templates/leads/convert_to_client.html:10
#: app/templates/leads/convert_to_client.html:15
#: app/templates/leads/convert_to_client.html:32
#: app/templates/leads/view.html:17
msgid "Convert to Client"
msgstr ""

#: app/templates/leads/convert_to_client.html:21
msgid "This will create a new client and primary contact from this lead, then mark the lead as converted."
msgstr ""

#: app/templates/leads/convert_to_client.html:23
#, fuzzy
msgid "Lead summary"
msgstr "Résumé"

#: app/templates/leads/convert_to_deal.html:4
#: app/templates/leads/convert_to_deal.html:10
#: app/templates/leads/convert_to_deal.html:15
#: app/templates/leads/convert_to_deal.html:60 app/templates/leads/view.html:18
msgid "Convert to Deal"
msgstr ""

#: app/templates/leads/form.html:55 app/templates/leads/list.html:35
#: app/templates/leads/list.html:55 app/templates/leads/list.html:83
#: app/templates/leads/view.html:67 app/templates/reports/user_report.html:84
#: app/templates/timer/calendar.html:889
#: app/templates/timer/edit_timer.html:309
#: app/templates/timer/view_timer.html:181
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 app/templates/leads/view.html:96
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:130
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:54 app/templates/leads/list.html:78
#: app/templates/leads/view.html:87
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/leads/view.html:19
msgid "Mark this lead as lost?"
msgstr ""

#: app/templates/leads/view.html:21
msgid "Mark Lost"
msgstr ""

#: app/templates/leads/view.html:30
msgid "Lead"
msgstr ""

#: app/templates/leads/view.html:72
msgid "No contact details yet"
msgstr ""

#: app/templates/leads/view.html:78
msgid "Lead Details"
msgstr ""

#: 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:24
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:35 app/templates/main/help.html:32
msgid "Invoicing"
msgstr "Facturation"

#: app/templates/main/about.html:45
msgid "TimeTracker is free and open source. You can donate or buy a supporter license — features are never locked."
msgstr ""

#: app/templates/main/about.html:55 app/templates/main/help.html:111
msgid "Smart Timers"
msgstr "Minuteries intelligentes"

#: app/templates/main/about.html:57
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:62 app/templates/main/help.html:29
#: app/templates/main/help.html:236
msgid "Client Management"
msgstr "Gestion des clients"

#: app/templates/main/about.html:64
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:69
msgid "Task System"
msgstr "Système de tâches"

#: app/templates/main/about.html:71
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:76
msgid "PDF Invoices"
msgstr "Factures PDF"

#: app/templates/main/about.html:78
msgid "Generate professional invoices from tracked time"
msgstr "Générez des factures professionnelles à partir du temps suivi"

#: app/templates/main/about.html:85 app/templates/main/help.html:427
msgid "Core Features"
msgstr "Fonctionnalités principales"

#: app/templates/main/about.html:87
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:88
msgid "Manual time entry with notes and tags"
msgstr "Saisie manuelle du temps avec notes et balises"

#: app/templates/main/about.html:89
msgid "Client and project organization"
msgstr "Organisation client et projet"

#: app/templates/main/about.html:90
msgid "Role-based access and user profiles"
msgstr "Accès basé sur les rôles et profils d'utilisateurs"

#: app/templates/main/about.html:94
msgid "Advanced Features"
msgstr "Fonctionnalités avancées"

#: app/templates/main/about.html:96
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:97
msgid "Visual analytics and detailed reporting"
msgstr "Analyses visuelles et rapports détaillés"

#: app/templates/main/about.html:98
msgid "REST API for integrations"
msgstr "API REST pour les intégrations"

#: app/templates/main/about.html:99
msgid "PWA capabilities and mobile-friendly UI"
msgstr "Capacités PWA et interface utilisateur adaptée aux mobiles"

#: app/templates/main/about.html:106
msgid "Platform Support"
msgstr "Prise en charge de la plateforme"

#: app/templates/main/about.html:109
msgid "Web Application"
msgstr "Application Web"

#: app/templates/main/about.html:111
msgid "Desktop browsers (Chrome, Firefox, Safari, Edge)"
msgstr "Navigateurs de bureau (Chrome, Firefox, Safari, Edge)"

#: app/templates/main/about.html:112
msgid "Mobile responsive design"
msgstr "Conception réactive mobile"

#: app/templates/main/about.html:113
msgid "Progressive Web App (PWA)"
msgstr "Application Web progressive (PWA)"

#: app/templates/main/about.html:114
msgid "Touch-friendly tablet interface"
msgstr "Interface tablette tactile"

#: app/templates/main/about.html:118
msgid "Operating Systems"
msgstr "Systèmes d'exploitation"

#: app/templates/main/about.html:120
msgid "Windows, macOS, Linux"
msgstr "Windows, macOS, Linux"

#: app/templates/main/about.html:121
msgid "Android and iOS (browser)"
msgstr "Android et iOS (navigateur)"

#: app/templates/main/about.html:122
msgid "Raspberry Pi support"
msgstr "Prise en charge du Raspberry Pi"

#: app/templates/main/about.html:123
msgid "Dockerized deployment"
msgstr "Déploiement Dockerisé"

#: app/templates/main/about.html:127
msgid "Database Support"
msgstr "Prise en charge de la base de données"

#: app/templates/main/about.html:129
msgid "PostgreSQL (recommended)"
msgstr "PostgreSQL (recommandé)"

#: app/templates/main/about.html:130
msgid "SQLite (dev/test)"
msgstr "SQLite (développement/test)"

#: app/templates/main/about.html:131
msgid "Automatic migrations with Flask-Migrate"
msgstr "Migrations automatiques avec Flask-Migrate"

#: app/templates/main/about.html:132
msgid "Backup and restoration tools"
msgstr "Outils de sauvegarde et de restauration"

#: app/templates/main/about.html:140
msgid "Technical Specifications"
msgstr "Spécifications techniques"

#: app/templates/main/about.html:143
msgid "Technology Stack"
msgstr "Pile technologique"

#: app/templates/main/about.html:145
msgid "Backend"
msgstr "Back-end"

#: app/templates/main/about.html:146
msgid "Frontend"
msgstr "L'extrémité avant"

#: app/templates/main/about.html:148
msgid "Deployment"
msgstr "Déploiement"

#: app/templates/main/about.html:152
msgid "Key Capabilities"
msgstr "Capacités clés"

#: app/templates/main/about.html:154
msgid "Real-time"
msgstr "En temps réel"

#: app/templates/main/about.html:155
msgid "i18n"
msgstr "i18n"

#: app/templates/main/about.html:165
msgid "Open Source & Community"
msgstr "Open Source et Communauté"

#: app/templates/main/about.html:168
msgid "Open Source Benefits"
msgstr "Avantages de l'Open Source"

#: app/templates/main/about.html:170
msgid "Full source code available on GitHub"
msgstr "Code source complet disponible sur GitHub"

#: app/templates/main/about.html:171
msgid "Licensed under GPL v3.0"
msgstr "Sous licence GPL v3.0"

#: app/templates/main/about.html:172
msgid "Community-driven development"
msgstr "Développement axé sur la communauté"

#: app/templates/main/about.html:173
msgid "Transparent issue tracking and bug reports"
msgstr "Suivi transparent des problèmes et rapports de bogues"

#: app/templates/main/about.html:177
msgid "Deployment Options"
msgstr "Options de déploiement"

#: app/templates/main/about.html:179
msgid "Docker images (GHCR)"
msgstr "Images Docker (GHCR)"

#: app/templates/main/about.html:180
msgid "Self-hosted deployment with full control"
msgstr "Déploiement auto-hébergé avec contrôle total"

#: app/templates/main/about.html:181
msgid "Cloud-ready with Compose configs"
msgstr "Prêt pour le cloud avec les configurations Compose"

#: app/templates/main/about.html:187
msgid "View on GitHub"
msgstr "Voir sur GitHub"

#: app/templates/main/about.html:191 app/templates/main/donate.html:201
#, fuzzy
msgid "Support updates"
msgstr "Fonctionnalités prises en charge"

#: app/templates/main/about.html:205 app/templates/main/donate.html:17
msgid "Support TimeTracker Development"
msgstr ""

#: app/templates/main/about.html:208
msgid "TimeTracker is free and open-source. Support updates and new features — or remove prompts with a one-time key."
msgstr ""

#: app/templates/main/about.html:219 app/templates/main/donate.html:49
msgid "Remove prompts with a one-time key."
msgstr ""

#: app/templates/main/about.html:230
msgid "Getting Help & Resources"
msgstr "Obtenir de l'aide et des ressources"

#: app/templates/main/about.html:236 app/templates/main/help.html:767
msgid "Documentation"
msgstr "Documentation"

#: app/templates/main/about.html:237
msgid "Step-by-step guides for all features."
msgstr "Guides étape par étape pour toutes les fonctionnalités."

#: app/templates/main/about.html:239
msgid "View Help"
msgstr "Afficher l'aide"

#: app/templates/main/about.html:246
msgid "System Information"
msgstr "Informations système"

#: app/templates/main/about.html:247
msgid "Status, versions, and configuration details."
msgstr "Statut, versions et détails de configuration."

#: app/templates/main/about.html:253
msgid "Admin access required"
msgstr "Accès administrateur requis"

#: app/templates/main/about.html:260 app/templates/main/help.html:777
msgid "Community Support"
msgstr "Soutien communautaire"

#: app/templates/main/about.html:261
msgid "Report issues, request features, contribute."
msgstr "Signaler des problèmes, demander des fonctionnalités, contribuer."

#: app/templates/main/about.html:263
msgid "GitHub Issues"
msgstr "Problèmes GitHub"

#: app/templates/main/dashboard.html:16
#, python-format
msgid "Logged %(duration)s on %(project)s"
msgstr ""

#: app/templates/main/dashboard.html:22 app/templates/main/dashboard.html:241
#, fuzzy
msgid "View time entries"
msgstr "Afficher toutes les entrées de temps"

#: app/templates/main/dashboard.html:29
msgid "Here's a quick overview of your work."
msgstr "Voici un bref aperçu de votre travail."

#: app/templates/main/dashboard.html:43
#, fuzzy
msgid "Start timer with same project, task and notes as last entry"
msgstr "Minuteries de démarrage/arrêt avec association de projets et de tâches"

#: app/templates/main/dashboard.html:44
#, fuzzy
msgid "Repeat last"
msgstr "Créé à"

#: app/templates/main/dashboard.html:46
#, fuzzy
msgid "Start timer with last project and notes?"
msgstr "Minuteries de démarrage/arrêt avec association de projets et de tâches"

#: app/templates/main/dashboard.html:53 app/templates/main/dashboard.html:54
#: app/templates/reports/builder.html:24
msgid "Quick start"
msgstr ""

#: app/templates/main/dashboard.html:70
#, fuzzy
msgid "Paused"
msgstr "Pause"

#: app/templates/main/dashboard.html:73 app/templates/timer/edit_timer.html:296
#: app/templates/timer/manual_entry.html:122
#: app/templates/timer/timer_page.html:95
#, fuzzy
msgid "Break"
msgstr "Dos"

#: app/templates/main/dashboard.html:78 app/templates/timer/edit_timer.html:425
msgid "Running"
msgstr ""

#: app/templates/main/dashboard.html:81
msgid "Break so far"
msgstr ""

#: app/templates/main/dashboard.html:95
msgid "Started at"
msgstr "Commencé à"

#: app/templates/main/dashboard.html:98
msgid "Elapsed"
msgstr ""

#: app/templates/main/dashboard.html:102
#, fuzzy
msgid "Adjust time"
msgstr "Ajustement"

#: app/templates/main/dashboard.html:106
msgid "Subtract 15 min"
msgstr ""

#: app/templates/main/dashboard.html:107
msgid "Subtract 5 min"
msgstr ""

#: app/templates/main/dashboard.html:108
#, fuzzy
msgid "Add 5 min"
msgstr "Administrateur"

#: app/templates/main/dashboard.html:109
#, fuzzy
msgid "Add 15 min"
msgstr "Administrateur"

#: app/templates/main/dashboard.html:118
#, fuzzy
msgid "Resume timer"
msgstr "Minuteries intelligentes"

#: app/templates/main/dashboard.html:119 app/templates/main/dashboard.html:145
#: app/templates/timer/timer_page.html:76
#, fuzzy
msgid "Resume"
msgstr "Réinitialiser"

#: app/templates/main/dashboard.html:125
msgid "Pause timer (break time will be counted on resume)"
msgstr ""

#: app/templates/main/dashboard.html:126 app/templates/tasks/view.html:21
#: app/templates/timer/timer_page.html:83
msgid "Pause"
msgstr "Pause"

#: app/templates/main/dashboard.html:132
msgid "Stop and save current time"
msgstr ""

#: app/templates/main/dashboard.html:133
msgid "Stop & save"
msgstr ""

#: app/templates/main/dashboard.html:140
msgid "No active timer."
msgstr "Aucune minuterie active."

#: app/templates/main/dashboard.html:142
msgid "Resume your last session or use the buttons above to repeat last / start a new timer."
msgstr ""

#: app/templates/main/dashboard.html:144
#, fuzzy
msgid "Resume last session"
msgstr "Fin de session"

#: app/templates/main/dashboard.html:149
msgid "Click \"Start Timer\" above to begin tracking your time."
msgstr ""

#: app/templates/main/dashboard.html:161
msgid "Today's Hours"
msgstr ""

#: app/templates/main/dashboard.html:169 app/templates/main/dashboard.html:193
#, fuzzy
msgid "overtime"
msgstr "Temps"

#: app/templates/main/dashboard.html:186
msgid "Week's Hours"
msgstr ""

#: app/templates/main/dashboard.html:207
msgid "Month's Hours"
msgstr ""

#: app/templates/main/dashboard.html:214
#, fuzzy
msgid "Overtime (YTD)"
msgstr "Paramètres des heures supplémentaires"

#: app/templates/main/dashboard.html:227
msgid "If this saved you even 1 hour, consider supporting ❤️"
msgstr ""

#: app/templates/main/dashboard.html:227
msgid "Start tracking to see your productivity insights here."
msgstr ""

#: app/templates/main/dashboard.html:227 app/templates/main/dashboard.html:237
msgid "Loading insights…"
msgstr ""

#: app/templates/main/dashboard.html:233
#, fuzzy
msgid "Value insights"
msgstr "Aligner à droite"

#: app/templates/main/dashboard.html:234
#, fuzzy
msgid "Your tracked time at a glance"
msgstr "Suivez le temps. Restez organisé."

#: app/templates/main/dashboard.html:246
#, fuzzy
msgid "Total hours tracked"
msgstr "Heures totales travaillées"

#: app/templates/main/dashboard.html:254
#, fuzzy
msgid "Active days"
msgstr "Alertes actives"

#: app/templates/main/dashboard.html:259
msgid "Hours per day (last 7 days)"
msgstr ""

#: app/templates/main/dashboard.html:260
msgid "Hours per day last seven days"
msgstr ""

#: app/templates/main/dashboard.html:264
msgid "Most productive day"
msgstr ""

#: app/templates/main/dashboard.html:268
msgid "Avg session length"
msgstr ""

#: app/templates/main/dashboard.html:273
#, fuzzy
msgid "Estimated value tracked"
msgstr "Valeur estimée"

#: app/templates/main/dashboard.html:283 app/templates/main/dashboard.html:296
msgid "This week vs last week"
msgstr ""

#: app/templates/main/dashboard.html:284 app/templates/main/dashboard.html:297
msgid "Hours per day (Mon–today vs same days last week)"
msgstr ""

#: app/templates/main/dashboard.html:285
#, fuzzy
msgid "hrs this week"
msgstr "Entrées de temps cette semaine"

#: app/templates/main/dashboard.html:286
msgid "vs last week"
msgstr ""

#: app/templates/main/dashboard.html:287
#, fuzzy
msgid "This week"
msgstr "Semaine"

#: app/templates/main/dashboard.html:288
#, fuzzy
msgid "Last week"
msgstr "L'année dernière"

#: app/templates/main/dashboard.html:289
msgid "Could not load comparison."
msgstr ""

#: app/templates/main/dashboard.html:313
msgid "This week and last week hours by day"
msgstr ""

#: app/templates/main/dashboard.html:327 app/templates/reports/index.html:221
msgid "Recent Entries"
msgstr "Entrées récentes"

#: app/templates/main/dashboard.html:329
#, fuzzy
msgid "View all"
msgstr "Tout afficher"

#: app/templates/main/dashboard.html:369 app/templates/main/search.html:66
#: app/templates/tasks/view.html:81
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:372 app/templates/main/search.html:70
#: app/templates/tasks/view.html:84
msgid "Edit entry"
msgstr "Modifier l'entrée"

#: app/templates/main/dashboard.html:375
msgid "Duplicate entry"
msgstr "Entrée en double"

#: app/templates/main/dashboard.html:382 app/templates/main/search.html:77
#: app/templates/tasks/view.html:91
msgid "Delete entry"
msgstr "Supprimer l'entrée"

#: app/templates/main/dashboard.html:396
msgid "No recent entries found."
msgstr "Aucune entrée récente trouvée."

#: app/templates/main/dashboard.html:397 app/templates/reports/index.html:245
msgid "Start tracking time to see entries here."
msgstr ""

#: app/templates/main/dashboard.html:419
msgid "Weekly Goal"
msgstr "Objectif hebdomadaire"

#: app/templates/main/dashboard.html:441
msgid "Days Left"
msgstr "Jours restants"

#: app/templates/main/dashboard.html:448
msgid "Need"
msgstr "Besoin"

#: app/templates/main/dashboard.html:448
msgid "to reach goal"
msgstr "atteindre l'objectif"

#: app/templates/main/dashboard.html:459
msgid "No Weekly Goal"
msgstr "Aucun objectif hebdomadaire"

#: app/templates/main/dashboard.html:462
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:466
#: app/templates/weekly_goals/create.html:129
#: app/templates/weekly_goals/index.html:146
msgid "Create Goal"
msgstr "Créer un objectif"

#: app/templates/main/dashboard.html:480
#, fuzzy
msgid "Time by project (last 7 days)"
msgstr "Meilleurs projets (30 jours)"

#: app/templates/main/dashboard.html:482
#, fuzzy
msgid "View report"
msgstr "Rapport utilisateur"

#: app/templates/main/dashboard.html:486
#, fuzzy
msgid "Time distribution by project for the last 7 days"
msgstr "Diagrammes circulaires de distribution du temps"

#: app/templates/main/dashboard.html:525
#, fuzzy
msgid "No time logged in the last 7 days."
msgstr "Aucune activité au cours des 30 derniers jours."

#: app/templates/main/dashboard.html:526
#, fuzzy
msgid "Start tracking to see distribution here."
msgstr "Commencer le suivi du temps"

#: app/templates/main/dashboard.html:537
msgid "Top Projects (30 days)"
msgstr "Meilleurs projets (30 jours)"

#: app/templates/main/dashboard.html:575
msgid "No activity in the last 30 days."
msgstr "Aucune activité au cours des 30 derniers jours."

#: app/templates/main/dashboard.html:576
msgid "Start tracking time on projects to see them here."
msgstr ""

#: app/templates/main/dashboard.html:596
msgid "Live"
msgstr ""

#: app/templates/main/dashboard.html:638
#, python-format
msgid "You have tracked %(hours)s hours"
msgstr ""

#: app/templates/main/dashboard.html:639
#, fuzzy, python-format
msgid "You have created %(count)s entries"
msgstr "%(count)d citation(s) en double"

#: app/templates/main/dashboard.html:641
#, fuzzy, python-format
msgid "Reports generated: %(n)s"
msgstr "Erreur lors de la génération du PDF : %(error)s"

#: app/templates/main/dashboard.html:645
msgid "Thank you for supporting development. Sharing TimeTracker still helps a lot."
msgstr ""

#: app/templates/main/dashboard.html:647
#, fuzzy
msgid "Share & support"
msgstr "Prise en charge de la plateforme"

#: app/templates/main/dashboard.html:651
msgid "If this saves you time, consider supporting development — everything stays free and open."
msgstr ""

#: app/templates/main/dashboard.html:654
msgid "Buy License (€25)"
msgstr ""

#: app/templates/main/dashboard.html:685
msgid "Create new task..."
msgstr ""

#: app/templates/main/dashboard.html:686
msgid "Loading tasks..."
msgstr ""

#: app/templates/main/dashboard.html:687
msgid "Enter new task name:"
msgstr ""

#: app/templates/main/dashboard.html:688
msgid "Failed to create task: "
msgstr ""

#: app/templates/main/dashboard.html:690
msgid "Please complete creating the task or select an existing task"
msgstr ""

#: app/templates/main/dashboard.html:698
#: app/templates/timer/manual_entry.html:558
msgid "A task must be selected when logging time for a project"
msgstr ""

#: app/templates/main/dashboard.html:699
#: app/templates/timer/manual_entry.html:581
msgid "A description is required when logging time"
msgstr ""

#: app/templates/main/dashboard.html:700
#: app/templates/timer/manual_entry.html:45
#, fuzzy, python-format
msgid "Description must be at least %(min)s characters"
msgstr "Le mot de passe doit comporter au moins 8 caractères"

#: app/templates/main/dashboard.html:715
#, fuzzy
msgid "Quick start with a template"
msgstr "Guide de démarrage rapide"

#: app/templates/main/dashboard.html:726
#, fuzzy
msgid "All templates"
msgstr "Modèles d'e-mails"

#: app/templates/main/dashboard.html:745
#: app/templates/timer/manual_entry.html:74
#: app/templates/timer/timer_page.html:153
msgid "Select either a project or a client"
msgstr ""

#: app/templates/main/dashboard.html:750
#: app/templates/timer/bulk_entry.html:117
#: app/templates/timer/manual_entry.html:79
msgid "Task (optional)"
msgstr "Tâche (facultatif)"

#: app/templates/main/dashboard.html:756
msgid "Select a project first to load tasks, or choose \"Create new task...\" to add one"
msgstr ""

#: app/templates/main/dashboard.html:760
msgid "Notes (optional)"
msgstr "Remarques (facultatif)"

#: app/templates/main/dashboard.html:767
#, fuzzy
msgid "Tags (optional)"
msgstr "Tâche (facultatif)"

#: app/templates/main/dashboard.html:768
#, fuzzy
msgid "e.g. meeting, dev, admin"
msgstr "par exemple, réunion, développement, administration"

#: app/templates/main/dashboard.html:775
msgid "Comma-separated; recent tags shown as suggestions."
msgstr ""

#: app/templates/main/dashboard.html:784
msgid "Enter a name for the new task."
msgstr ""

#: app/templates/main/dashboard.html:785
#: app/templates/project_templates/create.html:76
#: app/templates/project_templates/edit.html:79
#: app/templates/project_templates/edit.html:105
msgid "Task name"
msgstr ""

#: app/templates/main/dashboard.html:793
msgid "Create task"
msgstr ""

#: app/templates/main/dashboard.html:936
msgid "Task name is required."
msgstr ""

#: app/templates/main/dashboard.html:1546
#: app/templates/timer/edit_timer.html:811
#: app/templates/timer/manual_entry.html:985
msgid "No valid image files selected. Please select PNG, JPG, GIF, or WebP images."
msgstr ""

#: app/templates/main/dashboard.html:1558
#: app/templates/timer/edit_timer.html:823
#: app/templates/timer/manual_entry.html:997
msgid "Uploading"
msgstr ""

#: app/templates/main/dashboard.html:1558
#: app/templates/main/dashboard.html:1605
#: app/templates/timer/edit_timer.html:823
#: app/templates/timer/edit_timer.html:870
#: app/templates/timer/manual_entry.html:997
#: app/templates/timer/manual_entry.html:1044
msgid "images"
msgstr ""

#: app/templates/main/dashboard.html:1559
#: app/templates/timer/edit_timer.html:824
#: app/templates/timer/manual_entry.html:998
msgid "Uploading image"
msgstr ""

#: app/templates/main/dashboard.html:1605
#: app/templates/timer/edit_timer.html:870
#: app/templates/timer/manual_entry.html:1044
msgid "Successfully uploaded"
msgstr ""

#: app/templates/main/dashboard.html:1616
#: app/templates/timer/edit_timer.html:881
#: app/templates/timer/manual_entry.html:1055
msgid "image(s) failed to upload"
msgstr ""

#: app/templates/main/dashboard.html:1625
#: app/templates/timer/edit_timer.html:890
#: app/templates/timer/manual_entry.html:1064
msgid "Failed to upload images. Please try again."
msgstr ""

#: app/templates/main/dashboard.html:1637
#: app/templates/timer/edit_timer.html:902
#: app/templates/timer/manual_entry.html:1076
msgid "Failed to upload images. Please check your connection and try again."
msgstr ""

#: app/templates/main/donate.html:10
msgid "Support Development"
msgstr "Soutenir le développement"

#: app/templates/main/donate.html:20
msgid "Donate to support development — or get a key to remove prompts"
msgstr ""

#: app/templates/main/donate.html:22
msgid "Support updates and keep TimeTracker free for everyone"
msgstr ""

#: app/templates/main/donate.html:29 app/templates/main/donate.html:114
#: app/templates/main/donate.html:275
msgid "Remove prompts with key"
msgstr ""

#: app/templates/main/donate.html:59
msgid "Why Your Support Matters"
msgstr ""

#: app/templates/main/donate.html:63
msgid "TimeTracker is a free, open-source project built with passion and dedication. Your donations directly support:"
msgstr ""

#: app/templates/main/donate.html:70
msgid "Server Infrastructure"
msgstr ""

#: app/templates/main/donate.html:72
msgid "Hosting, databases, and CDN costs to keep TimeTracker fast and reliable"
msgstr ""

#: app/templates/main/donate.html:80
msgid "Feature Development"
msgstr ""

#: app/templates/main/donate.html:82
msgid "New features, improvements, and bug fixes based on your feedback"
msgstr ""

#: app/templates/main/donate.html:90
msgid "Security & Maintenance"
msgstr ""

#: app/templates/main/donate.html:92
msgid "Regular security updates, dependency maintenance, and performance optimization"
msgstr ""

#: app/templates/main/donate.html:100
msgid "Internationalization"
msgstr ""

#: app/templates/main/donate.html:102
msgid "Translation support, localization, and making TimeTracker accessible worldwide"
msgstr ""

#: app/templates/main/donate.html:117
msgid "One key per instance; key sent by email after payment (€25 one-time). No subscription."
msgstr ""

#: app/templates/main/donate.html:122
msgid "Copy your System ID from Admin → Settings → Support visibility."
msgstr ""

#: app/templates/main/donate.html:126
msgid "Buy a key at the link below; you’ll receive it by email."
msgstr ""

#: app/templates/main/donate.html:130
msgid "Paste the code in Admin → Settings → Support visibility and verify."
msgstr ""

#: app/templates/main/donate.html:148
msgid "Your TimeTracker Journey"
msgstr ""

#: app/templates/main/donate.html:155
msgid "Days using TimeTracker"
msgstr ""

#: app/templates/main/donate.html:164
msgid "Time entries tracked"
msgstr ""

#: app/templates/main/donate.html:179
msgid "Thank you for being part of the TimeTracker community!"
msgstr ""

#: app/templates/main/donate.html:188
msgid "How to Support"
msgstr ""

#: app/templates/main/donate.html:191
msgid "Every contribution, no matter the size, makes a difference. Your support helps ensure TimeTracker remains free and continues to evolve."
msgstr ""

#: app/templates/main/donate.html:207
msgid "You'll be redirected to Buy Me a Coffee where you can choose your contribution amount"
msgstr ""

#: app/templates/main/donate.html:215
msgid "The Impact of Your Support"
msgstr ""

#: app/templates/main/donate.html:220
msgid "Enables faster development cycles and quicker feature releases"
msgstr ""

#: app/templates/main/donate.html:224
msgid "Supports better documentation and user guides"
msgstr ""

#: app/templates/main/donate.html:228
msgid "Helps maintain high-quality code and security standards"
msgstr ""

#: app/templates/main/donate.html:232
msgid "Keeps TimeTracker free and accessible for everyone"
msgstr ""

#: app/templates/main/donate.html:241
msgid "Other Ways to Help"
msgstr ""

#: app/templates/main/donate.html:250
msgid "Contribute on GitHub"
msgstr ""

#: app/templates/main/donate.html:252
msgid "Report bugs, suggest features, or submit code"
msgstr ""

#: app/templates/main/donate.html:261
msgid "Help Others"
msgstr ""

#: app/templates/main/donate.html:263
msgid "Share your knowledge in the community"
msgstr ""

#: app/templates/main/donate.html:277
msgid "One-time key per instance; no subscription"
msgstr ""

#: 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:34 app/templates/main/help.html:471
msgid "Reports & Analytics"
msgstr "Rapports et analyses"

#: app/templates/main/help.html:35 app/templates/main/help.html:521
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:653
msgid "Mobile Usage"
msgstr "Utilisation mobile"

#: app/templates/main/help.html:40 app/templates/main/help.html:698
#, fuzzy
msgid "API Documentation"
msgstr "Documentation"

#: app/templates/main/help.html:41
msgid "Troubleshooting"
msgstr "Dépannage"

#: app/templates/main/help.html:50
msgid "TimeTracker Help Center"
msgstr "Centre d'aide TimeTracker"

#: app/templates/main/help.html:51
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:55
msgid "Start Tracking Time"
msgstr "Commencer le suivi du temps"

#: app/templates/main/help.html:58
msgid "View Projects"
msgstr "Voir les projets"

#: app/templates/main/help.html:61
msgid "Generate Reports"
msgstr "Générer des rapports"

#: app/templates/main/help.html:69
#, fuzzy
msgid "API Docs"
msgstr "Jetons API"

#: app/templates/main/help.html:72
msgid "Restart Product Tour"
msgstr ""

#: app/templates/main/help.html:79
msgid "Quick Start Guide"
msgstr "Guide de démarrage rapide"

#: app/templates/main/help.html:82
msgid "For New Users"
msgstr "Pour les nouveaux utilisateurs"

#: app/templates/main/help.html:84
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:85
msgid "Explore the dashboard to see your overview"
msgstr "Explorez le tableau de bord pour voir votre aperçu"

#: app/templates/main/help.html:86
msgid "Start your first timer on an existing project"
msgstr "Démarrez votre premier timer sur un projet existant"

#: app/templates/main/help.html:87
msgid "View your time entries in reports"
msgstr "Afficher vos entrées de temps dans les rapports"

#: app/templates/main/help.html:91
msgid "For Administrators"
msgstr "Pour les administrateurs"

#: app/templates/main/help.html:93
msgid "Set up clients in the Client Management section"
msgstr "Configurer les clients dans la section Gestion des clients"

#: app/templates/main/help.html:94
msgid "Create projects and assign them to clients"
msgstr "Créer des projets et les attribuer aux clients"

#: app/templates/main/help.html:95
msgid "Configure system settings (timezone, currency, etc.)"
msgstr "Configurer les paramètres du système (fuseau horaire, devise, etc.)"

#: app/templates/main/help.html:96
msgid "Manage users and permissions"
msgstr "Gérer les utilisateurs et les autorisations"

#: app/templates/main/help.html:102 app/templates/main/help.html:370
#: app/templates/main/help.html:515
msgid "Pro Tip:"
msgstr "Conseil de pro :"

#: app/templates/main/help.html:102
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:112
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:115 app/templates/timer/calendar.html:890
msgid "Manual Entry"
msgstr "Saisie manuelle"

#: app/templates/main/help.html:116
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:121
msgid "Starting a Timer"
msgstr "Démarrer une minuterie"

#: app/templates/main/help.html:123
msgid "Click the timer icon in the header (round button) to start or stop from any page"
msgstr ""

#: app/templates/main/help.html:124
#, fuzzy
msgid "Or navigate to the Timer page or dashboard"
msgstr "Accédez à la page ou au tableau de bord du minuteur"

#: app/templates/main/help.html:125
msgid "Select a project from the dropdown"
msgstr "Sélectionnez un projet dans la liste déroulante"

#: app/templates/main/help.html:126
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:127
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:128
msgid "Add tags separated by commas (optional)"
msgstr "Ajouter des balises séparées par des virgules (facultatif)"

#: app/templates/main/help.html:129
msgid "Click \"Start Timer\""
msgstr "Cliquez sur \"Démarrer le minuteur\""

#: app/templates/main/help.html:133
msgid "Timer Features"
msgstr "Fonctionnalités de la minuterie"

#: app/templates/main/help.html:135
msgid "Real-time duration display"
msgstr "Affichage de la durée en temps réel"

#: app/templates/main/help.html:136
msgid "Pause and Stop on the dashboard — Pause saves your time so you can resume later"
msgstr ""

#: app/templates/main/help.html:137
msgid "Resume last session with one click (same project/task/notes)"
msgstr ""

#: app/templates/main/help.html:138
msgid "Quick time adjustment (−15 / −5 / +5 / +15 min) while the timer is running"
msgstr ""

#: app/templates/main/help.html:139
msgid "Continues running if browser closes"
msgstr "Continue à fonctionner si le navigateur se ferme"

#: app/templates/main/help.html:140
msgid "Automatic idle detection (configurable)"
msgstr "Détection automatique du ralenti (configurable)"

#: app/templates/main/help.html:141
msgid "One active timer per user (configurable)"
msgstr "Une minuterie active par utilisateur (configurable)"

#: app/templates/main/help.html:142
msgid "WebSocket live updates"
msgstr "Mises à jour en direct de WebSocket"

#: app/templates/main/help.html:147
msgid "Manual Time Entry"
msgstr "Saisie manuelle du temps"

#: app/templates/main/help.html:148
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:151
msgid "Required Information"
msgstr "Informations requises"

#: app/templates/main/help.html:153
msgid "Project selection"
msgstr "Sélection de projets"

#: app/templates/main/help.html:154
msgid "Start date and time"
msgstr "Date et heure de début"

#: app/templates/main/help.html:155
msgid "End date and time"
msgstr "Date et heure de fin"

#: app/templates/main/help.html:159
msgid "Optional Information"
msgstr "Informations facultatives"

#: app/templates/main/help.html:161
msgid "Task assignment"
msgstr "Affectation des tâches"

#: app/templates/main/help.html:162
msgid "Description/notes"
msgstr "Description/remarques"

#: app/templates/main/help.html:163
msgid "Tags for categorization"
msgstr "Balises pour la catégorisation"

#: app/templates/main/help.html:164
msgid "Billable status override"
msgstr "Remplacement du statut facturable"

#: app/templates/main/help.html:170
msgid "Advanced Time Entry Features"
msgstr "Fonctionnalités avancées de saisie du temps"

#: app/templates/main/help.html:173
msgid "Bulk Entry"
msgstr "Entrée groupée"

#: app/templates/main/help.html:174
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:177
msgid "Templates"
msgstr "Modèles"

#: app/templates/main/help.html:178
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:182
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:193
msgid "Project Information"
msgstr "Informations sur le projet"

#: app/templates/main/help.html:195
msgid "Descriptive project name"
msgstr "Nom descriptif du projet"

#: app/templates/main/help.html:196
msgid "Associated client organization"
msgstr "Organisation cliente associée"

#: app/templates/main/help.html:197
msgid "Project details and scope"
msgstr "Détails et portée du projet"

#: app/templates/main/help.html:198
msgid "Active, completed, or archived"
msgstr "Actif, complété ou archivé"

#: app/templates/main/help.html:202
msgid "Billing Information"
msgstr "Informations de facturation"

#: app/templates/main/help.html:204
msgid "Whether time should be tracked for billing"
msgstr "Si le temps doit être suivi pour la facturation"

#: app/templates/main/help.html:205
msgid "Rate for billable time calculations"
msgstr "Tarif pour les calculs de temps facturable"

#: app/templates/main/help.html:206 app/templates/projects/create.html:78
#: app/templates/projects/edit.html:72
msgid "Billing Reference"
msgstr "Référence de facturation"

#: app/templates/main/help.html:206
msgid "PO number or billing code"
msgstr "Numéro de bon de commande ou code de facturation"

#: app/templates/main/help.html:213
msgid "Project Operations"
msgstr "Opérations du projet"

#: app/templates/main/help.html:215
msgid "Create new projects with client relationships"
msgstr "Créer de nouveaux projets avec des relations clients"

#: app/templates/main/help.html:216
msgid "Edit existing projects to update details"
msgstr "Modifier les projets existants pour mettre à jour les détails"

#: app/templates/main/help.html:217
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:218
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:222
msgid "Best Practices"
msgstr "Meilleures pratiques"

#: app/templates/main/help.html:224
msgid "Use descriptive project names"
msgstr "Utilisez des noms de projet descriptifs"

#: app/templates/main/help.html:225
msgid "Set accurate hourly rates for billing"
msgstr "Définir des taux horaires précis pour la facturation"

#: app/templates/main/help.html:226
msgid "Archive instead of delete when possible"
msgstr "Archiver au lieu de supprimer lorsque cela est possible"

#: app/templates/main/help.html:227
msgid "Use billing references for external tracking"
msgstr "Utiliser les références de facturation pour le suivi externe"

#: app/templates/main/help.html:237
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:240
msgid "Client Information"
msgstr "Informations client"

#: app/templates/main/help.html:242
msgid "Organization Name"
msgstr "Nom de l'organisation"

#: app/templates/main/help.html:242
msgid "Company or client name"
msgstr "Nom de l'entreprise ou du client"

#: app/templates/main/help.html:243
msgid "Primary contact details"
msgstr "Coordonnées principales"

#: app/templates/main/help.html:244
msgid "Email & Phone"
msgstr "E-mail et téléphone"

#: app/templates/main/help.html:244
msgid "Contact information"
msgstr "Coordonnées"

#: app/templates/main/help.html:245
msgid "Business address"
msgstr "Adresse professionnelle"

#: app/templates/main/help.html:249
msgid "Benefits"
msgstr "Avantages"

#: app/templates/main/help.html:251
msgid "Dropdown selection prevents typos"
msgstr "La sélection déroulante évite les fautes de frappe"

#: app/templates/main/help.html:252
msgid "Default rates auto-populate projects"
msgstr "Les taux par défaut remplissent automatiquement les projets"

#: app/templates/main/help.html:253
msgid "Consistent client naming"
msgstr "Dénomination cohérente des clients"

#: app/templates/main/help.html:254
msgid "Easier project organization"
msgstr "Organisation de projet plus facile"

#: app/templates/main/help.html:261
msgid "Project Count"
msgstr "Nombre de projets"

#: app/templates/main/help.html:262
msgid "Total and active projects"
msgstr "Projets totaux et actifs"

#: app/templates/main/help.html:267
msgid "Total hours worked"
msgstr "Heures totales travaillées"

#: app/templates/main/help.html:271
msgid "Cost Estimation"
msgstr "Estimation des coûts"

#: app/templates/main/help.html:272
msgid "Estimated billing amounts"
msgstr "Montants de facturation estimés"

#: app/templates/main/help.html:280
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:283
msgid "Task Properties"
msgstr "Propriétés de la tâche"

#: app/templates/main/help.html:285
msgid "Name & Description"
msgstr "Nom et description"

#: app/templates/main/help.html:285
msgid "Clear task identification"
msgstr "Identification claire des tâches"

#: app/templates/main/help.html:286
msgid "Priority Levels"
msgstr "Niveaux de priorité"

#: app/templates/main/help.html:286
msgid "Low, Medium, High, Urgent"
msgstr "Faible, Moyen, Élevé, Urgent"

#: app/templates/main/help.html:287
msgid "Due Dates"
msgstr "Dates d'échéance"

#: app/templates/main/help.html:287
msgid "Deadline tracking"
msgstr "Suivi des délais"

#: app/templates/main/help.html:288
msgid "Assignment"
msgstr "Affectation"

#: app/templates/main/help.html:288
msgid "Task ownership"
msgstr "Propriété des tâches"

#: app/templates/main/help.html:292
msgid "Status Tracking"
msgstr "Suivi du statut"

#: app/templates/main/help.html:294
msgid "To Do - Not started"
msgstr "À faire - Pas commencé"

#: app/templates/main/help.html:295
msgid "In Progress - Currently working"
msgstr "En cours - En cours de travail"

#: app/templates/main/help.html:296
msgid "Review - Ready for review"
msgstr "Révision – Prêt pour la révision"

#: app/templates/main/help.html:297
msgid "Done - Completed"
msgstr "Terminé - Terminé"

#: app/templates/main/help.html:298
msgid "Cancelled - Not needed"
msgstr "Annulé - Pas nécessaire"

#: app/templates/main/help.html:304
msgid "Time Tracking Features"
msgstr "Fonctionnalités de suivi du temps"

#: app/templates/main/help.html:306
msgid "Start timers directly from tasks"
msgstr "Démarrez les minuteries directement à partir des tâches"

#: app/templates/main/help.html:307
msgid "Link time entries to specific tasks"
msgstr "Lier les entrées de temps à des tâches spécifiques"

#: app/templates/main/help.html:308
msgid "Track estimated vs actual hours"
msgstr "Suivez les heures estimées par rapport aux heures réelles"

#: app/templates/main/help.html:309
msgid "Monitor task progress automatically"
msgstr "Surveiller automatiquement la progression des tâches"

#: app/templates/main/help.html:313
msgid "Task Views"
msgstr "Vues des tâches"

#: app/templates/main/help.html:315
msgid "My Tasks - Your assigned tasks"
msgstr "Mes tâches - Vos tâches assignées"

#: app/templates/main/help.html:316
msgid "All Tasks - Complete task list"
msgstr "Toutes les tâches - Liste complète des tâches"

#: app/templates/main/help.html:317
msgid "Overdue Tasks - Past due items"
msgstr "Tâches en retard – Éléments en retard"

#: app/templates/main/help.html:318
msgid "Project Tasks - Tasks within projects"
msgstr "Tâches du projet - Tâches au sein des projets"

#: app/templates/main/help.html:324
msgid "Collaboration Features"
msgstr "Fonctionnalités collaboratives"

#: app/templates/main/help.html:326
msgid "Task Comments - Threaded discussions on tasks"
msgstr "Commentaires sur les tâches – Discussions sur les tâches"

#: app/templates/main/help.html:327
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:328
msgid "User Mentions - Tag team members (if enabled)"
msgstr "Mentions utilisateur – Taguer les membres de l'équipe (si activé)"

#: app/templates/main/help.html:329
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:333
msgid "Markdown Formatting"
msgstr "Formatage Markdown"

#: app/templates/main/help.html:334
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:336
msgid "**Bold**, *Italic*, ~~Strikethrough~~"
msgstr "**Gras**, *Italique*, ~~Barré~~"

#: app/templates/main/help.html:337
msgid "# Headings, - Lists, [Links](url)"
msgstr "# Rubriques, - Listes, [Liens](url)"

#: app/templates/main/help.html:338
msgid "```code blocks```, tables, images"
msgstr "```blocs de code```, tableaux, images"

#: app/templates/main/help.html:347
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:350
msgid "Board Features"
msgstr "Caractéristiques du tableau"

#: app/templates/main/help.html:352
msgid "Customizable columns matching task statuses"
msgstr "Colonnes personnalisables correspondant aux statuts des tâches"

#: app/templates/main/help.html:353
msgid "Drag-and-drop tasks between columns"
msgstr "Glisser-déposer des tâches entre les colonnes"

#: app/templates/main/help.html:354
msgid "Filter by project, user, or priority"
msgstr "Filtrer par projet, utilisateur ou priorité"

#: app/templates/main/help.html:355
msgid "Quick search across all tasks"
msgstr "Recherche rapide dans toutes les tâches"

#: app/templates/main/help.html:359
msgid "Using the Kanban Board"
msgstr "Utiliser le tableau Kanban"

#: app/templates/main/help.html:361
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:362
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:363
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:364
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:370
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:376
msgid "Expense Tracking"
msgstr "Suivi des dépenses"

#: app/templates/main/help.html:377
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:380
msgid "Expense Features"
msgstr "Caractéristiques des dépenses"

#: app/templates/main/help.html:382
msgid "Categorize expenses (travel, meals, supplies, etc.)"
msgstr "Catégoriser les dépenses (déplacements, repas, fournitures, etc.)"

#: app/templates/main/help.html:383
msgid "Attach receipt images and documents"
msgstr "Joindre des images et des documents de reçu"

#: app/templates/main/help.html:384
msgid "Track amounts, tax, and payment methods"
msgstr "Suivez les montants, les taxes et les modes de paiement"

#: app/templates/main/help.html:385
msgid "Approval workflow for expense requests"
msgstr "Workflow d’approbation des demandes de dépenses"

#: app/templates/main/help.html:389
msgid "Billing & Reimbursement"
msgstr "Facturation et remboursement"

#: app/templates/main/help.html:391
msgid "Mark expenses as billable to clients"
msgstr "Marquer les dépenses comme facturables aux clients"

#: app/templates/main/help.html:392
msgid "Include expenses in client invoices"
msgstr "Inclure les dépenses dans les factures des clients"

#: app/templates/main/help.html:393
msgid "Track reimbursement status"
msgstr "Suivre l’état du remboursement"

#: app/templates/main/help.html:394
msgid "Link expenses to specific projects"
msgstr "Lier les dépenses à des projets spécifiques"

#: app/templates/main/help.html:401
msgid "Record Expense"
msgstr "Enregistrer les dépenses"

#: app/templates/main/help.html:402
msgid "Enter details and upload receipt"
msgstr "Entrez les détails et téléchargez le reçu"

#: app/templates/main/help.html:406
msgid "Submit for Approval"
msgstr "Soumettre pour approbation"

#: app/templates/main/help.html:407
msgid "Admin reviews and approves"
msgstr "L'administrateur examine et approuve"

#: app/templates/main/help.html:411
msgid "Invoice/Reimburse"
msgstr "Facture/Remboursement"

#: app/templates/main/help.html:412
msgid "Add to invoice or reimburse"
msgstr "Ajouter à la facture ou rembourser"

#: app/templates/main/help.html:416 app/templates/main/help.html:463
msgid "Track Payment"
msgstr "Suivre le paiement"

#: app/templates/main/help.html:417
msgid "Monitor reimbursement status"
msgstr "Surveiller l'état du remboursement"

#: app/templates/main/help.html:424
msgid "Professional Invoicing"
msgstr "Facturation professionnelle"

#: app/templates/main/help.html:429
msgid "Professional PDF generation"
msgstr "Génération PDF professionnelle"

#: app/templates/main/help.html:430
msgid "Company branding and logos"
msgstr "Image de marque et logos de l'entreprise"

#: app/templates/main/help.html:431
msgid "Automatic invoice numbering"
msgstr "Numérotation automatique des factures"

#: app/templates/main/help.html:432
msgid "Tax calculations"
msgstr "Calculs d'impôts"

#: app/templates/main/help.html:436
msgid "Time Integration"
msgstr "Intégration du temps"

#: app/templates/main/help.html:438
msgid "Generate from time entries"
msgstr "Générer à partir des entrées de temps"

#: app/templates/main/help.html:439
msgid "Smart grouping by task/project"
msgstr "Regroupement intelligent par tâche/projet"

#: app/templates/main/help.html:440
msgid "Prevent double-billing"
msgstr "Prévenir la double facturation"

#: app/templates/main/help.html:441
msgid "Use project hourly rates"
msgstr "Utiliser les taux horaires du projet"

#: app/templates/main/help.html:449
msgid "Set up client and project details"
msgstr "Configurer les détails du client et du projet"

#: app/templates/main/help.html:453
msgid "Add Items"
msgstr "Ajouter des éléments"

#: app/templates/main/help.html:454
msgid "Generate from time or add manually"
msgstr "Générer à partir du temps ou ajouter manuellement"

#: app/templates/main/help.html:458
msgid "Review & Send"
msgstr "Vérifier et envoyer"

#: app/templates/main/help.html:459
msgid "Export PDF and update status"
msgstr "Exporter le PDF et mettre à jour le statut"

#: app/templates/main/help.html:464
msgid "Monitor status and payments"
msgstr "Surveiller le statut et les paiements"

#: app/templates/main/help.html:474
msgid "Standard Reports"
msgstr "Rapports standards"

#: app/templates/main/help.html:476
msgid "Project Report - Time breakdown by project"
msgstr "Rapport de projet - Répartition du temps par projet"

#: app/templates/main/help.html:477
msgid "User Report - Individual performance metrics"
msgstr "Rapport utilisateur – Mesures de performances individuelles"

#: app/templates/main/help.html:478
msgid "Summary Report - Key metrics and trends"
msgstr "Rapport de synthèse – Indicateurs et tendances clés"

#: app/templates/main/help.html:479
msgid "Time Entry Report - Detailed time logs"
msgstr "Rapport de saisie du temps - Journaux de temps détaillés"

#: app/templates/main/help.html:483
msgid "Export Options"
msgstr "Options d'exportation"

#: app/templates/main/help.html:485
msgid "CSV Export - For external analysis"
msgstr "Exportation CSV – Pour analyse externe"

#: app/templates/main/help.html:486
msgid "Configurable delimiters"
msgstr "Délimiteurs configurables"

#: app/templates/main/help.html:487
msgid "Custom date ranges"
msgstr "Plages de dates personnalisées"

#: app/templates/main/help.html:488
msgid "Filtered data export"
msgstr "Exportation de données filtrées"

#: app/templates/main/help.html:494
msgid "Filter Options"
msgstr "Options de filtre"

#: app/templates/main/help.html:496
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:497
msgid "Project - Filter by specific projects"
msgstr "Projet - Filtrer par projets spécifiques"

#: app/templates/main/help.html:498
msgid "User - Filter by team members"
msgstr "Utilisateur - Filtrer par membres de l'équipe"

#: app/templates/main/help.html:499
msgid "Client - Filter by client organization"
msgstr "Client - Filtrer par organisation cliente"

#: app/templates/main/help.html:500
msgid "Saved Filters - Save frequently used filters"
msgstr "Filtres enregistrés - Enregistrez les filtres fréquemment utilisés"

#: app/templates/main/help.html:504
msgid "Visual Analytics"
msgstr "Analyse visuelle"

#: app/templates/main/help.html:506
msgid "Interactive bar charts"
msgstr "Graphiques à barres interactifs"

#: app/templates/main/help.html:507
msgid "Time distribution pie charts"
msgstr "Diagrammes circulaires de distribution du temps"

#: app/templates/main/help.html:508
msgid "Trend analysis over time"
msgstr "Analyse des tendances au fil du temps"

#: app/templates/main/help.html:509
msgid "Mobile-optimized charts"
msgstr "Graphiques optimisés pour les mobiles"

#: app/templates/main/help.html:515
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:522
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:525
msgid "Command Palette"
msgstr "Palette de commandes"

#: app/templates/main/help.html:526
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:529
msgid "Opening the Command Palette"
msgstr "Ouverture de la palette de commandes"

#: app/templates/main/help.html:531
msgid "Press the question mark key"
msgstr "Appuyez sur la touche point d'interrogation"

#: app/templates/main/help.html:532
msgid "Quick search"
msgstr "Recherche rapide"

#: app/templates/main/help.html:539
msgid "Go to Projects"
msgstr "Aller aux projets"

#: app/templates/main/help.html:540
msgid "Go to Tasks"
msgstr "Accédez aux tâches"

#: app/templates/main/help.html:541
msgid "New Time Entry"
msgstr "Nouvelle entrée de temps"

#: app/templates/main/help.html:549 app/templates/timer/calendar.html:271
msgid "Keyboard Shortcuts"
msgstr "Raccourcis clavier"

#: app/templates/main/help.html:550
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:553
msgid "Global Search"
msgstr "Recherche globale"

#: app/templates/main/help.html:554
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:557
msgid "Email Notifications"
msgstr "Notifications par courrier électronique"

#: app/templates/main/help.html:558
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:566
msgid "Administrator Features"
msgstr "Fonctionnalités d'administrateur"

#: app/templates/main/help.html:571
msgid "Create new users with flexible authentication"
msgstr "Créez de nouveaux utilisateurs avec une authentification flexible"

#: app/templates/main/help.html:572
msgid "Assign custom roles with specific permissions"
msgstr "Attribuez des rôles personnalisés avec des autorisations spécifiques"

#: app/templates/main/help.html:573
msgid "Activate/deactivate user accounts"
msgstr "Activer/désactiver les comptes utilisateurs"

#: app/templates/main/help.html:574
msgid "View user statistics and activity"
msgstr "Afficher les statistiques et l'activité des utilisateurs"

#: app/templates/main/help.html:575
msgid "Generate API tokens for users"
msgstr "Générer des jetons API pour les utilisateurs"

#: app/templates/main/help.html:579
msgid "Access Control"
msgstr "Contrôle d'accès"

#: app/templates/main/help.html:581
msgid "Granular role-based permissions system"
msgstr "Système d'autorisations granulaire basé sur les rôles"

#: app/templates/main/help.html:582
msgid "Custom roles with fine-grained access"
msgstr "Rôles personnalisés avec accès précis"

#: app/templates/main/help.html:583
msgid "User data access controls"
msgstr "Contrôles d'accès aux données utilisateur"

#: app/templates/main/help.html:584
msgid "OIDC/SSO integration (Azure AD, Authelia, etc.)"
msgstr "Intégration OIDC/SSO (Azure AD, Authelia, etc.)"

#: app/templates/main/help.html:585
msgid "API token management for integrations"
msgstr "Gestion des jetons API pour les intégrations"

#: app/templates/main/help.html:591
msgid "Authentication Methods"
msgstr "Méthodes d'authentification"

#: app/templates/main/help.html:593
msgid "Username-only (simple internal use)"
msgstr "Nom d'utilisateur uniquement (usage interne simple)"

#: app/templates/main/help.html:594
msgid "OIDC/SSO (enterprise authentication)"
msgstr "OIDC/SSO (authentification d'entreprise)"

#: app/templates/main/help.html:595
msgid "Both methods simultaneously"
msgstr "Les deux méthodes simultanément"

#: app/templates/main/help.html:596
msgid "Automatic role assignment via groups"
msgstr "Attribution automatique des rôles via des groupes"

#: app/templates/main/help.html:600
msgid "Role & Permission Management"
msgstr "Gestion des rôles et des autorisations"

#: app/templates/main/help.html:602
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:603
msgid "Set granular permissions per feature"
msgstr "Définir des autorisations granulaires par fonctionnalité"

#: app/templates/main/help.html:604
msgid "Assign users to multiple roles"
msgstr "Attribuer des utilisateurs à plusieurs rôles"

#: app/templates/main/help.html:605
msgid "View and manage all permissions"
msgstr "Afficher et gérer toutes les autorisations"

#: app/templates/main/help.html:611
msgid "General Settings"
msgstr "Paramètres généraux"

#: app/templates/main/help.html:613
msgid "Timezone and locale settings"
msgstr "Paramètres de fuseau horaire et de paramètres régionaux"

#: app/templates/main/help.html:614
msgid "Currency configuration"
msgstr "Configuration des devises"

#: app/templates/main/help.html:615
msgid "Time rounding rules"
msgstr "Règles d'arrondi des temps"

#: app/templates/main/help.html:616
msgid "Self-registration settings"
msgstr "Paramètres d'auto-inscription"

#: app/templates/main/help.html:620
msgid "Timer Settings"
msgstr "Paramètres de la minuterie"

#: app/templates/main/help.html:622
msgid "Idle timeout configuration"
msgstr "Configuration du délai d'inactivité"

#: app/templates/main/help.html:623
msgid "Single active timer mode"
msgstr "Mode minuterie active unique"

#: app/templates/main/help.html:624
msgid "Timer display preferences"
msgstr "Préférences d'affichage du minuteur"

#: app/templates/main/help.html:625
msgid "Notification settings"
msgstr "Paramètres de notification"

#: app/templates/main/help.html:631
msgid "Database Management"
msgstr "Gestion de base de données"

#: app/templates/main/help.html:633
msgid "Create manual database backups"
msgstr "Créer des sauvegardes manuelles de base de données"

#: app/templates/main/help.html:634
msgid "View database migration status"
msgstr "Afficher l'état de migration de la base de données"

#: app/templates/main/help.html:635
msgid "Monitor database performance"
msgstr "Surveiller les performances de la base de données"

#: app/templates/main/help.html:636
msgid "Clean up old data and logs"
msgstr "Nettoyer les anciennes données et journaux"

#: app/templates/main/help.html:640
msgid "System Monitoring"
msgstr "Surveillance du système"

#: app/templates/main/help.html:642
msgid "View system information and health"
msgstr "Afficher les informations et l'état du système"

#: app/templates/main/help.html:643
msgid "Monitor application performance"
msgstr "Surveiller les performances des applications"

#: app/templates/main/help.html:644
msgid "Review system logs and errors"
msgstr "Examiner les journaux et les erreurs du système"

#: app/templates/main/help.html:656
msgid "Mobile-Friendly Features"
msgstr "Fonctionnalités adaptées aux mobiles"

#: app/templates/main/help.html:658
msgid "Optimized for phones and tablets"
msgstr "Optimisé pour les téléphones et les tablettes"

#: app/templates/main/help.html:659
msgid "Touch-friendly interface"
msgstr "Interface tactile"

#: app/templates/main/help.html:660
msgid "Adaptive layouts for all screen sizes"
msgstr "Dispositions adaptatives pour toutes les tailles d'écran"

#: app/templates/main/help.html:661
msgid "High contrast for outdoor visibility"
msgstr "Contraste élevé pour une visibilité extérieure"

#: app/templates/main/help.html:665
msgid "Mobile Navigation"
msgstr "Navigation mobile"

#: app/templates/main/help.html:667
msgid "Bottom tab bar for easy access"
msgstr "Barre d'onglets inférieure pour un accès facile"

#: app/templates/main/help.html:668
msgid "Quick access to dashboard"
msgstr "Accès rapide au tableau de bord"

#: app/templates/main/help.html:669
msgid "One-tap time logging"
msgstr "Enregistrement du temps en un seul clic"

#: app/templates/main/help.html:670
msgid "Mobile-optimized reports"
msgstr "Rapports optimisés pour les mobiles"

#: app/templates/main/help.html:676
msgid "Installation"
msgstr "Installation"

#: app/templates/main/help.html:678
msgid "Open TimeTracker in your mobile browser"
msgstr "Ouvrez TimeTracker dans votre navigateur mobile"

#: app/templates/main/help.html:679
msgid "Look for \"Add to Home Screen\" option"
msgstr "Recherchez l'option \"Ajouter à l'écran d'accueil\"."

#: app/templates/main/help.html:680
msgid "Follow browser-specific installation prompts"
msgstr "Suivez les invites d'installation spécifiques au navigateur"

#: app/templates/main/help.html:681
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:685
msgid "PWA Benefits"
msgstr "Avantages PWA"

#: app/templates/main/help.html:687
msgid "Offline capability for basic functions"
msgstr "Capacité hors ligne pour les fonctions de base"

#: app/templates/main/help.html:688
msgid "Faster loading times"
msgstr "Des temps de chargement plus rapides"

#: app/templates/main/help.html:689
msgid "Native app-like experience"
msgstr "Expérience de type application native"

#: app/templates/main/help.html:690
msgid "Push notifications (where supported)"
msgstr "Notifications push (si prises en charge)"

#: app/templates/main/help.html:699
msgid "TimeTracker provides a REST API for integration with other tools, mobile apps, and custom workflows."
msgstr ""

#: app/templates/main/help.html:701
#, fuzzy
msgid "Interactive Swagger UI at"
msgstr "Graphiques à barres interactifs"

#: app/templates/main/help.html:702
#, fuzzy
msgid "OpenAPI 3.0 specification at"
msgstr "Spécifications techniques"

#: app/templates/main/help.html:703
msgid "Bearer token or X-API-Key authentication"
msgstr ""

#: app/templates/main/help.html:704
msgid "Projects, time entries, tasks, clients, invoices, and more"
msgstr ""

#: app/templates/main/help.html:707
#, fuzzy
msgid "Open API Documentation"
msgstr "Documentation"

#: app/templates/main/help.html:713
msgid "Troubleshooting & FAQ"
msgstr "Dépannage et FAQ"

#: app/templates/main/help.html:716
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:717
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:720
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:721
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:724
msgid "How do I track time for multiple projects?"
msgstr "Comment puis-je suivre le temps de plusieurs projets ?"

#: app/templates/main/help.html:725
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:728
msgid "How do I export my time data?"
msgstr "Comment exporter mes données temporelles ?"

#: app/templates/main/help.html:729
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:732
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:733
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:736
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:737
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:740
msgid "Can I use TimeTracker on my mobile device?"
msgstr "Puis-je utiliser TimeTracker sur mon appareil mobile ?"

#: app/templates/main/help.html:741
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:744
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:745
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:748
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:749
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:752
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:753
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:756
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:757
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:760
msgid "Can I use Markdown in descriptions?"
msgstr "Puis-je utiliser Markdown dans les descriptions ?"

#: app/templates/main/help.html:761
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:764
msgid "Where can I get additional help?"
msgstr "Où puis-je obtenir une aide supplémentaire ?"

#: app/templates/main/help.html:768
msgid "This help page covers most common questions and features. For complete documentation:"
msgstr ""

#: app/templates/main/help.html:770
msgid "Complete Documentation Index"
msgstr ""

#: app/templates/main/help.html:771
msgid "Getting Started Guide"
msgstr ""

#: app/templates/main/help.html:772
msgid "Product Overview & Features"
msgstr ""

#: app/templates/main/help.html:773
msgid "Changelog"
msgstr ""

#: app/templates/main/help.html:778
msgid "Report issues and request features on"
msgstr "Signaler des problèmes et demander des fonctionnalités sur"

#: app/templates/main/help.html:783
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:783
msgid "section."
msgstr "section."

#: app/templates/main/help.html:785
msgid "Admin documentation:"
msgstr ""

#: app/templates/main/help.html:785
msgid "Administrator Guide"
msgstr ""

#: app/templates/main/help.html:795
msgid "Still Need Help?"
msgstr "Vous avez encore besoin d'aide ?"

#: app/templates/main/help.html:796
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:801
msgid "Complete Documentation"
msgstr ""

#: app/templates/main/help.html:805
msgid "Documentation Index"
msgstr ""

#: app/templates/main/help.html:808
msgid "Getting Started"
msgstr ""

#: app/templates/main/help.html:811
msgid "Feature Guides"
msgstr ""

#: app/templates/main/help.html:815
msgid "Admin Documentation"
msgstr ""

#: app/templates/main/help.html:829
msgid "GitHub Repository"
msgstr "Dépôt GitHub"

#: app/templates/main/help.html:832
msgid "Report Issue"
msgstr "Signaler un problème"

#: app/templates/main/help.html:843
msgid "Donations and licenses fund development; nothing is paywalled."
msgstr ""

#: app/templates/main/help.html:844 app/templates/reports/index.html:21
#, fuzzy
msgid "Open support"
msgstr "Soutien"

#: 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:75
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:115
msgid "No results found"
msgstr "Aucun résultat trouvé"

#: app/templates/main/search.html:116
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:56
msgid "e.g., Client meeting, Site visit"
msgstr "Par exemple, réunion client, visite du site"

#: app/templates/mileage/form.html:65
msgid "Additional details..."
msgstr "Détails supplémentaires..."

#: app/templates/mileage/form.html:84
msgid "e.g., Office, Home"
msgstr "par exemple, bureau, maison"

#: app/templates/mileage/form.html:94
msgid "e.g., Client site, Airport"
msgstr "par exemple, site client, aéroport"

#: app/templates/mileage/form.html:125
msgid "e.g., 12345"
msgstr "par exemple, 12345"

#: app/templates/mileage/form.html:135
msgid "e.g., 12400"
msgstr "par exemple, 12 400"

#: app/templates/mileage/form.html:185
msgid "e.g., VW Golf"
msgstr "par exemple, VW Golf"

#: app/templates/mileage/form.html:195
msgid "e.g., ABC-123"
msgstr "par exemple, ABC-123"

#: app/templates/mileage/gps.html:2 app/templates/mileage/gps.html:7
#, fuzzy
msgid "GPS Mileage Tracking"
msgstr "Suivi du temps"

#: app/templates/mileage/gps.html:8
#, fuzzy
msgid "Back to Mileage"
msgstr "Retour aux rôles"

#: app/templates/mileage/gps.html:13
msgid "Use your device GPS to record route points, calculate distance, and convert the track into an expense."
msgstr ""

#: app/templates/mileage/gps.html:27
#, fuzzy
msgid "Rate per km"
msgstr "Dater de"

#: app/templates/mileage/gps.html:37
#, fuzzy
msgid "Add Point"
msgstr "Ajouter une note"

#: app/templates/mileage/gps.html:38
#, fuzzy
msgid "Create Expense from Track"
msgstr "Suivi des dépenses"

#: app/templates/mileage/gps.html:43
#, fuzzy
msgid "Track ID"
msgstr "Suivi"

#: app/templates/mileage/gps.html:44 app/templates/mileage/gps.html:82
#, fuzzy
msgid "Idle"
msgstr "Titre"

#: app/templates/mileage/gps.html:47
msgid "Distance (km)"
msgstr ""

#: app/templates/mileage/gps.html:48
msgid "Distance (miles)"
msgstr ""

#: app/templates/mileage/gps.html:82
#, fuzzy
msgid "Tracking"
msgstr "Suivi du temps"

#: app/templates/mileage/gps.html:125
#, fuzzy
msgid "GPS tracking started"
msgstr "Commencer le suivi du temps"

#: app/templates/mileage/gps.html:136
#, fuzzy
msgid "Track point added"
msgstr "Suivre le paiement"

#: app/templates/mileage/gps.html:151
#, fuzzy
msgid "GPS tracking stopped"
msgstr "Commencer le suivi du temps"

#: app/templates/mileage/gps.html:165
#, fuzzy
msgid "Expense created"
msgstr "Dépense rejetée"

#: app/templates/mileage/list.html:59
msgid "Filter Mileage"
msgstr "Filtrer le kilométrage"

#: app/templates/mileage/list.html:61 app/templates/per_diem/list.html:49
#: app/templates/timer/time_entries_overview.html:33
msgid "Exports use current filters"
msgstr ""

#: app/templates/mileage/list.html:78
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/partials/_bottom_nav.html:24
#, fuzzy
msgid "More navigation"
msgstr "Navigation mobile"

#: app/templates/partials/_bottom_nav.html:59
#, fuzzy
msgid "Main"
msgstr "E-mail"

#: app/templates/partials/_command_palette.html:40
msgid "Type a command or search..."
msgstr "Tapez une commande ou recherchez..."

#: app/templates/payment_gateways/create.html:3
#: app/templates/payment_gateways/create.html:8
msgid "Configure Payment Gateway"
msgstr ""

#: app/templates/payment_gateways/create.html:9
msgid "Set up payment processing for online invoice payments"
msgstr ""

#: app/templates/payment_gateways/create.html:11
msgid "Back to Gateways"
msgstr ""

#: app/templates/payment_gateways/create.html:20
msgid "Gateway Name"
msgstr ""

#: app/templates/payment_gateways/create.html:21
msgid "e.g., Stripe Production"
msgstr ""

#: app/templates/payment_gateways/create.html:22
msgid "A descriptive name for this gateway configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:28
msgid "Select provider..."
msgstr ""

#: app/templates/payment_gateways/create.html:36
msgid "Stripe Configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:41
msgid "Your Stripe secret key"
msgstr ""

#: app/templates/payment_gateways/create.html:44
msgid "Publishable Key"
msgstr ""

#: app/templates/payment_gateways/create.html:46
msgid "Your Stripe publishable key"
msgstr ""

#: app/templates/payment_gateways/create.html:51
msgid "Webhook signing secret for verifying webhook events"
msgstr ""

#: app/templates/payment_gateways/create.html:57
msgid "PayPal Configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:73
#: app/templates/payment_gateways/list.html:50
msgid "Test Mode"
msgstr ""

#: app/templates/payment_gateways/create.html:75
msgid "Enable test mode for development and testing"
msgstr ""

#: app/templates/payment_gateways/create.html:80
msgid "Save Gateway"
msgstr ""

#: app/templates/payment_gateways/list.html:28
#: app/templates/payment_gateways/list.html:48
msgid "Mode"
msgstr ""

#: app/templates/payment_gateways/list.html:52
msgid "Production"
msgstr ""

#: app/templates/payment_gateways/list.html:70
msgid "Add Gateway"
msgstr ""

#: app/templates/payment_gateways/list.html:74
msgid "No Payment Gateways"
msgstr ""

#: app/templates/payment_gateways/list.html:75
msgid "Configure a payment gateway to enable online invoice payments."
msgstr ""

#: app/templates/payment_gateways/pay.html:15
msgid "Amount Due"
msgstr ""

#: app/templates/payment_gateways/pay.html:31
msgid "You will be redirected to a secure payment page to complete your payment."
msgstr ""

#: app/templates/payment_gateways/pay.html:37
msgid "Continue to Payment"
msgstr ""

#: app/templates/payment_gateways/pay.html:46
msgid "Payment gateway not yet supported. Please contact support."
msgstr ""

#: app/templates/payments/create.html:7
msgid "Record New Payment"
msgstr "Enregistrer un nouveau paiement"

#: app/templates/payments/list.html:24 app/templates/reports/index.html:38
msgid "Total Payments"
msgstr "Paiements totaux"

#: app/templates/payments/list.html:37 app/templates/reports/index.html:54
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:141
#, fuzzy
msgid "ID"
msgstr "Payé"

#: 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:151
msgid "Related Invoice"
msgstr "Facture associée"

#: app/templates/per_diem/form.html:35
msgid "e.g., Business trip to Berlin"
msgstr "par exemple, voyage d'affaires à Berlin"

#: app/templates/per_diem/form.html:63 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:74 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:152
msgid "Delete Selected Claims"
msgstr "Supprimer les revendications sélectionnées"

#: app/templates/per_diem/list.html:172
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/project_templates/create.html:3
#: app/templates/project_templates/create.html:8
msgid "Create Project Template"
msgstr ""

#: app/templates/project_templates/create.html:9
msgid "Create a reusable template for quick project setup"
msgstr ""

#: app/templates/project_templates/create.html:11
msgid "Back to Templates"
msgstr ""

#: app/templates/project_templates/create.html:21
msgid "e.g., Web Development Project"
msgstr ""

#: app/templates/project_templates/create.html:26
msgid "Describe what this template is used for..."
msgstr ""

#: app/templates/project_templates/create.html:31
msgid "e.g., Web Development, Marketing"
msgstr ""

#: app/templates/project_templates/create.html:36
#: app/templates/timer/calendar.html:193
msgid "Comma-separated tags"
msgstr ""

#: app/templates/project_templates/create.html:41
#: app/templates/project_templates/edit.html:41
#: app/templates/project_templates/view.html:36
msgid "Project Configuration"
msgstr ""

#: app/templates/project_templates/create.html:47
#: app/templates/project_templates/edit.html:47
#: app/templates/projects/create.html:66
msgid "Billable Project"
msgstr "Projet facturable"

#: app/templates/project_templates/create.html:57
#: app/templates/project_templates/create.html:87
#: app/templates/project_templates/edit.html:57
#: app/templates/project_templates/edit.html:90
#: app/templates/project_templates/edit.html:116
#: app/templates/project_templates/view.html:50
#: app/templates/recurring_tasks/form.html:101
#: app/templates/tasks/create.html:98 app/templates/tasks/edit.html:106
msgid "Estimated Hours"
msgstr "Heures estimées"

#: app/templates/project_templates/create.html:62
#: app/templates/project_templates/edit.html:62
#: app/templates/project_templates/view.html:56
#: app/templates/projects/create.html:85 app/templates/projects/edit.html:78
msgid "Budget Amount"
msgstr "Montant budgétaire"

#: app/templates/project_templates/create.html:69
#: app/templates/project_templates/create_project.html:48
#: app/templates/project_templates/edit.html:69
#: app/templates/project_templates/view.html:65
msgid "Template Tasks"
msgstr ""

#: app/templates/project_templates/create.html:70
#: app/templates/project_templates/edit.html:70
msgid "Tasks will be created when a project is created from this template"
msgstr ""

#: app/templates/project_templates/create.html:75
#: app/templates/project_templates/edit.html:78
#: app/templates/project_templates/edit.html:104
#: app/templates/tasks/create.html:26 app/templates/tasks/edit.html:31
msgid "Task Name"
msgstr "Nom de la tâche"

#: app/templates/project_templates/create.html:94
#: app/templates/project_templates/edit.html:124
msgid "Add Task"
msgstr ""

#: app/templates/project_templates/create.html:101
#: app/templates/project_templates/edit.html:131
msgid "Make this template public (visible to all users)"
msgstr ""

#: app/templates/project_templates/create_project.html:4
#: app/templates/project_templates/create_project.html:9
msgid "Create Project from Template"
msgstr ""

#: app/templates/project_templates/create_project.html:10
msgid "Using template:"
msgstr ""

#: app/templates/project_templates/create_project.html:12
#: app/templates/project_templates/edit.html:11
msgid "Back to Template"
msgstr ""

#: app/templates/project_templates/create_project.html:28
msgid "Leave empty to use template name"
msgstr ""

#: app/templates/project_templates/create_project.html:33
msgid "Override Settings (Optional)"
msgstr ""

#: app/templates/project_templates/create_project.html:40
#: app/templates/projects/create.html:27 app/templates/projects/edit.html:26
#: app/templates/projects/view.html:104
msgid "Project Code"
msgstr "Code du projet"

#: app/templates/project_templates/create_project.html:49
msgid "The following tasks will be created:"
msgstr ""

#: app/templates/project_templates/create_project.html:67
#: app/templates/project_templates/list.html:85
#: app/templates/project_templates/view.html:21
#: app/templates/projects/create.html:3 app/templates/projects/create.html:8
#: app/templates/projects/create.html:138 app/templates/quotes/accept.html:41
msgid "Create Project"
msgstr "Créer un projet"

#: app/templates/project_templates/edit.html:3
#: app/templates/project_templates/edit.html:8
msgid "Edit Project Template"
msgstr ""

#: app/templates/project_templates/edit.html:94
#: app/templates/project_templates/edit.html:162
msgid "Remove Task"
msgstr ""

#: app/templates/project_templates/list.html:33
msgid "Show Public Templates"
msgstr ""

#: app/templates/project_templates/list.html:74
msgid "uses"
msgstr ""

#: app/templates/project_templates/list.html:78
#: app/templates/project_templates/view.html:11
#: app/templates/reports/builder.html:189
msgid "Public"
msgstr ""

#: app/templates/project_templates/list.html:124
msgid "No Templates Found"
msgstr ""

#: app/templates/project_templates/list.html:125
msgid "Create your first project template to quickly set up new projects with pre-configured settings and tasks."
msgstr ""

#: app/templates/project_templates/view.html:3
msgid "Project Template"
msgstr ""

#: app/templates/project_templates/view.html:91
msgid "Template Info"
msgstr ""

#: app/templates/project_templates/view.html:98
msgid "Usage Count"
msgstr ""

#: app/templates/project_templates/view.html:103
msgid "Last Used"
msgstr ""

#: app/templates/projects/_kanban_tailwind.html:4
msgid "Kanban board columns"
msgstr "Colonnes du tableau Kanban"

#: app/templates/projects/_kanban_tailwind.html:16
msgid "Add task to this column"
msgstr ""

#: app/templates/projects/_kanban_tailwind.html:20
msgid "Edit swimlane"
msgstr "Modifier le couloir"

#: app/templates/projects/_kanban_tailwind.html:26
msgid "Column"
msgstr "Colonne"

#: app/templates/projects/_projects_list.html:9
#: app/templates/projects/list.html:90
msgid "List View"
msgstr "Vue en liste"

#: app/templates/projects/_projects_list.html:12
#: app/templates/projects/list.html:93
msgid "Grid View"
msgstr "Vue Grille"

#: app/templates/projects/_projects_list.html:102
#: app/templates/projects/list.html:183
#, fuzzy
msgid "Rate"
msgstr "Date"

#: app/templates/projects/_projects_list.html:152
#: app/templates/projects/edit.html:3 app/templates/projects/edit.html:8
#: app/templates/projects/list.html:234 app/templates/projects/view.html:18
msgid "Edit Project"
msgstr "Modifier le projet"

#: app/templates/projects/add_cost.html:3
#: app/templates/projects/add_cost.html:13
#: app/templates/projects/add_cost.html:101
#, fuzzy
msgid "Add Cost"
msgstr "Ajouter une note"

#: app/templates/projects/add_cost.html:20
#, fuzzy
msgid "Add Cost to Project"
msgstr "Retour au projet"

#: app/templates/projects/add_cost.html:30
#: app/templates/projects/edit_cost.html:37
#, fuzzy
msgid "e.g., Travel expenses to client site"
msgstr "par exemple, déplacement pour se rendre à une réunion client"

#: app/templates/projects/add_cost.html:31
#: app/templates/projects/edit_cost.html:38
#, fuzzy
msgid "Brief description of the cost"
msgstr "Brève description de cette catégorie..."

#: app/templates/projects/add_cost.html:39
#: app/templates/projects/edit_cost.html:46
#, fuzzy
msgid "Select category"
msgstr "Catégorie"

#: app/templates/projects/add_cost.html:41
#: app/templates/projects/edit_cost.html:48
#, fuzzy
msgid "Materials"
msgstr "Matériel"

#: app/templates/projects/add_cost.html:44
#: app/templates/projects/edit_cost.html:51
#, fuzzy
msgid "Software/Licenses"
msgstr "par exemple, licence de logiciel"

#: app/templates/projects/add_cost.html:78
#: app/templates/projects/edit_cost.html:85
#, fuzzy
msgid "Additional details about this cost"
msgstr "Détails supplémentaires sur cet ajustement"

#: app/templates/projects/add_cost.html:87
#: app/templates/projects/edit_cost.html:94
#, fuzzy
msgid "Billable to client"
msgstr "Retour au client"

#: app/templates/projects/add_cost.html:90
#: app/templates/projects/edit_cost.html:97
msgid "If checked, this cost will be included in invoices"
msgstr ""

#: 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
#: app/templates/projects/time_entries_overview.html:18
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:570
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: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: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: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:45 app/templates/projects/edit.html:42
msgid "Create new client"
msgstr "Créer un nouveau client"

#: app/templates/projects/create.html:56
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:59
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:68
msgid "Enable billing for this project"
msgstr "Activer la facturation pour ce projet"

#: app/templates/projects/create.html:73 app/templates/projects/edit.html:67
msgid "Leave empty for non-billable projects"
msgstr "Laisser vide pour les projets non facturables"

#: app/templates/projects/create.html:79
msgid "PO number, contract reference, etc."
msgstr "Numéro de bon de commande, référence du contrat, etc."

#: app/templates/projects/create.html:80
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:86 app/templates/projects/edit.html:79
msgid "e.g. 10000.00"
msgstr "par ex. 10000.00"

#: app/templates/projects/create.html:87
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:90 app/templates/projects/edit.html:82
msgid "Alert Threshold (%)"
msgstr "Seuil d'alerte (%)"

#: app/templates/projects/create.html:92
msgid "Notify when consumed budget exceeds this threshold"
msgstr "Notifier lorsque le budget consommé dépasse ce seuil"

#: app/templates/projects/create.html:97 app/templates/projects/edit.html:88
#: app/templates/tasks/create.html:128 app/templates/tasks/edit.html:136
msgid "Gantt color"
msgstr ""

#: app/templates/projects/create.html:102 app/templates/projects/edit.html:93
msgid "Optional: Color for this project on the Gantt chart. Pick or enter a hex code (e.g. #3b82f6)."
msgstr ""

#: app/templates/projects/create.html:109 app/templates/projects/edit.html:100
msgid "These custom fields are defined globally and available for all projects."
msgstr ""

#: app/templates/projects/create.html:146
msgid "Project Creation Tips"
msgstr "Conseils pour la création de projets"

#: app/templates/projects/create.html:148 app/templates/tasks/create.html:155
msgid "Clear Naming"
msgstr "Effacer la dénomination"

#: app/templates/projects/create.html:148
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:149
msgid "Billing Setup"
msgstr "Configuration de la facturation"

#: app/templates/projects/create.html:149
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:150
msgid "Detailed Description"
msgstr "Description détaillée"

#: app/templates/projects/create.html:150
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:151
msgid "Client Selection"
msgstr "Sélection des clients"

#: app/templates/projects/create.html:151
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:437
#: app/templates/projects/create.html:498 app/templates/reports/index.html:527
msgid "Creating..."
msgstr "Création..."

#: app/templates/projects/create.html:517
msgid "Could not create client. Please try again."
msgstr "Impossible de créer le client. Veuillez réessayer."

#: app/templates/projects/create.html:526
#: app/templates/projects/create.html:547
msgid "Client created"
msgstr "Client créé"

#: app/templates/projects/create.html:551
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:27 app/templates/projects/view.html:13
msgid "Entries Overview"
msgstr ""

#: app/templates/projects/dashboard.html:33 app/templates/projects/view.html:41
msgid "Budget Analysis"
msgstr "Analyse budgétaire"

#: app/templates/projects/dashboard.html:37
msgid "All Time"
msgstr "Tout le temps"

#: app/templates/projects/dashboard.html:38
msgid "Last 7 Days"
msgstr "7 derniers jours"

#: app/templates/projects/dashboard.html:39
msgid "Last 30 Days"
msgstr "30 derniers jours"

#: app/templates/projects/dashboard.html:40
msgid "Last 3 Months"
msgstr "3 derniers mois"

#: app/templates/projects/dashboard.html:41
msgid "Last Year"
msgstr "L'année dernière"

#: app/templates/projects/dashboard.html:57
msgid "estimated"
msgstr "estimé"

#: app/templates/projects/dashboard.html:71
#: app/templates/projects/view.html:247
msgid "Budget Used"
msgstr "Budget utilisé"

#: app/templates/projects/dashboard.html:75
msgid "of budget"
msgstr "du budget"

#: app/templates/projects/dashboard.html:89
msgid "Tasks Complete"
msgstr "Tâches terminées"

#: app/templates/projects/dashboard.html:92
msgid "completion"
msgstr "achèvement"

#: app/templates/projects/dashboard.html:105
msgid "Team Members"
msgstr "Membres de l'équipe"

#: app/templates/projects/dashboard.html:107
msgid "contributing"
msgstr "contribuer"

#: app/templates/projects/dashboard.html:122
msgid "Budget vs. Actual"
msgstr "Budget vs réel"

#: app/templates/projects/dashboard.html:144
msgid "No budget set for this project"
msgstr "Aucun budget fixé pour ce projet"

#: app/templates/projects/dashboard.html:154
msgid "Task Status Distribution"
msgstr "Répartition du statut des tâches"

#: app/templates/projects/dashboard.html:172
msgid "No tasks created yet"
msgstr "Aucune tâche créée pour le moment"

#: app/templates/projects/dashboard.html:185
msgid "Team Member Contributions"
msgstr "Contributions des membres de l'équipe"

#: app/templates/projects/dashboard.html:209
msgid "No time entries recorded yet"
msgstr "Aucune entrée de temps enregistrée pour l'instant"

#: app/templates/projects/dashboard.html:219
msgid "Time Tracking Timeline"
msgstr "Chronologie du suivi du temps"

#: app/templates/projects/dashboard.html:229
msgid "Select a time period to view timeline"
msgstr "Sélectionnez une période pour afficher la chronologie"

#: app/templates/projects/dashboard.html:277
msgid "Team Member Details"
msgstr "Détails des membres de l'équipe"

#: app/templates/projects/dashboard.html:294
msgid "tasks"
msgstr "tâches"

#: app/templates/projects/dashboard.html:312
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:325
msgid "Attention Required"
msgstr "Attention requise"

#: app/templates/projects/dashboard.html:327
msgid "task(s) are overdue"
msgstr "les tâches sont en retard"

#: app/templates/projects/edit_cost.html:3
#: app/templates/projects/edit_cost.html:13
#: app/templates/projects/edit_cost.html:20
#, fuzzy
msgid "Edit Cost"
msgstr "Coût unitaire"

#: app/templates/projects/edit_cost.html:27
msgid "This cost has been invoiced. Changes may affect existing invoices."
msgstr ""

#: app/templates/projects/edit_cost.html:108
#, fuzzy
msgid "Update Cost"
msgstr "Mettre à jour les rôles"

#: 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
#: app/templates/reports/week_in_review.html:34
#: app/templates/timer/time_entries_overview.html:114
#: app/templates/timer/view_timer.html:130
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/time_entries_overview.html:10
#: app/templates/projects/time_entries_overview.html:15
#: app/templates/timer/time_entries_overview.html:5
#: app/templates/timer/time_entries_overview.html:14
msgid "Time Entries Overview"
msgstr ""

#: app/templates/projects/time_entries_overview.html:24
msgid "Days"
msgstr ""

#: app/templates/projects/time_entries_overview.html:48
msgid "No time entries found for this project in the selected period."
msgstr ""

#: app/templates/projects/view.html:54
msgid "Mark project as Inactive?"
msgstr "Marquer le projet comme inactif ?"

#: app/templates/projects/view.html:54
msgid "Change Project Status"
msgstr "Modifier le statut du projet"

#: app/templates/projects/view.html:61
msgid "Activate project?"
msgstr "Activer le projet ?"

#: app/templates/projects/view.html:61
msgid "Activate Project"
msgstr "Activer le projet"

#: app/templates/projects/view.html:72
msgid "Archive"
msgstr "Archive"

#: app/templates/projects/view.html:75
msgid "Unarchive project?"
msgstr "Désarchiver le projet ?"

#: app/templates/projects/view.html:75
msgid "Unarchive Project"
msgstr "Désarchiver le projet"

#: app/templates/projects/view.html:75 app/templates/projects/view.html:78
msgid "Unarchive"
msgstr "Désarchiver"

#: app/templates/projects/view.html:87
msgid "Delete Project"
msgstr "Supprimer le projet"

#: app/templates/projects/view.html:133
msgid "Archive Information"
msgstr "Informations sur les archives"

#: app/templates/projects/view.html:136
msgid "Archived on:"
msgstr "Archivé sur :"

#: app/templates/projects/view.html:141
msgid "Archived by:"
msgstr "Archivé par :"

#: app/templates/projects/view.html:147
msgid "Reason:"
msgstr "Raison:"

#: app/templates/projects/view.html:208
msgid "Quick Links"
msgstr ""

#: app/templates/projects/view.html:230
msgid "Budget Overview"
msgstr "Aperçu budgétaire"

#: app/templates/projects/view.html:279
msgid "Over"
msgstr "Sur"

#: app/templates/projects/view.html:304
msgid "View Full Budget Analysis"
msgstr "Voir l'analyse budgétaire complète"

#: app/templates/projects/view.html:352
msgid "e.g., Contract, Specification, etc."
msgstr ""

#: app/templates/projects/view.html:424
msgid "Tasks for this project"
msgstr "Tâches pour ce projet"

#: app/templates/projects/view.html:431 app/templates/projects/view.html:458
#: app/templates/timer/calendar.html:854
msgid "Due"
msgstr "Exigible"

#: app/templates/projects/view.html:432 app/templates/projects/view.html:466
#: app/templates/tasks/_kanban.html:1324
#: app/templates/tasks/_tasks_list.html:36
#: app/templates/tasks/_tasks_list.html:86 app/templates/tasks/edit.html:172
#: app/templates/tasks/view.html:154
msgid "Estimated"
msgstr "Estimé"

#: app/templates/projects/view.html:485
msgid "No tasks for this project."
msgstr "Aucune tâche pour ce projet."

#: app/templates/quotes/_edit_quote_form_scripts.html:16
#: app/templates/quotes/edit.html:82 app/templates/quotes/edit.html:154
#: app/templates/quotes/edit.html:212
#, fuzzy
msgid "Move up"
msgstr "déménagé à"

#: app/templates/quotes/_edit_quote_form_scripts.html:17
#: app/templates/quotes/edit.html:83 app/templates/quotes/edit.html:155
#: app/templates/quotes/edit.html:213
#, fuzzy
msgid "Move down"
msgstr "déménagé à"

#: app/templates/quotes/_edit_quote_form_scripts.html:166
#: app/templates/quotes/edit.html:87
#, fuzzy
msgid "Manual entry"
msgstr "Saisie manuelle"

#: app/templates/quotes/_edit_quote_form_scripts.html:167
#: app/templates/quotes/edit.html:88
#, fuzzy
msgid "From stock"
msgstr "Stock faible"

#: app/templates/quotes/_quotes_list.html:12 app/templates/quotes/list.html:366
#: app/templates/quotes/view.html:24 app/templates/timer/calendar.html:236
#: app/templates/timer/edit_timer.html:389
#: app/templates/timer/edit_timer.html:510
msgid "Duplicate"
msgstr "Double"

#: app/templates/quotes/_quotes_list.html:13 app/templates/quotes/list.html:367
msgid "Mark as Sent"
msgstr "Marquer comme envoyé"

#: app/templates/quotes/_quotes_list.html:66 app/templates/quotes/list.html:83
#: app/templates/quotes/view.html:75
msgid "Accepted"
msgstr "Accepté"

#: app/templates/quotes/_quotes_list.html:88
msgid "Create Your First Quote"
msgstr "Créez votre premier devis"

#: app/templates/quotes/_quotes_list.html:92
msgid "Learn More"
msgstr "Apprendre encore plus"

#: 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:5 app/templates/quotes/create.html:265
msgid "Create Quote"
msgstr "Créer un devis"

#: app/templates/quotes/create.html:37 app/templates/quotes/edit.html:33
msgid "Quote title"
msgstr "Titre de la citation"

#: app/templates/quotes/create.html:42 app/templates/quotes/edit.html:47
msgid "Quote description"
msgstr "Description du devis"

#: app/templates/quotes/create.html:51 app/templates/quotes/edit.html:56
#, fuzzy
msgid "Quote line items"
msgstr "Articles de devis"

#: app/templates/quotes/create.html:54 app/templates/quotes/edit.html:59
msgid "Services, labor, and catalog lines"
msgstr ""

#: app/templates/quotes/create.html:57 app/templates/quotes/edit.html:62
#, fuzzy
msgid "Add line"
msgstr "Date limite"

#: app/templates/quotes/create.html:62 app/templates/quotes/edit.html:67
#: app/templates/quotes/edit.html:86
#, fuzzy
msgid "Line type"
msgstr "Type de contenu"

#: app/templates/quotes/create.html:63 app/templates/quotes/edit.html:68
#, fuzzy
msgid "Stock"
msgstr "Stock faible"

#: app/templates/quotes/create.html:73 app/templates/quotes/edit.html:120
#, fuzzy
msgid "Line items subtotal"
msgstr "Sous-total des articles"

#: app/templates/quotes/create.html:83 app/templates/quotes/edit.html:131
#, fuzzy
msgid "Costs"
msgstr "Coût"

#: app/templates/quotes/create.html:86 app/templates/quotes/edit.html:134
#, fuzzy
msgid "One-off costs (e.g. travel, materials)"
msgstr "par exemple, VOYAGES, REPAS"

#: app/templates/quotes/create.html:89 app/templates/quotes/edit.html:137
#, fuzzy
msgid "Add cost"
msgstr "Ajouter une note"

#: app/templates/quotes/create.html:104 app/templates/quotes/edit.html:177
#, fuzzy
msgid "Costs subtotal"
msgstr "Sous-total des articles"

#: app/templates/quotes/create.html:114 app/templates/quotes/edit.html:188
#, fuzzy
msgid "Extra goods"
msgstr "Marchandises supplémentaires"

#: app/templates/quotes/create.html:117 app/templates/quotes/edit.html:191
#, fuzzy
msgid "Products, licenses, hardware"
msgstr "Produits, matériaux, licences et autres biens"

#: app/templates/quotes/create.html:120 app/templates/quotes/edit.html:194
#, fuzzy
msgid "Add good"
msgstr "Ajouter du bien"

#: app/templates/quotes/create.html:136 app/templates/quotes/edit.html:235
#, fuzzy
msgid "Goods subtotal"
msgstr "Sous-total des marchandises"

#: app/templates/quotes/create.html:144 app/templates/quotes/edit.html:243
#, fuzzy
msgid "Subtotal (all quote lines)"
msgstr "Total des cotations"

#: app/templates/quotes/create.html:152 app/templates/quotes/edit.html:251
msgid "Financial Details"
msgstr "Détails financiers"

#: app/templates/quotes/create.html:182 app/templates/quotes/edit.html:281
msgid "Select payment terms"
msgstr "Sélectionnez les conditions de paiement"

#: app/templates/quotes/create.html:183 app/templates/quotes/edit.html:282
msgid "Due on Receipt"
msgstr "Exigible à réception"

#: app/templates/quotes/create.html:191 app/templates/quotes/edit.html:290
msgid "Or enter custom payment terms"
msgstr "Ou saisissez des conditions de paiement personnalisées"

#: app/templates/quotes/create.html:193 app/templates/quotes/edit.html:292
msgid "Use custom terms"
msgstr "Utiliser des termes personnalisés"

#: app/templates/quotes/create.html:201 app/templates/quotes/edit.html:300
#: app/templates/quotes/pdf_default.html:123 app/templates/quotes/view.html:135
msgid "Discount"
msgstr "Rabais"

#: app/templates/quotes/create.html:205 app/templates/quotes/edit.html:304
msgid "Discount Type"
msgstr "Type de remise"

#: app/templates/quotes/create.html:207 app/templates/quotes/edit.html:306
msgid "No Discount"
msgstr "Pas de réduction"

#: app/templates/quotes/create.html:208 app/templates/quotes/edit.html:307
msgid "Percentage (%)"
msgstr "Pourcentage (%)"

#: app/templates/quotes/create.html:209 app/templates/quotes/edit.html:308
msgid "Fixed Amount"
msgstr "Montant fixe"

#: app/templates/quotes/create.html:213 app/templates/quotes/edit.html:312
msgid "Discount Amount"
msgstr "Montant de la remise"

#: app/templates/quotes/create.html:214 app/templates/quotes/edit.html:313
msgid "0.00"
msgstr "0,00"

#: app/templates/quotes/create.html:219 app/templates/quotes/edit.html:318
msgid "Coupon Code"
msgstr "Code promo"

#: app/templates/quotes/create.html:220 app/templates/quotes/edit.html:319
msgid "Optional coupon code"
msgstr "Code promo facultatif"

#: app/templates/quotes/create.html:223 app/templates/quotes/edit.html:322
msgid "Discount Reason"
msgstr "Raison de la remise"

#: app/templates/quotes/create.html:224 app/templates/quotes/edit.html:323
msgid "Reason for discount"
msgstr "Raison de la remise"

#: app/templates/quotes/create.html:232
msgid "Approval Workflow"
msgstr "Flux de travail d'approbation"

#: app/templates/quotes/create.html:237
msgid "Requires approval before sending"
msgstr "Nécessite une approbation avant l'envoi"

#: app/templates/quotes/create.html:245 app/templates/quotes/edit.html:331
msgid "Additional Information"
msgstr "Informations Complémentaires"

#: app/templates/quotes/create.html:249 app/templates/quotes/edit.html:335
msgid "Internal notes (not visible to client)"
msgstr "Notes internes (non visibles par le client)"

#: app/templates/quotes/create.html:250 app/templates/quotes/edit.html:336
msgid "These notes are only visible to your team"
msgstr "Ces notes ne sont visibles que par votre équipe"

#: app/templates/quotes/create.html:253 app/templates/quotes/edit.html:339
#: app/templates/quotes/view.html:171
msgid "Terms and Conditions"
msgstr "Termes et conditions"

#: app/templates/quotes/create.html:254 app/templates/quotes/edit.html:340
msgid "Terms and conditions"
msgstr "Termes et conditions"

#: app/templates/quotes/create.html:255 app/templates/quotes/edit.html:341
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:351
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:366
msgid "Are you sure you want to duplicate"
msgstr "Etes-vous sûr de vouloir dupliquer"

#: app/templates/quotes/list.html:366 app/templates/quotes/list.html:368
msgid "quote(s)?"
msgstr "citations)?"

#: app/templates/quotes/list.html:367
msgid "Are you sure you want to mark"
msgstr "Etes-vous sûr de vouloir marquer"

#: app/templates/quotes/list.html:367
msgid "quote(s) as sent?"
msgstr "devis tel(s) envoyé(s) ?"

#: app/templates/quotes/pdf_default.html:54
#: app/utils/pdf_generator_fallback.py:531
msgid "QUOTE"
msgstr "CITATION"

#: app/templates/quotes/pdf_default.html:56
msgid "Quote #"
msgstr "Citation #"

#: app/templates/quotes/pdf_default.html:68
msgid "Quote For"
msgstr "Devis pour"

#: app/templates/quotes/pdf_default.html:134
msgid "Subtotal After Discount:"
msgstr "Sous-total après remise :"

#: app/templates/quotes/pdf_default.html:156
#: app/utils/pdf_generator_fallback.py:647
msgid "Description:"
msgstr "Description:"

#: app/templates/quotes/view.html:149
msgid "Subtotal After Discount"
msgstr "Sous-total après remise"

#: app/templates/quotes/view.html:198
msgid "Approval not yet requested"
msgstr "Approbation pas encore demandée"

#: app/templates/quotes/view.html:206
msgid "Pending approval"
msgstr "En attente d'approbation"

#: app/templates/quotes/view.html:222
msgid "Rejected by"
msgstr "Rejeté par"

#: app/templates/quotes/view.html:233
msgid "Request Approval Again"
msgstr "Demander à nouveau l'approbation"

#: app/templates/quotes/view.html:243
msgid "Send Quote"
msgstr "Envoyer un devis"

#: app/templates/quotes/view.html:252
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:261 app/templates/quotes/view.html:578
msgid "Delete Quote"
msgstr "Supprimer le devis"

#: app/templates/quotes/view.html:296
msgid "Internal comment (not visible to client)"
msgstr "Commentaire interne (non visible par le client)"

#: app/templates/quotes/view.html:320 app/templates/quotes/view.html:347
#: app/templates/quotes/view.html:380
msgid "Internal"
msgstr "Interne"

#: app/templates/quotes/view.html:329 app/templates/quotes/view.html:354
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:376
msgid "Write a reply..."
msgstr "Écrivez une réponse..."

#: app/templates/quotes/view.html:395
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:424
msgid "Sent At"
msgstr "Envoyé à"

#: app/templates/quotes/view.html:430
msgid "Accepted At"
msgstr "Accepté à"

#: app/templates/quotes/view.html:445
msgid "Send Quote via Email"
msgstr "Envoyer un devis par e-mail"

#: app/templates/quotes/view.html:453
msgid "Recipient Email"
msgstr "E-mail du destinataire"

#: app/templates/quotes/view.html:461
#, python-format
msgid "Quote %(quote_number)s"
msgstr "Citation %(quote_number)s"

#: app/templates/quotes/view.html:465
msgid "Custom Message (Optional)"
msgstr "Message personnalisé (facultatif)"

#: app/templates/quotes/view.html:468
msgid "Add a custom message to the email..."
msgstr "Ajouter un message personnalisé à l'e-mail..."

#: app/templates/quotes/view.html:472
msgid "Attach PDF"
msgstr "Joindre un PDF"

#: app/templates/quotes/view.html:542
msgid "Approve Quote"
msgstr "Approuver le devis"

#: app/templates/quotes/view.html:546
msgid "Notes (Optional)"
msgstr "Remarques (facultatif)"

#: app/templates/quotes/view.html:547
msgid "Add approval notes..."
msgstr "Ajouter des notes d'approbation..."

#: app/templates/quotes/view.html:560
msgid "Reject Quote Approval"
msgstr "Rejeter l'approbation du devis"

#: app/templates/quotes/view.html:565
msgid "Please provide a reason for rejection..."
msgstr "Veuillez indiquer le motif du refus..."

#: app/templates/quotes/view.html:579
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:120
#: 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
#: app/templates/recurring_invoices/list.html:44
#: app/templates/recurring_tasks/form.html:58
#: app/templates/recurring_tasks/list.html:32
#: app/templates/recurring_tasks/list.html:56
#: app/templates/reports/index.html:483
#: app/templates/reports/schedule_form.html:44
#: app/templates/reports/scheduled.html:28
#: app/templates/reports/scheduled.html:58
msgid "Frequency"
msgstr "Fréquence"

#: app/templates/recurring_invoices/list.html:27
#: app/templates/recurring_invoices/list.html:49
#: app/templates/recurring_tasks/list.html:33
#: app/templates/recurring_tasks/list.html:64
#: app/templates/reports/scheduled.html:29
#: app/templates/reports/scheduled.html:61
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/recurring_tasks/form.html:4
msgid "Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:8
#: app/templates/recurring_tasks/list.html:4
#: app/templates/recurring_tasks/list.html:8
#: app/templates/recurring_tasks/list.html:13
msgid "Recurring Tasks"
msgstr ""

#: app/templates/recurring_tasks/form.html:9
#: app/templates/recurring_tasks/form.html:14
#: app/templates/recurring_tasks/list.html:20
msgid "Create Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:9
#: app/templates/recurring_tasks/form.html:14
msgid "Edit Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:15
msgid "Set up automated task creation"
msgstr ""

#: app/templates/recurring_tasks/form.html:29
msgid "Task Name Template"
msgstr ""

#: app/templates/recurring_tasks/form.html:30
msgid "e.g., Weekly Team Meeting"
msgstr ""

#: app/templates/recurring_tasks/form.html:31
msgid "This will be used as the base name for created tasks"
msgstr ""

#: app/templates/recurring_tasks/form.html:55
msgid "Schedule"
msgstr ""

#: app/templates/recurring_tasks/form.html:62
#: app/templates/reports/index.html:487
#: app/templates/reports/schedule_form.html:49
msgid "Monthly"
msgstr ""

#: app/templates/recurring_tasks/form.html:63
msgid "Yearly"
msgstr ""

#: app/templates/recurring_tasks/form.html:68
msgid "Interval"
msgstr ""

#: app/templates/recurring_tasks/form.html:70
msgid "Repeat every N periods (e.g., every 2 weeks)"
msgstr ""

#: app/templates/recurring_tasks/form.html:74
msgid "Next Run Date"
msgstr ""

#: app/templates/recurring_tasks/form.html:81
msgid "Optional: Stop creating tasks after this date"
msgstr ""

#: app/templates/recurring_tasks/form.html:88
msgid "Task Settings"
msgstr ""

#: app/templates/recurring_tasks/form.html:106
#: app/templates/tasks/create.html:106 app/templates/tasks/edit.html:114
msgid "Assign To"
msgstr "Attribuer à"

#: app/templates/recurring_tasks/form.html:120
msgid "Auto-assign to creator"
msgstr ""

#: app/templates/recurring_tasks/list.html:14
msgid "Automated task creation templates"
msgstr ""

#: app/templates/recurring_tasks/list.html:68
#: app/templates/reports/scheduled.html:65
msgid "Not scheduled"
msgstr ""

#: app/templates/recurring_tasks/list.html:84
msgid "Are you sure you want to delete this recurring task?"
msgstr ""

#: app/templates/recurring_tasks/list.html:101
msgid "No recurring tasks"
msgstr ""

#: app/templates/recurring_tasks/list.html:102
msgid "Create recurring task templates to automatically generate tasks on a schedule."
msgstr ""

#: app/templates/reports/builder.html:4
#: app/templates/reports/custom_view.html:49
#: app/templates/reports/custom_view.html:97
msgid "Edit Report"
msgstr ""

#: app/templates/reports/builder.html:4
msgid "Custom Report Builder"
msgstr ""

#: app/templates/reports/builder.html:26
msgid "Unpaid time entries"
msgstr ""

#: app/templates/reports/builder.html:28
msgid "Time entries, unpaid only, last 30 days"
msgstr ""

#: app/templates/reports/builder.html:29
msgid "Data Sources"
msgstr ""

#: app/templates/reports/builder.html:38
msgid "Components"
msgstr ""

#: app/templates/reports/builder.html:40
#, fuzzy
msgid "Add table to report"
msgstr "Rapports disponibles"

#: app/templates/reports/builder.html:41 app/templates/reports/builder.html:407
msgid "Table"
msgstr ""

#: app/templates/reports/builder.html:43
#, fuzzy
msgid "Add chart to report"
msgstr "Rapports standards"

#: app/templates/reports/builder.html:44 app/templates/reports/builder.html:408
#: app/templates/reports/custom_view.html:77
msgid "Chart"
msgstr ""

#: app/templates/reports/builder.html:46
msgid "Add doughnut chart to report"
msgstr ""

#: app/templates/reports/builder.html:47 app/templates/reports/builder.html:409
msgid "Doughnut Chart"
msgstr ""

#: app/templates/reports/builder.html:49
msgid "Add bar chart to report"
msgstr ""

#: app/templates/reports/builder.html:50 app/templates/reports/builder.html:410
msgid "Bar Chart"
msgstr ""

#: app/templates/reports/builder.html:52
#, fuzzy
msgid "Add summary to report"
msgstr "Rapport sommaire"

#: app/templates/reports/builder.html:63
msgid "Report Canvas"
msgstr ""

#: app/templates/reports/builder.html:74
#, fuzzy
msgid "Report canvas"
msgstr "Toile transparente"

#: app/templates/reports/builder.html:76 app/templates/reports/builder.html:249
#: app/templates/reports/builder.html:400
#: app/templates/reports/builder.html:459
msgid "Drag data sources and components here to build your report"
msgstr ""

#: app/templates/reports/builder.html:103
msgid "Advanced Filters"
msgstr ""

#: app/templates/reports/builder.html:111
msgid "Unpaid Hours Only"
msgstr ""

#: app/templates/reports/builder.html:115
msgid "Unpaid = billable, not yet on any invoice."
msgstr ""

#: app/templates/reports/builder.html:124
msgid "Custom Field"
msgstr ""

#: app/templates/reports/builder.html:127
msgid "No Filter"
msgstr ""

#: app/templates/reports/builder.html:135
msgid "Field Value"
msgstr ""

#: app/templates/reports/builder.html:138
msgid "e.g., MM, PB"
msgstr ""

#: app/templates/reports/builder.html:140
msgid "Enter the value to filter by (e.g., salesman initial)"
msgstr ""

#: app/templates/reports/builder.html:154
msgid "Report Preview"
msgstr ""

#: app/templates/reports/builder.html:162
msgid "Loading preview..."
msgstr ""

#: app/templates/reports/builder.html:178
msgid "Save Report"
msgstr ""

#: app/templates/reports/builder.html:181
msgid "Report Name"
msgstr ""

#: app/templates/reports/builder.html:182
msgid "My Custom Report"
msgstr ""

#: app/templates/reports/builder.html:187
msgid "Private"
msgstr ""

#: app/templates/reports/builder.html:188
msgid "Team"
msgstr ""

#: app/templates/reports/builder.html:199
#: app/templates/reports/saved_views_list.html:47
msgid "Iterative Report Generation"
msgstr ""

#: app/templates/reports/builder.html:203
msgid "Generate one report per custom field value (e.g., one report per salesman)"
msgstr ""

#: app/templates/reports/builder.html:206
#: app/templates/reports/schedule_form.html:78
msgid "Custom Field Name"
msgstr ""

#: app/templates/reports/builder.html:208
msgid "Select Field"
msgstr ""

#: app/templates/reports/builder.html:214
msgid "Select the custom field to iterate over (e.g., \"salesman\")"
msgstr ""

#: app/templates/reports/builder.html:467
#: app/templates/reports/builder.html:689
msgid "Please select a data source first"
msgstr ""

#: app/templates/reports/builder.html:559
msgid "Failed to generate preview"
msgstr ""

#: app/templates/reports/builder.html:567
msgid "Unknown error occurred"
msgstr ""

#: app/templates/reports/builder.html:568
msgid "Error loading preview"
msgstr ""

#: app/templates/reports/builder.html:619
msgid "No data found for the selected filters"
msgstr ""

#: app/templates/reports/builder.html:681
msgid "Please enter a report name"
msgstr ""

#: app/templates/reports/builder.html:768
msgid "Report created successfully!"
msgstr ""

#: app/templates/reports/builder.html:769
msgid "Report updated successfully!"
msgstr ""

#: app/templates/reports/builder.html:790
msgid "Failed to save report"
msgstr ""

#: app/templates/reports/builder.html:804
msgid "Error saving report"
msgstr ""

#: app/templates/reports/custom_view.html:4
msgid "Custom Report"
msgstr ""

#: app/templates/reports/custom_view.html:26
msgid "Data Table"
msgstr ""

#: app/templates/reports/custom_view.html:52
msgid "No data found"
msgstr ""

#: app/templates/reports/custom_view.html:53
msgid "This report has no data matching the current filters. Try adjusting your date range or filters."
msgstr ""

#: app/templates/reports/custom_view.html:72
msgid "No summary data available."
msgstr ""

#: app/templates/reports/custom_view.html:81
msgid "No data available for chart."
msgstr ""

#: app/templates/reports/custom_view.html:92
msgid "No components configured"
msgstr ""

#: app/templates/reports/custom_view.html:94
msgid "This report has no components configured. Please edit the report to add components."
msgstr ""

#: app/templates/reports/export_form.html:9
#, fuzzy
msgid "Export Time Entries"
msgstr "Entrées de temps récentes"

#: app/templates/reports/export_form.html:24
msgid "Use the filters below to customize your export. Choose CSV or Excel format. All filters are optional - leave blank to include all entries within the date range."
msgstr ""

#: app/templates/reports/export_form.html:36
#: app/templates/reports/export_form.html:38
#, fuzzy
msgid "Export format"
msgstr "Format d'exportation"

#: app/templates/reports/export_form.html:175
msgid "e.g., development, meeting, urgent"
msgstr "par exemple, développement, réunion, urgence"

#: app/templates/reports/export_form.html:191
#, fuzzy
msgid "Reset Filters"
msgstr "Filtres enregistrés"

#: app/templates/reports/export_form.html:209
msgid "CSV / Excel"
msgstr ""

#: app/templates/reports/export_form.html:217
msgid "The file will be downloaded with a filename indicating the date range and applied filters."
msgstr ""

#: app/templates/reports/export_form.html:341
#, fuzzy
msgid "Please select both start and end dates."
msgstr "Plage de dates – Dates de début et de fin personnalisées"

#: app/templates/reports/export_form.html:347
#, fuzzy
msgid "Start date must be before or equal to end date."
msgstr "La date de début doit être antérieure à la date de fin"

#: app/templates/reports/index.html:13
msgid "View comprehensive reports and analytics for your time tracking data"
msgstr ""

#: app/templates/reports/index.html:20
msgid "Support development or get a supporter license — the app stays free for everyone."
msgstr ""

#: app/templates/reports/index.html:46
#, fuzzy
msgid "Payments Received"
msgstr "Champs de paiement"

#: app/templates/reports/index.html:62
#, fuzzy
msgid "Net Received"
msgstr "Reçu"

#: app/templates/reports/index.html:63
#, fuzzy
msgid "After fees"
msgstr "Frais de passerelle"

#: app/templates/reports/index.html:69
msgid "Date Range & Comparison"
msgstr "Plage de dates et comparaison"

#: app/templates/reports/index.html:73
msgid "Quick Date Ranges"
msgstr "Plages de dates rapides"

#: app/templates/reports/index.html:79
#, fuzzy
msgid "This Week"
msgstr "Semaine"

#: app/templates/reports/index.html:82
#, fuzzy
msgid "This Month"
msgstr "Mois"

#: app/templates/reports/index.html:85
#, fuzzy
msgid "This Year"
msgstr "L'année dernière"

#: app/templates/reports/index.html:89
#, fuzzy
msgid "Custom Range"
msgstr "Plages de dates personnalisées"

#: app/templates/reports/index.html:102
msgid "Comparison View"
msgstr "Vue comparative"

#: app/templates/reports/index.html:107
#: app/templates/reports/week_in_review.html:7
#: app/templates/reports/week_in_review.html:12
#, fuzzy
msgid "Week in Review"
msgstr "Aperçu en direct"

#: app/templates/reports/index.html:108
msgid "This week's hours, top projects, billable vs non-billable"
msgstr ""

#: app/templates/reports/index.html:116
msgid "This Month vs Last Month"
msgstr ""

#: app/templates/reports/index.html:117
msgid "Compare current month with previous month"
msgstr ""

#: app/templates/reports/index.html:125
msgid "This Year vs Last Year"
msgstr ""

#: app/templates/reports/index.html:126
msgid "Compare current year with previous year"
msgstr ""

#: app/templates/reports/index.html:137
msgid "Comparison Results"
msgstr "Résultats de comparaison"

#: app/templates/reports/index.html:146
msgid "Export Reports"
msgstr "Exporter des rapports"

#: app/templates/reports/index.html:149
msgid "Export Format"
msgstr "Format d'exportation"

#: app/templates/reports/index.html:155
#, fuzzy
msgid "Export Report"
msgstr "Exporter des rapports"

#: app/templates/reports/index.html:162
#, fuzzy
msgid "Manage Scheduled Reports"
msgstr "Rapports planifiés"

#: app/templates/reports/index.html:169
#, fuzzy
msgid "CSV Export"
msgstr "Importation CSV"

#: app/templates/reports/index.html:172
#, fuzzy
msgid "Excel Export"
msgstr "Exporter"

#: app/templates/reports/index.html:180
msgid "Report Types"
msgstr "Types de rapports"

#: app/templates/reports/index.html:183
#: app/templates/reports/project_report.html:5
msgid "Project Report"
msgstr "Rapport de projet"

#: app/templates/reports/index.html:186
#: app/templates/reports/user_report.html:5
msgid "User Report"
msgstr "Rapport utilisateur"

#: app/templates/reports/index.html:189 app/templates/reports/summary.html:6
msgid "Summary Report"
msgstr "Rapport sommaire"

#: app/templates/reports/index.html:192
#: app/templates/reports/task_report.html:5
msgid "Task Report"
msgstr "Rapport de tâche"

#: app/templates/reports/index.html:195
#: app/templates/reports/time_entries_report.html:5
#, fuzzy
msgid "Time Entries Report"
msgstr "Entrées de temps"

#: app/templates/reports/index.html:198
#: app/templates/reports/unpaid_hours_report.html:6
msgid "Unpaid Hours Report"
msgstr ""

#: app/templates/reports/index.html:207
msgid "Report Management"
msgstr ""

#: app/templates/reports/index.html:210
#: app/templates/reports/saved_views_list.html:4
msgid "Saved Report Views"
msgstr ""

#: app/templates/reports/index.html:211
msgid "View and manage your saved report configurations"
msgstr ""

#: app/templates/reports/index.html:215
msgid "Manage automated report delivery via email"
msgstr ""

#: app/templates/reports/index.html:244
#, fuzzy
msgid "No recent entries."
msgstr "Entrées récentes"

#: app/templates/reports/index.html:269 app/templates/reports/index.html:435
#, fuzzy
msgid "No scheduled reports yet."
msgstr "Rapports planifiés"

#: app/templates/reports/index.html:273
#, fuzzy
msgid "Add Scheduled Report"
msgstr "Rapports planifiés"

#: app/templates/reports/index.html:366
#, fuzzy
msgid "Please set a date range"
msgstr "Plages de dates personnalisées"

#: app/templates/reports/index.html:451
msgid "You need to create a saved report view first. Please create one from the reports page."
msgstr ""

#: app/templates/reports/index.html:463
#: app/templates/reports/schedule_form.html:3
#: app/templates/reports/schedule_form.html:8
#: app/templates/reports/scheduled.html:116
msgid "Schedule Report"
msgstr ""

#: app/templates/reports/index.html:470
#: app/templates/reports/schedule_form.html:20
msgid "Report View"
msgstr ""

#: app/templates/reports/index.html:472
msgid "Select a report view..."
msgstr ""

#: app/templates/reports/index.html:477 app/templates/reports/scheduled.html:27
#: app/templates/reports/scheduled.html:50
msgid "Recipients"
msgstr ""

#: app/templates/reports/index.html:480
msgid "Comma-separated email addresses"
msgstr ""

#: app/templates/reports/index.html:495
#: app/templates/reports/schedule_form.html:101
msgid "Create Schedule"
msgstr ""

#: app/templates/reports/index.html:506
msgid "Failed to load report views"
msgstr ""

#: app/templates/reports/index.html:543
msgid "Scheduled report created successfully"
msgstr ""

#: app/templates/reports/index.html:546 app/templates/reports/index.html:553
msgid "Failed to create scheduled report"
msgstr ""

#: app/templates/reports/index.html:571 app/templates/reports/index.html:576
msgid "Failed to update schedule"
msgstr ""

#: app/templates/reports/index.html:581 app/templates/reports/scheduled.html:98
msgid "Are you sure you want to delete this scheduled report?"
msgstr ""

#: app/templates/reports/index.html:596
msgid "Scheduled report deleted successfully"
msgstr ""

#: app/templates/reports/index.html:599 app/templates/reports/index.html:604
msgid "Failed to delete scheduled report"
msgstr ""

#: app/templates/reports/iterative_view.html:4
msgid "Iterative Report"
msgstr ""

#: app/templates/reports/iterative_view.html:17
#, python-format
msgid "Iterative Report - One report per %(field_name)s value"
msgstr ""

#: app/templates/reports/iterative_view.html:74
msgid "Summary by Client"
msgstr ""

#: app/templates/reports/iterative_view.html:90
#, python-format
msgid "No data found for this %(field_name)s value"
msgstr ""

#: app/templates/reports/iterative_view.html:99
#, python-format
msgid "No unique values found for custom field \"%(field_name)s\""
msgstr ""

#: app/templates/reports/project_report.html:85
#: app/templates/reports/user_report.html:157
#, fuzzy
msgid "No data for the selected period."
msgstr "Aucune donnée de vente trouvée pour la période sélectionnée."

#: app/templates/reports/project_report.html:86
msgid "Try a different date range or ensure time has been logged on projects."
msgstr ""

#: app/templates/reports/saved_views_list.html:29
#: app/templates/reports/saved_views_list.html:44
msgid "Features"
msgstr ""

#: app/templates/reports/saved_views_list.html:48
msgid "Iterative"
msgstr ""

#: app/templates/reports/saved_views_list.html:67
msgid "Are you sure you want to delete this report view?"
msgstr ""

#: app/templates/reports/saved_views_list.html:83
msgid "No Saved Report Views"
msgstr ""

#: app/templates/reports/saved_views_list.html:84
msgid "Create and save report configurations to use them in scheduled reports."
msgstr ""

#: app/templates/reports/saved_views_list.html:85
msgid "Create Report"
msgstr ""

#: app/templates/reports/schedule_form.html:9
msgid "Set up automated email delivery for reports"
msgstr ""

#: app/templates/reports/schedule_form.html:11
msgid "Back to Scheduled Reports"
msgstr ""

#: app/templates/reports/schedule_form.html:22
msgid "Select a saved report view..."
msgstr ""

#: app/templates/reports/schedule_form.html:27
msgid "Select a saved report view to schedule"
msgstr ""

#: app/templates/reports/schedule_form.html:32
msgid "Email Recipients"
msgstr ""

#: app/templates/reports/schedule_form.html:34
msgid "email1@example.com, email2@example.com"
msgstr ""

#: app/templates/reports/schedule_form.html:36
msgid "Enter one or more email addresses separated by commas. These recipients will receive the scheduled report via email."
msgstr ""

#: app/templates/reports/schedule_form.html:39
msgid "When using Mapping or Template, these are used as fallback if no address is found for a value."
msgstr ""

#: app/templates/reports/schedule_form.html:46
msgid "Select frequency..."
msgstr ""

#: app/templates/reports/schedule_form.html:50
msgid "Custom (Cron)"
msgstr ""

#: app/templates/reports/schedule_form.html:57
msgid "Use previous calendar month as date range"
msgstr ""

#: app/templates/reports/schedule_form.html:59
msgid "For monthly runs: report will use the first and last day of the previous month."
msgstr ""

#: app/templates/reports/schedule_form.html:63
msgid "Cron Expression"
msgstr ""

#: app/templates/reports/schedule_form.html:65
msgid "Cron format: minute hour day month weekday"
msgstr ""

#: app/templates/reports/schedule_form.html:70
msgid "Report Iteration (Optional)"
msgstr ""

#: app/templates/reports/schedule_form.html:74
msgid "Split report by custom field value"
msgstr ""

#: app/templates/reports/schedule_form.html:80
msgid "The custom field name to iterate over (e.g., \"salesman\"). A separate report will be generated for each unique value."
msgstr ""

#: app/templates/reports/schedule_form.html:83
msgid "Email distribution"
msgstr ""

#: app/templates/reports/schedule_form.html:85
msgid "All reports to recipients below"
msgstr ""

#: app/templates/reports/schedule_form.html:86
msgid "Per value: SalesmanEmailMapping table"
msgstr ""

#: app/templates/reports/schedule_form.html:87
msgid "Per value: email from template"
msgstr ""

#: app/templates/reports/schedule_form.html:91
msgid "Recipient email template"
msgstr ""

#: app/templates/reports/schedule_form.html:93
#, python-brace-format
msgid "Use {value} for the value (e.g. KF); {value}@test.de yields KF@test.de. Use {value_lower} for lowercase, e.g. {value_lower}@test.de yields kf@test.de."
msgstr ""

#: app/templates/reports/scheduled.html:26
#: app/templates/reports/scheduled.html:37
msgid "Report"
msgstr ""

#: app/templates/reports/scheduled.html:41
msgid "Split by"
msgstr ""

#: app/templates/reports/scheduled.html:46
msgid "Distribution"
msgstr ""

#: app/templates/reports/scheduled.html:54
msgid "Template"
msgstr ""

#: app/templates/reports/scheduled.html:70
msgid "Invalid: saved view not found"
msgstr ""

#: app/templates/reports/scheduled.html:86
msgid "Trigger report now (for testing)"
msgstr ""

#: app/templates/reports/scheduled.html:93
msgid "Fix or remove invalid schedule"
msgstr ""

#: app/templates/reports/scheduled.html:114
msgid "No Scheduled Reports"
msgstr ""

#: app/templates/reports/scheduled.html:115
msgid "Create scheduled reports to automatically receive reports via email."
msgstr ""

#: app/templates/reports/scheduled.html:152
msgid "Report triggered successfully!"
msgstr ""

#: app/templates/reports/scheduled.html:153
msgid "Report sent to recipients."
msgstr ""

#: app/templates/reports/scheduled.html:156
msgid "Error triggering report:"
msgstr ""

#: app/templates/reports/scheduled.html:161
msgid "Error triggering report. Please check the console for details."
msgstr ""

#: app/templates/reports/summary.html:27
#, fuzzy
msgid "Time by project (last 30 days)"
msgstr "Meilleurs projets (30 jours)"

#: app/templates/reports/summary.html:30
#, fuzzy
msgid "Time distribution by project"
msgstr "Diagrammes circulaires de distribution du temps"

#: app/templates/reports/summary.html:65 app/templates/reports/summary.html:130
#, fuzzy
msgid "No project data for the last 30 days."
msgstr "Aucune activité au cours des 30 derniers jours."

#: app/templates/reports/summary.html:70
msgid "Daily trend (last 14 days)"
msgstr ""

#: app/templates/reports/summary.html:73
#, fuzzy
msgid "Daily hours trend"
msgstr "Tendance des heures quotidiennes"

#: app/templates/reports/summary.html:108
#, fuzzy
msgid "No trend data."
msgstr "Données de devis"

#: app/templates/reports/summary.html:114
#, fuzzy
msgid "Top Projects (Last 30 Days)"
msgstr "Meilleurs projets (30 jours)"

#: app/templates/reports/task_report.html:102
#, fuzzy
msgid "No tasks with logged time for the selected period."
msgstr "Aucune donnée de vente trouvée pour la période sélectionnée."

#: app/templates/reports/task_report.html:103
msgid "Try a different date range or log time on tasks."
msgstr ""

#: app/templates/reports/time_entries_report.html:49
#, fuzzy
msgid "All Clients"
msgstr "Clientèle"

#: app/templates/reports/time_entries_report.html:60
#: app/templates/timer/calendar.html:69 app/templates/timer/calendar.html:569
#, fuzzy
msgid "All Tasks"
msgstr "Afficher toutes les tâches"

#: app/templates/reports/time_entries_report.html:136
#, fuzzy
msgid "No time entries found for the selected filters."
msgstr "Aucune donnée de vente trouvée pour la période sélectionnée."

#: app/templates/reports/unpaid_hours_report.html:45
msgid "Total Unpaid Hours"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:49
#: app/templates/reports/unpaid_hours_report.html:75
#: app/templates/reports/unpaid_hours_report.html:94
msgid "Estimated Amount"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:53
msgid "Clients with Unpaid Hours"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:61
msgid "Unpaid Hours by Client"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:151
msgid "No unpaid hours found for the selected period."
msgstr ""

#: app/templates/reports/user_report.html:69
#: app/templates/reports/user_report.html:94
msgid "Export entries (Excel)"
msgstr ""

#: app/templates/reports/user_report.html:70
msgid "Select columns:"
msgstr ""

#: app/templates/reports/user_report.html:88
msgid "Duration (formatted)"
msgstr ""

#: app/templates/reports/user_report.html:158
#, fuzzy
msgid "Try a different date range or ensure time has been logged."
msgstr "Essayez une autre requête ou vérifiez votre orthographe."

#: app/templates/reports/user_report.html:174
msgid "About Overtime Tracking"
msgstr "À propos du suivi des heures supplémentaires"

#: app/templates/reports/week_in_review.html:13
msgid "This week's time summary and top projects"
msgstr ""

#: app/templates/reports/week_in_review.html:17
#, fuzzy
msgid "Back to Reports"
msgstr "Retour aux rôles"

#: app/templates/reports/week_in_review.html:38
#, fuzzy, python-format
msgid "%(count)s time entries logged this week."
msgstr "Entrées de temps cette semaine"

#: app/templates/reports/week_in_review.html:43
#, fuzzy
msgid "Top projects this week"
msgstr "Meilleurs projets"

#: app/templates/reports/week_in_review.html:54
#, fuzzy
msgid "No time logged this week yet."
msgstr "Aucune entrée de temps enregistrée pour cette semaine pour le moment"

#: 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/saved_filters/list.html:93
#, fuzzy
msgid "Go to Reports"
msgstr "Rapport de stock faible"

#: app/templates/saved_filters/list.html:96
#, fuzzy
msgid "No saved filters yet"
msgstr "Filtres enregistrés"

#: app/templates/saved_filters/list.html:97
msgid "Save filters from Reports or Tasks pages for quick access."
msgstr ""

#: 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:246
#, fuzzy
msgid "Save changes"
msgstr "Enregistrer les modifications"

#: app/templates/settings/keyboard_shortcuts.html:384
msgid "Press keys..."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:444
msgid "Click then press a key combination"
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:444
#, fuzzy
msgid "Click to record"
msgstr "Faites glisser pour réorganiser"

#: app/templates/settings/keyboard_shortcuts.html:445
#, fuzzy
msgid "Revert"
msgstr "Réinitialiser"

#: app/templates/settings/keyboard_shortcuts.html:457
msgid "Conflict: the same key is assigned to multiple actions."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:473
#, fuzzy
msgid "Failed to save"
msgstr "Échec de l'arrêt du chronomètre"

#: app/templates/settings/keyboard_shortcuts.html:477
msgid "Shortcuts saved."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:478
#, fuzzy
msgid "Failed to save shortcuts."
msgstr "Échec de la mise à jour du statut"

#: app/templates/settings/keyboard_shortcuts.html:483
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:484
msgid "Reset to Defaults"
msgstr "Réinitialiser aux valeurs par défaut"

#: app/templates/settings/keyboard_shortcuts.html:484
#, fuzzy
msgid "Reset all shortcuts to defaults?"
msgstr "Réinitialiser aux valeurs par défaut ?"

#: app/templates/settings/keyboard_shortcuts.html:489
#, fuzzy
msgid "Failed to reset"
msgstr "Échec de la suppression de l'avatar."

#: app/templates/settings/keyboard_shortcuts.html:493
#, fuzzy
msgid "Shortcuts reset to defaults."
msgstr "Réinitialiser aux valeurs par défaut"

#: app/templates/settings/keyboard_shortcuts.html:494
#, fuzzy
msgid "Failed to reset shortcuts."
msgstr "Échec de la mise à jour du statut"

#: app/templates/settings/keyboard_shortcuts.html:511
#, fuzzy
msgid "Failed to load shortcuts."
msgstr "Échec du chargement des tâches"

#: app/templates/setup/initial_setup.html:6
msgid "Welcome"
msgstr "Accueillir"

#: app/templates/setup/initial_setup.html:35
msgid "Privacy First"
msgstr "La confidentialité d'abord"

#: app/templates/setup/initial_setup.html:40
msgid "Self-hosted on your server"
msgstr "Auto-hébergé sur votre serveur"

#: app/templates/setup/initial_setup.html:46
msgid "Anonymous telemetry (opt-in)"
msgstr "Télémétrie anonyme (opt-in)"

#: app/templates/setup/initial_setup.html:52
msgid "No PII collected ever"
msgstr "Aucune information personnelle n'a été collectée"

#: app/templates/setup/initial_setup.html:58
msgid "Open source & transparent"
msgstr "Open source et transparent"

#: app/templates/setup/initial_setup.html:70
msgid "Step 1 of 6"
msgstr ""

#: app/templates/setup/initial_setup.html:85
msgid "Welcome to TimeTracker"
msgstr "Bienvenue sur TimeTracker"

#: app/templates/setup/initial_setup.html:86
msgid "Let's get you set up in just a moment"
msgstr "Laissez-vous installer dans un instant"

#: app/templates/setup/initial_setup.html:88
msgid "Thank you for choosing TimeTracker!"
msgstr "Merci d'avoir choisi TimeTracker !"

#: app/templates/setup/initial_setup.html:90
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:97
#, fuzzy
msgid "Region & time"
msgstr "Heure de fin"

#: app/templates/setup/initial_setup.html:98
msgid "Set your default timezone, date and time format, and currency."
msgstr ""

#: app/templates/setup/initial_setup.html:101
#: app/templates/user/settings.html:419
msgid "Timezone"
msgstr "Fuseau horaire"

#: app/templates/setup/initial_setup.html:110
#, fuzzy
msgid "Date format"
msgstr "Format des dates"

#: app/templates/setup/initial_setup.html:119
#, fuzzy
msgid "Time format"
msgstr "Format de l'heure"

#: app/templates/setup/initial_setup.html:121
#, fuzzy
msgid "24-hour"
msgstr "heures"

#: app/templates/setup/initial_setup.html:122
#, fuzzy
msgid "12-hour"
msgstr "heures"

#: app/templates/setup/initial_setup.html:136
msgid "Company details for invoices and branding."
msgstr ""

#: app/templates/setup/initial_setup.html:139
#, fuzzy
msgid "Company name"
msgstr "Nom de l'entreprise"

#: app/templates/setup/initial_setup.html:140
#, fuzzy
msgid "Your Company Name"
msgstr "Le nom de votre entreprise"

#: app/templates/setup/initial_setup.html:144
#, fuzzy
msgid "Your Company Address"
msgstr "Adresse de votre entreprise"

#: app/templates/setup/initial_setup.html:166
#, fuzzy
msgid "App behavior and timer settings."
msgstr "Paramètres des heures supplémentaires"

#: app/templates/setup/initial_setup.html:171
#, fuzzy
msgid "Allow self-registration"
msgstr "Paramètres d'auto-inscription"

#: app/templates/setup/initial_setup.html:172
msgid "Users can create accounts from the login page"
msgstr ""

#: app/templates/setup/initial_setup.html:176
#, fuzzy
msgid "Time rounding (minutes)"
msgstr "Règles d'arrondi des temps"

#: app/templates/setup/initial_setup.html:183
#, fuzzy
msgid "Round time entries to the nearest N minutes."
msgstr "Arrondir les entrées de temps aux intervalles configurés"

#: app/templates/setup/initial_setup.html:188
#, fuzzy
msgid "Single active timer per user"
msgstr "Mode minuterie active unique"

#: app/templates/setup/initial_setup.html:189
msgid "Only one running timer at a time per user"
msgstr ""

#: app/templates/setup/initial_setup.html:193
#, fuzzy
msgid "Idle timeout (minutes)"
msgstr "Configuration du délai d'inactivité"

#: app/templates/setup/initial_setup.html:195
msgid "Pause timer after this many minutes of inactivity."
msgstr ""

#: app/templates/setup/initial_setup.html:203
msgid "Configure calendar OAuth now or later in Admin → Settings."
msgstr ""

#: app/templates/setup/initial_setup.html:207
msgid "Google Calendar OAuth"
msgstr ""

#: app/templates/setup/initial_setup.html:210
msgid "Client ID (optional)"
msgstr ""

#: app/templates/setup/initial_setup.html:211
msgid "Client Secret (optional)"
msgstr ""

#: app/templates/setup/initial_setup.html:214
msgid "Get these from"
msgstr ""

#: app/templates/setup/initial_setup.html:214
#: app/templates/setup/initial_setup.html:221
msgid "Google Cloud Console"
msgstr ""

#: app/templates/setup/initial_setup.html:218
msgid "How to get Google Calendar OAuth credentials?"
msgstr ""

#: app/templates/setup/initial_setup.html:221
msgid "Go to"
msgstr ""

#: app/templates/setup/initial_setup.html:222
msgid "Create a new project or select an existing one"
msgstr ""

#: app/templates/setup/initial_setup.html:223
msgid "Enable the Google Calendar API"
msgstr ""

#: app/templates/setup/initial_setup.html:224
msgid "Go to Credentials → Create Credentials → OAuth 2.0 Client ID"
msgstr ""

#: app/templates/setup/initial_setup.html:225
msgid "Set application type to \"Web application\""
msgstr ""

#: app/templates/setup/initial_setup.html:226
msgid "Add authorized redirect URI:"
msgstr ""

#: app/templates/setup/initial_setup.html:227
msgid "Copy the Client ID and Client Secret"
msgstr ""

#: app/templates/setup/initial_setup.html:232
msgid "You can skip this step and configure integrations later."
msgstr ""

#: app/templates/setup/initial_setup.html:237
#, fuzzy
msgid "Privacy & finish"
msgstr "La confidentialité d'abord"

#: app/templates/setup/initial_setup.html:238
msgid "Choose whether to help improve TimeTracker with anonymous usage data."
msgstr ""

#: app/templates/setup/initial_setup.html:244
msgid "Enable anonymous telemetry"
msgstr "Activer la télémétrie anonyme"

#: app/templates/setup/initial_setup.html:245
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:250
msgid "What data is collected?"
msgstr "Quelles données sont collectées ?"

#: app/templates/setup/initial_setup.html:253
msgid "What we collect:"
msgstr "Ce que nous collectons :"

#: app/templates/setup/initial_setup.html:255
msgid "Anonymous installation fingerprint (hashed)"
msgstr "Empreinte digitale d'installation anonyme (hachée)"

#: app/templates/setup/initial_setup.html:256
msgid "Application version & platform info"
msgstr "Version de l'application et informations sur la plateforme"

#: app/templates/setup/initial_setup.html:257
msgid "Feature usage statistics"
msgstr "Statistiques d'utilisation des fonctionnalités"

#: app/templates/setup/initial_setup.html:261
msgid "What we DON'T collect:"
msgstr "Ce que nous ne collectons PAS :"

#: app/templates/setup/initial_setup.html:263
msgid "No usernames or emails"
msgstr "Aucun nom d'utilisateur ni e-mail"

#: app/templates/setup/initial_setup.html:264
msgid "No time entry data or notes"
msgstr "Aucune donnée ni note de saisie du temps"

#: app/templates/setup/initial_setup.html:265
msgid "No client or business data"
msgstr "Aucune donnée client ou entreprise"

#: app/templates/setup/initial_setup.html:268
msgid "You can change this anytime in"
msgstr "Vous pouvez modifier cela à tout moment dans"

#: app/templates/setup/initial_setup.html:273
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:273
msgid "GPL-3.0 License"
msgstr "Licence GPL-3.0"

#: app/templates/setup/initial_setup.html:287
#: app/templates/setup/initial_setup.html:288
msgid "Complete Setup & Continue"
msgstr "Terminer la configuration et continuer"

#: app/templates/tasks/_kanban.html:65 app/templates/tasks/_kanban.html:1360
#: app/templates/tasks/edit.html:4 app/templates/tasks/edit.html:16
#: app/templates/tasks/view.html:8
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
#: app/templates/timer/time_entries_overview.html:210
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:1313
msgid "Tracked"
msgstr "Suivi"

#: app/templates/tasks/_kanban.html:1357
msgid "View Full Details"
msgstr "Afficher tous les détails"

#: app/templates/tasks/create.html:14 app/templates/tasks/edit.html:290
#: app/templates/tasks/overdue.html:13
msgid "Back to Tasks"
msgstr "Retour aux tâches"

#: app/templates/tasks/create.html:16
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:27 app/templates/tasks/edit.html:34
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:35
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:44
#: app/templates/tasks/edit.html:515
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:47
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:63
msgid "Select the project this task belongs to"
msgstr "Sélectionnez le projet auquel cette tâche appartient"

#: app/templates/tasks/create.html:68
msgid "Initial Status"
msgstr "Statut initial"

#: app/templates/tasks/create.html:74 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:478 app/templates/tasks/edit.html:83
#: app/templates/tasks/edit.html:658 app/templates/tasks/my_tasks.html:134
#: app/utils/i18n_helpers.py:19 app/utils/i18n_helpers.py:31
msgid "Done"
msgstr "Fait"

#: app/templates/tasks/create.html:95 app/templates/tasks/edit.html:103
msgid "Optional: Set a deadline for this task"
msgstr "Facultatif : définissez une date limite pour cette tâche"

#: app/templates/tasks/create.html:100 app/templates/tasks/edit.html:108
msgid "Optional: Estimate how long this task will take"
msgstr "Facultatif : estimez la durée de cette tâche"

#: app/templates/tasks/create.html:113 app/templates/tasks/edit.html:121
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:122 app/templates/tasks/edit.html:130
msgid "e.g. bug, frontend, urgent"
msgstr ""

#: app/templates/tasks/create.html:123 app/templates/tasks/edit.html:131
#, fuzzy
msgid "Comma-separated tags for categorization"
msgstr "Balises pour la catégorisation"

#: app/templates/tasks/create.html:133 app/templates/tasks/edit.html:141
msgid "Optional: Color for this task on the Gantt chart. If unset, the project color is used. Pick or enter a hex code (e.g. #3b82f6)."
msgstr ""

#: app/templates/tasks/create.html:148
msgid "Task Creation Tips"
msgstr "Conseils pour la création de tâches"

#: app/templates/tasks/create.html:156
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:164
msgid "Realistic Estimates"
msgstr "Estimations réalistes"

#: app/templates/tasks/create.html:165
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:173
msgid "Set Deadlines"
msgstr "Fixer des délais"

#: app/templates/tasks/create.html:174
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:182
msgid "Priority Matters"
msgstr "Questions prioritaires"

#: app/templates/tasks/create.html:183
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
msgid "Back to Task"
msgstr "Retour à la tâche"

#: app/templates/tasks/edit.html:16
#, 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:23
msgid "Task Information"
msgstr "Informations sur la tâche"

#: app/templates/tasks/edit.html:147
msgid "Update Task"
msgstr "Tâche de mise à jour"

#: app/templates/tasks/edit.html:163
msgid "Estimate used"
msgstr "Estimation utilisée"

#: app/templates/tasks/edit.html:170 app/templates/weekly_goals/index.html:185
msgid "Actual"
msgstr "Réel"

#: app/templates/tasks/edit.html:183
msgid "Current Task Info"
msgstr "Informations sur la tâche actuelle"

#: app/templates/tasks/edit.html:187
msgid "Current Status"
msgstr "Statut actuel"

#: app/templates/tasks/edit.html:194
msgid "Current Priority"
msgstr "Priorité actuelle"

#: app/templates/tasks/edit.html:212
msgid "Currently Assigned To"
msgstr "Actuellement affecté à"

#: app/templates/tasks/edit.html:224
msgid "Current Due Date"
msgstr "Date d'échéance actuelle"

#: app/templates/tasks/edit.html:238
msgid "Current Estimate"
msgstr "Estimation actuelle"

#: app/templates/tasks/edit.html:250 app/templates/weekly_goals/index.html:87
#: app/templates/weekly_goals/view.html:47
msgid "Actual Hours"
msgstr "Heures réelles"

#: app/templates/tasks/edit.html:265
msgid "Started"
msgstr "Commencé"

#: app/templates/tasks/edit.html:299
msgid "Edit Tips"
msgstr "Modifier les conseils"

#: app/templates/tasks/edit.html:308
msgid "Status Changes"
msgstr "Changements de statut"

#: app/templates/tasks/edit.html:309
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:320
msgid "Due Date Updates"
msgstr "Mises à jour des dates d'échéance"

#: app/templates/tasks/edit.html:321
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:332
msgid "Assignment Changes"
msgstr "Modifications des affectations"

#: app/templates/tasks/edit.html:333
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:599
msgid "Updating..."
msgstr "Mise à jour..."

#: app/templates/tasks/list.html:33
msgid "Filter Tasks"
msgstr "Filtrer les tâches"

#: app/templates/tasks/list.html:46 app/templates/tasks/my_tasks.html:125
#, fuzzy
msgid "e.g. bug, frontend"
msgstr "L'extrémité avant"

#: app/templates/tasks/list.html:139
msgid "Delete Selected Tasks"
msgstr "Supprimer les tâches sélectionnées"

#: app/templates/tasks/list.html:159
msgid "Change Status for Selected Tasks"
msgstr "Modifier le statut des tâches sélectionnées"

#: app/templates/tasks/list.html:187
msgid "Assign Selected Tasks"
msgstr "Attribuer les tâches sélectionnées"

#: app/templates/tasks/list.html:197
msgid "Assign Tasks"
msgstr "Attribuer des tâches"

#: app/templates/tasks/list.html:207
msgid "Move Selected Tasks to Project"
msgstr "Déplacer les tâches sélectionnées vers le projet"

#: app/templates/tasks/list.html:208 app/templates/tasks/list.html:210
msgid "Select Project"
msgstr "Sélectionnez un projet"

#: app/templates/tasks/list.html:217
msgid "Move Tasks"
msgstr "Déplacer des tâches"

#: app/templates/tasks/list.html:237
#, python-brace-format
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:238
#, python-brace-format
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:421 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: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:141
msgid "All Priorities"
msgstr "Toutes les priorités"

#: app/templates/tasks/my_tasks.html:160
msgid "Task Type"
msgstr "Type de tâche"

#: app/templates/tasks/my_tasks.html:163
msgid "Assigned to Me"
msgstr "M'a été attribué"

#: app/templates/tasks/my_tasks.html:164
msgid "Created by Me"
msgstr "Créé par moi"

#: app/templates/tasks/my_tasks.html:171
msgid "Show overdue only"
msgstr "Afficher uniquement les retards"

#: app/templates/tasks/my_tasks.html:302
msgid "Created by me"
msgstr "Créé par moi"

#: app/templates/tasks/my_tasks.html:353
msgid "My tasks pagination"
msgstr "Pagination de mes tâches"

#: app/templates/tasks/my_tasks.html:376
msgid "..."
msgstr ""

#: app/templates/tasks/my_tasks.html:400
msgid "No tasks found"
msgstr "Aucune tâche trouvée"

#: app/templates/tasks/my_tasks.html:401
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:404
msgid "Create Your First Task"
msgstr "Créez votre première tâche"

#: app/templates/tasks/my_tasks.html:407 app/templates/tasks/overdue.html:102
msgid "View All Tasks"
msgstr "Afficher toutes les tâches"

#: app/templates/tasks/overdue.html:4 app/templates/tasks/overdue.html:9
#: app/templates/tasks/overdue.html:19
msgid "Overdue Tasks"
msgstr "Tâches en retard"

#: app/templates/tasks/overdue.html:20
msgid "Requires immediate attention"
msgstr "Nécessite une attention immédiate"

#: app/templates/tasks/overdue.html:20
msgid "items"
msgstr "articles"

#: app/templates/tasks/overdue.html:26
msgid "There are"
msgstr "Il y a"

#: app/templates/tasks/overdue.html:26
#, fuzzy
msgid "overdue tasks that require immediate attention. 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:55
msgid "Due:"
msgstr "Exigible:"

#: app/templates/tasks/overdue.html:56
msgid "Est:"
msgstr "HNE:"

#: app/templates/tasks/overdue.html:57
msgid "Actual:"
msgstr "Réel:"

#: app/templates/tasks/overdue.html:85
#: app/templates/timer/_time_entries_list.html:16
msgid "Bulk Actions"
msgstr ""

#: app/templates/tasks/overdue.html:89
#, fuzzy
msgid "Update Due Dates"
msgstr "Dates d'échéance"

#: app/templates/tasks/overdue.html:90
msgid "Extend due dates for multiple tasks at once"
msgstr ""

#: app/templates/tasks/overdue.html:91
#, fuzzy
msgid "Extend Due Dates"
msgstr "Dates d'échéance"

#: app/templates/tasks/overdue.html:94
#, fuzzy
msgid "Priority Management"
msgstr "Gestion de projet"

#: app/templates/tasks/overdue.html:95
msgid "Adjust priorities for overdue tasks"
msgstr ""

#: app/templates/tasks/overdue.html:96
#, fuzzy
msgid "Adjust Priorities"
msgstr "Toutes les priorités"

#: app/templates/tasks/overdue.html:104
msgid "No Overdue Tasks!"
msgstr "Aucune tâche en retard !"

#: app/templates/tasks/overdue.html:104
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:109
msgid "Enter new due date (YYYY-MM-DD):"
msgstr "Entrez la nouvelle date d'échéance (AAAA-MM-JJ) :"

#: app/templates/tasks/overdue.html:110
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:111 app/templates/tasks/overdue.html:114
msgid "for all overdue tasks?"
msgstr "pour toutes les tâches en retard ?"

#: app/templates/tasks/overdue.html:112
msgid "Enter new priority (low/medium/high/urgent):"
msgstr "Entrez une nouvelle priorité (faible/moyenne/élevée/urgente) :"

#: app/templates/tasks/overdue.html:113
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:115
msgid "Invalid priority. Please use: low, medium, high, or urgent"
msgstr "Priorité invalide. Veuillez utiliser : faible, moyen, élevé ou urgent"

#: app/templates/tasks/overdue.html:116
#, python-format
msgid "Updated %(count)s task(s). Reloading..."
msgstr ""

#: app/templates/tasks/overdue.html:117
#, fuzzy
msgid "Update failed. Please try again."
msgstr "Échec de la mise à jour de l'objectif. Veuillez réessayer."

#: 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:21
msgid "Change Task Status"
msgstr "Modifier le statut de la tâche"

#: app/templates/tasks/view.html:21
msgid "Mark task as To Do?"
msgstr "Marquer la tâche comme À faire ?"

#: app/templates/tasks/view.html:27
msgid "Mark task as Done?"
msgstr "Marquer la tâche comme terminée ?"

#: app/templates/tasks/view.html:27
msgid "Complete Task"
msgstr "Terminer la tâche"

#: app/templates/tasks/view.html:27
msgid "Complete"
msgstr "Complet"

#: app/templates/tasks/view.html:34
msgid "Reopen task to Review?"
msgstr "Rouvrir la tâche pour réviser ?"

#: app/templates/tasks/view.html:34
msgid "Reopen Task"
msgstr "Rouvrir la tâche"

#: app/templates/tasks/view.html:34
msgid "Reopen"
msgstr "Rouvrir"

#: app/templates/tasks/view.html:47
#, fuzzy
msgid "Task details and history."
msgstr "Détails et portée du projet"

#: 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/list.html:111
#, fuzzy
msgid "Create Your First Template"
msgstr "Créez votre première tâche"

#: app/templates/time_entry_templates/list.html:114
#, fuzzy
msgid "No templates yet"
msgstr "Modèles"

#: app/templates/time_entry_templates/list.html:115
#, fuzzy
msgid "Create your first time entry template to speed up your workflow."
msgstr "Créez votre premier modèle d'e-mail pour personnaliser les e-mails de facture."

#: app/templates/time_entry_templates/view.html:96
msgid "Usage Statistics"
msgstr "Statistiques d'utilisation"

#: app/templates/timer/_time_entries_list.html:7
msgid "Select All"
msgstr ""

#: app/templates/timer/_time_entries_list.html:10
msgid "selected"
msgstr ""

#: app/templates/timer/_time_entries_list.html:19
msgid "Mark Paid/Unpaid"
msgstr ""

#: app/templates/timer/_time_entries_list.html:38
#: app/templates/timer/_time_entries_list.html:67
#: app/templates/timer/time_entries_export_pdf.html:16
msgid "Project/Client"
msgstr ""

#: app/templates/timer/_time_entries_list.html:43
#: app/templates/timer/_time_entries_list.html:131
msgid "Invoice Ref"
msgstr ""

#: app/templates/timer/_time_entries_list.html:98
#: app/templates/timer/_time_entries_list.html:109
#, fuzzy
msgid "Click to edit"
msgstr "Retour à Modifier"

#: app/templates/timer/_time_entries_list.html:102
msgid "Stop the timer to edit duration"
msgstr ""

#: app/templates/timer/_time_entries_list.html:186
#: app/templates/timer/_time_entries_list.html:188
#: app/templates/timer/view_timer.html:108
#, fuzzy
msgid "Request approval"
msgstr "Demander l'approbation"

#: app/templates/timer/_time_entries_list.html:201
#, fuzzy
msgid "Clear filters"
msgstr "Basculer les filtres"

#: app/templates/timer/_time_entries_list.html:204
#, fuzzy
msgid "No time entries match your filters"
msgstr "Aucune donnée ni note de saisie du temps"

#: app/templates/timer/_time_entries_list.html:204
msgid "Try adjusting your filters or clear them to see all entries. You can also log a new time entry."
msgstr ""

#: app/templates/timer/_time_entries_list.html:211
#, fuzzy
msgid "No time entries yet"
msgstr "Aucune entrée de temps enregistrée pour l'instant"

#: app/templates/timer/_time_entries_list.html:211
msgid "Log time to see your entries here. Use the timer on the dashboard or log time manually."
msgstr ""

#: app/templates/timer/_time_entries_list.html:222
#, fuzzy
msgid "Time entries pagination"
msgstr "Pagination de mes tâches"

#: app/templates/timer/bulk_entry.html:3 app/templates/timer/bulk_entry.html:77
#, fuzzy
msgid "Bulk Time Entry"
msgstr "Saisie manuelle du temps"

#: app/templates/timer/bulk_entry.html:74
#, fuzzy
msgid "Single Entry"
msgstr "Saisie du temps"

#: app/templates/timer/bulk_entry.html:77
#, fuzzy
msgid "Create multiple time entries for consecutive days"
msgstr "Comment créer des entrées de temps groupées pour plusieurs jours ?"

#: app/templates/timer/bulk_entry.html:86
#, fuzzy
msgid "Bulk Entry Form"
msgstr "Entrée groupée"

#: app/templates/timer/bulk_entry.html:110
#, fuzzy
msgid "Select the project to log time for"
msgstr "Projet sélectionné introuvable"

#: app/templates/timer/bulk_entry.html:122
#: app/templates/timer/manual_entry.html:83
msgid "Tasks load after selecting a project"
msgstr "Les tâches se chargent après la sélection d'un projet"

#: app/templates/timer/bulk_entry.html:133
#: app/templates/timer/bulk_entry.html:246
#, fuzzy
msgid "Date Range"
msgstr "Plage de temps"

#: app/templates/timer/bulk_entry.html:148
msgid "Skip weekends (Saturday & Sunday)"
msgstr ""

#: app/templates/timer/bulk_entry.html:155
#, fuzzy
msgid "Entries will be created for these dates"
msgstr "Les entrées de temps seront arrondies à cet intervalle"

#: app/templates/timer/bulk_entry.html:172
#, fuzzy
msgid "Same start time for all days"
msgstr "Minuteries intelligentes"

#: app/templates/timer/bulk_entry.html:181
msgid "Same end time for all days"
msgstr ""

#: app/templates/timer/bulk_entry.html:191
msgid "What did you work on? (same notes for all entries)"
msgstr ""

#: app/templates/timer/bulk_entry.html:200
#, fuzzy
msgid "tag1, tag2, tag3"
msgstr "étiquette1, étiquette2"

#: app/templates/timer/bulk_entry.html:201
msgid "Separate tags with commas (same for all entries)"
msgstr ""

#: app/templates/timer/bulk_entry.html:211
#, fuzzy
msgid "Include in invoices"
msgstr "Filtrer les factures"

#: app/templates/timer/bulk_entry.html:223
#, fuzzy
msgid "Create Entries"
msgstr "Entrées récentes"

#: app/templates/timer/bulk_entry.html:239
#, fuzzy
msgid "Bulk Entry Tips"
msgstr "Entrée groupée"

#: app/templates/timer/bulk_entry.html:247
msgid "Select start and end dates. Entries will be created for each day in the range."
msgstr ""

#: app/templates/timer/bulk_entry.html:253
#, fuzzy
msgid "Skip Weekends"
msgstr "Tendances hebdomadaires"

#: app/templates/timer/bulk_entry.html:254
msgid "Enable to automatically skip Saturdays and Sundays from the date range."
msgstr ""

#: app/templates/timer/bulk_entry.html:260
#, fuzzy
msgid "Same Time Daily"
msgstr "Délai (jours)"

#: app/templates/timer/bulk_entry.html:261
msgid "All entries will use the same start and end time each day."
msgstr ""

#: app/templates/timer/bulk_entry.html:267
msgid "Conflict Check"
msgstr ""

#: app/templates/timer/bulk_entry.html:268
msgid "System will check for existing time entries and prevent overlaps."
msgstr ""

#: app/templates/timer/bulk_entry.html:334
#: app/templates/timer/manual_entry.html:348
#: app/templates/timer/timer_page.html:264
msgid "Failed to load tasks"
msgstr "Échec du chargement des tâches"

#: app/templates/timer/bulk_entry.html:335
#, fuzzy
msgid "Total days"
msgstr "Marchandises totales"

#: app/templates/timer/bulk_entry.html:336
#, fuzzy
msgid "Weekdays only"
msgstr "La semaine commence le"

#: app/templates/timer/bulk_entry.html:338
#, fuzzy
msgid "Entries will be created for"
msgstr "Les entrées de temps seront arrondies à cet intervalle"

#: app/templates/timer/calendar.html:35
#, fuzzy
msgid "Agenda"
msgstr "Calendrier"

#: app/templates/timer/calendar.html:52
#, fuzzy
msgid "iCal Format"
msgstr "Format de l'heure"

#: app/templates/timer/calendar.html:53
#, fuzzy
msgid "CSV Format"
msgstr "Importation CSV"

#: app/templates/timer/calendar.html:72
#, fuzzy
msgid "Filter by tags..."
msgstr "Filtrer mes tâches"

#: app/templates/timer/calendar.html:75
#, fuzzy
msgid "Show billable entries only"
msgstr "Aucune entrée de temps trouvée."

#: app/templates/timer/calendar.html:76
#, fuzzy
msgid "Billable Only"
msgstr "Montant facturable"

#: app/templates/timer/calendar.html:84
msgid "Assign to project for new events..."
msgstr ""

#: app/templates/timer/calendar.html:92
#, fuzzy
msgid "Total Hours:"
msgstr "Heures totales"

#: app/templates/timer/calendar.html:129 app/templates/timer/calendar.html:1239
#, fuzzy
msgid "Colors assigned by project"
msgstr "Heures par projet"

#: app/templates/timer/calendar.html:142
#, fuzzy
msgid "Create Time Entry"
msgstr "Créer une nouvelle entrée de temps"

#: app/templates/timer/calendar.html:150
msgid "Select a project..."
msgstr "Sélectionnez un projet..."

#: app/templates/timer/calendar.html:249
#, fuzzy
msgid "Recurring Time Blocks"
msgstr "Factures récurrentes"

#: app/templates/timer/calendar.html:253
#, fuzzy
msgid "Manage your recurring time entry templates."
msgstr "Créer un modèle de saisie du temps"

#: app/templates/timer/calendar.html:261
#, fuzzy
msgid "New Recurring Block"
msgstr "Mettre à jour la facture récurrente"

#: app/templates/timer/calendar.html:280
msgid "Jump to Today"
msgstr ""

#: app/templates/timer/calendar.html:284
msgid "Next Week/Month"
msgstr ""

#: app/templates/timer/calendar.html:288
msgid "Previous Week/Month"
msgstr ""

#: app/templates/timer/calendar.html:292
#, fuzzy
msgid "Navigate Days"
msgstr "Navigation"

#: app/templates/timer/calendar.html:297
#, fuzzy
msgid "Views"
msgstr "Voir"

#: app/templates/timer/calendar.html:300
#, fuzzy
msgid "Day View"
msgstr "Vue Grille"

#: app/templates/timer/calendar.html:304
#, fuzzy
msgid "Week View"
msgstr "Revoir"

#: app/templates/timer/calendar.html:308
#, fuzzy
msgid "Month View"
msgstr "Mois"

#: app/templates/timer/calendar.html:312
#, fuzzy
msgid "Agenda View"
msgstr "Vue du calendrier"

#: app/templates/timer/calendar.html:320
#, fuzzy
msgid "Create New Entry"
msgstr "Créer un nouveau client"

#: app/templates/timer/calendar.html:324
#, fuzzy
msgid "Focus Filter"
msgstr "Afficher les filtres"

#: app/templates/timer/calendar.html:328
#, fuzzy
msgid "Clear All Filters"
msgstr "Effacer tous les caches"

#: app/templates/timer/calendar.html:332
#, fuzzy
msgid "Close Modal"
msgstr "Fermer"

#: app/templates/timer/calendar.html:340
msgid "Show This Help"
msgstr ""

#: app/templates/timer/calendar.html:346
msgid "Got it!"
msgstr ""

#: app/templates/timer/calendar.html:422
#, fuzzy
msgid "Failed to load events"
msgstr "Échec du chargement des tâches"

#: app/templates/timer/calendar.html:436
#, fuzzy
msgid "Please select a project for new entries"
msgstr "Sélectionnez un projet dans la liste déroulante"

#: app/templates/timer/calendar.html:529
#, fuzzy
msgid "Please select a project first"
msgstr "Sélectionnez un projet"

#: app/templates/timer/calendar.html:599
msgid "Showing billable entries only"
msgstr ""

#: app/templates/timer/calendar.html:734
#, fuzzy
msgid "Entry created successfully"
msgstr "Événement créé avec succès"

#: app/templates/timer/calendar.html:744
#, fuzzy
msgid "Failed to create entry"
msgstr "Échec de la suppression de l'événement"

#: app/templates/timer/calendar.html:767
#, fuzzy
msgid "Entry updated"
msgstr "Dernière mise à jour"

#: app/templates/timer/calendar.html:771
#, fuzzy
msgid "Failed to update entry"
msgstr "Échec de la mise à jour du statut"

#: app/templates/timer/calendar.html:828
#, fuzzy
msgid "Are you sure you want to delete this entry?"
msgstr "Êtes-vous sûr de vouloir supprimer cette note ?"

#: app/templates/timer/calendar.html:829
#, fuzzy
msgid "Delete Entry"
msgstr "Supprimer l'entrée"

#: app/templates/timer/calendar.html:890
#, fuzzy
msgid "Automatic Timer"
msgstr "Démarrer la minuterie"

#: app/templates/timer/calendar.html:931
#, fuzzy
msgid "Entry deleted"
msgstr "Supprimé"

#: app/templates/timer/calendar.html:937
#, fuzzy
msgid "Failed to delete entry"
msgstr "Échec de la suppression de l'événement"

#: app/templates/timer/calendar.html:955
#, fuzzy
msgid "Export started"
msgstr "Exporter des données"

#: app/templates/timer/calendar.html:966
#, fuzzy
msgid "No recurring blocks yet"
msgstr "Factures récurrentes"

#: app/templates/timer/calendar.html:979
#, fuzzy
msgid "Unknown Project"
msgstr "Aucun projet"

#: app/templates/timer/calendar.html:997
#, fuzzy
msgid "Failed to load recurring blocks"
msgstr "Échec du chargement des tâches"

#: app/templates/timer/calendar.html:1039
#, fuzzy
msgid "No events in this period"
msgstr "Aucune tâche dans cette colonne."

#: app/templates/timer/calendar.html:1072
#, fuzzy
msgid "Failed to load agenda view"
msgstr "Échec du chargement des activités"

#: app/templates/timer/calendar.html:1104
#, fuzzy
msgid "Failed to load event details"
msgstr "Échec du chargement des tâches"

#: app/templates/timer/calendar.html:1115
#, fuzzy
msgid "Are you sure you want to delete this recurring block?"
msgstr "Êtes-vous sûr de vouloir supprimer cette note ?"

#: app/templates/timer/calendar.html:1117
#, fuzzy
msgid "Delete Recurring Block"
msgstr "Mettre à jour la facture récurrente"

#: app/templates/timer/calendar.html:1133
#, fuzzy
msgid "Recurring block deleted"
msgstr "Événement récurrent"

#: app/templates/timer/calendar.html:1136
#, fuzzy
msgid "Failed to delete recurring block"
msgstr "Échec de la suppression de l'événement"

#: app/templates/timer/calendar.html:1147
#, fuzzy
msgid "Enter new start time (YYYY-MM-DD HH:MM):"
msgstr "Entrez la nouvelle date d'échéance (AAAA-MM-JJ) :"

#: app/templates/timer/calendar.html:1180
#, fuzzy
msgid "Entry duplicated successfully"
msgstr "Événement mis à jour avec succès"

#: app/templates/timer/calendar.html:1186
#, fuzzy
msgid "Failed to duplicate entry"
msgstr "Échec de la suppression de l'événement"

#: app/templates/timer/calendar.html:1329
msgid "Jumped to today"
msgstr ""

#: app/templates/timer/calendar.html:1413
#, fuzzy
msgid "💡 Press ? to see keyboard shortcuts"
msgstr "Raccourcis clavier"

#: app/templates/timer/edit_timer.html:3
#: app/templates/timer/edit_timer.html:180
#, fuzzy
msgid "Edit Time Entry"
msgstr "Nouvelle entrée de temps"

#: app/templates/timer/edit_timer.html:104
msgid "These updates will modify this time entry permanently."
msgstr ""

#: app/templates/timer/edit_timer.html:106
#, fuzzy
msgid "Confirm Changes"
msgstr "Confirmé"

#: app/templates/timer/edit_timer.html:107
#, fuzzy
msgid "Confirm & Save"
msgstr "Confirmé"

#: app/templates/timer/edit_timer.html:188
#, fuzzy
msgid "Admin Mode"
msgstr "Groupe d'administrateurs"

#: app/templates/timer/edit_timer.html:204
#, fuzzy
msgid "Admin Mode:"
msgstr "Groupe d'administrateurs"

#: app/templates/timer/edit_timer.html:204
msgid "You can edit all fields of this time entry, including project, task, start/end times, and source."
msgstr ""

#: app/templates/timer/edit_timer.html:215
msgid "You can edit this entry's project, task, start and end times, and break."
msgstr ""

#: app/templates/timer/edit_timer.html:238
#, fuzzy
msgid "Select the project this time entry belongs to"
msgstr "Sélectionnez le projet auquel cette tâche appartient"

#: app/templates/timer/edit_timer.html:242
#, fuzzy
msgid "Task (Optional)"
msgstr "Tâche (facultatif)"

#: app/templates/timer/edit_timer.html:252
#, fuzzy
msgid "Select a specific task within the project"
msgstr "La tâche sélectionnée n'est pas valide pour le projet choisi"

#: app/templates/timer/edit_timer.html:264
#, fuzzy
msgid "When the work started"
msgstr "Date de début de la semaine"

#: app/templates/timer/edit_timer.html:272
msgid "Time the work started"
msgstr ""

#: app/templates/timer/edit_timer.html:284
msgid "When the work ended (leave empty if still running)"
msgstr ""

#: app/templates/timer/edit_timer.html:292
#, fuzzy
msgid "Time the work ended"
msgstr "Contrat client terminé"

#: app/templates/timer/edit_timer.html:300
msgid "Break duration (HH:MM). Subtracted from total to get worked duration."
msgstr ""

#: app/templates/timer/edit_timer.html:313
#: app/templates/timer/edit_timer.html:439
#, fuzzy
msgid "Automatic"
msgstr "Autorisation"

#: app/templates/timer/edit_timer.html:315
#, fuzzy
msgid "How this entry was created"
msgstr "Client créé"

#: app/templates/timer/edit_timer.html:328
#: app/templates/timer/edit_timer.html:431
#, fuzzy
msgid "Duration:"
msgstr "Durée"

#: app/templates/timer/edit_timer.html:340
#: app/templates/timer/edit_timer.html:451
#: app/templates/timer/edit_timer.html:606
#, fuzzy
msgid "Describe what you worked on"
msgstr "Sur quoi as-tu travaillé ?"

#: app/templates/timer/edit_timer.html:350
#: app/templates/timer/edit_timer.html:462
#: app/templates/timer/manual_entry.html:149
msgid "tag1, tag2"
msgstr "étiquette1, étiquette2"

#: app/templates/timer/edit_timer.html:351
#: app/templates/timer/edit_timer.html:463
msgid "Separate tags with commas"
msgstr ""

#: app/templates/timer/edit_timer.html:368
#: app/templates/timer/edit_timer.html:489
#, fuzzy
msgid "Internal invoice reference"
msgstr "Aucune facture sélectionnée"

#: app/templates/timer/edit_timer.html:369
#: app/templates/timer/edit_timer.html:490
#, fuzzy
msgid "Reference to internal invoice number"
msgstr "Numéro de reçu/facture"

#: app/templates/timer/edit_timer.html:376
#: app/templates/timer/edit_timer.html:497
#, fuzzy
msgid "Reason for Change"
msgstr "Raison de l'archivage"

#: app/templates/timer/edit_timer.html:376
#: app/templates/timer/edit_timer.html:497
#: app/templates/timer/time_entries_overview.html:175
msgid "Optional but recommended"
msgstr ""

#: app/templates/timer/edit_timer.html:378
#: app/templates/timer/edit_timer.html:499
msgid "e.g., Corrected duration, updated project assignment, etc."
msgstr ""

#: app/templates/timer/edit_timer.html:379
#: app/templates/timer/edit_timer.html:500
msgid "Explain why you are making these changes"
msgstr ""

#: app/templates/timer/edit_timer.html:412
#, fuzzy
msgid "Task:"
msgstr "Tâche"

#: app/templates/timer/edit_timer.html:417
#, fuzzy
msgid "Start:"
msgstr "Commencer"

#: app/templates/timer/edit_timer.html:421
#, fuzzy
msgid "End:"
msgstr "Fin"

#: app/templates/timer/edit_timer.html:525
#: app/templates/timer/view_timer.html:24
msgid "Entry Details"
msgstr ""

#: app/templates/timer/edit_timer.html:547
#, fuzzy
msgid "Admin Notice"
msgstr "Ajouter une note"

#: app/templates/timer/edit_timer.html:550
msgid "As an admin, you have full editing privileges for this time entry. Changes will be logged for audit purposes."
msgstr ""

#: app/templates/timer/manual_entry.html:8
msgid "Duplicate Entry"
msgstr "Entrée en double"

#: app/templates/timer/manual_entry.html:13
msgid "Duplicate Time Entry"
msgstr "Saisie de temps en double"

#: app/templates/timer/manual_entry.html:13
msgid "Log Time Manually"
msgstr "Enregistrer l'heure manuellement"

#: app/templates/timer/manual_entry.html:14
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:14
msgid "Create a new time entry"
msgstr "Créer une nouvelle entrée de temps"

#: app/templates/timer/manual_entry.html:25
msgid "Duplicating entry:"
msgstr "Entrée en double :"

#: app/templates/timer/manual_entry.html:33
msgid "Original:"
msgstr "Original:"

#: app/templates/timer/manual_entry.html:33
msgid "to"
msgstr "à"

#: app/templates/timer/manual_entry.html:57
#, fuzzy
msgid "Project & task"
msgstr "Projets"

#: app/templates/timer/manual_entry.html:92
#, fuzzy
msgid "Date & time"
msgstr "Date et heure"

#: app/templates/timer/manual_entry.html:117
msgid "Worked Time"
msgstr ""

#: app/templates/timer/manual_entry.html:119
msgid "Optional: enter HH:MM for duration. You can combine with Start Date/Time to log time on a specific day."
msgstr ""

#: app/templates/timer/manual_entry.html:125
msgid "Suggest break based on duration (e.g. >6h: 30 min, >9h: 45 min)"
msgstr ""

#: app/templates/timer/manual_entry.html:125
#, fuzzy
msgid "Suggest"
msgstr "Invité"

#: app/templates/timer/manual_entry.html:127
msgid "Optional: break duration (HH:MM). Subtracted from total time to get worked duration."
msgstr ""

#: app/templates/timer/manual_entry.html:398
msgid "Session may have expired. Please refresh the page and try again."
msgstr ""

#: app/templates/timer/manual_entry.html:410
msgid "Project not found or inactive"
msgstr ""

#: app/templates/timer/manual_entry.html:780
msgid "What did you work on?"
msgstr "Sur quoi as-tu travaillé ?"

#: app/templates/timer/time_entries_export_pdf.html:2
#: app/templates/timer/time_entries_export_pdf.html:5
msgid "Time Entries Export"
msgstr ""

#: app/templates/timer/time_entries_export_pdf.html:7
msgid "Generated at"
msgstr ""

#: app/templates/timer/time_entries_overview.html:15
msgid "View and manage all time entries"
msgstr ""

#: app/templates/timer/time_entries_overview.html:24
msgid "Paid Hours"
msgstr ""

#: app/templates/timer/time_entries_overview.html:34
#: app/templates/timer/time_entries_overview.html:35
#: app/templates/timer/time_entries_overview.html:134
#, fuzzy
msgid "Apply filters"
msgstr "Appliquer des filtres"

#: app/templates/timer/time_entries_overview.html:58
msgid "Toggle filters"
msgstr ""

#: app/templates/timer/time_entries_overview.html:102
msgid "Paid Status"
msgstr ""

#: app/templates/timer/time_entries_overview.html:110
msgid "Billable Status"
msgstr ""

#: app/templates/timer/time_entries_overview.html:119
msgid "Search in notes and tags..."
msgstr ""

#: app/templates/timer/time_entries_overview.html:171
msgid "Delete Selected Time Entries"
msgstr ""

#: app/templates/timer/time_entries_overview.html:175
msgid "Reason for Deletion"
msgstr ""

#: app/templates/timer/time_entries_overview.html:177
msgid "e.g., Duplicate entry, incorrect time, etc."
msgstr ""

#: app/templates/timer/time_entries_overview.html:195
msgid "Mark Selected Entries as Paid/Unpaid"
msgstr ""

#: app/templates/timer/time_entries_overview.html:203
msgid "e.g., Invoice number or payment reference"
msgstr ""

#: app/templates/timer/time_entries_overview.html:322
#: app/templates/timer/time_entries_overview.html:384
msgid "Please select at least one time entry"
msgstr ""

#: app/templates/timer/time_entries_overview.html:388
msgid "time entry/entries"
msgstr ""

#: app/templates/timer/timer_page.html:13
msgid "Track your time with a visual timer"
msgstr "Suivez votre temps avec une minuterie visuelle"

#: app/templates/timer/timer_page.html:100
msgid "Estimated Completion"
msgstr "Achèvement estimé"

#: app/templates/timer/timer_page.html:102
msgid "Calculating..."
msgstr "Calculateur..."

#: app/templates/timer/timer_page.html:105
msgid "Based on average session duration"
msgstr "Basé sur la durée moyenne des sessions"

#: app/templates/timer/timer_page.html:122
msgid "No active timer. Start one below!"
msgstr "Aucune minuterie active. Commencez-en un ci-dessous !"

#: app/templates/timer/timer_page.html:130
msgid "Start New Timer"
msgstr "Démarrer une nouvelle minuterie"

#: app/templates/timer/timer_page.html:171
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:177
msgid "Or use a template"
msgstr "Ou utilisez un modèle"

#: app/templates/timer/timer_page.html:220
msgid "Recent Projects"
msgstr "Projets récents"

#: app/templates/timer/timer_page.html:238
msgid "Today's Stats"
msgstr "Les statistiques du jour"

#: app/templates/timer/view_timer.html:9
msgid "View Entry"
msgstr ""

#: app/templates/timer/view_timer.html:15
msgid "View time entry details"
msgstr ""

#: app/templates/timer/view_timer.html:67
msgid "Project & Client"
msgstr ""

#: app/templates/timer/view_timer.html:104
#, fuzzy
msgid "Approval"
msgstr "Approuver"

#: app/templates/timer/view_timer.html:115
msgid "Status & Billing"
msgstr ""

#: app/templates/user/license.html:8
msgid "Supporter badge: confirm your key and thank you for funding development."
msgstr ""

#: app/templates/user/license.html:12
#, fuzzy
msgid "License status"
msgstr "Statut actuel"

#: app/templates/user/license.html:16
#, fuzzy
msgid "Supporter license active"
msgstr "Fonctionnalités prises en charge"

#: app/templates/user/license.html:18
msgid "Thank you for supporting TimeTracker. Your badge confirms this instance as a supporter — no features are locked."
msgstr ""

#: app/templates/user/license.html:22
#, fuzzy
msgid "Not activated"
msgstr "Activer"

#: app/templates/user/license.html:25
msgid "Purchase a supporter license (€25) to unlock the supporter badge for this instance. The app stays fully free either way."
msgstr ""

#: app/templates/user/license.html:35
#, fuzzy
msgid "Enter license key"
msgstr "Entrez le nom du client"

#: app/templates/user/license.html:36
msgid "Paste the license key you received by email after purchase."
msgstr ""

#: app/templates/user/license.html:40
#, fuzzy
msgid "License key"
msgstr "Licence"

#: app/templates/user/license.html:43
msgid "Paste your key here"
msgstr ""

#: app/templates/user/license.html:46
#, fuzzy
msgid "Validate"
msgstr "Date"

#: app/templates/user/license.html:50
msgid "Need a key?"
msgstr ""

#: app/templates/user/license.html:51
msgid "Purchase a license key"
msgstr ""

#: app/templates/user/license.html:57
#, fuzzy
msgid "Back to Settings"
msgstr "Paramètres de sauvegarde"

#: app/templates/user/profile.html:2
msgid "Profile"
msgstr "Profil"

#: 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:14
#, fuzzy
msgid "Support & Community"
msgstr "Open Source et Communauté"

#: app/templates/user/settings.html:19
msgid "TimeTracker is free and open source. Funding comes from optional donations and supporter licenses — never from locking features."
msgstr ""

#: app/templates/user/settings.html:21
msgid "This instance already has a supporter license. Thank you — you can still donate or share the app anytime."
msgstr ""

#: app/templates/user/settings.html:23
msgid "If the app saves you time, you can donate or buy a supporter license (€25). A license shows a Supporter badge; it does not change what you can use."
msgstr ""

#: app/templates/user/settings.html:27
msgid "License & supporter key"
msgstr ""

#: app/templates/user/settings.html:28
msgid "Checkout on timetracker.drytrix.com"
msgstr ""

#: app/templates/user/settings.html:40
msgid "Profile Information"
msgstr "Informations sur le profil"

#: app/templates/user/settings.html:53
msgid "Username cannot be changed"
msgstr "Le nom d'utilisateur ne peut pas être modifié"

#: app/templates/user/settings.html:71
msgid "Required for email notifications"
msgstr "Obligatoire pour les notifications par e-mail"

#: app/templates/user/settings.html:81
msgid "Notification Preferences"
msgstr "Préférences de notifications"

#: app/templates/user/settings.html:93
msgid "Enable Email Notifications"
msgstr "Activer les notifications par e-mail"

#: app/templates/user/settings.html:94
msgid "Master switch for all email notifications"
msgstr "Interrupteur principal pour toutes les notifications par e-mail"

#: app/templates/user/settings.html:104
msgid "Overdue Invoice Notifications"
msgstr "Notifications de factures en retard"

#: app/templates/user/settings.html:113
msgid "Task Assignment Notifications"
msgstr "Notifications d'affectation de tâches"

#: app/templates/user/settings.html:122
msgid "Comment & Mention Notifications"
msgstr "Notifications de commentaires et de mentions"

#: app/templates/user/settings.html:131
msgid "Weekly Time Summary Email"
msgstr "E-mail de résumé du temps hebdomadaire"

#: app/templates/user/settings.html:140
msgid "Remind me to log time at end of day"
msgstr ""

#: app/templates/user/settings.html:144
msgid "Reminder time (your timezone)"
msgstr ""

#: app/templates/user/settings.html:149
msgid "In-app reminders (toasts)"
msgstr ""

#: app/templates/user/settings.html:155
#, fuzzy
msgid "Enable smart notifications on this device"
msgstr "Activer les notifications par e-mail"

#: app/templates/user/settings.html:163
msgid "Nudge when no time logged today (uses hour from app settings or override below)"
msgstr ""

#: app/templates/user/settings.html:169
msgid "Alert when a timer runs longer than the configured threshold"
msgstr ""

#: app/templates/user/settings.html:175
msgid "End-of-day summary (logged hours today)"
msgstr ""

#: app/templates/user/settings.html:181
msgid "Also use browser notifications when permission is granted"
msgstr ""

#: app/templates/user/settings.html:185
msgid "No-tracking nudge hour (optional override, HH:MM)"
msgstr ""

#: app/templates/user/settings.html:191
msgid "Summary hour (optional override, HH:MM)"
msgstr ""

#: app/templates/user/settings.html:207
msgid "Display Preferences"
msgstr "Préférences d'affichage"

#: app/templates/user/settings.html:219 app/templates/user/settings.html:231
#: app/templates/user/settings.html:423
msgid "System Default"
msgstr "Système par défaut"

#: app/templates/user/settings.html:245
msgid "Time Rounding Preferences"
msgstr "Préférences d'arrondi du temps"

#: app/templates/user/settings.html:251
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:261
msgid "Enable Time Rounding"
msgstr "Activer l'arrondi des temps"

#: app/templates/user/settings.html:262
msgid "Round time entries to configured intervals"
msgstr "Arrondir les entrées de temps aux intervalles configurés"

#: app/templates/user/settings.html:269
msgid "Rounding Interval"
msgstr "Intervalle d'arrondi"

#: app/templates/user/settings.html:277
msgid "Time entries will be rounded to this interval"
msgstr "Les entrées de temps seront arrondies à cet intervalle"

#: app/templates/user/settings.html:282
msgid "Rounding Method"
msgstr "Méthode d'arrondi"

#: app/templates/user/settings.html:312
msgid "Overtime Settings"
msgstr "Paramètres des heures supplémentaires"

#: app/templates/user/settings.html:318
msgid "Choose whether overtime is calculated per day or per week, and set your standard hours accordingly."
msgstr ""

#: app/templates/user/settings.html:322
msgid "Calculate overtime by"
msgstr ""

#: app/templates/user/settings.html:328
#, fuzzy
msgid "Daily hours"
msgstr "Horaires quotidiens"

#: app/templates/user/settings.html:334
#, fuzzy
msgid "Weekly hours"
msgstr "Objectifs hebdomadaires"

#: app/templates/user/settings.html:342
msgid "Standard Hours Per Day"
msgstr "Heures standard par jour"

#: app/templates/user/settings.html:351
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:357
#, fuzzy
msgid "Standard Hours Per Week"
msgstr "Heures standard par jour"

#: app/templates/user/settings.html:366
msgid "e.g. 20 for a part-time week, 40 for full-time"
msgstr ""

#: app/templates/user/settings.html:373 app/templates/user/settings.html:383
msgid "How it works"
msgstr "Comment ça marche"

#: app/templates/user/settings.html:376
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:386
msgid "Overtime is calculated per week: any hours beyond your standard hours per week count as overtime. Suited for contracts based on weekly hours."
msgstr ""

#: app/templates/user/settings.html:396
msgid "Count weekend hours in overtime"
msgstr ""

#: app/templates/user/settings.html:398
msgid "When unchecked, any hours worked on Saturday or Sunday are always counted as overtime."
msgstr ""

#: app/templates/user/settings.html:410
msgid "Regional Settings"
msgstr "Paramètres régionaux"

#: app/templates/user/settings.html:436 app/templates/user/settings.html:450
msgid "Use system default"
msgstr ""

#: app/templates/user/settings.html:446
msgid "Time Format"
msgstr "Format de l'heure"

#: app/templates/user/settings.html:458
msgid "Week Starts On"
msgstr "La semaine commence le"

#: app/templates/user/settings.html:462
msgid "Sunday"
msgstr "Dimanche"

#: app/templates/user/settings.html:463
msgid "Monday"
msgstr "Lundi"

#: app/templates/user/settings.html:464
msgid "Saturday"
msgstr "Samedi"

#: app/templates/user/settings.html:470
#, fuzzy
msgid "Calendar default view"
msgstr "Vue du calendrier"

#: app/templates/user/settings.html:474
#, fuzzy
msgid "Remember last view"
msgstr "Membre depuis"

#: app/templates/user/settings.html:485
msgid "Support visibility (hiding donate/support UI) is configured system-wide by administrators in Admin → Settings."
msgstr ""

#: app/templates/user/settings.html:486
msgid "Administrators can purchase a key to hide these prompts:"
msgstr ""

#: app/templates/user/settings.html:487
#, fuzzy
msgid "Support & Purchase Key"
msgstr "Créer un bon de commande"

#: app/templates/user/settings.html:564
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:569
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:595
msgid "Actual time:"
msgstr "Heure réelle :"

#: app/templates/user/settings.html:595
msgid "Rounded:"
msgstr "Arrondi :"

#: app/templates/user/settings.html:596
msgid "With "
msgstr "Avec"

#: app/templates/user/settings.html:596
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:39
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:71
#: app/templates/weekly_goals/edit.html:71
msgid "Exclude weekends (5-day work week)"
msgstr ""

#: app/templates/weekly_goals/create.html:74
#: app/templates/weekly_goals/edit.html:74
msgid "If checked, the goal will only count Monday through Friday. Week ends on Friday instead of Sunday."
msgstr ""

#: app/templates/weekly_goals/create.html:88
#: app/templates/weekly_goals/edit.html:103
msgid "Optional notes about your goal..."
msgstr "Notes facultatives sur votre objectif..."

#: app/templates/weekly_goals/create.html:95
msgid "Quick Presets"
msgstr "Préréglages rapides"

#: app/templates/weekly_goals/create.html:143
msgid "Tips for Setting Goals"
msgstr "Conseils pour fixer des objectifs"

#: app/templates/weekly_goals/create.html:147
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:148
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:149
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:150
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/create.html:151
msgid "Use \"Exclude weekends\" for a 5-day work week (Monday-Friday) instead of 7 days"
msgstr ""

#: 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:115
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:115
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:106
msgid "Remaining Hours"
msgstr "Heures restantes"

#: app/templates/weekly_goals/index.html:110
#: app/templates/weekly_goals/view.html:110
msgid "Days Remaining"
msgstr "Jours restants"

#: app/templates/weekly_goals/index.html:114
#: app/templates/weekly_goals/view.html:114
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:18
msgid "5-day work week"
msgstr ""

#: app/templates/weekly_goals/view.html:124
msgid "Daily Breakdown"
msgstr "Répartition quotidienne"

#: app/templates/weekly_goals/view.html:136
msgid "excluded"
msgstr ""

#: app/templates/weekly_goals/view.html:174
msgid "Time Entries This Week"
msgstr "Entrées de temps cette semaine"

#: app/templates/weekly_goals/view.html:188
msgid "No Project"
msgstr "Aucun projet"

#: app/templates/weekly_goals/view.html:224
msgid "No time entries recorded for this week yet"
msgstr "Aucune entrée de temps enregistrée pour cette semaine pour le moment"

#: app/templates/workforce/dashboard.html:2
#: app/templates/workforce/dashboard.html:7
msgid "Workforce Governance"
msgstr ""

#: app/templates/workforce/dashboard.html:11
#, fuzzy
msgid "Reference date"
msgstr "Type de référence"

#: app/templates/workforce/dashboard.html:14
#, fuzzy
msgid "Create/Get Period"
msgstr "Créer un bon de commande"

#: app/templates/workforce/dashboard.html:29
#, fuzzy
msgid "Start date"
msgstr "Date de début"

#: app/templates/workforce/dashboard.html:33
#, fuzzy
msgid "End date"
msgstr "Date de fin"

#: app/templates/workforce/dashboard.html:42
#, fuzzy
msgid "Exports"
msgstr "Exporter"

#: app/templates/workforce/dashboard.html:43
msgid "Download payroll, capacity, and compliance exports"
msgstr ""

#: app/templates/workforce/dashboard.html:46
msgid "Payroll CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:47
msgid "Capacity CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:49
msgid "Locked Periods CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:50
#, fuzzy
msgid "Audit Events CSV"
msgstr "Modifier l'événement"

#: app/templates/workforce/dashboard.html:57
#, fuzzy
msgid "Timesheet Periods"
msgstr "Période de la semaine"

#: app/templates/workforce/dashboard.html:70
#, fuzzy
msgid "Submit"
msgstr "Sujet"

#: app/templates/workforce/dashboard.html:101
#, fuzzy
msgid "No timesheet periods yet."
msgstr "Aucune entrée de temps enregistrée pour l'instant"

#: app/templates/workforce/dashboard.html:107
#, fuzzy
msgid "Leave Balances"
msgstr "Enregistrer les modifications"

#: app/templates/workforce/dashboard.html:110
msgid "Accumulated overtime (YTD)"
msgstr ""

#: app/templates/workforce/dashboard.html:112
msgid "Take as paid leave"
msgstr ""

#: app/templates/workforce/dashboard.html:121
msgid "Allowance"
msgstr ""

#: app/templates/workforce/dashboard.html:122
#, fuzzy
msgid "Used"
msgstr "utilisateur"

#: app/templates/workforce/dashboard.html:135
#: app/templates/workforce/dashboard.html:271
#, fuzzy
msgid "No leave types configured."
msgstr "Non configuré"

#: app/templates/workforce/dashboard.html:145
msgid "Time-Off Requests"
msgstr ""

#: app/templates/workforce/dashboard.html:149
#, fuzzy
msgid "Select leave type"
msgstr "Sélectionnez un client"

#: app/templates/workforce/dashboard.html:157
#: app/templates/workforce/dashboard.html:327
#, fuzzy
msgid "Requested hours"
msgstr "Heures estimées"

#: app/templates/workforce/dashboard.html:159
#, fuzzy
msgid "Available overtime (YTD)"
msgstr "Variables disponibles"

#: app/templates/workforce/dashboard.html:164
#, fuzzy
msgid "Comment"
msgstr "Commentaires"

#: app/templates/workforce/dashboard.html:165
msgid "Submit time-off request"
msgstr ""

#: app/templates/workforce/dashboard.html:203
msgid "Capacity"
msgstr ""

#: app/templates/workforce/dashboard.html:209
#, fuzzy
msgid "Expected"
msgstr "Rejeté"

#: app/templates/workforce/dashboard.html:210
#, fuzzy
msgid "Allocated"
msgstr "Créé"

#: app/templates/workforce/dashboard.html:211
#, fuzzy
msgid "Time Off"
msgstr "Temps"

#: app/templates/workforce/dashboard.html:213
#, fuzzy
msgid "Utilization %"
msgstr "Autorisation"

#: app/templates/workforce/dashboard.html:227
#, fuzzy
msgid "No capacity data available."
msgstr "Aucune donnée sur le taux de combustion disponible"

#: app/templates/workforce/dashboard.html:238
msgid "Timesheet Policy"
msgstr ""

#: app/templates/workforce/dashboard.html:241
msgid "Auto lock days"
msgstr ""

#: app/templates/workforce/dashboard.html:242
msgid "Approver user IDs (comma separated)"
msgstr ""

#: app/templates/workforce/dashboard.html:243
#, fuzzy
msgid "Enable multi-level approval"
msgstr "Activer le portail client"

#: app/templates/workforce/dashboard.html:244
msgid "Require rejection comment"
msgstr ""

#: app/templates/workforce/dashboard.html:245
#, fuzzy
msgid "Enable admin override"
msgstr "Remplacement du statut facturable"

#: app/templates/workforce/dashboard.html:246
#, fuzzy
msgid "Save policy"
msgstr "Actif uniquement"

#: app/templates/workforce/dashboard.html:251
#, fuzzy
msgid "Leave Types"
msgstr "Type d'événement"

#: app/templates/workforce/dashboard.html:256
msgid "Annual allowance (hours)"
msgstr ""

#: app/templates/workforce/dashboard.html:257
#, fuzzy
msgid "Accrual hours per month"
msgstr "Heures réelles"

#: app/templates/workforce/dashboard.html:258
msgid "Paid leave"
msgstr ""

#: app/templates/workforce/dashboard.html:259
#, fuzzy
msgid "Add leave type"
msgstr "Type d'événement"

#: app/templates/workforce/dashboard.html:264
#, fuzzy
msgid "disabled"
msgstr "Désactivé"

#: app/templates/workforce/dashboard.html:277
#, fuzzy
msgid "Company Holidays"
msgstr "Détails de l'entreprise"

#: app/templates/workforce/dashboard.html:280
#, fuzzy
msgid "Holiday name"
msgstr "Nom du rôle"

#: app/templates/workforce/dashboard.html:283
#, fuzzy
msgid "Region (optional)"
msgstr "Remarques (facultatif)"

#: app/templates/workforce/dashboard.html:284
#, fuzzy
msgid "Add holiday"
msgstr "Ajouter du bien"

#: app/templates/workforce/dashboard.html:296
#, fuzzy
msgid "No holidays configured."
msgstr "Aucun webhook configuré"

#: app/templates/workforce/dashboard.html:321
msgid "hours (max from overtime)"
msgstr ""

#: app/utils/context_processors.py:222 app/utils/context_processors.py:257
msgid "Support"
msgstr "Soutien"

#: app/utils/context_processors.py:226
msgid "That report was quick to generate. If TimeTracker saves you time, consider supporting its development."
msgstr ""

#: app/utils/context_processors.py:252
msgid "You appear to be offline. Reconnect to open donation or checkout links."
msgstr ""

#: app/utils/context_processors.py:255
msgid "Link copied to clipboard"
msgstr ""

#: app/utils/context_processors.py:256
msgid "Could not copy link"
msgstr ""

#: app/utils/context_processors.py:258
msgid "You have been using TimeTracker actively for a while. If it helps your work, consider supporting its development."
msgstr ""

#: app/utils/i18n_helpers.py:91 app/utils/i18n_helpers.py:102
msgid "Overpaid"
msgstr "Surpayé"

#: app/utils/i18n_helpers.py:110 app/utils/i18n_helpers.py:126
msgid "Cash"
msgstr "Espèces"

#: app/utils/i18n_helpers.py:111 app/utils/i18n_helpers.py:127
msgid "Check"
msgstr "Vérifier"

#: app/utils/i18n_helpers.py:112 app/utils/i18n_helpers.py:128
msgid "Bank Transfer"
msgstr "Virement bancaire"

#: app/utils/i18n_helpers.py:113 app/utils/i18n_helpers.py:129
msgid "Credit Card"
msgstr "Carte de crédit"

#: app/utils/i18n_helpers.py:114 app/utils/i18n_helpers.py:130
msgid "Debit Card"
msgstr "Carte de débit"

#: app/utils/i18n_helpers.py:116 app/utils/i18n_helpers.py:132
msgid "Stripe"
msgstr "Bande"

#: app/utils/i18n_helpers.py:117 app/utils/i18n_helpers.py:133
msgid "Company Card"
msgstr "Carte d'entreprise"

#: app/utils/i18n_helpers.py:145 app/utils/i18n_helpers.py:156
msgid "Reimbursed"
msgstr "Remboursé"

#: app/utils/i18n_helpers.py:221 app/utils/i18n_helpers.py:233
msgid "Processing"
msgstr "Traitement"

#: app/utils/i18n_helpers.py:266
msgid "80% Budget Warning"
msgstr "Avertissement budgétaire à 80 %"

#: app/utils/i18n_helpers.py:267
msgid "Budget Limit Reached"
msgstr "Limite budgétaire atteinte"

#: app/utils/i18n_helpers.py:275 app/utils/i18n_helpers.py:281
msgid "Info"
msgstr "Informations"

#: app/utils/module_helpers.py:48
msgid "Authentication required."
msgstr ""

#: app/utils/module_helpers.py:62
#, python-format
msgid "Module '%(module)s' is disabled."
msgstr ""

#: app/utils/module_helpers.py:70
#, python-format
msgid "Module '%(module)s' is disabled. Enable it in Settings."
msgstr ""

#: app/utils/pdf_generator_fallback.py:169
#, python-format
msgid "Invoice #: %(num)s"
msgstr "Facture n° : %(num)s"

#: app/utils/pdf_generator_fallback.py:173
#: app/utils/pdf_generator_fallback.py:176
#, python-format
msgid "Issue Date: %(date)s"
msgstr "Date d'émission : %(date)s"

#: app/utils/pdf_generator_fallback.py:174
#: app/utils/pdf_generator_fallback.py:177
#, python-format
msgid "Due Date: %(date)s"
msgstr "Date d'échéance : %(date)s"

#: app/utils/pdf_generator_fallback.py:541
msgid "Quote For:"
msgstr "Devis pour :"

#: app/utils/pdf_generator_fallback.py:551
msgid "Quote Details:"
msgstr "Détails du devis :"

#: app/utils/pdf_generator_fallback.py:572
msgid "Items:"
msgstr "Articles:"

#: app/utils/pdf_generator_fallback.py:622
msgid "Total:"
msgstr "Total:"

#: app/utils/permissions.py:32 app/utils/permissions.py:67
msgid "Please log in to access this page"
msgstr "Veuillez vous connecter pour accéder à cette page"

