Files
SageTube/languages/fr.json
T
oop7 38a8d9d29f Add Deno setup and integration to application
Introduces Deno binary management, setup dialog, and download/verification logic. Updates localization files for Deno setup messages in all supported languages. Integrates Deno setup checks into main.py and GUI initialization, and adds Deno constants for platform-specific downloads.
2025-11-14 17:58:45 +02:00

507 lines
29 KiB
JSON

{
"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"
},
"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 de cookies ont été effacés"
},
"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}"
},
"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é"
},
"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}"
},
"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)"
},
"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": "Analyse (0%)... Préparation de la requête",
"analyzing_extracting_basic": "Analyse (15%)... Extraction des informations de base",
"analyzing_extracting_detailed": "Analyse (30%)... Extraction des informations détaillées",
"analyzing_processing_video": "Analyse (45%)... Traitement des données vidéo",
"analyzing_processing_formats": "Analyse (60%)... Traitement des formats",
"analyzing_loading_thumbnail": "Analyse (75%)... Chargement de la miniature",
"analyzing_processing_subtitles": "Analyse (85%)... Traitement des sous-titres",
"analyzing_updating_table": "Analyse (95%)... Mise à jour du tableau des formats",
"analysis_complete": "Analyse terminée !",
"analyzing_extracting_ytdlp": "Analyse (30%)... Extraction d'informations avec yt-dlp",
"analyzing_processing_data": "Analyse (60%)... Traitement des données",
"analyzing_processing_formats_ytdlp": "Analyse (75%)... Traitement des formats",
"analyzing_loading_thumbnail_ytdlp": "Analyse (85%)... Chargement de la miniature",
"analyzing_processing_subtitles_ytdlp": "Analyse (90%)... 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"
},
"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..."
},
"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}"
},
"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"
},
"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",
"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é"
},
"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": "Deno Setup Required",
"setup_description": "YTSage requires Deno to run certain features.<br><br>Deno was not found in the app's local directory. YTSage needs to set up Deno for your {os_name} system.<br><br>Click 'Setup Deno' to download and install automatically.",
"setup_button": "Setup Deno",
"downloading": "Downloading Deno...",
"extracting": "Extracting Deno...",
"verifying": "Verifying Deno...",
"success": "Deno was successfully installed!",
"download_failed": "Download Failed",
"download_error": "Failed to download Deno: {error}",
"verification_failed": "SHA256 verification failed. The downloaded file may be corrupted or tampered with.",
"setup_failed": "Failed to set up Deno. Some features may not work correctly.",
"setup_error": "Setup Error"
}
}