# 
msgid ""
msgstr ""
"Project-Id-Version: EVIBES 2026.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-21 00:38+0300\n"
"PO-Revision-Date: 2025-01-30 03:27+0000\n"
"Last-Translator: EGOR GORBUNOV <CONTACT@FUREUNOIR.COM>\n"
"Language-Team: BRITISH ENGLISH <CONTACT@FUREUNOIR.COM>\n"
"Language: fr-fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: engine/vibes_auth/admin.py:51 engine/vibes_auth/admin.py:52
#: engine/vibes_auth/graphene/object_types.py:54
msgid "balance"
msgstr "Balance"

#: engine/vibes_auth/admin.py:60
msgid "order"
msgstr "Commande"

#: engine/vibes_auth/admin.py:61 engine/vibes_auth/graphene/object_types.py:51
msgid "orders"
msgstr "Commandes"

#: engine/vibes_auth/admin.py:71
msgid "personal info"
msgstr "Informations personnelles"

#: engine/vibes_auth/admin.py:75 engine/vibes_auth/graphene/object_types.py:50
msgid "permissions"
msgstr "Permissions"

#: engine/vibes_auth/admin.py:88
msgid "important dates"
msgstr "Important dates"

#: engine/vibes_auth/admin.py:89
msgid "additional info"
msgstr "Informations complémentaires"

#: engine/vibes_auth/admin.py:135
msgid "You cannot jump over your head!"
msgstr "Vous ne pouvez pas sauter par-dessus votre tête !"

#: engine/vibes_auth/admin.py:167
msgid "Close selected threads"
msgstr "Fermer les fils sélectionnés"

#: engine/vibes_auth/admin.py:171
msgid "Open selected threads"
msgstr "Ouvrir les fils sélectionnés"

#: engine/vibes_auth/apps.py:8
msgid "authentication"
msgstr "Authentification"

#: engine/vibes_auth/choices.py:6
msgid "Open"
msgstr "Ouvrir"

#: engine/vibes_auth/choices.py:7
msgid "Closed"
msgstr "Fermé"

#: engine/vibes_auth/choices.py:11
msgid "User"
msgstr "Utilisateur"

#: engine/vibes_auth/choices.py:12
msgid "Staff"
msgstr "Personnel"

#: engine/vibes_auth/choices.py:13
msgid "System"
msgstr "Système"

#: engine/vibes_auth/docs/drf/messaging.py:17
msgid "User messages entrypoint"
msgstr "User messages entrypoint"

#: engine/vibes_auth/docs/drf/messaging.py:19
msgid ""
"Anonymous or authenticated non-staff users send messages. Also supports "
"action=ping."
msgstr ""
"Les utilisateurs anonymes ou authentifiés qui ne font pas partie du "
"personnel envoient des messages. Supporte également l'action=ping."

#: engine/vibes_auth/docs/drf/messaging.py:30
msgid "Staff inbox control"
msgstr "Contrôle de la boîte de réception du personnel"

#: engine/vibes_auth/docs/drf/messaging.py:32
msgid ""
"Staff-only actions: list_open, assign, reply, close, ping. Unified event "
"payloads are emitted."
msgstr ""
"Actions réservées au personnel : list_open, assign, reply, close, ping. Des "
"charges utiles d'événements unifiés sont émises."

#: engine/vibes_auth/docs/drf/messaging.py:43
msgid "Per-thread staff channel"
msgstr "Canal du personnel par fil"

#: engine/vibes_auth/docs/drf/messaging.py:44
msgid "Reply, close, and ping within a specific thread."
msgstr ""
"Répondre, fermer et faire un ping dans un fil de discussion spécifique."

#: engine/vibes_auth/docs/drf/views.py:18
msgid "obtain a token pair"
msgstr "Obtenir une paire de jetons"

#: engine/vibes_auth/docs/drf/views.py:19
msgid "obtain a token pair (refresh and access) for authentication."
msgstr ""
"Obtenir une paire de jetons (rafraîchissement et accès) pour "
"l'authentification."

