BorderAge Core 0.1.0 - en to fr_FR translation catalogue (347 entries)

en: Age verification with zero personal data
fr_FR: Vérification d'âge sans données personnelles

en: Get API Credentials
fr_FR: Obtenir les identifiants API

en: Appearance
fr_FR: Apparence

en: Statistics
fr_FR: Statistiques

en: Show
fr_FR: Afficher

en: Hide
fr_FR: Masquer

en: Copied!
fr_FR: Copié !

en: Sending...
fr_FR: Envoi...

en: Email sent!
fr_FR: Email envoyé !

en: Error sending email
fr_FR: Erreur lors de l'envoi de l'email

en: Coming soon
fr_FR: Bientôt disponible

en: Permission denied
fr_FR: Permission refusée

en: Test email sent successfully
fr_FR: Email de test envoyé avec succès

en: Failed to send email: %s
fr_FR: Échec de l'envoi de l'email : %s

en: Settings saved.
fr_FR: Paramètres enregistrés.

en: You do not have the required permissions.
fr_FR: Vous n'avez pas les permissions requises.

en: BorderAge:
fr_FR: BorderAge :

en: Plugin Status
fr_FR: Statut du plugin

en: Enable Protection
fr_FR: Activer la protection

en: Enable or disable age verification on your site.
fr_FR: Activer ou désactiver la vérification d'âge sur votre site.

en: API Credentials
fr_FR: Identifiants API

en: Enter your BorderAge API credentials. You can obtain them from
fr_FR: Entrez vos identifiants API BorderAge. Vous pouvez les obtenir sur

en: API ID
fr_FR: ID API

en: API Secret
fr_FR: Clé secrète API

en: Temporal grain for verification. Updates monthly.
fr_FR: Grain temporel pour la vérification. Mis à jour mensuellement.

en: Save Settings
fr_FR: Enregistrer les paramètres

en: Debug Mode
fr_FR: Mode débogage

en: Developer Options
fr_FR: Options développeur

en: Enable to test without real API calls. Mock data will be used.
fr_FR: Activer pour tester sans appels API réels. Des données fictives seront utilisées.

en: Debug PIN codes:
fr_FR: Codes PIN de test :

en: Adult (access granted)
fr_FR: Adulte (accès autorisé)

en: Minor (access denied)
fr_FR: Mineur (accès refusé)

en: Invalid PIN
fr_FR: Code PIN invalide

en: Any other 6 digits
fr_FR: Tout autre code à 6 chiffres

en: Testing tools:
fr_FR: Outils de test :

en: Reset verification cookie
fr_FR: Réinitialiser le cookie de vérification

en: Opens homepage and clears the age verification to test again.
fr_FR: Ouvre la page d'accueil et efface la vérification d'âge pour tester à nouveau.

en: Protection Mode
fr_FR: Mode de protection

en: Apply Protection To
fr_FR: Appliquer la protection à

en: Entire site
fr_FR: Tout le site

en: All pages will require age verification.
fr_FR: Toutes les pages nécessiteront une vérification d'âge.

en: Specific pages only
fr_FR: Pages spécifiques uniquement

en: Only selected pages will require verification.
fr_FR: Seules les pages sélectionnées nécessiteront une vérification.

en: Homepage
fr_FR: Page d'accueil

en: Protect homepage
fr_FR: Protéger la page d'accueil

en: Enable age verification on the homepage.
fr_FR: Activer la vérification d'âge sur la page d'accueil.

en: Protected Pages
fr_FR: Pages protégées

en: Select which pages and posts require age verification.
fr_FR: Sélectionnez les pages et articles nécessitant une vérification d'âge.

en: Posts
fr_FR: Articles

en: Form Shape
fr_FR: Forme du formulaire

en: Square
fr_FR: Carré

en: Colors
fr_FR: Couleurs

en: Primary Color
fr_FR: Couleur principale

en: Background Color
fr_FR: Couleur de fond

en: Text Color
fr_FR: Couleur du texte

en: Preview
fr_FR: Aperçu

en: Age Verification
fr_FR: Vérification d'âge

en: Verify
fr_FR: Vérifier

en: Credits Remaining
fr_FR: Crédits restants

en: Low credits
fr_FR: Crédits faibles

en: Total Verifications
fr_FR: Vérifications totales

en: Adults
fr_FR: Adultes

en: Minors
fr_FR: Mineurs

en: Credit Alerts
fr_FR: Alertes de crédits

en: Alert Threshold
fr_FR: Seuil d'alerte

en: Show warning when credits fall below this number.
fr_FR: Afficher un avertissement lorsque les crédits passent en dessous de ce nombre.

en: Email Notifications
fr_FR: Notifications par email

en: Send email when credits are low
fr_FR: Envoyer un email lorsque les crédits sont faibles

en: Alert Email
fr_FR: Email d'alerte

en: Leave empty to use the site admin email.
fr_FR: Laisser vide pour utiliser l'email administrateur du site.

en: Need More Credits?
fr_FR: Besoin de plus de crédits ?

en: Purchase additional credits from your BorderAge dashboard.
fr_FR: Achetez des crédits supplémentaires depuis votre tableau de bord BorderAge.

en: Go to Dashboard
fr_FR: Accéder au tableau de bord

