diff --git a/ecrire/lang/spip_cpf.php3 b/ecrire/lang/spip_cpf.php3
index e2c32b3282b6a0d22add68fdbae8c3b4b9172a14..e37458449b3dd6f7cc04f09e310880cc7644cf8d 100644
--- a/ecrire/lang/spip_cpf.php3
+++ b/ecrire/lang/spip_cpf.php3
@@ -710,6 +710,11 @@ fisyé SPIP.}}',
 'info_mots_cles' => 'Bann molaklé',
 'info_mots_cles_association' => 'I pé mèt ansanm bann molaklé lo group-la :',
 'info_moyenne' => 'Mwayinn :',
+'info_multi_articles' => '<NEW> Activer le menu de langue sur les articles&nbsp;?',
+'info_multi_cet_article' => '<NEW> Cet article est en&nbsp;:',
+'info_multi_cette_rubrique' => '<NEW> Cette rubrique est en&nbsp;:',
+'info_multi_rubriques' => '<NEW> Activer le menu de langue sur les rubriques&nbsp;?',
+'info_multilinguisme' => '<NEW> Multilinguisme',
 'info_nexen_1' => 'Out l&eacute;b&egrave;rz&egrave;r l&eacute; Nexen Services.',
 'info_nexen_2' => 'Pou prot&egrave;z lo r&eacute;pertwar <tt>ecrire/data/</tt> i dwa anserv',
 'info_nexen_3' => 'l&egrave;spas bann w&egrave;bm&egrave;t',
@@ -1367,6 +1372,7 @@ r&eacute;ind&eacute;ks&eacute;&nbsp;: &eacute; litilit&eacute; la komand-la l&ea
 'texte_moteur_recherche_non_active' => 'Rod&egrave;r do SPIP l&eacute; pa an mars.',
 'texte_mots_cles' => 'Bann molakl&eacute; i perm&egrave;t aou kr&eacute; bann gatiraz antrobann zartik, s&eacute;lon lo t&egrave;m zot i abord. Bann gatiraz-la l&eacute; ind&eacute;pandan laplas bann zartik dann rubrik. Ou i p&eacute; anserv azot pou rand lo batkaraz pli ris sir out sitw&egrave;b, o pou rand pli person&egrave;l lapr&eacute;zantasyon out bann skel&egrave;t.',
 'texte_mots_cles_dans_forum' => 'Indik isi si ou v&eacute; perm&egrave;t litilizasyon bann molakl&eacute;, sak bann vizit&egrave;r i p&eacute; swazi zot-minm, dann bann forom piblik sir lo sitw&egrave;b&nbsp;? (Tansyon pangar&nbsp;:lopsyon-la l&eacute; inn p&eacute; difisil pou anserv &eacute; pou f&eacute; zw&eacute; byin kor&egrave;kman.)',
+'texte_multilinguisme' => '<NEW> Si vous souhaitez g&eacute;rer des articles en plusieurs langues, avec une navigation complexe, vous pouvez ajouter un menu de s&eacute;lection de langue sur les articles et/ou sur les rubriques, en fonction de l\'organisation de votre site.',
 'texte_non_compresse' => '<i>L&eacute; pa konp&egrave;rs&eacute;</i> (akoz out serv&egrave;r i p&eacute; pa f&eacute; zw&eacute; lafonksyon-la)',
 'texte_non_fonction_referencement' => 'L&eacute; posib ou pr&eacute;f&egrave;r pa anserv lafonksyon-la akoz i l&eacute; otomatik : dann ka-la, ou p&eacute; indik ou-minm tout bann z&eacute;l&eacute;man ou la d&eacute;sid sak i kosern lo sit...',
 'texte_nouveau_message' => 'Nouvo mod&eacute;kri',
