docker-pilot
Version:
A powerful, scalable Docker CLI library for managing containerized applications of any size
763 lines (762 loc) • 74.2 kB
JavaScript
"use strict";
/**
* Internationalization (i18n) utilitie // Docker & System
'docker.not_running': 'Docker is not running. Please start Docker and try again.',
'docker.initializing': 'Initializing Docker Pilot...',
'docker.initialized': 'Docker Pilot initialized successfully',
'docker.failed': 'Failed to initialize Docker Pilot',
'docker.options_available': '🔧 Available options:',
'docker.start_desktop': '1. Start Docker Desktop',
'docker.start_linux': '2. Run: sudo systemctl start docker (Linux)',
'docker.start_macos': '3. Run: brew services start docker (macOS with Homebrew)',
'docker.restart_tip': '💡 After Docker is running, run the command again.',
'docker.retry_or_exit': '🔄 Press Enter to try again or type "exit" to finish: ',
'docker.pilot_finished': 'Docker Pilot finished.',
'docker.working_now': 'Docker is working now!',Pilot
* Supports multiple languages while keeping Docker comman // Menu
'menu.welcome': 'Bem-vindo ao {projectName} Docker Pilot v{version}! 🐳',
'menu.goodbye': 'Obrigado por usar o {projectName} Docker Pilot!',
'menu.choose': 'Digite sua escolha:',
'menu.invalid_choice': 'Opção inválida. Tente novamente.', 'menu.press_enter': 'Pressione Enter para continuar...',
'menu.exit': 'Sair',
'menu.back': 'Voltar',
'menu.directory': 'Diretório: {path}',
'menu.services': 'Serviços: {services}',
'menu.no_services': 'Nenhum detectado',
'menu.continue_question': '🔄 Deseja executar outro comando? (s/N): ',
'menu.executing': '🚀 Executando: {command}',
'menu.docker_not_running': 'Docker não está em execução!',
'menu.docker_options': '🔧 Opções disponíveis:',
'menu.start_docker_desktop': '1. Inicie o Docker Desktop',
'menu.start_docker_linux': '2. Execute: sudo systemctl start docker (Linux)',
'menu.start_docker_macos': '3. Execute: brew services start docker (macOS com Homebrew)',
'menu.docker_tip': '💡 Depois que o Docker estiver rodando, execute o comando novamente.',
'menu.retry_or_exit': '🔄 Pressione Enter para tentar novamente ou digite "sair" para finalizar: ',
'menu.pilot_finished': '👋 Docker Pilot finalizado.',
'menu.docker_working': 'Docker está funcionando agora!',
'menu.no_compose_found': '⚠️ Nenhum arquivo docker-compose encontrado no diretório atual.',
'menu.tip_correct_directory': '💡 Dica: Certifique-se de estar no diretório correto do seu projeto.',
'menu.continue_anyway': 'Deseja continuar mesmo assim? (s/N): ',
'menu.finishing': '👋 Finalizando Docker Pilot.',
'menu.multiple_compose': '🔍 Múltiplos arquivos docker-compose encontrados:',
'menu.using_first_default': '💡 Usando o primeiro arquivo por padrão.',
'menu.compose_found': '✅ Arquivo docker-compose encontrado: {file}',nglish
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.i18n = exports.I18n = exports.messages = void 0;
exports.t = t;
exports.messages = {
en: {
'docker.not_running': 'Docker is not running. Please start Docker and try again.',
'docker.initializing': 'Initializing Docker Pilot...',
'docker.initialized': 'Docker Pilot initialized successfully',
'docker.failed': 'Failed to initialize Docker Pilot',
'docker.options_available': '🔧 Available options:',
'docker.start_desktop': '1. Start Docker Desktop',
'docker.start_linux': '2. Run: sudo systemctl start docker (Linux)',
'docker.start_macos': '3. Run: brew services start docker (macOS with Homebrew)',
'docker.restart_tip': '💡 After Docker is running, execute the command again.',
'docker.retry_or_exit': '🔄 Press Enter to try again or type "exit" to quit: ',
'docker.pilot_finished': 'Docker Pilot finished.',
'docker.working_now': 'Docker is working now!',
// Services
'service.started': 'Service {name} started successfully',
'service.stopped': 'Service {name} stopped successfully',
'service.restarted': 'Service {name} restarted successfully',
'service.not_found': 'Service {name} not found',
'service.building': 'Building service {name}...',
'service.built': 'Service {name} built successfully',
'service.starting': 'Starting service {name}...',
'service.stopping': 'Stopping service {name}...',
'service.restarting': 'Restarting service {name}...',
// Menu
'menu.welcome': 'Welcome to {projectName} Docker Pilot v{version}! 🐳',
'menu.goodbye': 'Thank you for using {projectName} Docker Pilot!',
'menu.choose': 'Choose your option:',
'menu.invalid_choice': 'Invalid choice. Please try again.', 'menu.press_enter': 'Press Enter to continue...',
'menu.exit': 'Exit',
'menu.back': 'Back',
'menu.directory': 'Directory: {path}',
'menu.services': 'Services: {services}',
'menu.no_services': 'None detected',
'menu.continue_question': '🔄 Do you want to execute another command? (y/N): ',
'menu.executing': '🚀 Executing: {command}',
'menu.docker_not_running': 'Docker is not running!',
'menu.docker_options': '🔧 Available options:',
'menu.start_docker_desktop': '1. Start Docker Desktop',
'menu.start_docker_linux': '2. Execute: sudo systemctl start docker (Linux)',
'menu.start_docker_macos': '3. Execute: brew services start docker (macOS with Homebrew)',
'menu.docker_tip': '💡 After Docker is running, execute the command again.',
'menu.retry_or_exit': '🔄 Press Enter to try again or type "exit" to finish: ',
'menu.pilot_finished': '👋 Docker Pilot finished.',
'menu.docker_working': 'Docker is working now!',
'menu.no_compose_found': '⚠️ No docker-compose file found in current directory.',
'menu.tip_correct_directory': '💡 Tip: Make sure you are in the correct project directory.',
'menu.continue_anyway': 'Do you want to continue anyway? (y/N): ',
'menu.finishing': '👋 Finishing Docker Pilot.',
'menu.multiple_compose': '🔍 Multiple docker-compose files found:',
'menu.using_first_default': '💡 Using the first file by default.',
'menu.compose_found': '✅ Docker-compose file found: {file}',
// Commands
'command.basic': 'Basic Commands',
'command.advanced': 'Advanced Commands',
'command.maintenance': 'Maintenance',
'command.setup': 'Quick setup (detect services)',
'command.start_all': 'Start all services',
'command.stop_all': 'Stop all services',
'command.restart_all': 'Restart all services',
'command.rebuild_all': 'Rebuild and start all services',
'command.logs_all': 'View logs of all services',
'command.status': 'View services status',
'command.shell': 'Open shell in service',
'command.health': 'Check services health',
'command.monitor': 'Monitor in real time',
'command.update': 'Update all images',
'command.clean': 'Clean unused resources',
'command.deep_clean': 'Deep clean',
'command.show_config': 'Show configuration',
'command.advanced_settings': 'Advanced settings',
'command.start_service': 'Start {service}',
'command.restart_service': 'Restart {service}',
'command.logs_service': 'View {service} logs', // Compose Management Commands
'command.compose_management': 'Compose Files Management',
'command.compose_list': 'List docker-compose files',
'command.compose_find': 'Find docker-compose files',
'command.compose_analyze': 'Analyze docker-compose file',
'command.compose_validate': 'Validate docker-compose file',
'command.compose_services': 'List services from compose',
'command.compose_set_primary': 'Set primary compose file',
'command.compose_change_primary': 'Change primary compose file',
'command.compose_show_primary': 'Show current primary file',
'command.compose_search_dir_prompt': 'Enter directory to search (or Enter for current): ', // General command messages
'command.detecting_services': '🔍 Detecting project services...',
'command.detection_complete': '✅ Detection complete! Restarting menu...',
'command.current_services': 'Current services: {services}',
'command.replace_services_question': 'Replace current services with those from compose file? (y/N): ',
'command.updating_images': 'Updating images...',
'command.update_complete': 'Update completed!',
'command.deep_clean_warning': '⚠️ This will remove unused images, volumes and networks. Continue? (y/N): ',
'command.operation_cancelled': 'Operation cancelled.',
'command.deep_clean_complete': 'Deep clean completed!',
'command.no_services_configured': 'No services configured',
'command.available_services': 'Available services:',
'command.choose_service': 'Choose the service (or Enter for the first): ',
'command.no_valid_service': 'No valid service selected',
'command.opening_shell': '🐚 Opening shell in {service}...',
'command.shell_tip': '💡 Type "exit" to leave the shell',
'command.service_manager_unavailable': 'Service Manager not available',
'command.health_status': '🏥 Services status:',
'command.health_check_complete': 'Health check completed!',
'command.monitoring_start': '📊 Starting real-time monitoring...',
'command.monitoring_tip': '💡 Press Ctrl+C to stop monitoring',
'command.docker_monitor': '🐳 Docker Monitor - {time}',
'command.monitoring_stopped': '📊 Monitoring stopped.',
'command.stop_logs_tip': '💡 Press Ctrl+C to stop viewing logs',
'command.showing_logs': '📜 Showing {service} logs...',
'command.press_ctrl_c': '💡 Press Ctrl+C to stop',
// Status
'status.running': 'Running',
'status.stopped': 'Stopped',
'status.starting': 'Starting',
'status.stopping': 'Stopping',
'status.healthy': 'Healthy',
'status.unhealthy': 'Unhealthy',
// Errors
'error.generic': 'An error occurred: {message}',
'error.service_not_found': 'Service not found: {name}',
'error.command_failed': 'Command failed: {command}',
'error.config_invalid': 'Invalid configuration',
'error.config_not_found': 'Configuration not found!',
'error.command_execution': 'Error executing command',
'error.service_manager_unavailable': 'Service Manager not available',
'error.invalid_choice': 'Invalid choice. Please try again.',
// Operations & Commands
'operation.starting_services': 'Starting services...',
'operation.stopping_services': 'Stopping services...',
'operation.restarting_services': 'Restarting services...',
'operation.building_services': 'Building services...',
'operation.pulling_images': 'Pulling images...',
'operation.cleaning_resources': 'Cleaning resources...',
'operation.success': 'Operation completed successfully',
'operation.failed': 'Operation failed',
'operation.cancelled': 'Operation cancelled',
// Services
'service.all_started': 'All services started successfully',
'service.all_stopped': 'All services stopped successfully',
'service.all_restarted': 'All services restarted successfully',
'service.started_success': '{name} started successfully',
'service.stopped_success': '{name} stopped successfully',
'service.restarted_success': '{name} restarted successfully',
'service.built_success': '{name} built successfully',
'service.failed_start': 'Failed to start {name}',
'service.failed_stop': 'Failed to stop {name}',
'service.failed_restart': 'Failed to restart {name}',
'service.failed_build': 'Failed to build {name}',
'service.scaled_success': '{name} scaled to {replicas} replicas',
'service.failed_scale': 'Failed to scale {name}',
'service.no_services': 'No services found',
'service.health_check': 'Service health check',
'service.is_healthy': '{name} is healthy', 'service.status_info': 'Service Status:',
// Setup
'setup.detecting': 'Detecting Docker project...',
'setup.configuring': 'Auto-configuring project...',
'setup.found_compose': 'Found: {file}',
'setup.service_detected': 'Service detected: {name}',
'setup.success': 'Project configured successfully!',
'setup.creating_initial': 'Creating initial configuration...',
'setup.new_project': 'Setting up new Docker Pilot project...',
'setup.initial_created': 'Initial configuration created!',
'setup.project_name': 'Project: {name}',
'setup.edit_config': 'You can edit docker-pilot.config.json to customize',
'setup.language_configured': 'Language configured successfully!',
'setup.ready_to_start': 'Ready to start using Docker Pilot!',
// Settings
'settings.title': '⚙️ Docker Pilot - Advanced Settings',
'settings.divider': '═══════════════════════════════════════════',
'settings.config_not_found': '❌ Configuration not found!',
'settings.change_language': '1. Change interface language',
'settings.configure_log_level': '2. Configure log level',
'settings.toggle_interactive': '3. Enable/disable interactive mode',
'settings.custom_messages': '4. Configure custom messages',
'settings.dev_settings': '5. Development settings',
'settings.back_to_main': '0. Back to main menu',
'settings.invalid_option': '❌ Invalid option!',
'settings.language_title': '🌍 Language Configuration', 'settings.graceful_shutdown': '👋 Gracefully shutting down...',
// Language selection
'language.title': '🌍 Language Selection',
'language.choose': 'Please choose your language / Por favor, escolha seu idioma:', 'language.option_en': '1. English',
'language.option_pt': '2. Português (Brasil)',
'language.prompt': 'Select option / Selecione a opção (1-2): ',
'language.invalid': 'Invalid option. Please try again. / Opção inválida. Tente novamente.',
'language.configured_success': 'Language configured successfully!',
'language.change_title': '🌍 Change Language',
'language.current': 'Current language: {language}',
'language.select_new': 'Select new language:',
'language.changed_success': 'Language changed successfully to {language}!',
// Plugins
'plugin.loading': 'Loading plugin: {name}',
'plugin.loaded': 'Plugin loaded: {name}',
'plugin.unloading': 'Unloading plugin: {name}',
'plugin.unloaded': 'Plugin unloaded: {name}',
'plugin.initializing': 'Initializing plugin: {name}',
'plugin.cleanup': 'Cleaning up plugin: {name}',
'plugin.not_found': 'Plugin not found: {name}',
'plugin.invalid': 'Plugin {name} is not valid',
'plugin.not_enabled': 'Plugin {name} is not enabled',
'plugin.failed_load': 'Failed to load plugin: {name}',
'plugin.failed_unload': 'Failed to unload plugin: {name}',
'plugin.config_updated': 'Config updated for plugin: {name}',
'plugin.hook_registered': 'Registered hook: {hook} for plugin: {name}',
'plugin.hook_failed': 'Hook execution failed: {hook}',
'plugin.manager_initialized': 'Plugin Manager initialized',
'plugin.cleanup_completed': 'Plugin cleanup completed',
'plugin.dir_not_found': 'Plugin directory not found: {dir}',
// Validation
'validation.config_invalid': 'Invalid configuration',
'validation.project_name_invalid': 'Project name should contain only lowercase letters, numbers, hyphens, and underscores',
'validation.project_name_long': 'Project name cannot exceed 63 characters',
'validation.service_name_invalid': 'Invalid service name format',
'validation.port_invalid': 'Invalid port number: {port}',
'validation.port_conflict': 'Port {port} is commonly used by {service}',
'validation.path_not_found': 'Path not found: {path}',
'validation.env_var_invalid': 'Invalid environment variable name: {name}',
'validation.env_var_sensitive': 'Environment variable {name} may contain sensitive data',
'validation.volume_invalid': 'Invalid volume format: {volume}',
'validation.cpu_limit_invalid': 'Invalid CPU limit format',
'validation.memory_limit_invalid': 'Invalid memory limit format',
'validation.docker_compose_invalid': 'Non-standard Docker Compose command: {command}',
'validation.plugin_path_invalid': 'Plugin path does not exist: {path}',
'validation.backup_retention_invalid': 'Backup retention must be at least 1 day',
'validation.cron_invalid': 'Invalid cron expression: {cron}',
'validation.refresh_interval_invalid': 'Refresh interval must be at least 1 second',
'validation.url_invalid': 'Invalid URL format: {url}',
'validation.port_mapping_invalid': 'Invalid port mapping format: {mapping}',
'validation.services_missing': 'Docker Compose file must contain a services section',
'validation.image_or_build_missing': 'Service should specify either "image" or "build"',
'validation.depends_on_invalid': 'Invalid depends_on reference: {service}',
'validation.health_check_missing': 'Critical service {service} should have health check', 'validation.port_conflict_services': 'Port {port} is used by multiple services: {services}',
// Error messages
'error.save_config': 'Error saving configuration',
'error.load_config': 'Error loading configuration',
// Common messages
'common.no_changes': 'No changes were made',
'common.back': 'Back',
'common.cancel': 'Cancel',
'common.confirm': 'Confirm',
'common.yes': 'Yes',
'common.no': 'No',
// CLI
'cli.help.title': '🐳 {projectName} Docker Pilot CLI v{version}',
'cli.help.usage': 'USAGE:',
'cli.help.usage_main': ' docker-pilot [command] [options]',
'cli.help.usage_interactive': ' docker-pilot # Start interactive menu (default)',
'cli.help.usage_interactive_flag': ' docker-pilot --interactive # Start interactive menu',
'cli.help.commands': 'COMMANDS:',
'cli.help.cmd_up': ' up, start Start all services or a specific service',
'cli.help.cmd_down': ' down, stop Stop all services or a specific service',
'cli.help.cmd_status': ' status, ps Show status of services',
'cli.help.cmd_build': ' build Build or rebuild services',
'cli.help.cmd_logs': ' logs, log Show service logs',
'cli.help.cmd_exec': ' exec Execute command in container',
'cli.help.cmd_shell': ' shell, sh Open interactive shell in container',
'cli.help.cmd_scale': ' scale Scale services to specified replicas',
'cli.help.cmd_restart': ' restart Restart services',
'cli.help.cmd_pull': ' pull Pull service images from registry',
'cli.help.cmd_clean': ' clean, cleanup Clean Docker resources',
'cli.help.cmd_config': ' config View and manage configuration',
'cli.help.options': 'GLOBAL OPTIONS:',
'cli.help.opt_help': ' --help, -h Show help',
'cli.help.opt_version': ' --version, -v Show version',
'cli.help.opt_interactive': ' --interactive, -i Start interactive menu',
'cli.help.opt_config': ' --config <path> Path to configuration file',
'cli.help.opt_cwd': ' --cwd <path> Working directory',
'cli.help.opt_log_level': ' --log-level <level> Log level (debug, info, warn, error)',
'cli.help.opt_silent': ' --silent Silent mode',
'cli.help.examples': 'EXAMPLES:',
'cli.help.example_interactive': ' docker-pilot # Start interactive menu',
'cli.help.example_interactive_flag': ' docker-pilot --interactive # Start interactive menu',
'cli.help.example_up': ' docker-pilot up # Start all services',
'cli.help.example_up_service': ' docker-pilot up web # Start web service',
'cli.help.example_down': ' docker-pilot down --volumes # Stop and remove volumes',
'cli.help.example_status': ' docker-pilot status --detailed # Show detailed status',
'cli.help.example_build': ' docker-pilot build --no-cache # Build without cache',
'cli.help.example_logs': ' docker-pilot logs web --follow # Follow web service logs',
'cli.help.example_exec': ' docker-pilot exec web bash # Open bash in web container',
'cli.help.example_shell': ' docker-pilot shell web # Open shell in web container',
'cli.help.example_scale': ' docker-pilot scale web=3 api=2 # Scale web to 3, api to 2 replicas',
'cli.help.example_restart': ' docker-pilot restart web # Restart web service',
'cli.help.example_pull': ' docker-pilot pull --parallel # Pull all images in parallel',
'cli.help.example_clean': ' docker-pilot clean --all # Clean all Docker resources',
'cli.help.example_config': ' docker-pilot config show # Show current configuration',
'cli.help.more_info': 'For more information about a specific command, use:',
'cli.help.more_info_cmd': ' docker-pilot <command> --help',
'cli.version.title': '{projectName} Docker Pilot CLI v{version}',
'cli.version.library': 'Docker Pilot Library v{version}',
'cli.version.node': 'Node.js {version}',
'cli.unknown_command': 'Unknown command: {command}',
'cli.use_help': 'Use --help to see available commands',
'cli.command_failed': 'Command failed: {error}',
'cli.execution_failed': 'CLI execution failed',
'cli.command_completed': 'Command completed in {time}ms',
'cli.menu_start_error': 'Error starting interactive menu:',
'cli.creating_auto_config': '🔧 Creating automatic configuration...', 'cli.config_created': '✅ Configuration created: {path}',
'cli.initialization_debug': 'Initializing Docker Pilot CLI...',
'cli.docker_init_failed': 'Docker initialization failed:',
'cli.commands_registered': 'Registered {count} commands',
'cli.init_success': 'Docker Pilot CLI initialized successfully',
'cli.init_failed': 'Failed to initialize Docker Pilot CLI',
// Commands
'cmd.docker_not_available': 'Docker is not available',
'cmd.docker_not_running': 'Docker is not available or not running',
'cmd.operation_cancelled': 'Operation cancelled by user',
'cmd.service_required': 'Service name is required',
'cmd.command_required': 'Command is required',
'cmd.invalid_format': 'Invalid format: {format}',
'cmd.args_required': 'At least one {type} is required',
'cmd.executing_in': 'Executing command in {service} container...',
'cmd.command_executed': 'Command executed in {service} container',
'cmd.failed_execute': 'Failed to execute command: {error}',
'cmd.opening_shell': 'Opening shell in {service} container...',
'cmd.shell_opened': 'Shell session opened in {service} container',
'cmd.failed_open_shell': 'Failed to open shell: {error}',
// Build Command
'cmd.build.loading': 'Building {service}...',
'cmd.build.loading_all': 'Building all services...',
'cmd.build.success': '✅ Successfully built {service}',
'cmd.build.success_all': '✅ Successfully built all services',
'cmd.build.failed': '❌ Build failed: {error}',
'cmd.build.service_text': 'service \'{service}\'',
'cmd.build.all_services': 'all services',
// Logs Command
'cmd.logs.loading': 'Fetching logs for {service}...',
'cmd.logs.loading_all': 'Fetching logs for all services...',
'cmd.logs.following': '📜 Following logs for {service}...',
'cmd.logs.following_all': '📜 Following logs for all services...',
'cmd.logs.stop_tip': 'Press Ctrl+C to stop',
'cmd.logs.failed': '❌ Failed to fetch logs: {error}',
// Restart Command
'cmd.restart.loading': 'Restarting {service}...',
'cmd.restart.loading_all': 'Restarting all services...',
'cmd.restart.success': '✅ Successfully restarted {service}',
'cmd.restart.success_all': '✅ Successfully restarted all services',
'cmd.restart.failed': '❌ Restart failed: {error}',
// Clean Command
'cmd.clean.loading': 'Cleaning Docker resources...',
'cmd.clean.success': '✅ Successfully cleaned Docker resources',
'cmd.clean.failed': '❌ Clean failed: {error}',
'cmd.clean.confirm': 'This will remove unused Docker resources. Continue? (y/N): ',
'cmd.clean.cancelled': 'Clean operation cancelled',
'cmd.clean.removing_containers': 'Removing stopped containers...',
'cmd.clean.removing_images': 'Removing unused images...',
'cmd.clean.removing_volumes': 'Removing unused volumes...',
'cmd.clean.removing_networks': 'Removing unused networks...',
'cmd.clean.prune_all': 'Pruning all unused resources...',
// Pull Command
'cmd.pull.loading': 'Pulling image for {service}...',
'cmd.pull.loading_all': 'Pulling images for all services...',
'cmd.pull.success': '✅ Successfully pulled {service}',
'cmd.pull.success_all': '✅ Successfully pulled all images',
'cmd.pull.failed': '❌ Pull failed: {error}',
'cmd.pull.parallel': 'Pulling images in parallel...',
// Exec Command
'cmd.exec.executing': 'Executing command in {service} container...',
'cmd.exec.success': 'Command executed successfully in {service}',
'cmd.exec.failed': '❌ Failed to execute command: {error}',
'cmd.exec.container_not_running': 'Container {service} is not running',
// Shell Command
'cmd.shell.opening': '🐚 Opening shell in {service} container...',
'cmd.shell.success': 'Shell opened in {service} container',
'cmd.shell.failed': '❌ Failed to open shell: {error}',
'cmd.shell.tip': '💡 Type "exit" to close the shell',
'cmd.shell.container_not_running': 'Container {service} is not running',
// Scale Command
'cmd.scale.scaling': 'Scaling {service} to {replicas} replicas...',
'cmd.scale.success': '✅ Successfully scaled {service} to {replicas} replicas',
'cmd.scale.failed': '❌ Scale failed: {error}',
'cmd.scale.invalid_replicas': 'Invalid number of replicas: {replicas}',
'cmd.scale.format_help': 'Use format: service=replicas (e.g., web=3)',
// Status Command
'cmd.status.loading': 'Checking service status...',
'cmd.status.title': '📊 Services Status',
'cmd.status.no_services': 'No services found',
'cmd.status.service_info': '{service}: {status}',
'cmd.status.detailed_info': '{service}: {status} (ID: {id}, Image: {image})',
'cmd.status.failed': '❌ Failed to get status: {error}',
// Config Command
'cmd.config.showing': 'Showing configuration...',
'cmd.config.title': '⚙️ Docker Pilot Configuration',
'cmd.config.project': 'Project: {name}',
'cmd.config.language': 'Language: {language}',
'cmd.config.log_level': 'Log Level: {level}',
'cmd.config.interactive': 'Interactive Mode: {enabled}',
'cmd.config.compose_file': 'Compose File: {file}',
'cmd.config.services': 'Services: {services}',
'cmd.config.failed': '❌ Failed to show configuration: {error}',
'cmd.building': 'Building {target}...',
'cmd.built_success': 'Successfully built {target}',
'cmd.build_failed': 'Build failed: {error}',
'cmd.starting': 'Starting {target}...',
'cmd.started_success': '{target} started successfully!',
'cmd.start_failed': 'Failed to start {target}',
'cmd.stopping': 'Stopping {target}...',
'cmd.stopped_success': '{target} stopped successfully!',
'cmd.stop_failed': 'Failed to stop {target}',
'cmd.restarting': 'Restarting {target}...',
'cmd.restarted_success': 'Successfully restarted {target}',
'cmd.restart_failed': 'Failed to restart services: {error}',
'cmd.cleaning': 'Cleaning Docker resources...',
'cmd.cleanup_success': 'Cleanup completed successfully',
'cmd.cleanup_failed': 'Cleanup failed: {error}',
'cmd.confirm_action': 'This will {action}. Continue?',
'cmd.confirm_volumes': 'remove volumes and ',
'cmd.confirm_stop': 'stop {target}',
'cmd.pulling': 'Pulling images for {target}...',
'cmd.pulled_success': 'Successfully pulled images for {target}',
'cmd.pull_failed': 'Failed to pull images: {error}',
'cmd.scaling': 'Scaling services...',
'cmd.scaled_success': 'Successfully scaled {count} service{plural}', 'cmd.scale_failed': 'Failed to scale services: {error}',
'cmd.fetching_logs': 'Fetching logs for {target}...',
'cmd.logs_retrieved': 'Logs retrieved for {target}',
'cmd.logs_failed': 'Failed to retrieve logs: {error}',
'cmd.getting_status': 'Getting status for {target}...',
'cmd.status_retrieved': 'Status retrieved for {target}',
'cmd.status_failed': 'Failed to get status for {target}',
'cmd.status_complete': 'Status check completed successfully',
'cmd.all_services': 'all services',
'cmd.service_name': 'service \'{name}\'',
// Auto-detect
'autodetect.no_compose_found': '⚠️ No docker-compose file found in current directory.',
'autodetect.directory_tip': '💡 Tip: Make sure you are in the correct project directory.\n',
'autodetect.continue_anyway': 'Do you want to continue anyway? (y/N): ',
'autodetect.finishing_pilot': 'Finishing Docker Pilot.',
'autodetect.multiple_compose_found': '🔍 Multiple docker-compose files found:',
'autodetect.using_first_default': '💡 Using the first file by default.\n', 'autodetect.compose_found': '✅ Docker-compose file found: {file}\n',
'autodetect.detection_error': 'Error in auto-detection:',
// Docker Compose Detection
'compose.no_files_found': 'No docker-compose files found in project directory or subdirectories',
'compose.multiple_files_found': 'Found {count} docker-compose files in project',
'compose.services': 'services',
'compose.using_first_file': 'Using primary file: {file}',
'compose.file_not_found': 'Docker Compose file not found: {file}',
'compose.detecting_services': 'Detecting services from: {file}',
'compose.no_services_in_file': 'No services found in Docker Compose file', 'compose.recursive_search': 'Searching recursively for docker-compose files...',
'compose.found_in_subdirectory': 'Found docker-compose file in subdirectory: {path}',
'compose.select_file': 'Multiple docker-compose files found. Please select one:',
'compose.file_details': '{index}. {path} ({serviceCount} services: {services})',
'compose.select_file_prompt': 'Select a file (1-{count}) or press Enter for default [{defaultFile}]: ',
'compose.using_selected_file': 'Using selected file: {file}',
'compose.search_depth': 'Searching with depth: {depth} levels',
'compose.found_files_summary': '📋 Found {count} docker-compose files:',
'compose.file_info': ' 📁 Directory: {dir}',
'compose.file_size': ' 📏 Size: {size}',
'compose.file_modified': ' 📅 Modified: {modified}',
'compose.prioritizing_files': 'Prioritizing files by: 1) Root directory, 2) Service count, 3) Alphabetical order',
'compose.file_set': 'Primary compose file set to: {file}',
'compose.file_saved': 'Compose file selection saved successfully',
'compose.no_primary_file': 'No primary compose file configured', 'compose.current_primary': 'Current primary file: {file}',
'compose.choose_new_primary': 'Choose new primary compose file:',
'compose.primary_changed': 'Primary compose file changed to: {file}',
'compose.persistence_menu': 'Compose File Persistence',
'compose.keep_primary_or_change': 'Keep current primary file? (Y/n): ',
'compose.services_synchronized': 'Services synchronized with primary compose file! ✅',
'compose.services_not_reloaded': 'Services were not reloaded. Use "Detect services" in the main menu to synchronize manually.',
// Compose Command
'cmd.compose.title': '🐳 Docker Compose File Management',
'cmd.compose.usage': 'Usage',
'cmd.compose.subcommands': 'Subcommands',
'cmd.compose.options': 'Options',
'cmd.compose.examples': 'Examples',
'cmd.compose.list_desc': 'List all docker-compose files in project',
'cmd.compose.find_desc': 'Find docker-compose files recursively',
'cmd.compose.analyze_desc': 'Analyze a docker-compose file structure',
'cmd.compose.validate_desc': 'Validate a docker-compose file',
'cmd.compose.services_desc': 'List services in a docker-compose file',
'cmd.compose.help_desc': 'Show help for compose command',
'cmd.compose.variants_desc': 'Include environment variants (dev, prod, etc.)',
'cmd.compose.depth_desc': 'Set maximum search depth (default: 6)',
// Compose Analysis
'compose.file_analysis': 'File Analysis',
'compose.file_valid': 'Valid Docker Compose file',
'compose.file_invalid': 'Invalid Docker Compose file {file}: {error}',
'compose.no_services_warning': 'Warning: No services section found',
'compose.no_version_warning': 'Warning: No version specified',
'compose.found': 'found', // Error messages
'error.unknown_subcommand': 'Unknown subcommand: {command}',
'error.missing_argument': 'Missing required argument: {argument}',
'error.failed_to_analyze': 'Failed to analyze {file}: {error}',
// Language Selection
'language.welcome': '🌍 Welcome to Docker Pilot!',
'language.choose_initial': 'Please choose your preferred language:', 'language.option_english': '1. English', 'language.option_portuguese': '2. Português (Brasil)',
'language.enter_choice': 'Enter your choice (1-2): ',
'language.invalid_choice': 'Invalid choice. Please enter 1 or 2.',
'language.back_menu': 'Returning to main menu...',
// BaseCommand messages
'base.usage': 'Usage',
'base.description': 'Description',
'base.examples': 'Examples',
'base.docker_check': 'Checking Docker availability...',
'base.docker_available': 'Docker is available',
'base.docker_unavailable': 'Docker is not available or not running',
'base.operation_starting': 'Starting operation...',
'base.operation_completed': 'Operation completed',
'base.operation_failed': 'Operation failed',
'base.parsing_options': 'Parsing command options...',
'base.validating_args': 'Validating arguments...',
'base.confirmation_required': 'Confirmation required for this action',
'base.destructive_warning': '⚠️ This is a potentially destructive action',
'base.service_validation': 'Validating service name...',
'base.available_services': 'Available services:',
'base.no_services': 'No services configured',
// Error messages for BaseCommand
'error.invalid_args_count': 'Invalid number of arguments. Expected {expected}, received {received}',
'error.docker_not_running': 'Docker is not running or not available',
'error.operation_failed': 'Operation failed: {message}',
'error.invalid_service': 'Invalid service name: {service}',
'error.no_services_configured': 'No services are configured',
'error.confirmation_failed': 'Action confirmation failed',
// Command result messages
'result.success': 'Command executed successfully',
'result.error': 'Command execution failed',
'result.execution_time': 'Execution time: {time}ms',
// Compose interface messages
'compose.available_files': 'Available docker-compose files:',
'compose.select_file_to_analyze': 'Select file to analyze (1-10): ',
'compose.select_file_to_validate': 'Select file to validate (1-10): '
},
'pt-br': {
'docker.not_running': 'Docker não está rodando. Inicie o Docker e tente novamente.',
'docker.initializing': 'Inicializando Docker Pilot...',
'docker.initialized': 'Docker Pilot inicializado com sucesso',
'docker.failed': 'Falha ao inicializar Docker Pilot',
'docker.options_available': '🔧 Opções disponíveis:',
'docker.start_desktop': '1. Inicie o Docker Desktop',
'docker.start_linux': '2. Execute: sudo systemctl start docker (Linux)',
'docker.start_macos': '3. Execute: brew services start docker (macOS com Homebrew)',
'docker.restart_tip': '💡 Depois que o Docker estiver rodando, execute o comando novamente.',
'docker.retry_or_exit': '🔄 Pressione Enter para tentar novamente ou digite "sair" para finalizar: ',
'docker.pilot_finished': 'Docker Pilot finalizado.',
'docker.working_now': 'Docker está funcionando agora!',
// Services
'service.started': 'Serviço {name} iniciado com sucesso',
'service.stopped': 'Serviço {name} parado com sucesso',
'service.restarted': 'Serviço {name} reiniciado com sucesso',
'service.not_found': 'Serviço {name} não encontrado',
'service.building': 'Construindo serviço {name}...',
'service.built': 'Serviço {name} construído com sucesso',
'service.starting': 'Iniciando serviço {name}...',
'service.stopping': 'Parando serviço {name}...',
'service.restarting': 'Reiniciando serviço {name}...',
// Menu
'menu.welcome': 'Bem-vindo ao {projectName} Docker Pilot v{version}! 🐳',
'menu.goodbye': 'Obrigado por usar o {projectName} Docker Pilot!',
'menu.choose': 'Digite sua escolha:',
'menu.invalid_choice': 'Escolha inválida. Tente novamente.',
'menu.press_enter': 'Pressione Enter para continuar...',
'menu.exit': 'Sair',
// Commands
'command.basic': 'Comandos Básicos',
'command.advanced': 'Comandos Avançados',
'command.maintenance': 'Manutenção',
'command.setup': 'Setup rápido (detectar serviços)',
'command.start_all': 'Iniciar todos os serviços',
'command.stop_all': 'Parar todos os serviços',
'command.restart_all': 'Reiniciar todos os serviços',
'command.rebuild_all': 'Reconstruir e iniciar todos os serviços',
'command.logs_all': 'Ver logs de todos os serviços',
'command.status': 'Ver status dos serviços',
'command.shell': 'Abrir shell no serviço',
'command.health': 'Verificar saúde dos serviços',
'command.monitor': 'Monitorar em tempo real',
'command.update': 'Atualizar todas as imagens',
'command.clean': 'Limpar recursos não utilizados',
'command.deep_clean': 'Limpeza profunda', 'command.show_config': 'Mostrar configuração',
'command.advanced_settings': 'Configurações avançadas',
'command.start_service': 'Iniciar {service}',
'command.restart_service': 'Reiniciar {service}',
'command.logs_service': 'Ver logs do {service}', // Comandos de Gerenciamento de Compose
'command.compose_management': 'Gerenciamento de Arquivos Compose',
'command.compose_list': 'Listar arquivos docker-compose',
'command.compose_find': 'Buscar arquivos docker-compose',
'command.compose_analyze': 'Analisar arquivo docker-compose',
'command.compose_validate': 'Validar arquivo docker-compose',
'command.compose_services': 'Listar serviços do compose',
'command.compose_set_primary': 'Definir arquivo compose principal',
'command.compose_change_primary': 'Alterar arquivo compose principal',
'command.compose_show_primary': 'Mostrar arquivo principal atual',
'command.compose_search_dir_prompt': 'Digite o diretório para buscar (ou Enter para atual): ', // Mensagens gerais de comandos
'command.detecting_services': '🔍 Detectando serviços do projeto...',
'command.detection_complete': '✅ Detecção concluída! Reiniciando menu...',
'command.current_services': 'Serviços atuais: {services}',
'command.replace_services_question': 'Substituir serviços atuais pelos do arquivo compose? (s/N): ',
'command.updating_images': 'Atualizando imagens...',
'command.update_complete': 'Atualização concluída!',
'command.deep_clean_warning': '⚠️ Isso removerá imagens, volumes e redes não utilizados. Continuar? (s/N): ',
'command.operation_cancelled': 'Operação cancelada.',
'command.deep_clean_complete': 'Limpeza profunda concluída!',
'command.no_services_configured': 'Nenhum serviço configurado',
'command.available_services': 'Serviços disponíveis:',
'command.choose_service': 'Escolha o serviço (ou Enter para o primeiro): ',
'command.no_valid_service': 'Nenhum serviço válido selecionado',
'command.opening_shell': '🐚 Abrindo shell no {service}...',
'command.shell_tip': '💡 Digite "exit" para sair do shell',
'command.service_manager_unavailable': 'Service Manager não disponível',
'command.health_status': '🏥 Status dos serviços:',
'command.health_check_complete': 'Verificação de saúde concluída!',
'command.monitoring_start': '📊 Iniciando monitoramento em tempo real...',
'command.monitoring_tip': '💡 Pressione Ctrl+C para parar o monitoramento',
'command.docker_monitor': '🐳 Monitor Docker - {time}',
'command.monitoring_stopped': '📊 Monitoramento interrompido.',
'command.stop_logs_tip': '💡 Pressione Ctrl+C para parar de visualizar os logs',
'command.showing_logs': '📜 Mostrando logs do {service}...',
'command.press_ctrl_c': '💡 Pressione Ctrl+C para parar',
// Status
'status.running': 'Rodando',
'status.stopped': 'Parado',
'status.starting': 'Iniciando',
'status.stopping': 'Parando',
'status.healthy': 'Saudável',
'status.unhealthy': 'Com problemas',
// Errors
'error.generic': 'Ocorreu um erro: {message}',
'error.service_not_found': 'Serviço não encontrado: {name}',
'error.command_failed': 'Comando falhou: {command}',
'error.config_invalid': 'Configuração inválida',
'error.config_not_found': 'Configuração não encontrada!',
'error.command_execution': 'Erro ao executar comando',
'error.service_manager_unavailable': 'Service Manager não disponível',
'error.invalid_choice': 'Opção inválida. Tente novamente.',
// Operations & Commands
'operation.starting_services': 'Iniciando serviços...',
'operation.stopping_services': 'Parando serviços...',
'operation.restarting_services': 'Reiniciando serviços...',
'operation.building_services': 'Construindo serviços...',
'operation.pulling_images': 'Baixando imagens...',
'operation.cleaning_resources': 'Limpando recursos...',
'operation.success': 'Operação concluída com sucesso',
'operation.failed': 'Operação falhou',
'operation.cancelled': 'Operação cancelada',
// Services
'service.all_started': 'Todos os serviços iniciados com sucesso',
'service.all_stopped': 'Todos os serviços parados com sucesso',
'service.all_restarted': 'Todos os serviços reiniciados com sucesso',
'service.started_success': '{name} iniciado com sucesso',
'service.stopped_success': '{name} parado com sucesso',
'service.restarted_success': '{name} reiniciado com sucesso',
'service.built_success': '{name} construído com sucesso',
'service.failed_start': 'Falha ao iniciar {name}',
'service.failed_stop': 'Falha ao parar {name}',
'service.failed_restart': 'Falha ao reiniciar {name}',
'service.failed_build': 'Falha ao construir {name}',
'service.scaled_success': '{name} escalado para {replicas} réplicas',
'service.failed_scale': 'Falha ao escalar {name}',
'service.no_services': 'Nenhum serviço encontrado',
'service.health_check': 'Verificação de saúde dos serviços',
'service.is_healthy': '{name} está saudável',
'service.status_info': 'Status dos Serviços:', // Setup
'setup.detecting': 'Detectando projeto Docker...',
'setup.configuring': 'Auto-configurando projeto...',
'setup.found_compose': 'Encontrado: {file}',
'setup.service_detected': 'Serviço detectado: {name}',
'setup.success': 'Projeto configurado com sucesso!',
'setup.creating_initial': 'Criando configuração inicial...',
'setup.new_project': 'Configurando novo projeto Docker Pilot...',
'setup.initial_created': 'Configuração inicial criada!',
'setup.project_name': 'Projeto: {name}',
'setup.edit_config': 'Você pode editar docker-pilot.config.json para personalizar',
'setup.language_configured': 'Idioma configurado com sucesso!',
'setup.ready_to_start': 'Pronto para usar o Docker Pilot!',
// Settings
'settings.title': '⚙️ Docker Pilot - Configurações Avançadas',
'settings.divider': '═══════════════════════════════════════════',
'settings.config_not_found': '❌ Configuração não encontrada!',
'settings.change_language': '1. Alterar idioma da interface',
'settings.configure_log_level': '2. Configurar nível de log',
'settings.toggle_interactive': '3. Ativar/desativar modo interativo',
'settings.custom_messages': '4. Configurar mensagens personalizadas',
'settings.dev_settings': '5. Configurações de desenvolvimento',
'settings.back_to_main': '0. Voltar ao menu principal',
'settings.invalid_option': '❌ Opção inválida!',
'settings.language_title': '🌍 Configuração de Idioma', 'settings.graceful_shutdown': '👋 Finalizando com segurança...',
// Language selection
'language.title': '🌍 Seleção de Idioma',
'language.choose': 'Please choose your language / Por favor, escolha seu idioma:',
'language.option_en': '1. English',
'language.option_pt': '2. Português (Brasil)',
'language.prompt': 'Select option / Selecione a opção (1-2): ',
'language.invalid': 'Invalid option. Please try again. / Opção inválida. Tente novamente.',
'language.configured_success': 'Idioma configurado com sucesso!',
'language.current': 'Idioma atual: {language}',
'language.change_title': '🌍 Alterar Idioma',
'language.select_new': 'Selecione o novo idioma:',
'language.changed_success': 'Idioma alterado com sucesso para {language}!',
// Plugins
'plugin.loading': 'Carregando plugin: {name}',
'plugin.loaded': 'Plugin carregado: {name}',
'plugin.unloading': 'Descarregando plugin: {name}',
'plugin.unloaded': 'Plugin descarregado: {name}',
'plugin.initializing': 'Inicializando plugin: {name}',
'plugin.cleanup': 'Limpando plugin: {name}',
'plugin.not_found': 'Plugin não encontrado: {name}',
'plugin.invalid': 'Plugin {name} não é válido',
'plugin.not_enabled': 'Plugin {name} não está habilitado',
'plugin.failed_load': 'Falha ao carregar plugin: {name}',
'plugin.failed_unload': 'Falha ao descarregar plugin: {name}',
'plugin.config_updated': 'Configuração atualizada para plugin: {name}',
'plugin.hook_registered': 'Hook registrado: {hook} para plugin: {name}',
'plugin.hook_failed': 'Execução do hook falhou: {hook}',
'plugin.manager_initialized': 'Gerenciador de Plugins inicializado',
'plugin.cleanup_completed': 'Limpeza de plugins completa',
'plugin.dir_not_found': 'Diretório de plugins não encontrado: {dir}',
// Validation
'validation.config_invalid': 'Configuração inválida',
'validation.project_name_invalid': 'Nome do projeto deve conter apenas letras minúsculas, números, hífens e sublinhados',
'validation.project_name_long': 'Nome do projeto não pode exceder 63 caracteres',
'validation.service_name_invalid': 'Formato de nome de serviço inválido',
'validation.port_invalid': 'Número de porta inválido: {port}',
'validation.port_conflict': 'Porta {port} é comumente usada por {service}',
'validation.path_not_found': 'Caminho não encontrado: {path}',
'validation.env_var_invalid': 'Nome de variável de ambiente inválido: {name}',
'validation.env_var_sensitive': 'Variável de ambiente {name} pode conter dados sensíveis',
'validation.volume_invalid': 'Formato de volume inválido: {volume}',
'validation.cpu_limit_invalid': 'Formato de limite de CPU inválido',
'validation.memory_limit_invalid': 'Formato de limite de memória inválido',