protected function execute(InputInterface $input, OutputInterface $output)
 {
     $io = new DrupalStyle($input, $output);
     $moduleHandler = $this->moduleHandler;
     $moduleHandler->loadInclude('locale', 'inc', 'locale.translation');
     $moduleHandler->loadInclude('locale', 'module');
     $language = $input->getArgument('language');
     $languages = $this->site->getStandardLanguages();
     if (isset($languages[$language])) {
         $langcode = $language;
     } elseif (array_search($language, $languages)) {
         $langcode = array_search($language, $languages);
     } else {
         $io->error(sprintf($this->trans('commands.locale.language.add.messages.invalid-language'), $language));
         return 1;
     }
     try {
         $language = ConfigurableLanguage::createFromLangcode($langcode);
         $language->type = LOCALE_TRANSLATION_REMOTE;
         $language->save();
         $io->info(sprintf($this->trans('commands.locale.language.add.messages.language-add-successfully'), $language->getName()));
     } catch (\Exception $e) {
         $io->error($e->getMessage());
         return 1;
     }
     return 0;
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $io = new DrupalStyle($input, $output);
     $moduleHandler = $this->moduleHandler;
     $moduleHandler->loadInclude('locale', 'inc', 'locale.translation');
     $moduleHandler->loadInclude('locale', 'module');
     $language = $input->getArgument('language');
     $languagesObjects = locale_translatable_language_list();
     $languages = $this->site->getStandardLanguages();
     if (isset($languagesObjects[$language])) {
         $languageEntity = $languagesObjects[$language];
     } elseif (array_search($language, $languages)) {
         $langcode = array_search($language, $languages);
         $languageEntity = $languagesObjects[$langcode];
     } else {
         $io->error(sprintf($this->trans('commands.locale.language.delete.messages.invalid-language'), $language));
         return 1;
     }
     try {
         $configurable_language_storage = $this->entityTypeManager->getStorage('configurable_language');
         $configurable_language_storage->load($languageEntity->getId())->delete();
         $io->info(sprintf($this->trans('commands.locale.language.delete.messages.language-deleted-successfully'), $languageEntity->getName()));
     } catch (\Exception $e) {
         $io->error($e->getMessage());
         return 1;
     }
     return 0;
 }
 /**
  * {@inheritdoc}
  */
 protected function interact(InputInterface $input, OutputInterface $output)
 {
     $io = new DrupalStyle($input, $output);
     // --profile option
     $profile = $input->getArgument('profile');
     if (!$profile) {
         $profiles = $this->extensionManager->discoverProfiles()->showCore()->showNoCore()->showInstalled()->showUninstalled()->getList(true);
         $profiles = array_filter($profiles, function ($profile) {
             return strpos($profile, 'testing') !== 0;
         });
         $profile = $io->choice($this->trans('commands.site.install.questions.profile'), $profiles);
         $input->setArgument('profile', $profile);
     }
     //        // --langcode option
     $langcode = $input->getOption('langcode');
     if (!$langcode) {
         $languages = $this->site->getStandardLanguages();
         $defaultLanguage = $this->configurationManager->getConfiguration()->get('application.language');
         $langcode = $io->choiceNoList($this->trans('commands.site.install.questions.langcode'), $languages, $languages[$defaultLanguage]);
         $input->setOption('langcode', $langcode);
     }
     // Use default database setting if is available
     $database = Database::getConnectionInfo();
     if (empty($database['default'])) {
         // --db-type option
         $dbType = $input->getOption('db-type');
         if (!$dbType) {
             $databases = $this->site->getDatabaseTypes();
             $dbType = $io->choice($this->trans('commands.migrate.setup.questions.db-type'), array_column($databases, 'name'));
             foreach ($databases as $dbIndex => $database) {
                 if ($database['name'] == $dbType) {
                     $dbType = $dbIndex;
                 }
             }
             $input->setOption('db-type', $dbType);
         }
         if ($dbType === 'sqlite') {
             // --db-file option
             $dbFile = $input->getOption('db-file');
             if (!$dbFile) {
                 $dbFile = $io->ask($this->trans('commands.migrate.execute.questions.db-file'), 'sites/default/files/.ht.sqlite');
                 $input->setOption('db-file', $dbFile);
             }
         } else {
             // --db-host option
             $dbHost = $input->getOption('db-host');
             if (!$dbHost) {
                 $dbHost = $this->dbHostQuestion($io);
                 $input->setOption('db-host', $dbHost);
             }
             // --db-name option
             $dbName = $input->getOption('db-name');
             if (!$dbName) {
                 $dbName = $this->dbNameQuestion($io);
                 $input->setOption('db-name', $dbName);
             }
             // --db-user option
             $dbUser = $input->getOption('db-user');
             if (!$dbUser) {
                 $dbUser = $this->dbUserQuestion($io);
                 $input->setOption('db-user', $dbUser);
             }
             // --db-pass option
             $dbPass = $input->getOption('db-pass');
             if (!$dbPass) {
                 $dbPass = $this->dbPassQuestion($io);
                 $input->setOption('db-pass', $dbPass);
             }
             // --db-port prefix
             $dbPort = $input->getOption('db-port');
             if (!$dbPort) {
                 $dbPort = $this->dbPortQuestion($io);
                 $input->setOption('db-port', $dbPort);
             }
         }
         // --db-prefix
         $dbPrefix = $input->getOption('db-prefix');
         if (!$dbPrefix) {
             $dbPrefix = $this->dbPrefixQuestion($io);
             $input->setOption('db-prefix', $dbPrefix);
         }
     } else {
         $input->setOption('db-type', $database['default']['driver']);
         $input->setOption('db-host', $database['default']['host']);
         $input->setOption('db-name', $database['default']['database']);
         $input->setOption('db-user', $database['default']['username']);
         $input->setOption('db-pass', $database['default']['password']);
         $input->setOption('db-port', $database['default']['port']);
         $input->setOption('db-prefix', $database['default']['prefix']['default']);
         $io->info(sprintf($this->trans('commands.site.install.messages.using-current-database'), $database['default']['driver'], $database['default']['database'], $database['default']['username']));
     }
     // --site-name option
     $siteName = $input->getOption('site-name');
     if (!$siteName) {
         $siteName = $io->ask($this->trans('commands.site.install.questions.site-name'), 'Drupal 8 Site Install');
         $input->setOption('site-name', $siteName);
     }
     // --site-mail option
     $siteMail = $input->getOption('site-mail');
     if (!$siteMail) {
         $siteMail = $io->ask($this->trans('commands.site.install.questions.site-mail'), '*****@*****.**');
         $input->setOption('site-mail', $siteMail);
     }
     // --account-name option
     $accountName = $input->getOption('account-name');
     if (!$accountName) {
         $accountName = $io->ask($this->trans('commands.site.install.questions.account-name'), 'admin');
         $input->setOption('account-name', $accountName);
     }
     // --account-pass option
     $accountPass = $input->getOption('account-pass');
     if (!$accountPass) {
         $accountPass = $io->askHidden($this->trans('commands.site.install.questions.account-pass'));
         $input->setOption('account-pass', $accountPass);
     }
     // --account-mail option
     $accountMail = $input->getOption('account-mail');
     if (!$accountMail) {
         $accountMail = $io->ask($this->trans('commands.site.install.questions.account-mail'), $siteMail);
         $input->setOption('account-mail', $accountMail);
     }
 }