#: engine/vibes_auth/docs/drf/views.py:41
msgid "refresh a token pair"
msgstr "Rafraîchir une paire de jetons"

#: engine/vibes_auth/docs/drf/views.py:42
msgid "refresh a token pair (refresh and access)."
msgstr "Rafraîchir une paire de jetons (rafraîchir et accéder)."

#: engine/vibes_auth/docs/drf/views.py:64
msgid "verify a token"
msgstr "Vérifier un jeton"

#: engine/vibes_auth/docs/drf/views.py:65
msgid "Verify a token (refresh or access)."
msgstr "Vérifier un jeton (rafraîchissement ou accès)."

#: engine/vibes_auth/docs/drf/views.py:71 engine/vibes_auth/views.py:100
msgid "the token is valid"
msgstr "Le jeton est valide"

#: engine/vibes_auth/docs/drf/viewsets.py:19
msgid "create a new user"
msgstr "Créer un nouvel utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:27
msgid "retrieve a user's details"
msgstr "Récupérer les données d'un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:34
msgid "update a user's details"
msgstr "Mettre à jour les coordonnées d'un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:42
msgid "partially update a user's details"
msgstr "mettre à jour partiellement les données d'un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:50
msgid "delete a user"
msgstr "Supprimer un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:57
msgid "reset a user's password by sending a reset password email"
msgstr ""
"Réinitialiser le mot de passe d'un utilisateur en envoyant un courriel de "
"réinitialisation du mot de passe"

#: engine/vibes_auth/docs/drf/viewsets.py:65
msgid "handle avatar upload for a user"
msgstr "Gérer le téléchargement d'un avatar pour un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:83
msgid "confirm a user's password reset"
msgstr "Confirmer la réinitialisation du mot de passe d'un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:87
#: engine/vibes_auth/graphene/mutations.py:351
#: engine/vibes_auth/serializers.py:103 engine/vibes_auth/serializers.py:107
#: engine/vibes_auth/viewsets.py:94
msgid "passwords do not match"
msgstr "Les mots de passe ne correspondent pas"

#: engine/vibes_auth/docs/drf/viewsets.py:95
msgid "activate a user's account"
msgstr "Activer le compte d'un utilisateur"

#: engine/vibes_auth/docs/drf/viewsets.py:101
msgid "activation link is invalid or account already activated"
msgstr "Le lien d'activation n'est pas valide ou le compte est déjà activé"

#: engine/vibes_auth/docs/drf/viewsets.py:111
msgid "merge client-stored recently viewed products"
msgstr "Fusionner les produits récemment consultés stockés par le client"

#: engine/vibes_auth/graphene/mutations.py:46
msgid "the user's b64-encoded uuid who referred the new user to us."
msgstr ""
"L'uuid b64-encodé de l'utilisateur qui nous a recommandé le nouvel "
"utilisateur."

#: engine/vibes_auth/graphene/mutations.py:68
msgid "password too weak"
msgstr "Le mot de passe est trop faible"

#: engine/vibes_auth/graphene/mutations.py:128
msgid "malformed email"
msgstr "Courriel malformé"

#: engine/vibes_auth/graphene/mutations.py:140
#: engine/vibes_auth/serializers.py:117
#, python-brace-format
msgid "malformed phone number: {phone_number}"
msgstr "Numéro de téléphone malformé : {phone_number} !"

#: engine/vibes_auth/graphene/mutations.py:165
#, python-brace-format
msgid "Invalid attribute format: {attribute_pair}"
msgstr "Format d'attribut non valide : {attribute_pair} !"

#: engine/vibes_auth/graphene/mutations.py:182
#, python-brace-format
msgid "{name} does not exist: {uuid}"
msgstr "{name} n'existe pas : {uuid} !"

#: engine/vibes_auth/graphene/mutations.py:304
#: engine/vibes_auth/viewsets.py:156 engine/vibes_auth/viewsets.py:180
msgid "activation link is invalid!"
msgstr "Le lien d'activation n'est pas valide !"