diff --git a/inc-admin.php3 b/inc-admin.php3
index ca17a56e8fb4efaa2b42881696ffcc0822a8baab..7a55706c77d5afa45d94f58963840d38e29fa59c 100644
--- a/inc-admin.php3
+++ b/inc-admin.php3
@@ -22,6 +22,14 @@ function afficher_boutons_admin() {
 	global $id_article, $id_breve, $id_rubrique, $id_mot, $id_auteur;
 	include_ecrire("inc_filtres.php3");
 
+	// regler les boutons dans la langue de l'admin (sinon tant pis)
+	if ($login = addslashes(ereg_replace('^@','',$GLOBALS['spip_admin']))) {
+		$q = spip_query("SELECT lang FROM spip_auteurs WHERE login='$login'");
+		$row = spip_fetch_array($q);
+		$lang = $row['lang'];
+	}
+	lang_select($lang);
+
 	echo '<div class="spip-admin">';
 	if ($id_article) {
 		bouton_admin(_T('admin_modifier_article')." ($id_article)", "./ecrire/articles.php3?id_article=$id_article");
@@ -53,6 +61,8 @@ function afficher_boutons_admin() {
 	}
 
 	echo "</div>";
+
+	lang_dselect();
 }
 
 
diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3
index 339c29041e8c9184af533fdbdeb95b55fb89cfe5..0593dd35fd0ff9a3da5db59110c140969610fe9d 100644
--- a/inc-calcul-squel.php3
+++ b/inc-calcul-squel.php3
@@ -1507,10 +1507,14 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
 	case 'FORMULAIRE_INSCRIPTION':
 		$milieu = '
 		$request_uri = $GLOBALS["REQUEST_URI"];
+		$spip_lang = $GLOBALS["spip_lang"];
 		$accepter_inscriptions = lire_meta("accepter_inscriptions");
-
 		if ($accepter_inscriptions == "oui") {
-			$'.$nom_var.' = "<"."?php include_local(\"inc-formulaires.php3\"); formulaire_inscription(\"redac\"); ?".">";
+			$'.$nom_var.' = "<"."?php
+				include_local(\"inc-formulaires.php3\");
+				lang_select(\"$spip_lang\");
+				formulaire_inscription(\"redac\");
+				lang_dselect(); ?".">";
 		}
 		else {
 			$'.$nom_var.' = "";
@@ -1527,8 +1531,12 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
 		$milieu = '
 		if (email_valide($row[\'email\'])) {
 			$email = trim($row[\'email\']);
+			$spip_lang = $GLOBALS["spip_lang"];
 			$'.$nom_var.' = "<'.'?php
-				include (\'inc-formulaires.php3\'); formulaire_ecrire_auteur(".$row[\'id_auteur\'].",\'$email\');
+				include (\'inc-formulaires.php3\');
+				lang_select(\"$spip_lang\");
+				formulaire_ecrire_auteur(".$row[\'id_auteur\'].",\'$email\');
+				lang_dselect();
 			?'.'>";
 		}
 		';
@@ -1543,12 +1551,18 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
 		$milieu = '
 		$request_uri = $GLOBALS["REQUEST_URI"];
 		$accepter_inscriptions = lire_meta("accepter_inscriptions");
+		$spip_lang = $GLOBALS["spip_lang"];
 
 		$query_petition = "SELECT * FROM spip_petitions WHERE id_article=$contexte[id_article]";
  		$result_petition = spip_query($query_petition);
 
 		if ($row_petition = spip_fetch_array($result_petition)) {
-			$'.$nom_var.' = "<"."?php include_local(\"inc-formulaires.php3\"); formulaire_signature($contexte[id_article]); ?".">";
+			$'.$nom_var.' = "<"."?php
+				include_local(\"inc-formulaires.php3\");
+				lang_select(\"$spip_lang\");
+				formulaire_signature($contexte[id_article]);
+				lang_dselect();
+				?".">";
 		}
 		else {
 			$'.$nom_var.' = "";
@@ -1565,9 +1579,15 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
 		$milieu = '
 		$request_uri = $GLOBALS["REQUEST_URI"];
 		$proposer_sites = lire_meta("proposer_sites");
+		$spip_lang = $GLOBALS["spip_lang"];
 
 		if ($proposer_sites == "2") {
-			$'.$nom_var.' = "<"."?php include_local(\"inc-formulaires.php3\"); formulaire_site($contexte[id_rubrique]); ?".">";
+			$'.$nom_var.' = "<"."?php
+				include_local(\"inc-formulaires.php3\");
+				lang_select(\"$spip_lang\");
+				formulaire_site($contexte[id_rubrique]);
+				lang_dselect();
+				?".">";
 		}
 		else {
 			$'.$nom_var.' = "";
diff --git a/inc-formulaires.php3 b/inc-formulaires.php3
index 72a78431683539609410c3cae8320999019971fa..9a9ea8eca5dbd3b9874ec509c5799f1151b67851 100644
--- a/inc-formulaires.php3
+++ b/inc-formulaires.php3
@@ -5,6 +5,8 @@
 if (defined("_INC_FORMULAIRES")) return;
 define("_INC_FORMULAIRES", "1");
 
+include_ecrire('inc_filtres.php3');
+
 function test_pass() {
 	include_ecrire("inc_acces.php3");
 	for (;;) {