69507abf32
Expanded and reorganized language keys in en.json, including improved labels for language selection, about dialog, and time range features. Added missing Portuguese language entry to es.json for consistency. Updated descriptions and placeholders for better clarity and user experience.
328 lines
15 KiB
JSON
328 lines
15 KiB
JSON
{
|
|
"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.<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...",
|
|
"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..."
|
|
}
|
|
} |