#: engine/vibes_auth/graphene/mutations.py:307
msgid "account already activated..."
msgstr "Le compte a déjà été activé..."

#: engine/vibes_auth/graphene/mutations.py:314
#: engine/vibes_auth/graphene/mutations.py:376
msgid "something went wrong: {e!s}"
msgstr "Quelque chose a mal tourné : {e!s}"

#: engine/vibes_auth/graphene/mutations.py:358
#: engine/vibes_auth/viewsets.py:106
msgid "token is invalid!"
msgstr "Le jeton n'est pas valide !"

#: engine/vibes_auth/graphene/object_types.py:46
msgid ""
"the products this user has viewed most recently (max 48), in reverse‐"
"chronological order"
msgstr ""
"Les produits que cet utilisateur a consultés le plus récemment (max 48), par "
"ordre chronologique inverse."

#: engine/vibes_auth/graphene/object_types.py:49
#: engine/vibes_auth/models.py:209
msgid "groups"
msgstr "Groupes"

#: engine/vibes_auth/graphene/object_types.py:52
msgid "wishlist"
msgstr "Liste de souhaits"

#: engine/vibes_auth/graphene/object_types.py:56 engine/vibes_auth/models.py:70
msgid "avatar"
msgstr "Avatar"

#: engine/vibes_auth/graphene/object_types.py:58
msgid "attributes may be used to store custom data"
msgstr ""
"Les attributs peuvent être utilisés pour stocker des données personnalisées."

#: engine/vibes_auth/graphene/object_types.py:62
#, python-brace-format
msgid ""
"language is one of the {settings.LANGUAGES} with default {settings."
"LANGUAGE_CODE}"
msgstr ""
"La langue est l'une des {settings.LANGUAGES} avec la valeur par défaut "
"{settings.LANGUAGE_CODE}."

#: engine/vibes_auth/graphene/object_types.py:66
msgid "address set"
msgstr "Adresses"

#: engine/vibes_auth/messaging/services.py:52
msgid "Valid email is required for anonymous chats."
msgstr "Une adresse électronique valide est requise pour les chats anonymes."

#: engine/vibes_auth/messaging/services.py:65
msgid "Message must be 1..1028 characters."
msgstr "Le message doit comporter de 1 à 1028 caractères."

#: engine/vibes_auth/messaging/services.py:105
msgid "We're searching for the operator to answer you already, hold by!"
msgstr ""
"Nous sommes en train de chercher l'opérateur pour vous répondre, attendez !"

#: engine/vibes_auth/messaging/services.py:152
msgid "Assignee must be a staff user."
msgstr "Le destinataire doit être un utilisateur du personnel."

#: engine/vibes_auth/models.py:42
msgid ""
"Represents a User entity with customized fields and methods for extended "
"functionality. This class extends the AbstractUser model and integrates "
"additional features like custom email login, validation methods, "
"subscription status, verification, and attributes storage. It also provides "
"utilities for managing recently viewed items and token-based activation for "
"verifying accounts. The User model is designed to handle specific use cases "
"for enhanced user management."
msgstr ""
"Représente une entité Utilisateur avec des champs et des méthodes "
"personnalisés pour des fonctionnalités étendues. Cette classe étend le "
"modèle AbstractUser et intègre des fonctionnalités supplémentaires telles "
"que la connexion par courrier électronique, les méthodes de validation, "
"l'état de l'abonnement, la vérification et le stockage des attributs. Elle "
"fournit également des utilitaires pour la gestion des éléments récemment "
"consultés et l'activation par jeton pour la vérification des comptes. Le "
"modèle User est conçu pour gérer des cas d'utilisation spécifiques en vue "
"d'une gestion améliorée des utilisateurs."

#: engine/vibes_auth/models.py:53
msgid "email"
msgstr "Courriel"

#: engine/vibes_auth/models.py:53
msgid "user email address"
msgstr "Adresse électronique de l'utilisateur"

#: engine/vibes_auth/models.py:55
msgid "phone_number"
msgstr "Numéro de téléphone"

