diff options
author | sgiehl <stefan@piwik.org> | 2018-10-09 12:26:47 +0300 |
---|---|---|
committer | sgiehl <stefan@piwik.org> | 2018-10-09 12:26:47 +0300 |
commit | 648bc9443680df7633287d6ed5ecadbaf79af1ae (patch) | |
tree | 0c7201cca0b5130e82a6c7aebbc966a99e4c7357 /plugins/LanguagesManager | |
parent | 61bacf885b8db1d38e9407c7e918984fcbd7df74 (diff) |
translation updates
Diffstat (limited to 'plugins/LanguagesManager')
-rw-r--r-- | plugins/LanguagesManager/Commands/Update.php | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/plugins/LanguagesManager/Commands/Update.php b/plugins/LanguagesManager/Commands/Update.php index 913c44da3f..a4a664b455 100644 --- a/plugins/LanguagesManager/Commands/Update.php +++ b/plugins/LanguagesManager/Commands/Update.php @@ -9,6 +9,7 @@ namespace Piwik\Plugins\LanguagesManager\Commands; +use Piwik\Plugin\Manager; use Piwik\Plugins\LanguagesManager\API; use Symfony\Component\Console\Helper\DialogHelper; use Symfony\Component\Console\Input\ArrayInput; @@ -30,6 +31,7 @@ class Update extends TranslationBase ->addOption('username', 'u', InputOption::VALUE_OPTIONAL, 'Transifex username') ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'Transifex password') ->addOption('slug', 's', InputOption::VALUE_OPTIONAL, 'Transifex project slug') + ->addOption('all', 'a', InputOption::VALUE_NONE, 'Force to update all plugins (even non core). Can not be used with plugin option') ->addOption('plugin', 'P', InputOption::VALUE_OPTIONAL, 'optional name of plugin to update translations for'); } @@ -50,6 +52,7 @@ class Update extends TranslationBase } $plugin = $input->getOption('plugin'); + $forceAllPlugins = $input->getOption('all'); if (!$input->isInteractive()) { $output->writeln("(!) Non interactive mode: New languages will be skipped"); @@ -57,7 +60,7 @@ class Update extends TranslationBase $pluginList = array($plugin); if (empty($plugin)) { - $pluginList = self::getPluginsInCore(); + $pluginList = $forceAllPlugins ? self::getAllPlugins() : self::getPluginsInCore(); array_unshift($pluginList, ''); } else { $input->setOption('force', true); // force plugin only updates @@ -132,6 +135,26 @@ class Update extends TranslationBase * Returns all plugins having their own translations that are bundled in core * @return array */ + public static function getAllPlugins() + { + static $pluginsWithTranslations; + + if (!empty($pluginsWithTranslations)) { + return $pluginsWithTranslations; + } + + $pluginsWithTranslations = glob(sprintf('%s/plugins/*/lang/en.json', PIWIK_INCLUDE_PATH)); + $pluginsWithTranslations = array_map(function ($elem) { + return str_replace(array(sprintf('%s/plugins/', PIWIK_INCLUDE_PATH), '/lang/en.json'), '', $elem); + }, $pluginsWithTranslations); + + return $pluginsWithTranslations; + } + + /** + * Returns all plugins having their own translations that are bundled in core + * @return array + */ public static function getPluginsInCore() { static $pluginsInCore; |