{
  "html_readability_error": "use original input, because can't apply html readability",
  "vendor_not_configured": "vendor %s not configured",
  "vendor_no_transcription_support": "vendor %s does not support audio transcription",
  "transcription_model_required": "transcription model is required (use --transcribe-model)",
  "youtube_not_configured": "YouTube is not configured, please run the setup procedure",
  "youtube_api_key_required": "YouTube API key required for comments and metadata. Run 'fabric --setup' to configure",
  "youtube_ytdlp_not_found": "yt-dlp not found in PATH. Please install yt-dlp to use YouTube transcript functionality",
  "youtube_invalid_url": "invalid YouTube URL, can't get video or playlist ID: '%s'",
  "youtube_url_is_playlist_not_video": "URL is a playlist, not a video",
  "youtube_no_video_id_found": "no video ID found in URL",
  "youtube_rate_limit_exceeded": "YouTube rate limit exceeded. Try again later or use different yt-dlp arguments like '--sleep-requests 1' to slow down requests.",
  "youtube_auth_required_bot_detection": "YouTube requires authentication (bot detection). Use --yt-dlp-args='--cookies-from-browser BROWSER' where BROWSER is chrome, firefox, brave, etc.",
  "youtube_ytdlp_stderr_error": "Error reading yt-dlp stderr",
  "youtube_invalid_ytdlp_arguments": "invalid yt-dlp arguments: %v",
  "youtube_failed_create_temp_dir": "failed to create temp directory: %v",
  "youtube_no_transcript_content": "no transcript content found in VTT file",
  "youtube_no_vtt_files_found": "no VTT files found in directory",
  "youtube_failed_walk_directory": "failed to walk directory: %v",
  "youtube_error_getting_video_details": "error getting video details: %v",
  "youtube_invalid_duration_string": "invalid duration string: %s",
  "youtube_error_getting_metadata": "error getting video metadata: %v",
  "youtube_error_parsing_duration": "error parsing video duration: %v",
  "youtube_error_getting_comments": "error getting comments: %v",
  "youtube_error_saving_csv": "error saving videos to CSV: %v",
  "youtube_no_video_found_with_id": "no video found with ID: %s",
  "youtube_invalid_timestamp_format": "invalid timestamp format: %s",
  "youtube_empty_seconds_string": "empty seconds string",
  "youtube_invalid_seconds_format": "invalid seconds format %q: %w",
  "error_fetching_playlist_videos": "error fetching playlist videos: %w",
  "openai_api_base_url_not_configured": "API base URL not configured for provider %s",
  "openai_failed_to_create_models_url": "failed to create models URL: %w",
  "openai_unexpected_status_code_with_body": "unexpected status code: %d from provider %s, response body: %s",
  "openai_unexpected_status_code_read_error_partial": "unexpected status code: %d from provider %s (error reading body: %v), partial response: %s",
  "openai_unexpected_status_code_read_error": "unexpected status code: %d from provider %s (failed to read response body: %v)",
  "openai_unable_to_parse_models_response": "unable to parse models response; raw response: %s",
  "scraping_not_configured": "scraping functionality is not configured. Please set up Jina to enable scraping",
  "could_not_determine_home_dir": "could not determine user home directory: %w",
  "could_not_stat_env_file": "could not stat .env file: %w",
  "could_not_create_config_dir": "could not create config directory: %w",
  "could_not_create_env_file": "could not create .env file: %w",
  "could_not_copy_to_clipboard": "could not copy to clipboard: %v",
  "file_already_exists_not_overwriting": "file %s already exists, not overwriting. Rename the existing file or choose a different name",
  "error_creating_file": "error creating file: %v",
  "error_writing_to_file": "error writing to file: %v",
  "error_creating_audio_file": "error creating audio file: %v",
  "error_writing_audio_data": "error writing audio data to file: %v",
  "tts_model_requires_audio_output": "TTS model '%s' requires audio output. Please specify an audio output file with -o flag (e.g., -o output.wav)",
  "audio_output_file_specified_but_not_tts_model": "audio output file '%s' specified but model '%s' is not a TTS model. Please use a TTS model like gemini-2.5-flash-preview-tts",
  "file_already_exists_choose_different": "file %s already exists. Please choose a different filename or remove the existing file",
  "no_notification_system_available": "no notification system available",
  "cannot_convert_string": "cannot convert string %q to %v",
  "unsupported_conversion": "unsupported conversion from %v to %v",
  "invalid_config_path": "invalid config path: %w",
  "config_file_not_found": "config file not found: %s",
  "error_reading_config_file": "error reading config file: %w",
  "error_parsing_config_file": "error parsing config file: %w",
  "error_reading_piped_message": "error reading piped message from stdin: %w",
  "image_file_already_exists": "image file already exists: %s",
  "invalid_image_file_extension": "invalid image file extension '%s'. Supported formats: .png, .jpeg, .jpg, .webp",
  "image_parameters_require_image_file": "image parameters (--image-size, --image-quality, --image-background, --image-compression) can only be used with --image-file",
  "invalid_image_size": "invalid image size '%s'. Supported sizes: 1024x1024, 1536x1024, 1024x1536, auto",
  "invalid_image_quality": "invalid image quality '%s'. Supported qualities: low, medium, high, auto",
  "invalid_image_background": "invalid image background '%s'. Supported backgrounds: opaque, transparent",
  "image_compression_jpeg_webp_only": "image compression can only be used with JPEG and WebP formats, not %s",
  "image_compression_range_error": "image compression must be between 0 and 100, got %d",
  "transparent_background_png_webp_only": "transparent background can only be used with PNG and WebP formats, not %s",
  "available_transcription_models": "Available transcription models:",
  "tts_audio_generated_successfully": "TTS audio generated successfully and saved to: %s\n",
  "fabric_command_complete": "Fabric Command Complete",
  "fabric_command_complete_with_pattern": "Fabric: %s Complete",
  "command_completed_successfully": "Command completed successfully",
  "output_truncated": "Output: %s...",
  "output_full": "Output: %s",
  "choose_pattern_from_available": "Choose a pattern from the available patterns",
  "pattern_variables_help": "Values for pattern variables, e.g. -v=#role:expert -v=#points:30",
  "choose_context_from_available": "Choose a context from the available contexts",
  "choose_session_from_available": "Choose a session from the available sessions",
  "attachment_path_or_url_help": "Attachment path or URL (e.g. for OpenAI image recognition messages)",
  "run_setup_for_reconfigurable_parts": "Run setup for all reconfigurable parts of fabric",
  "set_temperature": "Set temperature",
  "set_top_p": "Set top P",
  "stream_help": "Stream",
  "set_presence_penalty": "Set presence penalty",
  "use_model_defaults_raw_help": "Use the defaults of the model without sending chat options (temperature, top_p, etc.). Only affects OpenAI-compatible providers. Anthropic models always use smart parameter selection to comply with model-specific requirements.",
  "set_frequency_penalty": "Set frequency penalty",
  "list_all_patterns": "List all patterns",
  "list_all_available_models": "List all available models",
  "list_all_contexts": "List all contexts",
  "list_all_sessions": "List all sessions",
  "update_patterns": "Update patterns",
  "messages_to_send_to_chat": "Messages to send to chat",
  "copy_to_clipboard": "Copy to clipboard",
  "choose_model": "Choose model",
  "specify_vendor_for_model": "Specify vendor for the selected model (e.g., -V \"LM Studio\" -m openai/gpt-oss-20b)",
  "model_context_length_ollama": "Model context length (only affects ollama)",
  "output_to_file": "Output to file",
  "output_entire_session": "Output the entire session (also a temporary one) to the output file",
  "number_of_latest_patterns": "Number of latest patterns to list",
  "change_default_model": "Change default model",
  "youtube_url_help": "YouTube video or play list \"URL\" to grab transcript, comments from it and send to chat or print it put to the console and store it in the output file",
  "prefer_playlist_over_video": "Prefer playlist over video if both ids are present in the URL",
  "grab_transcript_from_youtube": "Grab transcript from YouTube video and send to chat (it is used per default).",
  "grab_transcript_with_timestamps": "Grab transcript from YouTube video with timestamps and send to chat",
  "grab_comments_from_youtube": "Grab comments from YouTube video and send to chat",
  "output_video_metadata": "Output video metadata",
  "additional_yt_dlp_args": "Additional arguments to pass to yt-dlp (e.g. '--cookies-from-browser brave')",
  "specify_language_code": "Specify the Language Code for the chat, e.g. -g=en -g=zh -g=pt-BR -g=pt-PT",
  "scrape_website_url": "Scrape website URL to markdown using Jina AI",
  "search_question_jina": "Search question using Jina AI",
  "seed_for_lmm_generation": "Seed to be used for LMM generation",
  "wipe_context": "Wipe context",
  "wipe_session": "Wipe session",
  "print_context": "Print context",
  "print_session": "Print session",
  "convert_html_readability": "Convert HTML input into a clean, readable view",
  "apply_variables_to_input": "Apply variables to user input",
  "disable_pattern_variable_replacement": "Disable pattern variable replacement",
  "show_dry_run": "Show what would be sent to the model without actually sending it",
  "serve_fabric_rest_api": "Serve the Fabric Rest API",
  "serve_fabric_api_ollama_endpoints": "Serve the Fabric Rest API with ollama endpoints",
  "address_to_bind_rest_api": "The address to bind the REST API",
  "api_key_secure_server_routes": "API key used to secure server routes",
  "path_to_yaml_config": "Path to YAML config file",
  "print_current_version": "Print current version",
  "list_all_registered_extensions": "List all registered extensions",
  "register_new_extension": "Register a new extension from config file path",
  "remove_registered_extension": "Remove a registered extension by name",
  "choose_strategy_from_available": "Choose a strategy from the available strategies",
  "list_all_strategies": "List all strategies",
  "list_all_vendors": "List all vendors",
  "output_raw_list_shell_completion": "Output raw list without headers/formatting (for shell completion)",
  "enable_web_search_tool": "Enable web search tool for supported models (Anthropic, OpenAI, Gemini)",
  "set_location_web_search": "Set location for web search results (e.g., 'America/Los_Angeles')",
  "save_generated_image_to_file": "Save generated image to specified file path (e.g., 'output.png')",
  "image_dimensions_help": "Image dimensions: 1024x1024, 1536x1024, 1024x1536, auto (default: auto)",
  "image_quality_help": "Image quality: low, medium, high, auto (default: auto)",
  "compression_level_jpeg_webp": "Compression level 0-100 for JPEG/WebP formats (default: not set)",
  "background_type_help": "Background type: opaque, transparent (default: opaque, only for PNG/WebP)",
  "suppress_thinking_tags": "Suppress text enclosed in thinking tags",
  "start_tag_thinking_sections": "Start tag for thinking sections",
  "end_tag_thinking_sections": "End tag for thinking sections",
  "disable_openai_responses_api": "Disable OpenAI Responses API (default: false)",
  "audio_video_file_transcribe": "Audio or video file to transcribe",
  "model_for_transcription": "Model to use for transcription (separate from chat model)",
  "split_media_files_ffmpeg": "Split audio/video files larger than 25MB using ffmpeg",
  "tts_voice_name": "TTS voice name for supported models (e.g., Kore, Charon, Puck)",
  "list_gemini_tts_voices": "List all available Gemini TTS voices",
  "list_transcription_models": "List all available transcription models",
  "send_desktop_notification": "Send desktop notification when command completes",
  "custom_notification_command": "Custom command to run for notifications (overrides built-in notifications)",
  "set_reasoning_thinking_level": "Set reasoning/thinking level (e.g., off, low, medium, high, or numeric tokens for Anthropic or Google Gemini)",
  "set_debug_level": "Set debug level (0=off, 1=basic, 2=detailed, 3=trace)",
  "usage_header": "Usage:",
  "application_options_header": "Application Options:",
  "help_options_header": "Help Options:",
  "help_message": "Show this help message",
  "options_placeholder": "[OPTIONS]",
  "available_vendors_header": "Available Vendors:",
  "available_models_header": "Available models",
  "no_items_found": "No %s",
  "no_description_available": "No description available",
  "i18n_download_failed": "Failed to download translation for language '%s': %v",
  "i18n_load_failed": "Failed to load translation file: %v",
  "setup_welcome_header": "🎉 Welcome to Fabric! Let's get you set up.",
  "setup_step_downloading_patterns": "📥 Step 1: Downloading patterns (required for Fabric to work)...",
  "setup_step_downloading_strategies": "📥 Step 2: Downloading strategies (required for Fabric to work)...",
  "setup_step_configure_ai_provider": "🤖 Step 3: Configure an AI provider",
  "setup_ai_provider_required": "Fabric needs at least one AI provider to work.",
  "setup_add_more_providers_later": "You'll be able to add more providers later with 'fabric --setup'",
  "setup_step_setting_defaults": "⚙️  Step 4: Setting default vendor and model...",
  "setup_complete_header": "✅ Setup complete! You can now use Fabric.",
  "setup_next_steps": "Next steps:",
  "setup_list_patterns": "• List available patterns: fabric -l",
  "setup_try_pattern": "• Try a pattern: echo 'your text' | fabric --pattern summarize",
  "setup_configure_more": "• Configure more settings: fabric --setup",
  "setup_failed_download_patterns": "failed to download patterns: %w",
  "setup_failed_download_strategies": "failed to download strategies: %w",
  "setup_failed_set_defaults": "failed to set default vendor and model: %w",
  "setup_no_ai_provider_selected": "no AI provider selected - at least one is required",
  "setup_invalid_selection": "invalid selection: %s",
  "setup_available_ai_providers": "Available AI Providers:",
  "setup_enter_ai_provider_number": "AI Provider Number",
  "setup_available_plugins": "Available plugins:",
  "setup_plugin_number": "Plugin Number",
  "setup_plugin_prompt": "Enter the number of the plugin to setup",
  "setup_required_configuration_header": "━━━ REQUIRED CONFIGURATION ━━━\n\nAI Vendors [at least one required]",
  "setup_required_tools": "Required Tools",
  "setup_optional_configuration_header": "━━━ OPTIONAL CONFIGURATION ━━━\n\nOptional Tools",
  "setup_validation_header": "Configuration Status:",
  "setup_validation_ai_provider_configured": "✓ AI Provider configured",
  "setup_validation_ai_provider_missing": "✗ AI Provider not configured - Required for Fabric to work",
  "setup_validation_defaults_configured": "✓ Default vendor/model set: %s/%s",
  "setup_validation_defaults_missing": "✗ Default vendor/model not set - Required for Fabric to work",
  "setup_validation_patterns_configured": "✓ Patterns downloaded",
  "setup_validation_patterns_missing": "✗ Patterns not found - Required for Fabric to work",
  "setup_validation_strategies_configured": "✓ Strategies downloaded",
  "setup_validation_strategies_missing": "✗ Strategies not found - Required for Fabric to work",
  "setup_validation_incomplete_warning": "⚠️  Setup incomplete! Missing required components.",
  "setup_validation_incomplete_help": "Run 'fabric --setup' again to configure missing items,\nor run 'fabric -U' to download patterns and strategies.",
  "setup_validation_complete": "✓ All required components configured!",
  "patterns_not_found_header": "⚠️  No patterns found!",
  "patterns_required_to_work": "Patterns are required for Fabric to work. To fix this:",
  "patterns_option_run_setup": "Option 1 (Recommended): Run setup to download patterns",
  "patterns_option_run_setup_command": "fabric --setup",
  "patterns_option_run_update": "Option 2: Download/update patterns directly",
  "patterns_option_run_update_command": "fabric -U",
  "pattern_not_found_no_patterns": "pattern '%s' not found.\n\nNo patterns are installed! To fix this:\n  • Run 'fabric --setup' to configure and download patterns\n  • Or run 'fabric -U' to download/update patterns directly",
  "pattern_not_found_list_available": "pattern '%s' not found. Run 'fabric -l' to see available patterns",
  "plugin_configured": " ✓",
  "plugin_not_configured": " ⚠️  NOT CONFIGURED",
  "defaults_setup_description": "Default AI Vendor and Model",
  "defaults_model_question": "Enter the index or the name of your default model",
  "defaults_model_context_length_question": "Enter model context length",
  "custom_patterns_label": "Custom Patterns",
  "custom_patterns_setup_description": "Custom Patterns - Set directory for your custom patterns",
  "custom_patterns_directory_question": "Enter the path to your custom patterns directory",
  "jina_label": "Jina AI",
  "jina_setup_description": "Jina AI Service - to grab a webpage as clean, LLM-friendly text",
  "youtube_label": "YouTube",
  "youtube_setup_description": "YouTube - to grab video transcripts (via yt-dlp) and comments/metadata (via YouTube API)",
  "language_label": "Language",
  "language_setup_description": "Language - Default AI Vendor Output Language",
  "language_output_question": "Enter your default output language (for example: zh_CN)",
  "optional_marker": "(optional)",
  "required_marker": "[required]",
  "patterns_loader_label": "Patterns Loader",
  "patterns_setup_description": "Patterns - Downloads patterns",
  "patterns_git_repo_url_label": "Git Repo Url",
  "patterns_git_repo_url_question": "Enter the default Git repository URL for the patterns",
  "patterns_git_repo_folder_label": "Git Repo Patterns Folder",
  "patterns_git_repo_folder_question": "Enter the default folder in the Git repository where patterns are stored",
  "patterns_failed_create_temp_folder": "failed to create temporary patterns folder: %w",
  "patterns_downloading": "Downloading patterns and Populating %s...\n",
  "patterns_failed_download_from_git": "failed to download patterns from git repository: %w",
  "patterns_saving_updated_configuration": "💾 Saving updated configuration (path changed from '%s' to '%s')...\n",
  "patterns_failed_move_patterns": "failed to move patterns to config directory: %w",
  "patterns_download_success": "✅ Successfully downloaded and installed patterns to %s\n",
  "patterns_failed_unique_file": "failed to create unique patterns file: %w",
  "patterns_failed_access_directory": "failed to access patterns directory '%s': %w",
  "patterns_preserve_warning": "Warning: failed to preserve custom pattern '%s': %v\n",
  "patterns_preserved_custom_pattern": "Preserved custom pattern: %s\n",
  "patterns_failed_create_temp_dir": "failed to create temp directory: %w",
  "patterns_cloning_repository": "Cloning repository %s (path: %s)...\n",
  "patterns_failed_download_from_repo": "failed to download patterns from %s: %w",
  "patterns_failed_read_temp_directory": "failed to read temp patterns directory: %w",
  "patterns_no_patterns_migration_failed": "no patterns found in repository at path %s and migration failed: %w",
  "patterns_downloaded_temp": "Downloaded %d patterns to temporary directory\n",
  "patterns_detected_old_path": "🔄 Detected old pattern path 'patterns', trying migration to 'data/patterns'...",
  "patterns_warning_remove_test_folder": "Warning: failed to remove test temporary folder '%s': %v\n",
  "patterns_found_new_path": "✅ Found %d patterns at new path '%s', updating configuration...\n",
  "patterns_failed_move_test_patterns": "failed to move test patterns to temp folder: %w",
  "patterns_unable_to_find_or_migrate": "unable to find patterns at current path '%s' or migrate to new structure",
  "patterns_failed_read_directory": "failed to read patterns directory: %w",
  "patterns_debug_included_custom_directory": "📂 Also included patterns from custom directory: %s\n",
  "patterns_warning_custom_directory": "Warning: Could not read custom patterns directory %s: %v\n",
  "patterns_no_patterns_found_in_directories": "no patterns found in directories %s and %s",
  "patterns_no_patterns_found_in_directory": "no patterns found in directory %s",
  "patterns_failed_write_unique_file": "failed to write unique patterns file: %w",
  "patterns_unique_file_created": "📝 Created unique patterns file with %d patterns\n",
  "patterns_no_patterns_copied": "no patterns were successfully copied to %s",
  "patterns_failed_loaded_marker": "failed to create loaded marker file '%s': %w",
  "strategies_label": "Prompt Strategies",
  "strategies_setup_description": "Strategies - Downloads Prompting Strategies (like chain of thought)",
  "strategies_git_repo_url_label": "Git Repo Url",
  "strategies_git_repo_url_question": "Enter the default Git repository URL for the strategies",
  "strategies_git_repo_folder_label": "Git Repo Strategies Folder",
  "strategies_git_repo_folder_question": "Enter the default folder in the Git repository where strategies are stored",
  "strategies_downloading": "Downloading strategies and Populating %s...\n",
  "strategies_download_success": "✅ Successfully downloaded and installed strategies to %s\n",
  "strategies_home_dir_error": "could not get home directory: %v",
  "strategies_failed_create_directory": "failed to create strategies directory: %w",
  "strategies_cloning_repository": "Cloning repository %s (path: %s)...\n",
  "strategies_failed_download": "failed to download strategies: %w",
  "strategies_downloaded_count": "Downloaded %d strategies\n",
  "strategies_home_dir_fallback": "could not get home directory: %v, using current directory instead",
  "strategy_not_found": "strategy %s not found. Please run 'fabric --liststrategies' for list",
  "strategies_none_found": "no strategies found. Please run 'fabric --setup' to download strategies",
  "strategies_available_header": "Available Strategies:",
  "plugin_enter_value": "Enter your %v %v",
  "plugin_enable_bool_question": "Enable %v %v (true/false)",
  "plugin_setup_skipped": "[%v] skipped\n",
  "plugin_question_bool": "%v%v (true/false, leave empty for '%s' or type '%v' to remove the value):",
  "plugin_question_with_default": "%v%v (leave empty for '%s' or type '%v' to remove the value):",
  "plugin_question_optional": "%v%v (leave empty to skip):",
  "plugin_invalid_boolean_value": "invalid boolean value: %v",
  "plugin_setting_not_valid": "%v=%v, is not valid",
  "plugin_invalid_bool": "invalid bool: %q"
}