#: engine/vibes_auth/models.py:60
msgid "user phone number"
msgstr "Numéro de téléphone de l'utilisateur"

#: engine/vibes_auth/models.py:66
msgid "first_name"
msgstr "Prénom"

#: engine/vibes_auth/models.py:67
msgid "last_name"
msgstr "Nom de famille"

#: engine/vibes_auth/models.py:73
msgid "user profile image"
msgstr "Image du profil de l'utilisateur"

#: engine/vibes_auth/models.py:78
msgid "is verified"
msgstr "Est vérifié"

#: engine/vibes_auth/models.py:79
msgid "user verification status"
msgstr "Statut de vérification de l'utilisateur"

#: engine/vibes_auth/models.py:82
msgid "is_active"
msgstr "Est actif"

#: engine/vibes_auth/models.py:84
msgid "unselect this instead of deleting accounts"
msgstr "Désélectionner cette option au lieu de supprimer des comptes"

#: engine/vibes_auth/models.py:87
msgid "is_subscribed"
msgstr "Est abonné"

#: engine/vibes_auth/models.py:88
msgid "user's newsletter subscription status"
msgstr "Statut de l'abonnement à la lettre d'information de l'utilisateur"

#: engine/vibes_auth/models.py:92
msgid "activation token"
msgstr "Jeton d'activation"

#: engine/vibes_auth/models.py:101
msgid "attributes"
msgstr "Attributs"

#: engine/vibes_auth/models.py:141
msgid "user"
msgstr "Utilisateur"

#: engine/vibes_auth/models.py:142
msgid "users"
msgstr "Utilisateurs"

#: engine/vibes_auth/models.py:149
msgid "For anonymous threads"
msgstr "Pour les fils de discussion anonymes"

#: engine/vibes_auth/models.py:173
msgid "Chat thread"
msgstr "Fil de discussion"

#: engine/vibes_auth/models.py:174
msgid "Chat threads"
msgstr "Fils de discussion"

#: engine/vibes_auth/models.py:180
msgid "provide user or email for anonymous thread."
msgstr ""
"Indiquer l'utilisateur ou l'adresse électronique pour le fil de discussion "
"anonyme."

#: engine/vibes_auth/models.py:183
msgid "assignee must be a staff user."
msgstr "L'attributaire doit être un utilisateur du personnel."

#: engine/vibes_auth/models.py:201
msgid "Chat message"
msgstr "Message de chat"

#: engine/vibes_auth/models.py:202
msgid "Chat messages"
msgstr "Messages de chat"

#: engine/vibes_auth/models.py:208
msgid "group"
msgstr "Groupe"

#: engine/vibes_auth/models.py:215
msgid "outstanding token"
msgstr "Jeton exceptionnel"

#: engine/vibes_auth/models.py:216
msgid "outstanding tokens"
msgstr "Jetons en circulation"

#: engine/vibes_auth/models.py:222
msgid "blacklisted token"
msgstr "Jeton sur liste noire"

#: engine/vibes_auth/models.py:223
msgid "blacklisted tokens"
msgstr "Jetons sur liste noire"

#: engine/vibes_auth/serializers.py:91
msgid "attributes must be a dictionary"
msgstr "`attributes` doit être un dictionnaire"

#: engine/vibes_auth/serializers.py:97
msgid "business identificator is required when registering as a business"
msgstr ""
"L'identifiant de l'entreprise est requis lors de l'enregistrement de "
"l'entreprise."

#: engine/vibes_auth/serializers.py:127
#, python-brace-format
msgid "malformed email: {email}"
msgstr "email malformé : {email}"

#: engine/vibes_auth/serializers.py:150 engine/vibes_auth/serializers.py:175
#: engine/vibes_auth/serializers.py:198 engine/vibes_auth/serializers.py:210
msgid "no active account"
msgstr "Aucun compte actif trouvé"

#: engine/vibes_auth/serializers.py:185
msgid "must set token_class attribute on class."
msgstr "L'attribut token_class doit être défini sur la classe !"

