{
  "language": {
    "display_name": "Français (French)",
    "select_language": "Sélectionner la langue :",
    "current_language": "Langue actuelle : {language}",
    "restart_required": "Les modifications de langue prendront effet après le redémarrage de l'application.",
    "english": "Anglais",
    "spanish": "Espagnol",
    "portuguese": "Portugais",
    "russian": "Russe",
    "chinese": "Chinois",
    "german": "Allemand",
    "french": "Français",
    "hindi": "Hindi",
    "indonesian": "Indonésien",
    "turkish": "Turc",
    "polish": "Polonais",
    "italian": "Italien",
    "arabic": "Arabe",
    "japanese": "Japonais",
    "help_text": "Sélectionnez votre langue préférée pour l'interface.",
    "restart_notice": "Le changement de langue prendra effet après le redémarrage de l'application."
  },
  "app": {
    "title": "YTSage",
    "version": "v{version}",
    "ready": "Prêt"
  },
  "formats": {
    "show_formats": "Afficher les formats :",
    "video_format": "Format vidéo :",
    "audio_format": "Format audio :",
    "no_formats": "Aucun format disponible",
    "loading": "Chargement des formats...",
    "select": "Sélectionner",
    "quality": "Qualité",
    "extension": "Extension",
    "resolution": "Résolution",
    "file_size": "Taille du fichier",
    "codec": "Codec",
    "audio": "Audio",
    "fps": "IPS",
    "hdr": "HDR",
    "will_merge_audio": "L'audio sera fusionné",
    "has_audio": "✓ Contient de l'audio",
    "audio_only": "Audio uniquement",
    "best_4k": "Meilleure (4K)",
    "best_2k": "Meilleure (2K)",
    "high_1080p": "Haute (1080p)",
    "high_720p": "Haute (720p)",
    "medium_480p": "Moyenne (480p)",
    "low_quality": "Qualité faible",
    "best_audio": "Meilleur audio",
    "high_audio": "Audio élevé",
    "medium_audio": "Audio moyen",
    "low_audio": "Audio faible",
    "audio_only_resolution": "Audio uniquement"
  },
  "buttons": {
    "download": "Télécharger",
    "pause": "Pause",
    "resume": "Reprendre",
    "cancel": "Annuler",
    "browse": "Parcourir",
    "clear": "Effacer",
    "ok": "OK",
    "apply": "Appliquer",
    "close": "Fermer",
    "run_command": "Exécuter la commande",
    "custom_command_help": "Aide",
    "about": "À propos",
    "analyze": "Analyser",
    "paste_url": "Coller l'URL",
    "select_videos": "Sélectionner les vidéos...",
    "video": "Vidéo",
    "audio_only": "Audio uniquement",
    "custom_options": "Options personnalisées",
    "trim_video": "Découper la vidéo",
    "download_settings": "Paramètres de téléchargement",
    "update": "Mettre à jour yt-dlp",
    "select_defaults": "Sélectionner par défaut",
    "select_all": "Tout sélectionner",
    "deselect_all": "Tout désélectionner",
    "open_folder": "Ouvrir l'emplacement du dossier",
    "history": "Historique"
  },
  "dialogs": {
    "custom_options": "Options personnalisées",
    "settings": "Paramètres",
    "select_folder": "Sélectionner le dossier de téléchargement",
    "sponsorblock_categories": "Catégories SponsorBlock",
    "sponsorblock_description": "Choisissez les types de segments vidéo à supprimer automatiquement pendant le téléchargement.\nSponsorBlock utilise des données soumises par la communauté pour identifier ces segments.",
    "select_subtitles": "Sélectionner les sous-titres",
    "filter_languages_placeholder": "Filtrer les langues (ex: en, fr)...",
    "no_subtitles_available": "Aucun sous-titre disponible",
    "matching": "correspondant",
    "ytdlp_log_title": "Journal yt-dlp"
  },
  "tabs": {
    "cookies": "Se connecter avec des cookies",
    "custom_command": "Commande personnalisée",
    "proxy": "Proxy",
    "language": "Langue",
    "updater": "Mise à jour"
  },
  "cookies": {
    "help_text": "Choisissez comment fournir les cookies pour l'authentification.\nCeci permet de télécharger des vidéos privées et des fichiers audio de haute qualité.",
    "cookie_source": "Source des cookies",
    "use_cookie_file": "Utiliser un fichier de cookies",
    "extract_from_browser": "Extraire du navigateur",
    "recommended": "Recommandé",
    "cookie_file": "Fichier de cookies",
    "cookie_file_placeholder": "Chemin vers le fichier cookies.txt...",
    "browser_selection": "Sélection du navigateur",
    "browser_help": "Sélectionnez le navigateur depuis lequel extraire les cookies :",
    "browser_label": "Navigateur :",
    "profile_label": "Profil :",
    "profile_placeholder": "Par défaut",
    "browser_extract_message": "Les cookies du navigateur seront extraits lors de l'application",
    "file_selected_message": "Fichier de cookies sélectionné - Cliquez sur OK pour appliquer",
    "select_file_title": "Sélectionner le fichier de cookies",
    "file_filter": "Fichiers de cookies (*.txt *.lwp)",
    "file_selected_title": "Fichier de cookies appliqué",
    "file_applied_message": "Fichier de cookies appliqué : {path}",
    "browser_selected_title": "Cookies du navigateur appliqués",
    "browser_applied_message": "Les cookies du navigateur seront extraits de : {browser}",
    "cleared_title": "Cookies effacés",
    "cleared_message": "Les paramètres des cookies ont été effacés",
    "active_browser": "✓ Actifs : cookies du navigateur ({browser})",
    "active_file": "✓ Actif : fichier cookies ({file})",
    "none_active": "○ Aucun cookie actif"
  },
  "custom_command": {
    "help_text": "Entrez votre commande yt-dlp personnalisée ci-dessous. L'URL actuelle sera automatiquement ajoutée.<br><br>Pour la liste complète des options et exemples d'utilisation <a href=\"{docs_url}\">cliquez ici pour voir la documentation officielle yt-dlp</a>.<br><br>Note : Le chemin de téléchargement et le modèle de nom de fichier sont gérés automatiquement.",
    "input_label": "Arguments yt-dlp :",
    "input_placeholder": "Entrez les arguments yt-dlp ici...\n\nEx : --extract-audio --audio-format mp3",
    "output_label": "Sortie de la commande :",
    "output_placeholder": "La sortie de la commande apparaîtra ici...",
    "command_placeholder": "Entrer une commande yt-dlp personnalisée...",
    "command_help": "Espaces réservés disponibles :\n{url} - URL de la vidéo\n{output} - Dossier de sortie\n\nExemple : --write-info-json --write-thumbnail",
    "full_command": "🔧 Commande complète : {command}",
    "command_success": "✅ Commande personnalisée exécutée avec succès !",
    "command_failed": "❌ Commande échouée avec le code de sortie {code}",
    "command_error": "❌ Erreur lors de l'exécution de la commande personnalisée : {error}",
    "error_no_url": "❌ Erreur : aucune URL fournie. Veuillez saisir une URL dans la fenêtre principale.",
    "error_no_command": "❌ Erreur : aucune commande fournie. Veuillez saisir des arguments yt-dlp.",
    "executing": "🚀 Exécution de la commande yt-dlp personnalisée",
    "url_label": "📍 URL : {url}",
    "args_label": "⚙️  Arguments : {command}",
    "download_path_label": "📁 Chemin de téléchargement : {path}",
    "separator": "=================================================="
  },
  "proxy": {
    "help_text": "Configurer les paramètres proxy pour les téléchargements. Laisser vide pour une connexion directe.",
    "main_proxy": "Proxy principal",
    "main_proxy_help": "Serveur proxy principal pour tous les téléchargements. Prend en charge les protocoles HTTP/HTTPS et SOCKS5.",
    "proxy_url_label": "URL du proxy :",
    "proxy_url_placeholder": "http://proxy:port ou socks5://proxy:port",
    "proxy_examples": "Exemples :\n• HTTP : http://proxy.example.com:8080\n• SOCKS5 : socks5://proxy.example.com:1080",
    "geo_proxy": "Proxy de contournement géographique",
    "geo_proxy_help": "Proxy secondaire spécialement pour contourner les restrictions géographiques.",
    "geo_proxy_url_label": "URL du proxy de contournement géographique :",
    "geo_proxy_url_placeholder": "http://geo-proxy:port",
    "clear_main_proxy": "Effacer le proxy principal",
    "clear_geo_proxy": "Effacer le proxy géographique",
    "proxy_url": "URL du proxy",
    "proxy_placeholder": "http://proxy:port ou socks5://proxy:port",
    "geo_bypass": "Proxy de contournement géographique (pour les restrictions géographiques)",
    "geo_bypass_placeholder": "http://proxy:port pour contourner le géo-blocage",
    "invalid_main_url": "Format d'URL de proxy principal invalide",
    "invalid_geo_url": "Format d'URL de proxy géographique invalide",
    "main_configured": "Proxy principal configuré",
    "geo_configured": "Proxy géographique configuré",
    "set_title": "Proxy défini",
    "set_message": "Proxy principal défini et enregistré : {proxy}",
    "geo_set_title": "Proxy géo défini",
    "geo_set_message": "Proxy de vérification géographique défini et enregistré : {proxy}",
    "cleared_title": "Paramètres proxy effacés",
    "cleared_message": "Tous les paramètres proxy ont été effacés et enregistrés.",
    "saved_main": "Proxy principal enregistré : {proxy}",
    "saved_geo": "Proxy géo enregistré : {proxy}"
  },
  "download": {
    "preparing": "Préparation du téléchargement...",
    "starting": "🚀 Démarrage du téléchargement...",
    "fetching_info": "🔍 Récupération des informations vidéo...",
    "preparing_streams": "🎯 Préparation des flux vidéo...",
    "downloading_audio": "⏬ Téléchargement audio...",
    "downloading_video": "⏬ Téléchargement vidéo...",
    "downloading_subtitle": "⏬ Téléchargement des sous-titres...",
    "downloading": "⏬ Téléchargement...",
    "completed": "✅ Téléchargement terminé !",
    "video_completed": "✅ Téléchargement vidéo terminé !",
    "audio_completed": "✅ Téléchargement audio terminé !",
    "subtitle_completed": "✅ Téléchargement des sous-titres terminé !",
    "completed_cleaning": "✅ Téléchargement terminé ! Nettoyage...",
    "cancelled": "Téléchargement annulé",
    "processing_playlist": "📋 Traitement des données de la playlist...",
    "paused": "Téléchargement en pause",
    "resumed": "Téléchargement repris",
    "merging_formats": "✨ Post-traitement : Fusion des formats...",
    "removing_sponsor_segments": "✨ Post-traitement : Suppression des segments sponsorisés...",
    "speed": "Vitesse",
    "eta": "Temps restant",
    "please_enter_url": "Veuillez d'abord entrer une URL.",
    "please_set_path": "Veuillez d'abord définir un chemin de téléchargement.",
    "please_enter_url_and_path": "Veuillez entrer une URL et définir un chemin de téléchargement.",
    "please_select_format": "Veuillez d'abord sélectionner un format.",
    "downloading_fallback": "⚡ Téléchargement..."
  },
  "update": {
    "title": "Mettre à jour yt-dlp",
    "checking": "Vérification des mises à jour...",
    "update_available": "Mise à jour disponible !\nVersion actuelle : {current}\nDernière version : {latest}",
    "up_to_date": "yt-dlp est à jour (Version {version})",
    "could_not_determine": "Impossible de déterminer les versions.",
    "error_comparing": "Erreur lors de la comparaison des versions : {error}",
    "update_available_failed": "Mise à jour disponible ! (Comparaison échouée)\nActuelle : {current}\nDernière : {latest}",
    "updating": "Mise à jour...",
    "initializing": "🚀 Initialisation du processus de mise à jour...",
    "checking_current": "🔍 Vérification de l'installation actuelle...",
    "found_at": "📍 yt-dlp trouvé à : {path}",
    "error_getting_path": "❌ Erreur lors de la récupération du chemin yt-dlp : {error}",
    "updating_binary": "📦 Mise à jour du binaire yt-dlp géré par l'application...",
    "update_failed": "❌ Échec de la mise à jour yt-dlp. Veuillez réessayer ou vérifier votre connexion Internet.",
    "binary_updated": "✅ Binaire mis à jour avec succès !",
    "update_failed_stderr": "❌ Échec de la mise à jour yt-dlp : {error}",
    "update_timeout": "❌ Délai d'attente de la mise à jour yt-dlp dépassé.",
    "unexpected_error": "❌ Erreur inattendue lors de la mise à jour : {error}",
    "already_up_to_date": "✅ yt-dlp est déjà à jour !",
    "update_success": "✅ yt-dlp a été mis à jour avec succès !",
    "already_latest": "yt-dlp est à jour (version {version})",
    "network_error": "❌ Erreur réseau pendant la mise à jour : {error}",
    "general_error": "❌ La mise à jour a échoué : {error}",
    "update_in_progress_title": "Mise à jour en cours",
    "update_in_progress_message": "yt-dlp est en cours de mise à jour. Veuillez patienter un instant."
  },
  "about": {
    "title": "À propos de YTSage",
    "version": "Version {version}",
    "description": "Téléchargeur YouTube moderne avec une interface PySide6 propre.",
    "author": "Par : {author}",
    "github": "GitHub : {repo}",
    "system_info": "Informations système",
    "loading": "🔄 Chargement des informations système...",
    "refresh": "🔄",
    "refreshing": "🔄 Actualisation...",
    "refresh_failed": "Échec de l'actualisation",
    "refresh_failed_message": "Impossible d'actualiser les informations de version.",
    "detected": "✓ Détecté",
    "missing": "✗ Manquant",
    "not_available": "Non disponible"
  },
  "time_range": {
    "title": "Découper la vidéo",
    "time_range_group": "Plage horaire",
    "start_time": "Heure de début (HH:MM:SS)",
    "end_time": "Heure de fin (HH:MM:SS)",
    "start_placeholder": "00:00:00",
    "end_placeholder": "00:00:00",
    "start_time_placeholder": "Heure de début (HH:MM:SS)",
    "end_time_placeholder": "Heure de fin (HH:MM:SS)",
    "force_keyframes": "Forcer les images clés aux points de coupe",
    "help_text": "Définissez les heures de début et de fin pour découper la vidéo.\nLaissez vide pour télécharger la vidéo complète.",
    "invalid_format": "Format d'heure invalide. Utilisez le format HH:MM:SS.",
    "start_after_end": "L'heure de début ne peut pas être après l'heure de fin."
  },
  "settings": {
    "title": "Paramètres de téléchargement",
    "download_path": "Chemin de téléchargement",
    "browse": "Parcourir...",
    "speed_limit": "Limite de vitesse",
    "speed_limit_placeholder": "Aucune",
    "auto_update_ytdlp": "Mise à jour automatique de yt-dlp",
    "enable_auto_updates": "Activer les mises à jour automatiques de yt-dlp",
    "update_frequency": "Fréquence de mise à jour :",
    "check_startup": "Vérifier à chaque démarrage (minimum 1 heure entre les vérifications)",
    "check_daily": "Vérifier quotidiennement",
    "check_weekly": "Vérifier hebdomadairement",
    "check_updates_now": "Mettre à jour yt-dlp",
    "update_check_title": "Vérification de mise à jour",
    "could_not_determine_version": "Impossible de déterminer la version actuelle de yt-dlp.",
    "update_available_dialog": "Mise à jour disponible !\n\nActuelle : {current}\nDernière : {latest}\n\nCliquez sur OK pour continuer la mise à jour.",
    "up_to_date_dialog": "yt-dlp est à jour !\n\nVersion actuelle : {version}",
    "error_checking_updates": "Erreur lors de la vérification des mises à jour : {error}",
    "settings_saved_title": "Paramètres sauvegardés",
    "settings_saved_message": "Les paramètres de mise à jour automatique ont été sauvegardés avec succès !",
    "error_title": "Erreur",
    "failed_save_settings": "Échec de la sauvegarde des paramètres de mise à jour automatique.",
    "error_saving_settings": "Erreur lors de la sauvegarde des paramètres de mise à jour automatique : {error}",
    "ytdlp_channel": "Canal de version yt-dlp",
    "ytdlp_channel_stable": "Stable (Versions testées)",
    "ytdlp_channel_nightly": "Nightly (Mises à jour quotidiennes, recommandé par yt-dlp)",
    "ytdlp_channel_description": "Choisissez entre les versions stables et nightly. Les versions nightly sont mises à jour quotidiennement avec les dernières corrections et fonctionnalités. Vous pouvez changer de canal à tout moment.",
    "ytdlp_switching_channel": "Passage au canal {channel}...",
    "ytdlp_channel_switched": "✅ Passage réussi au canal {channel} !",
    "ytdlp_channel_switch_failed": "❌ Échec du changement de canal : {error}",
    "ytdlp_current_channel": "Canal actuel : {channel}",
    "auto_update_title": "Paramètres de mise à jour automatique",
    "auto_update_header": "🔄 Paramètres de mise à jour automatique",
    "auto_update_description": "Configurez les mises à jour automatiques pour yt-dlp afin de vous assurer d'avoir toujours les dernières fonctionnalités et corrections de bogues.",
    "current_status": "État actuel",
    "current_version_label": "Version actuelle de yt-dlp : Vérification...",
    "last_check_label": "Dernière vérification de mise à jour : Jamais",
    "next_check_label": "Prochaine vérification : Basée sur les paramètres",
    "manual_check_button": "🔍 Vérifier les mises à jour maintenant",
    "update_frequency_group": "Fréquence de mise à jour",
    "save_settings": "Sauvegarder les paramètres",
    "settings_saved_successfully": "✅ Paramètres sauvegardés avec succès !",
    "error_saving": "❌ Erreur lors de la sauvegarde des paramètres : {error}",
    "output_format_settings": "Paramètres du format de sortie",
    "force_output_format": "Forcer le format de sortie lors de la fusion",
    "preferred_format": "Format préféré :",
    "force_format_help": "Lorsqu'activé, les vidéos fusionnées seront converties vers votre format préféré. Désactivez pour laisser yt-dlp décider automatiquement.",
    "format_mp4": "MP4 (Plus compatible)",
    "format_webm": "WebM (Moderne, ouvert)",
    "format_mkv": "MKV (Riche en fonctionnalités)",
    "audio_format_settings": "Paramètres du format audio",
    "force_audio_format": "Forcer le format audio pour les téléchargements audio uniquement",
    "preferred_audio_format": "Format audio préféré :",
    "force_audio_format_help": "Lorsqu'activé, les téléchargements audio uniquement seront convertis dans votre format préféré. Cela s'applique uniquement lors du téléchargement de formats audio.",
    "audio_format_best": "Meilleur (Pas de conversion)",
    "audio_format_aac": "AAC (Bon pour l'édition)",
    "audio_format_mp3": "MP3 (Universel)",
    "audio_format_flac": "FLAC (Sans perte)",
    "audio_format_wav": "WAV (Non compressé)",
    "audio_format_opus": "Opus (Efficace)",
    "audio_format_m4a": "M4A (Apple)",
    "audio_format_vorbis": "Vorbis (Ouvert)"
  },
  "main_ui": {
    "url_placeholder": "Entrer l'URL de la vidéo ou de la playlist YouTube",
    "merge_subtitles": "Fusionner les sous-titres",
    "save_thumbnail": "Sauvegarder la miniature",
    "save_description": "Sauvegarder la description",
    "embed_chapters": "Intégrer les chapitres",
    "subtitles_selected": "{count} sélectionné(s)",
    "all_selected": "Tous sélectionnés",
    "select_videos_all": "Sélectionner les vidéos... (Tous sélectionnés)",
    "please_enter_url": "Veuillez d'abord entrer une URL",
    "error_title": "Erreur",
    "cookie_file_selected_title": "Fichier de cookies sélectionné",
    "cookie_file_selected_message": "Fichier de cookies sélectionné : {path}",
    "browser_cookies_selected_title": "Cookies de navigateur sélectionnés",
    "browser_cookies_selected_message": "Les cookies du navigateur seront extraits depuis : {browser}",
    "error_no_format_info": "Erreur : Aucune information de format disponible.",
    "error_extract_info": "Erreur : Impossible d'extraire les informations de base de la vidéo. Veuillez vérifier votre lien.",
    "analyzing_preparing": "Préparation de la requête...",
    "analyzing_extracting_basic": "Extraction des informations de base...",
    "analyzing_extracting_detailed": "Extraction des informations détaillées...",
    "analyzing_processing_video": "Traitement des données vidéo...",
    "analyzing_processing_formats": "Traitement des formats...",
    "analyzing_loading_thumbnail": "Chargement de la miniature...",
    "analyzing_processing_subtitles": "Traitement des sous-titres...",
    "analyzing_updating_table": "Mise à jour du tableau des formats...",
    "analysis_complete": "Analyse terminée !",
    "analyzing_extracting_ytdlp": "Extraction d'informations...",
    "analyzing_fetching_first_video": "Récupération des formats pour la première vidéo...",
    "analyzing_processing_data": "Traitement des données...",
    "analyzing_processing_formats_ytdlp": "Traitement des formats...",
    "analyzing_loading_thumbnail_ytdlp": "Chargement de la miniature...",
    "analyzing_processing_subtitles_ytdlp": "Traitement des sous-titres...",
    "select_subtitles": "Sélectionner les sous-titres...",
    "sponsorblock_categories": "Catégories SponsorBlock...",
    "invalid_url_or_enter": "URL invalide ou veuillez entrer une URL.",
    "zero_selected": "0 sélectionné",
    "analyze_first_tooltip": "Veuillez d'abord analyser la vidéo",
    "audio_mode_disabled": "Non disponible en mode audio uniquement",
    "select_subtitles_first": "Veuillez d'abord sélectionner les sous-titres",
    "settings_tooltip": "Chemin actuel : {path}\nLimite de vitesse : {speed_limit}",
    "speed_limit_none": "Aucune",
    "open_folder_error": "Impossible d’ouvrir le dossier : {error}",
    "time_range_set": "Section définie : {section}"
  },
  "sponsorblock": {
    "sponsor": "Sponsor",
    "sponsor_desc": "Publicité payante, recommandations payantes et publicité directe",
    "selfpromo": "Auto-promotion non payante",
    "selfpromo_desc": "Publicité non payante pour le contenu propre du créateur",
    "interaction": "Rappel d'interaction",
    "interaction_desc": "Les spectateurs sont invités à aimer, s'abonner ou suivre sur les réseaux sociaux",
    "intro": "Intro",
    "intro_desc": "Introduction de la vidéo qui peut être ignorée",
    "outro": "Outro/Cartes de fin",
    "outro_desc": "Crédits ou fin de la vidéo",
    "preview": "Aperçu/Récapitulatif",
    "preview_desc": "Bref récapitulatif des vidéos précédentes ou aperçu du contenu à venir",
    "music_offtopic": "Section hors-musique",
    "music_offtopic_desc": "Uniquement pour les vidéos musicales. Marque les sections non-musicales",
    "filler": "Digression de remplissage",
    "filler_desc": "Scènes de diversion ajoutées uniquement comme remplissage ou pour l'humour"
  },
  "video_info": {
    "channel": "Chaîne",
    "views": "👁 Vues",
    "likes": "👍 J'aime",
    "upload_date": "📅 Date de mise en ligne",
    "duration": "⏱ Durée",
    "unknown_channel": "Chaîne inconnue",
    "unknown_date": "Date inconnue",
    "unknown_title": "Titre inconnu"
  },
  "command": {
    "running": "En cours...",
    "run_command": "Exécuter la commande"
  },
  "selection": {
    "none_selected": "0 sélectionné",
    "one_selected": "1 catégorie sélectionnée",
    "count_selected": "{count} sélectionné(s)"
  },
  "status": {
    "ready": "Prêt",
    "file_exists": "⚠️ Le fichier existe déjà",
    "video_file_exists": "⚠️ Le fichier vidéo existe déjà",
    "audio_file_exists": "⚠️ Le fichier audio existe déjà",
    "subtitle_file_exists": "⚠️ Le fichier de sous-titres existe déjà",
    "cancelling": "Annulation du téléchargement...",
    "thumbnail_saved": "✅ Miniature enregistrée : {filename}",
    "thumbnail_error": "❌ Erreur de miniature : {error}",
    "thumbnail_no_image": "Aucune miniature disponible à enregistrer"
  },
  "errors": {
    "playlist_no_videos": "Erreur : La playlist ne contient aucune vidéo valide.",
    "playlist_no_url": "Erreur : Impossible d'obtenir l'URL de la première vidéo de la playlist.",
    "ytdlp_not_found": "Erreur : Exécutable yt-dlp introuvable. Veuillez d'abord installer yt-dlp.",
    "ytdlp_not_found_path": "Erreur : Exécutable yt-dlp introuvable. Cela pourrait être dû à une installation incorrecte ou à un problème de PATH.",
    "no_data_returned": "Erreur : Aucune donnée renvoyée par yt-dlp",
    "no_format_info": "Erreur : Aucune information de format disponible.",
    "analysis_timeout": "Erreur : Délai d'analyse dépassé. Veuillez réessayer.",
    "invalid_speed_limit": "❌ Erreur : Valeur de limite de vitesse invalide définie dans les paramètres.",
    "ytdlp_failed": "Erreur : yt-dlp a échoué : {error}",
    "parse_failed": "Erreur : Échec de l'analyse de la sortie yt-dlp : {error}",
    "analysis_failed": "Erreur : Échec de l'analyse : {error}",
    "generic_error": "Erreur : {error}",
    "download_failed_return_code_conflict": "Téléchargement échoué avec le code de retour {return_code}. Cela peut être dû à un conflit entre plusieurs installations de yt-dlp. Essayez de désinstaller toute version installée au niveau du système (par ex. via snap ou apt) puis redémarrez l’application.",
    "download_failed_return_code": "Téléchargement échoué avec le code de retour {return_code}",
    "direct_command_error": "Erreur dans la commande directe : {error}"
  },
  "update_dialog": {
    "title": "Mise à jour disponible",
    "new_version_available": "Une nouvelle version de YTSage est disponible !",
    "current_version_label": "Version actuelle :",
    "latest_version_label": "Dernière version :",
    "changelog": "Journal des modifications",
    "download_update": "Télécharger la mise à jour",
    "remind_later": "Me le rappeler plus tard"
  },
  "playlist": {
    "unknown": "Playlist inconnue",
    "total_videos": "Total des vidéos : {count}",
    "display_format": "Playlist : {title} | {count} vidéos",
    "select_videos_title": "Sélectionner les Vidéos de la Playlist"
  },
  "subtitle_selection": {
    "count_selected": "{count} sélectionné(s)"
  },
  "file_exists_dialog": {
    "title": "Le fichier existe déjà",
    "message": "Le fichier existe déjà :\n{filename}",
    "info": "Cette vidéo a déjà été téléchargée."
  },
  "auto_update": {
    "last_check_never": "Dernière vérification : Jamais",
    "last_check": "Dernière vérification : {time}",
    "next_check_disabled": "Prochaine vérification : Désactivée",
    "next_check_startup": "Prochaine vérification : Au démarrage",
    "next_check_overdue": "Prochaine vérification : Maintenant (en retard)",
    "next_check": "Prochaine vérification : {time}",
    "next_check_error": "Prochaine vérification : Erreur de calcul",
    "checking": "🔄 Vérification...",
    "check_now": "🔍 Vérifier les mises à jour maintenant",
    "current_version": "Version actuelle de yt-dlp : {version}"
  },
  "url_validation": {
    "empty_url": "L'URL ne peut pas être vide",
    "invalid_format": "Format d'URL invalide",
    "invalid_scheme": "L'URL doit commencer par http:// ou https://",
    "missing_domain": "URL invalide : nom de domaine manquant",
    "unsupported_platform": "YTSage ne prend en charge que les URLs YouTube et YouTube Music.\nLe domaine '{domain}' n'est pas pris en charge.",
    "invalid_youtu_be": "URL youtu.be invalide : ID de vidéo manquant"
  },
  "ytdlp_errors": {
    "private_video": "Ceci est une vidéo privée. Vous pouvez la télécharger en vous connectant à votre compte avec des cookies.\nAllez dans 'Options Personnalisées' → 'Se connecter avec des Cookies' → 'Extraire les cookies du navigateur' pour vous authentifier.",
    "age_restricted": "Cette vidéo est soumise à une restriction d'âge. Vous devez être connecté pour y accéder.\nUtilisez 'Options Personnalisées' → 'Se connecter avec des Cookies' pour vous authentifier avec votre compte.",
    "geo_blocked": "Cette vidéo n'est pas disponible dans votre région (géo-bloquée).\nVous pourriez avoir besoin d'utiliser un VPN ou la vidéo pourrait être restreinte dans votre pays.",
    "video_unavailable": "Cette vidéo a été supprimée ou n'est plus disponible.\nLa vidéo a peut-être été supprimée par l'uploader ou retirée en raison de violations de politique.",
    "live_stream": "Ceci est un flux en direct qui ne peut pas être téléchargé pendant qu'il est actif.\nAttendez la fin du flux, puis essayez de télécharger la version archivée.",
    "playlist_error": "Impossible d'accéder à cette playlist. Elle peut être privée, supprimée ou vide.\nVérifiez si la playlist existe et est accessible publiquement.",
    "network_error": "Erreur de connexion réseau. Veuillez vérifier votre connexion Internet et réessayer.\nSi le problème persiste, le serveur vidéo pourrait être temporairement indisponible.",
    "invalid_url": "URL invalide ou non prise en charge. Veuillez vérifier le lien et réessayer.\nAssurez-vous d'utiliser une URL YouTube, Vimeo ou autre plateforme prise en charge valide.",
    "premium_content": "Ce contenu nécessite YouTube Premium ou l'adhésion à la chaîne.\nVous devez être connecté avec un compte ayant accès à ce contenu.",
    "copyright_blocked": "Cette vidéo est bloquée en raison de réclamations pour droits d'auteur.\nLe propriétaire du contenu a restreint l'accès à cette vidéo.",
    "extraction_failed": "Échec de l'extraction des informations vidéo. Cela pourrait être un problème temporaire.\nVeuillez réessayer dans quelques minutes ou vérifier si le lien vidéo est correct.",
    "generic_error": "Impossible d'extraire les informations vidéo. Veuillez vérifier votre lien.\nDétails techniques : {error}"
  },
  "history": {
    "title": "Historique des Téléchargements",
    "clear_all": "Tout Effacer",
    "clear_confirm_title": "Effacer l'Historique?",
    "clear_confirm_message": "Êtes-vous sûr? Cela ne peut pas être annulé.",
    "no_history": "Pas encore d'historique",
    "no_history_description": "Vos téléchargements apparaîtront ici",
    "loading": "Chargement de l’historique...",
    "search_placeholder": "Rechercher...",
    "open_location": "Ouvrir l'Emplacement",
    "redownload": "Télécharger à Nouveau",
    "remove": "Supprimer",
    "file_not_found": "Fichier non trouvé",
    "file_not_found_message": "Le fichier a été déplacé ou supprimé:\n{path}",
    "downloaded_on": "Téléchargé: {date}",
    "file_size": "Taille: {size}",
    "audio_download": "Audio",
    "video_download": "Vidéo",
    "remove_confirm_title": "Supprimer?",
    "remove_confirm_message": "Supprimer de l'historique?\n\n{title}",
    "item_removed": "Supprimé",
    "history_cleared": "Historique effacé",
    "entries_count": "{count} téléchargements",
    "one_entry": "1 téléchargement",
    "redownload_confirm_title": "Télécharger à Nouveau?",
    "redownload_confirm_message": "Télécharger à nouveau?\n\n{title}",
    "redownload_started": "Téléchargement démarré",
    "no_url_error": "Aucune URL trouvée dans l’entrée d’historique",
    "redownload_failed": "Impossible de relancer le téléchargement : {error}"
  },
  "ffmpeg": {
    "installation_title": "Installation de FFmpeg",
    "installation_message": "YTSage a besoin de FFmpeg pour traiter les vidéos.\n\nChoisissez une option d’installation ci‑dessous :",
    "install_button": "Installer FFmpeg",
    "manual_guide": "Guide manuel",
    "installation_failed": "L’installation de FFmpeg a rencontré un problème.",
    "already_installed": "FFmpeg est déjà installé !",
    "installation_complete": "Installation terminée. Vous pouvez fermer cette boîte de dialogue et continuer à utiliser YTSage.",
    "installing": "Installation de FFmpeg... Veuillez patienter",
    "install_success": "FFmpeg a été installé avec succès !",
    "installation_complete_close": "Installation terminée. Vous pouvez maintenant fermer cette boîte de dialogue et continuer à utiliser YTSage.",
    "try_manual": "Veuillez essayer d’utiliser le guide d’installation manuel à la place."
  },
  "ytdlp_setup": {
    "required_title": "Configuration de yt-dlp requise",
    "description": "YTSage nécessite yt-dlp pour télécharger des vidéos.<br><br>yt-dlp est introuvable dans le répertoire local de l’application. YTSage doit configurer yt-dlp pour votre système {os_name}.<br><br>Veuillez choisir une option ci‑dessous :",
    "option_auto": "Télécharger automatiquement (recommandé)",
    "option_manual": "Sélectionner le chemin manuellement",
    "setup_button": "Configurer yt-dlp",
    "downloading": "Téléchargement de yt-dlp...",
    "success": "yt-dlp a été installé avec succès !",
    "error": "Erreur : {error}",
    "download_failed_title": "Téléchargement échoué",
    "download_failed_message": "Échec du téléchargement de yt-dlp : {error}",
    "select_executable_title": "Sélectionner l’exécutable yt-dlp",
    "copied_to": "yt-dlp copié avec succès vers {path}",
    "setup_error_title": "Erreur de configuration",
    "copy_error": "Erreur lors de la copie de yt-dlp dans le répertoire de l’application : {error}",
    "invalid_executable_title": "Exécutable invalide",
    "invalid_executable_message": "Le fichier sélectionné ne semble pas être un exécutable yt-dlp valide.",
    "verify_error": "Erreur lors de la vérification de l’exécutable yt-dlp : {error}",
    "setup_failed_title": "Configuration échouée",
    "setup_failed_message": "La configuration de yt-dlp a échoué. Certaines fonctionnalités peuvent ne pas fonctionner correctement.",
    "success_dialog_title": "Configuration de yt-dlp",
    "success_dialog_message": "yt-dlp a été configuré avec succès à l’emplacement :\n{path}",
    "file_filter_windows": "Fichiers exécutables (*.exe)",
    "file_filter_all": "Tous les fichiers (*)"
  },
  "ffmpeg_updater": {
    "title": "Vérificateur de Version FFmpeg",
    "current_version": "Version Actuelle:",
    "latest_version": "Dernière Version:",
    "status_up_to_date": "✓ À jour",
    "status_update_available": "⚠ Mise à jour disponible",
    "status_not_installed": "✗ Non installé",
    "status_idle": "Cliquez sur 'Vérifier la Version' pour commencer",
    "status_checking": "🔄 Vérification de la version...",
    "check_updates": "Vérifier la Version",
    "check_failed": "Échec de la vérification de la version. Vérifiez votre connexion Internet.",
    "description": "Vérifiez votre version de FFmpeg et comparez-la avec la dernière version disponible.",
    "guide_info": " Pour installer ou mettre à jour FFmpeg, <a href='https://github.com/oop7/ffmpeg-install-guide'>cliquez ici pour consulter notre guide d'installation complet</a>."
  },
  "deno": {
    "setup_required": "Configuration de Deno requise",
    "setup_description": "YTSage nécessite Deno pour exécuter certaines fonctionnalités.<br><br>Deno n'a pas été trouvé dans le répertoire local de l'application. YTSage doit configurer Deno pour votre système {os_name}.<br><br>Cliquez sur 'Configurer Deno' pour télécharger et installer automatiquement.",
    "setup_button": "Configurer Deno",
    "downloading": "Téléchargement de Deno...",
    "extracting": "Extraction de Deno...",
    "verifying": "Vérification de Deno...",
    "success": "Deno a été installé avec succès !",
    "download_failed": "Échec du téléchargement",
    "download_error": "Échec du téléchargement de Deno : {error}",
    "verification_failed": "Échec de la vérification SHA256. Le fichier téléchargé peut être corrompu ou altéré.",
    "setup_failed": "Échec de la configuration de Deno. Certaines fonctionnalités peuvent ne pas fonctionner correctement.",
    "setup_error": "Erreur de configuration"
  },
  "deno_updater": {
    "title": "Vérificateur et Mise à Jour de Version Deno",
    "description": "Vérifiez votre version de Deno et mettez à jour vers la dernière version.",
    "current_version": "Version Actuelle :",
    "latest_version": "Dernière Version :",
    "status_idle": "Cliquez sur 'Vérifier les Mises à Jour' pour commencer",
    "status_checking": "🔄 Vérification des mises à jour...",
    "status_up_to_date": "✓ À jour",
    "status_update_available": "⚠ Mise à jour disponible",
    "status_not_installed": "✗ Non installé",
    "check_updates": "Vérifier les Mises à Jour",
    "update_now": "Mettre à Jour Deno",
    "updating": "🔄 Mise à jour de Deno...",
    "update_success": "✅ Deno a été mis à jour avec succès !",
    "update_failed": "❌ Échec de la mise à jour : {error}",
    "check_failed": "Échec de la vérification des mises à jour. Veuillez vérifier votre connexion Internet."
  }
}