en: API Not Configured
fr_FR: API non configurée

en: Please configure your API credentials in the Configuration tab to view statistics.
fr_FR: Veuillez configurer vos identifiants API dans l'onglet Configuration pour voir les statistiques.

en: Please configure your API credentials in the Configuration tab to protect pages.
fr_FR: Veuillez configurer vos identifiants API dans l'onglet Configuration pour protéger les pages.

en: Go to Configuration
fr_FR: Aller à la configuration

en: How BorderAge Works
fr_FR: Comment fonctionne BorderAge

en: BorderAge is an age verification service that uses hand gesture recognition to verify user age without requiring ID documents or selfies. Users simply wave their hand in front of their camera, and the system analyzes the hand characteristics to estimate age.
fr_FR: BorderAge est un service de vérification d'âge qui utilise la reconnaissance de gestes de la main pour vérifier l'âge des utilisateurs sans nécessiter de pièce d'identité ou de selfie. Les utilisateurs font simplement un geste de la main devant leur caméra, et le système analyse les caractéristiques de la main pour estimer l'âge.

en: User visits protected page
fr_FR: L'utilisateur visite une page protégée

en: Hand gesture verification
fr_FR: Vérification par geste de la main

en: Access granted
fr_FR: Accès autorisé

en: Visitor Account System
fr_FR: Système de compte visiteur

en: Important for sites without WordPress authentication
fr_FR: Important pour les sites sans authentification WordPress

en: If your site does not use WordPress user accounts for visitors (e.g., a public content site), BorderAge automatically enables a lightweight visitor account system.
fr_FR: Si votre site n'utilise pas de comptes utilisateurs WordPress pour les visiteurs (par exemple, un site de contenu public), BorderAge active automatiquement un système léger de comptes visiteurs.

en: Here's how the visitor account system works:
fr_FR: Voici comment fonctionne le système de compte visiteur :

en: First visit:
fr_FR: Première visite :

en: When a visitor accesses a protected page for the first time, they are redirected to the verification page.
fr_FR: Lorsqu'un visiteur accède à une page protégée pour la première fois, il est redirigé vers la page de vérification.

en: Age verification:
fr_FR: Vérification d'âge :

en: The visitor completes the hand gesture verification on BorderAge.
fr_FR: Le visiteur effectue la vérification par geste de la main sur BorderAge.

en: Account creation:
fr_FR: Création de compte :

en: After successful verification, the visitor can create a simple account (username + password) to save their verification status.
fr_FR: Après une vérification réussie, le visiteur peut créer un compte simple (identifiant + mot de passe) pour sauvegarder son statut de vérification.

en: Returning visits:
fr_FR: Visites ultérieures :

en: On subsequent visits, the visitor can log in with their account to skip re-verification.
fr_FR: Lors des visites suivantes, le visiteur peut se connecter avec son compte pour éviter une nouvelle vérification.

en: New visitor
fr_FR: Nouveau visiteur

en: Verify age
fr_FR: Vérifier l'âge

en: Create account
fr_FR: Créer un compte

en: Login next time
fr_FR: Connexion la prochaine fois

en: Note:
fr_FR: Note :

en: If your site already uses WordPress authentication (members, subscribers, etc.), the visitor account system is not used. Instead, verification status is linked to their WordPress user account.
fr_FR: Si votre site utilise déjà l'authentification WordPress (membres, abonnés, etc.), le système de compte visiteur n'est pas utilisé. Le statut de vérification est lié à leur compte utilisateur WordPress.

en: Verification Logs
fr_FR: Journaux de vérification

en: All verification attempts are logged locally in your database. You can view these logs in the Statistics tab. The logs include:
fr_FR: Toutes les tentatives de vérification sont enregistrées localement dans votre base de données. Vous pouvez consulter ces journaux dans l'onglet Statistiques. Les journaux incluent :

en: Date and time of the verification attempt
fr_FR: Date et heure de la tentative de vérification

en: User type (visitor or WordPress user)
fr_FR: Type d'utilisateur (visiteur ou utilisateur WordPress)

en: Anonymized user identifier
fr_FR: Identifiant utilisateur anonymisé

