{
    "security": {
        "csrfInvalid": "Token de sécurité invalide. Veuillez recharger la page et réessayer."
    },
    "http": {
        "404": {
            "code": "404",
            "title": "Page non trouvée",
            "message": "La page que vous recherchez n'existe pas ou a été déplacée.",
            "description": "La page que vous recherchez n'existe pas",
            "suggestions": {
                "title": "Suggestions",
                "whatToDo": "Que faire ?",
                "suggestion1": "Vérifiez l'orthographe de l'URL dans la barre d'adresse",
                "suggestion2": "Utilisez la barre de recherche pour trouver ce que vous cherchez",
                "suggestion3": "Consultez la page d'accueil pour naviguer vers d'autres sections"
            },
            "actions": {
                "backHome": "Retour à l'accueil",
                "previousPage": "Page précédente",
                "retry": "Réessayer"
            }
        },
        "403": {
            "code": "403",
            "title": "Accès interdit",
            "message": "Vous n'avez pas la permission d'accéder à cette page.",
            "description": "Vous n'avez pas la permission d'accéder à cette page",
            "suggestions": {
                "title": "Suggestions",
                "whatToDo": "Que faire ?",
                "suggestion1": "Vérifiez que vous êtes connecté avec le bon compte",
                "suggestion2": "Contactez un administrateur si vous pensez que c'est une erreur",
                "suggestion3": "Assurez-vous d'avoir les permissions nécessaires pour accéder à cette ressource"
            },
            "actions": {
                "backHome": "Retour à l'accueil",
                "previousPage": "Page précédente",
                "retry": "Réessayer"
            }
        },
        "500": {
            "code": "500",
            "title": "Erreur serveur",
            "message": "Une erreur est survenue sur le serveur. Notre équipe a été notifiée.",
            "description": "Une erreur est survenue sur le serveur",
            "suggestions": {
                "title": "Suggestions",
                "whatToDo": "Que faire ?",
                "suggestion1": "Attendez quelques instants et réessayez",
                "suggestion2": "Vérifiez votre connexion internet",
                "suggestion3": "Si le problème persiste, contactez le support technique"
            },
            "actions": {
                "backHome": "Retour à l'accueil",
                "previousPage": "Page précédente",
                "retry": "Réessayer"
            }
        },
        "400": {
            "code": "400",
            "title": "Requête invalide",
            "description": "Requête invalide"
        },
        "401": {
            "code": "401",
            "title": "Non authentifié",
            "description": "Non authentifié"
        },
        "429": {
            "code": "429",
            "title": "Trop de requêtes",
            "description": "Trop de requêtes"
        }
    },
    "validation": {
        "error": "Erreur de validation",
        "required": {
            "title": "Le titre est requis",
            "content": "Le contenu est requis",
            "category": "La catégorie est requise",
            "tagName": "Le nom du tag est requis",
            "slug": "Slug requis",
            "discussionId": "ID de discussion requis"
        },
        "invalid": {
            "format": "Format invalide",
            "url": "URL invalide. Doit commencer par http:// ou https://",
            "email": "Email invalide",
            "order": "Ordre invalide",
            "token": "Token invalide",
            "tokenExpired": "Token invalide ou expiré",
            "csrf": "Token CSRF invalide",
            "request": "Requête invalide"
        },
        "length": {
            "min": "Minimum {min} caractères requis",
            "max": "Maximum {max} caractères autorisés"
        },
        "username": {
            "invalidFormat": "Le nom d'utilisateur ne peut contenir que des lettres, chiffres, tirets (-) et underscores (_)",
            "cannotBeChanged": "Le nom d'utilisateur ne peut pas être modifié",
            "alreadyUsed": "Ce nom d'utilisateur est déjà utilisé",
            "help": "3-30 caractères : lettres, chiffres, tirets et underscores"
        },
        "email": {
            "alreadyUsed": "Cet email est déjà utilisé",
            "notVerified": "Votre email n'a pas été vérifié. Veuillez vérifier votre boîte mail et cliquer sur le lien de vérification.",
            "help": "Adresse email valide requise",
            "mxInvalid": "Le domaine de cette adresse email n'accepte pas de messages. Vérifiez l'adresse saisie."
        },
        "password": {
            "weak": "Le mot de passe doit contenir au moins 10 caractères, une minuscule, une majuscule, un chiffre et un caractère spécial."
        }
    },
    "auth": {
        "loginRequired": "Vous devez être connecté pour accéder à cette page",
        "invalidCredentials": "Email ou mot de passe incorrect",
        "tooManyLoginAttempts": "Trop de tentatives de connexion. Veuillez réessayer plus tard.",
        "tooManyRegisterAttempts": "Trop de tentatives d'inscription. Veuillez réessayer plus tard.",
        "registrationDisabled": "L'inscription est désactivée",
        "2fa": {
            "codeRequired": "Le code 2FA est requis",
            "invalidCode": "Code 2FA invalide",
            "notEnabled": "L'authentification à deux facteurs n'est pas activée"
        },
        "account": {
            "banned": "Votre compte a été banni",
            "suspended": "Votre compte a été suspendu",
            "suspension": {
                "endsOn": "La suspension prendra fin le {date}",
                "permanent": "Aucune date de fin n'est définie (suspension permanente)",
                "reason": "Raison : {reason}",
                "contactModerator": "Pour plus de détails, veuillez contacter un modérateur"
            }
        }
    },
    "upload": {
        "failed": "Échec de l'upload",
        "error": "Erreur lors de l'upload",
        "fileTooLarge": "Fichier trop volumineux",
        "invalidFileType": "Type de fichier non autorisé",
        "php": {
            "iniSize": "Le fichier dépasse la taille maximale autorisée par le serveur (upload_max_filesize)",
            "formSize": "Le fichier dépasse la taille maximale autorisée par le formulaire",
            "partial": "Le fichier n'a été que partiellement uploadé",
            "noFile": "Aucun fichier n'a été uploadé",
            "noTmpDir": "Dossier temporaire manquant sur le serveur",
            "cantWrite": "Échec de l'écriture du fichier sur le disque",
            "extension": "Une extension PHP a arrêté l'upload du fichier",
            "unknown": "Erreur d'upload inconnue (code : {code})"
        },
        "validation": {
            "noAllowedTypes": "Aucun type de fichier autorisé n'est configuré",
            "extensionNotAllowed": "Extension non autorisée : {ext}. Extensions autorisées : {allowed}",
            "cannotDetectType": "Impossible de déterminer le type de fichier. Le fichier ne peut pas être accepté pour des raisons de sécurité.",
            "typeMismatch": "Le type de fichier ne correspond pas à son extension. Fichier rejeté pour des raisons de sécurité.",
            "mimeNotAllowed": "Type de fichier non autorisé : {mime}. Types autorisés : {allowed}",
            "tooLarge": "Fichier trop volumineux : {size} MB. Taille maximale autorisée : {max} MB"
        },
        "destination": {
            "invalidPath": "Chemin de destination invalide",
            "cannotCreateDir": "Impossible de créer le répertoire de destination",
            "missingDir": "Le répertoire de destination n'existe pas",
            "notWritable": "Le répertoire de destination n'est pas accessible en écriture",
            "moveFailed": "Échec du déplacement du fichier uploadé vers sa destination"
        },
        "archive": {
            "unsafe": "Archive non sécurisée",
            "toolUnavailable": "{tool} n'est pas disponible sur le serveur (archives {type} non supportées)",
            "openFailed": "Impossible d'ouvrir l'archive {type}",
            "execFailed": "Impossible d'exécuter {tool}",
            "execError": "Erreur lors de l'exécution de {tool} : {details}",
            "listFailed": "Impossible de lister le contenu de l'archive {type}",
            "tooManyFiles": "Trop de fichiers dans l'archive (max : {max})",
            "suspiciousPath": "Chemin suspect détecté dans l'archive : {file}",
            "forbiddenFile": "Fichier interdit dans l'archive : {file} (extension : .{ext})",
            "unsupportedType": "Type d'archive non supporté : {type}",
            "scanError": "Erreur lors de l'analyse de l'archive : {details}"
        },
        "clamav": {
            "unavailable": "Analyse antivirus indisponible sur le serveur",
            "scanError": "Erreur lors de l'analyse antivirus",
            "infected": "Fichier infecté détecté par l'antivirus : {details}"
        }
    },
    "rateLimit": {
        "title": "Trop de requêtes. Veuillez réessayer plus tard.",
        "retryAfter": "Réessayez dans {seconds} seconde(s)",
        "discussion": {
            "duplicate": "Vous avez déjà créé une discussion similaire récemment. Veuillez attendre avant d'en créer une nouvelle.",
            "cooldown": "Veuillez patienter {seconds} seconde(s) avant de créer une nouvelle discussion."
        },
        "post": {
            "duplicate": "Vous avez déjà posté ce message récemment. Veuillez attendre avant de le reposter.",
            "cooldown": "Veuillez patienter {seconds} seconde(s) avant de poster à nouveau."
        }
    },
    "notFound": {
        "user": "Utilisateur non trouvé",
        "discussion": "Discussion non trouvée",
        "post": "Message non trouvé",
        "tag": "Tag non trouvé",
        "group": "Groupe non trouvé",
        "category": "Catégorie non trouvée",
        "reaction": "Réaction non trouvée",
        "attachment": "Pièce jointe non trouvée",
        "file": "Fichier non trouvé",
        "short": "Ressource non trouvée",
        "notification": "Notification non trouvée",
        "draft": "Brouillon non trouvé"
    },
    "permission": {
        "denied": "Permission refusée",
        "categoryAccessDenied": "Vous n'avez pas la permission d'accéder à cette catégorie privée",
        "downloadNotAllowed": "Vous n'avez pas la permission de télécharger ce fichier",
        "profileLoginRequired": "Vous devez être connecté pour voir les profils des utilisateurs.",
        "discussionEditTimeLimitExceeded": "Vous ne pouvez plus modifier cette discussion. Le délai d'édition autorisé est dépassé.",
        "discussionDeleteTimeLimitExceeded": "Vous ne pouvez plus supprimer cette discussion. Le délai de suppression autorisé est dépassé.",
        "discussionHasReplies": "Vous ne pouvez pas supprimer une discussion qui contient des réponses.",
        "postEditTimeLimitExceeded": "Vous ne pouvez plus modifier cette réponse. Le délai d'édition autorisé est dépassé.",
        "postDeleteTimeLimitExceeded": "Vous ne pouvez plus supprimer cette réponse. Le délai de suppression autorisé est dépassé.",
        "discussionEditRequiresNoReplies": "Vous ne pouvez plus modifier cette discussion car des réponses ont déjà été publiées.",
        "postEditRequiresNoReplies": "Vous ne pouvez plus modifier cette réponse car une réponse plus récente a été publiée dans cette discussion."
    },
    "action": {
        "cannotBanYourself": "Vous ne pouvez pas vous bannir vous-même",
        "cannotBanAdmin": "Un administrateur ne peut pas bannir un autre administrateur",
        "cannotBanModerator": "Un administrateur ou modérateur ne peut pas bannir un modérateur",
        "cannotDeactivateYourself": "Vous ne pouvez pas vous désactiver vous-même",
        "cannotDeactivateAdmin": "Un administrateur ne peut pas désactiver un autre administrateur",
        "cannotDeleteYourself": "Vous ne pouvez pas vous supprimer vous-même",
        "cannotDeleteAdmin": "Un administrateur ne peut pas supprimer un autre administrateur",
        "cannotDeleteModerator": "Un administrateur ou modérateur ne peut pas supprimer un modérateur",
        "cannotReactToOwnPost": "Vous ne pouvez pas réagir à votre propre message",
        "cannotCreateSolvedTag": "Impossible de créer le tag résolu",
        "errorDeletingDiscussion": "Erreur lors de la suppression de la discussion",
        "errorLoadingHistory": "Erreur lors du chargement de l'historique",
        "checkError": "Erreur lors de la vérification"
    },
    "network": {
        "error": "Erreur réseau"
    },
    "maintenance": {
        "title": "Mode maintenance",
        "message": "Le forum est actuellement en maintenance. Nous serons de retour bientôt.",
        "info": {
            "title": "Information",
            "text": "Nous effectuons actuellement des travaux de maintenance pour améliorer votre expérience. Le forum sera de nouveau accessible dans les plus brefs délais."
        }
    },
    "general": {
        "errorOccurred": "Une erreur est survenue",
        "forbiddenShort": "Permission refusée",
        "serverErrorShort": "Erreur serveur"
    },
    "report": {
        "alreadyReported": "Vous avez déjà signalé ce contenu. Un signalement est déjà en attente de traitement."
    },
    "modal_not_found": "Modal de signalement introuvable",
    "notification": {
        "idRequired": "ID de notification requis"
    },
    "draft": {
        "idRequired": "ID de brouillon requis"
    },
    "integrity": {
        "title": "Erreur d'intégrité",
        "message": "Le forum ne peut pas démarrer car le mécanisme d'intégrité interne n'a pas pu être validé.",
        "hookMissing": "Le hook seo.meta.after est absent ou a été retiré du layout frontend actif.",
        "checkTemplate": "Vérifiez le fichier views/layouts/frontend/header.php du thème utilisé.",
        "contact": "Contactez l'administrateur du forum ou restaurez le thème d'origine."
    },
    "category": {
        "readOnly": "Cette catégorie est en lecture seule pour vous",
        "createRestricted": "Vous n'êtes pas autorisé à créer des discussions dans cette catégorie"
    }
}
