{
  "_meta": {
    "lang": "fr",
    "description": "Traductions françaises — FailDaily",
    "generated": "2026-03-07",
    "status": "complet — source de vérité, à maintenir en priorité"
  },
  "nav": {
    "home": "Accueil",
    "add_fail": "Ajouter",
    "badges": "Badges",
    "messages": "Messages",
    "profile": "Profil"
  },
  "common": {
    "loading": "Chargement...",
    "loading_ellipsis": "Chargement…",
    "refreshing": "Actualisation...",
    "pull_to_refresh": "Tirer pour rafraîchir",
    "error": "Une erreur est survenue",
    "retry": "Réessayer",
    "cancel": "Annuler",
    "confirm": "Confirmer",
    "save": "Sauvegarder",
    "delete": "Supprimer",
    "close": "Fermer",
    "back": "Retour",
    "yes": "Oui",
    "no": "Non",
    "send": "Envoyer",
    "share": "Partager",
    "report": "Signaler",
    "reply": "Répondre",
    "copy": "Copier",
    "member": "Membre",
    "anonymous": "Anonyme",
    "others": "autres",
    "current_device": "Appareil actuel",
    "days_ago_singular": "jour",
    "days_ago_plural": "jours",
    "version": "Version",
    "updated_on": "Mis à jour le",
    "edit": "Modifier",
    "ok": "OK"
  },
  "auth": {
    "login": {
      "page_title": "Connexion à FailDaily",
      "welcome": "Bienvenue !",
      "subtitle": "Reconnectez-vous pour partager vos fails quotidiens",
      "email_label": "Email",
      "email_placeholder": "votre@email.com",
      "password_label": "Mot de passe",
      "password_placeholder": "••••••••",
      "submit": "Se connecter",
      "no_account": "Pas encore de compte ?",
      "create_account": "Créer un compte",
      "forgot_password": "Mot de passe oublié ?",
      "help_hint": "Astuce : Si vous avez oublié votre mot de passe, utilisez la réinitialisation. Assurez‑vous aussi que votre email est correct et sans espace.",
      "reset_link": "la réinitialisation",
      "success": "Connexion réussie !",
      "error_no_user": "Aucun utilisateur retourné après l'authentification",
      "error_generic": "Erreur de connexion. Vérifiez vos identifiants."
    },
    "register": {
      "page_title": "Inscription FailDaily",
      "welcome": "Rejoignez-nous !",
      "subtitle": "Créez votre compte pour commencer votre aventure FailDaily",
      "display_name_label": "Nom d'affichage",
      "display_name_placeholder": "Comment vous appeler ?",
      "email_label": "Email",
      "email_placeholder": "votre@email.com",
      "password_label": "Mot de passe",
      "password_placeholder": "••••••••",
      "confirm_password_label": "Confirmer le mot de passe",
      "confirm_password_placeholder": "••••••••",
      "use_suggestion": "Utiliser \"{{name}}\"",
      "submit": "Créer mon compte",
      "process_info": "📋 Après avoir cliqué, vous devrez accepter nos conditions générales et politique de confidentialité.",
      "already_account": "Déjà un compte ?",
      "login_link": "Se connecter",
      "success": "Inscription réussie ! Bienvenue dans FailDaily 🎉",
      "choose_available_name": "Veuillez choisir un pseudo disponible avant de continuer",
      "name_taken_simple": "❌ Ce pseudo est déjà pris",
      "consent_required": "Inscription annulée. L'acceptation des conditions est obligatoire.",
      "error_creation": "Erreur lors de la création du compte",
      "error_generic": "Erreur lors de l'inscription. Réessayez.",
      "error_age": "Âge minimum requis : 13 ans",
      "error_email_exists": "Un compte avec cet email existe déjà.",
      "error_display_name": "Nom d'utilisateur invalide ou déjà pris.",
      "error_password": "Le mot de passe ne respecte pas les critères requis.",
      "error_email_format": "Format d'email invalide.",
      "parental_pending": "Inscription en attente. Le compte sera activé après autorisation parentale.",
      "parental_pending_email": "Inscription en attente. Un email de validation a été envoyé à {{email}}. Le compte sera activé après autorisation parentale.",
      "password_criteria": {
        "min_length": "8 caractères minimum",
        "has_lower": "Lettre minuscule",
        "has_upper": "Lettre majuscule",
        "has_digit": "Chiffre",
        "has_special": "Caractère spécial (!@#$%^&*…)"
      },
      "password_mismatch": "Les mots de passe ne correspondent pas"
    },
    "forgot_password": {
      "page_title": "Mot de passe oublié",
      "email_label": "Adresse email",
      "submit": "Envoyer le lien de réinitialisation"
    },
    "reset_password": {
      "page_title": "Réinitialiser le mot de passe",
      "invalid_link": "Lien invalide ou absent.",
      "new_password_label": "Nouveau mot de passe",
      "min_length_hint": "Minimum 6 caractères",
      "confirm_password_label": "Confirmer le mot de passe",
      "password_mismatch": "Les mots de passe ne correspondent pas.",
      "submit": "Mettre à jour le mot de passe"
    },
    "verify_email": {
      "page_title": "Confirmation email",
      "checking": "Vérification en cours…",
      "checking_subtitle": "Merci de patienter quelques instants.",
      "success_title": "Email confirmé ! 🎉",
      "error_title": "Oups… 😕",
      "login_button": "Se connecter",
      "back_to_login": "Retour à la connexion"
    }
  },
  "validation": {
    "username_too_short": "Le pseudo doit contenir au moins 3 caractères",
    "username_too_long": "Le pseudo ne peut pas dépasser 30 caractères",
    "username_checking": "Vérification en cours…",
    "username_available": "✅ Ce pseudo est disponible",
    "username_taken": "❌ Ce pseudo est déjà pris. Suggestion : {{suggestion}}",
    "username_taken_no_suggest": "❌ Ce pseudo est déjà pris",
    "username_check_error": "Erreur lors de la vérification du pseudo",
    "display_name_required": "Le nom d'affichage est requis",
    "display_name_min": "Au moins 2 caractères requis",
    "display_name_max": "Maximum 50 caractères"
  },
  "home": {
    "page_title": "Accueil",
    "empty_title": "Aucun fail pour le moment",
    "empty_subtitle": "Sois le premier à partager ton fail du jour !",
    "share_first_fail": "Partager mon premier fail",
    "app_description": "La communauté qui célèbre l'imperfection et transforme chaque échec en apprentissage",
    "feature1_title": "Partage authentique",
    "feature1_desc": "Racontez vos échecs sans jugement dans une communauté bienveillante",
    "feature1_btn": "Essayer maintenant",
    "feature2_title": "Soutien communautaire",
    "feature2_desc": "Recevez des encouragements et partagez vos expériences",
    "feature2_btn": "Rejoindre",
    "feature3_title": "Badges de courage",
    "feature3_desc": "Gagnez des récompenses pour votre authenticité et votre courage",
    "feature3_btn": "Découvrir",
    "cta_title": "Prêt à commencer votre aventure ?",
    "register_btn": "Créer un compte gratuit",
    "login_btn": "J'ai déjà un compte",
    "welcome_subtitle": "Prêt(e) à partager ton fail du jour ?",
    "loading_fails": "Chargement des fails...",
    "feed_all": "Tous",
    "feed_following": "Abonnements",
    "no_fails_in_feed_title": "Pas encore de fails ! 🤔",
    "no_fails_in_feed_subtitle": "Soyez le premier à partager votre histoire",
    "post_first_fail": "Publier mon premier fail",
    "no_fails_yet": "Aucun fail partagé pour le moment",
    "no_fails_yet_subtitle": "Soyez le premier à partager votre expérience !",
    "load_more": "Charger plus",
    "end_of_feed": "Fin du fil 🎉",
    "pull_to_refresh": "Tirez pour actualiser",
    "refreshing": "Actualisation...",
    "welcome_user": "Salut {{name}} ! 👋",
    "feature1_auth_msg": "Connectez-vous pour partager vos fails",
    "feature2_auth_msg": "Rejoignez la communauté pour recevoir du soutien",
    "feature3_auth_msg": "Créez un compte pour débloquer des badges",
    "testimonials_title": "Ce que disent nos membres",
    "testimonial1_text": "FailDaily m'a aidé à voir mes échecs comme des opportunités d'apprentissage",
    "testimonial1_author": "Alex, membre depuis 6 mois",
    "testimonial2_text": "Une communauté bienveillante où je peux être authentique",
    "testimonial2_author": "Marie, membre depuis 1 an"
  },
  "fail": {
    "post": {
      "page_title_create": "Partager un Fail",
      "page_title_edit": "Modifier votre Fail",
      "encouragement_create_title": "Courage ! 💪",
      "encouragement_create_subtitle": "Partagez votre fail quotidien et recevez du soutien de la communauté",
      "encouragement_edit_title": "Corriger, c'est grandir ! ✏️",
      "encouragement_edit_subtitle": "Modifiez votre fail — le droit à l'erreur inclut le droit à la correction",
      "title_label": "Titre de votre fail",
      "title_placeholder": "Un titre court pour votre fail...",
      "content_label": "Votre fail du jour",
      "content_placeholder": "Racontez-nous ce qui s'est passé... pas de jugement ici !",
      "category_label": "Catégorie",
      "category_placeholder": "Choisissez une catégorie",
      "capture_button": "Capturer l'instant authentique",
      "capture_hint": "📱 Photo directe ou vidéo courte (max 15s) - pas de retouche possible !",
      "stop_recording": "Arrêter",
      "authentic_label": "Authentique",
      "authentic_video_label": "Vidéo authentique",
      "anonymous_label": "Publier de façon anonyme",
      "block_comments_label": "Bloquer les commentaires sur ce fail",
      "submit_create": "Publier avec courage",
      "submit_edit": "Enregistrer les modifications",
      "footer_motto": "Rappelez-vous : chaque fail est un pas vers le succès ! 🌟",
      "load_error": "Impossible de charger le fail à modifier",
      "capture_sheet_title": "Capturer le moment authentique",
      "take_photo": "Prendre une photo",
      "take_video": "Prendre une vidéo (15s max)",
      "select_category_error": "Veuillez sélectionner une catégorie pour votre fail",
      "not_logged_in_error": "Vous devez être connecté pour publier un fail",
      "description_required": "Veuillez saisir une description pour votre fail",
      "content_not_allowed": "Contenu non autorisé",
      "media_error": "Fail publié, mais le média n'a pas pu être ajouté.",
      "photo_cancelled": "Photo annulée",
      "camera_error_prefix": "Erreur caméra : ",
      "video_not_supported": "Votre navigateur ne supporte pas l'enregistrement vidéo.",
      "camera_denied": "Accès à la caméra refusé. Vérifiez les permissions.",
      "recording_error_prefix": "Erreur enregistrement : ",
      "video_duration_error": "La vidéo dure {{seconds}}s — maximum autorisé : 15 secondes.",
      "edit_success": "Votre fail a été modifié avec succès ! ✏️",
      "create_success": "Votre fail a été publié avec courage ! 💪"
    },
    "card": {
      "validated": "Contenu validé par modération",
      "comments_disabled": "Les commentaires sont désactivés par l'auteur",
      "comments_button": "Commentaires ({{count}})",
      "expand_photo_aria": "Agrandir la photo de {{author}}",
      "more_options_aria": "Plus d'options",
      "share_label": "Fail partagé",
      "reactions": {
        "courage": "Courage",
        "laugh": "Rires",
        "empathy": "Empathie",
        "support": "Support"
      },
      "already_reported_toast": "Vous avez déjà signalé ce fail",
      "reported_toast": "Merci, ce fail a été signalé",
      "action_edit": "Modifier",
      "already_reported_btn": "Déjà signalé",
      "delete_confirm": "Voulez-vous vraiment supprimer ce fail ?",
      "deleted_toast": "✅ Fail supprimé définitivement",
      "delete_error": "Erreur lors de la suppression",
      "share_link_copied": "Lien copié pour partage",
      "share_copy_link": "Copier le lien",
      "share_unavailable": "Partage indisponible sur cet appareil",
      "share_error": "Partage impossible"
    },
    "my_fails": {
      "page_title": "Mes Fails",
      "count_singular": "{{count}} fail partagé",
      "count_plural": "{{count}} fails partagés",
      "empty_title": "Aucun fail pour l'instant !",
      "empty_subtitle": "Ton premier fail sera le début d'une belle aventure ✨",
      "share_first": "Partager mon premier fail"
    },
    "share_page": {
      "page_title": "Fail partagé",
      "back": "Retour",
      "error_expired": "Les liens de partage expirent après 30 jours. Demande à l'auteur de générer un nouveau lien.",
      "error_unavailable": "Ce contenu n'est plus disponible publiquement.",
      "back_home": "Retour à l'accueil",
      "create_account": "Créer un compte",
      "comments_count": "{{count}} commentaires — inscris-toi pour les voir",
      "cta_text": "Inscris-toi pour voir plus de fails et encourager la communauté.",
      "cta_button": "Inscris-toi pour voir plus de fails"
    }
  },
  "badges": {
    "page_title": "Ma Collection de Badges",
    "welcome_title": "Tes trophées ! 🏆",
    "unlocked_count": "Tu as débloqué {{unlocked}} badges sur {{total}}",
    "progress_label": "de ta collection",
    "rarity": {
      "rare": "Rares",
      "epic": "Épiques",
      "legendary": "Légendaires"
    },
    "share_collection": "Partager ma collection",
    "view_overview": "Vue d'ensemble",
    "view_unlocked": "Mes badges",
    "view_by_category": "Par catégorie",
    "section_unlocked": "Badges débloqués ✨",
    "empty_unlocked": "Aucun badge débloqué pour le moment",
    "empty_unlocked_hint": "Commencez à partager vos fails pour débloquer vos premiers badges !",
    "to_unlock": "À débloquer",
    "overview_title": "Explore tes catégories de badges 🌈",
    "overview_subtitle": "Consulte tes badges débloqués ou ouvre le mode \"Par catégorie\" pour explorer chaque collection.",
    "see_categories": "Voir les catégories",
    "next_challenges_title": "Prochains défis ! 🎯",
    "no_challenges_title": "Aucun défi en cours 🌟",
    "no_challenges_subtitle": "Commencez par partager votre premier fail pour débloquer des badges ! Votre premier objectif : obtenir le badge \"Premier Pas\" 👣",
    "notification_header": "🏆 Nouveau Badge Débloqué !",
    "notification_view_btn": "👀 Voir mes badges",
    "notification_multi_header": "🎉 {{count}} Nouveaux Badges !",
    "notification_multi_message": "Félicitations ! Vous avez débloqué {{count}} badges.",
    "notification_see_all": "Voir tous"
  },
  "messages": {
    "page_title": "Messages",
    "empty_title": "Aucun message",
    "empty_subtitle": "Tes conversations apparaîtront ici",
    "conversation_start": "Démarrer la conversation",
    "you_prefix": "Toi : ",
    "input_placeholder": "Message…",
    "send_aria": "Envoyer",
    "typing_indicator": "en train d'écrire…",
    "load_previous": "Voir les messages précédents",
    "deleted_message": "Message supprimé",
    "reply_to": "Message supprimé",
    "context_menu": {
      "reply": "Répondre",
      "copy": "Copier",
      "delete": "Supprimer",
      "report": "Signaler"
    },
    "delete_header": "Supprimer",
    "delete_confirm": "Supprimer ce message ?",
    "delete_error": "Impossible de supprimer ce message",
    "report_header": "Signaler ce message",
    "report_reason_spam": "Spam",
    "report_reason_harassment": "Harcèlement",
    "report_reason_inappropriate": "Contenu inapproprié",
    "report_reason_hate": "Discours haineux",
    "report_reason_other": "Autre",
    "report_success": "Message signalé",
    "report_error": "Erreur lors du signalement",
    "copy_success": "Message copié"
  },
  "profile": {
    "page_title": "Mon Profil",
    "member_since": "Membre depuis {{days}} jour",
    "member_since_plural": "Membre depuis {{days}} jours",
    "edit": "Modifier",
    "share": "Partager",
    "courage_level_title": "Niveau de courage ! 💪",
    "courage_points": "{{points}} points de courage",
    "next_level": "{{points}} pour le niveau suivant",
    "stats_title": "Tes exploits ! 📊",
    "stat_fails": "Fails partagés",
    "stat_reactions": "Réactions reçues",
    "stat_streak": "Série actuelle",
    "stat_average": "Moyenne/fail",
    "badges_title": "Mes badges ! 🏆",
    "badges_more": "autres",
    "badges_empty": "Commence ton aventure pour débloquer des badges !",
    "media_title": "Mes médias",
    "media_empty": "Aucun média uploadé pour le moment.",
    "media_source_profile": "Photo de profil",
    "media_source_fail": "Média de fail",
    "media_delete": "Supprimer",
    "media_delete_success": "Média supprimé avec succès",
    "media_delete_error": "Impossible de supprimer ce média",
    "recent_fails_title": "Mes derniers fails ! 📝",
    "recent_fails_count_more": "{{count}} autres fails",
    "recent_fails_empty": "C'est le moment parfait pour commencer ton aventure !",
    "view_all_fails": "Voir tous mes fails",
    "settings_title": "Paramètres",
    "legal_info": "Informations légales",
    "privacy_settings": "Paramètres de confidentialité",
    "connected_devices": "Appareils connectés",
    "contact_support": "Contacter le support",
    "quick_link_privacy": "Confidentialité",
    "quick_link_tos": "CGU",
    "quick_link_help": "Aide",
    "export_data": "Exporter mes données (RGPD)",
    "delete_account": "Supprimer mon compte",
    "logout": "Se déconnecter",
    "action_sheet_header": "Options du profil",
    "alert_logout_header": "Déconnexion",
    "alert_logout_message": "Êtes-vous sûr de vouloir vous déconnecter ?",
    "alert_delete_header": "Supprimer mon compte",
    "alert_delete_message": "Cette action est irréversible. Vos fails resteront mais seront anonymisés. Confirmez en saisissant votre mot de passe.",
    "menu_edit": "Modifier le profil",
    "menu_change_photo": "Changer la photo",
    "password_placeholder": "Votre mot de passe",
    "delete_wrong_password": "Mot de passe incorrect ou erreur serveur",
    "export_success": "✅ Vos données ont été exportées avec succès !",
    "export_error": "Erreur lors de l'export de vos données",
    "support_fields_required": "Veuillez remplir tous les champs requis",
    "support_send_success": "✅ Votre message a été envoyé ! Nous vous répondrons bientôt.",
    "support_send_error": "❌ Erreur lors de l'envoi. Veuillez réessayer."
  },
  "support_modal": {
    "title": "Contacter le support",
    "type_label": "Type de problème *",
    "type_placeholder": "Type de problème",
    "types": {
      "bug": "🐛 Bug/Problème technique",
      "feature": "💡 Suggestion de fonctionnalité",
      "content": "📝 Problème de contenu",
      "account": "👤 Problème de compte",
      "technical": "⚙️ Problème technique",
      "general": "❓ Question générale"
    },
    "subject_label": "Sujet *",
    "subject_placeholder": "Décrivez brièvement votre problème",
    "message_label": "Message détaillé *",
    "message_placeholder": "Décrivez votre problème en détail...",
    "email_label": "Email de contact *",
    "email_placeholder": "votre@email.com",
    "privacy_notice": "Vos informations sont confidentielles et utilisées uniquement pour vous répondre."
  },
  "edit_profile": {
    "page_title": "Modifier mon profil",
    "personal_section_title": "Informations personnelles",
    "display_name_label": "Nom d'affichage",
    "display_name_hint": "Comment les autres te verront",
    "display_name_placeholder": "Ton nom d'affichage",
    "contact_section_title": "Contact",
    "email_label": "Email",
    "email_hint": "Pour les notifications importantes",
    "email_change_info": "Pour changer ton email, contacte le support",
    "bio_section_title": "À propos de toi",
    "bio_label": "Raconte-toi en quelques mots",
    "bio_hint": "Partage ton histoire, tes motivations... (optionnel)",
    "bio_placeholder": "Écris quelques mots sur toi...",
    "save_button": "Sauvegarder les modifications",
    "cancel_button": "Annuler les modifications",
    "cancel_alert_header": "Annuler les modifications",
    "cancel_alert_message": "Es-tu sûr(e) de vouloir annuler tes modifications ? Toutes les données non sauvegardées seront perdues.",
    "keep_editing": "Continuer à modifier",
    "confirm_cancel": "Oui, annuler",
    "name_min_length": "Le pseudo doit contenir au moins 3 caractères",
    "name_current": "✅ Nom actuel",
    "name_available": "✅ Ce pseudo est disponible",
    "name_taken": "❌ Ce pseudo est déjà pris. Suggestion: {{suggestion}}",
    "name_check_error": "Erreur lors de la vérification",
    "unsaved_changes_header": "Modifications non sauvegardées",
    "unsaved_changes_message": "Tu as des modifications non sauvegardées. Veux-tu vraiment quitter ?",
    "stay": "Rester",
    "leave_without_saving": "Quitter sans sauvegarder"
  },
  "change_photo": {
    "page_title": "Changer la photo",
    "no_preview": "Aucun aperçu",
    "preview_hint": "L'image sera automatiquement redimensionnée côté serveur.",
    "sources_title": "Sources",
    "camera": "Caméra",
    "gallery": "Galerie",
    "default_avatars_title": "Avatars par défaut",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "camera_error": "Erreur caméra",
    "gallery_error": "Erreur sélection galerie",
    "select_hint": "Sélectionnez une image ou un avatar",
    "success": "Photo de profil mise à jour",
    "save_error": "Erreur lors de l'enregistrement",
    "my_avatars_title": "Mes avatars",
    "delete_avatar": "Supprimer cet avatar",
    "delete_error": "Erreur lors de la suppression",
    "my_avatars_loading": "Chargement..."
  },
  "avatar_selector": {
    "page_title": "Changer la photo de profil",
    "default_section": "Avatars par défaut",
    "custom_section": "Photo personnalisée",
    "choose_photo": "Prendre/Choisir une photo",
    "loading": "Chargement...",
    "confirm": "Confirmer la sélection",
    "cancel": "Annuler",
    "action_sheet_title": "Ajouter une photo personnelle",
    "take_photo": "Prendre une photo",
    "choose_gallery": "Choisir dans la galerie"
  },
  "user_profile": {
    "page_title": "Profil",
    "loading": "Chargement du profil...",
    "private_title": "Profil Privé",
    "private_subtitle": "Ce profil est privé. Vous ne pouvez pas voir les informations de cet utilisateur.",
    "back": "Retour",
    "send_message": "Message",
    "follow": "Suivre",
    "unfollow": "Ne plus suivre",
    "followers": "Followers",
    "following": "Suivi(e)s",
    "member_since": "Membre depuis {{days}} jour",
    "member_since_plural": "Membre depuis {{days}} jours",
    "courage_level_title": "Niveau de courage ! 💪",
    "courage_points": "{{points}} points de courage",
    "next_level": "{{points}} pour le niveau suivant",
    "stats_title": "Ses exploits ! 📊",
    "stat_public_fails": "Fails publics",
    "stat_courage_points": "Points de courage",
    "not_found_title": "Profil introuvable",
    "not_found_subtitle": "Ce profil n'existe pas ou n'est pas accessible.",
    "timeout_error": "Délai dépassé — réessaie.",
    "not_found": "Utilisateur introuvable",
    "load_error": "Erreur lors du chargement du profil",
    "conversation_error": "Impossible d'ouvrir la conversation",
    "unfollow_success": "Vous ne suivez plus {{name}}",
    "follow_success": "Vous suivez maintenant {{name}}",
    "action_error": "Erreur lors de l'action"
  },
  "sessions": {
    "page_title": "Appareils connectés",
    "loading": "Récupération des appareils…",
    "info_text": "Ces appareils sont actuellement connectés à votre compte. Vous pouvez déconnecter n'importe lequel d'entre eux à tout moment.",
    "none_found": "Aucune session active trouvée.",
    "current_badge": "Appareil actuel",
    "connected_on": "Connecté le {{date}}",
    "last_seen": "Dernière activité : {{date}}",
    "disconnect_current": "Se déconnecter",
    "disconnect": "Déconnecter",
    "disconnect_all": "Déconnecter tous les autres appareils",
    "load_error": "Impossible de charger les appareils",
    "logout_confirm_header": "Se déconnecter",
    "logout_confirm_message": "Voulez-vous vous déconnecter de cet appareil ?",
    "logout_btn": "Se déconnecter",
    "logout_error": "Erreur lors de la déconnexion",
    "revoke_header": "Déconnecter cet appareil",
    "revoke_message": "Voulez-vous déconnecter \"{{label}}\" ?",
    "revoke_btn": "Déconnecter",
    "revoke_success": "Appareil déconnecté",
    "revoke_error": "Erreur lors de la déconnexion",
    "revoke_all_header": "Déconnecter tous les autres appareils",
    "revoke_all_message": "Tous vos autres appareils seront déconnectés. Cette action ne peut pas être annulée.",
    "revoke_all_btn": "Tout déconnecter",
    "revoke_all_success": "Tous les autres appareils déconnectés"
  },
  "privacy": {
    "page_title": "Paramètres de confidentialité",
    "intro_title": "Ta vie privée compte",
    "intro_subtitle": "Contrôle qui peut voir tes informations et comment tes données sont utilisées. Tes choix restent toujours modifiables.",
    "dev_notice": "En développement : Les notifications et certaines fonctionnalités de confidentialité sont en cours d'implémentation.",
    "profile_visibility_title": "Visibilité du profil",
    "public_profile_label": "Profil public",
    "public_profile_hint": "Permet aux autres utilisateurs de voir ton profil et tes badges",
    "show_stats_label": "Afficher les statistiques",
    "show_stats_hint": "Montre tes statistiques (nombre de fails, points de courage, etc.)",
    "show_badges_label": "Afficher les badges",
    "show_badges_hint": "Permet aux autres de voir tes accomplissements",
    "interactions_title": "Contenu et interactions",
    "allow_messages_label": "Autoriser les messages privés",
    "allow_messages_hint": "Les membres peuvent t'envoyer des messages d'encouragement",
    "data_title": "Gestion des données",
    "download_data": "Télécharger mes données",
    "delete_account": "Supprimer mon compte",
    "learn_more_title": "En savoir plus",
    "privacy_policy_link": "Politique de confidentialité",
    "tos_link": "Conditions d'utilisation",
    "saving": "Sauvegarde en cours...",
    "delete_alert_header": "Supprimer le compte",
    "delete_alert_message": "Es-tu sûr(e) de vouloir supprimer ton compte ? Cette action est irréversible et toutes tes données seront perdues.",
    "final_confirm_header": "Confirmation finale",
    "final_confirm_message": "Tape \"{{username}}\" pour confirmer la suppression définitive de ton compte.",
    "delete_permanently": "Supprimer définitivement",
    "delete_failed_header": "Suppression échouée",
    "incorrect_confirmation": "Confirmation incorrecte"
  },
  "legal": {
    "page_title": "Informations légales",
    "intro_title": "Transparence et sécurité 🛡️",
    "intro_subtitle": "Chez FailDaily, nous croyons en la transparence. Retrouvez ici tous les documents légaux et informations importantes concernant votre utilisation de l'application.",
    "support_title": "Besoin d'aide ? 💬",
    "support_subtitle": "Une question sur ces documents ou sur l'utilisation de FailDaily ?",
    "legal_email": "Questions légales",
    "support_email": "Support général",
    "account_deletion": "Suppression de compte",
    "emergency_title": "En cas d'urgence",
    "emergency_text": "Si vous êtes en détresse, n'attendez pas. Contactez immédiatement le",
    "emergency_number": "3114",
    "emergency_note": "(gratuit, 24h/24)",
    "call_now": "Appeler maintenant"
  },
  "legal_document": {
    "default_title": "Document légal",
    "close_aria": "Fermer",
    "not_found_title": "Document introuvable",
    "not_found_subtitle": "Le document demandé n'existe pas ou n'est plus disponible.",
    "back_to_profile": "Retour au profil",
    "emergency_title": "En cas d'urgence",
    "emergency_text": "Si vous êtes en détresse, n'hésitez pas à contacter immédiatement le",
    "emergency_number": "3114",
    "emergency_note": "(gratuit, 24h/24)",
    "call_emergency": "Appeler le 3114",
    "parent_info_title": "Information pour les parents",
    "parent_info_subtitle": "Des questions sur la sécurité de votre enfant ? Contactez-nous :"
  },
  "consent_modal": {
    "page_title": "Acceptation des conditions",
    "welcome_title": "Bienvenue sur FailDaily ! 🎉",
    "welcome_subtitle": "Avant de commencer, nous devons vérifier quelques informations importantes pour respecter les réglementations et assurer votre sécurité.",
    "age_section_title": "Vérification d'âge",
    "birth_date_label": "Date de naissance",
    "birth_date_placeholder": "jj/mm/aaaa",
    "parental_section_title": "Autorisation parentale requise",
    "parental_subtitle": "Étant mineur(e), l'autorisation de vos parents est nécessaire. Un email de validation sera envoyé à l'adresse indiquée.",
    "parent_email_label": "Email d'un parent/tuteur",
    "parent_email_placeholder": "parent@exemple.com",
    "documents_section_title": "Documents obligatoires",
    "documents_subtitle": "Veuillez lire et accepter les documents suivants :",
    "tos_label": "Conditions Générales d'Utilisation",
    "tos_hint": "Règles d'usage et responsabilités",
    "privacy_label": "Politique de confidentialité",
    "privacy_hint": "Protection de vos données personnelles (RGPD)",
    "moderation_label": "Charte de modération",
    "moderation_hint": "Règles de bienveillance et sécurité",
    "age_restrictions_label": "Restrictions d'âge et protection des mineurs",
    "age_restrictions_hint": "Mesures de protection et sécurité",
    "marketing_label": "Communications marketing (optionnel)",
    "marketing_hint": "Recevoir des informations sur les nouvelles fonctionnalités et événements",
    "read_document": "Lire le document",
    "help_title": "Besoin d'aide ? 💙",
    "help_subtitle": "Si vous avez des questions sur ces documents ou si vous traversez une période difficile :",
    "help_resources": "Ressources d'aide",
    "emergency_call": "3114 (urgence)",
    "cannot_register_text": "L'inscription n'est pas possible avec ces informations. Consultez nos",
    "cannot_register_link": "restrictions d'âge",
    "cannot_register_suffix": "pour plus d'informations.",
    "submit_with_parental": "Envoyer demande d'autorisation parentale",
    "submit": "Accepter et continuer",
    "cancel": "Annuler"
  },
  "auth_required_modal": {
    "default_title": "Connexion requise",
    "default_message": "Connexion requise pour cette action",
    "default_action": "cette action",
    "access_required": "Vous devez être connecté pour accéder à cette fonctionnalité",
    "join_community": "Rejoignez la communauté FailDaily pour {{action}}",
    "login_button": "Se connecter",
    "register_button": "Créer un compte"
  },
  "comments": {
    "placeholder": "Ecrire un commentaire d'encouragement...",
    "publish": "Publier",
    "login_hint": "Connectez-vous pour commenter",
    "validated": "Commentaire validé",
    "report": "Signaler",
    "empty": "Aucun commentaire pour le moment.",
    "member_fallback": "Membre",
    "published_toast": "Commentaire publié",
    "reported_toast": "Commentaire signalé"
  },
  "photo": {
    "change_header": "Changer la photo de profil",
    "gallery_btn": "Galerie du téléphone",
    "defaults_btn": "Avatars par défaut",
    "avatar_header": "Choisir un avatar",
    "avatar_message": "Sélectionnez un avatar par défaut"
  },
  "notifications": {
    "daily_reminder": "N'oubliez pas de consulter vos fails d'aujourd'hui !",
    "weekly_report": "Cette semaine : {{failsCount}} fails, {{badgesEarned}} badges",
    "daily_title": "📅 Rappel quotidien",
    "weekly_title": "📊 Rapport hebdomadaire",
    "badge_title": "🏆 Nouveau badge débloqué !",
    "badge_message": "Félicitations ! Vous avez débloqué le badge \"{{badgeName}}\""
  },
  "legal_categories": {
    "mandatory": "Documents obligatoires",
    "security": "Sécurité et modération",
    "help": "Aide et soutien"
  },
  "registration_wizard": {
    "step1_title": "Informations de base",
    "step1_subtitle": "Email et nom d'affichage",
    "step2_title": "Sécurité du compte",
    "step2_subtitle": "Mot de passe et vérification",
    "step3_title": "Vérification d'âge",
    "step3_subtitle": "Date de naissance",
    "step4_title": "Conditions d'utilisation",
    "step4_subtitle": "Acceptation des CGU"
  },
  "badges_overview": {
    "rarity_common": "Commun",
    "rarity_rare": "Rare",
    "rarity_epic": "Épique",
    "rarity_legendary": "Légendaire",
    "category_social": "Social",
    "category_achievement": "Accomplissement",
    "category_milestone": "Étape",
    "category_special": "Spécial"
  },
  "auth_validation": {
    "name_min": "Le pseudo doit contenir au moins 3 caractères",
    "name_max": "Le pseudo ne peut pas dépasser 30 caractères",
    "name_available": "✅ Ce pseudo est disponible",
    "name_taken": "❌ Ce pseudo est déjà pris",
    "name_taken_suggestion": "❌ Ce pseudo est déjà pris. Suggestion : {{suggestion}}",
    "name_error": "Erreur lors de la vérification du pseudo"
  },
  "registration_validation": {
    "email_required": "L'email est obligatoire",
    "email_invalid": "Format d'email invalide",
    "email_taken": "Cet email est déjà utilisé",
    "name_required": "Le nom d'affichage est obligatoire",
    "name_min": "Le nom d'affichage doit contenir au moins 2 caractères",
    "name_max": "Le nom d'affichage ne peut pas dépasser 30 caractères",
    "name_taken": "Ce nom d'affichage est déjà utilisé",
    "password_required": "Le mot de passe est obligatoire",
    "password_min": "Le mot de passe doit contenir au moins {{min}} caractères",
    "password_lowercase": "Le mot de passe doit contenir au moins une minuscule",
    "password_uppercase": "Le mot de passe doit contenir au moins une majuscule",
    "password_digit": "Le mot de passe doit contenir au moins un chiffre",
    "password_confirm_required": "La confirmation du mot de passe est obligatoire",
    "password_mismatch": "Les mots de passe ne correspondent pas",
    "birthdate_required": "La date de naissance est obligatoire",
    "age_min": "Vous devez avoir au moins {{min}} ans pour vous inscrire",
    "terms_required": "Vous devez accepter les conditions d'utilisation",
    "invalid_data": "Données d'inscription invalides",
    "pending_parental": "Inscription en attente de validation parentale",
    "success": "Inscription réussie",
    "error": "Erreur lors de l'inscription"
  },
  "post_fail_error": {
    "generic": "Erreur lors de la publication de votre fail",
    "database": "Erreur de base de données. Veuillez réessayer.",
    "network": "Problème de connexion. Veuillez réessayer dans quelques secondes.",
    "form_invalid": "Veuillez vérifier que tous les champs sont correctement remplis"
  },
  "debug": {
    "copy": "Copier",
    "download": "Télécharger"
  },
  "account_deletion": {
    "page_title": "Suppression de compte",
    "hero_title": "Supprimer votre compte FailDaily",
    "hero_subtitle": "Cette page publique peut être utilisée pour demander ou lancer la suppression de votre compte, y compris si vous n'avez plus accès à l'application mobile.",
    "in_app_title": "Depuis l'application",
    "in_app_text": "Si vous êtes connecté, le moyen le plus rapide est d'ouvrir les paramètres de confidentialité puis d'utiliser l'action de suppression définitive du compte.",
    "in_app_cta": "Ouvrir les paramètres",
    "outside_app_title": "Sans accès à l'application",
    "outside_app_text": "Envoyez votre demande depuis l'adresse email liée au compte afin que nous puissions vérifier la propriété du compte et traiter la suppression.",
    "email_cta": "Envoyer une demande par email",
    "support_email": "Email de contact : {{email}}",
    "what_happens_title": "Ce qui se passe ensuite",
    "what_happens_item_1": "Le compte et ses données principales sont supprimés définitivement après validation.",
    "what_happens_item_2": "Certaines données peuvent être conservées temporairement lorsque la loi, la sécurité ou la modération l'exigent.",
    "what_happens_item_3": "Les détails complets sont décrits dans la politique de confidentialité et les conditions d'utilisation.",
    "legal_title": "Documents liés",
    "privacy_policy_link": "Politique de confidentialité",
    "terms_link": "Conditions d'utilisation"
  }
}