2 declare(strict_types = 1);
18 use Symfony\Component\Console\Command\Command;
19 use Symfony\Component\Console\Helper\ProgressBar;
20 use Symfony\Component\Console\Input\InputArgument;
21 use Symfony\Component\Console\Input\InputInterface;
22 use Symfony\Component\Console\Output\NullOutput;
23 use Symfony\Component\Console\Output\OutputInterface;
38 $this->setAliases([
'lang:language:update']);
39 $this->setDescription(
'Update the language files of all activated extensions')
42 InputArgument::IS_ARRAY | InputArgument::OPTIONAL,
43 'Provide iso codes separated by space to update only selected language packs. Example `bin/typo3 language:update de ja`.'
58 if ($input->hasArgument(
'command') && substr_count($input->getArgument(
'command'),
':') === 2) {
59 $message =
'bin/typo3 lang:language:update is deprecated, use bin/typo3 language:update instead';
60 $output->writeln(
'<error>' . $message .
'</error>');
61 trigger_error($message, E_USER_DEPRECATED);
64 $languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
67 $isos = $input->getArgument(
'locales');
72 $isos = $languagePackService->getActiveLanguages();
77 '<info>Updating language packs of all activated extensions for locale(s) "%s"</info>',
78 implode(
'", "', $isos)
82 $extensions = $languagePackService->getExtensionLanguagePackDetails();
85 $progressBarOutput =
new NullOutput();
89 $progressBar =
new ProgressBar($progressBarOutput, count($isos) * count($extensions));
90 $languagePackService->updateMirrorBaseUrl();
91 foreach ($isos as $iso) {
92 foreach ($extensions as $extension) {
93 $languagePackService->languagePackDownload($extension[
'key'], $iso);
94 $progressBar->advance();
97 $languagePackService->setLastUpdatedIsoCode($isos);
98 $progressBar->finish();
101 GeneralUtility::makeInstance(CacheManager::class)->getCache(
'l10n')->flush();