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);
 	}
 }