#: engine/vibes_auth/serializers.py:271
msgid "token_blacklisted"
msgstr "Token sur liste noire"

#: engine/vibes_auth/serializers.py:276
msgid "invalid token"
msgstr "Jeton non valide"

#: engine/vibes_auth/serializers.py:286
msgid "no user uuid claim present in token"
msgstr "Aucune revendication d'uuid d'utilisateur n'est présente dans le jeton"

#: engine/vibes_auth/serializers.py:288
msgid "user does not exist"
msgstr "L'utilisateur n'existe pas"

#: engine/vibes_auth/templates/user_reset_password_email.html:7
msgid "reset your password"
msgstr "Réinitialiser votre mot de passe"

#: engine/vibes_auth/templates/user_reset_password_email.html:85
#: engine/vibes_auth/templates/user_verification_email.html:85
msgid "logo"
msgstr "Logo"

#: engine/vibes_auth/templates/user_reset_password_email.html:90
msgid "password reset confirmation"
msgstr "Confirmation de la réinitialisation du mot de passe"

#: engine/vibes_auth/templates/user_reset_password_email.html:91
#: engine/vibes_auth/templates/user_verification_email.html:91
#, python-format
msgid "hello %(user_first_name)s,"
msgstr "Bonjour %(user_first_name)s,"

#: engine/vibes_auth/templates/user_reset_password_email.html:92
msgid ""
"we have received a request to reset your password. please reset your "
"password\n"
"                            by clicking the button below:"
msgstr ""
"Nous avons reçu une demande de réinitialisation de votre mot de passe. "
"Veuillez réinitialiser votre mot de passe en cliquant sur le bouton ci-"
"dessous :"

#: engine/vibes_auth/templates/user_reset_password_email.html:95
msgid "reset password"
msgstr "réinitialiser le mot de passe"

#: engine/vibes_auth/templates/user_reset_password_email.html:97
#: engine/vibes_auth/templates/user_verification_email.html:99
msgid ""
"if the button above does not work, please copy and paste the following URL\n"
"                            into your web browser:"
msgstr ""
"Si le bouton ci-dessus ne fonctionne pas, veuillez copier et coller l'URL "
"suivante\n"
"                            suivante dans votre navigateur web :"

#: engine/vibes_auth/templates/user_reset_password_email.html:100
msgid ""
"if you did not send this request, please ignore this\n"
"                            email."
msgstr ""
"si vous n'avez pas envoyé cette demande, veuillez ignorer cet e-mail.\n"
"                            courriel."

#: engine/vibes_auth/templates/user_reset_password_email.html:102
#, python-format
msgid "best regards,<br>The %(project_name)s team"
msgstr "Meilleures salutations, <br>L'équipe %(project_name)s"

#: engine/vibes_auth/templates/user_reset_password_email.html:108
#: engine/vibes_auth/templates/user_verification_email.html:108
msgid "all rights reserved"
msgstr "Tous droits réservés"

#: engine/vibes_auth/templates/user_verification_email.html:7
#: engine/vibes_auth/templates/user_verification_email.html:90
msgid "activate your account"
msgstr "Activer votre compte"

#: engine/vibes_auth/templates/user_verification_email.html:92
#, python-format
msgid ""
"thank you for signing up for %(project_name)s. please activate your account\n"
"                            by clicking the button below:"
msgstr ""
"Merci de vous être inscrit à %(project_name)s. Veuillez activer votre compte "
"en cliquant sur le bouton ci-dessous :"

#: engine/vibes_auth/templates/user_verification_email.html:96
msgid ""
"activate\n"
"                                    account"
msgstr ""
"Activer\n"
"                                    compte"

#: engine/vibes_auth/templates/user_verification_email.html:102
#, python-format
msgid "best regards,<br>the %(project_name)s team"
msgstr "Meilleures salutations, <br>l'équipe %(project_name)s"

