first commit
This commit is contained in:
commit
1218dd1517
12716 files changed
+989233
No files matched your search
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
declare(strict_types = 1);
|
||||
namespace TYPO3\CMS\Install\Command;
|
||||
|
||||
/*
|
||||
* This file is part of the TYPO3 CMS project.
|
||||
*
|
||||
* It is free software; you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License, either version 2
|
||||
* of the License, or any later version.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE.txt file that was distributed with this source code.
|
||||
*
|
||||
* The TYPO3 project - inspiring people to share!
|
||||
*/
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Helper\ProgressBar;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\NullOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use TYPO3\CMS\Core\Cache\CacheManager;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Install\Service\LanguagePackService;
|
||||
|
||||
/**
|
||||
* Core function for updating language packs
|
||||
*/
|
||||
class LanguagePackCommand extends Command
|
||||
{
|
||||
/**
|
||||
* Configure the command by defining the name, options and arguments
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this->setAliases(['lang:language:update']);
|
||||
$this->setDescription('Update the language files of all activated extensions')
|
||||
->addArgument(
|
||||
'locales',
|
||||
InputArgument::IS_ARRAY | InputArgument::OPTIONAL,
|
||||
'Provide iso codes separated by space to update only selected language packs. Example `bin/typo3 language:update de ja`.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update language packs of all active languages for all active extensions
|
||||
*
|
||||
* @param InputInterface $input
|
||||
* @param OutputInterface $output
|
||||
* @throws \InvalidArgumentException
|
||||
* @throws \TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException
|
||||
* @return int
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
if ($input->hasArgument('command') && substr_count($input->getArgument('command'), ':') === 2) {
|
||||
$message = 'bin/typo3 lang:language:update is deprecated, use bin/typo3 language:update instead';
|
||||
$output->writeln('<error>' . $message . '</error>');
|
||||
trigger_error($message, E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
|
||||
|
||||
try {
|
||||
$isos = $input->getArgument('locales');
|
||||
} catch (\Exception $e) {
|
||||
$isos = [];
|
||||
}
|
||||
if (empty($isos)) {
|
||||
$isos = $languagePackService->getActiveLanguages();
|
||||
}
|
||||
|
||||
if ($output->isVerbose()) {
|
||||
$output->writeln(sprintf(
|
||||
'<info>Updating language packs of all activated extensions for locale(s) "%s"</info>',
|
||||
implode('", "', $isos)
|
||||
));
|
||||
}
|
||||
|
||||
$extensions = $languagePackService->getExtensionLanguagePackDetails();
|
||||
|
||||
if (!$output->isVerbose()) {
|
||||
$progressBarOutput = new NullOutput();
|
||||
} else {
|
||||
$progressBarOutput = $output;
|
||||
}
|
||||
$progressBar = new ProgressBar($progressBarOutput, count($isos) * count($extensions));
|
||||
$languagePackService->updateMirrorBaseUrl();
|
||||
foreach ($isos as $iso) {
|
||||
foreach ($extensions as $extension) {
|
||||
$languagePackService->languagePackDownload($extension['key'], $iso);
|
||||
$progressBar->advance();
|
||||
}
|
||||
}
|
||||
$languagePackService->setLastUpdatedIsoCode($isos);
|
||||
$progressBar->finish();
|
||||
|
||||
// Flush language cache
|
||||
GeneralUtility::makeInstance(CacheManager::class)->getCache('l10n')->flush();
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user