{
  "_meta": {
    "language": "fr",
    "language_name": "Français",
    "version": "1.0",
    "description": "AliothPress Admin Panel — Français"
  },
  "sidebar": {
    "main": "Principal",
    "dashboard": "Tableau de bord",
    "content": "Contenu",
    "posts": "Articles",
    "all_posts": "Tous les articles",
    "add_new": "Ajouter",
    "pages": "Pages",
    "all_pages": "Toutes les pages",
    "media": "Médias",
    "library": "Bibliothèque",
    "all_media": "Tous les médias",
    "upload_new": "Importer",
    "files": "Fichiers",
    "appearance": "Apparence",
    "themes": "Thèmes",
    "menus": "Menus",
    "favicon": "Favicon",
    "tools": "Outils",
    "ai_assistant": "Assistant IA",
    "seo_tools": "Outils SEO & AEO",
    "audit_log": "Journal d'activité",
    "backup": "Sauvegarde",
    "users": "Utilisateurs",
    "settings": "Réglages",
    "system": "Système",
    "forms": "Formulaires",
    "all_forms": "Tous les formulaires",
    "new_form": "Nouveau formulaire",
    "newsletter": "Newsletter",
    "all_newsletters": "Toutes les campagnes",
    "new_campaign": "Nouvelle campagne",
    "admin_panel": "Panneau d'administration",
    "my_profile": "Mon profil",
    "logout": "Déconnexion",
    "plugins": "Plugins"
  },
  "dashboard": {
    "title": "Tableau de bord",
    "greeting": "Bonjour,",
    "welcome": "Voici ce qui se passe avec ton contenu.",
    "new_post": "Nouvel article",
    "new_page": "Nouvelle page",
    "upload_image": "Importer une image",
    "total_posts": "Total d'articles",
    "published": "Publiés",
    "drafts": "Brouillons",
    "total_pages": "Pages",
    "total_images": "Images",
    "total_users": "Utilisateurs",
    "total_forms": "Formulaires",
    "new_submissions": "Nouvelles soumissions",
    "recent_posts": "Articles récents",
    "recent_pages": "Pages récentes",
    "recent_activity": "Activité récente",
    "view_all": "Tout voir",
    "no_posts_yet": "Aucun article pour le moment.",
    "no_pages_yet": "Aucune page pour le moment.",
    "create_first_post": "Crée ton premier article !",
    "create_first_page": "Crée ta première page !",
    "no_activity": "Aucune activité enregistrée pour le moment.",
    "updated": "Mis à jour",
    "edit": "Modifier →",
    "update_available": "Une nouvelle version d'AliothPress est disponible !",
    "update_now": "Mettre à jour",
    "update_confirm": "Une sauvegarde complète sera créée avant la mise à jour. Continuer ?",
    "updating": "Mise à jour en cours… patiente",
    "restart_hint": "Mise à jour appliquée. Recharge ou redémarre ton serveur pour voir les changements.",
    "restarting": "Redémarrage du serveur… {seconds}s",
    "reload": "Recharger la page",
    "auto_restart": "Le serveur redémarre automatiquement. Recharge la page dans quelques secondes.",
    "manual_restart": "Redémarre ton serveur pour appliquer la mise à jour.",
    "connection_error": "Impossible de se connecter au serveur de mises à jour",
    "update_failed": "La mise à jour a échoué",
    "update_license_hint": "Les mises à jour automatiques nécessitent une licence active.",
    "activate_license": "Activer la licence",
    "recent_submissions": "Soumissions récentes",
    "view_submission": "Voir →"
  },
  "posts": {
    "title": "Tous les articles",
    "subtitle": "Gère tes articles de blog",
    "new_post": "Ajouter un article",
    "create_new": "Créer un nouvel article",
    "start_writing": "Commence à rédiger ton contenu",
    "edit_post": "Modifier l'article",
    "edit_subtitle": "Modifie ton article et optimise-le pour le SEO",
    "no_posts": "Aucun article trouvé",
    "create_first": "Crée ton premier article pour commencer",
    "create_first_btn": "Créer le premier article",
    "try_adjusting": "Essaie d'ajuster tes filtres",
    "clear_filters": "Réinitialiser les filtres",
    "search_placeholder": "Rechercher des articles...",
    "delete_confirm": "Veux-tu vraiment supprimer \"{title}\" ? Cette action est irréversible.",
    "duplicate_confirm": "Créer une copie de \"{title}\" ?\n\nUn nouveau brouillon sera créé avec tout le contenu et la structure.",
    "usage_warning": "⚠️ D'autres contenus renvoient vers cet article :",
    "usage_confirm_delete": "Tous les liens internes seront retirés (le texte est conservé, les liens supprimés) et les éléments de menu seront supprimés. Supprimer quand même ?"
  },
  "pages": {
    "title": "Toutes les pages",
    "subtitle": "Gère les pages de ton site",
    "new_page": "Ajouter une page",
    "create_new": "Créer une nouvelle page",
    "create_subtitle": "Crée une nouvelle page pour ton site",
    "edit_page": "Modifier la page",
    "edit_subtitle": "Modifie ta page et optimise-la pour le SEO",
    "no_pages": "Aucune page trouvée",
    "create_first": "Crée ta première page pour commencer",
    "create_first_btn": "Créer la première page",
    "try_adjusting": "Essaie d'ajuster tes filtres",
    "clear_filters": "Réinitialiser les filtres",
    "search_placeholder": "Rechercher des pages...",
    "in_menu": "Dans le menu",
    "delete_confirm": "Veux-tu vraiment supprimer \"{title}\" ? Cette action est irréversible.",
    "duplicate_confirm": "Créer une copie de \"{title}\" ?\n\nUn nouveau brouillon sera créé avec tout le contenu et la structure.",
    "usage_warning": "⚠️ D'autres contenus renvoient vers cette page :",
    "usage_confirm_delete": "Tous les liens internes seront retirés (le texte est conservé, les liens supprimés) et les éléments de menu seront supprimés. Supprimer quand même ?"
  },
  "editor": {
    "title_label": "Titre",
    "title_post_placeholder": "Saisis le titre de l'article...",
    "title_page_placeholder": "Saisis le titre de la page...",
    "title_help": "Titre principal de ton article",
    "title_help_page": "Titre principal de ta page",
    "slug_label": "Slug (URL)",
    "slug_help": "Laisse vide pour générer automatiquement à partir du titre",
    "slug_placeholder": "slug-de-url",
    "slug_taken": "Corrige le slug — il est déjà utilisé.",
    "slug_available": "Le slug est disponible",
    "excerpt_label": "Extrait",
    "excerpt_placeholder": "Bref résumé...",
    "excerpt_placeholder_page": "Bref résumé de cette page...",
    "excerpt_help": "Court résumé (utilisé dans les aperçus et la méta description)",
    "content_label": "Contenu",
    "content_placeholder": "Rédige ton contenu ici...",
    "content_required": "Le contenu est obligatoire !",
    "status_language": "Statut et langue",
    "status_label": "Statut",
    "status_draft": "Brouillon",
    "status_published": "Publié",
    "language_label": "Langue",
    "categorization": "Catégorisation",
    "category_label": "Catégorie",
    "category_placeholder_post": "ex. Technologie",
    "category_placeholder_page": "ex. Juridique",
    "tags_label": "Étiquettes",
    "tags_placeholder": "IA, CMS, Technologie",
    "tags_help": "Séparées par des virgules",
    "display_options": "Options d'affichage",
    "show_date": "Afficher la date de publication sur la page",
    "show_author": "Afficher le nom de l'auteur sur la page",
    "display_help": "Cela n'affecte que ce que voient les visiteurs. L'auteur et la date sont toujours inclus dans les méta-tags pour le SEO.",
    "quick_actions": "Actions rapides",
    "save_draft": "Enregistrer comme brouillon",
    "publish": "Publier",
    "save_changes": "Enregistrer les modifications",
    "cancel": "Annuler",
    "delete_post": "Supprimer l'article",
    "delete_page": "Supprimer la page",
    "created": "Créé :",
    "last_updated": "Dernière mise à jour :",
    "info": "Info",
    "template_label": "Modèle",
    "template_default": "Par défaut",
    "template_full_width": "Pleine largeur",
    "template_landing": "Page d'atterrissage",
    "template_landing_narrow": "Atterrissage étroit",
    "slug_check_error": "Impossible de vérifier le slug.",
    "published": "Publié :",
    "status_section": "Statut",
    "settings_section": "Réglages",
    "faq_section": "Section FAQ (AEO)",
    "faq_help": "Ajoutez des questions et réponses pour améliorer la citation par l'IA. Elles apparaissent sur la page et génèrent automatiquement un schéma FAQPage.",
    "faq_question": "Question",
    "faq_answer": "Réponse",
    "faq_add": "Ajouter une question",
    "faq_remove": "Supprimer",
    "faq_question_placeholder": "Qu'est-ce que... ?",
    "faq_answer_placeholder": "Une réponse concise...",
    "posts_page": "Afficher les derniers articles sur cette page",
    "posts_page_help": "Ajoute sous le contenu de la page une liste paginée des derniers articles publiés dans la langue de cette page. S’applique à toutes les traductions de cette page."
  },
  "seo": {
    "meta_tags": "Méta-tags SEO",
    "meta_title": "Méta-titre",
    "meta_title_placeholder": "Titre SEO (60 caractères max.)",
    "meta_title_help": "Titre pour les moteurs de recherche. Laisse vide pour utiliser le titre de l'article.",
    "meta_description": "Méta-description",
    "meta_description_placeholder": "Description SEO (160 caractères max.)",
    "meta_description_help": "Description pour les moteurs de recherche (160 caractères max.)",
    "keywords": "Mots-clés",
    "keywords_placeholder": "mot-clé1, mot-clé2",
    "keywords_help": "Mots-clés séparés par des virgules (principalement pour référence)",
    "canonical_url": "URL canonique",
    "canonical_url_placeholder": "https://...",
    "canonical_url_help": "À définir si ce contenu a été publié ailleurs à l'origine",
    "og_section": "Open Graph (Facebook, LinkedIn)",
    "og_title": "Titre OG",
    "og_title_placeholder": "Titre pour le partage social",
    "og_title_help": "Titre lors du partage sur Facebook/LinkedIn",
    "og_description": "Description OG",
    "og_description_placeholder": "Description pour le partage social",
    "og_image": "URL de l'image OG",
    "og_image_help": "URL de l'image pour l'aperçu sur les réseaux sociaux (1200x630px recommandé)",
    "twitter_section": "Carte Twitter",
    "twitter_title": "Titre Twitter",
    "twitter_description": "Description Twitter",
    "twitter_image": "URL de l'image Twitter",
    "twitter_image_help": "Image pour la carte Twitter (1200x600px recommandé)",
    "schema_section": "Schema.org (données structurées)",
    "schema_type": "Type de schéma",
    "schema_author": "Nom de l'auteur",
    "schema_author_help": "Laisse vide pour utiliser ton nom affiché",
    "schema_publisher": "Nom de l'éditeur",
    "schema_publisher_help": "Laisse vide pour utiliser le nom du site",
    "featured_image": "Image à la une",
    "featured_image_url": "URL de l'image",
    "featured_image_alt": "Texte alternatif",
    "featured_image_alt_help": "Obligatoire pour l'accessibilité ! Décris l'image.",
    "featured_image_caption": "Légende",
    "featured_image_help": "Image principale de cet article",
    "featured_image_social_hint": "Également utilisée comme aperçu social (OG / Twitter) sauf si une autre est définie ci-dessus.",
    "meta_title_help_page": "Titre pour les moteurs de recherche (60 caractères max.). Laisse vide pour utiliser le titre de la page.",
    "og_description_help": "Description lors du partage sur les réseaux sociaux",
    "schema_type_help": "Indique aux moteurs de recherche le type de contenu",
    "og_hint_uses_featured": "L'aperçu social utilisera l'image à la une. La taille 1200×630 est générée automatiquement.",
    "og_hint_no_image": "Laisse vide si cette page n'a pas besoin d'image d'aperçu social.",
    "twitter_hint_uses_og": "Utilisera automatiquement l'image OG.",
    "twitter_hint_uses_featured": "Utilisera automatiquement l'image à la une.",
    "twitter_hint_no_image": "Laisse vide si cette page n'a pas besoin d'image d'aperçu social."
  },
  "translate": {
    "create_translation_post": "Créer une version traduite d'un article existant",
    "create_translation_page": "Créer une version traduite d'une page existante",
    "creating_translation": "Création de la traduction",
    "translating_from": "Traduction depuis :",
    "translate_to": "Traduire vers",
    "select_language": "Sélectionne d'abord la langue cible",
    "no_translations_yet": "Aucune traduction pour le moment",
    "all_languages_done": "Tous les langues ont déjà une traduction !",
    "existing_translations": "Traductions existantes",
    "original": "Original :",
    "slug_help": "Laisse vide pour générer automatiquement à partir du titre. Original : /{slug}",
    "status_and_slug": "Statut : {status} · Slug : /{slug}",
    "copied_from_source": "Copié depuis la source. Séparés par des virgules.",
    "keywords_no_translation": "Mots-clés copiés depuis la source (ne nécessitent généralement pas de traduction)",
    "image_copied": "Image copiée depuis la source",
    "open_existing": "Ouvrir la traduction existante ?",
    "save_translation_draft": "Enregistrer la traduction comme brouillon",
    "publish_translation": "Publier la traduction",
    "copy_for_manual": "Copier pour traduction manuelle",
    "copy_manual_help": "Crée une copie exacte avec les textes originaux et la structure complète. Aucun token IA utilisé.",
    "instructions_label": "Instructions pour l'IA (facultatif)",
    "instructions_placeholder": "ex. Utiliser un ton formel, adapter les références culturelles...",
    "ai_confirm": "Créer une traduction IA vers {lang} ?\n\nUn nouveau brouillon sera créé avec le contenu, le titre, l'extrait et tous les champs SEO traduits.",
    "manual_confirm_post": "Créer une copie pour {lang} ?\n\nL'article sera dupliqué avec tout son contenu. Tu pourras ensuite le traduire manuellement.\n\nAucun token IA ne sera utilisé.",
    "manual_confirm_page": "Créer une copie pour {lang} ?\n\nLa page sera dupliquée avec tout son contenu et la structure du Page Builder. Tu pourras ensuite la traduire manuellement.\n\nAucun token IA ne sera utilisé.",
    "translations_title": "Traductions",
    "this_version": "cette version",
    "source_page": "Page source",
    "back_to_original": "Retour à l'original",
    "target_language": "Langue cible",
    "create_translation": "Créer une traduction",
    "ai_translate_create": "IA : Traduire et créer",
    "ai_translate_help": "Crée une nouvelle page avec le contenu traduit par l'IA (comme brouillon)",
    "ai_translate_help_post": "Crée un nouvel article avec le contenu traduit par l'IA (comme brouillon)",
    "ai_translate_all": "IA : Traduire tous les champs",
    "ai_translate_all_help": "Remplit le titre, le contenu, l'extrait et tous les champs SEO avec la traduction IA. Tu peux tout modifier avant d'enregistrer.",
    "translating_to": "Traduction vers {lang}...",
    "select_language_option": "— Sélectionner la langue —",
    "select_language_first": "Sélectionne d'abord une langue cible.",
    "creating_copy": "Création de la copie...",
    "translated_title_placeholder": "Titre traduit...",
    "translated_excerpt_placeholder": "Extrait traduit...",
    "translated_content_placeholder": "Contenu traduit...",
    "translated_slug_placeholder": "slug-url-traduit",
    "title_required": "Le titre est obligatoire !",
    "source_badge": "source",
    "group_label": "Groupe",
    "redirecting_to_edit": "Redirection vers la page de modification de la traduction..."
  },
  "ai": {
    "title": "Assistant IA",
    "subtitle": "Outils alimentés par l'IA pour la création de contenu, la traduction et l'optimisation SEO",
    "api_config": "Configuration de l'API",
    "status": "Statut :",
    "connected": "Connecté",
    "not_configured": "Non configuré",
    "api_key_label": "Clé API",
    "api_key_placeholder": "sk-ant-api03-...",
    "api_key_help": "Obtiens ta clé API sur console.anthropic.com. La clé est stockée de manière sécurisée dans ta base de données.",
    "api_key_required": "Clé API requise",
    "api_key_required_hint": "Configure ta clé API ci-dessus pour utiliser les outils IA.",
    "tools_title": "Outils IA",
    "content_generator": "Générateur de contenu",
    "content_generator_desc": "Génère du contenu d'article à partir d'une idée ou d'un sujet",
    "content_prompt_label": "Décris ce que tu veux rédiger",
    "content_prompt_placeholder": "Rédige un guide complet sur les pratiques de développement web durable, incluant l'optimisation des performances, l'hébergement vert et le code économe en énergie...",
    "output_language": "Langue de sortie",
    "generate_btn": "Générer le contenu",
    "translator": "Traducteur",
    "translator_desc": "Traduis du contenu entre langues en préservant le formatage HTML",
    "content_to_translate": "Contenu à traduire",
    "content_to_translate_placeholder": "Colle ton contenu HTML ici...",
    "from": "De",
    "to": "Vers",
    "translate_btn": "Traduire",
    "seo_optimizer": "Optimiseur SEO",
    "seo_optimizer_desc": "Génère des méta-tags, descriptions et données Open Graph optimisés",
    "post_page_title": "Titre de l'article/page",
    "content_or_excerpt": "Contenu (ou extrait)",
    "generate_seo_btn": "Générer les champs SEO",
    "ai_working": "L'IA travaille",
    "result": "Résultat :",
    "copy": "Copier",
    "copied": "Copié !",
    "ai_generate_content": "IA : Générer du contenu",
    "ai_fill_seo": "IA : Remplir les champs SEO",
    "seo_help": "Remplit les champs SEO, Open Graph et carte Twitter à partir de ton titre et contenu",
    "ai_translate_all": "IA : Traduire tous les champs",
    "seo_filled": "Champs SEO remplis ! Vérifie les sections SEO, Open Graph et Twitter.",
    "could_not_parse": "Impossible de traiter la réponse de l'IA.",
    "generating": "Génération...",
    "generating_seo": "Génération du SEO...",
    "translating": "Traduction...",
    "prompt_placeholder": "Décris ce dont tu as besoin — sujet, ton, points clés...",
    "send": "Envoyer",
    "apply_result": "Appliquer à la page",
    "apply_to_form": "Appliquer au formulaire",
    "new_conversation": "Nouvelle conversation",
    "new_chat": "Nouveau chat",
    "new_chat_hint": "Démarrer une nouvelle conversation",
    "messages_count": "messages",
    "chat_welcome": "Salut ! Je suis ton assistant CMS. Dis-moi ce dont tu as besoin — je peux rédiger du contenu, traduire, optimiser le SEO, concevoir des formulaires ou créer des mises en page. Le tout dans une seule conversation !",
    "chat_welcome_hint": "Utilise les actions rapides ci-dessus pour démarrer, ou décris simplement ce dont tu as besoin dans n'importe quelle langue.",
    "chip_generate": "Rédige un article sur ",
    "chip_translate": "Traduis ceci en ",
    "chip_seo": "Génère les champs SEO pour ma page sur ",
    "chip_builder": "Crée une mise en page pour ",
    "chip_form": "Conçois un formulaire pour ",
    "result_done": "C'est fait ! Voici les résultats :",
    "error_label": "Erreur :",
    "connection_error": "Erreur de connexion :",
    "page_builder": "Page Builder",
    "form_designer": "Concepteur de formulaires",
    "task_content": "Contenu",
    "task_translate": "Traduire",
    "task_seo": "SEO",
    "task_builder": "Builder",
    "task_form": "Formulaire",
    "result_label": "Résultat",
    "copy_btn": "Copier",
    "copied_btn": "Copié !",
    "label_title": "Titre",
    "label_excerpt": "Extrait",
    "label_meta_title": "Méta-titre",
    "label_meta_desc": "Méta-desc.",
    "label_description": "Description",
    "label_fields": "Champs",
    "label_fields_count": "champs",
    "label_content_preview": "Aperçu du contenu :",
    "result_builder_blocks": "Blocs du Builder",
    "result_form_design": "Design du formulaire",
    "result_generated_content": "Contenu généré",
    "result_seo_fields": "Champs SEO",
    "provider_label": "Fournisseur IA",
    "provider_help": "Sélectionne le fournisseur IA pour toutes les fonctionnalités IA. Tu peux enregistrer des clés pour tous les fournisseurs et changer à tout moment.",
    "key_saved": "enregistrée",
    "key_keep_hint": "laisser vide pour conserver l'actuelle",
    "key_link_anthropic": "→ Clés API",
    "key_link_deepseek": "→ Clés API",
    "key_link_gemini": "→ Obtenir une clé API",
    "provider_anthropic": "Anthropic",
    "provider_deepseek": "DeepSeek",
    "provider_gemini": "Gemini",
    "modal_mode_generate": "Générer le {content_type} complet",
    "modal_mode_seo": "Générer les champs SEO",
    "modal_mode_translate": "Traduire le contenu",
    "modal_mode_builder": "Générer une mise en page avec des blocs",
    "modal_mode_form": "Générer des champs de formulaire",
    "modal_context_language": "Langue :",
    "modal_welcome_generate": "Dis-moi de quoi devrait parler ce {content_type}. Inclus le sujet, le public cible, le ton (professionnel, décontracté, technique...) et les points clés à aborder. Je générerai le titre, le contenu, l'extrait et tous les champs SEO.",
    "modal_welcome_seo": "Je vais générer le méta-titre, la description, les mots-clés et les champs Open Graph à partir de ton contenu. Mentionne les mots-clés ou le public cible — ou dis simplement \"go\" pour que j'analyse ce que tu as.",
    "modal_welcome_translate": "Je vais traduire ton contenu en préservant tout le formatage. Mentionne tes préférences — ton formel/informel, variante régionale (ex. français de France vs québécois), ou termes à ne pas modifier. Ou dis simplement \"go\" pour une traduction standard.",
    "modal_welcome_builder": "Décris la page que tu veux construire : objectif, sections (hero, fonctionnalités, témoignages, FAQ, contact...), contenu et style. Plus tu donnes de détails, meilleur sera le résultat.",
    "modal_welcome_form": "Décris le formulaire dont tu as besoin : quel est son objectif, quelles données collecter et qui le remplira ? Par exemple : \"Formulaire de contact avec nom, e-mail, objet et message\" ou \"Inscription à un événement avec préférence de date et régime alimentaire\". Je générerai les champs, libellés, validations et paramètres.",
    "modal_welcome_default": "Comment puis-je t'aider ?",
    "modal_thinking": "Réflexion...",
    "modal_network_error": "Erreur réseau :",
    "modal_summary_generated": "Généré :",
    "modal_summary_title": "Titre :",
    "modal_summary_excerpt": "Extrait :",
    "modal_summary_content": "Contenu :",
    "modal_summary_seo_title": "Titre SEO :",
    "modal_summary_seo_desc": "Desc. SEO :",
    "modal_summary_blocks": "Blocs :",
    "modal_summary_blocks_count": "blocs générés",
    "modal_summary_fields": "Champs :",
    "modal_summary_fields_count": "champs de formulaire générés",
    "modal_summary_submit": "Envoyer :"
  },
  "media": {
    "library_title": "Bibliothèque de médias",
    "library_subtitle": "Gère tes images",
    "upload_title": "Importer une image",
    "upload_subtitle": "Ajoute une nouvelle image à ta bibliothèque de médias",
    "edit_title": "Modifier l'image",
    "edit_subtitle": "Mets à jour les métadonnées et les informations d'accessibilité de l'image",
    "upload_btn": "Importer",
    "upload_image_btn": "Importer une image",
    "upload_first": "Importer la première image",
    "select_image": "Sélectionner une image",
    "choose_btn": "Choisir",
    "no_images": "Aucune image pour le moment",
    "no_images_text": "Importe ta première image pour commencer",
    "no_images_picker": "Aucune image.",
    "upload_first_link": "Importer la première",
    "loading": "Chargement...",
    "error_loading": "Erreur lors du chargement des images.",
    "error_loading_retry": "Erreur lors du chargement des images. Réessaie.",
    "select_file": "Sélectionner une image",
    "file_help": "Formats pris en charge : JPG, PNG, GIF, WebP, SVG — Max. 16 Mo",
    "alt_text": "Texte alternatif",
    "alt_text_placeholder": "Décris l'image...",
    "alt_text_help": "Décris le contenu de l'image pour les lecteurs d'écran",
    "title_label": "Titre",
    "title_placeholder": "Titre de l'image (facultatif)",
    "caption": "Légende",
    "caption_placeholder": "Légende affichée sous l'image (facultatif)",
    "description": "Description",
    "description_placeholder": "Description détaillée (facultatif)",
    "image_url": "URL de l'image",
    "image_url_help": "Utilise cette URL dans les articles et pages pour l'image OG, l'image Twitter, etc.",
    "public_slug": "Slug public de l'URL",
    "public_slug_help": "L'adresse publique propre de cette image. Seules les lettres minuscules, les chiffres et les tirets sont autorisés — tout le reste est supprimé automatiquement. Modifier le slug crée une redirection 301 automatique depuis l'ancienne URL pour que les liens existants continuent de fonctionner.",
    "filename": "Nom du fichier :",
    "size": "Taille :",
    "dimensions": "Dimensions :",
    "type": "Type :",
    "dominant_color": "Couleur dominante :",
    "uploaded": "Importé :",
    "generated_variants": "Variantes générées",
    "og_social": "OG/Social (1200×630) :",
    "accessibility_notice": "Accessibilité obligatoire",
    "accessibility_notice_text": "Le texte alternatif est obligatoire pour toutes les images afin de respecter les normes d'accessibilité (WCAG 2.1)",
    "optimization_notice": "Optimisation automatique",
    "optimization_notice_text": "Les images sont automatiquement optimisées à l'importation : redimensionnées à max. 2560px, converties en WebP et AVIF, et plusieurs tailles responsives sont générées pour un chargement rapide. Les données EXIF sont supprimées pour la confidentialité. Le fichier original est conservé comme solution de secours.",
    "save_changes": "Enregistrer les modifications",
    "delete": "Supprimer",
    "delete_confirm": "Veux-tu vraiment supprimer cette image ? Cette action est irréversible.",
    "usage_warning": "⚠️ Cette image est actuellement utilisée dans :",
    "usage_confirm_delete": "Toutes les références seront automatiquement nettoyées. Supprimer quand même ?",
    "copy_url": "Copier",
    "copied": "Copié !",
    "search_placeholder": "Rechercher des images…",
    "no_results": "Aucune image ne correspond à ta recherche",
    "clear_search": "Effacer la recherche",
    "favicon_title": "Gestionnaire de favicons",
    "favicon_subtitle": "Importe une image — toutes les tailles sont générées automatiquement",
    "favicon_upload_section": "Importer l'image source",
    "favicon_tip_title": "Recommandation",
    "favicon_tip_text": "Utilise une image PNG carrée d'au moins 512×512px pour de meilleurs résultats. Le SVG fonctionne aussi parfaitement. L'image sera automatiquement redimensionnée et optimisée pour toutes les plateformes.",
    "favicon_drop_label": "Clique ou fais glisser l'image ici",
    "favicon_drop_hint": "PNG, JPG, SVG ou WebP · Min. 512×512px recommandé",
    "favicon_generate_btn": "Générer tous les favicons",
    "favicon_current_section": "Favicons actuels",
    "favicon_empty": "Aucun favicon généré pour le moment. Importe une image ci-dessus.",
    "favicon_delete_btn": "Supprimer tous les favicons",
    "favicon_delete_confirm": "Supprimer tous les favicons générés ? Tu peux les régénérer à tout moment.",
    "uploading": "Importation et optimisation…",
    "generating_favicons": "Génération des favicons…",
    "fav_label_ico": "favicon.ico",
    "fav_label_png96": "PNG 96×96",
    "fav_label_png192": "PNG 192×192",
    "fav_label_png512": "PNG 512×512",
    "fav_label_apple": "Apple Touch",
    "fav_label_svg": "SVG",
    "fav_label_manifest": "Manifest",
    "fav_desc_ico": "ICO 16+32+48",
    "fav_desc_96": "Onglet navigateur",
    "fav_desc_192": "Android / Chrome",
    "fav_desc_512": "Splash PWA",
    "fav_desc_apple": "180×180 iOS",
    "fav_desc_svg": "Vecteur évolutif",
    "fav_desc_manifest": "site.webmanifest"
  },
  "files": {
    "title": "Fichiers",
    "subtitle": "Gère tes documents et fichiers",
    "upload_title": "Importer un fichier",
    "upload_subtitle": "Ajoute un nouveau document à ta bibliothèque de fichiers",
    "edit_title": "Modifier le fichier",
    "edit_subtitle": "Mets à jour les métadonnées du fichier",
    "upload_btn": "Importer",
    "upload_file_btn": "Importer un fichier",
    "upload_first": "Importer le premier fichier",
    "no_files": "Aucun fichier pour le moment",
    "no_files_text": "Importe ton premier document pour commencer",
    "search_placeholder": "Rechercher des fichiers…",
    "file_url": "URL du fichier",
    "file_url_help": "Utilise cette URL pour créer un lien vers ce fichier dans tes articles et pages",
    "filename": "Nom du fichier :",
    "size": "Taille :",
    "type": "Type :",
    "uploaded": "Importé :",
    "title_field": "Titre",
    "title_placeholder": "Titre du fichier (facultatif)",
    "description_field": "Description",
    "description_placeholder": "Brève description de ce fichier (facultatif)",
    "delete": "Supprimer",
    "delete_confirm": "Veux-tu vraiment supprimer ce fichier ? Cette action est irréversible.",
    "usage_warning": "⚠️ Ce fichier est lié dans :",
    "usage_confirm_delete": "Tous les liens et boutons de téléchargement de ce fichier seront automatiquement supprimés. Supprimer quand même ?",
    "copy_url": "Copier",
    "copied": "Copié !",
    "save_changes": "Enregistrer les modifications",
    "allowed_types": "Formats pris en charge : PDF, DOC, DOCX, XLS, XLSX, ZIP, RAR, TXT, CSV — Max. 50 Mo",
    "drop_label": "Clique ou fais glisser le fichier ici",
    "drop_hint": "PDF, DOC, XLS, ZIP, TXT, CSV — Max. 50 Mo",
    "uploading": "Importation…",
    "no_results": "Aucun fichier ne correspond à ta recherche",
    "clear_search": "Effacer la recherche"
  },
  "settings": {
    "title": "Réglages",
    "general": "Général",
    "site_name": "Nom du site",
    "tagline": "Slogan",
    "site_description": "Description du site",
    "site_description_help": "Brève description de ton site",
    "meta_description_home": "Méta-description de la page d'accueil",
    "logo": "URL du logo",
    "logo_placeholder": "/static/uploads/logo.png",
    "logo_help": "Choisis depuis la bibliothèque de médias ou colle l'URL",
    "homepage": "Page d'accueil",
    "homepage_help": "Sélectionne n'importe quelle version linguistique d'une page — le système affichera la traduction correcte à chaque visiteur.",
    "languages": "Langues",
    "default_language": "Langue par défaut",
    "default_language_help": "Langue principale de ton site",
    "active_languages": "Langues actives",
    "active_languages_help": "Sélectionne les langues disponibles sur ton site",
    "language_switcher": "Afficher le menu de sélection de langue sur le site public",
    "analytics": "Analytique",
    "google_analytics": "ID Google Analytics",
    "google_analytics_placeholder": "G-XXXXXXXXXX",
    "tag_manager": "ID Google Tag Manager",
    "tag_manager_placeholder": "GTM-XXXXXXX",
    "custom_code": "Code analytique personnalisé",
    "custom_code_placeholder": "<!-- Ton code de suivi ici -->",
    "custom_code_help": "Colle ton code de suivi personnalisé (Plausible, Goatcounter, etc.). Il sera inséré dans <head>",
    "cookie_consent_enabled": "Activer la bannière de consentement aux cookies",
    "cookie_consent_help": "Affiche aux visiteurs une bannière demandant leur consentement avant l'exécution de tout script de suivi. Désactivé par défaut.",
    "email": "Configuration e-mail",
    "email_intro": "Pour envoyer des e-mails depuis ton site (invitations, notifications), tu as besoin d'un compte e-mail sur ton hébergement. Voici comment :",
    "email_step1": "Étape 1 : Crée un compte e-mail",
    "email_step1_text": "Connecte-toi au panneau de contrôle de ton hébergement (cPanel, Plesk ou similaire). Cherche \"Comptes e-mail\" et crée une nouvelle adresse e-mail.",
    "email_step2": "Étape 2 : Trouve tes paramètres SMTP",
    "email_step2_text": "Dans le même panneau de contrôle, cherche \"Paramètres de messagerie\" ou \"Configuration e-mail\" pour ton nouveau compte. Note l'hôte SMTP, le port, le nom d'utilisateur et le mot de passe.",
    "email_step3": "Étape 3 : Remplis le formulaire ci-dessous, enregistre et teste",
    "smtp_host": "Hôte SMTP",
    "smtp_host_placeholder": "mail.tondomaine.com",
    "smtp_port": "Port SMTP",
    "smtp_port_help": "Généralement 587 (TLS) ou 465 (SSL) — vérifie les paramètres e-mail de ton hébergement",
    "smtp_username": "Nom d'utilisateur SMTP",
    "smtp_username_help": "Généralement identique au nom d'utilisateur SMTP",
    "smtp_password": "Mot de passe SMTP",
    "smtp_password_help": "Le mot de passe que tu as défini lors de la création de l'e-mail",
    "smtp_confirm_password": "Confirmer le mot de passe",
    "smtp_password_stored": "Le mot de passe de ton compte e-mail d'hébergement. Stocké de manière chiffrée. Laisse les deux champs vides pour conserver le mot de passe actuel.",
    "smtp_passwords_mismatch": "Les mots de passe SMTP ne correspondent pas. Corrige avant d'enregistrer.",
    "connection_security": "Sécurité de la connexion",
    "connection_security_help": "Choisis l'option qui correspond au port ci-dessus. La plupart des hébergeurs utilisent TLS.",
    "from_email": "E-mail de l'expéditeur",
    "from_email_help": "L'adresse e-mail complète que tu as créée sur ton hébergement",
    "from_name": "Nom de l'expéditeur",
    "from_name_help": "Le nom que verront les destinataires (ex. le nom de ton site)",
    "test_email": "E-mail de test",
    "test_email_help": "Enregistre d'abord les paramètres, puis envoie un e-mail de test pour vérifier que tout fonctionne.",
    "send_test": "Envoyer un e-mail de test",
    "sending": "Envoi…",
    "social_links": "Réseaux sociaux",
    "social_links_help": "Colle l'URL de ton profil pour chaque plateforme. Seuls les liens renseignés s'afficheront comme icônes dans le pied de page.",
    "footer": "Pied de page",
    "copyright": "Texte de copyright",
    "copyright_help": "Saisis le nom de ton entreprise ou de ton site. L'année et \"Tous droits réservés\" sont ajoutés et traduits automatiquement.",
    "copyright_placeholder": "Mon Entreprise",
    "license": "Licence",
    "license_placeholder": "CC BY 4.0",
    "additional_footer": "Contenu supplémentaire du pied de page",
    "additional_footer_help": "HTML autorisé. À utiliser pour les partenaires, réseaux sociaux, etc.",
    "save_settings": "Enregistrer les réglages",
    "saved_success": "Réglages enregistrés avec succès !",
    "license_updates": "Licence et mises à jour",
    "license_version": "Version",
    "license_status": "Licence",
    "license_active": "Active",
    "license_invalid": "Clé invalide",
    "license_free": "Édition gratuite",
    "license_key": "Clé de licence",
    "license_saved": "enregistrée",
    "license_key_placeholder": "Colle ta licence",
    "license_key_help": "Saisis ton code d'achat ou ta clé de licence. Le système détecte automatiquement la marketplace. Laisse vide pour conserver la clé actuelle.",
    "license_deactivate": "Désactiver la licence",
    "license_deactivate_confirm": "Tu es sûr ? Cela supprimera ta licence de cette installation. Tu pourras la réactiver plus tard.",
    "license_updates_check": "Mises à jour logicielles",
    "license_click_check": "Clique sur le bouton pour vérifier les mises à jour disponibles.",
    "check_for_updates": "Vérifier les mises à jour",
    "checking_updates": "Vérification…",
    "up_to_date": "Tu utilises la dernière version !",
    "update_available_short": "est disponible !",
    "license_up_to_date": "Tu utilises déjà la dernière version.",
    "license_free_note": "Édition gratuite : les mises à jour nécessitent une licence active. Ton site fonctionne pleinement sans licence — un petit lien \"Powered by AliothPress\" est affiché dans le pied de page.",
    "license_free_note_short": "Active une licence pour activer les mises à jour automatiques",
    "license_updates_dashboard_hint": "Les notifications de mise à jour apparaissent sur ton tableau de bord lorsqu'une nouvelle version est disponible.",
    "deactivation_failed": "Échec de la désactivation de la licence. Réessaie.",
    "connection_error": "Erreur de connexion. Vérifie ta connexion internet et réessaie.",
    "remove_logo": "Supprimer le logo",
    "homepage_filter_placeholder": "🔍 Tape pour filtrer les pages…",
    "homepage_default_option": "— Par défaut (derniers articles) —",
    "email_guide_title": "Comment configurer l'e-mail sur ton hébergement",
    "guide_col_field": "Champ",
    "guide_col_value": "Valeur habituelle",
    "guide_port_value": "587 (TLS) ou 465 (SSL)",
    "email_step3_text": "Saisis les valeurs de ton hébergement, clique sur <strong>{save_label}</strong>, puis utilise le bouton de test pour vérifier que tout fonctionne.",
    "smtp_username_placeholder": "noreply@tondomaine.com",
    "smtp_from_placeholder": "noreply@tondomaine.com",
    "smtp_password_saved_placeholder": "●●●●●●●● (enregistré)",
    "smtp_password_enter_placeholder": "Saisis le mot de passe",
    "smtp_password_keep_placeholder": "Laisse vide pour conserver l'actuel",
    "smtp_password_repeat_placeholder": "Répète le mot de passe",
    "test_email_placeholder": "test@exemple.com",
    "security_tls_label": "TLS (port 587)",
    "security_ssl_label": "SSL (port 465)",
    "passwords_match": "✅ Les mots de passe correspondent",
    "passwords_no_match": "❌ Les mots de passe ne correspondent pas",
    "ssl_domain_placeholder": "exemple.com",
    "social_facebook_placeholder": "https://facebook.com/tapage",
    "social_twitter_placeholder": "https://x.com/tonprofil",
    "social_linkedin_placeholder": "https://linkedin.com/in/tonprofil",
    "social_github_placeholder": "https://github.com/tonprofil",
    "social_youtube_placeholder": "https://youtube.com/@tachaine",
    "social_instagram_placeholder": "https://instagram.com/tonprofil",
    "aeo_section": "Visibilité IA (AEO)",
    "aeo_help": "Ces liens aident les systèmes d'IA (ChatGPT, Perplexity, Google AI) à vérifier l'identité de votre organisation et à citer votre contenu plus précisément.",
    "org_legal_name": "Raison sociale",
    "org_legal_name_placeholder": "Votre Entreprise SARL",
    "org_founding_year": "Année de création",
    "org_founding_year_placeholder": "2026",
    "org_sameas_wikipedia": "URL Wikipédia",
    "org_sameas_wikidata": "URL Wikidata",
    "org_sameas_crunchbase": "URL Crunchbase",
    "default_language_active_note": "Ceci est la langue par défaut — elle ne peut pas être désactivée. Choisissez d’abord une autre langue par défaut."
  },
  "ssl": {
    "title": "Domaine et HTTPS",
    "domain_label": "Nom de domaine",
    "domain_help": "Saisis ton domaine (ex. exemple.com). L'enregistrement A doit pointer vers l'IP de ce serveur avant d'activer HTTPS.",
    "enable_title": "Certificat SSL gratuit (Let's Encrypt)",
    "click_to_enable": "Saisis ton domaine ci-dessus et clique pour obtenir un certificat SSL gratuit.",
    "click_to_renew": "Le certificat se renouvelle automatiquement. Clique pour configurer un nouveau domaine.",
    "btn_enable": "Activer HTTPS",
    "btn_renew": "Relancer la configuration SSL",
    "status_active": "HTTPS est actif",
    "status_active_short": "✅ HTTPS actif",
    "auto_renew": "Le certificat se renouvelle automatiquement",
    "confirm": "Cela configurera HTTPS pour {domain}. Assure-toi que l'enregistrement DNS A pointe déjà vers ce serveur. Continuer ?",
    "setting_up": "Configuration SSL…",
    "setting_up_detail": "Obtention du certificat auprès de Let's Encrypt — cela peut prendre jusqu'à 60 secondes…",
    "setup_failed": "La configuration SSL a échoué",
    "success": "HTTPS est maintenant actif pour {domain} ! HTTP redirigera automatiquement vers HTTPS.",
    "reload_hint": "Recharge cette page pour voir le statut mis à jour.",
    "instructions": "Étape 1 : Ajoute un enregistrement A pour ton domaine pointant vers l'IP de ce serveur. Étape 2 : Attends 5–15 minutes pour la propagation DNS. Étape 3 : Saisis le domaine ci-dessus et clique sur Activer HTTPS. Le certificat est gratuit et se renouvelle automatiquement.",
    "error_empty_domain": "Saisis un nom de domaine.",
    "error_invalid_domain": "Format de domaine invalide. Utilise quelque chose comme exemple.com ou blog.exemple.com (sans http://, sans barre finale).",
    "error_domain_too_long": "Le nom de domaine est trop long (max. 253 caractères).",
    "error_dns_failed": "La résolution DNS a échoué pour {domain}. Assure-toi que ton enregistrement A est configuré et a eu le temps de se propager (5–15 minutes).",
    "error_dns_mismatch": "{domain} pointe vers {resolved}, mais ce serveur est {server}. Mets à jour ton enregistrement DNS A pour qu'il pointe vers {server}.",
    "error_not_cloud": "La configuration SSL n'est disponible que sur les installations AliothPress hébergées dans le cloud. Pour les autres configurations, configure SSL manuellement via ton hébergeur.",
    "error_rate_limit": "Limite de Let's Encrypt atteinte (max. 5 certificats par domaine par semaine). Réessaie plus tard.",
    "error_firewall": "Let's Encrypt n'a pas pu accéder à {domain} sur le port 80. Assure-toi que ton pare-feu autorise le trafic HTTP (port 80).",
    "error_challenge": "La vérification du domaine a échoué pour {domain}. Assure-toi que le domaine pointe vers ce serveur et que le port 80 est ouvert.",
    "error_server_ip_unknown": "Impossible de déterminer l'adresse IP publique de ce serveur. Réessaie dans une minute ou contacte ton hébergeur.",
    "error_dns_apex_mismatch": "L'enregistrement A pour {domain} ne pointe pas vers ce serveur. Vérifie tes paramètres DNS et attends 5 à 15 minutes pour la propagation.",
    "error_dns_www_missing": "L'enregistrement DNS pour www.{domain} est manquant ou ne pointe pas vers ce serveur. Ajoute un enregistrement CNAME pour www pointant vers {domain} (ou un enregistrement A avec la même IP), puis attends 5 à 15 minutes avant de réessayer.",
    "error_timeout": "La configuration SSL a expiré. Réessaie."
  },
  "users": {
    "title": "Utilisateurs",
    "subtitle": "Gère les membres de l'équipe et leurs rôles",
    "invite_title": "Inviter un nouvel utilisateur",
    "invite_email": "Adresse e-mail",
    "invite_email_placeholder": "collegue@tondomaine.com",
    "invite_role": "Rôle",
    "send_invitation": "Envoyer l'invitation",
    "invite_help_editor": "Rédacteur — peut créer et modifier des articles, pages et médias.",
    "invite_help_admin": "Admin — accès complet incluant les réglages, utilisateurs et outils.",
    "invite_owner_only": "Seul le propriétaire du site peut inviter des administrateurs.",
    "team_members": "Membres de l'équipe",
    "you": "(toi)",
    "joined": "Inscrit",
    "invitation_pending": "Invitation en attente",
    "role_owner": "Propriétaire",
    "role_admin": "Admin",
    "role_editor": "Rédacteur",
    "role_pending": "En attente",
    "save": "Enregistrer",
    "delete": "Supprimer",
    "cancel_invitation": "Annuler",
    "delete_confirm": "Supprimer l'utilisateur {name} ? Ses articles et pages seront aussi supprimés.",
    "cancel_confirm": "Annuler l'invitation pour {email} ?"
  },
  "profile": {
    "title": "Mon profil",
    "subtitle": "Modifie ton profil d'auteur et les paramètres de ton compte",
    "your_role": "Ton rôle :",
    "member_since": "Membre depuis",
    "author_profile": "Profil d'auteur",
    "author_help": "Ces informations sont utilisées sur tes articles publiés et dans les métadonnées des moteurs de recherche (Schema.org).",
    "display_name": "Nom affiché",
    "display_name_help": "Affiché comme nom d'auteur sur les articles et pages. Si vide, ton nom d'utilisateur est utilisé.",
    "bio": "Bio",
    "bio_placeholder": "Quelques mots sur toi...",
    "bio_help": "Utilisé dans le balisage auteur Schema (améliore le SEO). Visible par les moteurs de recherche et optionnellement sur tes articles.",
    "avatar_url": "URL de l'avatar",
    "avatar_placeholder": "/static/uploads/avatar.jpg",
    "avatar_help": "Photo de profil. Utilisée dans le balisage auteur pour les moteurs de recherche.",
    "select_avatar": "Sélectionner un avatar",
    "account_settings": "Paramètres du compte",
    "username": "Nom d'utilisateur",
    "username_unchangeable": "Le nom d'utilisateur ne peut pas être modifié",
    "email": "E-mail",
    "new_password": "Nouveau mot de passe",
    "new_password_placeholder": "Laisse vide pour conserver l'actuel",
    "confirm_password": "Confirmer le nouveau mot de passe",
    "confirm_password_placeholder": "Répète le nouveau mot de passe",
    "password_help": "Min. 8 caractères avec majuscule, minuscule et un chiffre. Laisse vide pour conserver l'actuel.",
    "current_password": "Mot de passe actuel",
    "current_password_placeholder": "Saisis ton mot de passe actuel",
    "current_password_help": "Requis pour changer ton mot de passe",
    "admin_language": "Langue du panneau d'administration",
    "admin_language_help": "Langue de l'interface d'administration. Les langues du contenu sont gérées séparément dans Réglages.",
    "admin_theme": "Thème du panneau",
    "theme_light": "Clair",
    "theme_dark": "Sombre",
    "theme_system": "Système",
    "admin_theme_help": "Choisis l'apparence du panneau d'administration. \"Système\" suit les réglages de ton appareil.",
    "save_profile": "Enregistrer le profil",
    "author_links": "Liens de l'auteur",
    "author_links_help": "Ces liens sont ajoutés au balisage Schema.org de l'auteur. Ils aident les systèmes d'IA à vérifier votre expertise et à citer vos articles plus précisément.",
    "linkedin_url": "URL LinkedIn",
    "website_url": "Site web personnel",
    "github_url": "URL GitHub"
  },
  "themes": {
    "title": "Thèmes",
    "subtitle": "Choisis et personnalise l'apparence de ton site",
    "default_mode": "Mode d'affichage par défaut",
    "default_mode_help": "Définit le thème initial pour les nouveaux visiteurs. Les utilisateurs peuvent toujours basculer entre mode sombre et clair avec le bouton sur ton site.",
    "dark": "Sombre",
    "light": "Clair",
    "auto": "Automatique",
    "save_mode": "Enregistrer le mode",
    "available_themes": "Thèmes disponibles",
    "active": "Actif",
    "activate": "Activer",
    "currently_active": "Actuellement actif",
    "single_mode": "Mode unique",
    "no_themes": "Aucun thème trouvé",
    "no_themes_help": "Ajoute des dossiers de thèmes dans static/css/themes/",
    "custom_css": "CSS personnalisé",
    "custom_css_help": "Affine les styles des blocs — espacements, couleurs, typographie, bordures, effets au survol, animations. Dans la barre latérale du Page Builder, définis une \"classe CSS\" sur n'importe quel bloc ; stylise ensuite cette classe ici.",
    "custom_css_placeholder": "/* Stylise toute \"classe CSS\" que tu définis sur les blocs du Page Builder */\n\n.my-cool-card {\n  padding: 2rem;\n  border-radius: 12px;\n  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\n}",
    "save_custom_css": "Enregistrer le CSS personnalisé",
    "desc_stellar_origin": "Précision et clarté de l'espace profond — l'étoile Alioth comme point de navigation à travers le sens et le design minimaliste.",
    "desc_midnight_botanist": "La croissance organique des idées sous la lueur de la mousse lunaire — mode sombre de forêt profonde avec de doux accents botaniques.",
    "desc_emerald_forest": "Harmonie et calme organique — un jardin numérique où la technologie sert la nature. Comme une ancienne bibliothèque au cœur d'une forêt profonde.",
    "desc_oceanic_depth": "Fiabilité, sérénité, intellect puissant et profondeur — un océan nocturne sous un ciel dégagé, où seules les crêtes des vagues scintillent.",
    "desc_nebula_rose": "Créativité et élégance — lumière d'une nébuleuse lointaine, violet profond avec un doux or rose. Comme feuilleter un magazine d'art.",
    "desc_frozen_moss": "La sérénité d'une forêt givrée — ombres profondes de persistants sous l'argent pâle de la menthe et la douce lueur du givre sur les branches.",
    "desc_amber_blossom": "Un soir d'été chaleureux dans un jardin fleuri — accents d'ambre miel sur des surfaces crémeuses, terre cuite douce et tons d'écorce profonds.",
    "desc_ocean_whispers": "La clarté fraîche de la brise marine — sable blanc, eau transparente et horizons turquoise pour une expérience de lecture côtière épurée.",
    "desc_volcanic_ash": "Le mystère sombre de la lave refroidie — graphite profond avec des nuances vineuses, éclat violet magique et le poids du basalte ancien.",
    "desc_corporate_clean": "Clarté professionnelle et confiance — surfaces blanches nettes, accents bleus précis et gris neutres. Conçu pour les entreprises et agences.",
    "desc_editorial_press": "L'élégance intemporelle de l'imprimerie — accents sépia chaleureux, titres en sérif, espace blanc généreux. Conçu pour les magazines et l'écriture longue.",
    "desc_neon_launch": "L'énergie d'un lancement de produit — violet électrique sur des surfaces nettes, géométrie audacieuse, typographie tranchante. Conçu pour les startups et blogs tech.",
    "desc_handmade_story": "La chaleur d'une lettre manuscrite — terre cuite et olive sur papier crème, formes douces et arrondies. Conçu pour les artisans et petites entreprises.",
    "desc_crimson_velvet": "Le luxe discret d'une cave à vin privée — velours bordeaux, chêne vieilli et lumière de bougie sur le cristal. Conçu pour les restaurants, marques de luxe et l'art de vivre.",
    "desc_solar_flare": "La chaleur explosive d'une couronne solaire face au vide — ambre fondu et or sur bleu encre profond. Conçu pour les marques audacieuses qui veulent se démarquer.",
    "mode_lock": "Verrouillage du mode",
    "mode_lock_help": "Imposer un seul mode à tous les visiteurs et masquer le bouton de bascule sur votre site.",
    "both_modes": "Les deux modes",
    "light_only": "Clair uniquement",
    "dark_only": "Sombre uniquement",
    "upload_title": "Installer un thème depuis un ZIP",
    "upload_help": "Téléversez un ZIP de thème : un dossier avec theme.css et une image d’aperçu facultative. Le thème apparaît immédiatement dans la liste. Les thèmes téléversés ici survivent aux mises à jour du CMS (sauf si le nom correspond à un thème intégré).",
    "upload_btn": "Installer",
    "upload_ok": "Thème « {name} » installé.",
    "upload_replaced": "Thème « {name} » remplacé.",
    "upload_err": "Le fichier n’est pas un ZIP de thème valide.",
    "delete_confirm": "Supprimer ce thème ? Ses fichiers seront supprimés.",
    "deleted_ok": "Thème « {name} » supprimé.",
    "cannot_delete_active": "Le thème actif ne peut pas être supprimé. Activez d’abord un autre thème."
  },
  "tools": {
    "title": "Outils SEO & AEO",
    "subtitle": "Gérer le sitemap, robots.txt, les flux RSS et la visibilité IA pour les moteurs de recherche et les moteurs de réponse",
    "sitemap_title": "Sitemap XML",
    "sitemap_desc": "Généré automatiquement à partir de ton contenu publié. Les moteurs de recherche l'utilisent pour découvrir et indexer tes pages.",
    "sitemap_status": "Statut",
    "sitemap_active": "Actif",
    "total_urls": "Total d'URLs",
    "published_posts": "Articles publiés",
    "published_pages": "Pages publiées",
    "homepage": "Page d'accueil",
    "view": "Voir",
    "sitemap_auto": "Le sitemap est généré automatiquement — aucune modification manuelle nécessaire. Le nouveau contenu apparaît automatiquement.",
    "robots_title": "robots.txt",
    "robots_desc": "Contrôle quelles pages les moteurs de recherche peuvent explorer. L'URL du sitemap est ajoutée automatiquement.",
    "robots_content": "Contenu",
    "robots_help": "Directives standard : User-agent, Allow, Disallow. Une par ligne.",
    "save": "Enregistrer",
    "reset_default": "Rétablir les valeurs par défaut",
    "reset_confirm": "Rétablir robots.txt par défaut ? Cela écrasera ton contenu actuel.",
    "rss_title": "Flux RSS",
    "rss_desc": "Flux RSS générés automatiquement pour chaque langue. Les lecteurs RSS, agrégateurs et Google News les utilisent pour suivre ton contenu.",
    "rss_posts_per_feed": "Articles par flux",
    "rss_auto": "Les flux sont générés automatiquement — un par langue active. Les 20 derniers articles avec toutes les métadonnées.",
    "llms_title": "llms.txt",
    "llms_desc": "Résumé du site compatible IA pour ChatGPT, Claude, Perplexity et autres systèmes d'IA. Aide l'IA à comprendre votre site et à citer votre contenu avec précision.",
    "llms_posts_included": "Articles inclus",
    "llms_pages_included": "Pages incluses",
    "llms_auto": "Généré automatiquement à partir de votre contenu publié. Inclut les 50 derniers articles et toutes les pages avec des méta-descriptions."
  },
  "audit_log": {
    "title": "Journal d'activité",
    "subtitle": "Surveillance de l'activité et de la sécurité",
    "all_actions": "Toutes les actions",
    "clear_filter": "Réinitialiser le filtre",
    "entries": "entrées",
    "time": "Heure",
    "user": "Utilisateur",
    "action": "Action",
    "details": "Détails",
    "ip": "IP",
    "no_entries": "Aucune entrée dans le journal pour le moment",
    "no_entries_text": "L'activité apparaîtra ici au fur et à mesure que les utilisateurs interagiront avec le panneau d'administration.",
    "prev": "← Précédent",
    "next": "Suivant →",
    "action_login": "Connexion",
    "action_login_failed": "Connexion échouée",
    "action_login_blocked": "Connexion bloquée",
    "action_logout": "Déconnexion",
    "action_create_post": "Créer un article",
    "action_edit_post": "Modifier un article",
    "action_delete_post": "Supprimer un article",
    "action_create_page": "Créer une page",
    "action_edit_page": "Modifier une page",
    "action_edit_page_builder": "Modifier une page (Builder)",
    "action_delete_page": "Supprimer une page",
    "action_create_form": "Créer un formulaire",
    "action_edit_form": "Modifier un formulaire",
    "action_translate_form": "Traduire un formulaire",
    "action_delete_form": "Supprimer un formulaire",
    "action_save_newsletter": "Enregistrer la newsletter",
    "action_send_newsletter": "Envoyer la newsletter",
    "action_delete_newsletter": "Supprimer la newsletter",
    "action_edit_settings": "Modifier les réglages",
    "action_change_theme": "Changer de thème",
    "action_create_backup": "Créer une sauvegarde",
    "action_restore_backup": "Restaurer une sauvegarde",
    "action_backup_failed": "Sauvegarde échouée",
    "action_restore_failed": "Restauration échouée",
    "action_update_favicon": "Mettre à jour le favicon",
    "action_delete_favicon": "Supprimer le favicon",
    "detail_login_blocked": "IP {ip} bloquée (force brute)",
    "detail_login_success": "Connexion réussie",
    "detail_login_failed": "Tentative de connexion échouée pour \"{name}\"",
    "detail_logout": "L'utilisateur s'est déconnecté",
    "detail_password_reset_email_failed": "Échec de l'envoi de l'e-mail de réinitialisation à {email} : {error}",
    "detail_password_reset_request": "Réinitialisation du mot de passe demandée pour {email}",
    "detail_password_reset": "Mot de passe réinitialisé pour {email}",
    "detail_created_post": "Article créé \"{title}\" ({lang})",
    "detail_edited_post": "Article modifié \"{title}\" ({lang})",
    "detail_deleted_post": "Article supprimé \"{title}\"",
    "detail_duplicated_post": "Article dupliqué à partir de \"{title}\"",
    "detail_created_page": "Page créée \"{title}\" ({lang})",
    "detail_edited_page": "Page modifiée \"{title}\" ({lang})",
    "detail_deleted_page": "Page supprimée \"{title}\"",
    "detail_duplicated_page": "Page dupliquée à partir de \"{title}\"",
    "detail_updated_builder": "Blocs du Page Builder mis à jour pour \"{title}\"",
    "detail_created_form": "Formulaire créé : {title}",
    "detail_updated_form": "Formulaire mis à jour : {title}",
    "detail_translated_form": "Traduction de formulaire créée : {title} ({lang})",
    "detail_deleted_form": "Formulaire supprimé : {title}",
    "detail_duplicated_form": "Formulaire dupliqué à partir de \"{title}\"",
    "detail_bulk_deleted_submissions": "{count} soumissions supprimées du formulaire \"{title}\"",
    "detail_created_newsletter": "Newsletter créée : {title}",
    "detail_saved_newsletter": "Newsletter enregistrée : {title}",
    "detail_translated_newsletter": "Traduction de newsletter créée ({lang}) : {title}",
    "detail_deleted_newsletter": "Newsletter supprimée",
    "detail_sent_newsletter": "Newsletter envoyée à {count} destinataires ({failed} échoués)",
    "detail_duplicated_newsletter": "Newsletter dupliquée à partir de \"{title}\"",
    "detail_file_uploaded": "Fichier importé : {name}",
    "detail_file_deleted": "Fichier supprimé : {name}",
    "detail_favicon_updated": "Favicons générés : {sizes}",
    "detail_favicon_deleted": "Tous les favicons supprimés",
    "detail_license_activated": "Licence activée ({platform})",
    "detail_license_deactivated": "Licence désactivée",
    "detail_settings_updated": "Réglages du site mis à jour",
    "detail_update_backup": "Sauvegarde pré-mise à jour créée",
    "detail_updated_cms": "Mis à jour vers v{version}",
    "detail_update_rolled_back": "Mise à jour échouée, restauration effectuée : {error}",
    "detail_update_error": "Erreur de mise à jour : {error}",
    "detail_ssl_enabled": "HTTPS activé pour {domain}",
    "detail_ssl_failed": "Configuration SSL échouée pour {domain} : {error}",
    "detail_ssl_timeout": "Configuration SSL expirée pour {domain}",
    "detail_created_backup": "Sauvegarde créée ({size} Mo)",
    "detail_backup_failed": "Sauvegarde échouée : {error}",
    "detail_restored_backup": "Sauvegarde restaurée : {items}",
    "detail_restore_failed": "Restauration échouée : {error}",
    "detail_changed_theme_mode": "Mode d'affichage changé : {old_mode} → {new_mode}",
    "detail_activated_theme": "Thème activé : {theme}",
    "detail_custom_css_updated": "CSS personnalisé mis à jour",
    "detail_changed_mode_lock": "Verrouillage du mode modifié : {old_lock} → {new_lock}",
    "action_accept_invite": "Accepter l'invitation",
    "action_activate_license": "Activer la licence",
    "action_bulk_delete_submissions": "Suppression groupée de soumissions",
    "action_change_mode_lock": "Modifier le verrou de mode",
    "action_change_theme_mode": "Modifier le mode d'affichage",
    "action_change_user_role": "Modifier le rôle d'utilisateur",
    "action_create_newsletter": "Créer une newsletter",
    "action_deactivate_license": "Désactiver la licence",
    "action_delete_image": "Supprimer l'image",
    "action_delete_user": "Supprimer l'utilisateur",
    "action_duplicate_form": "Dupliquer le formulaire",
    "action_duplicate_newsletter": "Dupliquer la newsletter",
    "action_duplicate_page": "Dupliquer la page",
    "action_duplicate_post": "Dupliquer l'article",
    "action_edit_custom_css": "Modifier le CSS personnalisé",
    "action_edit_image": "Modifier l'image",
    "action_file_deleted": "Supprimer le fichier",
    "action_file_uploaded": "Téléverser un fichier",
    "action_invite_user": "Inviter un utilisateur",
    "action_password_reset": "Réinitialisation du mot de passe",
    "action_password_reset_email_failed": "Échec de l'e-mail de réinitialisation",
    "action_password_reset_request": "Demande de réinitialisation",
    "action_save_menu": "Enregistrer le menu",
    "action_ssl_setup": "Configuration SSL",
    "action_ssl_setup_failed": "Échec de la configuration SSL",
    "action_translate_newsletter": "Traduire la newsletter",
    "action_update_backup": "Sauvegarde avant mise à jour",
    "action_update_cms": "Mettre à jour le CMS",
    "action_update_failed": "Échec de la mise à jour",
    "action_update_profile": "Mettre à jour le profil",
    "action_upload_image": "Téléverser une image",
    "detail_accepted_invite": "Invitation acceptée et compte « {name} » créé",
    "detail_changed_user_role": "Rôle de {name} changé en {role}",
    "detail_deleted_image": "Image supprimée : {filename}",
    "detail_deleted_user": "Utilisateur « {name} » supprimé",
    "detail_edited_image": "Image modifiée : {filename}",
    "detail_invited_user": "{email} invité en tant que {role}",
    "detail_saved_menu": "Menu {location} enregistré",
    "detail_updated_profile": "Profil personnel mis à jour",
    "detail_uploaded_image": "Image téléversée : {filename}",
    "action_install_plugin": "Installer un plugin",
    "action_update_plugin": "Mettre à jour un plugin",
    "action_toggle_plugin": "Activer/désactiver un plugin",
    "action_delete_plugin": "Supprimer un plugin",
    "action_activate_plugin_license": "Activer la licence d'un plugin",
    "action_upload_theme": "Téléverser un thème",
    "action_delete_theme": "Supprimer un thème"
  },
  "backup": {
    "title": "Sauvegarde",
    "subtitle": "Crée une sauvegarde complète de ton site",
    "overview": "Aperçu du site",
    "posts": "Articles",
    "pages": "Pages",
    "images": "Images",
    "files_in_uploads": "Fichiers dans uploads",
    "database": "Base de données",
    "uploads_folder": "Dossier uploads",
    "download_title": "Télécharger la sauvegarde",
    "download_desc": "Crée une archive ZIP contenant ta base de données, tous les fichiers médias importés et la configuration.",
    "create_download": "Créer et télécharger la sauvegarde",
    "creating_backup": "Création de la sauvegarde…",
    "whats_included": "Ce qui est inclus :",
    "includes_db": "Base de données complète (tous les articles, pages, réglages, utilisateurs)",
    "includes_media": "Tous les fichiers médias importés (images, variantes)",
    "includes_env": "Configuration de l'environnement (.env)",
    "restore_title": "Restaurer depuis une sauvegarde",
    "restore_desc": "Importe un ZIP de sauvegarde créé précédemment pour restaurer ton site. Cela écrasera la base de données et les fichiers importés actuels.",
    "restore_btn": "Restaurer depuis une sauvegarde",
    "restoring": "Restauration…",
    "restore_warning": "Attention :",
    "restore_warning_text": "La restauration d'une sauvegarde remplacera ta base de données et tes fichiers importés actuels. Assure-toi d'avoir une sauvegarde à jour avant de restaurer une ancienne.",
    "restore_select_file": "Sélectionne d'abord un fichier ZIP de sauvegarde.",
    "restore_confirm": "Veux-tu vraiment restaurer depuis cette sauvegarde ?\n\nCela ÉCRASERA ta base de données et tes fichiers importés actuels.\nCette action est irréversible !"
  },
  "menus": {
    "title": "Menus",
    "subtitle": "Configure les menus de l'en-tête et du pied de page",
    "header_menu": "Menu de l'en-tête",
    "footer_menu": "Menu du pied de page",
    "current_header": "Menu d'en-tête actuel :",
    "current_footer": "Menu de pied de page actuel :",
    "menu_label": "Libellé du menu",
    "lang": "Langue",
    "published": "Publié",
    "no_pages": "Aucune page publiée pour le moment.",
    "no_posts": "Aucun article publié pour le moment.",
    "create_first_page": "Crée ta première page →",
    "create_first_post": "Crée ton premier article →",
    "save_menu": "Enregistrer le menu",
    "all_languages": "Toutes les langues",
    "custom_label_placeholder": "Libellé du menu",
    "header_info": "Sélectionne des pages, articles, fichiers ou liens à ajouter à la navigation de l'en-tête. Tu peux définir un <strong>libellé du menu</strong> pour chaque élément — utile quand le titre est trop long pour un menu.",
    "footer_info": "Sélectionne des pages, articles, fichiers ou liens pour la navigation du pied de page. Généralement utilisé pour les pages légales et les informations sur l'entreprise.",
    "add_submenu_item": "Ajouter un sous-élément",
    "submenu_items": "Sous-éléments du menu",
    "no_menu_items": "Aucun élément dans ce menu pour le moment.",
    "drag_to_reorder": "Faire glisser pour réorganiser",
    "drag_to_nest": "Fais glisser sur un élément principal pour l'imbriquer comme sous-menu",
    "remove_item": "Supprimer",
    "submenu_note": "Les sous-menus sont pris en charge dans le menu d'en-tête. Les menus de pied de page s'affichent comme des liens simples.",
    "anchor_links_hint": "Les liens d’ancre sont pris en charge, par ex. /about#team",
    "parent_item": "Élément principal",
    "child_item": "Sous-élément",
    "custom_links": "Liens",
    "custom_url_placeholder": "https://example.com",
    "pick_file": "Choisir un fichier…",
    "open_new_window": "Ouvrir dans une nouvelle fenêtre",
    "add_to_menu": "Ajouter au menu",
    "custom_url_invalid": "L'URL doit commencer par https://, http://, mailto:, tel: ou /",
    "custom_label_required": "Le libellé est obligatoire",
    "custom_links_empty": "Remplis au moins une langue avec une URL et un libellé",
    "update_link": "Mettre à jour le lien",
    "edit_link": "Modifier",
    "custom_url_header": "URL",
    "max_depth_reached": "Profondeur maximale du menu atteinte (3 niveaux)"
  },
  "login": {
    "title": "Connexion administrateur",
    "username": "Nom d'utilisateur",
    "username_or_email": "Nom d'utilisateur ou e-mail",
    "password": "Mot de passe",
    "login_btn": "Se connecter",
    "forgot_password": "Mot de passe oublié ?",
    "back_to_site": "← Retour au site"
  },
  "forgot_password": {
    "title": "Réinitialise ton mot de passe",
    "email_label": "Adresse e-mail",
    "email_placeholder": "Saisis l'e-mail de ton compte",
    "email_help": "Nous t'enverrons un lien pour réinitialiser ton mot de passe. Le lien est valable 1 heure.",
    "send_btn": "Envoyer le lien de réinitialisation",
    "back_to_login": "← Retour à la connexion"
  },
  "reset_password": {
    "title": "Définir un nouveau mot de passe",
    "password_label": "Nouveau mot de passe",
    "password_placeholder": "Saisis le nouveau mot de passe",
    "password_help": "Au moins 8 caractères",
    "confirm_label": "Confirmer le nouveau mot de passe",
    "confirm_placeholder": "Répète le nouveau mot de passe",
    "submit_btn": "Définir le nouveau mot de passe",
    "back_to_login": "← Retour à la connexion"
  },
  "accept_invite": {
    "welcome": "Bienvenue !",
    "subtitle": "Tu as été invité(e) à rejoindre l'équipe",
    "invited_as": "Tu es invité(e) en tant que {role} pour {email}",
    "username": "Nom d'utilisateur",
    "username_placeholder": "Choisis un nom d'utilisateur",
    "username_help": "Utilisé pour se connecter",
    "display_name": "Nom affiché",
    "display_name_placeholder": "Ton nom public (affiché sur les articles)",
    "display_name_help": "Visible par les visiteurs du site comme nom d'auteur",
    "password": "Mot de passe",
    "password_placeholder": "Au moins 8 caractères",
    "confirm_password": "Confirmer le mot de passe",
    "confirm_placeholder": "Répète le mot de passe",
    "create_account": "Créer mon compte"
  },
  "table": {
    "title": "Titre",
    "status": "Statut",
    "language": "Langue",
    "author": "Auteur",
    "published_date": "Publié",
    "updated_date": "Mis à jour",
    "actions": "Actions",
    "edit": "Modifier",
    "translate": "Traduire",
    "view": "Voir",
    "preview": "Aperçu",
    "delete": "Supprimer",
    "duplicate": "Dupliquer",
    "all": "Tous",
    "published": "Publiés",
    "drafts": "Brouillons",
    "search": "Rechercher",
    "selected": "sélectionnés",
    "all_languages": "Toutes les langues",
    "newest_first": "Plus récents d'abord",
    "oldest_first": "Plus anciens d'abord"
  },
  "pagination": {
    "prev": "← Précédent",
    "next": "Suivant →",
    "per_page": "Afficher",
    "per_page_suffix": "par page"
  },
  "common": {
    "save": "Enregistrer",
    "cancel": "Annuler",
    "delete": "Supprimer",
    "edit": "Modifier",
    "back": "Retour",
    "search": "Rechercher",
    "loading": "Chargement...",
    "success": "Succès",
    "error": "Erreur",
    "confirm": "Confirmer",
    "yes": "Oui",
    "no": "Non",
    "choose": "Choisir",
    "copy": "Copier",
    "copied": "Copié !",
    "close": "Fermer",
    "or": "ou",
    "and": "et",
    "required": "obligatoire",
    "connection_error": "Erreur de connexion. Réessaie.",
    "clear": "Effacer",
    "remove": "Supprimer",
    "preview": "Aperçu",
    "show_hide": "Afficher/masquer",
    "show_hide_password": "Afficher/masquer le mot de passe",
    "view": "Voir",
    "status_published": "Publié",
    "status_draft": "Brouillon",
    "status_read": "Lu",
    "status_new": "Nouveau",
    "unit_b": "o",
    "unit_kb": "Ko",
    "unit_mb": "Mo",
    "language_deactivated": "désactivé"
  },
  "dates": {
    "months_short": [
      "Janv.",
      "Févr.",
      "Mars",
      "Avr.",
      "Mai",
      "Juin",
      "Juil.",
      "Août",
      "Sept.",
      "Oct.",
      "Nov.",
      "Déc."
    ],
    "months_long": [
      "Janvier",
      "Février",
      "Mars",
      "Avril",
      "Mai",
      "Juin",
      "Juillet",
      "Août",
      "Septembre",
      "Octobre",
      "Novembre",
      "Décembre"
    ],
    "format_date": "{day} {month_short} {year}",
    "format_datetime": "{day} {month_short}, {time}"
  },
  "builder": {
    "page_builder": "Page Builder",
    "open_builder": "Ouvrir le Page Builder",
    "save_first_hint": "Enregistre d'abord la page, puis ouvre le Page Builder depuis la page de modification",
    "save_translation_hint": "Enregistre d'abord la traduction, puis ouvre le Page Builder depuis la page de modification",
    "save": "Enregistrer",
    "saving": "Enregistrement...",
    "saved": "Enregistré avec succès",
    "save_failed": "Échec de l'enregistrement",
    "network_error": "Erreur réseau — modifications non enregistrées",
    "no_blocks": "Aucune donnée de blocs",
    "preview": "Aperçu",
    "back_to_editor": "Retour à l'éditeur",
    "drag_hint": "Fais glisser des blocs ici ou clique sur un bloc dans la barre latérale",
    "block_settings": "Paramètres du bloc",
    "select_block_hint": "Sélectionne un bloc sur le canevas pour modifier ses paramètres",
    "loading": "Chargement...",
    "layout": "Mise en page",
    "basic": "Basique",
    "structure": "Structure",
    "media": "Médias",
    "advanced": "Avancé",
    "heading": "Titre",
    "text": "Texte",
    "image": "Image",
    "button": "Bouton",
    "divider": "Séparateur",
    "spacer": "Espacement",
    "columns": "Colonnes",
    "section": "Section",
    "video": "Vidéo",
    "gallery": "Galerie",
    "audio": "Audio",
    "quote": "Citation",
    "table": "Tableau",
    "accordion": "Accordéon",
    "tabs": "Onglets",
    "html": "HTML",
    "code": "Code",
    "form": "Formulaire",
    "form_select": "Sélectionner un formulaire",
    "form_no_forms": "Aucun formulaire pour le moment. Crées-en un dans la section Formulaires.",
    "form_fields": "champs",
    "form_submit_default": "Envoyer",
    "form_show_title": "Afficher le titre",
    "form_show_description": "Afficher la description",
    "alignment": "Alignement",
    "left": "Gauche",
    "center": "Centre",
    "right": "Droite",
    "justify": "Justifié",
    "top_margin": "Marge supérieure",
    "bottom_margin": "Marge inférieure",
    "none": "Aucun",
    "css_class": "Classe CSS",
    "anchor_id": "ID d'ancre",
    "text_content": "Texte",
    "level": "Niveau",
    "image_url": "URL de l'image",
    "image_url_hint": "Colle l'URL ou utilise la bibliothèque de médias",
    "alt_text": "Texte alternatif",
    "caption": "Légende",
    "link_url": "URL du lien",
    "size": "Taille",
    "size_full": "Pleine largeur",
    "size_medium": "Moyen",
    "size_small": "Petit",
    "size_auto": "Automatique",
    "button_text": "Texte du bouton",
    "button_url": "URL",
    "style": "Style",
    "style_primary": "Principal",
    "style_outline": "Contour",
    "style_ghost": "Fantôme",
    "style_solid": "Plein",
    "style_dashed": "Tirets",
    "style_dotted": "Pointillé",
    "style_gradient": "Dégradé",
    "size_sm": "Petit",
    "size_md": "Moyen",
    "size_lg": "Grand",
    "target": "Cible",
    "target_self": "Même onglet",
    "target_blank": "Nouvel onglet",
    "height_px": "Hauteur (px)",
    "columns_layout": "Mise en page",
    "columns_hint": "Astuce : Ajoute des blocs dans les colonnes depuis le canevas. L'édition de colonnes sera bientôt disponible.",
    "video_url": "URL YouTube ou Vimeo",
    "video_url_hint": "ex. https://youtube.com/watch?v=...",
    "video_title": "Titre (accessibilité)",
    "aspect_ratio": "Rapport d'aspect",
    "ratio_cinematic": "21:9 (cinématique)",
    "ratio_auto": "Automatique (hauteur du contenu)",
    "html_code": "Code HTML",
    "html_executes": "S'exécute sur la page",
    "quote_text": "Texte de la citation",
    "author": "Auteur",
    "code_language": "Langage",
    "code_content": "Code",
    "audio_url": "URL audio",
    "audio_title": "Titre",
    "table_headers": "En-têtes (séparés par des virgules)",
    "table_rows": "Lignes (virgule par cellule, nouvelle ligne par rangée)",
    "table_rows_count": "lignes",
    "accordion_items": "Éléments",
    "accordion_title": "Titre",
    "accordion_content": "Contenu",
    "add_item": "Ajouter un élément",
    "remove": "Supprimer",
    "tabs_count": "Onglets",
    "tab_title": "Titre de l'onglet",
    "tab_content": "Contenu",
    "add_tab": "Ajouter un onglet",
    "gallery_images": "images",
    "gallery_images_hint": "Colle les URLs des images ci-dessous (une par ligne)",
    "gallery_images_format": "Images (url|alt|légende)",
    "gallery_columns": "Colonnes",
    "background": "Arrière-plan",
    "bg_none": "Aucun",
    "bg_color": "Couleur",
    "bg_gradient": "Dégradé",
    "bg_image": "Image",
    "bg_value": "Valeur de l'arrière-plan",
    "bg_color_pick": "Choisir la couleur",
    "bg_gradient_value": "Dégradé CSS",
    "bg_image_url": "URL de l'image",
    "bg_image_hint": "Recommandé : 1920×1080px ou plus large. L'image couvre toute la largeur de la section.",
    "text_color": "Couleur du texte",
    "text_color_auto": "Automatique (couleurs du thème)",
    "text_color_light": "Clair (pour les arrière-plans sombres)",
    "text_color_dark": "Sombre (pour les arrière-plans clairs)",
    "min_height": "Hauteur minimale",
    "min_height_auto": "Automatique",
    "min_height_50_screen": "50 % de l'écran",
    "min_height_75_screen": "75 % de l'écran",
    "min_height_full_screen": "Plein écran",
    "bg_overlay": "Couleur de superposition",
    "bg_light_mode": "Arrière-plan du mode clair",
    "bg_light_color_pick": "Choisir la couleur du mode clair",
    "bg_light_gradient_value": "Dégradé du mode clair",
    "bg_light_image_url": "URL d'image du mode clair",
    "bg_light_overlay": "Superposition du mode clair",
    "bg_dark_mode": "Arrière-plan du mode sombre",
    "bg_dark_color_pick": "Choisir la couleur du mode sombre",
    "bg_dark_gradient_value": "Dégradé du mode sombre",
    "bg_dark_image_url": "URL d'image du mode sombre",
    "bg_dark_overlay": "Superposition du mode sombre",
    "bg_theme_default": "Par défaut du thème",
    "choose_image": "Sélectionner une image",
    "gallery_add_from_library": "Ajouter depuis la bibliothèque",
    "gallery_pick_title": "Sélectionner des images",
    "gallery_add_selected": "Ajouter la sélection",
    "section_layout": "Mise en page de la section",
    "section_full_width": "Pleine largeur (arrière-plan bord à bord)",
    "section_full_width_hint": "La pleine largeur étend l'arrière-plan jusqu'aux bords de l'écran. La largeur du contenu contrôle la zone intérieure.",
    "section_content_width": "Largeur du contenu",
    "section_width_narrow": "Étroit (768px)",
    "section_width_default": "Par défaut (largeur de page)",
    "section_width_wide": "Large (1200px)",
    "section_width_full": "Complet (sans limite)",
    "slideshow": "Diaporama",
    "slideshow_mode": "Mode",
    "slideshow_mode_image": "Image seule",
    "slideshow_mode_hero": "Hero (image + contenu)",
    "slideshow_animation": "Animation",
    "animation_slide": "Glissement",
    "animation_fade": "Fondu",
    "slideshow_autoplay": "Lecture automatique",
    "slideshow_interval": "Intervalle (secondes)",
    "slideshow_arrows": "Afficher les flèches",
    "slideshow_dots": "Afficher les points",
    "slideshow_overlay": "Superposition",
    "slideshow_slides": "Diapositives",
    "slideshow_add_slide": "Ajouter une diapositive",
    "slideshow_remove_slide": "Supprimer la diapositive",
    "alt_text_override": "Texte alternatif (personnalisé)",
    "alt_text_library_hint": "Hérité de la bibliothèque de médias. Modifier dans Médias → Bibliothèque.",
    "padding": "Espacement interne",
    "padding_sm": "Petit",
    "padding_md": "Moyen",
    "padding_lg": "Grand",
    "padding_xl": "Très grand",
    "move_up": "Monter",
    "move_down": "Descendre",
    "duplicate": "Dupliquer",
    "delete": "Supprimer",
    "drag": "Glisser",
    "unsaved_warning": "Tu as des modifications non enregistrées. Veux-tu vraiment quitter ?",
    "content_alignment": "Alignement du texte",
    "alignment_auto": "— Automatique",
    "block_position": "Position du bloc",
    "slide_select_hint": "Clique sur un numéro de diapositive pour modifier ses blocs",
    "slideshow_add_block": "Ajouter un bloc à la diapositive",
    "default_heading": "Nouveau titre",
    "default_text": "Commence à écrire ici...",
    "text_edit_canvas_hint": "Clique sur le texte dans le canevas pour le modifier",
    "default_button": "Clique ici",
    "default_accordion_title": "Nouvelle question",
    "default_tab": "Onglet",
    "click_select_image": "Clique pour sélectionner une image",
    "click_select_form": "Clique pour sélectionner un formulaire",
    "add_block": "Ajouter un bloc",
    "section_full_width_badge": "PLEINE LARGEUR",
    "table_add_row": "Ligne",
    "table_add_col": "Colonne",
    "table_width": "Largeur du tableau",
    "column_alignment": "Alignement de colonne",
    "table_remove_row": "Ligne",
    "table_remove_col": "Colonne",
    "table_insert_row": "Insérer une ligne",
    "column_width": "Largeur de colonne",
    "column_width_hint": "%",
    "total": "Total",
    "undo": "Annuler",
    "redo": "Rétablir",
    "visibility": "Visibilité",
    "visibility_all": "Tous les appareils",
    "visibility_desktop": "Bureau uniquement",
    "visibility_mobile": "Mobile uniquement",
    "scroll_animation": "Animation au défilement",
    "animation_fade_in": "Fondu",
    "animation_slide_up": "Glissement vers le haut",
    "alt_missing": "Pas de texte alternatif — sélectionne une image depuis la bibliothèque",
    "delete_block_confirm": "Supprimer ce bloc {type} ?",
    "delete_item_confirm": "Supprimer cet élément ?",
    "empty_hint": "Aucun élément pour le moment. Clique sur le bouton ci-dessous pour en ajouter un.",
    "video_gallery": "Galerie vidéo",
    "video_gallery_add": "Ajouter une vidéo",
    "video_gallery_add_title": "Ajouter une vidéo",
    "video_gallery_add_btn": "Ajouter",
    "video_gallery_empty": "Clique pour ajouter des vidéos",
    "video_gallery_videos": "vidéos",
    "video_gallery_title_fetched": "Titre récupéré automatiquement",
    "video_meta_fetch_failed": "Impossible de récupérer les infos de la vidéo",
    "ticker": "Défilé de logos",
    "ticker_speed": "Vitesse",
    "ticker_slow": "Lent",
    "ticker_medium": "Moyen",
    "ticker_fast": "Rapide",
    "ticker_pause_hover": "Pause au survol",
    "ticker_grayscale": "Effet niveaux de gris",
    "ticker_height": "Hauteur du logo",
    "ticker_direction": "Direction",
    "ticker_dir_rtl": "Droite à gauche",
    "ticker_dir_ltr": "Gauche à droite",
    "ticker_images": "logos",
    "toggle_preview": "Basculer l'aperçu : sombre ↔ clair",
    "canvas": "Canevas",
    "bold": "Gras",
    "italic": "Italique",
    "underline": "Souligné",
    "strikethrough": "Barré",
    "align_left": "Aligner à gauche",
    "align_center": "Centrer",
    "align_right": "Aligner à droite",
    "align_justify": "Justifier",
    "bullet_list": "Liste à puces",
    "numbered_list": "Liste numérotée",
    "link": "Lien",
    "clear_formatting": "Effacer le formatage",
    "icon_check": "Coche",
    "icon_cross": "Croix",
    "icon_star": "Étoile",
    "icon_feature": "Fonctionnalité",
    "icon_tip": "Astuce",
    "icon_warning": "Avertissement",
    "icon_plus": "Plus",
    "icon_minus": "Moins",
    "icon_dot": "Point",
    "error_loading_forms": "Erreur lors du chargement des formulaires",
    "form_search_placeholder": "Rechercher des formulaires...",
    "form_all_languages": "Toutes",
    "form_new": "Créer un formulaire",
    "ai_placeholder": "Décris ta page : objectif, sections, contenu, style...",
    "ai_welcome": "Dis-moi quelle page tu souhaites construire ! Décris l'objectif, les sections nécessaires (hero, fonctionnalités, témoignages, FAQ, contact...) et tout contenu spécifique. Plus tu donnes de détails, meilleur sera le résultat. Tu peux aussi me demander de modifier la mise en page après génération.",
    "ai_thinking": "Réflexion...",
    "ai_generated": "✅ <strong>{count} blocs</strong> générés. Clique sur \"Appliquer\" pour les charger dans le canevas.",
    "ai_no_blocks": "Aucun bloc généré. Essaie d'être plus précis sur la structure de la page.",
    "ai_apply_blocks": "Appliquer les blocs",
    "ai_blocks_loaded": "Blocs IA chargés — {count} blocs",
    "editor_readonly_hint": "Ce contenu est géré par le Page Builder"
  },
  "forms": {
    "title": "Formulaires",
    "subtitle": "Crée et gère des formulaires, sondages et collectes de données",
    "new_form": "Créer un nouveau formulaire",
    "create_subtitle": "Choisis un modèle et commence à construire ton formulaire",
    "edit_form": "Modifier le formulaire",
    "edit_subtitle": "Conçois les champs de ton formulaire et configure les paramètres",
    "no_forms": "Aucun formulaire pour le moment",
    "no_forms_text": "Crée ton premier formulaire pour commencer à collecter des données",
    "no_forms_filtered": "Aucun formulaire ne correspond à tes filtres",
    "clear_filters": "Réinitialiser les filtres",
    "search_placeholder": "Rechercher des formulaires...",
    "all_types": "Tous les types",
    "create_first": "Créer le premier formulaire",
    "delete_confirm": "Veux-tu vraiment supprimer \"{title}\" ? Toutes les soumissions seront aussi supprimées.",
    "delete_confirm_generic": "Veux-tu vraiment supprimer ce formulaire ? Toutes les soumissions seront aussi supprimées.",
    "usage_warning": "⚠️ Ce formulaire est intégré dans des blocs du Page Builder :",
    "usage_confirm_delete": "Le bloc du formulaire sera supprimé de ces pages. Supprimer quand même ?",
    "form_type": "Type de formulaire",
    "type_contact": "Formulaire de contact",
    "type_contact_desc": "Nom, e-mail, objet, message — formulaire de contact classique avec consentement de confidentialité",
    "type_survey": "Sondage / Enquête",
    "type_survey_desc": "Évaluation, boutons radio, cases à cocher — collecte d'avis et d'opinions",
    "type_subscription": "Abonnement",
    "type_subscription_desc": "Inscription par e-mail avec consentement — prêt pour l'intégration newsletter",
    "type_custom": "Formulaire personnalisé",
    "type_custom_desc": "Pars de zéro et construis exactement ce dont tu as besoin",
    "status_active": "Actif",
    "status_inactive": "Inactif",
    "submissions_count": "Soumissions",
    "new_badge": "nouveau",
    "fields": "Champs",
    "form_settings": "Paramètres du formulaire",
    "field_types": "Types de champs",
    "add_field": "Ajouter un champ",
    "field_label": "Libellé",
    "field_name": "Nom du champ",
    "field_name_help": "Nom interne (sans espaces, minuscules)",
    "field_placeholder": "Texte indicatif",
    "field_required": "Obligatoire",
    "field_width": "Largeur",
    "field_width_full": "Pleine largeur",
    "field_width_half": "Demi-largeur",
    "field_help_text": "Texte d'aide",
    "field_options": "Options (une par ligne)",
    "field_max_rating": "Étoiles max.",
    "field_consent_text": "Texte de consentement",
    "type_text": "Texte",
    "type_email": "E-mail",
    "type_phone": "Téléphone",
    "type_number": "Nombre",
    "type_textarea": "Zone de texte",
    "type_select": "Liste déroulante",
    "type_radio": "Boutons radio",
    "type_checkbox": "Cases à cocher",
    "type_date": "Date",
    "type_url": "URL",
    "type_file": "Import de fichier",
    "type_hidden": "Caché",
    "type_rating": "Évaluation par étoiles",
    "type_consent": "Consentement / RGPD",
    "settings_submit_label": "Texte du bouton d'envoi",
    "settings_success_message": "Message de succès",
    "settings_success_help": "Affiché après une soumission réussie",
    "settings_redirect_url": "URL de redirection (facultatif)",
    "settings_redirect_help": "Rediriger vers cette URL après la soumission au lieu d'afficher le message de succès",
    "settings_notify_email": "E-mail de notification",
    "settings_notify_help": "Recevoir un e-mail quand quelqu'un soumet ce formulaire",
    "settings_notify_on_submit": "Envoyer une notification par e-mail à chaque soumission",
    "settings_store_submissions": "Stocker les soumissions en base de données",
    "settings_anti_spam": "Protection anti-spam",
    "settings_anti_spam_honeypot": "Honeypot (recommandé)",
    "settings_anti_spam_none": "Aucune",
    "preview": "Aperçu",
    "move_up": "Monter",
    "move_down": "Descendre",
    "duplicate_field": "Dupliquer",
    "remove_field": "Supprimer",
    "form_slug": "Slug du formulaire",
    "form_description": "Description",
    "form_description_help": "Affichée au-dessus du formulaire sur le site public",
    "translate_form": "Créer une traduction",
    "translating_from": "Traduction depuis :",
    "select_target_language": "Sélectionner la langue cible",
    "existing_translations": "Traductions existantes",
    "ai_translate_fields": "IA : Traduire tous les champs",
    "translating_fields": "Traduction des champs...",
    "language": "Langue",
    "translations": "Traductions",
    "no_translations": "Aucune traduction pour le moment",
    "create_translation": "Créer une traduction",
    "ai_translate_create": "IA : Traduire et créer",
    "translation_group": "Groupe de traduction",
    "ai_generate_form": "IA : Générer un formulaire",
    "ai_generate_form_desc": "Laisse l'IA créer les champs du formulaire à partir de ta description",
    "ai_hint_create_first": "Crée d'abord le formulaire, puis utilise l'IA pour générer les champs sur la page de modification",
    "ai_hint_translate": "Utilise l'IA pour générer ou ajuster le contenu du formulaire pour la langue cible",
    "this_version": "— cette version",
    "or_use_ai": "Ou utilise l'IA :",
    "select_language_placeholder": "— Sélectionner la langue —",
    "ai_translate_help": "Crée un nouveau formulaire avec les champs traduits par l'IA",
    "group": "Groupe",
    "drag": "Glisser",
    "copy": "Copier",
    "select_language_first": "Sélectionne d'abord une langue cible.",
    "confirm_ai_translate": "Créer une traduction IA vers {lang} ? Un nouveau formulaire sera créé avec tous les champs traduits.",
    "open_existing_translation": "Ouvrir la traduction existante ?",
    "default_text_field": "Champ texte",
    "default_email": "E-mail",
    "default_phone": "Téléphone",
    "default_number": "Nombre",
    "default_message": "Message",
    "default_select": "Sélectionner",
    "default_choice": "Choix",
    "default_select_all": "Sélectionne tout ce qui s'applique",
    "default_date": "Date",
    "default_website": "Site web",
    "default_rating": "Évaluation",
    "default_privacy": "Confidentialité",
    "default_hidden": "Caché",
    "default_consent_text": "J'accepte le traitement de mes données personnelles.",
    "default_option": "Option",
    "default_your_message": "Ton message...",
    "source_form": "Formulaire source",
    "source_badge": "source",
    "source_form_fields": "Champs du formulaire source",
    "original": "Original",
    "translated_title_placeholder": "Titre du formulaire traduit...",
    "translated_desc_placeholder": "Description traduite...",
    "source_settings": "Paramètres",
    "source_submit": "Envoyer",
    "source_success": "Succès",
    "source_placeholder": "Texte indicatif",
    "source_help": "Aide",
    "source_consent": "Consentement",
    "source_options": "Options",
    "ai_translate_all_help": "Traduit le titre, la description, tous les libellés de champs, textes indicatifs, options, textes de consentement et le bouton d'envoi via l'IA. Crée le formulaire traduit automatiquement.",
    "confirm_ai_translate_full": "Créer une traduction IA vers {lang} ? Un nouveau formulaire sera créé avec tous les champs, libellés, textes indicatifs et paramètres traduits.",
    "redirect_to_translation": "Redirection vers la page de modification de la traduction...",
    "fields_count": "champs",
    "new_form_placeholder": "Mon formulaire de contact",
    "tpl_contact_name": "Ton nom",
    "tpl_contact_name_placeholder": "Jean Dupont",
    "tpl_contact_email": "Adresse e-mail",
    "tpl_contact_email_placeholder": "jean@exemple.com",
    "tpl_contact_subject": "Objet",
    "tpl_contact_subject_placeholder": "Comment pouvons-nous t'aider ?",
    "tpl_contact_message": "Message",
    "tpl_contact_message_placeholder": "Ton message...",
    "tpl_contact_privacy": "Politique de confidentialité",
    "tpl_contact_consent": "J'accepte le traitement de mes données personnelles conformément à la Politique de Confidentialité.",
    "tpl_contact_submit": "Envoyer le message",
    "tpl_contact_success": "Merci ! Nous te répondrons dans les plus brefs délais.",
    "tpl_survey_name": "Ton nom (facultatif)",
    "tpl_survey_satisfaction": "Quel est ton niveau de satisfaction concernant notre service ?",
    "tpl_survey_opt_very_satisfied": "Très satisfait",
    "tpl_survey_opt_satisfied": "Satisfait",
    "tpl_survey_opt_neutral": "Neutre",
    "tpl_survey_opt_dissatisfied": "Insatisfait",
    "tpl_survey_opt_very_dissatisfied": "Très insatisfait",
    "tpl_survey_rating": "Évalue ton expérience globale",
    "tpl_survey_improvements": "Que pourrions-nous améliorer ?",
    "tpl_survey_opt_speed": "Rapidité",
    "tpl_survey_opt_quality": "Qualité",
    "tpl_survey_opt_communication": "Communication",
    "tpl_survey_opt_price": "Prix",
    "tpl_survey_opt_support": "Support",
    "tpl_survey_comments": "Commentaires supplémentaires",
    "tpl_survey_comments_placeholder": "Dis-nous en plus...",
    "tpl_survey_submit": "Envoyer le sondage",
    "tpl_survey_success": "Merci pour tes commentaires ! Ils nous aident à nous améliorer.",
    "tpl_sub_email": "Adresse e-mail",
    "tpl_sub_email_placeholder": "ton@email.com",
    "tpl_sub_name": "Nom (facultatif)",
    "tpl_sub_name_placeholder": "Ton nom",
    "tpl_sub_consent_label": "Consentement newsletter",
    "tpl_sub_consent_text": "J'accepte de recevoir des mises à jour par e-mail. Je peux me désabonner à tout moment.",
    "tpl_sub_submit": "S'abonner",
    "tpl_sub_success": "Tu es abonné(e) ! Vérifie ta boîte de réception pour l'e-mail de confirmation.",
    "tpl_custom_field": "Champ 1",
    "tpl_custom_submit": "Envoyer",
    "tpl_custom_success": "Merci ! Ta réponse a été enregistrée.",
    "email_new_submission": "Nouvelle soumission : {title}",
    "email_subject_submission": "[{title}] Nouvelle soumission",
    "default_thank_you": "Merci !",
    "default_submit": "Envoyer",
    "all_translated": "Toutes les langues ont déjà une traduction.",
    "settings_confirmation_email": "Envoyer un e-mail de confirmation au visiteur",
    "settings_confirmation_email_help": "Envoie un e-mail de remerciement au visiteur après la soumission (nécessite un champ e-mail obligatoire)",
    "settings_double_opt_in": "Exiger la confirmation de l'e-mail (double opt-in)",
    "settings_double_opt_in_help": "Le visiteur doit cliquer sur un lien dans l'e-mail pour confirmer son adresse. Recommandé pour les formulaires d'abonnement."
  },
  "submissions": {
    "title": "Soumissions",
    "subtitle": "Voir les réponses pour",
    "no_submissions": "Aucune soumission pour le moment",
    "no_submissions_text": "Les soumissions apparaîtront ici lorsque les visiteurs rempliront le formulaire.",
    "no_results": "Aucune soumission ne correspond à ta recherche",
    "clear_search": "Effacer la recherche",
    "search_placeholder": "Rechercher par e-mail, nom, IP...",
    "delete_selected": "Supprimer la sélection",
    "clear_selection": "Annuler la sélection",
    "select_all": "Tout sélectionner",
    "bulk_delete_confirm": "Supprimer {count} soumissions sélectionnées ? Cette action est irréversible.",
    "export_csv": "Exporter en CSV",
    "export_excel": "Exporter en Excel",
    "all": "Toutes",
    "new": "Nouvelles",
    "read": "Lues",
    "archived": "Archivées",
    "spam": "Spam",
    "mark_as": "Marquer comme",
    "delete": "Supprimer",
    "delete_confirm": "Supprimer cette soumission ?",
    "date": "Date",
    "status": "Statut",
    "ip": "Adresse IP",
    "data": "Données",
    "detail_title": "Détail de la soumission",
    "back_to_list": "← Retour aux soumissions",
    "submitted_at": "Soumis",
    "user_agent": "Navigateur",
    "referrer": "Référent",
    "metadata": "Métadonnées",
    "agreed": "Accepté",
    "not_agreed": "Non accepté",
    "email_confirmed": "Confirmé",
    "email_pending": "En attente",
    "email_not_applicable": "N/A",
    "email_status": "Statut de l'e-mail"
  },
  "admin_bar": {
    "edit_page": "Modifier la page",
    "edit_post": "Modifier l'article",
    "page_builder": "Page Builder",
    "dashboard": "Tableau de bord"
  },
  "newsletter": {
    "title": "Newsletter",
    "subtitle": "Envoie des e-mails à tes abonnés et répondants de formulaires",
    "compose": "Nouvelle campagne",
    "compose_subtitle": "Crée une campagne e-mail et envoie-la à ton audience",
    "edit_campaign": "Modifier la campagne",
    "view_campaign": "Voir la campagne",
    "subject": "Objet",
    "subject_placeholder": "Objet de ta newsletter...",
    "content": "Contenu de l'e-mail",
    "audience": "Audience",
    "target_languages": "Filtrer par langue",
    "target_languages_help": "Sélectionne les langues à cibler. Laisse vide pour envoyer à tous.",
    "target_forms": "Filtrer par formulaire",
    "target_forms_help": "Sélectionne des formulaires spécifiques. Laisse vide pour inclure tous les formulaires avec champ e-mail.",
    "no_forms_with_email": "Aucun formulaire actif avec champ e-mail trouvé.",
    "recipients": "Destinataires",
    "languages": "Langues",
    "all_languages": "Toutes",
    "status_label": "Statut",
    "status_draft": "Brouillon",
    "status_sending": "Envoi...",
    "status_sent": "Envoyé",
    "status_failed": "Échoué",
    "date": "Date",
    "failed": "échoués",
    "actions": "Actions",
    "save_draft": "Enregistrer le brouillon",
    "save_first_hint": "Enregistre d'abord le brouillon pour débloquer l'envoi test et la livraison.",
    "test_send": "E-mail de test",
    "send_test": "Envoyer un test",
    "send_now": "Envoyer à tous les destinataires",
    "send_warning": "Cette action est irréversible. Les e-mails seront envoyés immédiatement.",
    "send_confirm": "Envoyer cette newsletter à {count} destinataires ? Cette action est irréversible.",
    "no_recipients_alert": "Aucun destinataire trouvé. Vérifie tes filtres de langue et de formulaire.",
    "sent_info": "Cette campagne a été envoyée.",
    "sent_at": "Envoyé le",
    "no_newsletters": "Aucune campagne pour le moment",
    "no_newsletters_text": "Crée ta première campagne e-mail pour atteindre tes abonnés.",
    "delete_confirm": "Supprimer cette campagne ? Cette action est irréversible.",
    "recipient_list": "Liste des destinataires",
    "recipient_list_help": "Ces personnes recevront l'e-mail. Décoche pour exclure.",
    "translate_recipients_help": "Destinataires pour la langue cible sélectionnée. Ceci est un aperçu — les paramètres d'audience sont hérités de la campagne originale.",
    "search_recipients": "Rechercher par nom ou e-mail...",
    "sort_email": "E-mail",
    "sort_name": "Nom",
    "sort_source": "Source",
    "select_all": "Tout sélectionner",
    "deselect_all": "Tout désélectionner",
    "import_csv": "Importer un CSV",
    "import_csv_help": "Fichier CSV avec colonnes : email, nom (facultatif)",
    "imported_badge": "importé",
    "excluded_badge": "exclu",
    "no_recipients_yet": "Aucun destinataire ne correspond aux filtres actuels.",
    "showing_recipients": "{shown} sur {total} affichés",
    "csv_imported": "{count} e-mails importés depuis le CSV",
    "test_banner": "E-MAIL DE TEST — Ceci est un aperçu, non envoyé aux abonnés",
    "unsubscribe_link": "Se désabonner",
    "confirmed_only": "Abonnés confirmés uniquement",
    "confirmed_only_help": "Envoyer uniquement aux destinataires ayant confirmé leur e-mail par double opt-in. Les abonnés importés et sans opt-in sont toujours inclus.",
    "confirmed_badge": "confirmé",
    "pending_badge": "en attente",
    "imported_source": "Import CSV",
    "search_placeholder": "Rechercher par objet...",
    "no_campaigns": "Aucune campagne ne correspond à tes filtres.",
    "try_adjusting": "Essaie d'ajuster tes filtres ou ta recherche.",
    "clear_filters": "Réinitialiser les filtres",
    "create_first": "Crée ta première campagne e-mail pour atteindre tes abonnés.",
    "create_first_btn": "Créer une campagne",
    "campaign_language_help": "La langue dans laquelle cette campagne est rédigée.",
    "duplicate_confirm": "Créer une copie de \"{title}\" ?",
    "ai_translate_help": "Crée une nouvelle campagne avec l'objet et le contenu traduits par l'IA (comme brouillon).",
    "translate_confirm": "Créer une traduction IA vers {lang} ?\n\nUn nouveau brouillon sera créé avec l'objet et le contenu traduits.",
    "manual_confirm": "Créer une copie pour {lang} ?\n\nLa campagne sera dupliquée avec tout son contenu. Tu pourras ensuite la traduire manuellement.\n\nAucun token IA ne sera utilisé.",
    "translate_campaign": "Créer une version traduite d'une campagne newsletter",
    "translated_subject_placeholder": "Objet traduit...",
    "source_campaign": "Campagne source",
    "ai_generate_help": "Générer l'objet et le contenu de l'e-mail avec l'IA"
  },
  "flash": {
    "setup_completed": "Configuration terminée avec succès ! Bienvenue sur AliothPress.",
    "setup_already_done": "La configuration est déjà terminée",
    "fields_required": "Tous les champs sont obligatoires",
    "passwords_mismatch": "Les mots de passe ne correspondent pas",
    "password_min_length": "Le mot de passe doit contenir au moins 8 caractères.",
    "invalid_credentials": "Nom d'utilisateur ou mot de passe incorrect",
    "logged_out": "Tu as été déconnecté(e)",
    "too_many_attempts": "Trop de tentatives de connexion. Patiente 15 minutes.",
    "post_created": "Article créé avec succès !",
    "post_updated": "Article mis à jour avec succès !",
    "post_deleted": "Article supprimé avec succès !",
    "page_created": "Page créée avec succès !",
    "page_updated": "Page mise à jour avec succès !",
    "page_deleted": "Page supprimée avec succès !",
    "translation_created": "Traduction créée avec succès ! Statut : {status}",
    "translation_exists": "La traduction en {language} existe déjà !",
    "slug_exists": "Le slug existe déjà (utilisé par un autre article ou page), un slug généré automatiquement sera utilisé",
    "image_uploaded": "Image importée et optimisée avec succès !",
    "image_updated": "Image mise à jour avec succès !",
    "image_deleted": "Image supprimée avec succès !",
    "file_uploaded": "Fichier importé avec succès !",
    "file_updated": "Fichier mis à jour avec succès !",
    "file_deleted": "Fichier supprimé avec succès !",
    "file_too_large": "Le fichier est trop volumineux. Taille maximale : {size} Mo.",
    "alt_text_required": "Le texte alternatif est obligatoire pour l'accessibilité !",
    "alt_text_required_short": "Le texte alternatif est obligatoire !",
    "invalid_file_type": "Type de fichier invalide. Formats autorisés : {formats}. Taille max. : {size} Mo.",
    "no_file_selected": "Aucun fichier sélectionné",
    "settings_saved": "Réglages enregistrés avec succès !",
    "email_test_sent": "E-mail de test envoyé à {email} !",
    "email_test_failed": "Échec de l'envoi de l'e-mail de test : {message}",
    "email_address_required": "Fournis une adresse e-mail pour le test.",
    "access_denied": "Accès refusé",
    "owner_only": "Seul le propriétaire du site peut effectuer cette action.",
    "permission_denied": "Tu n'as pas la permission d'accéder à cette page.",
    "invite_email_required": "Saisis une adresse e-mail.",
    "invite_email_exists": "Un utilisateur avec l'e-mail {email} existe déjà.",
    "invite_admin_owner_only": "Seul le propriétaire du site peut inviter des administrateurs.",
    "invite_sent": "Invitation envoyée à {email} !",
    "invite_email_failed": "Utilisateur créé mais l'envoi de l'e-mail a échoué : {message}. Partage ce lien manuellement : {url}",
    "invite_invalid": "Lien d'invitation invalide.",
    "invite_expired": "Cette invitation a expiré. Demande à l'administrateur d'en envoyer une nouvelle.",
    "username_password_required": "Le nom d'utilisateur et le mot de passe sont obligatoires.",
    "username_taken": "Ce nom d'utilisateur est déjà pris.",
    "account_created": "Compte créé ! Connecte-toi.",
    "cannot_change_owner_role": "Impossible de changer le rôle du propriétaire du site.",
    "owner_assign_admin_only": "Seul le propriétaire du site peut attribuer le rôle d'administrateur.",
    "role_changed": "{name} est maintenant {role}.",
    "cannot_delete_owner": "Impossible de supprimer le propriétaire du site.",
    "cannot_delete_self": "Tu ne peux pas supprimer ton propre compte.",
    "user_deleted": "L'utilisateur {name} a été supprimé.",
    "email_in_use": "Cet e-mail est déjà utilisé.",
    "profile_updated": "Profil mis à jour !",
    "menu_updated": "Menu {location} mis à jour avec succès !",
    "api_key_saved": "Clé API enregistrée avec succès !",
    "theme_activated": "Thème \"{name}\" activé !",
    "theme_not_found": "Thème introuvable",
    "display_mode_changed": "Mode d'affichage par défaut mis à jour.",
    "custom_css_saved": "CSS personnalisé enregistré.",
    "custom_css_url_not_supported": "Le CSS personnalisé ne prend pas en charge url() ni @import.",
    "robots_updated": "robots.txt mis à jour avec succès !",
    "backup_failed": "Échec de la sauvegarde : {error}",
    "backup_invalid_zip": "Fichier ZIP invalide",
    "backup_upload_zip": "Importe un fichier .zip de sauvegarde valide",
    "backup_suspicious": "Fichier de sauvegarde invalide : chemins suspects détectés",
    "backup_restored": "Sauvegarde restaurée avec succès : {items}. Redémarre le serveur.",
    "backup_no_data": "Le fichier de sauvegarde ne contenait pas de données reconnaissables",
    "backup_restore_failed": "Échec de la restauration : {error}",
    "password_reset_sent": "Si un compte avec cet e-mail existe, un lien de réinitialisation a été envoyé.",
    "password_reset_invalid": "Ce lien de réinitialisation est invalide ou a expiré.",
    "password_reset_done": "Ton mot de passe a été réinitialisé ! Connecte-toi avec ton nouveau mot de passe.",
    "email_enter_address": "Saisis ton adresse e-mail.",
    "favicon_invalid_format": "Importe une image PNG, JPG, SVG ou WebP.",
    "favicon_generated": "Tous les favicons ont été générés avec succès !",
    "favicon_generation_failed": "Échec de la génération des favicons : {error}",
    "favicon_svg_only": "SVG enregistré, mais les tailles matricielles n'ont pas pu être générées. Installe cairosvg pour une prise en charge complète du SVG.",
    "favicon_deleted": "Tous les favicons supprimés.",
    "form_created": "Formulaire créé avec succès !",
    "form_updated": "Formulaire mis à jour avec succès !",
    "form_deleted": "Formulaire supprimé avec succès !",
    "form_fields_invalid": "JSON des champs invalide. Vérifie la structure du formulaire.",
    "submission_deleted": "Soumission supprimée.",
    "submissions_bulk_deleted": "{count} soumissions supprimées.",
    "newsletter_saved": "Campagne enregistrée comme brouillon !",
    "newsletter_deleted": "Campagne supprimée.",
    "newsletter_test_sent": "E-mail de test envoyé à {email} !",
    "newsletter_test_failed": "Échec de l'e-mail de test : {message}",
    "newsletter_sent": "Newsletter envoyée à {count} destinataires ! ({failed} échoués)",
    "newsletter_already_sent": "Cette newsletter a déjà été envoyée.",
    "newsletter_no_recipients": "Aucun destinataire trouvé. Vérifie tes filtres de langue et de formulaire.",
    "session_expired": "Session expirée. Réessaie.",
    "current_password_wrong": "Le mot de passe actuel est incorrect.",
    "password_needs_uppercase": "Le mot de passe doit contenir au moins une lettre majuscule.",
    "password_needs_lowercase": "Le mot de passe doit contenir au moins une lettre minuscule.",
    "password_needs_digit": "Le mot de passe doit contenir au moins un chiffre.",
    "license_activated": "Licence activée avec succès !",
    "license_deactivated": "Licence désactivée.",
    "license_validation_failed": "La clé de licence n'a pas pu être validée. Elle a été enregistrée — la validation sera réessayée.",
    "update_success": "AliothPress mis à jour vers v{version} !",
    "update_failed": "Échec de la mise à jour : {error}",
    "too_many_requests": "Trop de requêtes. Patiente un instant et réessaie.",
    "db_connection_error": "Erreur de connexion à la base de données : {error}",
    "openpyxl_required": "openpyxl est requis pour l'export Excel. Installe-le avec : pip install openpyxl",
    "db_restore_warning": "Avertissement de restauration de la base de données : {warning}",
    "email_sent_ok": "E-mail envoyé avec succès !",
    "smtp_auth_failed": "Échec de l'authentification. Vérifie le nom d'utilisateur et le mot de passe SMTP.",
    "smtp_connect_failed": "Impossible de se connecter à {host}:{port}. Vérifie l'hôte et le port.",
    "smtp_recipient_rejected": "Adresse du destinataire rejetée : {email}",
    "smtp_error": "Erreur d'e-mail : {error}",
    "newsletter_duplicated": "Campagne dupliquée comme brouillon !",
    "newsletter_translation_exists": "Une traduction en {language} existe déjà pour cette campagne."
  },
  "email": {
    "reset_subject": "Réinitialisation du mot de passe",
    "reset_title": "Réinitialise ton mot de passe",
    "reset_intro": "Tu as demandé la réinitialisation du mot de passe de ton compte sur {site_name}.",
    "reset_your_username": "Nom d'utilisateur",
    "reset_button": "Réinitialiser le mot de passe",
    "reset_expires": "Ce lien est valable 1 heure.",
    "reset_ignore": "Si tu n'as pas fait cette demande, tu peux ignorer cet e-mail.",
    "test_subject": "E-mail de test de {site_name}",
    "test_subtitle": "Test de configuration e-mail",
    "test_body": "Tes paramètres e-mail fonctionnent correctement !",
    "test_body_detail": "Cet e-mail de test a été envoyé depuis le panneau d'administration de {site_name} pour vérifier la configuration SMTP.",
    "invite_subject": "Tu es invité(e) à rejoindre {site_name}",
    "invite_subtitle": "Tu es invité(e) !",
    "invite_body": "{inviter} t'a invité(e) à rejoindre <strong>{site_name}</strong> en tant que {role}.",
    "invite_cta": "Accepter l'invitation",
    "invite_expires": "Cette invitation expire dans 7 jours.",
    "invite_click_hint": "Clique sur le bouton ci-dessous pour créer ton compte :",
    "role_admin": "Administrateur",
    "role_editor": "Rédacteur",
    "sent_by": "Envoyé par {site_name}",
    "confirm_subject": "Confirme ton e-mail — {site_name}",
    "confirm_title": "Confirme ton adresse e-mail",
    "confirm_intro": "Merci d'avoir soumis le formulaire \"{form_title}\". Clique sur le bouton ci-dessous pour confirmer ton adresse e-mail.",
    "confirm_button": "Confirmer l'e-mail",
    "confirm_ignore": "Si tu n'as pas soumis ce formulaire, tu peux ignorer cet e-mail.",
    "confirmation_subject": "Merci pour ta soumission — {site_name}",
    "confirmation_title": "Merci !",
    "confirmation_body": "Nous avons bien reçu ta soumission pour le formulaire \"{form_title}\" sur {site_name}. Nous te recontacterons si nécessaire."
  },
  "footer": {
    "all_rights_reserved": "Tous droits réservés."
  },
  "api": {
    "too_many_requests": "Trop de requêtes. Patiente un instant et réessaie.",
    "setup_already_completed": "La configuration est déjà terminée",
    "setup_db_fields_required": "L'hôte, le nom de la base de données et l'utilisateur sont obligatoires",
    "setup_connected": "Connecté à \"{db_name}\" sur {host}:{port}",
    "setup_timeout": "Délai d'attente dépassé. Réessaie ou installe manuellement.",
    "no_file_uploaded": "Aucun fichier importé",
    "empty_file": "Fichier vide",
    "form_not_accepting": "Ce formulaire n'accepte pas de soumissions.",
    "form_inactive": "Formulaire inactif",
    "too_many_submissions": "Trop de soumissions. Réessaie plus tard.",
    "no_blocks_data": "Aucune donnée de blocs",
    "slug_empty": "Le slug ne peut pas être vide",
    "slug_available": "Le slug est disponible",
    "missing_source_or_lang": "source_id ou target_lang manquant",
    "missing_source_id": "source_id manquant",
    "source_not_found": "Contenu source introuvable",
    "could_not_parse": "Impossible de traiter la réponse de traduction de l'IA",
    "api_key_not_configured": "Clé API non configurée. Va dans les paramètres de l'Assistant IA.",
    "unknown_task": "Tâche inconnue",
    "access_denied": "Accès refusé",
    "backup_failed": "Sauvegarde échouée. Mise à jour annulée par sécurité.",
    "download_failed": "Téléchargement échoué ou somme de contrôle incorrecte.",
    "slug_taken": "Le slug \"/{slug}\" est déjà utilisé par : {title} ({language})",
    "translation_already_exists": "Une traduction en {language} existe déjà",
    "apt_update_failed": "Échec de apt-get update : {error}",
    "postgres_install_failed": "Échec de l'installation de PostgreSQL : {error}",
    "pg_ready": "PostgreSQL est prêt ! Base de données \"{db_name}\" créée.",
    "slug_invalid_chars": "Caractères invalides. Suggestion : \"{slug}\"",
    "translation_copy_created": "Copie pour {language} créée comme brouillon. Tu peux maintenant la traduire manuellement.",
    "duplicate_created": "Copie créée comme brouillon : \"{title}\"",
    "form_translation_created": "Traduction du formulaire en {language} créée !",
    "ai_translation_created": "Traduction en {language} créée comme brouillon !",
    "api_error": "Erreur API : {code}",
    "api_error_detail": "Erreur API {code} : {detail}",
    "no_data_provided": "Aucune donnée fournie.",
    "unknown_provider": "Fournisseur IA inconnu : {provider}",
    "newsletter_translation_created": "Traduction de la newsletter en {language} créée comme brouillon !",
    "newsletter_duplicate_created": "Campagne dupliquée comme brouillon : \"{title}\""
  },
  "webmcp": {
    "section_title": "Accès des agents IA (WebMCP)",
    "section_help": "Laisse les agents IA utiliser ton site comme des outils structurés au lieu de deviner où cliquer. Fonctionne avec les navigateurs agentiques (l'agent qui utilise ces outils aujourd'hui est Gemini dans Chrome ; d'autres devraient suivre). Fonctionnalité expérimentale du navigateur – nécessite HTTPS, et l'agent agit toujours dans les limites des droits de l'utilisateur actuel.",
    "admin_label": "Panneau d'administration",
    "admin_help": "Permets à un utilisateur connecté de confier des tâches d'administration (brouillons, traductions, blocs de page, menus) à son agent. Chaque écriture demande une confirmation. Désactive pour révoquer instantanément.",
    "public_label": "Outils publics (recherche + formulaires)",
    "public_help": "Enregistre la recherche du site comme outil d'agent sur chaque page publique, plus des outils de formulaire sur les pages contenant un formulaire. L'agent d'un visiteur peut trouver du contenu et remplir et envoyer des formulaires — le visiteur confirme avant tout envoi.",
    "polyfill_label": "Charger le polyfill de compatibilité",
    "polyfill_help": "Ajoute l'API modelContext sur les navigateurs qui ne la proposent pas encore (charge un petit script depuis un CDN). Laisse désactivé si tu ne veux aucune requête tierce.",
    "token_label": "Jeton d'origin trial",
    "token_placeholder": "Colle ton jeton Chrome Origin Trial pour ce domaine",
    "token_help": "Nécessaire pour exécuter WebMCP auprès de vrais visiteurs en production (jusqu'à son arrivée dans la version stable de Chrome). Enregistre le domaine de ton site pour l'origin trial WebMCP dans Chrome et colle le jeton ici. Sans lui, l'accès des agents ne fonctionne que pour les utilisateurs qui activent manuellement le drapeau du navigateur. → developer.chrome.com/origintrials",
    "saved": "Paramètres d'accès des agents enregistrés.",
    "confirm_create_post": "Créer l'article \"{title}\" en tant que {status} ?",
    "confirm_create_page": "Créer la page \"{title}\" en tant que {status} ?",
    "confirm_create_builder_page": "Créer la page \"{title}\" (Page Builder) en tant que {status} ?",
    "confirm_build_menu": "Remplacer le menu {location} par {count} élément(s) ?",
    "confirm_set_page_blocks": "Remplacer la mise en page de la page #{id} par les nouveaux blocs ?",
    "declined": "Annulé – rien n'a été modifié."
  },
  "plugins": {
    "title": "Plugins",
    "subtitle": "Installer, licencier et gérer les plugins.",
    "installed": "Plugins installés",
    "no_plugins": "Aucun plugin installé pour le moment.",
    "upload_title": "Installer un plugin depuis un ZIP",
    "upload_help": "Téléversez un fichier ZIP de plugin. Les nouveaux plugins sont désactivés par défaut — activez-les après l’installation.",
    "install_btn": "Installer",
    "third_party_warning": "Un plugin s’exécute avec les mêmes permissions que le CMS lui-même. N’installez que des plugins provenant de sources fiables.",
    "core_license_note": "Les plugins nécessitent une licence AliothPress valide. Activez d’abord votre licence dans les Paramètres.",
    "restart_required": "Les modifications prennent effet après un redémarrage.",
    "restart_now": "Redémarrer maintenant",
    "restart_scheduled": "Redémarrage planifié — le site sera de retour dans quelques secondes.",
    "status_active": "Actif",
    "status_disabled": "Désactivé",
    "status_needs_license": "Licence requise",
    "status_needs_core_license": "Licence CMS requise",
    "status_pending_restart": "Redémarrage requis",
    "status_error": "Erreur",
    "enable": "Activer",
    "disable": "Désactiver",
    "delete": "Supprimer",
    "delete_confirm": "Supprimer ce plugin ? Ses fichiers seront supprimés. Cette action est irréversible.",
    "license_key": "Clé de licence du plugin",
    "activate_license": "Activer la licence",
    "license_valid": "Licence active",
    "license_invalid": "La clé de licence n’est pas valide.",
    "enabled_ok": "Plugin activé.",
    "disabled_ok": "Plugin désactivé.",
    "installed_ok": "Plugin installé.",
    "removed_ok": "Plugin supprimé.",
    "err_not_zip": "Veuillez téléverser un fichier ZIP valide.",
    "err_too_big": "Le fichier du plugin est trop volumineux.",
    "err_invalid_plugin": "Le fichier ZIP n’est pas un plugin valide.",
    "err_install_failed": "L’installation du plugin a échoué.",
    "err_not_found": "Plugin introuvable.",
    "err_empty_key": "Veuillez saisir une clé de licence.",
    "check_updates": "Rechercher des mises à jour",
    "updates_found": "Mises à jour de plugins disponibles : {count}.",
    "up_to_date": "Tous les plugins sont à jour.",
    "update_check_failed": "Échec de la recherche de mises à jour : {error}",
    "update_available": "Mise à jour disponible : v{version}",
    "update_now": "Mettre à jour vers v{version}",
    "changelog": "Nouveautés",
    "update_ok": "Plugin mis à jour vers v{version}.",
    "update_failed": "Échec de la mise à jour du plugin — le paquet n'a pas pu être téléchargé ou la somme de contrôle ne correspondait pas.",
    "err_no_update": "Aucune mise à jour n'est disponible pour ce plugin.",
    "update_needs_cms": "Cette mise à jour nécessite AliothPress {version} ou plus récent. Veuillez d'abord mettre à jour le CMS.",
    "restart_in_progress": "Le serveur redémarre pour appliquer vos modifications. Cette page se rechargera automatiquement dans quelques secondes.",
    "available_title": "Plugins disponibles",
    "available_help": "Publiés sur votre serveur de mise à jour — installation en un clic. Chaque téléchargement est vérifié par somme de contrôle avant décompression.",
    "catalog_refresh": "Actualiser le catalogue",
    "catalog_refreshed": "Catalogue de plugins actualisé.",
    "catalog_error": "Impossible d'actualiser le catalogue de plugins : {error}",
    "catalog_empty": "Rien de nouveau sur le serveur de mise à jour — tout ce qui est publié est déjà installé.",
    "catalog_search": "Rechercher…",
    "install_from_server": "Installer",
    "catalog_install_failed": "Le téléchargement depuis le serveur de mise à jour a échoué. Vérifiez le serveur et réessayez.",
    "catalog_activate_hint": "Ce plugin nécessite sa clé de licence — collez-la sur la carte du plugin ci-dessous et activez-la.",
    "catalog_free": "gratuit",
    "catalog_license": "clé de licence requise",
    "catalog_requires_cms": "Nécessite AliothPress {version}+",
    "show_all": "Tout afficher ({count})",
    "show_less": "Afficher moins",
    "err_invalid_id": "Identifiant de plugin invalide : {pid}",
    "err_id_mismatch": "L'identifiant du manifeste {pid} ne correspond pas au dossier {folder}",
    "err_missing_init": "Fichier __init__.py manquant",
    "err_needs_cms": "Nécessite AliothPress {min_ver} ou plus récent (version installée : {current}). Veuillez d'abord mettre à jour le CMS.",
    "err_reserved_setting": "Plugin '{plugin}' : le nom de réglage '{key}' est réservé par le cœur — il y stocke l'état d'activation et les données de licence du plugin. Choisissez un autre nom, p. ex. 'tracking' au lieu de 'enabled'."
  }
}