#: engine/vibes_auth/utils/emailing.py:24
#, python-brace-format
msgid "{settings.PROJECT_NAME} | Activate Account"
msgstr "{settings.PROJECT_NAME} | Activer le compte"

#: engine/vibes_auth/utils/emailing.py:63
#, python-brace-format
msgid "{settings.PROJECT_NAME} | Reset Password"
msgstr "{settings.PROJECT_NAME} | Réinitialiser le mot de passe"

#: engine/vibes_auth/validators.py:15
msgid ""
"invalid phone number format. the number must be entered in the format: "
"\"+999999999\". up to 15 digits allowed."
msgstr ""
"Format de numéro de téléphone non valide. Le numéro doit être saisi au "
"format : \"+999999999\". Un maximum de 15 chiffres est autorisé."

#: engine/vibes_auth/views.py:34
msgid ""
"Represents a view for getting a pair of access and refresh tokens and user's "
"data. This view manages the process of handling token-based authentication "
"where clients can get a pair of JWT tokens (access and refresh) using "
"provided credentials. It is built on top of a base token view and ensures "
"proper rate limiting to protect against brute force attacks."
msgstr ""
"Représente une vue permettant d'obtenir une paire de jetons d'accès et de "
"rafraîchissement ainsi que les données de l'utilisateur. Cette vue gère le "
"processus d'authentification par jeton dans lequel les clients peuvent "
"obtenir une paire de jetons JWT (accès et rafraîchissement) à l'aide des "
"informations d'identification fournies. Elle est construite au-dessus d'une "
"vue de jeton de base et assure une limitation de taux appropriée pour se "
"protéger contre les attaques par force brute."

#: engine/vibes_auth/views.py:58
msgid ""
"Handles refreshing of tokens for authentication purposes. This class is used "
"to provide functionality for token refresh operations as part of an "
"authentication system. It ensures that clients can request a refreshed token "
"within defined rate limits. The view relies on the associated serializer to "
"validate token refresh inputs and produce appropriate outputs."
msgstr ""
"Gère le rafraîchissement des jetons à des fins d'authentification. Cette "
"classe est utilisée pour fournir une fonctionnalité pour les opérations de "
"rafraîchissement des jetons dans le cadre d'un système d'authentification. "
"Elle garantit que les clients peuvent demander un jeton rafraîchi dans des "
"limites de taux définies. La vue s'appuie sur le sérialiseur associé pour "
"valider les entrées de rafraîchissement de jeton et produire les sorties "
"appropriées."

#: engine/vibes_auth/views.py:83
msgid ""
"Represents a view for verifying JSON Web Tokens (JWT) using specific "
"serialization and validation logic. "
msgstr ""
"Représente une vue permettant de vérifier les jetons Web JSON (JWT) à l'aide "
"d'une logique de sérialisation et de validation spécifique."

#: engine/vibes_auth/views.py:103
msgid "the token is invalid"
msgstr "Le jeton n'est pas valide"

#: engine/vibes_auth/viewsets.py:44
msgid ""
"User view set implementation.\n"
"Provides a set of actions that manage user-related data such as creation, "
"retrieval, updates, deletion, and custom actions including password reset, "
"avatar upload, account activation, and recently viewed items merging. This "
"class extends the mixins and GenericViewSet for robust API handling."
msgstr ""
"Mise en œuvre de l'ensemble des vues de l'utilisateur.\n"
"Fournit un ensemble d'actions qui gèrent les données liées à l'utilisateur, "
"telles que la création, la récupération, les mises à jour, la suppression et "
"les actions personnalisées, notamment la réinitialisation du mot de passe, "
"le téléchargement de l'avatar, l'activation du compte et la fusion des "
"éléments récemment consultés. Cette classe étend les mixins et "
"GenericViewSet pour une gestion robuste de l'API."

#: engine/vibes_auth/viewsets.py:113
msgid "password reset successfully"
msgstr "Le mot de passe a été réinitialisé avec succès !"

#: engine/vibes_auth/viewsets.py:161
msgid "account already activated!"
msgstr "Vous avez déjà activé le compte..."
