docker-pilot
Version:
A powerful, scalable Docker CLI library for managing containerized applications of any size
143 lines β’ 5.3 kB
JavaScript
;
/**
* 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