5 * Contains \Drupal\Console\Command\Locale\LanguageDeleteDebugCommand.
8 namespace Drupal\Console\Command\Locale;
10 use Drupal\Console\Core\Style\DrupalStyle;
11 use Symfony\Component\Console\Input\InputArgument;
12 use Symfony\Component\Console\Input\InputInterface;
13 use Symfony\Component\Console\Output\OutputInterface;
14 use Symfony\Component\Console\Command\Command;
15 use Drupal\Console\Command\Shared\LocaleTrait;
16 use Drupal\Console\Core\Command\Shared\CommandTrait;
17 use Drupal\Core\Extension\ModuleHandlerInterface;
18 use Drupal\Core\Entity\EntityTypeManagerInterface;
19 use Drupal\Console\Utils\Site;
20 use Drupal\Console\Annotations\DrupalCommand;
24 * extension = "locale",
25 * extensionType = "module"
28 class LanguageDeleteCommand extends Command
39 * @var EntityTypeManagerInterface
41 protected $entityTypeManager;
44 * @var ModuleHandlerInterface
46 protected $moduleHandler;
49 * LoginUrlCommand constructor.
52 * @param EntityTypeManagerInterface $entityTypeManager
53 * @param ModuleHandlerInterface $moduleHandler
55 public function __construct(
57 EntityTypeManagerInterface $entityTypeManager,
58 ModuleHandlerInterface $moduleHandler
61 $this->entityTypeManager = $entityTypeManager;
62 $this->moduleHandler = $moduleHandler;
63 parent::__construct();
66 protected function configure()
69 ->setName('locale:language:delete')
70 ->setDescription($this->trans('commands.locale.language.delete.description'))
73 InputArgument::REQUIRED,
74 $this->trans('commands.locale.translation.status.arguments.language')
78 protected function execute(InputInterface $input, OutputInterface $output)
80 $io = new DrupalStyle($input, $output);
81 $moduleHandler = $this->moduleHandler;
82 $moduleHandler->loadInclude('locale', 'inc', 'locale.translation');
83 $moduleHandler->loadInclude('locale', 'module');
85 $language = $input->getArgument('language');
87 $languagesObjects = locale_translatable_language_list();
88 $languages = $this->site->getStandardLanguages();
90 if (isset($languagesObjects[$language])) {
91 $languageEntity = $languagesObjects[$language];
92 } elseif (array_search($language, $languages)) {
93 $langcode = array_search($language, $languages);
94 $languageEntity = $languagesObjects[$langcode];
98 $this->trans('commands.locale.language.delete.messages.invalid-language'),
107 $configurable_language_storage = $this->entityTypeManager->getStorage('configurable_language');
108 $configurable_language_storage->load($languageEntity->getId())->delete();
112 $this->trans('commands.locale.language.delete.messages.language-deleted-successfully'),
113 $languageEntity->getName()
116 } catch (\Exception $e) {
117 $io->error($e->getMessage());