5 * Contains \Drupal\Console\Command\Locale\LanguageAddCommand.
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\language\Entity\ConfigurableLanguage;
14 use Symfony\Component\Console\Command\Command;
15 use Drupal\Console\Core\Style\DrupalStyle;
16 use Drupal\Console\Command\Shared\LocaleTrait;
17 use Drupal\Console\Core\Command\Shared\CommandTrait;
18 use Drupal\Core\Extension\ModuleHandlerInterface;
19 use Drupal\Console\Utils\Site;
20 use Drupal\Console\Annotations\DrupalCommand;
24 * extension = "locale",
25 * extensionType = "module"
28 class LanguageAddCommand extends Command
39 * @var ModuleHandlerInterface
41 protected $moduleHandler;
44 * LanguageAddCommand constructor.
47 * @param ModuleHandlerInterface $moduleHandler
49 public function __construct(
51 ModuleHandlerInterface $moduleHandler
54 $this->moduleHandler = $moduleHandler;
55 parent::__construct();
58 protected function configure()
61 ->setName('locale:language:add')
62 ->setDescription($this->trans('commands.locale.language.add.description'))
65 InputArgument::REQUIRED,
66 $this->trans('commands.locale.translation.status.arguments.language')
70 protected function execute(InputInterface $input, OutputInterface $output)
72 $io = new DrupalStyle($input, $output);
73 $moduleHandler = $this->moduleHandler;
74 $moduleHandler->loadInclude('locale', 'inc', 'locale.translation');
75 $moduleHandler->loadInclude('locale', 'module');
77 $language = $input->getArgument('language');
78 $languages = $this->site->getStandardLanguages();
80 if (isset($languages[$language])) {
81 $langcode = $language;
82 } elseif (array_search($language, $languages)) {
83 $langcode = array_search($language, $languages);
87 $this->trans('commands.locale.language.add.messages.invalid-language'),
96 $language = ConfigurableLanguage::createFromLangcode($langcode);
97 $language->type = LOCALE_TRANSLATION_REMOTE;
100 $io->info(sprintf($this->trans('commands.locale.language.add.messages.language-add-successfully'), $language->getName()));
101 } catch (\Exception $e) {
102 $io->error($e->getMessage());