{ "language": { "display_name": "Español (Spanish)", "select_language": "Seleccionar idioma:", "current_language": "Idioma actual: {language}", "restart_required": "Los cambios de idioma tendrán efecto después de reiniciar la aplicación.", "english": "Inglés", "spanish": "Español (Spanish)", "portuguese": "Português (Portuguese)", "russian": "Русский (Russian)", "chinese": "中文 (简体) (Chinese Simplified)", "german": "Deutsch (German)", "french": "Français (French)", "hindi": "Hindi", "indonesian": "Indonesio", "turkish": "Turco", "polish": "Polaco", "italian": "Italiano", "arabic": "Árabe", "japanese": "Japonés", "help_text": "Seleccione su idioma preferido para la interfaz.", "restart_notice": "El cambio de idioma tendrá efecto después de reiniciar la aplicación." }, "app": { "title": "YTSage", "version": "v{version}", "ready": "Listo" }, "buttons": { "reset": "Restablecer", "download": "Descargar", "pause": "Pausar", "resume": "Reanudar", "cancel": "Cancelar", "browse": "Examinar", "clear": "Limpiar", "ok": "Aceptar", "apply": "Aplicar", "close": "Cerrar", "run_command": "Ejecutar Comando", "about": "Acerca de", "update": "Actualizar", "analyze": "Analizar", "paste_url": "Pegar URL", "select_videos": "Seleccionar Videos...", "video": "Video", "audio_only": "Solo Audio", "custom_options": "Opciones Personalizadas", "trim_video": "Recortar Video", "download_settings": "Configuración de Descarga", "select_defaults": "Seleccionar Predeterminados", "select_all": "Seleccionar Todos", "deselect_all": "Deseleccionar Todos", "open_folder": "Abrir ubicación de carpeta", "history": "Historial", "save_playlist": "Guardar playlist como", "custom_command_help": "Ayuda" }, "dialogs": { "custom_options": "Opciones Personalizadas", "settings": "Configuración", "select_folder": "Seleccionar Carpeta de Descarga", "sponsorblock_categories": "Categorías SponsorBlock", "sponsorblock_description": "Selecciona qué tipos de segmentos de video se eliminarán automáticamente durante la descarga.\nSponsorBlock utiliza datos enviados por la comunidad para identificar estos segmentos.", "select_subtitles": "Seleccionar Subtítulos", "filter_languages_placeholder": "Filtrar idiomas (ej., en, es)...", "no_subtitles_available": "No hay subtítulos disponibles", "matching": "que coincidan con", "ytdlp_log_title": "Registro de yt-dlp", "filter_playlist_placeholder": "Filtrar videos..." }, "tabs": { "cookies": "Iniciar sesión con Cookies", "custom_command": "Comando Personalizado", "proxy": "Proxy", "language": "Idioma", "updater": "Actualizador" }, "cookies": { "help_text": "Elige cómo proporcionar cookies para iniciar sesión.\nEsto permite la descarga de videos privados y audio de calidad premium.", "cookie_source": "Origen de Cookie", "use_cookie_file": "Usar archivo de cookie (formato Netscape)", "extract_from_browser": "Extraer cookies del navegador", "recommended": "Recomendado", "cookie_file": "Archivo de Cookie", "cookie_file_placeholder": "Ruta al archivo de cookies (formato Netscape)", "browser_selection": "Selección de Navegador", "browser_help": "Selecciona el navegador del cual extraer cookies. Asegúrate de que el navegador esté cerrado antes de la extracción.", "browser_label": "Navegador:", "profile_label": "Perfil (opcional):", "profile_placeholder": "Nombre o ruta del perfil (dejar vacío para el predeterminado)", "browser_extract_message": "Las cookies del navegador se extraerán al aplicar", "file_selected_message": "Archivo de cookies seleccionado - Haz clic en Aceptar para aplicar", "select_file_title": "Seleccionar Archivo de Cookies", "file_filter": "Archivos de cookies (*.txt *.lwp)", "file_selected_title": "Archivo de Cookies Aplicado", "file_applied_message": "Archivo de cookies aplicado: {path}", "browser_selected_title": "Cookies del Navegador Aplicadas", "browser_applied_message": "Las cookies del navegador se extraerán de: {browser}", "cleared_title": "Cookies Borradas", "cleared_message": "La configuración de cookies se ha borrado", "active_browser": "✓ Activas: cookies del navegador ({browser})", "active_file": "✓ Activo: archivo de cookies ({file})", "none_active": "○ No hay cookies activas" }, "custom_command": { "help_text": "Ingresa tu comando yt-dlp personalizado a continuación. La URL actual se añadirá automáticamente.

Para ver la lista completa de opciones y ejemplos de uso, haz clic aquí para ver la documentación oficial de yt-dlp.

Nota: La ruta de descarga y la plantilla de nombre de archivo se manejarán automáticamente.", "input_label": "Argumentos de yt-dlp:", "input_placeholder": "Ingresa argumentos de yt-dlp aquí...\n\nej. --extract-audio --audio-format mp3", "output_label": "Salida del Comando:", "output_placeholder": "La salida del comando aparecerá aquí...", "full_command": "🔧 Comando completo: {command}", "command_failed": "❌ El comando falló con código de salida {code}", "command_success": "✅ ¡Comando completado exitosamente!", "command_error": "❌ Error ejecutando comando: {error}", "error_no_url": "❌ Error: No se proporcionó URL. Ingresa una URL en la ventana principal.", "error_no_command": "❌ Error: No se proporcionó comando. Ingresa argumentos de yt-dlp.", "executing": "🚀 Ejecutando comando personalizado de yt-dlp", "url_label": "📍 URL: {url}", "args_label": "⚙️ Argumentos: {command}", "download_path_label": "📁 Ruta de descarga: {path}", "separator": "==================================================", "command_placeholder": "Enter custom yt-dlp command...", "command_help": "Available placeholders:\n{url} - Video URL\n{output} - Output directory\n\nExample: --write-info-json --write-thumbnail" }, "proxy": { "help_text": "Configurar ajustes de proxy para conexiones de red y geo-verificación.\nEl proxy puede ayudar a evitar restricciones regionales y mejorar el rendimiento de descarga.", "main_proxy": "Proxy Principal", "main_proxy_help": "Usar el proxy HTTP/HTTPS/SOCKS especificado para todas las conexiones.", "proxy_url_label": "URL del Proxy:", "proxy_url_placeholder": "ej., http://proxy.example.com:8080 o socks5://user:pass@127.0.0.1:1080", "proxy_examples": "Ejemplos: http://proxy.com:8080, https://proxy.com:8080, socks5://127.0.0.1:1080", "geo_proxy": "Proxy de Geo-verificación", "geo_proxy_help": "Usar este proxy para verificar dirección IP para sitios con restricciones geográficas. El proxy principal (si está configurado) se usa para la descarga real.", "geo_proxy_url_label": "URL del Geo Proxy:", "geo_proxy_url_placeholder": "ej., http://us-proxy.example.com:8080", "clear_main_proxy": "Limpiar Proxy Principal", "clear_geo_proxy": "Limpiar Geo Proxy", "invalid_main_url": "Formato de URL de proxy principal inválido", "invalid_geo_url": "Formato de URL de geo proxy inválido", "main_configured": "Proxy principal configurado", "geo_configured": "Geo proxy configurado", "set_title": "Proxy establecido", "set_message": "Proxy principal establecido y guardado: {proxy}", "geo_set_title": "Proxy geo establecido", "geo_set_message": "Proxy de verificación geográfica establecido y guardado: {proxy}", "cleared_title": "Configuración de proxy borrada", "cleared_message": "Se borró y guardó toda la configuración de proxy.", "saved_main": "Proxy principal guardado: {proxy}", "saved_geo": "Proxy geo guardado: {proxy}", "proxy_url": "Proxy URL", "proxy_placeholder": "http://proxy:port or socks5://proxy:port", "geo_bypass": "Geo-bypass proxy (for geographic restrictions)", "geo_bypass_placeholder": "http://proxy:port for bypassing geo-blocks" }, "download": { "preparing": "Preparando descarga...", "starting": "🚀 Iniciando descarga...", "fetching_info": "🔍 Obteniendo información del video...", "preparing_streams": "🎯 Preparando flujos de video...", "downloading_audio": "⏬ Descargando audio...", "downloading_video": "⏬ Descargando video...", "downloading_subtitle": "⏬ Descargando subtítulos...", "downloading": "⏬ Descargando...", "completed": "✅ ¡Descarga completada!", "video_completed": "✅ ¡Descarga de video completada!", "audio_completed": "✅ ¡Descarga de audio completada!", "subtitle_completed": "✅ ¡Descarga de subtítulos completada!", "completed_cleaning": "✅ ¡Descarga completada! Limpiando...", "cancelled": "Descarga cancelada", "processing_playlist": "📋 Procesando datos de lista de reproducción...", "paused": "Descarga pausada", "resumed": "Descarga reanudada", "merging_formats": "✨ Post-procesamiento: Fusionando formatos...", "removing_sponsor_segments": "✨ Post-procesamiento: Eliminando segmentos patrocinados...", "speed": "Velocidad", "eta": "Tiempo restante", "please_enter_url": "Por favor ingresa una URL primero.", "please_set_path": "Por favor establece una ruta de descarga primero.", "please_enter_url_and_path": "Por favor ingresa URL y establece ruta de descarga.", "please_select_format": "Por favor selecciona un formato primero.", "downloading_fallback": "⚡ Descargando..." }, "formats": { "show_formats": "Mostrar formatos:", "select": "Seleccionar", "quality": "Calidad", "extension": "Extensión", "resolution": "Resolución", "file_size": "Tamaño", "codec": "Códec", "audio": "Audio", "fps": "FPS", "hdr": "HDR", "will_merge_audio": "Se combinará audio", "has_audio": "✓ Tiene Audio", "audio_only": "Solo Audio", "best_4k": "Óptima (4K)", "best_2k": "Óptima (2K)", "high_1080p": "Alta (1080p)", "high_720p": "Alta (720p)", "medium_480p": "Media (480p)", "low_quality": "Baja Calidad", "best_audio": "Mejor Audio", "high_audio": "Audio Alto", "medium_audio": "Audio Medio", "low_audio": "Audio Bajo", "audio_only_resolution": "Solo audio", "video_format": "Video Format:", "audio_format": "Audio Format:", "no_formats": "No formats available", "loading": "Loading formats..." }, "about": { "title": "Acerca de YTSage", "version": "Versión {version}", "description": "Descargador moderno de YouTube con una interfaz limpia de PySide6.", "author": "Por: {author}", "github": "GitHub: {repo}", "system_info": "Información del Sistema", "loading": "🔄 Cargando información del sistema...", "refresh": "🔄", "open_logs": "📂 Registros", "logs_tooltip": "Abrir carpeta de registros de la aplicación", "refreshing": "🔄 Actualizando...", "refresh_failed": "Actualización Fallida", "refresh_failed_message": "No se pudo actualizar la información de versión.", "detected": "✓ Detectado", "missing": "✗ Faltante", "not_available": "No Disponible" }, "time_range": { "title": "Descargar Sección del Video", "help_text": "Descarga solo partes específicas de un video especificando rangos de tiempo.\nUsa formato HH:MM:SS o segundos. Deja inicio o fin vacío para descargar desde el principio o hasta el final.", "time_range_group": "Rango de Tiempo", "start_time": "Tiempo de Inicio:", "end_time": "Tiempo de Fin:", "start_time_placeholder": "00:00:00 (o dejar vacío para inicio)", "end_time_placeholder": "00:10:00 (o dejar vacío para fin)", "force_keyframes": "Forzar fotogramas clave en cortes (mejor precisión, más lento)", "start_placeholder": "00:00:00", "end_placeholder": "00:00:00", "invalid_format": "Invalid time format. Use HH:MM:SS format.", "start_after_end": "Start time cannot be after end time." }, "update": { "title": "Actualizar yt-dlp", "checking": "Verificando actualizaciones...", "update_available": "¡Actualización disponible!\nVersión actual: {current}\nÚltima versión: {latest}", "up_to_date": "yt-dlp está actualizado (versión {version})", "already_up_to_date": "✅ ¡yt-dlp ya está actualizado!", "could_not_determine": "No se pudieron determinar las versiones.", "error_comparing": "Error al comparar versiones: {error}", "update_available_failed": "¡Actualización disponible! (Comparación fallida)\nActual: {current}\nÚltima: {latest}", "updating": "Actualizando...", "initializing": "🚀 Inicializando proceso de actualización...", "checking_current": "🔍 Verificando instalación actual...", "found_at": "📍 Se encontró yt-dlp en: {path}", "error_getting_path": "❌ Error al obtener la ruta de yt-dlp: {error}", "updating_binary": "📦 Actualizando binario de yt-dlp administrado por la app...", "update_failed": "❌ Falló la actualización de yt-dlp. Inténtalo de nuevo o verifica tu conexión a internet.", "binary_updated": "✅ ¡Binario actualizado exitosamente!", "update_failed_stderr": "❌ Falló la actualización de yt-dlp: {error}", "update_timeout": "❌ Tiempo agotado en la actualización de yt-dlp.", "unexpected_error": "❌ Error inesperado durante la actualización: {error}", "update_success": "✅ ¡yt-dlp se ha actualizado exitosamente!", "already_latest": "yt-dlp está actualizado (versión {version})", "network_error": "❌ Error de red durante la actualización: {error}", "general_error": "❌ La actualización falló: {error}", "update_in_progress_title": "Actualización en curso", "update_in_progress_message": "yt-dlp se está actualizando actualmente. Por favor espere un momento." }, "settings": { "title": "Configuración de Descarga", "download_path": "Ruta de Descarga", "browse": "Examinar...", "speed_limit": "Límite de Velocidad", "speed_limit_placeholder": "Ninguno", "generic_mode": "Modo genérico", "enable_generic_mode": "Habilitar modo genérico (compatibilidad con sitios que no son YouTube)", "generic_mode_help": "Permite descargar desde Dailymotion, CBC Gem y otros sitios compatibles con yt-dlp.", "auto_update_ytdlp": "Auto-Actualizar yt-dlp", "enable_auto_updates": "Habilitar actualizaciones automáticas de yt-dlp", "update_frequency": "Frecuencia de actualización:", "check_startup": "Verificar en cada inicio (mínimo 1 hora entre verificaciones)", "check_daily": "Verificar diariamente", "check_weekly": "Verificar semanalmente", "check_updates_now": "Actualizar yt-dlp", "update_check_title": "Verificación de Actualizaciones", "could_not_determine_version": "No se pudo determinar la versión actual de yt-dlp.", "update_available_dialog": "¡Actualización disponible!\n\nActual: {current}\nÚltima: {latest}\n\nHaz clic en Aceptar para continuar con la actualización.", "up_to_date_dialog": "¡yt-dlp está actualizado!\n\nVersión actual: {version}", "error_checking_updates": "Error al verificar actualizaciones: {error}", "settings_saved_title": "Configuración Guardada", "settings_saved_message": "¡La configuración de auto-actualización se ha guardado exitosamente!", "error_title": "Error", "failed_save_settings": "Falló al guardar la configuración de auto-actualización.", "error_saving_settings": "Error al guardar la configuración de auto-actualización: {error}", "ytdlp_channel": "Canal de Lanzamiento de yt-dlp", "ytdlp_channel_stable": "Estable (Versiones probadas)", "ytdlp_channel_nightly": "Nightly (Actualizaciones diarias, recomendado por yt-dlp)", "ytdlp_channel_description": "Elige entre versiones estables y nightly. Las versiones nightly se actualizan diariamente con las últimas correcciones y características. Puedes cambiar de canal en cualquier momento.", "ytdlp_switching_channel": "Cambiando al canal {channel}...", "ytdlp_channel_switched": "✅ ¡Cambiado exitosamente al canal {channel}!", "ytdlp_channel_switch_failed": "❌ Error al cambiar de canal: {error}", "ytdlp_current_channel": "Canal actual: {channel}", "app_updates_title": "Actualizaciones de YTSage", "check_app_updates": "Buscar actualizaciones de YTSage al iniciar", "check_beta_updates": "Recibir actualizaciones beta", "auto_update_title": "Configuración de Auto-Actualización", "auto_update_header": "🔄 Configuración de Auto-Actualización", "auto_update_description": "Configura las actualizaciones automáticas de yt-dlp para asegurar que siempre tengas las últimas funciones y correcciones de errores.", "current_status": "Estado Actual", "current_version_label": "Versión actual de yt-dlp: Verificando...", "last_check_label": "Última verificación de actualización: Nunca", "next_check_label": "Próxima verificación: Basado en configuración", "manual_check_button": "🔍 Verificar Actualizaciones Ahora", "update_frequency_group": "Frecuencia de Actualización", "save_settings": "Guardar Configuración", "settings_saved_successfully": "✅ ¡Configuración guardada exitosamente!", "error_saving": "❌ Error al guardar configuración: {error}", "output_format_settings": "Configuración de Formato de Salida", "force_output_format": "Forzar formato de salida al combinar", "preferred_format": "Formato preferido:", "force_format_help": "Cuando está habilitado, los videos combinados se convertirán a su formato preferido. Deshabilitar para dejar que yt-dlp decida automáticamente.", "format_mp4": "MP4 (Más compatible)", "format_webm": "WebM (Moderno, abierto)", "format_mkv": "MKV (Rico en funciones)", "audio_format_settings": "Configuración de formato de audio", "force_audio_format": "Forzar formato de audio para descargas solo de audio", "audio_normalization": "Normalización de audio (EBU R128)", "audio_normalization_help": "Cuando está activado, las pistas de audio se normalizarán. Nota: esto requiere recodificación, por lo que se debe forzar un formato de audio específico (como MP3 o M4A).", "preferred_audio_format": "Formato de audio preferido:", "force_audio_format_help": "Cuando está habilitado, las descargas solo de audio se convertirán a su formato preferido. Esto solo se aplica al descargar formatos de audio.", "audio_format_best": "Mejor (Sin conversión)", "audio_format_aac": "AAC (Bueno para edición)", "audio_format_mp3": "MP3 (Universal)", "audio_format_flac": "FLAC (Sin pérdida)", "audio_format_wav": "WAV (Sin comprimir)", "audio_format_opus": "Opus (Eficiente)", "audio_format_m4a": "M4A (Apple)", "audio_format_vorbis": "Vorbis (Abierto)", "filename_format": "Formato de nombre de archivo", "filename_format_help": "Variables disponibles: %(title)s, %(uploader)s, %(upload_date)s, %(resolution)s, %(id)s, %(ext)s. Se admite la sintaxis estándar de plantilla de salida de yt-dlp.", "tab_general": "General", "tab_format": "Formato", "tab_file": "Archivo", "concurrent_fragments": "Conexiones simultáneas", "concurrent_fragments_help": "Número de conexiones por descarga. Los valores más altos evitan la limitación, pero pueden causar bloqueos temporales si son demasiado altos. Predeterminado: 1.", "defaults_settings": "Configuración de selección predeterminada", "default_video_quality": "Resolución de video predeterminada (Altura):", "default_subtitle_language": "Idioma(s) de subtítulos predeterminado(s):", "defaults_help": "Establezca su altura de video y sus idiomas de subtítulos preferidos (separados por comas). Se seleccionarán automáticamente si están disponibles." }, "main_ui": { "url_placeholder": "Ingresa URL de video o lista de YouTube", "url_placeholder_generic": "Ingresa la URL de un video o una lista de cualquier sitio compatible", "merge_subtitles": "Combinar Subtítulos", "save_thumbnail": "Guardar Miniatura", "save_description": "Guardar Descripción", "embed_chapters": "Incrustar Capítulos", "subtitles_selected": "{count} seleccionados", "all_selected": "Todos seleccionados", "select_videos_all": "Seleccionar Videos... (Todos seleccionados)", "please_enter_url": "Por favor ingresa primero una URL", "error_title": "Error", "cookie_file_selected_title": "Archivo de Cookies Seleccionado", "cookie_file_selected_message": "Archivo de cookies seleccionado: {path}", "browser_cookies_selected_title": "Cookies de Navegador Seleccionadas", "browser_cookies_selected_message": "Las cookies del navegador serán extraídas de: {browser}", "error_no_format_info": "Error: No hay información de formato disponible.", "error_extract_info": "Error: No se pudo extraer la información básica del video. Por favor verifica tu enlace.", "analyzing_preparing": "Preparando solicitud...", "analyzing_extracting_basic": "Extrayendo información básica...", "analyzing_extracting_detailed": "Extrayendo información detallada...", "analyzing_processing_video": "Procesando datos de video...", "analyzing_processing_formats": "Procesando formatos...", "analyzing_loading_thumbnail": "Cargando miniatura...", "analyzing_processing_subtitles": "Procesando subtítulos...", "analyzing_updating_table": "Actualizando tabla de formatos...", "analysis_complete": "¡Análisis completo!", "analyzing_extracting_ytdlp": "Extrayendo información...", "analyzing_fetching_first_video": "Obteniendo formatos del primer video...", "analyzing_processing_data": "Procesando datos...", "analyzing_processing_formats_ytdlp": "Procesando formatos...", "analyzing_loading_thumbnail_ytdlp": "Cargando miniatura...", "analyzing_processing_subtitles_ytdlp": "Procesando subtítulos...", "select_subtitles": "Seleccionar Subtítulos...", "sponsorblock_categories": "Categorías SponsorBlock...", "invalid_url_or_enter": "URL inválida o por favor ingresa una URL.", "zero_selected": "0 seleccionados", "analyze_first_tooltip": "Por favor analiza el video primero", "audio_mode_disabled": "No disponible en modo solo audio", "select_subtitles_first": "Por favor selecciona subtítulos primero", "settings_tooltip": "Ruta actual: {path}\nLímite de velocidad: {speed_limit}", "speed_limit_none": "Ninguno", "open_folder_error": "No se pudo abrir la carpeta: {error}", "time_range_set": "Sección establecida: {section}" }, "sponsorblock": { "sponsor": "Patrocinador", "sponsor_desc": "Promoción pagada, referencias pagadas y anuncios directos", "selfpromo": "Autopromoción No Pagada", "selfpromo_desc": "Promoción no pagada del propio contenido del creador", "interaction": "Recordatorio de Interacción", "interaction_desc": "Pedir a los espectadores que den like, se suscriban o sigan en redes sociales", "intro": "Introducción", "intro_desc": "Introducción del video que se puede omitir", "outro": "Outro/Tarjetas Finales", "outro_desc": "Créditos o cuando termina el video", "preview": "Vista Previa/Resumen", "preview_desc": "Resumen rápido de videos anteriores o vista previa de lo que viene", "music_offtopic": "Sección No Musical", "music_offtopic_desc": "Solo para videos musicales. Marca secciones no musicales", "filler": "Relleno/Tangente", "filler_desc": "Escenas tangenciales agregadas solo como relleno o humor" }, "video_info": { "channel": "Canal", "views": "👁 Visualizaciones", "likes": "👍 Me gusta", "upload_date": "📅 Fecha de subida", "duration": "⏱ Duración", "unknown_channel": "Canal desconocido", "unknown_date": "Fecha desconocida", "unknown_title": "Título desconocido" }, "command": { "running": "Ejecutando...", "run_command": "Ejecutar Comando" }, "selection": { "none_selected": "0 seleccionados", "one_selected": "1 categoría seleccionada", "count_selected": "{count} seleccionados" }, "status": { "ready": "Listo", "file_exists": "⚠️ El archivo ya existe", "video_file_exists": "⚠️ El archivo de video ya existe", "audio_file_exists": "⚠️ El archivo de audio ya existe", "subtitle_file_exists": "⚠️ El archivo de subtítulos ya existe", "cancelling": "Cancelando descarga...", "thumbnail_saved": "✅ Miniatura guardada: {filename}", "thumbnail_error": "❌ Error de miniatura: {error}", "thumbnail_no_image": "No hay miniatura disponible para guardar" }, "errors": { "playlist_no_videos": "Error: La lista de reproducción no contiene videos válidos.", "playlist_no_url": "Error: No se pudo obtener la URL del primer video de la lista.", "ytdlp_not_found": "Error: Ejecutable de yt-dlp no encontrado. Por favor instala yt-dlp primero.", "ytdlp_not_found_path": "Error: Ejecutable de yt-dlp no encontrado. Esto podría deberse a una instalación incorrecta o un problema de PATH.", "no_data_returned": "Error: yt-dlp no devolvió datos", "no_format_info": "Error: No hay información de formato disponible.", "analysis_timeout": "Error: Se agotó el tiempo de análisis. Por favor inténtalo de nuevo.", "invalid_speed_limit": "❌ Error: Valor de límite de velocidad inválido en configuración.", "ytdlp_failed": "Error: yt-dlp falló: {error}", "parse_failed": "Error: Falló al analizar salida de yt-dlp: {error}", "analysis_failed": "Error: Análisis falló: {error}", "generic_error": "Error: {error}", "download_failed_return_code_conflict": "La descarga falló con el código de salida {return_code}. Esto puede deberse a un conflicto con varias instalaciones de yt-dlp. Intenta desinstalar cualquier yt-dlp instalado en el sistema (p. ej., mediante snap o apt) y reinicia la aplicación.", "download_failed_return_code": "La descarga falló con el código de salida {return_code}", "direct_command_error": "Error en el comando directo: {error}" }, "update_dialog": { "title": "Actualización disponible", "new_version_available": "¡Una nueva versión de YTSage está disponible!", "current_version_label": "Versión actual:", "latest_version_label": "Última versión:", "changelog": "Registro de cambios", "download_update": "Descargar Actualización", "remind_later": "Recordar Más Tarde" }, "playlist": { "unknown": "Lista de reproducción desconocida", "total_videos": "Total de Videos: {count}", "display_format": "Lista de reproducción: {title} | {count} videos", "select_videos_title": "Seleccionar Videos de la Lista de Reproducción", "save_as": "Guardar lista como", "save_success_title": "Éxito", "saved_successfully": "Lista de reproducción guardada con éxito.", "save_error_title": "Error al guardar", "no_videos_to_save": "¡No se han recopilado entradas de la lista!", "save_error_msg": "Error al guardar la lista de reproducción." }, "subtitle_selection": { "count_selected": "{count} seleccionados" }, "file_exists_dialog": { "title": "El archivo ya existe", "message": "El archivo ya existe:\n{filename}", "info": "Este video ya ha sido descargado." }, "auto_update": { "last_check_never": "Última verificación: Nunca", "last_check": "Última verificación: {time}", "next_check_disabled": "Próxima verificación: Deshabilitada", "next_check_startup": "Próxima verificación: Al iniciar", "next_check_overdue": "Próxima verificación: Ahora (atrasada)", "next_check": "Próxima verificación: {time}", "next_check_error": "Próxima verificación: Error al calcular", "checking": "🔄 Verificando...", "check_now": "🔍 Verificar actualizaciones ahora", "current_version": "Versión actual de yt-dlp: {version}" }, "url_validation": { "empty_url": "La URL no puede estar vacía", "invalid_format": "Formato de URL no válido", "invalid_scheme": "La URL debe comenzar con http:// o https://", "missing_domain": "URL no válida: falta el nombre de dominio", "unsupported_platform": "YTSage solo admite URLs de YouTube y YouTube Music.\nEl dominio '{domain}' no es compatible.", "invalid_youtu_be": "URL de youtu.be no válida: falta el ID del video" }, "ytdlp_errors": { "private_video": "Este es un video privado. Puede descargarlo iniciando sesión en su cuenta usando cookies.\nVaya a 'Opciones Personalizadas' → 'Iniciar sesión con Cookies' → 'Extraer cookies del navegador' para autenticarse.", "age_restricted": "Este video tiene restricción de edad. Debe iniciar sesión para acceder a él.\nUse 'Opciones Personalizadas' → 'Iniciar sesión con Cookies' para autenticarse con su cuenta.", "geo_blocked": "Este video no está disponible en su región (bloqueado geográficamente).\nPuede necesitar usar una VPN o el video puede estar restringido en su país.", "video_unavailable": "Este video ha sido eliminado o ya no está disponible.\nEl video puede haber sido eliminado por el usuario que lo subió o eliminado debido a violaciones de políticas.", "live_stream": "Esta es una transmisión en vivo que no se puede descargar mientras está activa.\nEspere a que termine la transmisión y luego intente descargar la versión archivada.", "playlist_error": "No se puede acceder a esta lista de reproducción. Puede ser privada, estar eliminada o vacía.\nVerifique si la lista de reproducción existe y es públicamente accesible.", "network_error": "Error de conexión de red. Verifique su conexión a Internet e intente nuevamente.\nSi el problema persiste, el servidor de video puede no estar disponible temporalmente.", "invalid_url": "URL no válida o no compatible. Verifique el enlace e intente nuevamente.\nAsegúrese de usar una URL válida de YouTube, Vimeo u otra plataforma compatible.", "premium_content": "Este contenido requiere YouTube Premium o membresía del canal.\nDebe iniciar sesión con una cuenta que tenga acceso a este contenido.", "copyright_blocked": "Este video está bloqueado debido a reclamaciones de derechos de autor.\nEl propietario del contenido ha restringido el acceso a este video.", "extraction_failed": "Error al extraer información del video. Esto podría ser un problema temporal.\nIntente nuevamente en unos minutos o verifique si el enlace del video es correcto.", "generic_error": "No se pudo extraer la información del video. Verifique su enlace.\nDetalles técnicos: {error}" }, "history": { "title": "Historial de Descargas", "clear_all": "Borrar Todo", "clear_confirm_title": "¿Borrar Historial?", "clear_confirm_message": "¿Estás seguro de que quieres borrar todo el historial? Esto no se puede deshacer.", "no_history": "Aún no hay historial", "no_history_description": "Tus descargas aparecerán aquí", "loading": "Cargando historial...", "search_placeholder": "Buscar...", "open_location": "Abrir Ubicación", "redownload": "Descargar de Nuevo", "remove": "Eliminar", "file_not_found": "Archivo no encontrado", "file_not_found_message": "El archivo fue movido o eliminado:\n{path}", "downloaded_on": "Descargado: {date}", "file_size": "Tamaño: {size}", "audio_download": "Audio", "video_download": "Video", "remove_confirm_title": "¿Eliminar?", "remove_confirm_message": "¿Eliminar del historial?\n\n{title}", "item_removed": "Eliminado", "history_cleared": "Historial borrado", "entries_count": "{count} descargas", "one_entry": "1 descarga", "redownload_confirm_title": "¿Descargar de Nuevo?", "redownload_confirm_message": "¿Descargar nuevamente?\n\n{title}", "redownload_started": "Descarga iniciada", "no_url_error": "No se encontró URL en la entrada del historial", "redownload_failed": "No se pudo iniciar la re-descarga: {error}" }, "ffmpeg": { "installation_title": "Instalación de FFmpeg", "installation_message": "YTSage necesita FFmpeg para procesar videos.\n\nElige una opción de instalación:", "install_button": "Instalar FFmpeg", "manual_guide": "Guía manual", "installation_failed": "La instalación de FFmpeg encontró un problema.", "already_installed": "¡FFmpeg ya está instalado!", "installation_complete": "Instalación completa. Puedes cerrar este diálogo y seguir usando YTSage.", "installing": "Instalando FFmpeg... Por favor espera", "install_success": "¡FFmpeg se instaló correctamente!", "installation_complete_close": "Instalación completa. Ahora puedes cerrar este diálogo y seguir usando YTSage.", "try_manual": "Intenta usar la guía de instalación manual en su lugar." }, "ytdlp_setup": { "required_title": "Se requiere configurar yt-dlp", "description": "YTSage requiere yt-dlp para descargar videos.

No se encontró yt-dlp en el directorio local de la app. YTSage necesita configurar yt-dlp para tu sistema {os_name}.

Elige una opción:", "option_auto": "Descargar automáticamente (recomendado)", "option_manual": "Seleccionar ruta manualmente", "setup_button": "Configurar yt-dlp", "downloading": "Descargando yt-dlp...", "success": "¡yt-dlp se instaló correctamente!", "error": "Error: {error}", "download_failed_title": "Descarga fallida", "download_failed_message": "No se pudo descargar yt-dlp: {error}", "select_executable_title": "Seleccionar ejecutable de yt-dlp", "copied_to": "yt-dlp se copió correctamente a {path}", "setup_error_title": "Error de configuración", "copy_error": "Error al copiar yt-dlp al directorio de la app: {error}", "invalid_executable_title": "Ejecutable inválido", "invalid_executable_message": "El archivo seleccionado no parece ser un ejecutable válido de yt-dlp.", "verify_error": "Error al verificar el ejecutable de yt-dlp: {error}", "setup_failed_title": "Configuración fallida", "setup_failed_message": "No se pudo configurar yt-dlp. Algunas funciones pueden no funcionar correctamente.", "success_dialog_title": "Configuración de yt-dlp", "success_dialog_message": "yt-dlp se configuró correctamente en:\n{path}", "file_filter_windows": "Archivos ejecutables (*.exe)", "file_filter_all": "Todos los archivos (*)" }, "ffmpeg_updater": { "title": "Comprobador de Versión FFmpeg", "current_version": "Versión Actual:", "latest_version": "Última Versión:", "status_up_to_date": "✓ Actualizado", "status_update_available": "⚠ Actualización disponible", "status_not_installed": "✗ No instalado", "status_idle": "Haga clic en 'Comprobar Versión' para comenzar", "status_checking": "🔄 Verificando versión...", "check_updates": "Comprobar Versión", "check_failed": "Error al verificar la versión. Por favor, verifique su conexión a internet.", "description": "Compruebe su versión de FFmpeg y compárela con la última versión disponible.", "guide_info": " Para instalar o actualizar FFmpeg, haga clic aquí para ver nuestra guía completa de instalación." }, "deno": { "setup_required": "Configuración de Deno requerida", "setup_description": "YTSage requiere Deno para ejecutar ciertas funciones.

No se encontró Deno en el directorio local de la aplicación. YTSage necesita configurar Deno para su sistema {os_name}.

Haga clic en 'Configurar Deno' para descargar e instalar automáticamente.", "setup_button": "Configurar Deno", "downloading": "Descargando Deno...", "extracting": "Extrayendo Deno...", "verifying": "Verificando Deno...", "success": "¡Deno se instaló correctamente!", "download_failed": "Descarga fallida", "download_error": "Error al descargar Deno: {error}", "verification_failed": "Error en la verificación SHA256. El archivo descargado puede estar dañado o alterado.", "setup_failed": "Error al configurar Deno. Es posible que algunas funciones no funcionen correctamente.", "setup_error": "Error de configuración" }, "deno_updater": { "title": "Verificador y Actualizador de Versión de Deno", "description": "Verifique su versión de Deno y actualice a la última versión.", "current_version": "Versión Actual:", "latest_version": "Última Versión:", "status_idle": "Haga clic en 'Buscar Actualizaciones' para comenzar", "status_checking": "🔄 Buscando actualizaciones...", "status_up_to_date": "✓ Actualizado", "status_update_available": "⚠ Actualización disponible", "status_not_installed": "✗ No instalado", "check_updates": "Buscar Actualizaciones", "update_now": "Actualizar Deno", "updating": "🔄 Actualizando Deno...", "update_success": "✅ ¡Deno se ha actualizado correctamente!", "update_failed": "❌ Error en la actualización: {error}", "check_failed": "Error al buscar actualizaciones. Por favor, verifique su conexión a Internet." } }