en: Result code (success, minor, or error code)
fr_FR: Code de résultat (succès, mineur ou code d'erreur)

en: When a verification error occurs, users see a simplified error message and are informed that the details have been logged. You can then review the detailed error information in the admin panel.
fr_FR: Lorsqu'une erreur de vérification se produit, les utilisateurs voient un message d'erreur simplifié et sont informés que les détails ont été enregistrés. Vous pouvez ensuite consulter les informations d'erreur détaillées dans le panneau d'administration.

en: Error Codes Reference
fr_FR: Référence des codes d'erreur

en: Verification successful - User is an adult
fr_FR: Vérification réussie - L'utilisateur est un adulte

en: Verification successful - User is a minor
fr_FR: Vérification réussie - L'utilisateur est un mineur

en: Hand movements not performed correctly after multiple attempts
fr_FR: Mouvements de la main non effectués correctement après plusieurs tentatives

en: Fraud suspicion detected (e.g., photo instead of live camera)
fr_FR: Suspicion de fraude détectée (par exemple, photo au lieu de caméra en direct)

en: Hardware/software not supported (no webcam or outdated system)
fr_FR: Matériel/logiciel non pris en charge (pas de webcam ou système obsolète)

en: Verification process was restarted
fr_FR: Le processus de vérification a été redémarré

en: Configuration error: Unsupported age threshold
fr_FR: Erreur de configuration : Seuil d'âge non pris en charge

en: Configuration error: Unsupported age bracket
fr_FR: Erreur de configuration : Tranche d'âge non prise en charge

en: Configuration error: Invalid hash
fr_FR: Erreur de configuration : Hash invalide

en: Configuration error: Invalid user ID
fr_FR: Erreur de configuration : ID utilisateur invalide

en: Site is blocked or not properly configured with BorderAge
fr_FR: Le site est bloqué ou n'est pas correctement configuré avec BorderAge

en: BorderAge service temporarily unavailable
fr_FR: Service BorderAge temporairement indisponible

en: Frequently Asked Questions
fr_FR: Questions fréquentes

en: Do I need visitor accounts if I use WordPress login?
fr_FR: Ai-je besoin de comptes visiteurs si j'utilise la connexion WordPress ?

en: No. If your users log in with WordPress accounts (members, subscribers, WooCommerce customers, etc.), their verification status is automatically linked to their WordPress user. The visitor account system only activates for anonymous visitors.
fr_FR: Non. Si vos utilisateurs se connectent avec des comptes WordPress (membres, abonnés, clients WooCommerce, etc.), leur statut de vérification est automatiquement lié à leur utilisateur WordPress. Le système de compte visiteur ne s'active que pour les visiteurs anonymes.

en: How long does verification last?
fr_FR: Combien de temps dure la vérification ?

en: For anonymous visitors with session cookies, verification lasts 24 hours. Visitors who create an account remain verified indefinitely until they log out. WordPress users retain their verification status as long as they are logged in.
fr_FR: Pour les visiteurs anonymes avec des cookies de session, la vérification dure 24 heures. Les visiteurs qui créent un compte restent vérifiés indéfiniment jusqu'à leur déconnexion. Les utilisateurs WordPress conservent leur statut de vérification tant qu'ils sont connectés.

en: What data is stored locally?
fr_FR: Quelles données sont stockées localement ?

en: The plugin stores: verification logs (anonymized user ID, result code, timestamp), and visitor accounts (username, hashed password, visitor ID). No personal identification data is stored.
fr_FR: Le plugin stocke : les journaux de vérification (ID utilisateur anonymisé, code de résultat, horodatage) et les comptes visiteurs (identifiant, mot de passe haché, ID visiteur). Aucune donnée d'identification personnelle n'est stockée.

en: Why do I see errors in my logs?
fr_FR: Pourquoi vois-je des erreurs dans mes journaux ?

en: Errors can occur for various reasons: users may have camera issues, attempt fraud, or experience technical problems. The logs help you monitor verification health and identify potential issues.
fr_FR: Des erreurs peuvent se produire pour diverses raisons : les utilisateurs peuvent avoir des problèmes de caméra, tenter une fraude ou rencontrer des problèmes techniques. Les journaux vous aident à surveiller la santé des vérifications et à identifier les problèmes potentiels.

en: Can I export the verification logs?
fr_FR: Puis-je exporter les journaux de vérification ?

en: Yes, you can export logs to CSV format from the Statistics tab. Use the filters to narrow down the data before exporting.
fr_FR: Oui, vous pouvez exporter les journaux au format CSV depuis l'onglet Statistiques. Utilisez les filtres pour affiner les données avant l'exportation.

en: Need Help?
fr_FR: Besoin d'aide ?

en: If you have questions or need assistance, please visit our documentation or contact support.
fr_FR: Si vous avez des questions ou besoin d'assistance, veuillez consulter notre documentation ou contacter le support.

en: Contact Support
fr_FR: Contacter le support

en: In the meantime, please contact us at
fr_FR: En attendant, veuillez nous contacter à

en: Verification required to continue using %s
fr_FR: Vérification requise pour continuer sur %s

en: To keep our community safe, we need to verify you are %s or older. Members must complete a quick hand-gesture check.
fr_FR: Pour assurer la sécurité de notre communauté, nous devons vérifier que vous avez %s ans ou plus. Les membres doivent effectuer une rapide vérification par geste de la main.

en: This does not require an ID or a selfie.
fr_FR: Aucune pièce d'identité ni selfie requis.

en: Only a hand gesture
fr_FR: Seulement un geste de la main

en: No ID, no selfie, and don't show your face—just wave your hand to verify you're %s+
fr_FR: Pas de pièce d'identité, pas de selfie, ne montrez pas votre visage—faites simplement un geste de la main pour vérifier que vous avez %s ans ou plus

en: Fast and easy
fr_FR: Rapide et facile

en: Typically takes less than 30 seconds
fr_FR: Prend généralement moins de 30 secondes

en: I have a PIN
fr_FR: J'ai un code PIN

en: Verify now
fr_FR: Vérifier maintenant

en: Back
fr_FR: Retour

en: Enter your PIN
fr_FR: Entrez votre code PIN

en: Enter the 6-digit PIN you received from BorderAge.
fr_FR: Entrez le code PIN à 6 chiffres que vous avez reçu de BorderAge.

en: Don't have a PIN? Get one now
fr_FR: Vous n'avez pas de code PIN ? Obtenez-en un maintenant

en: Verification required
fr_FR: Vérification requise

en: Quick hand-gesture check. No ID required.
fr_FR: Vérification rapide par geste. Aucune pièce d'identité requise.

en: Already have an account?
fr_FR: Vous avez déjà un compte ?

en: Log in with my account
fr_FR: Se connecter avec mon compte

en: In debug mode, clicking a button will simulate the BorderAge callback locally.
fr_FR: En mode débogage, cliquer sur un bouton simulera le callback BorderAge localement.

en: Adult ✓
fr_FR: Adulte ✓

en: Minor ✗
fr_FR: Mineur ✗

en: Error
fr_FR: Erreur

en: Verification Successful
fr_FR: Vérification réussie

en: Access Denied
fr_FR: Accès refusé

en: Access denied. This content is restricted to users %d years or older. Our verification results indicate you are under the required age.
fr_FR: Accès refusé. Ce contenu est réservé aux utilisateurs de %d ans ou plus. Nos résultats de vérification indiquent que vous êtes en dessous de l'âge requis.

en: Verification Error
fr_FR: Erreur de vérification

en: Error code:
fr_FR: Code d'erreur :

en: Continue to site
fr_FR: Continuer vers le site

en: Return to homepage
fr_FR: Retour à l'accueil

en: Try again
fr_FR: Réessayer

en: Save your verification
fr_FR: Sauvegarder votre vérification

en: Verification Successful!
fr_FR: Vérification réussie !

en: You have been verified. Save your access to skip verification next time.
fr_FR: Vous avez été vérifié. Sauvegardez votre accès pour éviter la vérification la prochaine fois.

en: Optional:
fr_FR: Optionnel :

en: Create a login to remember your verification. Next time, just log in to access the site instantly.
fr_FR: Créez un identifiant pour mémoriser votre vérification. La prochaine fois, connectez-vous simplement pour accéder au site instantanément.

en: This username is already taken. Please choose another one.
fr_FR: Ce nom d'utilisateur est déjà utilisé. Veuillez en choisir un autre.

en: Passwords do not match.
fr_FR: Les mots de passe ne correspondent pas.

en: Please fill in all fields.
fr_FR: Veuillez remplir tous les champs.

en: Username
fr_FR: Nom d'utilisateur

en: Password
fr_FR: Mot de passe

en: Confirm Password
fr_FR: Confirmer le mot de passe

en: Create my account
fr_FR: Créer mon compte

en: Skip, continue without saving
fr_FR: Ignorer, continuer sans sauvegarder

en: Login to access
fr_FR: Se connecter pour accéder

en: Welcome back!
fr_FR: Bon retour !

en: Log in with your saved account to access the content instantly.
fr_FR: Connectez-vous avec votre compte sauvegardé pour accéder au contenu instantanément.

en: Invalid username or password.
fr_FR: Nom d'utilisateur ou mot de passe invalide.

en: Too many login attempts. Please try again later.
fr_FR: Trop de tentatives de connexion. Veuillez réessayer plus tard.

en: Log in
fr_FR: Se connecter

en: or
fr_FR: ou

en: Verify my age again
fr_FR: Vérifier mon âge à nouveau

en: Please enter your BorderAge PIN to verify your age and access this content.
fr_FR: Veuillez entrer votre code PIN BorderAge pour vérifier votre âge et accéder à ce contenu.

en: Verify Age
fr_FR: Vérifier l'âge

en: Don't have a PIN?
fr_FR: Vous n'avez pas de code PIN ?

en: Get one at BorderAge.com
fr_FR: Obtenez-en un sur BorderAge.com

en: Zero personal data required.
fr_FR: Aucune donnée personnelle requise.

en: Please enter a 6-digit PIN.
fr_FR: Veuillez entrer un code PIN à 6 chiffres.

en: Verification failed. Please try again.
fr_FR: La vérification a échoué. Veuillez réessayer.

en: An error occurred. Please try again.
fr_FR: Une erreur s'est produite. Veuillez réessayer.

en: Security check failed.
fr_FR: La vérification de sécurité a échoué.

en: Please enter a valid 6-digit PIN.
fr_FR: Veuillez entrer un code PIN valide à 6 chiffres.

en: Verification failed.
fr_FR: La vérification a échoué.

en: Access restricted to adults only.
fr_FR: Accès réservé aux adultes.

en: Invalid API response
fr_FR: Réponse API invalide

en: API credentials not configured
fr_FR: Identifiants API non configurés

en: Verification page template not found.
fr_FR: Modèle de page de vérification introuvable.

en: [%s] BorderAge: Low Credits Alert
fr_FR: [%s] BorderAge : Alerte crédits faibles

en: Hello,
    
    Your BorderAge credits are running low.
    
    Current credits: %d
    Alert threshold: %d
    
    Please visit your BorderAge dashboard to purchase more credits:
    https://app.borderage.com
    
    Best regards,
    %s
fr_FR: Bonjour,
    
    Vos crédits BorderAge sont bientôt épuisés.
    
    Crédits actuels : %d
    Seuil d'alerte : %d
    
    Veuillez visiter votre tableau de bord BorderAge pour acheter plus de crédits :
    https://app.borderage.com
    
    Cordialement,
    %s

en: Your credits are running low (%d remaining). %s
fr_FR: Vos crédits sont bientôt épuisés (%d restants). %s

en: Purchase more credits
fr_FR: Acheter plus de crédits

en: Permalinks Configuration Required
fr_FR: Configuration des permaliens requise

en: Your site uses "Simple" permalinks which are not compatible with BorderAge. Please %schange your permalink settings%s to any other option (e.g., "Post name").
fr_FR: Votre site utilise les permaliens "Simples" qui ne sont pas compatibles avec BorderAge. Veuillez %smodifier vos paramètres de permaliens%s vers une autre option (ex: "Titre de la publication").

en: Pretty permalinks are required for age verification to work. Please %supdate your permalink settings%s (select any option except "Simple").
fr_FR: Les permaliens personnalisés sont requis pour que la vérification d'âge fonctionne. Veuillez %smettre à jour vos paramètres de permaliens%s (sélectionnez n'importe quelle option sauf "Simple").

