{ "language": { "display_name": "English", "select_language": "Select language:", "current_language": "Current language: {language}", "restart_required": "Language changes will take effect after restarting the application.", "english": "English", "spanish": "EspaΓ±ol (Spanish)", "portuguese": "PortuguΓͺs (Portuguese)", "help_text": "Select your preferred language for the interface.", "restart_notice": "Language change will take effect after restarting the application." }, "app": { "title": "YTSage", "version": "v{version}", "ready": "Ready" }, "formats": { "show_formats": "Show Formats:", "video_format": "Video Format:", "audio_format": "Audio Format:", "no_formats": "No formats available", "loading": "Loading formats...", "select": "Select", "quality": "Quality", "extension": "Extension", "resolution": "Resolution", "file_size": "File Size", "codec": "Codec", "audio": "Audio", "notes": "Notes", "will_merge_audio": "Will merge audio", "has_audio": "βœ“ Has Audio", "audio_only": "Audio Only", "large_size": "Large size", "medium_size": "Medium size", "standard_size": "Standard size", "compatible": "Compatible", "efficient": "Efficient", "high_quality": "High quality", "best_4k": "Best (4K)", "best_2k": "Best (2K)", "high_1080p": "High (1080p)", "high_720p": "High (720p)", "medium_480p": "Medium (480p)", "low_quality": "Low Quality", "best_audio": "Best Audio", "high_audio": "High Audio", "medium_audio": "Medium Audio", "low_audio": "Low Audio", "audio_only_resolution": "Audio only" }, "buttons": { "download": "Download", "pause": "Pause", "resume": "Resume", "cancel": "Cancel", "browse": "Browse", "clear": "Clear", "ok": "OK", "apply": "Apply", "close": "Close", "run_command": "Run Command", "custom_command_help": "Help", "about": "About", "analyze": "Analyze", "paste_url": "Paste URL", "select_videos": "Select Videos...", "video": "Video", "audio_only": "Audio Only", "custom_options": "Custom Options", "trim_video": "Trim Video", "download_settings": "Download Settings", "update": "Update yt-dlp", "select_defaults": "Select Defaults", "select_all": "Select All", "deselect_all": "Deselect All" }, "dialogs": { "custom_options": "Custom Options", "settings": "Settings", "select_folder": "Select Download Folder", "sponsorblock_categories": "SponsorBlock Categories", "sponsorblock_description": "Select which types of video segments to automatically remove during download.\nSponsorBlock uses community-submitted data to identify these segments.", "select_subtitles": "Select Subtitles", "filter_languages_placeholder": "Filter languages (e.g., en, es)...", "no_subtitles_available": "No subtitles available", "matching": "matching" }, "tabs": { "cookies": "Login with Cookies", "custom_command": "Custom Command", "proxy": "Proxy", "language": "Language" }, "cookies": { "help_text": "Choose how to provide cookies for logging in.\nThis allows downloading of private videos and premium quality audio.", "cookie_source": "Cookie Source", "use_cookie_file": "Use cookie file", "extract_from_browser": "Extract from browser", "cookie_file": "Cookie File", "cookie_file_placeholder": "Path to cookies.txt file...", "browser_selection": "Browser Selection", "browser_help": "Select the browser to extract cookies from:", "browser_label": "Browser:", "profile_label": "Profile:", "profile_placeholder": "default", "browser_extract_message": "Browser cookies will be extracted when applied", "file_selected_message": "Cookie file selected - Click OK to apply", "select_file_title": "Select Cookie File", "file_filter": "Cookies files (*.txt *.lwp)" }, "custom_command": { "help_text": "Enter your custom yt-dlp command below. The current URL will be appended automatically.

For the full list of options and usage examples, click here to view the official yt-dlp documentation.

Note: Download path and filename template will be handled automatically.", "input_label": "yt-dlp Arguments:", "input_placeholder": "Enter yt-dlp arguments here...\n\ne.g. --extract-audio --audio-format mp3", "output_label": "Command Output:", "output_placeholder": "Command output will appear here...", "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", "full_command": "πŸ”§ Full command: {command}", "command_success": "βœ… Custom command completed successfully!", "command_failed": "❌ Command failed with exit code {code}", "command_error": "❌ Error running custom command: {error}" }, "proxy": { "help_text": "Configure proxy settings for downloading. Leave empty to use direct connection.", "main_proxy": "Main Proxy", "main_proxy_help": "Primary proxy server for all downloads. Supports HTTP/HTTPS and SOCKS5 protocols.", "proxy_url_label": "Proxy URL:", "proxy_url_placeholder": "http://proxy:port or socks5://proxy:port", "proxy_examples": "Examples:\nβ€’ HTTP: http://proxy.example.com:8080\nβ€’ SOCKS5: socks5://proxy.example.com:1080", "geo_proxy": "Geo-bypass Proxy", "geo_proxy_help": "Secondary proxy specifically for bypassing geographic restrictions.", "geo_proxy_url_label": "Geo-bypass Proxy URL:", "geo_proxy_url_placeholder": "http://geo-proxy:port", "clear_main_proxy": "Clear Main Proxy", "clear_geo_proxy": "Clear Geo 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", "invalid_main_url": "Invalid main proxy URL format", "invalid_geo_url": "Invalid geo proxy URL format", "main_configured": "Main proxy configured", "geo_configured": "Geo proxy configured" }, "download": { "preparing": "Preparing download...", "please_enter_url": "Please enter a URL first.", "please_set_path": "Please set a download path first.", "please_enter_url_and_path": "Please enter a URL and set download path.", "please_select_format": "Please select a format first." }, "update": { "title": "Update yt-dlp", "checking": "Checking for updates...", "update_available": "Update available!\nCurrent version: {current}\nLatest version: {latest}", "up_to_date": "yt-dlp is up to date (version {version})", "could_not_determine": "Could not determine versions.", "error_comparing": "Error comparing versions: {error}", "update_available_failed": "Update available! (Comparison failed)\nCurrent: {current}\nLatest: {latest}", "updating": "Updating...", "initializing": "πŸš€ Initializing update process...", "checking_current": "πŸ” Checking current installation...", "found_at": "πŸ“ Found yt-dlp at: {path}", "error_getting_path": "❌ Error getting yt-dlp path: {error}", "updating_binary": "πŸ“¦ Updating app-managed yt-dlp binary...", "updating_pip": "🐍 Updating system yt-dlp via pip...", "update_failed": "❌ Failed to update yt-dlp. Please try again or check your internet connection.", "binary_updated": "βœ… Binary successfully updated!", "update_failed_stderr": "❌ yt-dlp update failed: {error}", "update_timeout": "❌ yt-dlp update timed out.", "unexpected_error": "❌ Unexpected error during update: {error}", "checking_pip": "πŸ” Checking current pip installation...", "current_version": "πŸ“‹ Current version: {version}", "not_found_pip": "⚠️ yt-dlp not found via pip, attempting installation...", "checking_latest": "🌐 Checking for latest version...", "failed_check_updates": "❌ Failed to check for updates", "latest_version": "πŸ†• Latest version: {version}", "updating_from_to": "⬆️ Updating from {current} to {latest}...", "running_pip_install": "πŸ“¦ Running pip install --upgrade...", "pip_completed": "βœ… Pip update completed successfully!", "pip_failed": "❌ Pip update failed: {error}" }, "about": { "title": "About YTSage", "version": "Version {version}", "description": "Modern YouTube downloader with clean PySide6 interface.", "author": "By: {author}", "github": "GitHub: {repo}", "system_info": "System Information", "loading": "πŸ”„ Loading system information...", "refresh": "πŸ”„", "refreshing": "πŸ”„ Refreshing...", "refresh_failed": "Refresh Failed", "refresh_failed_message": "Could not refresh version information.", "detected": "βœ“ Detected", "missing": "βœ— Missing", "not_available": "Not Available" }, "time_range": { "title": "Trim Video", "time_range_group": "Time Range", "start_time": "Start Time (HH:MM:SS)", "end_time": "End Time (HH:MM:SS)", "start_placeholder": "00:00:00", "end_placeholder": "00:00:00", "start_time_placeholder": "Start time (HH:MM:SS)", "end_time_placeholder": "End time (HH:MM:SS)", "force_keyframes": "Force keyframes at cut points", "help_text": "Set the start and end times to trim the video.\nLeave empty to download the full video.", "invalid_format": "Invalid time format. Use HH:MM:SS format.", "start_after_end": "Start time cannot be after end time." }, "settings": { "title": "Download Settings", "download_path": "Download Path", "browse": "Browse...", "speed_limit": "Speed Limit", "speed_limit_placeholder": "None", "auto_update_ytdlp": "Auto-Update yt-dlp", "enable_auto_updates": "Enable automatic yt-dlp updates", "update_frequency": "Update frequency:", "check_startup": "Check on every startup (minimum 1 hour between checks)", "check_daily": "Check daily", "check_weekly": "Check weekly", "check_updates_now": "Check for Updates Now", "update_check_title": "Update Check", "could_not_determine_version": "Could not determine current yt-dlp version.", "update_available_dialog": "Update available!\n\nCurrent: {current}\nLatest: {latest}\n\nUse the 'Update yt-dlp' button in the main window to update.", "up_to_date_dialog": "yt-dlp is up to date!\n\nCurrent version: {version}", "error_checking_updates": "Error checking for updates: {error}", "settings_saved_title": "Settings Saved", "settings_saved_message": "Auto-update settings have been saved successfully!", "error_title": "Error", "failed_save_settings": "Failed to save auto-update settings.", "error_saving_settings": "Error saving auto-update settings: {error}", "auto_update_title": "Auto-Update Settings", "auto_update_header": "πŸ”„ Auto-Update Settings", "auto_update_description": "Configure automatic updates for yt-dlp to ensure you always have the latest features and bug fixes.", "current_status": "Current Status", "current_version_label": "Current yt-dlp version: Checking...", "last_check_label": "Last update check: Never", "next_check_label": "Next check: Based on settings", "manual_check_button": "πŸ” Check for Updates Now", "update_frequency_group": "Update Frequency", "save_settings": "Save Settings", "settings_saved_successfully": "βœ… Settings saved successfully!", "error_saving": "❌ Error saving settings: {error}" }, "main_ui": { "url_placeholder": "Enter YouTube video or playlist URL", "merge_subtitles": "Merge Subtitles", "save_thumbnail": "Save Thumbnail", "save_description": "Save Description", "embed_chapters": "Embed Chapters", "subtitles_selected": "{count} selected", "all_selected": "All selected", "select_videos_all": "Select Videos... (All selected)", "please_enter_url": "Please enter a URL first", "cookie_file_selected_title": "Cookie File Selected", "cookie_file_selected_message": "Cookie file selected: {path}", "browser_cookies_selected_title": "Browser Cookies Selected", "browser_cookies_selected_message": "Browser cookies will be extracted from: {browser}", "error_no_format_info": "Error: No format information available.", "error_extract_info": "Error: Could not extract basic video information. Please check your link.", "analyzing_preparing": "Analyzing (0%)... Preparing request", "analyzing_extracting_basic": "Analyzing (15%)... Extracting basic info", "analyzing_extracting_detailed": "Analyzing (30%)... Extracting detailed info", "analyzing_processing_video": "Analyzing (45%)... Processing video data", "analyzing_processing_formats": "Analyzing (60%)... Processing formats", "analyzing_loading_thumbnail": "Analyzing (75%)... Loading thumbnail", "analyzing_processing_subtitles": "Analyzing (85%)... Processing subtitles", "analyzing_updating_table": "Analyzing (95%)... Updating format table", "analysis_complete": "Analysis complete!", "analyzing_extracting_ytdlp": "Analyzing (30%)... Extracting info with yt-dlp executable", "analyzing_processing_data": "Analyzing (60%)... Processing data", "analyzing_processing_formats_ytdlp": "Analyzing (75%)... Processing formats", "analyzing_loading_thumbnail_ytdlp": "Analyzing (85%)... Loading thumbnail", "analyzing_processing_subtitles_ytdlp": "Analyzing (90%)... Processing subtitles", "select_subtitles": "Select Subtitles...", "sponsorblock_categories": "SponsorBlock Categories..." }, "sponsorblock": { "sponsor": "Sponsor", "sponsor_desc": "Paid promotion, paid referrals and direct advertisements", "selfpromo": "Unpaid/Self Promotion", "selfpromo_desc": "Unpaid promotion of creators' own content", "interaction": "Interaction Reminder", "interaction_desc": "Asking viewers to like, subscribe, or follow social media", "intro": "Intro", "intro_desc": "Video introduction that can be skipped", "outro": "Outro/End Cards", "outro_desc": "Credits or when the video ends", "preview": "Preview/Recap", "preview_desc": "Quick recap of previous videos or preview of what's coming up", "music_offtopic": "Non-Music Section", "music_offtopic_desc": "Only for music videos. Marks non-music sections", "filler": "Filler Tangent", "filler_desc": "Tangential scenes added only for filler or humor" }, "video_info": { "channel": "Channel", "views": "Views", "likes": "Likes", "upload_date": "Upload date", "duration": "Duration", "unknown_channel": "Unknown channel", "unknown_date": "Unknown date", "unknown_title": "Unknown title" }, "command": { "running": "Running...", "run_command": "Run Command" }, "selection": { "none_selected": "0 selected", "one_selected": "1 category selected", "count_selected": "{count} selected" }, "status": { "ready": "Ready", "file_exists": "⚠️ File already exists", "cancelling": "Cancelling download..." } }