diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index 7e7b360b005d84ffeb229340d15a9cf1204d2284..baf4aa4f953aa1c4a09bd55be693f439722f318f 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -91,6 +91,12 @@ OR (_EXTENSION_PHP AND @file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . _EXTENS
 	define('_FILE_OPTIONS', $f);
 } else define('_FILE_OPTIONS', '');
 
+// les modules par defaut pour la traduction.
+// Constante utilisee par le compilateur et le decompilateur
+// sa valeur etant traitee par inc_traduire_dist
+
+define('MODULES_IDIOMES', 'public/spip/ecrire');
+
 // *** Fin des define *** //
 
 
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 2da49affa02d1bc54da7f3d8b2b4c38179da6c1a..152380a035a1a0fb18abf8fe2aaed42a985822ed 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -646,9 +646,9 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 		case 'idiome':
 			$l = array();
 			foreach ($p->arg as $k => $v) {
-				if ($k) $l[]=$k.' => '.calculer_liste($v,$p->descr,$boucles,$id_boucle);
+			  if ($k) $l[]= _q($k).' => '.calculer_liste($v,$p->descr,$boucles,$id_boucle);
 			}
-			$l = !$l ? '' : (",array(".implode(', ',$l).")");
+			$l = !$l ? '' : (", array(".implode(",\n",$l).")");
 			$code = "_T('" . $p->module . ":" .$p->nom_champ . "'$l)";
 			if ($p->param) {
 				$p->id_boucle = $id_boucle;
diff --git a/ecrire/public/decompiler.php b/ecrire/public/decompiler.php
index 43217cf41f0b6c062d9b2d8797c3896536c7ed5e..6c0c10c3b1dba054f3ffec9dc6c6a63f93d6d978 100644
--- a/ecrire/public/decompiler.php
+++ b/ecrire/public/decompiler.php
@@ -71,7 +71,7 @@ function decompiler_polyglotte($struct, $fmt='', $prof=0)
 
 function decompiler_idiome($struct, $fmt='', $prof=0)
 {
-	$module = ($struct->module == 'public/spip/ecrire')? ''
+	$module = ($struct->module == MODULES_IDIOMES)? ''
 	  : $struct->module;
 
 	$args = array();
diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index e63bb168a9f389fcd736b932c7d9c194149f4c6a..d69bd37bbcc155816a13761960d13fd78ab67fa3 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -126,15 +126,15 @@ function phraser_idiomes($texte,$ligne,$result) {
 		$texte = substr($texte,$p+strlen($match[0]));
 		// Stocker les arguments de la balise de traduction
 		$args=array();
-		$vals=explode(',',$match[5]);
+		$vals=preg_split('/,\s*/',$match[5]);
 		foreach ($vals as $val) {
-			$arg=explode('=',$val);
+			$arg=preg_split('/\s*=/',$val);
 			if ($arg[0])
-				$args[$arg[0]]=phraser_champs($arg[1], 0, $_arg);	
+			  $args[$arg[0]]=phraser_champs($arg[1], 0, array());	
 		}
 		$champ->arg=$args;
 		$champ->nom_champ = strtolower($match[3]);
-		$champ->module = $match[2] ? $match[2] : 'public/spip/ecrire';
+		$champ->module = $match[2] ? $match[2] : MODULES_IDIOMES;
 		// pas d'imbrication pour les filtres sur langue
 		phraser_args(@$match[7], ":", '', array(), $champ);
 		$result[] = $champ;