en: Debug Mode Active
fr_FR: Mode débogage actif

en: API calls are mocked. Disable before production.
fr_FR: Les appels API sont simulés. Désactivez avant la mise en production.

en: The BorderAge application will be available soon. In the meantime, please contact us at
fr_FR: L'application BorderAge sera bientôt disponible. En attendant, veuillez nous contacter à

en: to receive credits and obtain your API credentials.
fr_FR: pour recevoir des crédits et obtenir vos identifiants API.

en: When registering your site with BorderAge, you will be asked to provide a return URL. Copy and send them the URL below.
fr_FR: Lors de l'enregistrement de votre site avec BorderAge, il vous sera demandé de fournir une URL de retour. Copiez et envoyez-leur l'URL ci-dessous.

en: to purchase more credits.
fr_FR: pour acheter plus de crédits.

en: Your credits are running low (%d remaining). The BorderAge application will be available soon. In the meantime, please contact us at %s to purchase more credits.
fr_FR: Vos crédits sont bientôt épuisés (%d restants). L'application BorderAge sera bientôt disponible. En attendant, veuillez nous contacter à %s pour acheter plus de crédits.

en: Your verification credits are exhausted. Page protection is inactive.
fr_FR: Vos crédits de vérification sont épuisés. La protection des pages est inactive.

