diff --git a/.gitattributes b/.gitattributes
index 42cdecfaf3fd8b2b2bbda6a32560eee75258ff47..2b9343cf3ecc4f4e721fbcb2329ac03b44008fa4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -92,6 +92,7 @@ ecrire/inc/charger_php_extension.php -text
 ecrire/inc/chercher_logo.php -text
 ecrire/inc/chercher_rubrique.php -text
 ecrire/inc/commencer_page.php -text
+ecrire/inc/completer_traduction.php -text
 ecrire/inc/cookie.php -text
 ecrire/inc/couleurs.php -text
 ecrire/inc/csv.php -text
diff --git a/ecrire/inc/completer_traduction.php b/ecrire/inc/completer_traduction.php
new file mode 100644
index 0000000000000000000000000000000000000000..7bb588963dcd97cb45a0d4f0b55ecb7e9415851c
--- /dev/null
+++ b/ecrire/inc/completer_traduction.php
@@ -0,0 +1,77 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2016                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+/**
+ * Post-traitement des formulaires d'édition d'objets, lors d'une création d’une nouvelle traduction
+ *
+ * @package SPIP\Core\Objets
+ **/
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+
+/**
+ * Compléter une nouvelle traduction avec des éléments utiles.
+ *
+ * @param string $objet Objet
+ * @param int $id_objet Identifiant du nouvel objet
+ * @param int $id_trad Identifiant de l’objet qu'on a traduit
+ * @return string Erreur éventuelle
+ */
+function inc_completer_traduction_dist($objet, $id_objet, $id_trad) {
+	// dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit
+	// cf API editer_liens
+	include_spip('action/editer_liens');
+	objet_dupliquer_liens($objet, $id_trad, $id_objet, null, array('auteur'));
+	$_id_table = id_table_objet($objet);
+
+	// recuperer le logo
+	$chercher_logo = charger_fonction('chercher_logo','inc');
+	include_spip('action/editer_logo');
+	foreach (array('on', 'off') as $etat) {
+		$logo = $chercher_logo($id_trad, $_id_table, $etat);
+		if ($logo AND $file = reset($logo)) {
+			logo_modifier($objet, $id_objet, $etat, $file);
+		}
+	}
+
+	// dupliquer certains champs
+	$trouver_table = charger_fonction('trouver_table','base');
+	$desc = $trouver_table(table_objet_sql($objet));
+	$champs = $set = array();
+
+	// un éventuel champ 'virtuel' (redirections)
+	if (!empty($desc['field']['virtuel'])) {
+		$champs[] = 'virtuel';
+	}
+
+	if ($champs) {
+		$set = sql_fetsel($champs, $desc['table'], $_id_table . '=' . intval($id_trad));
+	}
+
+	/*
+	 * Le pipeline 'pre_edition' sera appelé avec l'action 'completer_traduction'.
+	 * Des plugins pourront ainsi compléter les champs d'un objet traduit lors d'une nouvelle traduction.
+	 */
+	$err = objet_modifier_champs(
+		$objet,
+		$id_objet,
+		array(
+			'data' => $set,
+			'action' => 'completer_traduction',
+		),
+		$set
+	);
+
+	return $err;
+}
\ No newline at end of file
diff --git a/ecrire/inc/editer.php b/ecrire/inc/editer.php
index 110bd29a93bca17e3f77f9cd030cf2cca803ddcf..5146556cad0385c8d2b9d49b18be217e3880932a 100644
--- a/ecrire/inc/editer.php
+++ b/ecrire/inc/editer.php
@@ -88,10 +88,13 @@ function formulaires_editer_objet_traiter(
 			// referencer la traduction
 			$referencer_traduction = charger_fonction('referencer_traduction', 'action');
 			$referencer_traduction($type, $id, $lier_trad);
-			// dupliquer tous les liens sauf les auteurs : le nouvel auteur est celui qui traduit
-			// cf API editer_liens
-			include_spip('action/editer_liens');
-			objet_dupliquer_liens($type, $lier_trad, $id, null, array('auteur'));
+			// actions de recopie de champs / liens sur le nouvel objet créé
+			$completer_traduction = charger_fonction('completer_traduction', 'inc');
+			$err = $completer_traduction($type, $id, $lier_trad);
+			if ($err) {
+				$res['message_erreur'] = $err;
+				return $res;
+			}
 		}
 
 		$res['message_ok'] = _T('info_modification_enregistree');