diff --git a/inc/salvatore.php b/inc/salvatore.php index e623297fa1dcb4db393e04b0545de1819d2cfabc..9052af85e60bb58de90c09064f5dca96f5ff7bb0 100644 --- a/inc/salvatore.php +++ b/inc/salvatore.php @@ -192,6 +192,26 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){ return $liste_trad; } +/** + * Filtrer la liste complete pour ne garder que un ou plusieurs modules specifiques + * @param array $liste_trad + * @param string|array $modules + * @return array + */ +function salvatore_filtrer_liste_traductions($liste_trad, $modules) { + if (is_string($modules)) { + $modules = explode(',', $modules); + } + $modules = array_map('trim', $modules); + $liste_filtree = array(); + foreach ($liste_trad as $trad) { + if (in_array($trad['module'], $modules)) { + $liste_filtree[] = $trad; + } + } + return $liste_filtree; +} + /** * Extraire la lang d'un fichier de langue d'un module donne * @param string $module diff --git a/spip-cli/SalvatoreEcrire.php b/spip-cli/SalvatoreEcrire.php index 519889bf09341a93b1fb14b7ec3f3cde57f86fdb..8a04c609149b92b77c682722bcb82cbed59a75ff 100644 --- a/spip-cli/SalvatoreEcrire.php +++ b/spip-cli/SalvatoreEcrire.php @@ -52,6 +52,13 @@ class SalvatoreEcrire extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ->addOption( 'message', null, @@ -82,6 +89,13 @@ class SalvatoreEcrire extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + $message = $input->getOption('message'); salvatore_ecrire($liste_trad, $message ? $message : ''); diff --git a/spip-cli/SalvatoreLire.php b/spip-cli/SalvatoreLire.php index 0c7f1fdd8874dd67404abe6305bfc1dbf1d55c00..d363cef51b70c00e31990e9573e5f57bb1a80505 100644 --- a/spip-cli/SalvatoreLire.php +++ b/spip-cli/SalvatoreLire.php @@ -52,6 +52,13 @@ class SalvatoreLire extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ; } @@ -75,6 +82,13 @@ class SalvatoreLire extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + salvatore_lire($liste_trad); } } diff --git a/spip-cli/SalvatoreTirer.php b/spip-cli/SalvatoreTirer.php index 5b9ff57f478b353d3d7803e715bcf2c3c1d692e3..5a8176d9d19a6749160b12bbb7e1d6c3f33c2249 100644 --- a/spip-cli/SalvatoreTirer.php +++ b/spip-cli/SalvatoreTirer.php @@ -51,6 +51,13 @@ class SalvatoreTirer extends Command { 'Chemin vers le fichier traductions.txt a utiliser [salvatore/traductions/traductions.txt]', null ) + ->addOption( + 'module', + null, + InputOption::VALUE_REQUIRED, + 'Un ou plusieurs modules a traiter (par defaut tous les modules du fichier de traduction seront traites)', + null + ) ; } @@ -73,6 +80,13 @@ class SalvatoreTirer extends Command { $n = count($liste_trad); $output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>"); + $modules = $input->getOption('module'); + if ($modules = trim($modules)) { + $liste_trad = salvatore_filtrer_liste_traductions($liste_trad, $modules); + $n = count($liste_trad); + $output->writeln("<info>$n modules à traiter : " . $modules . "</info>"); + } + salvatore_tirer($liste_trad); } }