en: Your verification credits are running low (%d remaining). Page protection may soon become inactive.
fr_FR: Vos crédits de vérification sont bientôt épuisés (%d restants). La protection des pages pourrait bientôt devenir inactive.

en: Go to dashboard
fr_FR: Accéder au tableau de bord

en: Contact %s
fr_FR: Contacter %s

en: Credits exhausted
fr_FR: Crédits épuisés

en: New users cannot verify their age. Already verified users can still access protected content. Purchase credits to restore verification for new users.
fr_FR: Les nouveaux utilisateurs ne peuvent pas vérifier leur âge. Les utilisateurs déjà vérifiés peuvent toujours accéder au contenu protégé. Achetez des crédits pour rétablir la vérification pour les nouveaux utilisateurs.

en: %d credits remaining. New user verification may soon become unavailable. Already verified users can still access protected content.
fr_FR: %d crédits restants. La vérification des nouveaux utilisateurs pourrait bientôt devenir indisponible. Les utilisateurs déjà vérifiés peuvent toujours accéder au contenu protégé.

en: Debug Logs
fr_FR: Journaux de débogage

en: Diagnostic logs for the last 24 hours. Logs are automatically purged after 24h.
fr_FR: Journaux de diagnostic des dernières 24 heures. Les logs sont automatiquement purgés après 24h.

en: If you encounter any issues, please download the logs and send them to %s for analysis.
fr_FR: Si vous rencontrez des anomalies, veuillez télécharger les logs et les envoyer à %s pour analyse.

en: Download dump
fr_FR: Télécharger le dump

en: Clear all logs?
fr_FR: Effacer tous les logs ?

en: Clear logs
fr_FR: Effacer les logs

en: %d entries
fr_FR: %d entrées

en: Clear filter
fr_FR: Effacer le filtre

en: No logs yet. Logs will appear here as events occur.
fr_FR: Aucun log pour l'instant. Les logs apparaîtront ici au fur et à mesure des événements.

en: Time
fr_FR: Heure

en: Level
fr_FR: Niveau

en: Context
fr_FR: Contexte

en: View
fr_FR: Voir

en: Showing 100 of %d entries. Download the dump for complete logs.
fr_FR: Affichage de 100 sur %d entrées. Téléchargez le dump pour les logs complets.

en: Debug logs cleared.
fr_FR: Logs de débogage effacés.

en: Developers
fr_FR: Développeurs

en: Extensibility
fr_FR: Extensibilité

en: BorderAge Core provides WordPress action hooks that allow developers to extend the plugin functionality and integrate it with custom systems or third-party plugins.
fr_FR: BorderAge Core fournit des hooks d'action WordPress qui permettent aux développeurs d'étendre les fonctionnalités du plugin et de l'intégrer avec des systèmes personnalisés ou des plugins tiers.

