UNPKG

docker-pilot

Version:

A powerful, scalable Docker CLI library for managing containerized applications of any size

143 lines β€’ 5.3 kB
"use strict"; /** * Language Setup Utility * Handles initial language configuration and setup */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LanguageSetup = void 0; const inquirer_1 = __importDefault(require("inquirer")); const i18n_1 = require("./i18n"); class LanguageSetup { constructor() { this.i18n = new i18n_1.I18n(); } /** * Get available language choices */ getLanguageChoices() { return [ { name: 'πŸ‡ΊπŸ‡Έ English', value: 'en', short: 'English' }, { name: 'πŸ‡§πŸ‡· PortuguΓͺs Brasileiro', value: 'pt-br', short: 'PortuguΓͺs' } ]; } /** * Auto-detect system language */ detectSystemLanguage() { const lang = process.env['LANG'] || process.env['LANGUAGE'] || ''; if (lang.toLowerCase().includes('pt')) { return 'pt-br'; } return 'en'; } /** * Show language selection prompt */ async promptLanguageSelection() { const detectedLanguage = this.detectSystemLanguage(); const choices = this.getLanguageChoices(); console.log('\n🌍 Docker Pilot - Language Setup'); console.log('═══════════════════════════════════\n'); // Show detected language const detectedChoice = choices.find(c => c.value === detectedLanguage); if (detectedChoice) { console.log(`πŸ” Detected system language: ${detectedChoice.name}`); } const response = await inquirer_1.default.prompt([ { type: 'list', name: 'language', message: 'Choose your preferred language / Escolha seu idioma:', choices: [ ...choices, new inquirer_1.default.Separator(), { name: 'πŸ”„ Auto-detect (recommended)', value: 'auto', short: 'Auto' } ], default: 'auto' } ]); if (response.language === 'auto') { return detectedLanguage; } return response.language; } /** * Show welcome message in selected language */ showWelcomeMessage(language) { this.i18n.setLanguage(language); console.log('🌟 ' + this.i18n.t('setup.language_configured')); console.log('πŸš€ ' + this.i18n.t('setup.ready_to_start')); if (language === 'pt-br') { console.log('πŸ’‘ Agora toda a interface estarΓ‘ em portuguΓͺs!'); } else { console.log('πŸ’‘ The interface is now configured in English!'); } console.log(''); } /** * Check if language setup is needed */ isLanguageSetupNeeded(configLanguage) { // If no language is configured, setup is needed if (!configLanguage) { return true; } // If it's set to default 'en' but system is Portuguese, ask if user wants to change if (configLanguage === 'en' && this.detectSystemLanguage() === 'pt-br') { return false; // Don't force change, respect user's choice } return false; } /** * Quick setup for first-time users */ async quickLanguageSetup() { const detectedLanguage = this.detectSystemLanguage(); console.log('\nπŸŽ‰ Welcome to Docker Pilot! / Bem-vindo ao Docker Pilot!'); console.log('═══════════════════════════════════════════════════════\n'); // Show a more comprehensive language selection const choices = this.getLanguageChoices(); const response = await inquirer_1.default.prompt([ { type: 'list', name: 'language', message: 'Choose your preferred language / Escolha seu idioma preferido:', choices: [ ...choices, new inquirer_1.default.Separator(), { name: `πŸ” Auto-detect (${choices.find(c => c.value === detectedLanguage)?.name || 'English'})`, value: 'auto', short: 'Auto-detect' } ], default: 'auto' } ]); const finalLanguage = response.language === 'auto' ? detectedLanguage : response.language; // Show immediate confirmation const selectedChoice = choices.find(c => c.value === finalLanguage); console.log(`\nβœ… Language selected: ${selectedChoice?.name || 'English'}`); console.log(`βœ… Idioma selecionado: ${selectedChoice?.name || 'English'}\n`); return finalLanguage; } } exports.LanguageSetup = LanguageSetup; //# sourceMappingURL=LanguageSetup.js.map