{
  "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)",
    "russian": "Русский (Russian)",
    "chinese": "中文 (简体) (Chinese Simplified)",
    "german": "Deutsch (German)",
    "french": "Français (French)",
    "hindi": "हिन्दी (Hindi)",
    "indonesian": "Bahasa Indonesia (Indonesian)",
    "turkish": "Türkçe (Turkish)",
    "polish": "Polski (Polish)",
    "italian": "Italiano (Italian)",
    "arabic": "العربية (Arabic)",
    "japanese": "日本語 (Japanese)",
    "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",
    "fps": "FPS",
    "hdr": "HDR",
    "will_merge_audio": "Will merge audio",
    "has_audio": "✓ Has Audio",
    "audio_only": "Audio Only",
    "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",
    "history": "History",
    "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",
    "open_folder": "Open folder location"
  },
  "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",
    "updater": "Updater"
  },
  "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",
    "recommended": "Recommended",
    "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)",
    "file_selected_title": "Cookie File Applied",
    "file_applied_message": "Cookie file applied: {path}",
    "browser_selected_title": "Browser Cookies Applied",
    "browser_applied_message": "Browser cookies will be extracted from: {browser}",
    "cleared_title": "Cookies Cleared",
    "cleared_message": "Cookie settings have been cleared"
  },
  "custom_command": {
    "help_text": "Enter your custom yt-dlp command below. The current URL will be appended automatically.<br><br>For the full list of options and usage examples, <a href=\"{docs_url}\">click here to view the official yt-dlp documentation</a>.<br><br>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...",
    "starting": "🚀 Starting download...",
    "fetching_info": "🔍 Fetching video information...",
    "preparing_streams": "🎯 Preparing video streams...",
    "downloading_audio": "⏬ Downloading audio...",
    "downloading_video": "⏬ Downloading video...",
    "downloading_subtitle": "⏬ Downloading subtitle...",
    "downloading": "⏬ Downloading...",
    "completed": "✅ Download completed!",
    "video_completed": "✅ Video download completed!",
    "audio_completed": "✅ Audio download completed!",
    "subtitle_completed": "✅ Subtitle download completed!",
    "completed_cleaning": "✅ Download completed! Cleaning up...",
    "cancelled": "Download cancelled",
    "processing_playlist": "📋 Processing playlist data...",
    "paused": "Download paused",
    "resumed": "Download resumed",
    "merging_formats": "✨ Post-processing: Merging formats...",
    "removing_sponsor_segments": "✨ Post-processing: Removing sponsor segments...",
    "speed": "Speed",
    "eta": "ETA",
    "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.",
    "downloading_fallback": "⚡ Downloading..."
  },
  "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})",
    "already_up_to_date": "✅ yt-dlp is already up to date!",
    "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...",
    "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}",
    "update_success": "✅ yt-dlp has been successfully updated!",
    "already_latest": "yt-dlp is up to date (version {version})",
    "network_error": "❌ Network error during update: {error}",
    "general_error": "❌ 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": "Update yt-dlp",
    "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\nClick OK to proceed with the 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}",
    "ytdlp_channel": "yt-dlp Release Channel",
    "ytdlp_channel_stable": "Stable (Tested releases)",
    "ytdlp_channel_nightly": "Nightly (Daily updates, recommended by yt-dlp)",
    "ytdlp_channel_description": "Choose between stable and nightly releases. Nightly builds are updated daily with the latest fixes and features. You can switch channels at any time.",
    "ytdlp_switching_channel": "Switching to {channel} channel...",
    "ytdlp_channel_switched": "✅ Successfully switched to {channel} channel!",
    "ytdlp_channel_switch_failed": "❌ Failed to switch channel: {error}",
    "ytdlp_current_channel": "Current channel: {channel}",
    "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}",
    "output_format_settings": "Output Format Settings",
    "force_output_format": "Force output format when merging",
    "preferred_format": "Preferred format:",
    "force_format_help": "When enabled, merged videos will be converted to your preferred format. Disable to let yt-dlp decide automatically.",
    "format_mp4": "MP4 (Most compatible)",
    "format_webm": "WebM (Modern, open)",
    "format_mkv": "MKV (Feature-rich)",
    "audio_format_settings": "Audio Format Settings",
    "force_audio_format": "Force audio format for audio-only downloads",
    "preferred_audio_format": "Preferred audio format:",
    "force_audio_format_help": "When enabled, audio-only downloads will be converted to your preferred format. This only applies when downloading audio formats.",
    "audio_format_best": "Best (No conversion)",
    "audio_format_aac": "AAC (Good for editing)",
    "audio_format_mp3": "MP3 (Universal)",
    "audio_format_flac": "FLAC (Lossless)",
    "audio_format_wav": "WAV (Uncompressed)",
    "audio_format_opus": "Opus (Efficient)",
    "audio_format_m4a": "M4A (Apple)",
    "audio_format_vorbis": "Vorbis (Open)"
  },
  "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",
    "error_title": "Error",
    "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",
    "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...",
    "invalid_url_or_enter": "Invalid URL or please enter a URL.",
    "zero_selected": "0 selected",
    "analyze_first_tooltip": "Please analyze the video first",
    "audio_mode_disabled": "Not available in audio-only mode",
    "select_subtitles_first": "Please select subtitles first"
  },
  "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",
    "video_file_exists": "⚠️ Video file already exists",
    "audio_file_exists": "⚠️ Audio file already exists",
    "subtitle_file_exists": "⚠️ Subtitle file already exists",
    "cancelling": "Cancelling download..."
  },
  "errors": {
    "playlist_no_videos": "Error: Playlist contains no valid videos.",
    "playlist_no_url": "Error: Could not get URL for the first playlist video.",
    "ytdlp_not_found": "Error: yt-dlp executable not found. Please install yt-dlp first.",
    "ytdlp_not_found_path": "Error: yt-dlp executable not found. This could be due to improper installation or a PATH issue.",
    "no_data_returned": "Error: No data returned from yt-dlp",
    "no_format_info": "Error: No format information available.",
    "analysis_timeout": "Error: Analysis timed out. Please try again.",
    "invalid_speed_limit": "❌ Error: Invalid speed limit value set in settings.",
    "ytdlp_failed": "Error: yt-dlp failed: {error}",
    "parse_failed": "Error: Failed to parse yt-dlp output: {error}",
    "analysis_failed": "Error: Analysis failed: {error}",
    "generic_error": "Error: {error}"
  },
  "update_dialog": {
    "title": "Update Available",
    "new_version_available": "A new version of YTSage is available!",
    "current_version_label": "Current version:",
    "latest_version_label": "Latest version:",
    "changelog": "Changelog",
    "download_update": "Download Update",
    "remind_later": "Remind Me Later"
  },
  "playlist": {
    "unknown": "Unknown Playlist",
    "total_videos": "Total Videos: {count}",
    "display_format": "Playlist: {title} | {count} videos",
    "select_videos_title": "Select Playlist Videos"
  },
  "subtitle_selection": {
    "count_selected": "{count} selected"
  },
  "file_exists_dialog": {
    "title": "File Already Exists",
    "message": "The file already exists:\n{filename}",
    "info": "This video has already been downloaded."
  },
  "auto_update": {
    "last_check_never": "Last update check: Never",
    "last_check": "Last update check: {time}",
    "next_check_disabled": "Next check: Disabled",
    "next_check_startup": "Next check: On next startup",
    "next_check_overdue": "Next check: Now (overdue)",
    "next_check": "Next check: {time}",
    "next_check_error": "Next check: Error calculating",
    "checking": "🔄 Checking...",
    "check_now": "🔍 Check for Updates Now"
  },
  "url_validation": {
    "empty_url": "URL cannot be empty",
    "invalid_format": "Invalid URL format",
    "invalid_scheme": "URL must start with http:// or https://",
    "missing_domain": "Invalid URL: missing domain name",
    "unsupported_platform": "YTSage only supports YouTube and YouTube Music URLs.\nThe domain '{domain}' is not supported.",
    "invalid_youtu_be": "Invalid youtu.be URL: missing video ID"
  },
  "ytdlp_errors": {
    "private_video": "This is a private video. You can download it by logging into your account using cookies.\nGo to 'Custom Options' → 'Login with Cookies' → 'Extract cookies from browser' to authenticate.",
    "age_restricted": "This video is age-restricted. You need to be logged in to access it.\nUse 'Custom Options' → 'Login with Cookies' to authenticate with your account.",
    "geo_blocked": "This video is not available in your region (geo-blocked).\nYou may need to use a VPN or the video might be restricted in your country.",
    "video_unavailable": "This video has been removed or is no longer available.\nThe video may have been deleted by the uploader or removed due to policy violations.",
    "live_stream": "This is a live stream that cannot be downloaded while active.\nWait for the stream to end, then try downloading the archived version.",
    "playlist_error": "Unable to access this playlist. It may be private, deleted, or empty.\nCheck if the playlist exists and is publicly accessible.",
    "network_error": "Network connection error. Please check your internet connection and try again.\nIf the problem persists, the video server might be temporarily unavailable.",
    "invalid_url": "Invalid or unsupported URL. Please check the link and try again.\nMake sure you're using a valid YouTube, Vimeo, or other supported platform URL.",
    "premium_content": "This content requires YouTube Premium or channel membership.\nYou need to be logged in with an account that has access to this content.",
    "copyright_blocked": "This video is blocked due to copyright claims.\nThe content owner has restricted access to this video.",
    "extraction_failed": "Failed to extract video information. This might be a temporary issue.\nPlease try again in a few minutes, or check if the video link is correct.",
    "generic_error": "Could not extract video information. Please check your link.\nTechnical details: {error}"
  },
  "history": {
    "title": "Download History",
    "clear_all": "Clear All History",
    "clear_confirm_title": "Clear History?",
    "clear_confirm_message": "Are you sure you want to clear all download history? This cannot be undone.",
    "no_history": "No download history yet",
    "no_history_description": "Your downloaded videos and audio will appear here",
    "search_placeholder": "Search history...",
    "open_location": "Open File Location",
    "redownload": "Redownload",
    "remove": "Remove from History",
    "file_not_found": "File not found at original location",
    "file_not_found_message": "The file was moved or deleted:\n{path}",
    "downloaded_on": "Downloaded on {date}",
    "file_size": "Size: {size}",
    "audio_download": "Audio",
    "video_download": "Video",
    "remove_confirm_title": "Remove from History?",
    "remove_confirm_message": "Remove this item from history?\n\n{title}",
    "item_removed": "Item removed from history",
    "history_cleared": "History cleared",
    "entries_count": "{count} downloads",
    "one_entry": "1 download",
    "redownload_confirm_title": "Redownload Video?",
    "redownload_confirm_message": "Download this video again using the same settings?\n\n{title}",
    "redownload_started": "Redownload started"
  },
  "ffmpeg_updater": {
    "title": "FFmpeg Version Checker",
    "current_version": "Current Version:",
    "latest_version": "Latest Version:",
    "status_up_to_date": "✓ Up to date",
    "status_update_available": "⚠ Update available",
    "status_not_installed": "✗ Not installed",
    "status_idle": "Click 'Check Version' to get started",
    "status_checking": "🔄 Checking version...",
    "check_updates": "Check Version",
    "check_failed": "Failed to check version. Please check your internet connection.",
    "description": "Check your FFmpeg version and compare it with the latest available version.",
    "guide_info": " To install or update FFmpeg, <a href='https://github.com/oop7/ffmpeg-install-guide'>click here to view our comprehensive installation guide</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"
  },
  "deno_updater": {
    "title": "Deno Version Checker & Updater",
    "description": "Check your Deno version and update to the latest release.",
    "current_version": "Current Version:",
    "latest_version": "Latest Version:",
    "status_idle": "Click 'Check for Updates' to get started",
    "status_checking": "🔄 Checking for updates...",
    "status_up_to_date": "✓ Up to date",
    "status_update_available": "⚠ Update available",
    "status_not_installed": "✗ Not installed",
    "check_updates": "Check for Updates",
    "update_now": "Update Deno",
    "updating": "🔄 Updating Deno...",
    "update_success": "✅ Deno has been successfully updated!",
    "update_failed": "❌ Update failed: {error}",
    "check_failed": "Failed to check for updates. Please check your internet connection."
  }
}