en: All hooks are fired at key moments during the age verification and visitor account lifecycle. You can use these hooks to trigger custom actions, send webhooks, sync data with external systems, or integrate with e-commerce platforms.
fr_FR: Tous les hooks sont déclenchés à des moments clés du cycle de vie de la vérification d'âge et des comptes visiteurs. Vous pouvez utiliser ces hooks pour déclencher des actions personnalisées, envoyer des webhooks, synchroniser des données avec des systèmes externes ou intégrer avec des plateformes e-commerce.

en: Available Hooks
fr_FR: Hooks disponibles

en: Hook Name
fr_FR: Nom du hook

en: When Fired
fr_FR: Quand déclenché

en: Fired after a successful age verification. The user has been verified as an adult and granted access.
fr_FR: Déclenché après une vérification d'âge réussie. L'utilisateur a été vérifié comme adulte et a obtenu l'accès.

en: Array keys:
fr_FR: Clés du tableau :

en: Unique user identifier
fr_FR: Identifiant utilisateur unique

en: Whether the user is a logged-in WordPress user
fr_FR: Si l'utilisateur est un utilisateur WordPress connecté

en: Verified age
fr_FR: Âge vérifié

en: After successful verification
fr_FR: Après vérification réussie

en: Fired when age verification fails (minor detected or error occurred).
fr_FR: Déclenché lorsque la vérification d'âge échoue (mineur détecté ou erreur survenue).

en: Error code or "0" for minor
fr_FR: Code d'erreur ou "0" pour mineur

en: Whether the failure is due to minor age
fr_FR: Si l'échec est dû à un âge mineur

en: After failed verification
fr_FR: Après vérification échouée

en: Fired after a visitor successfully creates an account (username + password).
fr_FR: Déclenché après qu'un visiteur ait créé un compte avec succès (identifiant + mot de passe).

en: Unique visitor identifier
fr_FR: Identifiant visiteur unique

en: Chosen username
fr_FR: Nom d'utilisateur choisi

en: After account creation
fr_FR: Après création de compte

en: Fired after a visitor successfully logs in with their saved account.
fr_FR: Déclenché après qu'un visiteur se soit connecté avec succès avec son compte sauvegardé.

en: Username used for login
fr_FR: Nom d'utilisateur utilisé pour la connexion

en: After successful login
fr_FR: Après connexion réussie

en: Fired before redirecting an unverified user to the verification page. Useful for logging or analytics.
fr_FR: Déclenché avant de rediriger un utilisateur non vérifié vers la page de vérification. Utile pour la journalisation ou l'analyse.

en: URL the user was trying to access
fr_FR: URL que l'utilisateur essayait d'atteindre

en: Current protection mode ("all" or "specific")
fr_FR: Mode de protection actuel ("all" ou "specific")

en: Before redirect to verify
fr_FR: Avant redirection vers la vérification

en: Code Examples
fr_FR: Exemples de code

en: Example 1: Send Webhook After Visitor Registration
fr_FR: Exemple 1 : Envoyer un webhook après l'inscription d'un visiteur

en: Send a webhook to an external service when a visitor creates an account:
fr_FR: Envoyer un webhook à un service externe lorsqu'un visiteur crée un compte :

en: Example 2: Sync with WooCommerce
fr_FR: Exemple 2 : Synchroniser avec WooCommerce

en: Mark WordPress users as age-verified after successful verification:
fr_FR: Marquer les utilisateurs WordPress comme vérifiés en âge après une vérification réussie :

en: Example 3: Log Verification Events
fr_FR: Exemple 3 : Journaliser les événements de vérification

en: Log all verification events to a custom file:
fr_FR: Journaliser tous les événements de vérification dans un fichier personnalisé :

en: Best Practices
fr_FR: Bonnes pratiques

en: Always validate and sanitize data received from hooks before processing.
fr_FR: Toujours valider et nettoyer les données reçues des hooks avant traitement.

en: Use non-blocking operations (e.g., wp_remote_post with timeout) for external API calls to avoid slowing down the verification process.
fr_FR: Utilisez des opérations non bloquantes (par exemple, wp_remote_post avec timeout) pour les appels API externes afin d'éviter de ralentir le processus de vérification.

en: Test your hooks thoroughly in a development environment before deploying to production.
fr_FR: Testez vos hooks en profondeur dans un environnement de développement avant de déployer en production.

en: Consider using WordPress transients or queues for heavy operations triggered by hooks.
fr_FR: Envisagez d'utiliser des transients WordPress ou des files d'attente pour les opérations lourdes déclenchées par les hooks.

en: Hooks are passive - if no code listens to them, they have zero impact on performance. The plugin's default behavior remains unchanged.
fr_FR: Les hooks sont passifs - si aucun code ne les écoute, ils n'ont aucun impact sur les performances. Le comportement par défaut du plugin reste inchangé.

en: BorderAge Core provides WordPress action hooks and filters that allow developers to extend the plugin functionality and integrate it with custom systems or third-party plugins.
fr_FR: BorderAge Core fournit des hooks d'action et des filtres WordPress qui permettent aux développeurs d'étendre les fonctionnalités du plugin et de l'intégrer avec des systèmes personnalisés ou des plugins tiers.

