5 * Contains \Drupal\Console\Command\Locale\LanguageDeleteDebugCommand.
8 namespace Drupal\Console\Command\Locale;
10 use Symfony\Component\Console\Input\InputArgument;
11 use Symfony\Component\Console\Input\InputInterface;
12 use Symfony\Component\Console\Output\OutputInterface;
13 use Drupal\Console\Core\Command\Command;
14 use Drupal\Core\Extension\ModuleHandlerInterface;
15 use Drupal\Core\Entity\EntityTypeManagerInterface;
16 use Drupal\Console\Utils\Site;
17 use Drupal\Console\Annotations\DrupalCommand;
21 * extension = "locale",
22 * extensionType = "module"
25 class LanguageDeleteCommand extends Command
34 * @var EntityTypeManagerInterface
36 protected $entityTypeManager;
39 * @var ModuleHandlerInterface
41 protected $moduleHandler;
44 * LoginUrlCommand constructor.
47 * @param EntityTypeManagerInterface $entityTypeManager
48 * @param ModuleHandlerInterface $moduleHandler
50 public function __construct(
52 EntityTypeManagerInterface $entityTypeManager,
53 ModuleHandlerInterface $moduleHandler
56 $this->entityTypeManager = $entityTypeManager;
57 $this->moduleHandler = $moduleHandler;
58 parent::__construct();
61 protected function configure()
64 ->setName('locale:language:delete')
65 ->setDescription($this->trans('commands.locale.language.delete.description'))
68 InputArgument::REQUIRED,
69 $this->trans('commands.locale.translation.status.arguments.language')
73 protected function execute(InputInterface $input, OutputInterface $output)
75 $moduleHandler = $this->moduleHandler;
76 $moduleHandler->loadInclude('locale', 'inc', 'locale.translation');
77 $moduleHandler->loadInclude('locale', 'module');
79 $language = $input->getArgument('language');
81 $languagesObjects = locale_translatable_language_list();
82 $languages = $this->site->getStandardLanguages();
84 if (isset($languagesObjects[$language])) {
85 $languageEntity = $languagesObjects[$language];
86 } elseif (array_search($language, $languages)) {
87 $langcode = array_search($language, $languages);
88 $languageEntity = $languagesObjects[$langcode];
90 $this->getIo()->error(
92 $this->trans('commands.locale.language.delete.messages.invalid-language'),
101 $configurable_language_storage = $this->entityTypeManager->getStorage('configurable_language');
102 $configurable_language_storage->load($languageEntity->getId())->delete();
104 $this->getIo()->info(
106 $this->trans('commands.locale.language.delete.messages.language-deleted-successfully'),
107 $languageEntity->getName()
110 } catch (\Exception $e) {
111 $this->getIo()->error($e->getMessage());