en: Action hooks are fired at key moments during the age verification and visitor account lifecycle. Filters allow you to modify plugin behavior, such as bypassing verification for specific cases. You can use these hooks to trigger custom actions, send webhooks, sync data with external systems, or integrate with e-commerce platforms.
fr_FR: Les hooks d'action sont déclenchés à des moments clés du cycle de vie de la vérification d'âge et des comptes visiteurs. Les filtres permettent de modifier le comportement du plugin, comme contourner la vérification pour des cas spécifiques. Vous pouvez utiliser ces hooks pour déclencher des actions personnalisées, envoyer des webhooks, synchroniser des données avec des systèmes externes ou intégrer avec des plateformes e-commerce.

en: Filters
fr_FR: Filtres

en: Parameters
fr_FR: Paramètres

en: Filter that allows you to bypass age verification for specific cases. Return true to grant access without verification, or return the original value to keep default behavior.
fr_FR: Filtre qui permet de contourner la vérification d'âge pour des cas spécifiques. Retournez true pour accorder l'accès sans vérification, ou retournez la valeur d'origine pour conserver le comportement par défaut.

en: Use cases:
fr_FR: Cas d'usage :

en: Bypass for WordPress administrators or specific user roles
fr_FR: Contournement pour les administrateurs WordPress ou des rôles utilisateur spécifiques

en: Bypass for whitelisted IP addresses (development, office networks)
fr_FR: Contournement pour les adresses IP en liste blanche (développement, réseaux de bureau)

en: Integration with membership plugins or custom authentication systems
fr_FR: Intégration avec des plugins de membership ou des systèmes d'authentification personnalisés

en: Return:
fr_FR: Retour :

en: Example 4: Bypass Verification for Specific Cases
fr_FR: Exemple 4 : Contourner la vérification pour des cas spécifiques

en: Use the filter to bypass verification for administrators, whitelisted IPs, or membership plugin users:
fr_FR: Utilisez le filtre pour contourner la vérification pour les administrateurs, les IP en liste blanche ou les utilisateurs de plugins de membership :

en: // Bypass for WordPress administrators
fr_FR: // Contournement pour les administrateurs WordPress

en: // Bypass for whitelisted IP addresses (development/office)
fr_FR: // Contournement pour les adresses IP en liste blanche (développement/bureau)

en: // Integration with membership plugin (example: Paid Memberships Pro)
fr_FR: // Intégration avec un plugin de membership (exemple : Paid Memberships Pro)

en: Security: Callback URL Protection
fr_FR: Sécurité : Protection de l'URL de callback

en: Verification Initiation
fr_FR: Initialisation de la vérification

en: When a visitor starts verification, a timestamp is recorded in database: <code>pending_registration_at</code>
fr_FR: Lorsqu'un visiteur démarre la vérification, un horodatage est enregistré dans la base de données : <code>pending_registration_at</code>

en: BorderAge Callback
fr_FR: Callback BorderAge

en: API returns callback URL with result. Plugin validates that timestamp is < 5 minutes old.
fr_FR: L'API renvoie une URL de callback avec le résultat. Le plugin valide que l'horodatage a moins de 5 minutes.

en: Account Creation
fr_FR: Création de compte

en: Visitor creates account. <code>pending_registration_at</code> is cleared after success.
fr_FR: Le visiteur crée un compte. <code>pending_registration_at</code> est nettoyé après succès.

en: If callback takes > 5 minutes, verification fails with "callback_expired" error.
fr_FR: Si le callback prend plus de 5 minutes, la vérification échoue avec l'erreur "callback_expired".

en: Why This Matters
fr_FR: Pourquoi c'est important

en: Without token protection, a verified user could share their callback URL with others, allowing them to bypass verification without any age check. The one-time token ensures each callback can only be used by the session that initiated it, within a strict 5-minute window.
fr_FR: Sans protection par token, un utilisateur vérifié pourrait partager son URL de callback avec d'autres, leur permettant de contourner la vérification sans aucune vérification d'âge. Le token à usage unique garantit que chaque callback ne peut être utilisé que par la session qui l'a initié, dans une fenêtre stricte de 5 minutes.

en: Security Benefits:
fr_FR: Avantages de sécurité :

en: Prevents callback URL sharing and account fraud
fr_FR: Empêche le partage d'URL de callback et la fraude de compte

en: Short timeout (5 minutes) limits attack window
fr_FR: Délai court (5 minutes) limite la fenêtre d'attaque

en: Automatic cleanup prevents stale data
fr_FR: Le nettoyage automatique empêche les données obsolètes

en: Transparent to users - seamless experience
fr_FR: Transparent pour les utilisateurs - expérience fluide

en: Callback expired
fr_FR: Callback expiré

en: The verification link has expired. Please start the verification process again.
fr_FR: Le lien de vérification a expiré. Veuillez recommencer le processus de vérification.

en: Callback URL expired - Verification took longer than allowed time (5 minutes)
fr_FR: URL de callback expirée - La vérification a pris plus de temps que le délai autorisé (5 minutes).

en: Security verification failed - Response authenticity could not be verified
fr_FR: Échec de la vérification de sécurité - L'authenticité de la réponse n'a pas pu être vérifiée

en: Password cannot be empty.
fr_FR: Le mot de passe ne peut pas être vide.

en: Password must be at least 12 characters long.
fr_FR: Le mot de passe doit comporter au moins 12 caractères.

en: Password must contain at least one uppercase letter (A-Z).
fr_FR: Le mot de passe doit contenir au moins une lettre majuscule (A-Z).

en: Password must contain at least one lowercase letter (a-z).
fr_FR: Le mot de passe doit contenir au moins une lettre minuscule (a-z).

en: Password must contain at least one digit (0-9).
fr_FR: Le mot de passe doit contenir au moins un chiffre (0-9).

en: Password must contain at least one special character (!@#$%^&*()_+-=[]{}|;:,.<>?)
fr_FR: Le mot de passe doit contenir au moins un caractère spécial (!@#$%^&*()_+-=[]{}|;:,.<>?)

en: Password requirements:
fr_FR: Exigences du mot de passe :

en: At least 12 characters
fr_FR: Au moins 12 caractères

en: One uppercase letter (A-Z)
fr_FR: Une lettre majuscule (A-Z)

en: One lowercase letter (a-z)
fr_FR: Une lettre minuscule (a-z)

en: One digit (0-9)
fr_FR: Un chiffre (0-9)

en: One special character (!@#$%^&*()_+-=[]{}|;:,.<>?)
fr_FR: Un caractère spécial (!@#$%^&*()_+-=[]{}|; :,.<>?)

en: Security: Universal Token-Based Protection
fr_FR: Sécurité : Protection universelle par token

en: Universal Protection for All Users
fr_FR: Protection universelle pour tous les utilisateurs

en: The token-based security system protects both visitors (anonymous users) AND WordPress users. Every verification attempt creates a unique token that can only be used once within a 5-minute window.
fr_FR: Le système de sécurité basé sur des tokens protège à la fois les visiteurs (utilisateurs anonymes) ET les utilisateurs WordPress. Chaque tentative de vérification crée un token unique qui ne peut être utilisé qu'une seule fois dans une fenêtre de 5 minutes.

en: Token Creation
fr_FR: Création de token

en: When a user starts verification, a unique token is created in the database: <code>borderage_verification_tokens</code>. Automatic cleanup removes tokens older than 24 hours.
fr_FR: Lorsqu'un utilisateur démarre la vérification, un token unique est créé dans la base de données : <code>borderage_verification_tokens</code>. Le nettoyage automatique supprime les tokens de plus de 24 heures.

en: API returns callback URL with result. Plugin validates: (1) Hash signature from BorderAge, (2) Token exists and is < 5 minutes old, (3) Token has not been used yet.
fr_FR: L'API renvoie une URL de callback avec le résultat. Le plugin valide : (1) Signature de hash de BorderAge, (2) Le token existe et a moins de 5 minutes, (3) Le token n'a pas encore été utilisé.

en: Token Marking
fr_FR: Marquage du token

en: If verification succeeds (result=1) or user is a minor (result=0), the token is immediately marked as used (<code>is_used = 1</code>). It cannot be reused.
fr_FR: Si la vérification réussit (result=1) ou si l'utilisateur est mineur (result=0), le token est immédiatement marqué comme utilisé (<code>is_used = 1</code>). Il ne peut pas être réutilisé.

en: If callback takes > 5 minutes OR token is already used, verification fails with "callback_expired" error. User must restart verification.
fr_FR: Si le callback prend plus de 5 minutes OU si le token est déjà utilisé, la vérification échoue avec l'erreur "callback_expired". L'utilisateur doit redémarrer la vérification.

en: Universal protection for both visitors AND WordPress users
fr_FR: Protection universelle pour les visiteurs ET les utilisateurs WordPress

en: One-time tokens prevent callback URL sharing and fraud
fr_FR: Les tokens à usage unique empêchent le partage d'URL de callback et la fraude

en: Strict 5-minute timeout limits attack window
fr_FR: Délai strict de 5 minutes limite la fenêtre d'attaque

en: Automatic cleanup (>24h) prevents database bloat
fr_FR: Nettoyage automatique (>24h) empêche l'enflure de la base de données

en: Transparent to users - seamless verification experience
fr_FR: Transparent pour les utilisateurs - expérience de vérification fluide

en: Show password
fr_FR: Afficher le mot de passe

en: Hide password
fr_FR: Masquer le mot de passe

en: Error creating account. Please try again.
fr_FR: Erreur lors de la création du compte. Veuillez réessayer.

en: Unified login flow (WordPress + visitor fallback)
fr_FR: Flux de connexion unifié (WordPress + repli visiteur)

en: BorderAge uses a single login form. The plugin first checks WordPress credentials, then falls back to the visitor account if needed.
fr_FR: BorderAge utilise un formulaire de connexion unique. Le plugin vérifie d'abord les identifiants WordPress, puis bascule vers le compte visiteur si nécessaire.

en: One login link from the verification page
fr_FR: Un seul lien de connexion depuis la page de vérification

en: WordPress authentication is attempted first
fr_FR: L'authentification WordPress est tentée en premier

en: Visitor account authentication is used as fallback
fr_FR: L'authentification du compte visiteur est utilisée en repli

en: Login brute-force protection
fr_FR: Protection anti force brute sur la connexion

en: Login attempts are rate-limited and stored as anonymized references. No IP address is stored in the database.
fr_FR: Les tentatives de connexion sont limitées et stockées sous forme de références anonymisées. Aucune adresse IP n'est stockée en base de données.
