From 5de4157539fb6e162d5d7d89f0eb7bf4ba8bfc90 Mon Sep 17 00:00:00 2001
From: Matthieu Marcillaud <marcimat@rezo.net>
Date: Fri, 17 Mar 2023 18:41:12 +0100
Subject: [PATCH] chore: Rector up to PHP 7.4

---
 action/editer_tradlang.php                    |  68 ++---
 action/tradlang_bon_a_pousser.php             |   4 +-
 action/tradlang_creer_langue_cible.php        |   6 +-
 action/tradlang_exporter_langue.php           |  14 +-
 action/tradlang_exporter_zip.php              |  14 +-
 action/tradlang_supprimer_langue_cible.php    |  29 +-
 base/tradlang.php                             |  99 +++----
 export_lang/csv.php                           |  10 +-
 export_lang/po.php                            |  30 ++-
 export_lang/spip.php                          |  11 +-
 formulaires/configurer_tradlang.php           |  23 +-
 formulaires/editer_tradlang.php               |  34 ++-
 formulaires/editer_tradlang_module.php        |  36 +--
 .../inc-langues_preferees_fonctions.php       |   2 +-
 formulaires/tradlang_choisir_module.php       |  44 +--
 formulaires/tradlang_importer_langue.php      | 187 ++++++-------
 formulaires/tradlang_recherche_avancee.php    |  24 +-
 formulaires/tradlang_switcher_langue.php      |  20 +-
 genie/tradlang_maintenance.php                |  10 +-
 inc/salvatore.php                             | 109 ++++----
 inc/stats_trads_to_array.php                  |  33 ++-
 inc/tradlang_ajouter_code_langue.php          |  33 ++-
 inc/tradlang_creer_premieres_revisions.php    |  10 +-
 inc/tradlang_forum_extraire_titre.php         |  11 +-
 inc/tradlang_sauvegarde_module.php            |   4 +-
 inc/tradlang_supprimer_module.php             |  20 +-
 inc/tradlang_verifier_bilans.php              |  24 +-
 inc/tradlang_verifier_langue_base.php         |  22 +-
 salvatore/ecriveur.php                        |  84 +++---
 salvatore/lecteur.php                         | 112 ++++----
 salvatore/pousseur.php                        |  28 +-
 salvatore/tireur.php                          |   8 +-
 salvatore/vcs/git.php                         |  20 +-
 salvatore/vcs/svn.php                         |  39 +--
 spip-cli/SalvatoreEcrire.php                  |   6 +-
 spip-cli/SalvatoreLire.php                    |   4 +-
 spip-cli/SalvatoreOuvrager.php                |   8 +-
 spip-cli/SalvatorePousser.php                 |   4 +-
 spip-cli/SalvatoreRecharger.php               |  23 +-
 spip-cli/SalvatoreTirer.php                   |   4 +-
 spip-cli/SalvatoreUpgrade.php                 |   8 +-
 tradlang_administrations.php                  | 250 ++++++++----------
 tradlang_autoriser.php                        |  35 +--
 tradlang_fonctions.php                        |  49 ++--
 tradlang_options.php                          |   6 +-
 tradlang_pipelines.php                        |  29 +-
 46 files changed, 800 insertions(+), 848 deletions(-)

diff --git a/action/editer_tradlang.php b/action/editer_tradlang.php
index 7fb620a..8b6a1f3 100644
--- a/action/editer_tradlang.php
+++ b/action/editer_tradlang.php
@@ -12,14 +12,14 @@ function action_editer_tradlang_dist($arg = null) {
 
 	// si id_tradlang n'est pas un nombre, c'est une creation
 	// mais on verifie qu'on a toutes les donnees qu'il faut.
-	if (!$id_tradlang = intval($arg)) {
+	if (!$id_tradlang = (int) $arg) {
 		return false;
 	}
 
 	// Enregistre l'envoi dans la BD
 	$err = tradlang_set($arg);
 
-	return array($arg,'');
+	return [$arg, ''];
 }
 
 function tradlang_set($id_tradlang, $set = null) {
@@ -32,7 +32,7 @@ function tradlang_set($id_tradlang, $set = null) {
 		// white list
 		objet_info('tradlang', 'champs_editables'),
 		// black list
-		array(),
+		[],
 		// donnees eventuellement fournies
 		$set
 	);
@@ -40,7 +40,7 @@ function tradlang_set($id_tradlang, $set = null) {
 	/**
 	 * On vérifie s'il y a au moins un champ modifié pour ajouter l'id_auteur dans les traducteurs
 	 */
-	$infos_tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
+	$infos_tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
 
 	$modifie = false;
 	foreach ($c as $champ => $valeur) {
@@ -50,8 +50,8 @@ function tradlang_set($id_tradlang, $set = null) {
 		}
 	}
 
-	if ($modifie and ($GLOBALS['visiteur_session']['id_auteur'] > 0)) {
-		$traducteurs = array();
+	if ($modifie && $GLOBALS['visiteur_session']['id_auteur'] > 0) {
+		$traducteurs = [];
 		if ($infos_tradlang['traducteur']) {
 			$traducteurs = array_map('trim', explode(',', $infos_tradlang['traducteur']));
 		}
@@ -68,21 +68,21 @@ function tradlang_set($id_tradlang, $set = null) {
 	if ($err = objet_modifier_champs(
 		'tradlang',
 		$id_tradlang,
-		array(
+		[
 			'data' => $set,
-			'nonvide' => array(),
+			'nonvide' => [],
 			'invalideur' => $invalideur,
-			'indexation' => true,
-		),
+			'indexation' => true
+		],
 		$c
 	)) {
 			return $err;
 	}
 
-	if (($statut = (in_array(_request('statut'), array('NEW', 'MODIF', 'OK', 'RELIRE'))) ? _request('statut') : $c['statut']) and ($statut != $infos_tradlang['statut'])) {
-		sql_updateq('spip_tradlangs', array('statut' => $statut), 'id_tradlang = ' . intval($id_tradlang));
-		$infos_maj = array();
-		$bilan = sql_fetsel('chaines_ok,chaines_relire,chaines_modif,chaines_new', 'spip_tradlangs_bilans', 'id_tradlang_module=' . intval($infos_tradlang['id_tradlang_module']) . ' AND lang=' . sql_quote($infos_tradlang['lang']));
+	if (($statut = (in_array(_request('statut'), ['NEW', 'MODIF', 'OK', 'RELIRE'])) ? _request('statut') : $c['statut']) && $statut != $infos_tradlang['statut']) {
+		sql_updateq('spip_tradlangs', ['statut' => $statut], 'id_tradlang = ' . (int) $id_tradlang);
+		$infos_maj = [];
+		$bilan = sql_fetsel('chaines_ok,chaines_relire,chaines_modif,chaines_new', 'spip_tradlangs_bilans', 'id_tradlang_module=' . (int) $infos_tradlang['id_tradlang_module'] . ' AND lang=' . sql_quote($infos_tradlang['lang']));
 		if ($statut == 'OK') {
 			$infos_maj['chaines_ok'] = ($bilan['chaines_ok']+1);
 		} elseif ($statut == 'RELIRE') {
@@ -103,7 +103,7 @@ function tradlang_set($id_tradlang, $set = null) {
 			$infos_maj['chaines_new'] = ($bilan['chaines_new']-1);
 		}
 
-		sql_updateq('spip_tradlangs_bilans', $infos_maj, 'id_tradlang_module=' . intval($infos_tradlang['id_tradlang_module']) . ' AND lang=' . sql_quote($infos_tradlang['lang']));
+		sql_updateq('spip_tradlangs_bilans', $infos_maj, 'id_tradlang_module=' . (int) $infos_tradlang['id_tradlang_module'] . ' AND lang=' . sql_quote($infos_tradlang['lang']));
 	}
 
 	//$c = collecter_requests(array('statut'),array(),$set);
@@ -123,40 +123,40 @@ function instituer_tradlang($id_tradlang, $c) {
 	include_spip('inc/rubriques');
 	include_spip('inc/modifier');
 
-	$statut = sql_getfetsel('statut', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
+	$statut = sql_getfetsel('statut', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
 	$statut_ancien = $statut = $statut;
-	$champs = array();
+	$champs = [];
 
-	$s = isset($c['statut'])?$c['statut']:$statut;
+	$s = $c['statut'] ?? $statut;
 
 	// cf autorisations dans inc/instituer_article
 	if ($s != $statut) {
 		if (autoriser('modifier', 'tradlang', $id_tradlang)) {
 			$statut = $champs['statut'] = $s;
 		} else {
-			spip_log("editer_tradlang $id_tradlang refus " . join(' ', $c));
+			spip_log("editer_tradlang $id_tradlang refus " . implode(' ', $c));
 		}
 	}
 	// Envoyer aux plugins
 	$champs = pipeline(
 		'pre_edition',
-		array(
-			'args' => array(
+		[
+			'args' => [
 				'table' => 'spip_tradlangs',
 				'objet' => 'tradlang',
 				'id_objet' => $id_tradlang,
 				'action'=>'instituer',
-				'statut_ancien' => $statut_ancien,
-			),
+				'statut_ancien' => $statut_ancien
+			],
 			'data' => $champs
-		)
+		]
 	);
 
-	if (!count($champs)) {
+	if (!(is_countable($champs) ? count($champs) : 0)) {
 		return;
 	}
 	// Envoyer les modifs.
-	sql_updateq('spip_tradlangs', $champs, 'id_tradlang = ' . intval($id_tradlang));
+	sql_updateq('spip_tradlangs', $champs, 'id_tradlang = ' . (int) $id_tradlang);
 
 	// Invalider les caches
 	include_spip('inc/invalideur');
@@ -165,22 +165,24 @@ function instituer_tradlang($id_tradlang, $c) {
 	// Pipeline
 	pipeline(
 		'post_edition',
-		array(
-			'args' => array(
+		[
+			'args' => [
 				'table' => 'spip_tradlangs',
 				'objet' => 'tradlang',
 				'id_objet' => $id_tradlang,
 				'action'=>'instituer',
-				'statut_ancien' => $statut_ancien,
-			),
+				'statut_ancien' => $statut_ancien
+			],
 			'data' => $champs
-		)
+		]
 	);
 
 	// Notifications
 	if ($notifications = charger_fonction('notifications', 'inc')) {
-		$notifications('instituertradlang', $id_tradlang,
-			array('statut' => $statut, 'statut_ancien' => $statut_ancien)
+		$notifications(
+			'instituertradlang',
+			$id_tradlang,
+			['statut' => $statut, 'statut_ancien' => $statut_ancien]
 		);
 	}
 
diff --git a/action/tradlang_bon_a_pousser.php b/action/tradlang_bon_a_pousser.php
index a01164a..5410a02 100644
--- a/action/tradlang_bon_a_pousser.php
+++ b/action/tradlang_bon_a_pousser.php
@@ -16,14 +16,14 @@ function action_tradlang_bon_a_pousser_dist(){
 	$securiser_action = charger_fonction('securiser_action', 'inc');
 	$arg = $securiser_action();
 
-	$id_tradlang_module = intval($arg);
+	$id_tradlang_module = (int) $arg;
 
 	if (!$id_tradlang_module){
 		spip_log("action_tradlang_bon_a_pousser $arg pas compris", 'tradlang.' . _LOG_ERREUR);
 		return false;
 	}
 
-	sql_updateq("spip_tradlang_modules", array('bon_a_pousser' => 1), 'id_tradlang_module=' . intval($id_tradlang_module));
+	sql_updateq("spip_tradlang_modules", ['bon_a_pousser' => 1], 'id_tradlang_module=' . (int) $id_tradlang_module);
 	include_spip('inc/invalideur');
 	suivre_invalideur("'tradlang_module/id=$id_tradlang_module'");
 
diff --git a/action/tradlang_creer_langue_cible.php b/action/tradlang_creer_langue_cible.php
index 801bf99..910e142 100644
--- a/action/tradlang_creer_langue_cible.php
+++ b/action/tradlang_creer_langue_cible.php
@@ -16,13 +16,13 @@ function action_tradlang_creer_langue_cible_dist() {
 		return false;
 	}
 
-	$id_tradlang_module = intval($arg);
+	$id_tradlang_module = (int) $arg;
 
 	include_spip('inc/autoriser');
 	$lang_crea = _request('lang_crea');
-	if ($lang_crea and $id_tradlang_module and autoriser('modifier', 'tradlang')) {
+	if ($lang_crea && $id_tradlang_module && autoriser('modifier', 'tradlang')) {
 		// Import de la langue mere
-		$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+		$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		if (!$infos_module) {
 			spip_log("action_tradlang_creer_langue_cible : infos_module #$id_tradlang_module non existant", 'tradlang.' . _LOG_ERREUR);
 		} else {
diff --git a/action/tradlang_exporter_langue.php b/action/tradlang_exporter_langue.php
index 4fc4dbe..7eba36f 100644
--- a/action/tradlang_exporter_langue.php
+++ b/action/tradlang_exporter_langue.php
@@ -13,18 +13,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 }
 
 function action_tradlang_exporter_langue_dist() {
+	$level = null;
+	$lang_crea = null;
 	$securiser_action = charger_fonction('securiser_action', 'inc');
 	$arg = $securiser_action();
-	if (!preg_match(',^([0-9]+)\/(\w+)?(\/?(\w*))?(\/?(\w*))$,', $arg, $r)) {
+	if (!preg_match(',^(\d+)\/(\w+)?(\/?(\w*))?(\/?(\w*))$,', $arg, $r)) {
 		spip_log("action_tradlang_exporter_langue_dist $arg pas compris", 'tradlang');
 	}
 
-	$id_tradlang_module = intval($r[1]);
+	$id_tradlang_module = (int) $r[1];
 	$lang_cible = $r[2];
-	$type = $r[4] ? $r[4] : false;
-	$tout = ($r[6] == 'non') ? false : true;
-	if ($lang_cible and intval($id_tradlang_module) and sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible))) {
-		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+	$type = $r[4] ?: false;
+	$tout = $r[6] != 'non';
+	if ($lang_cible && (int) $id_tradlang_module && sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible))) {
+		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		$tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
 		$fichier = $tradlang_sauvegarde_module($module, $lang_cible, false, $type, $tout);
 		if (file_exists($fichier)) {
diff --git a/action/tradlang_exporter_zip.php b/action/tradlang_exporter_zip.php
index 7bb78f5..b795618 100644
--- a/action/tradlang_exporter_zip.php
+++ b/action/tradlang_exporter_zip.php
@@ -13,6 +13,8 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 }
 
 function action_tradlang_exporter_zip_dist() {
+	$fichier = null;
+	$chemin = null;
 	$securiser_action = charger_fonction('securiser_action', 'inc');
 	$arg = $securiser_action();
 
@@ -20,14 +22,14 @@ function action_tradlang_exporter_zip_dist() {
 		spip_log("action_tradlang_exporter_langue_dist $arg pas compris", 'tradlang');
 	}
 
-	$id_tradlang_module = intval($r[1]);
+	$id_tradlang_module = (int) $r[1];
 
 	include_spip('inc/autoriser');
-	if (intval($id_tradlang_module) and autoriser('modifier', 'tradlang') and sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
-		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
-		$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module), 'lang');
+	if ((int) $id_tradlang_module && autoriser('modifier', 'tradlang') && sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
+		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
+		$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module, 'lang');
 		$tradlang_sauvegarde_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
-		$fichiers = array();
+		$fichiers = [];
 		$zip = '';
 
 		/**
@@ -43,7 +45,7 @@ function action_tradlang_exporter_zip_dist() {
 		/**
 		 * On crée le zip
 		 */
-		if (count($fichier) > 0) {
+		if ((is_countable($fichier) ? count($fichier) : 0) > 0) {
 			$dir_lang = _DIR_VAR.'cache-lang/'.$module.'/';
 			if (!is_dir(_DIR_VAR . 'cache-lang/')) {
 				sous_repertoire(_DIR_VAR, 'cache-lang');
diff --git a/action/tradlang_supprimer_langue_cible.php b/action/tradlang_supprimer_langue_cible.php
index 53838d4..c5cbe69 100644
--- a/action/tradlang_supprimer_langue_cible.php
+++ b/action/tradlang_supprimer_langue_cible.php
@@ -20,18 +20,20 @@ function action_tradlang_supprimer_langue_cible_dist() {
 		spip_log("action_tradlang_creer_langue_cible $arg pas compris", 'tradlang');
 		return false;
 	}
-	$id_tradlang_module = intval($r[1]);
+	$id_tradlang_module = (int) $r[1];
 	$lang_cible = $r[2];
 
 	include_spip('inc/autoriser');
 
-	if ($lang_cible
-		and intval($id_tradlang_module)
-		and autoriser('modifier', 'tradlang')
-		and !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible) . " AND statut='OK'")) {
+	if (
+		$lang_cible
+		&& (int) $id_tradlang_module
+		&& autoriser('modifier', 'tradlang')
+		&& !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible) . " AND statut='OK'")
+	) {
 		if (!_request('confirm')) {
-			$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
-			$titre = $row_module['nom_mod'] .': ' . _T('tradlang:confirm_suppression_langue_cible', array('lang' => $lang_cible));
+			$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
+			$titre = $row_module['nom_mod'] .': ' . _T('tradlang:confirm_suppression_langue_cible', ['lang' => $lang_cible]);
 			$btn_label = _T('tradlang:bouton_supprimer_langue_module');
 			$redirect = _request('redirect');
 			$url_action = generer_action_auteur('tradlang_supprimer_langue_cible', "$id_tradlang_module/$lang_cible", $redirect);
@@ -42,17 +44,16 @@ function action_tradlang_supprimer_langue_cible_dist() {
 			echo minipres($titre, "<style>h1{font-weight: normal}#minipres{text-align: center}</style>". bouton_action($btn_label,$url_action), '', true);
 			exit;
 
-		}
-		else {
+		} else {
 			/**
 			 * Suppression des versions et urls
 			 */
-			$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND lang='.sql_quote($lang_cible));
-			$tradlangs_supprimer = array();
+			$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module.' AND lang='.sql_quote($lang_cible));
+			$tradlangs_supprimer = [];
 			foreach ($tradlangs as $tradlang) {
 				$tradlangs_supprimer[] = $tradlang['id_tradlang'];
 			}
-			if (count($tradlangs_supprimer)) {
+			if ($tradlangs_supprimer !== []) {
 				sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
 				sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
 				sql_delete('spip_urls', 'type="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
@@ -60,11 +61,11 @@ function action_tradlang_supprimer_langue_cible_dist() {
 			/**
 			 * Suppression des chaînes de langue
 			 */
-			sql_delete('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
+			sql_delete('spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible));
 			/**
 			 * Suppression des bilans de cette langue
 			 */
-			sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
+			sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang_cible));
 			include_spip('inc/invalideur');
 			suivre_invalideur('1');
 			if ($redirect = _request('redirect')){
diff --git a/base/tradlang.php b/base/tradlang.php
index efa6dd6..cd19584 100644
--- a/base/tradlang.php
+++ b/base/tradlang.php
@@ -22,7 +22,7 @@ function tradlang_declarer_tables_interfaces($interface) {
 function tradlang_declarer_tables_objets_sql($tables) {
 	$tables['spip_auteurs']['field']['langues_preferees'] = "text DEFAULT '' NOT NULL";
 	$tables['spip_grappes']['champs_versionnes'][] = 'jointure_tradlang_modules';
-	$tables['spip_tradlang_modules'] = array(
+	$tables['spip_tradlang_modules'] = [
 		'texte_retour' => 'icone_retour',
 		'texte_objet' => 'tradlang:titre_tradlang_module',
 		'texte_objets' => 'tradlang:titre_tradlang_modules',
@@ -33,7 +33,7 @@ function tradlang_declarer_tables_objets_sql($tables) {
 		'info_nb_objets' => 'tradlang:info_nb_tradlang_module',
 		'titre' => "nom_mod AS titre, '' AS lang",
 		'principale' => 'oui',
-		'field'=> array(
+		'field'=> [
 			"id_tradlang_module" => "bigint(21) NOT NULL AUTO_INCREMENT",
 			"module" => "varchar(128) NOT NULL",
 			"nom_mod" => "text DEFAULT '' NOT NULL",
@@ -47,26 +47,26 @@ function tradlang_declarer_tables_objets_sql($tables) {
 			"lang_prefix" => "varchar(32) NOT NULL",
 			"limite_trad" => "tinyint NOT NULL DEFAULT 0",
 			"bon_a_pousser" => "tinyint NOT NULL DEFAULT 0"
-		),
-		'key' => array(
+		],
+		'key' => [
 			'PRIMARY KEY' => 'id_tradlang_module',
 			'UNIQUE dir_module' => 'dir_module',
 			'KEY module' => 'module'
-		),
-		'join' => array(
+		],
+		'join' => [
 			'id_tradlang_module' => 'id_tradlang_module',
 			'module' => 'module'
-		),
-		'rechercher_champs' => array(
+		],
+		'rechercher_champs' => [
 			'module' => 8,
 			'nom_mod' => 8,
 			'texte' => 8,
 			'priorite' => 3
-		),
-		'champs_versionnes' => array('module','nom_mod','texte','lang_mere','priorite','limite_trad')
-	);
+		],
+		'champs_versionnes' => ['module','nom_mod','texte','lang_mere','priorite','limite_trad']
+	];
 
-	$tables['spip_tradlangs'] = array(
+	$tables['spip_tradlangs'] = [
 		'page'=>'tradlang',
 		'texte_retour' => 'icone_retour',
 		'texte_objets' => 'tradlang:titre_tradlang_chaines',
@@ -75,9 +75,9 @@ function tradlang_declarer_tables_objets_sql($tables) {
 		'info_1_objet' => 'tradlang:info_1_tradlang',
 		'info_nb_objets' => 'tradlang:info_nb_tradlang',
 		'date' => 'date_modif',
-		'champs_editables' => array('str','comm','traducteur','statut','md5'),
+		'champs_editables' => ['str','comm','traducteur','statut','md5'],
 		'principale' => 'oui',
-		'field'=> array(
+		'field'=> [
 			"id_tradlang" => "bigint(21) NOT NULL AUTO_INCREMENT",
 			"id_tradlang_module" => "bigint(21) NOT NULL DEFAULT '0'",
 			"titre"	=> "text DEFAULT '' NOT NULL",
@@ -93,18 +93,19 @@ function tradlang_declarer_tables_objets_sql($tables) {
 			"orig" => "tinyint(4) NOT NULL default '0'",
 			"date_modif" => "datetime default NULL",
 			"maj" => "timestamp NOT NULL"
-		),
+		],
 		/**
 		 * Laisser le statut ici sinon on n'agit plus sur le pipeline pre_boucle
 		 */
-		'statut' => array(
-			array(
+		'statut' => [
+			[
 				'champ'=>'statut',
 				'publie'=>'OK,NEW,MODIF,RELIRE',
 				'previsu'=>'OK,NEW,MODIF,RELIRE',
-				'exception'=>'statut')
-		),
-		'key' => array(
+				'exception'=>'statut'
+			]
+		],
+		'key' => [
 			'PRIMARY KEY' => 'id_tradlang',
 			'UNIQUE id_tradlang_module_id_lang' => 'id_tradlang_module,id,lang',
 			'KEY id_tradlang_module' => 'id_tradlang_module',
@@ -114,30 +115,30 @@ function tradlang_declarer_tables_objets_sql($tables) {
 			'KEY statut' => 'statut',
 			'KEY module_lang' => 'module,lang',
 			'KEY id_tradlang_module_lang_statut' => 'id_tradlang_module,lang,statut', // accelere le calcul des bilans
-		),
-		'join' => array(
+		],
+		'join' => [
 			'id_tradlang' => 'id_tradlang',
 			'module' =>'module'
-		),
-		'statut_images' => array(
+		],
+		'statut_images' => [
 			'OK' => 'tradlang_statut_ok.png',
 			'NEW' => 'tradlang_statut_new.png',
 			'MODIF' => 'tradlang_statut_modif.png',
 			'RELIRE' => 'tradlang_statut_relire.png'
-		),
-		'statut_textes_instituer' => 	array(
+		],
+		'statut_textes_instituer' => 	[
 			'OK' => 'tradlang:str_status_traduit',
 			'NEW' => 'tradlang:str_status_new',
 			'MODIF' => 'tradlang:str_status_modif',
 			'RELIRE' => 'tradlang:str_status_relire'
-		),
-		'rechercher_champs' => array(
+		],
+		'rechercher_champs' => [
 			'id' => 8,
 			'str' => 8,
 			'comm' => 4
-		),
-		'champs_versionnes' => array('str','comm','traducteur','statut')
-	);
+		],
+		'champs_versionnes' => ['str','comm','traducteur','statut']
+	];
 	return $tables;
 }
 
@@ -148,26 +149,28 @@ function tradlang_declarer_tables_objets_sql($tables) {
  */
 function tradlang_declarer_tables_auxiliaires($tables_auxiliaires) {
 
-	$spip_tradlangs_bilans = array(
-			"id_tradlang_module" => "bigint(21) NOT NULL",
-			"module" => "varchar(128) NOT NULL",
-			"lang" => "varchar(10) DEFAULT '' NOT NULL",
-			"chaines_total"	=> "smallint(5) DEFAULT '0' NOT NULL",
-			"chaines_ok"	=> "smallint(5) DEFAULT '0' NOT NULL",
-			"chaines_relire" => "smallint(5) DEFAULT '0' NOT NULL",
-			"chaines_modif" => "smallint(5) DEFAULT '0' NOT NULL",
-			"chaines_new" => "smallint(5) DEFAULT '0' NOT NULL",
-			"maj" => "timestamp NOT NULL");
+	$spip_tradlangs_bilans = [
+		"id_tradlang_module" => "bigint(21) NOT NULL",
+		"module" => "varchar(128) NOT NULL",
+		"lang" => "varchar(10) DEFAULT '' NOT NULL",
+		"chaines_total"	=> "smallint(5) DEFAULT '0' NOT NULL",
+		"chaines_ok"	=> "smallint(5) DEFAULT '0' NOT NULL",
+		"chaines_relire" => "smallint(5) DEFAULT '0' NOT NULL",
+		"chaines_modif" => "smallint(5) DEFAULT '0' NOT NULL",
+		"chaines_new" => "smallint(5) DEFAULT '0' NOT NULL",
+		"maj" => "timestamp NOT NULL"
+	];
 
-	$spip_tradlangs_bilans_keys = array(
-			'UNIQUE id_module_lang' => 'id_tradlang_module,lang',
-			'KEY module' => 'module',
-			'KEY lang' => 'lang'
-	);
+	$spip_tradlangs_bilans_keys = [
+		'UNIQUE id_module_lang' => 'id_tradlang_module,lang',
+		'KEY module' => 'module',
+		'KEY lang' => 'lang'
+	];
 
-	$tables_auxiliaires['spip_tradlangs_bilans'] = array(
+	$tables_auxiliaires['spip_tradlangs_bilans'] = [
 		'field' => &$spip_tradlangs_bilans,
-		'key' => &$spip_tradlangs_bilans_keys);
+		'key' => &$spip_tradlangs_bilans_keys
+	];
 
 	return $tables_auxiliaires;
 }
diff --git a/export_lang/csv.php b/export_lang/csv.php
index f575af4..66ade8f 100644
--- a/export_lang/csv.php
+++ b/export_lang/csv.php
@@ -25,7 +25,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * 		Le fichier final
  */
 function export_lang_csv_dist($module, $langue, $dir_lang) {
-	$chaines_csv=$tous=array();
+	$chaines_csv=$tous=[];
 
 	/**
 	 * Le fichier final
@@ -41,7 +41,7 @@ function export_lang_csv_dist($module, $langue, $dir_lang) {
 	/**
 	 * Les chaines
 	 */
-	$res = sql_allfetsel('id,str,statut,comm', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($langue) . ' AND statut != "attic"', 'id');
+	$res = sql_allfetsel('id,str,statut,comm', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $info_module['id_tradlang_module'] . ' AND lang=' . sql_quote($langue) . ' AND statut != "attic"', 'id');
 	foreach ($res as $row) {
 		$tous[$row['id']] = $row;
 	}
@@ -55,11 +55,11 @@ function export_lang_csv_dist($module, $langue, $dir_lang) {
 		$newmd5 = md5($str);
 
 		if ($oldmd5 !== $newmd5) {
-			sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
+			sql_updateq('spip_tradlangs', ['md5'=>$newmd5], 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module']);
 		}
-		$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id = '.sql_quote($id).' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']).' AND lang = ' . sql_quote($info_module['lang_mere']));
+		$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id = '.sql_quote($id).' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module'].' AND lang = ' . sql_quote($info_module['lang_mere']));
 
-		$chaine = array('id' => $row['id'],'str_orig'=>$str_original,'str'=>$str,'statut'=>$row['statut'],'comm'=>$row['comm']);
+		$chaine = ['id' => $row['id'], 'str_orig'=>$str_original, 'str'=>$str, 'statut'=>$row['statut'], 'comm'=>$row['comm']];
 		$chaines_csv[] = $chaine;
 		unset($tous[$id]);
 	}
diff --git a/export_lang/po.php b/export_lang/po.php
index e16084d..f42d0d9 100644
--- a/export_lang/po.php
+++ b/export_lang/po.php
@@ -28,7 +28,9 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * 		Le fichier final
  */
 function export_lang_po_dist($module, $langue, $dir_lang) {
-	$x=$tous=array();
+	$traducteurs = [];
+	$lang = null;
+	$x=$tous=[];
 	$contenu = '';
 
 	/**
@@ -50,25 +52,25 @@ function export_lang_po_dist($module, $langue, $dir_lang) {
 	 * On ajoute une liste de traducteurs en entête de fichier (non obligatoire)
 	 * On ajoute également l'item "Last-Translator : user <email>" dans les métas ($last_auteur)
 	 */
-	$last_auteur = array();
+	$last_auteur = [];
 	if ($langue != $info_module['lang_mere']) {
-		$traducteur = sql_fetsel('id_tradlang,traducteur', 'spip_tradlangs', 'id_tradlang_module = ' . intval($info_module['id_tradlang_module']) . ' AND lang = '.sql_quote($langue), '', 'maj DESC', '0,1');
+		$traducteur = sql_fetsel('id_tradlang,traducteur', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $info_module['id_tradlang_module'] . ' AND lang = '.sql_quote($langue), '', 'maj DESC', '0,1');
 		if (is_numeric($traducteur['traducteur'])) {
 			$id_auteur = $traducteur['traducteur'];
 		} else {
-			$id_auteur = sql_getfetsel('id_auteur', 'spip_versions', 'objet="tradlang" AND id_objet = ' . intval($traducteur['id_tradlang']), '', 'id_version DESC', '0,1');
+			$id_auteur = sql_getfetsel('id_auteur', 'spip_versions', 'objet="tradlang" AND id_objet = ' . (int) $traducteur['id_tradlang'], '', 'id_version DESC', '0,1');
 		}
 
-		$last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
+		$last_auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
 
-		$traducteurs[$lang] = array();
-		$people_unique = array();
-		$liste_traducteurs = sql_select('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module = '.intval($info_module['id_tradlang_module']) . ' AND lang = ' . sql_quote($langue));
+		$traducteurs[$lang] = [];
+		$people_unique = [];
+		$liste_traducteurs = sql_select('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module = '.(int) $info_module['id_tradlang_module'] . ' AND lang = ' . sql_quote($langue));
 		while ($t = sql_fetch($liste_traducteurs)) {
 			$traducteurs_lang = explode(',', $t['traducteur']);
 			foreach ($traducteurs_lang as $traducteur) {
 				if (!in_array($traducteur, $people_unique)) {
-					if (is_numeric($traducteur) and $id_auteur=intval($traducteur)) {
+					if (is_numeric($traducteur) && ($id_auteur=(int) $traducteur)) {
 						$traducteur_supp['nom'] = extraire_multi(sql_getfetsel('nom', 'spip_auteurs', 'id_auteur = ' . $id_auteur));
 						$traducteur_supp['lien'] = url_absolue(generer_url_entite($id_auteur, 'auteur'), $url_site);
 					} elseif (trim(strlen($traducteur)) > 0) {
@@ -99,7 +101,7 @@ function export_lang_po_dist($module, $langue, $dir_lang) {
 	$contenu .= '# This is a SPIP language file  --  Ceci est un fichier langue de SPIP
 # extrait automatiquement de '.$url_trad.'
 '
-. (isset($trad_texte) ? $trad_texte : '')
+. ($trad_texte ?? '')
 . 'msgid ""
 msgstr ""
 "Project-Id-Version: '.$info_module['nom_mod'].'\n"
@@ -128,7 +130,7 @@ msgstr ""
 	 * msgid "Item dans la langue originale"
 	 * msgstr "Item dans la langue actuelle (traduit), si non traduit, vide"
 	 */
-	$res=sql_allfetsel("*","spip_tradlangs","id_tradlang_module=".intval($info_module['id_tradlang_module'])." AND lang=".sql_quote($langue)." AND statut != 'attic'","id");
+	$res=sql_allfetsel("*","spip_tradlangs","id_tradlang_module=".(int) $info_module['id_tradlang_module']." AND lang=".sql_quote($langue)." AND statut != 'attic'","id");
 	foreach($res as $row){
 		$tous[$row['id']] = $row;
 	}
@@ -149,9 +151,9 @@ msgstr ""
 		$newmd5 = md5($str);
 
 		if ($oldmd5 !== $newmd5) {
-			sql_updateq('spip_tradlangs', array('md5' => $newmd5), 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . intval($info_module['id_tradlang_module']));
+			sql_updateq('spip_tradlangs', ['md5' => $newmd5], 'md5 = '.sql_quote($oldmd5) . ' AND id_tradlang_module = ' . (int) $info_module['id_tradlang_module']);
 		}
-		$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id =' . sql_quote($id) . ' AND id_tradlang_module=' . intval($info_module['id_tradlang_module']) . ' AND lang=' . sql_quote($info_module['lang_mere']));
+		$str_original = sql_getfetsel('str', 'spip_tradlangs', 'id =' . sql_quote($id) . ' AND id_tradlang_module=' . (int) $info_module['id_tradlang_module'] . ' AND lang=' . sql_quote($info_module['lang_mere']));
 		$x[] = ($row['comm'] ? '#' . $row['comm']."\n" : '').
 '
 #, '.(($row['statut'] == 'MODIF') ? 'fuzzy, php-format' : 'php-format')."
@@ -161,7 +163,7 @@ msgstr \"".(($row['statut'] == 'NEW') ? '' : str_replace('"', '\"', $str))."\"";
 		unset($tous[$id]);
 	}
 
-	$contenu .= str_replace("\r\n", "\n", join("\n", $x));
+	$contenu .= str_replace("\r\n", "\n", implode("\n", $x));
 
 	ecrire_fichier($fichier, $contenu);
 	return $fichier;
diff --git a/export_lang/spip.php b/export_lang/spip.php
index f991cc0..5463830 100644
--- a/export_lang/spip.php
+++ b/export_lang/spip.php
@@ -27,6 +27,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * 		Le fichier final
  */
 function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
+	$url_trad = null;
 	/**
 	 * Le fichier final
 	 * local/cache-lang/module_lang.php
@@ -39,7 +40,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
 		$where .= " AND statut IN ('OK','MODIF','RELIRE')";
 	}
 	$res=sql_allfetsel('id,str,comm,statut', 'spip_tradlangs', $where, 'id');
-	$x=array();
+	$x=[];
 	$prev = '';
 	/**
 	 * on part de l'origine comme ca on a tout
@@ -51,11 +52,11 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
 	}
 	ksort($tous);
 	foreach ($tous as $row) {
-		if ($prev != strtoupper($row['id'][0])) {
+		if ($prev !== strtoupper($row['id'][0])) {
 			$x[] = "\n$tab// ".strtoupper($row['id'][0]);
 		}
 		$prev = strtoupper($row['id'][0]);
-		if (strlen($row['statut']) and ($row['statut'] != 'OK')) {
+		if (strlen($row['statut']) && $row['statut'] != 'OK') {
 			$row['comm'] .= ' '.$row['statut'];
 		}
 		if (trim($row['comm'])) {
@@ -71,7 +72,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
 		$str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
 		$newmd5 = md5($str);
 		if ($oldmd5 !== $newmd5) {
-			sql_updateq('spip_tradlangs', array('md5'=>$newmd5), 'md5 = ' . sql_quote($oldmd5) . ' AND module = '.sql_quote($module));
+			sql_updateq('spip_tradlangs', ['md5'=>$newmd5], 'md5 = ' . sql_quote($oldmd5) . ' AND module = '.sql_quote($module));
 		}
 
 		$x[] = "$tab".var_export($row['id'], 1) . ' => ' . var_export($str, 1) . ',' . $row['comm'] ;
@@ -93,7 +94,7 @@ function export_lang_spip_dist($module, $langue, $dir_lang, $tout = false) {
 	 */
 	$x[count($x)-1] = preg_replace('/,([^,]*)$/', '\1', $x[count($x)-1]);
 
-	$contenu = join("\n", $x);
+	$contenu = implode("\n", $x);
 
 	/**
 	 * On écrit le fichier
diff --git a/formulaires/configurer_tradlang.php b/formulaires/configurer_tradlang.php
index 2a4f0d8..845c46f 100644
--- a/formulaires/configurer_tradlang.php
+++ b/formulaires/configurer_tradlang.php
@@ -7,7 +7,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 function formulaires_configurer_tradlang_charger_dist() {
 	$valeurs = @unserialize($GLOBALS['meta']['tradlang']);
 	if (!is_array($valeurs)) {
-		$valeurs = array();
+		$valeurs = [];
 	}
 
 	include_spip('inc/lang_liste');
@@ -17,20 +17,21 @@ function formulaires_configurer_tradlang_charger_dist() {
 }
 
 function formulaires_configurer_tradlang_verifier_dist() {
-	$erreurs = array();
-	if (($langues_autorisees = _request('langues_autorisees')) and (count($langues_autorisees)<2)) {
+	$erreurs = [];
+	if (($langues_autorisees = _request('langues_autorisees')) && (is_countable($langues_autorisees) ? count($langues_autorisees) : 0)<2) {
 		$erreurs['langues_autorisees'] = _T('tradlang:erreur_langues_autorisees_insuffisantes');
 	}
 	$limite_trad = _request('seuil_export_tradlang');
-	if (!is_numeric($limite_trad) || (intval($limite_trad) < 0) || (intval($limite_trad) > 100)) {
+	if (!is_numeric($limite_trad) || ((int) $limite_trad < 0) || ((int) $limite_trad > 100)) {
 		$erreurs['seuil_export_tradlang'] = _T('tradlang:erreur_limite_trad_invalide');
 	}
 	return $erreurs;
 }
 
 function formulaires_configurer_tradlang_traiter_dist() {
-	$res = array('editable'=>true);
-	foreach (array(
+	$config = [];
+	$res = ['editable'=>true];
+	foreach ([
 		'sauvegarde_locale',
 		'sauvegarde_post_edition',
 		'seuil_export_tradlang',
@@ -46,10 +47,10 @@ function formulaires_configurer_tradlang_traiter_dist() {
 		'voir_type',
 		'voir_statuts',
 		'voir_auteurs'
-		) as $m) {
-			if (!is_null($v = _request($m))) {
-				$config[$m] = _request($m);
-			}
+	] as $m) {
+		if (!is_null($v = _request($m))) {
+			$config[$m] = _request($m);
+		}
 	}
 	$priorites = explode(';', _TRAD_PRIORITES);
 	foreach ($priorites as $priorite) {
@@ -68,7 +69,7 @@ function tradlang_test_repertoire_local() {
 	if (!$dossier_squelettes && !is_dir(_DIR_RACINE.'squelettes')) {
 		return false;
 	} else {
-		$squelettes = $dossier_squelettes ? $dossier_squelettes : _DIR_RACINE.'squelettes/';
+		$squelettes = $dossier_squelettes ?: _DIR_RACINE.'squelettes/';
 	}
 	if (!is_dir($dir_lang = $squelettes.'lang')) {
 		return false;
diff --git a/formulaires/editer_tradlang.php b/formulaires/editer_tradlang.php
index 721f23e..dcfc88b 100644
--- a/formulaires/editer_tradlang.php
+++ b/formulaires/editer_tradlang.php
@@ -8,8 +8,8 @@ include_spip('inc/actions');
 include_spip('inc/editer');
 
 function formulaires_editer_tradlang_charger($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
-	$valeurs = formulaires_editer_objet_charger('tradlang', $id_tradlang, 0, '', $retour, $config_fonc, $row, $hidden);
-	if (!intval($id_tradlang)) {
+	$valeurs = formulaires_editer_objet_charger('tradlang', $id_tradlang, 0, '', $retour);
+	if (!(int) $id_tradlang) {
 		$valeurs['editable'] = false;
 		$valeurs['message_erreur'] = _T('tradlang:erreur_id_tradlang_numerique');
 	}
@@ -17,22 +17,18 @@ function formulaires_editer_tradlang_charger($id_tradlang = 'aucun', $retour = '
 	 * Si on ne donne pas de langue original, on va chercher la langue mère
 	 */
 	$valeurs['lang_mere'] = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'module = ' . sql_quote($valeurs['module']));
-	if (!$lang_orig) {
-		$valeurs['lang_orig'] = $valeurs['lang_mere'];
-	} else {
-		$valeurs['lang_orig'] = $lang_orig;
-	}
+	$valeurs['lang_orig'] = $lang_orig ?: $valeurs['lang_mere'];
 	return $valeurs;
 }
 
 function formulaires_editer_tradlang_verifier($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
-	$erreurs = formulaires_editer_objet_verifier('tradlang', 0, array('str', 'statut'));
+	$erreurs = formulaires_editer_objet_verifier('tradlang', 0, ['str', 'statut']);
 
 	/**
 	 * On vérifie ici que les variables @...@ des chaines de langue ne sont pas modifiées
 	 */
-	$tradlang = sql_fetsel('chaine.id_tradlang_module,chaine.id,module.lang_mere', 'spip_tradlangs AS chaine LEFT JOIN spip_tradlang_modules AS module ON chaine.id_tradlang_module = module.id_tradlang_module', 'id_tradlang = ' . intval($id_tradlang));
-	$tradlang_mere = sql_getfetsel('str', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']).' AND lang = ' . sql_quote($tradlang['lang_mere']) . ' AND id = ' . sql_quote($tradlang['id']));
+	$tradlang = sql_fetsel('chaine.id_tradlang_module,chaine.id,module.lang_mere', 'spip_tradlangs AS chaine LEFT JOIN spip_tradlang_modules AS module ON chaine.id_tradlang_module = module.id_tradlang_module', 'id_tradlang = ' . (int) $id_tradlang);
+	$tradlang_mere = sql_getfetsel('str', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'].' AND lang = ' . sql_quote($tradlang['lang_mere']) . ' AND id = ' . sql_quote($tradlang['id']));
 	if (preg_match_all(',@[^@]+@,i', $tradlang_mere, $variables)) {
 		foreach ($variables[0] as $variable) {
 			if (!preg_match("/$variable/", _request('str'))) {
@@ -48,26 +44,26 @@ function formulaires_editer_tradlang_verifier($id_tradlang = 'aucun', $retour =
 }
 
 function formulaires_editer_tradlang_traiter($id_tradlang = 'aucun', $retour = '', $lang_orig = '') {
-	$res = formulaires_editer_objet_traiter('tradlang', $id_tradlang, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
+	$res = formulaires_editer_objet_traiter('tradlang', $id_tradlang);
 	if (!test_espace_prive()) {
-		$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
-		$module = sql_fetsel('module,nom_mod,lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']));
-		$lang_orig = $lang_orig ? $lang_orig:$module['lang_mere'];
+		$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
+		$module = sql_fetsel('module,nom_mod,lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module']);
+		$lang_orig = $lang_orig ?: $module['lang_mere'];
 		$url_module = parametre_url(parametre_url(generer_url_entite($tradlang['id_tradlang_module'], 'tradlang_module'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
 		$res['redirect'] = '';
-		if ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']) . ' AND lang = ' . sql_quote($tradlang['lang']).' AND statut != "OK" AND id_tradlang > ' . intval($id_tradlang))) {
+		if ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'] . ' AND lang = ' . sql_quote($tradlang['lang']).' AND statut != "OK" AND id_tradlang > ' . (int) $id_tradlang)) {
 			$url_suivant = parametre_url(parametre_url(generer_url_entite($id_tradlang_suivant, 'tradlang'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
-		} elseif ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($tradlang['id_tradlang_module']) . ' AND statut != "OK" AND lang = ' . sql_quote($tradlang['lang']))) {
+		} elseif ($id_tradlang_suivant = sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $tradlang['id_tradlang_module'] . ' AND statut != "OK" AND lang = ' . sql_quote($tradlang['lang']))) {
 			$url_suivant = parametre_url(parametre_url(generer_url_entite($id_tradlang_suivant, 'tradlang'), 'lang_orig', $lang_orig), 'lang_cible', $tradlang['lang']);
 		}
 		$res['message_ok'] .= '<br />';
 		if (isset($url_suivant)) {
-			$res['message_ok'] .= '<a href="'.$url_suivant.'"">'._T('tradlang:lien_traduire_suivant_str_module', array('module' => $module['nom_mod'])).'</a>';
+			$res['message_ok'] .= '<a href="'.$url_suivant.'"">'._T('tradlang:lien_traduire_suivant_str_module', ['module' => $module['nom_mod']]).'</a>';
 		} else {
-			$res['message_ok'] .= _T('tradlang:info_module_traduit_pc', array('pc'=>'100'));
+			$res['message_ok'] .= _T('tradlang:info_module_traduit_pc', ['pc'=>'100']);
 		}
 		$res['message_ok'] .= '<br />';
-		$res['message_ok'] .= '<a href="'.$url_module.'"">'._T('tradlang:lien_retour_module', array('module' => $module['nom_mod'])).'</a>';
+		$res['message_ok'] .= '<a href="'.$url_module.'"">'._T('tradlang:lien_retour_module', ['module' => $module['nom_mod']]).'</a>';
 		$res['editable'] = true;
 	}
 	return $res;
diff --git a/formulaires/editer_tradlang_module.php b/formulaires/editer_tradlang_module.php
index d72022d..40a71d0 100644
--- a/formulaires/editer_tradlang_module.php
+++ b/formulaires/editer_tradlang_module.php
@@ -9,6 +9,9 @@ include_spip('inc/editer');
 include_spip('tradlang_fonctions');
 
 function formulaires_editer_tradlang_module_charger($id_tradlang_module, $retour = '') {
+	$config_fonc = null;
+	$row = null;
+	$hidden = null;
 	$valeurs = formulaires_editer_objet_charger('tradlang_module', $id_tradlang_module, 0, '', $retour, $config_fonc, $row, $hidden);
 
 	$modules = tradlang_getmodules_base();
@@ -25,8 +28,9 @@ function formulaires_editer_tradlang_module_charger($id_tradlang_module, $retour
 }
 
 function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retour = '') {
-	$erreur = array();
-	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+	$lgs = [];
+	$erreur = [];
+	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 	$modules = tradlang_getmodules_base();
 	if (!isset($modules[$module])) {
 		$erreur['module'] = _T('tradlang:erreur_module_inexistant');
@@ -50,7 +54,7 @@ function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retou
 	}
 
 	$limite_trad = _request('limite_trad');
-	if (!is_numeric($limite_trad) || (intval($limite_trad) < 0) || (intval($limite_trad) > 100)) {
+	if (!is_numeric($limite_trad) || ((int) $limite_trad < 0) || ((int) $limite_trad > 100)) {
 		$erreur['limite_trad'] = _T('tradlang:erreur_limite_trad_invalide');
 	}
 
@@ -58,37 +62,37 @@ function formulaires_editer_tradlang_module_verifier($id_tradlang_module, $retou
 }
 
 function formulaires_editer_tradlang_module_traiter($id_tradlang_module, $retour = '') {
-	$ret = array();
-	$module = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+	$ret = [];
+	$module = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 	if (_request('delete_module')) {
 		$supprimer_module = charger_fonction('tradlang_supprimer_module', 'inc');
 		$suppressions = $supprimer_module($id_tradlang_module);
 		$ret['editable'] = false;
-		if (intval($suppressions) && ($suppressions > 1)) {
-			$ret['message_ok'] = _T('tradlang:message_suppression_module_trads_ok', array('nb' => $suppressions, 'module' => $module));
+		if ((int) $suppressions && ($suppressions > 1)) {
+			$ret['message_ok'] = _T('tradlang:message_suppression_module_trads_ok', ['nb' => $suppressions, 'module' => $module]);
 		} else {
-			$ret['message_ok'] = _T('tradlang:message_suppression_module_ok', array('module' => $module));
+			$ret['message_ok'] = _T('tradlang:message_suppression_module_ok', ['module' => $module]);
 		}
 	} else {
-		$res = sql_select('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+		$res = sql_select('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		$modok = sql_fetch($res);
 		$langue = _request('codelangue');
 
-		$data = array(
-			'nom_mod' => _request('nom_mod') ? _request('nom_mod') : $module,
+		$data = [
+			'nom_mod' => _request('nom_mod') ?: $module,
 			'lang_mere' => _request('lang_mere'),
 			'texte' => _request('texte'),
 			'priorite' => _request('priorite')
-		);
-		$limite_trad = _request('limite_trad') ? _request('limite_trad') : 0;
+		];
+		$limite_trad = _request('limite_trad') ?: 0;
 		$data['limite_trad'] = $limite_trad;
-		sql_updateq('spip_tradlang_modules', $data, 'id_tradlang_module = ' . intval($id_tradlang_module));
-		$ret['message_ok'] = _T('tradlang:message_module_updated', array('module' => $module));
+		sql_updateq('spip_tradlang_modules', $data, 'id_tradlang_module = ' . (int) $id_tradlang_module);
+		$ret['message_ok'] = _T('tradlang:message_module_updated', ['module' => $module]);
 
 		if ($langue) {
 			$sauvegarde = charger_fonction('tradlang_ajouter_code_langue', 'inc');
 			$sauvegarde($modok, $langue);
-			$ret['message_ok'] .= '<br />'._T('tradlang:message_module_langue_ajoutee', array('module' => $module, 'langue' => $langue));
+			$ret['message_ok'] .= '<br />'._T('tradlang:message_module_langue_ajoutee', ['module' => $module, 'langue' => $langue]);
 		}
 		$ret['editable'] = true;
 		$ret['redirect'] = $retour;
diff --git a/formulaires/inc-langues_preferees_fonctions.php b/formulaires/inc-langues_preferees_fonctions.php
index 3b1181d..d87468e 100644
--- a/formulaires/inc-langues_preferees_fonctions.php
+++ b/formulaires/inc-langues_preferees_fonctions.php
@@ -6,7 +6,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 
 function liste_langues() {
 	include_spip('inc/config');
-	if (is_array($langues_autorisees = lire_config('tradlang/langues_autorisees')) and count($langues_autorisees) > 0) {
+	if (is_array($langues_autorisees = lire_config('tradlang/langues_autorisees')) && $langues_autorisees !== []) {
 		return $langues_autorisees;
 	} else {
 		include_spip('inc/lang_liste');
diff --git a/formulaires/tradlang_choisir_module.php b/formulaires/tradlang_choisir_module.php
index 042bcd5..2780768 100644
--- a/formulaires/tradlang_choisir_module.php
+++ b/formulaires/tradlang_choisir_module.php
@@ -30,15 +30,18 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * 		Le tableau des valeurs chargées au formulaire
  */
 function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $lang_orig = 'fr', $lang_cible = '', $lang_crea = '') {
-	$id_tradlang_module = _request('id_tradlang_module') ? _request('id_tradlang_module') : $id_tradlang_module;
+	$valeurs = [];
+	$langues_presentes = [];
+	$langues_conf = [];
+	$id_tradlang_module = _request('id_tradlang_module') ?: $id_tradlang_module;
 
 	include_spip('inc/autoriser');
 	if (autoriser('modifier', 'tradlang')) {
-		if (!intval($id_tradlang_module)) {
+		if (!(int) $id_tradlang_module) {
 			$id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', '', 'priorite,nom_mod');
 		}
-		if (!$lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
-			$valeurs['id_tradlang_module'] = $id_tradlang_module = $module_defaut = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', array('priorite', 'nom_mod'), '', '0,1');
+		if (!$lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
+			$valeurs['id_tradlang_module'] = $id_tradlang_module = $module_defaut = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', '', ['priorite', 'nom_mod'], '', '0,1');
 			/**
 			 * Si aucun module dans la base
 			 */
@@ -60,8 +63,8 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
 		if (!$lang_cible) {
 			$lang_cible = $GLOBALS['spip_lang'];
 		}
-		$valeurs = array('id_tradlang_module' => $id_tradlang_module, 'lang_orig' => $lang_orig, 'lang_cible' => $lang_cible, 'lang_crea' => $lang_crea);
-		foreach ($valeurs as $key => $val) {
+		$valeurs = ['id_tradlang_module' => $id_tradlang_module, 'lang_orig' => $lang_orig, 'lang_cible' => $lang_cible, 'lang_crea' => $lang_crea];
+		foreach (array_keys($valeurs) as $key) {
 			if (_request($key)) {
 				$valeurs[$key] = _request($key);
 			}
@@ -74,8 +77,8 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
 		 * sinon on passe à la langue mère
 		 */
 		if ($lang_orig != $lang_mere) {
-			$compte_total_mere = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . intval($valeurs['id_tradlang_module']) . ' AND statut = "OK" AND lang = ' . sql_quote($lang_mere));
-			$compte_total_orig = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . intval($valeurs['id_tradlang_module']) . ' AND statut = "OK" AND lang = ' . sql_quote($lang_orig));
+			$compte_total_mere = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $valeurs['id_tradlang_module'] . ' AND statut = "OK" AND lang = ' . sql_quote($lang_mere));
+			$compte_total_orig = sql_getfetsel('COUNT(*)', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $valeurs['id_tradlang_module'] . ' AND statut = "OK" AND lang = ' . sql_quote($lang_orig));
 			if ($compte_total_mere != $compte_total_orig) {
 				$valeurs['lang_orig'] = $lang_mere;
 			}
@@ -86,7 +89,7 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
 		$langues_possibles = $GLOBALS['codes_langues'];
 
 		ksort($langues_possibles);
-		$langues_modules = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module));
+		$langues_modules = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		foreach ($langues_modules as $langue) {
 			$langues_presentes[$langue['lang']] = traduire_nom_langue($langue['lang']);
 		}
@@ -135,7 +138,7 @@ function formulaires_tradlang_choisir_module_charger($id_tradlang_module = '', $
  * 		Le tableau des erreurs
  */
 function formulaires_tradlang_choisir_module_verifier($id_tradlang_module = '', $lang_orig = '', $lang_cible = '', $lang_crea = '') {
-	$erreur = array();
+	$erreur = [];
 	if (!_request('lang_cible') && !_request('creer_lang_cible')) {
 		$erreur['lang_cible'] = _T('tradlang:erreur_pas_langue_cible');
 	} elseif (_request('lang_cible') == _request('lang_orig')) {
@@ -163,22 +166,21 @@ function formulaires_tradlang_choisir_module_verifier($id_tradlang_module = '',
  * 		Le tableau habituel des cvt avec redirect pour la redirection
  */
 function formulaires_tradlang_choisir_module_traiter($id_tradlang_module = '', $lang_orig = '', $lang_cible = '', $lang_crea = '') {
-	$id_tradlang_module = _request('id_tradlang_module');
+	$res = [];
+ $id_tradlang_module = _request('id_tradlang_module');
 	$lang_orig = _request('lang_orig');
 	$lang_cible = _request('lang_cible');
 	$lang_crea = _request('creer_lang_cible');
 	if ($traduire = _request('traduire')) {
 		$res['message_ok'] = _T('tradlang:message_passage_trad');
-		if ($lang_crea) {
-			if (include_spip('inc/autoriser') && autoriser('modifier', 'tradlang')) {
-				// Import de la langue mere
-				$infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
-				$ajouter_code_langue = charger_fonction('tradlang_ajouter_code_langue', 'inc');
-				$ajouter_code_langue($infos_module,$lang_crea);
-				$lang_cible = $lang_crea;
-				$res['message_ok'] = _T('tradlang:message_passage_trad_creation_lang', array('lang' => $lang_crea));
-			}
-		}
+		if ($lang_crea && (include_spip('inc/autoriser') && autoriser('modifier', 'tradlang'))) {
+      // Import de la langue mere
+      $infos_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
+      $ajouter_code_langue = charger_fonction('tradlang_ajouter_code_langue', 'inc');
+      $ajouter_code_langue($infos_module,$lang_crea);
+      $lang_cible = $lang_crea;
+      $res['message_ok'] = _T('tradlang:message_passage_trad_creation_lang', ['lang' => $lang_crea]);
+  }
 		$res['redirect'] = parametre_url(parametre_url(parametre_url(generer_url_entite($id_tradlang_module, 'tradlang_module'), 'lang_orig', $lang_orig), 'lang_cible', $lang_cible), 'lang_crea', $lang_crea);
 	} else {
 		$res['editable'] = true;
diff --git a/formulaires/tradlang_importer_langue.php b/formulaires/tradlang_importer_langue.php
index 3abeae7..f4955d1 100644
--- a/formulaires/tradlang_importer_langue.php
+++ b/formulaires/tradlang_importer_langue.php
@@ -5,15 +5,20 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 }
 
 function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module, $lang, $lang_orig) {
+	$valeurs = [];
+	$erreurs = [];
+	$file = [];
+	$contenu_po = null;
+	$undefined = [];
 	$valeurs['_etapes'] = 2;
 	$valeurs['lang_orig'] = $lang_orig;
 	$valeurs['lang_cible'] = $lang;
-	if (!$nom_mod = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module))) {
-		$valeurs['message_erreur'] = _T('tradlang:erreur_import_module_inexistant', array('id'=>$id_tradlang_module));
+	if (!$nom_mod = sql_getfetsel('nom_mod', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module)) {
+		$valeurs['message_erreur'] = _T('tradlang:erreur_import_module_inexistant', ['id'=>$id_tradlang_module]);
 		$valeurs['editable'] = false;
 	} else {
 		if (_request('_etape') == '2') {
-			$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+			$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 			$fichier_module = $module.'_'.$lang.'.php';
 			$fichier_module_po = $module.'_'.$lang.'.po';
 			$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
@@ -21,7 +26,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 			$dest_po = $dir_lang.$fichier_module_po;
 			if (file_exists($dest) || file_exists($dest_po)) {
 				if (file_exists($dest)) {
-					$modifs = $undefined = array();
+					$modifs = $undefined = [];
 					$memtrad = $GLOBALS['idx_lang'] = 'i18n_'.crc32($module).'_tmp';
 					include $dest;
 
@@ -31,18 +36,16 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 					$contenu=file_get_contents($dest);
 					$contenu = str_replace("\t", '', $contenu);
 					$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
-					$liste_trad=array();
+					$liste_trad=[];
 					reset($tab);
 
-					while (list(,$ligne) = each($tab)) {
+					foreach ($tab as $ligne) {
 						$ligne = str_replace("\'", '', $ligne);
-						if (strlen($ligne) > 0) {
-							if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
-								if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
-									list(,$comm) = explode('#', $matches[3]);
-									if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
-										$liste_trad[$matches[1]]=trim($comm);
-									}
+						if (strlen($ligne) > 0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
+							if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
+								[, $comm] = explode('#', $matches[3]);
+								if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
+									$liste_trad[$matches[1]]=trim($comm);
 								}
 							}
 						}
@@ -53,19 +56,19 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 					$str_lang = $GLOBALS[$memtrad];  // on a vu certains fichiers faire des betises et modifier idx_lang
 					// verifie si c'est un fichier langue
 					if (!is_array($str_lang)) {
-						$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', array('fichier' => $file['name']));
+						$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', ['fichier' => $file['name']]);
 					} else {
-						$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module='.intval($id_tradlang_module).' AND lang='.sql_quote($lang));
+						$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module='.(int) $id_tradlang_module.' AND lang='.sql_quote($lang));
 						foreach ($langues_base as $strings_id => $strings) {
 							$str_lang[$strings['id']] = preg_replace(',^(<(MODIF|NEW|RELIRE|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]);
-							if ((strlen($str_lang[$strings['id']]) > 0) and $strings['str'] != $str_lang[$strings['id']]) {
-								$modifs[$strings['id']] = array('orig' => $strings['str'],'new' => $str_lang[$strings['id']],'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK'));
+							if (strlen($str_lang[$strings['id']]) > 0 && $strings['str'] != $str_lang[$strings['id']]) {
+								$modifs[$strings['id']] = ['orig' => $strings['str'], 'new' => $str_lang[$strings['id']], 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK')];
 							} elseif (strlen($str_lang[$strings['id']]) == 0) {
 								$undefined[] = $strings['id'];
-							} elseif (in_array($strings['id'], $keys_liste_trad) and ($strings['statut'] != $liste_trad[$strings['id']])) {
-								$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']],'statut' => $liste_trad[$strings['id']]);
-							} elseif (!in_array($strings['id'], $keys_liste_trad) and $strings['statut'] != 'OK') {
-								$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']],'statut' => 'OK');
+							} elseif (in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != $liste_trad[$strings['id']]) {
+								$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']], 'statut' => $liste_trad[$strings['id']]];
+							} elseif (!in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != 'OK') {
+								$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']], 'statut' => 'OK'];
 							}
 							unset($langues_base[$strings_id]);
 						}
@@ -74,7 +77,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 				if (file_exists($dest_po)) {
 					lire_fichier($dest_po, $contenu_po);
 					preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
-					$array_po = array();
+					$array_po = [];
 					foreach ($matches[0] as $match) {
 						$statut = 'OK';
 						preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@@ -85,23 +88,21 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 							preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
 							$str_orig = rtrim(trim($matches_str_orig[1]), '"');
 							$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
-							$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND str = ' . sql_quote($str_orig));
+							$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND str = ' . sql_quote($str_orig));
 						}
 						if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
 							$statut = 'MODIF';
 						}
 						if ($str != '') {
-							$array_po[$matches[1]] = array('str'=>$str, 'statut'=>$statut);
+							$array_po[$matches[1]] = ['str'=>$str, 'statut'=>$statut];
 						}
 					}
-					$modifs = array();
+					$modifs = [];
 					$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'module = ' . sql_quote($module).' AND lang = ' . sql_quote($lang));
 					foreach ($langues_base as $strings_id => $strings) {
 						$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
-						if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
-							if (($strings['str'] != $array_po[$strings['id']]['str']) or ($strings['statut'] != $array_po[$strings['id']]['statut'])) {
-								$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$array_po[$strings['id']]['str'],'statut'=>$array_po[$strings['id']]['statut']);
-							}
+						if (isset($array_po[$strings['id']]['str']) && strlen(trim($array_po[$strings['id']]['str'])) > 0 && ($strings['str'] != $array_po[$strings['id']]['str'] || $strings['statut'] != $array_po[$strings['id']]['statut'])) {
+							$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$array_po[$strings['id']]['str'], 'statut'=>$array_po[$strings['id']]['statut']];
 						}
 						unset($langues_base[$strings_id]);
 					}
@@ -110,7 +111,7 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 			$valeurs['_modifs'] = $modifs;
 		}
 	}
-	if (count($undefined) > 0) {
+	if ($undefined !== []) {
 		$valeurs['message_erreur'] = singulier_ou_pluriel(count($undefined), 'tradlang:item_non_defini_fichier', 'tradlang:item_non_defini_fichier_nb');
 	}
 
@@ -119,22 +120,24 @@ function formulaires_tradlang_importer_langue_charger_dist($id_tradlang_module,
 }
 
 function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_module, $lang) {
-	$erreurs = array();
+	$fichiers_module = [];
+	$modifs = [];
+	$erreurs = [];
 	if (_request('_etape')==1) {
-		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		$fichier_php = $module.'_'.$lang.'.php';
 		$fichier_po = $module.'_'.$lang.'.po';
 		$fichiers_module[] = $fichier_php;
 		$fichiers_module[] = $fichier_po;
-		$post = isset($_FILES) ? $_FILES : $GLOBALS['HTTP_POST_FILES'];
-		$files = array();
+		$post = $_FILES ?? $GLOBALS['HTTP_POST_FILES'];
+		$files = [];
 		include_spip('inc/joindre_document');
 		if (is_array($post)) {
 			foreach ($post as $file) {
-				if (!($file['error'] == 4)) {
+				if ($file['error'] != 4) {
 					if (!in_array($file['name'], $fichiers_module)) {
 						$fichier_module = $fichier_php.', '.$fichier_po;
-						$erreurs['fichier_langue'] =  _T('tradlang:erreur_upload_fichier_php', array('fichier' => $file['name'], 'fichier_attendu' => $fichier_module));
+						$erreurs['fichier_langue'] =  _T('tradlang:erreur_upload_fichier_php', ['fichier' => $file['name'], 'fichier_attendu' => $fichier_module]);
 					}
 
 					if (!$erreurs['fichier_langue']) {
@@ -157,18 +160,16 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 							$contenu=file_get_contents($dest);
 							$contenu = str_replace("\t", '', $contenu);
 							$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
-							$liste_trad=array();
+							$liste_trad=[];
 							reset($tab);
 
-							while (list(,$ligne) = each($tab)) {
+							foreach ($tab as $ligne) {
 								$ligne = str_replace("\'", '', $ligne);
-								if (strlen($ligne) > 0) {
-									if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
-										if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
-											list(,$comm) = explode('#', $matches[3]);
-											if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
-												$liste_trad[$matches[1]]=trim($comm);
-											}
+								if (strlen($ligne) > 0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
+									if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
+										[, $comm] = explode('#', $matches[3]);
+										if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
+											$liste_trad[$matches[1]]=trim($comm);
 										}
 									}
 								}
@@ -179,18 +180,18 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 							$str_lang = $GLOBALS[$memtrad];
 							// verifie si c'est un fichier langue
 							if (!is_array($str_lang)) {
-								$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', array('fichier' => $file['name']));
+								$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_fichier_php_array', ['fichier' => $file['name']]);
 							} else {
-								$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
-								$modifs = array();
+								$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
+								$modifs = [];
 								foreach ($langues_base as $strings_id => $strings) {
 									$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
 									if ($strings['str'] != $str_lang[$strings['id']]) {
-										$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']]);
+										$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']]];
 										break;
 									}
-									if (in_array($strings['id'], $keys_liste_trad) and ($strings['statut'] != $liste_trad[$strings['id']])) {
-										$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$str_lang[$strings['id']]);
+									if (in_array($strings['id'], $keys_liste_trad) && $strings['statut'] != $liste_trad[$strings['id']]) {
+										$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$str_lang[$strings['id']]];
 										break;
 									}
 								}
@@ -201,7 +202,7 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 							 */
 							lire_fichier($dest, $contenu_po);
 							preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
-							$array_po = array();
+							$array_po = [];
 							foreach ($matches[0] as $match) {
 								$statut = 'OK';
 								preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@@ -212,24 +213,26 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 									preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
 									$str_orig = rtrim(trim($matches_str_orig[1]), '"');
 									$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
-									$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND str = '.sql_quote($str_orig));
+									$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND str = '.sql_quote($str_orig));
 								}
 								if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
 									$statut = 'MODIF';
 								}
 								if ($str != '') {
-									$array_po[$matches[1]] = array('str' => $str, 'statut' => $statut);
+									$array_po[$matches[1]] = ['str' => $str, 'statut' => $statut];
 								}
 							}
-							$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
-							$modifs = array();
+							$langues_base = sql_allfetsel('id,str,statut', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
+							$modifs = [];
 							foreach ($langues_base as $strings_id => $strings) {
 								$str_lang[$strings['id']] = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
-								if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
-									if (($strings['str'] != $array_po[$strings['id']]['str']) or ($strings['statut'] != $array_po[$strings['id']]['statut'])) {
-										$modifs[$strings['id']] = array('orig'=>$strings['str'],'new'=>$array_po[$strings['id']]['str'],'statut'=>$array_po[$strings['id']]['statut']);
-										break;
-									}
+								if (
+									isset($array_po[$strings['id']]['str'])
+									&& strlen(trim($array_po[$strings['id']]['str'])) > 0
+									&& ($strings['str'] != $array_po[$strings['id']]['str'] || $strings['statut'] != $array_po[$strings['id']]['statut'])
+								) {
+									$modifs[$strings['id']] = ['orig'=>$strings['str'], 'new'=>$array_po[$strings['id']]['str'], 'statut'=>$array_po[$strings['id']]['statut']];
+									break;
 								}
 							}
 						}
@@ -237,11 +240,11 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 				}
 			}
 		}
-		if (!count($post) and !$erreurs['fichier_langue']) {
+		if ($post === [] && !$erreurs['fichier_langue']) {
 			$erreurs['fichier_langue'] = _T('medias:erreur_indiquez_un_fichier');
 		}
 
-		if (!count($modifs) and !$erreurs['fichier_langue']) {
+		if (!(is_countable($modifs) ? count($modifs) : 0) && !$erreurs['fichier_langue']) {
 			$erreurs['fichier_langue'] = _T('tradlang:erreur_upload_aucune_modif');
 		}
 	}
@@ -249,20 +252,20 @@ function formulaires_tradlang_importer_langue_verifier_1_dist($id_tradlang_modul
 }
 
 function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_module, $lang) {
-	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 	$fichier_php = $module.'_'.$lang.'.php';
 	$fichier_po = $module.'_'.$lang.'.po';
 	$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
 	$dest = $dir_lang.$fichier_php;
 	$destpo = $dir_lang.$fichier_po;
-	$modifs = $erreurs = array();
+	$modifs = $erreurs = [];
 	if (file_exists($dest)) {
 		$memtrad = $GLOBALS['idx_lang'] = 'i18n_'.crc32($module).'_tmp';
 		include $dest;
 		$str_lang = $GLOBALS[$memtrad];  // on a vu certains fichiers faire des betises et modifier idx_lang
 
-		$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
-		$modifs = array();
+		$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
+		$modifs = [];
 		foreach ($langues_base as $strings_id => $strings) {
 			if (_request($strings['id']) == 'oui') {
 				$modifs[] = $strings['id'];
@@ -270,8 +273,8 @@ function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_modul
 			unset($langues_base[$strings_id]);
 		}
 	} elseif (file_exists($destpo)) {
-		$langues_base = sql_allfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang));
-		$modifs = array();
+		$langues_base = sql_allfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang));
+		$modifs = [];
 		foreach ($langues_base as $strings_id => $strings) {
 			if (_request($strings['id']) == 'oui') {
 				$modifs[] = $strings['id'];
@@ -281,16 +284,18 @@ function formulaires_tradlang_importer_langue_verifier_2_dist($id_tradlang_modul
 	} else {
 		$erreurs['message_erreur'] = "Le fichier temporaire $dest n'a pas été créé";
 	}
-	if (!count($modifs)) {
+	if ($modifs === []) {
 		$erreurs['message_erreur'] = _T('tradlang:erreur_upload_choisir_une');
 	}
 	return $erreurs;
 }
 
 function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module, $lang) {
-	include_spip('action/editer_tradlang');
+	$contenu_po = null;
+ $res = [];
+ include_spip('action/editer_tradlang');
 
-	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+	$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 	$fichier_php = $module.'_'.$lang.'.php';
 	$fichier_po = $module.'_'.$lang.'.po';
 	$dir_lang = sous_repertoire(_DIR_VAR, 'cache-tradlang');
@@ -305,18 +310,16 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
 		$contenu=file_get_contents($dest);
 		$contenu = str_replace("\t", '', $contenu);
 		$tab=preg_split("/\r\n|\n\r|;\n|\n\/\/|\(\n|\n\);\n|\'\,\n|\n[\s\t]*(\')|\/\/[\s\t][0-9A-Z]\n[\s\t](\')/", $contenu, '-1', PREG_SPLIT_NO_EMPTY);
-		$liste_trad=array();
+		$liste_trad=[];
 		reset($tab);
 
-		while (list(,$ligne) = each($tab)) {
+		foreach ($tab as $ligne) {
 			$ligne = str_replace("\'", '', $ligne);
-			if (strlen($ligne)>0) {
-				if (preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
-					if (isset($matches[1]) and isset($matches[3]) and strlen(trim($matches[3])) > 0) {
-						list(,$comm) = explode('#', $matches[3]);
-						if (in_array(trim($comm), array('NEW','MODIF','RELIRE'))) {
-							$liste_trad[$matches[1]]=trim($comm);
-						}
+			if (strlen($ligne)>0 && preg_match("/\'(.*?)\'[\s\t]*=>[\s\t]*\'(.*?)\'[\s\t]*,{0,1}[\s\t]*(#.*)?/ms", $ligne, $matches)) {
+				if (isset($matches[1]) && isset($matches[3]) && strlen(trim($matches[3])) > 0) {
+					[, $comm] = explode('#', $matches[3]);
+					if (in_array(trim($comm), ['NEW', 'MODIF', 'RELIRE'])) {
+						$liste_trad[$matches[1]]=trim($comm);
 					}
 				}
 			}
@@ -331,11 +334,11 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
 		}
 
 		$langues_base = sql_allfetsel('*', 'spip_tradlangs', 'module = ' . sql_quote($module).' AND lang = ' . sql_quote($lang));
-		$modifs = array();
+		$modifs = [];
 		foreach ($langues_base as $strings_id => $strings) {
 			if (_request($strings['id']) == 'oui') {
 				$set_new = tradlang_utf8(preg_replace(',^(<(MODIF|NEW|PLUS_UTILISE)>)+,US', '', $str_lang[$strings['id']]));
-				$set = array('str' => $set_new, 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK'));
+				$set = ['str' => $set_new, 'statut' => (in_array($strings['id'], $keys_liste_trad) ? $liste_trad[$strings['id']] : 'OK')];
 				tradlang_set($strings['id_tradlang'], $set);
 				$count++;
 				unset($langues_base[$strings_id]);
@@ -345,7 +348,7 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
 	} else if (file_exists($dest = $dir_lang. $fichier_po)) {
 		lire_fichier($dest, $contenu_po);
 		preg_match_all(',(\#\, php-format|\#\, fuzzy\, php-format).*msgstr "(.*)\n(\n|\Z),Uims', $contenu_po, $matches);
-		$array_po = array();
+		$array_po = [];
 		foreach ($matches[0] as $match) {
 			$statut = 'OK';
 			preg_match(',msgstr \"(.*)\n(\n|\Z),Uims', $match, $matches_str);
@@ -356,25 +359,25 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
 				preg_match(',\nmsgid \"(.*)\nmsgstr,Uims', $match, $matches_str_orig);
 				$str_orig = rtrim(trim($matches_str_orig[1]), '"');
 				$str_orig = trim(str_replace("\"\n\"", '', $str_orig));
-				$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND str = ' . sql_quote($str_orig));
+				$matches[1] = sql_getfetsel('id', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_tradlang_module.' AND str = ' . sql_quote($str_orig));
 			}
 			if (preg_match(',\#\, fuzzy\, php-format,', $match, $matches_statut)) {
 				$statut = 'MODIF';
 			}
 			if ($str != '') {
-				$array_po[$matches[1]] = array('str' => $str, 'statut' => $statut);
+				$array_po[$matches[1]] = ['str' => $str, 'statut' => $statut];
 			}
 		}
 
 		$langues_base = sql_allfetsel('id_tradlang,id,str,statut', 'spip_tradlangs', 'module = ' . sql_quote($module) . ' AND lang = ' . sql_quote($lang));
-		$modifs_po = array();
+		$modifs_po = [];
 		foreach ($langues_base as $strings_id => $strings) {
 			if (_request($strings['id']) == 'oui') {
 				$set=$instit=null;
-				if (isset($array_po[$strings['id']]['str']) and strlen(trim($array_po[$strings['id']]['str'])) > 0) {
-					$set = array('str' => $array_po[$strings['id']]['str']);
+				if (isset($array_po[$strings['id']]['str']) && strlen(trim($array_po[$strings['id']]['str'])) > 0) {
+					$set = ['str' => $array_po[$strings['id']]['str']];
 					tradlang_set($strings['id_tradlang'], $set);
-					$instit = array('statut' => $array_po[$strings['id']]['statut']);
+					$instit = ['statut' => $array_po[$strings['id']]['statut']];
 					instituer_tradlang($strings['id_tradlang'], $instit);
 					$count++;
 					unset($langues_base[$strings_id]);
@@ -385,9 +388,9 @@ function formulaires_tradlang_importer_langue_traiter_dist($id_tradlang_module,
 	}
 	$res['editable'] = false;
 	if ($count > 1) {
-		$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', array('nb' => $count));
+		$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', ['nb' => $count]);
 	} else {
-		$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', array('nb' => $count));
+		$res['message_ok'] = _T('tradlang:message_upload_nb_modifies', ['nb' => $count]);
 	}
 	return $res;
 }
diff --git a/formulaires/tradlang_recherche_avancee.php b/formulaires/tradlang_recherche_avancee.php
index 97dec2c..1d3b019 100644
--- a/formulaires/tradlang_recherche_avancee.php
+++ b/formulaires/tradlang_recherche_avancee.php
@@ -12,19 +12,15 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * @return array
  */
 function formulaires_tradlang_recherche_avancee_charger_dist($lien = '') {
-	if ($GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site']) {
-		$lang = $GLOBALS['spip_lang'];
-	} else {
-		$lang='';
-	}
+	$lang = $GLOBALS['spip_lang'] != $GLOBALS['meta']['langue_site'] ? $GLOBALS['spip_lang'] : '';
 
-	return
-		array(
-			'action' => ($lien ? $lien : generer_url_public('traduction_recheche')), # action specifique, ne passe pas par Verifier, ni Traiter
-			'recherche' => _request('recherche'),
-			'statut' => _request('statut'),
-			'id_tradlang_module' => _request('id_tradlang_module'),
-			'lang_string' => _request('lang_string'),
-			'lang' => $lang
-		);
+	return [
+		'action' => ($lien ?: generer_url_public('traduction_recheche')),
+		# action specifique, ne passe pas par Verifier, ni Traiter
+		'recherche' => _request('recherche'),
+		'statut' => _request('statut'),
+		'id_tradlang_module' => _request('id_tradlang_module'),
+		'lang_string' => _request('lang_string'),
+		'lang' => $lang,
+  	];
 }
diff --git a/formulaires/tradlang_switcher_langue.php b/formulaires/tradlang_switcher_langue.php
index f79f192..45a30ef 100644
--- a/formulaires/tradlang_switcher_langue.php
+++ b/formulaires/tradlang_switcher_langue.php
@@ -34,18 +34,18 @@ function formulaires_tradlang_switcher_langue_charger_dist($lien = '', $langue_m
 	}
 
 	if ($multiple && !is_array($langue_modules)) {
-		$langue_modules = array();
+		$langue_modules = [];
 	} elseif (!$multiple && is_array($langue_modules)) {
 		$langue_modules = '';
 	}
 
-	return
-		array(
-			'action' => ($lien ? $lien : parametre_url(self(), 'langue_modules', '')), # action specifique, ne passe pas par Verifier, ni Traiter
-			'titre' => $titre,
-			'name' => $name,
-			$name => $langue_modules,
-			'multiple' => $multiple,
-			'option_vide' => $option_vide
-		);
+	return [
+		'action' => ($lien ?: parametre_url(self(), 'langue_modules', '')),
+		# action specifique, ne passe pas par Verifier, ni Traiter
+		'titre' => $titre,
+		'name' => $name,
+		$name => $langue_modules,
+		'multiple' => $multiple,
+		'option_vide' => $option_vide,
+	];
 }
diff --git a/genie/tradlang_maintenance.php b/genie/tradlang_maintenance.php
index b37b25f..5f45917 100644
--- a/genie/tradlang_maintenance.php
+++ b/genie/tradlang_maintenance.php
@@ -16,7 +16,7 @@ function genie_tradlang_maintenance_dist($t) {
 		include_spip('inc/config');
 	}
 	$nb_langues = lire_config('tradlang/limiter_langues_bilan_nb', 10);
-	$langues_utilisees = array();
+	$langues_utilisees = [];
 	$langues = sql_allfetsel('lang', 'spip_tradlangs', 'statut="OK"', 'lang', 'COUNT(*) DESC', "0,$nb_langues");
 	foreach ($langues as $langue) {
 		$langues_utilisees[] = $langue['lang'];
@@ -27,11 +27,11 @@ function genie_tradlang_maintenance_dist($t) {
 	 * Suppression des versions des tradlangs disparus
 	 */
 	$tradlang_disparus = sql_allfetsel('versions.id_objet', 'spip_versions AS versions', 'versions.objet="tradlang" AND NOT EXISTS(SELECT * FROM spip_tradlangs AS tradlangs WHERE versions.id_objet = tradlangs.id_tradlang)', 'versions.id_objet');
-	$disparus = array();
+	$disparus = [];
 	foreach ($tradlang_disparus as $tradlang) {
 		$disparus[] = $tradlang['id_objet'];
 	}
-	if (count($disparus) and count($disparus) > 0) {
+	if (count($disparus) && $disparus !== []) {
 		sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $disparus));
 		sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $disparus));
 	}
@@ -40,11 +40,11 @@ function genie_tradlang_maintenance_dist($t) {
 	 * Suppression des urls des tradlangs disparus
 	 */
 	$tradlang_disparus = sql_allfetsel('url.id_objet', 'spip_urls AS url', 'url.type="tradlang" AND NOT EXISTS(SELECT * FROM spip_tradlangs AS tradlangs WHERE url.id_objet = tradlangs.id_tradlang)', 'url.id_objet');
-	$disparus_url = array();
+	$disparus_url = [];
 	foreach ($tradlang_disparus as $tradlang) {
 		$disparus_url[] = $tradlang['id_objet'];
 	}
-	if (count($disparus_url) && count($disparus_url) > 0) {
+	if (count($disparus_url) && $disparus_url !== []) {
 		sql_delete('spip_urls', 'type="tradlang" AND ' . sql_in('id_objet', $disparus_url));
 	}
 	return 0;
diff --git a/inc/salvatore.php b/inc/salvatore.php
index d5f7387..68b8729 100644
--- a/inc/salvatore.php
+++ b/inc/salvatore.php
@@ -66,8 +66,8 @@ function salvatore_init($log_function = null, $display_time = false){
 			define('_DIR_SALVATORE_DEPOTS', _DIR_SALVATORE . 'depots/');
 		}
 
-		if (defined('_ID_AUTEUR_SALVATORE') and is_numeric(_ID_AUTEUR_SALVATORE)){
-			$GLOBALS['visiteur_session'] = array();
+		if (defined('_ID_AUTEUR_SALVATORE') && is_numeric(_ID_AUTEUR_SALVATORE)){
+			$GLOBALS['visiteur_session'] = [];
 			$GLOBALS['visiteur_session']['id_auteur'] = _ID_AUTEUR_SALVATORE;
 			// TODO : charger une session complete ?
 		}
@@ -125,7 +125,7 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){
 	$lignes = array_map('trim', $lignes);
 	$lignes = array_filter($lignes);
 
-	$liste_trad = array();
+	$liste_trad = [];
 	foreach ($lignes as $ligne){
 		if ($ligne[0]!=='#'){
 			$liste = explode(';', trim($ligne));
@@ -138,23 +138,15 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){
 				$methode = 'svn';
 				$branche = '';
 				$url = $liste[0];
-				if (empty($liste[1])){
-					$module = preg_replace('#.*/(.*)$#', '$1', $url);
-				} else {
-					$module = $liste[1];
-				}
-				if (empty($liste[2])){
-					$lang = 'fr';
-				} else {
-					$lang = $liste[2];
-				}
+				$module = empty($liste[1]) ? preg_replace('#.*/(.*)$#', '$1', $url) : $liste[1];
+				$lang = empty($liste[2]) ? 'fr' : $liste[2];
 			}
 			// format complet et explicite de 6 valeurs
 			// seule les valeurs pour branche et dir peuvent etre vide (branche master par defaut en git)
 			// svn;url;;;module;lang
 			// git;url;master;subdir/tolang;module;lang
 			else {
-				list($methode, $url, $branche, $dir, $module, $lang) = $liste;
+				[$methode, $url, $branche, $dir, $module, $lang] = $liste;
 			}
 			$methode = trim($methode);
 			$url = trim($url);
@@ -165,12 +157,9 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){
 			$module = trim($module);
 			$lang = trim($lang);
 
-			if ($methode
-				and $url
-				and $module
-				and $lang){
+			if ($methode && $url && $module && $lang) {
 				// que fait la $GLOBALS['modules'] ?
-				if (empty($GLOBALS['modules']) or in_array($module, $GLOBALS['modules'])){
+				if (empty($GLOBALS['modules']) || in_array($module, $GLOBALS['modules'])){
 
 					// unifier les urls git en https, plus simple a gerer car ne necessitent pas une cle ssh sur le user php (www-data)
 					if (strpos($url, "git@git.spip.net:") === 0) {
@@ -179,14 +168,14 @@ function salvatore_charger_fichier_traductions($fichier_traductions = null){
 
 					// definir un dir checkout unique meme si plusieurs modules de meme nom dans differents repos
 					$d = explode('/', $url);
-					while (count($d) and in_array(end($d), ['', 'lang', 'trunk', 'ecrire'])){
+					while (count($d) && in_array(end($d), ['', 'lang', 'trunk', 'ecrire'])){
 						array_pop($d);
 					}
 					$source = '';
 					if (end($d)){
 						$source = basename(end($d), '.git');
 						$source = '--' . preg_replace(',[^\w-],', '_', $source);
-						if ($branche and $branche !== 'master') {
+						if ($branche && $branche !== 'master') {
 							$source .= "@$branche";
 						}
 					}
@@ -223,7 +212,7 @@ function salvatore_filtrer_liste_traductions($liste_trad, $modules) {
 		$modules = explode(',', $modules);
 	}
 	$modules = array_map('trim', $modules);
-	$liste_filtree = array();
+	$liste_filtree = [];
 	foreach ($liste_trad as $trad) {
 		if (in_array($trad['module'], $modules)) {
 			$liste_filtree[] = $trad;
@@ -241,9 +230,8 @@ function salvatore_filtrer_liste_traductions($liste_trad, $modules) {
 function salvatore_get_lang_from($module, $fichier_lang) {
 	$lang = str_replace($module, '__', basename($fichier_lang, '.php'));
 	$lang = explode('___', $lang, 2);
-	$lang = end($lang);
 
-	return $lang;
+	return end($lang);
 }
 
 /**
@@ -276,8 +264,7 @@ function salvatore_verifier_gestionnaire_traduction($dir_module, $module) {
 		$url = extraire_attribut($t, 'url');
 		$gestionnaire = extraire_attribut($t, 'gestionnaire');
 		$url_gestionnaire = salvatore_get_self_url();
-		if ($gestionnaire !== 'salvatore'
-		  or protocole_implicite($url) !== protocole_implicite($url_gestionnaire)) {
+		if ($gestionnaire !== 'salvatore' || protocole_implicite($url) !== protocole_implicite($url_gestionnaire)) {
 			return "$gestionnaire@$url";
 		}
 	}
@@ -292,20 +279,21 @@ function salvatore_verifier_gestionnaire_traduction($dir_module, $module) {
  * @return string
  */
 function salvatore_lire_gestionnaire_traduction($dir_module, $module) {
-	$xml_file = $dir_module . '/' . $module . '.xml';
+	$matches = null;
+ $xml_file = $dir_module . '/' . $module . '.xml';
 	/**
 	 * On teste ici si le fichier est géré par un autre salvatore
 	 * Si oui on empeche son import en le signifiant
 	 */
 	if (file_exists($xml_file)){
 		$xml_content = spip_xml_load($xml_file);
-		if (is_array($xml_content)){
-			// normalement on a qu'une balise <traduction...> englobante, donc on prend la premiere qu'on trouve
-			if (spip_xml_match_nodes('/^traduction/', $xml_content, $matches)
-			  and $nodes = array_keys($matches)
-			  and $node = reset($nodes)) {
-				return "<$node>";
-			}
+		// normalement on a qu'une balise <traduction...> englobante, donc on prend la premiere qu'on trouve
+		if (
+			is_array($xml_content)
+			&& (spip_xml_match_nodes('/^traduction/', $xml_content, $matches)
+			&& ($nodes = array_keys($matches)) && ($node = reset($nodes)))
+		){
+			return "<$node>";
 		}
 	}
 	return '';
@@ -329,13 +317,14 @@ function salvatore_retrouver_tradlang_module($dir_module, $module) {
 
 	// peut-etre c'est un module qui a change d'url repo, et donc son dir_module a change ?
 	// sur la balise <traduction> le dir_module est ecrit dans id
-	if ($t = salvatore_lire_gestionnaire_traduction($dir_module, $module)
-	  and $old_dir_module = extraire_attribut($t, 'id')
-	  and $old_dir_module !== $base_dir_module){
+	if ((
+		$t = salvatore_lire_gestionnaire_traduction($dir_module, $module))
+		&& ($old_dir_module = extraire_attribut($t, 'id'))
+		&& $old_dir_module !== $base_dir_module
+		&& ($row_module = sql_fetsel('*', 'spip_tradlang_modules', 'dir_module = ' . sql_quote($old_dir_module)))
+	){
 
-		if ($row_module = sql_fetsel('*', 'spip_tradlang_modules', 'dir_module = ' . sql_quote($old_dir_module))) {
-			return $row_module;
-		}
+		return $row_module;
 	}
 
 	#salvatore_fail("Module $module non trouve", "le module dans $dir_module n'est pas en base et n'est pas un renommage de repository");
@@ -358,20 +347,17 @@ function salvatore_set_credentials($methode, $url_repository, $module){
 	if (strpos($url_repository, '://')!==false){
 		$user = $pass = false;
 		$parts = parse_url($url_repository);
-		if (empty($parts['user']) and empty($parts['pass'])){
+		if (empty($parts['user']) && empty($parts['pass'])){
 			$host = $parts['host'];
 			require_once(_DIR_ETC . 'salvatore_passwd.inc');
 
-			if (!empty($domaines_exceptions)
-				and is_array($domaines_exceptions)
-				and in_array($host, $domaines_exceptions)){
+			if (!empty($domaines_exceptions) && is_array($domaines_exceptions) && in_array($host, $domaines_exceptions)){
 				// on est dans une exception
 
 				/**
 				 * Est-ce que cette exception dispose de credentials (Github ou git.spip.net)
 				 */
-				if (is_array($domaines_exceptions_credentials)
-					and !empty($domaines_exceptions_credentials[$host])){
+				if (is_array($domaines_exceptions_credentials) && !empty($domaines_exceptions_credentials[$host])){
 					$user = $domaines_exceptions_credentials[$host]['user'];
 					$pass = $domaines_exceptions_credentials[$host]['pass'];
 				}
@@ -381,10 +367,10 @@ function salvatore_set_credentials($methode, $url_repository, $module){
 				if (isset(${$module . '_user'})){
 					$user = ${$module . '_user'};
 					$pass = ${$module . '_passwd'};
-				} elseif ($methode==='svn' and isset($SVNUSER)) {
+				} elseif ($methode==='svn' && isset($SVNUSER)) {
 					$user = $SVNUSER;
 					$pass = $SVNPASSWD;
-				} elseif ($methode==='git' and isset($GITUSER)) {
+				} elseif ($methode==='git' && isset($GITUSER)) {
 					$user = $GITUSER;
 					$pass = $GITPASSWD;
 				}
@@ -411,8 +397,10 @@ function salvatore_set_credentials($methode, $url_repository, $module){
  */
 function salvatore_vcs_function($methode, $function) {
 	include_spip('salvatore/vcs/' . $methode);
-	if (function_exists($f = "salvatore_vcs_{$methode}_$function")
-	  or function_exists($f = $f . '_dist')) {
+	if (
+		function_exists($f = "salvatore_vcs_{$methode}_$function")
+		|| function_exists($f .= '_dist')
+	) {
 		return $f;
 	}
 	throw new \Exception("Erreur fonction $f inexistante");
@@ -450,14 +438,12 @@ function salvatore_log($msg = '', $display_function = null, $display_time = fals
 	static $function = null;
 	static $time_log = null;
 
-	if ($display_function and is_callable($display_function)){
+	if ($display_function && is_callable($display_function)){
 		$function = $display_function;
 		$time_log = $display_time;
 	}
 
-	if (defined('_DEBUG_TRAD_LANG')
-		and _DEBUG_TRAD_LANG
-		and $msg){
+	if (defined('_DEBUG_TRAD_LANG') && _DEBUG_TRAD_LANG && $msg){
 		if ($time_log) {
 			$t = date('Y-m-d H:i:s') . ": ";
 			$msg = $t . str_replace("\n", "\n$t", $msg);
@@ -508,8 +494,7 @@ function salvatore_fail($sujet, $corps){
  * @param string $corps
  */
 function salvatore_envoyer_mail($sujet = 'Erreur', $corps = ''){
-	if (defined('_EMAIL_ERREURS') and _EMAIL_ERREURS
-		and defined('_EMAIL_SALVATORE') and _EMAIL_SALVATORE){
+	if (defined('_EMAIL_ERREURS') && _EMAIL_ERREURS && defined('_EMAIL_SALVATORE') && _EMAIL_SALVATORE){
 		$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
 		$destinataire = _EMAIL_ERREURS;
 		$from = _EMAIL_SALVATORE;
@@ -557,10 +542,10 @@ function salvatore_verifier_base_upgradee() {
  * @return string
  */
 function salvatore_nettoyer_chaine_langue($chaine, $lang){
-	static $typographie_functions = array();
+	static $typographie_functions = [];
 
 	if (!isset($typographie_functions[$lang])){
-		$typo = (in_array($lang, array('eo', 'fr', 'cpf')) || strncmp($lang, 'fr_', 3)==0) ? 'fr' : 'en';
+		$typo = (in_array($lang, ['eo', 'fr', 'cpf']) || strncmp($lang, 'fr_', 3)==0) ? 'fr' : 'en';
 		$typographie_functions[$lang] = charger_fonction($typo, 'typographie');
 	}
 
@@ -588,7 +573,7 @@ function salvatore_nettoyer_chaine_langue($chaine, $lang){
 	 * Protéger le contenu des balises <html> <code> <cadre> <frame> <tt> <pre>
 	 */
 	define('_PROTEGE_BLOCS_HTML', ',<(html|code|cadre|pre|tt)(\s[^>]*)?>(.*)</\1>,UimsS');
-	if ((strpos($chaine, '<')!==false) and preg_match_all(_PROTEGE_BLOCS_HTML, $chaine, $matches, PREG_SET_ORDER)){
+	if (strpos($chaine, '<')!==false && preg_match_all(_PROTEGE_BLOCS_HTML, $chaine, $matches, PREG_SET_ORDER)){
 		foreach ($matches as $reg){
 			$insert = $reg[0];
 			// hack: on transforme les caracteres a proteger en les remplacant
@@ -608,7 +593,5 @@ function salvatore_nettoyer_chaine_langue($chaine, $lang){
 	 */
 	$chaine = strtr($chaine, _TYPO_PROTECTEUR, _TYPO_PROTEGER);
 
-	$chaine = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $chaine), ENT_NOQUOTES, 'utf-8'));
-
-	return $chaine;
-}
\ No newline at end of file
+	return unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $chaine), ENT_NOQUOTES, 'utf-8'));
+}
diff --git a/inc/stats_trads_to_array.php b/inc/stats_trads_to_array.php
index 8846cb6..6402b13 100644
--- a/inc/stats_trads_to_array.php
+++ b/inc/stats_trads_to_array.php
@@ -10,26 +10,23 @@ define('MOYENNE_GLISSANTE_JOUR', 30);
 // moyenne glissante sur 12 mois
 define('MOYENNE_GLISSANTE_MOIS', 12);
 
-function inc_stats_trads_to_array_dist($unite, $duree, $id_tradlang_module, $options = array()) {
+function inc_stats_trads_to_array_dist($unite, $duree, $id_tradlang_module, $options = []) {
 	$now = time();
 
-	if (!in_array($unite, array('jour', 'mois'))) {
+	if (!in_array($unite, ['jour', 'mois'])) {
 		$unite = 'jour';
 	}
 	$serveur = '';
 
 	$table = 'spip_versions';
 	$order = 'date';
-	$where = array(
-		'objet = "tradlang"',
-		'id_version > 0'
-	);
+	$where = ['objet = "tradlang"', 'id_version > 0'];
 
 
-	if (!isset($options['id_auteur']) or !is_numeric($options['id_auteur'])) {
+	if (!isset($options['id_auteur']) || !is_numeric($options['id_auteur'])) {
 		$where[] = 'id_auteur > 0';
 	} else {
-		$where[] = 'id_auteur = '.intval($options['id_auteur']);
+		$where[] = 'id_auteur = '.(int) $options['id_auteur'];
 	}
 
 	if ($duree) {
@@ -41,32 +38,32 @@ function inc_stats_trads_to_array_dist($unite, $duree, $id_tradlang_module, $opt
 	$res = sql_select("COUNT(*) AS v, DATE_FORMAT($order,'$format') AS d", $table, $where, 'd', 'd', '', '', $serveur);
 	$format = str_replace('%', '', $format);
 	$periode = ($unite=='jour' ? 24*3600 : 365*24*3600/12);
-	$step = intval(round($periode*1.1, 0));
+	$step = (int) round($periode*1.1, 0);
 	$glisse = constant('MOYENNE_GLISSANTE_'.strtoupper($unite));
 	moyenne_glissante();
-	$data = array();
+	$data = [];
 	$r = sql_fetch($res, $serveur);
 	if (!$r) {
-		$r = array('d' => date($format, $now), 'v' => 0);
+		$r = ['d' => date($format, $now), 'v' => 0];
 	}
 	do {
-		$data[$r['d']] = array('versions'=>$r['v'],'moyenne'=>moyenne_glissante($r['v'], $glisse));
+		$data[$r['d']] = ['versions'=>$r['v'], 'moyenne'=>moyenne_glissante($r['v'], $glisse)];
 		$last = $r['d'];
 
 		// donnee suivante
 		$r = sql_fetch($res, $serveur);
 		// si la derniere n'est pas la date courante, l'ajouter
-		if (!$r and $last != date($format, $now)) {
-			$r = array('d' => date($format, $now), 'v' => 0);
+		if (!$r && $last != date($format, $now)) {
+			$r = ['d' => date($format, $now), 'v' => 0];
 		}
 
 		// completer les trous manquants si besoin
 		if ($r) {
 			$next = strtotime($last);
 			$current = strtotime($r['d']);
-			while (($next+=$step) < $current and $d = date($format, $next)) {
+			while (($next+=$step) < $current && ($d = date($format, $next))) {
 				if (!isset($data[$d])) {
-					$data[$d] = array('versions'=>0, 'moyenne' => moyenne_glissante(0, $glisse));
+					$data[$d] = ['versions'=>0, 'moyenne' => moyenne_glissante(0, $glisse)];
 				}
 				$last = $d;
 				$next = strtotime($last);
@@ -79,7 +76,7 @@ function inc_stats_trads_to_array_dist($unite, $duree, $id_tradlang_module, $opt
 	// + moyenne au pro rata du temps qui reste
 	$moyenne = end($data);
 	$moyenne = prev($data);
-	$moyenne = ($moyenne and isset($moyenne['moyenne'])) ? $moyenne['moyenne'] : 0;
+	$moyenne = ($moyenne && isset($moyenne['moyenne'])) ? $moyenne['moyenne'] : 0;
 	$data[$last]['moyenne'] = $moyenne;
 
 	// temps restant
@@ -88,7 +85,7 @@ function inc_stats_trads_to_array_dist($unite, $duree, $id_tradlang_module, $opt
 	$prorata = $remaining/$periode;
 
 	// projection
-	$data[$last]['prevision'] = $data[$last]['versions'] + intval(round($moyenne*$prorata));
+	$data[$last]['prevision'] = $data[$last]['versions'] + (int) round($moyenne*$prorata);
 
 	return $data;
 }
diff --git a/inc/tradlang_ajouter_code_langue.php b/inc/tradlang_ajouter_code_langue.php
index 6442cf8..f39a78b 100644
--- a/inc/tradlang_ajouter_code_langue.php
+++ b/inc/tradlang_ajouter_code_langue.php
@@ -22,9 +22,9 @@ function inc_tradlang_ajouter_code_langue($module, $lang) {
 	 *
 	 * On ne sélectionne que les champs qui seront définitivement insérés tels quel en base pour simplifier le tableau
 	 */
-	$chaines_mere = sql_allfetsel('str,id,comm', 'spip_tradlangs', 'id_tradlang_module = '.intval($module['id_tradlang_module']).' AND lang = ' . sql_quote($module['lang_mere']));
-	$total = count($chaines_mere);
-	$chaines_inserees = array();
+	$chaines_mere = sql_allfetsel('str,id,comm', 'spip_tradlangs', 'id_tradlang_module = '.(int) $module['id_tradlang_module'].' AND lang = ' . sql_quote($module['lang_mere']));
+	$total = is_countable($chaines_mere) ? count($chaines_mere) : 0;
+	$chaines_inserees = [];
 	$date = date('Y-m-d H:i:s');
 	foreach ($chaines_mere as $id => $chaine) {
 		/**
@@ -37,7 +37,7 @@ function inc_tradlang_ajouter_code_langue($module, $lang) {
 		 * - les champs orig, statut, traducteur prennent les valeurs par défaut (0 et NEW),
 		 * id_tradlang et maj sont incrémentés par mysql
 		 */
-		$chaine['id_tradlang_module'] = intval($module['id_tradlang_module']);
+		$chaine['id_tradlang_module'] = (int) $module['id_tradlang_module'];
 		$chaine['titre'] = $chaine['id'].' : '.$module['module'].' - '.$lang;
 		$chaine['module'] = $module['module'];
 		$chaine['lang'] = $lang;
@@ -48,7 +48,7 @@ function inc_tradlang_ajouter_code_langue($module, $lang) {
 		$chaines_inserees[] = $chaine;
 		unset($chaines_mere[$id]);
 	}
-	if (intval($total) > 0) {
+	if ((int) $total > 0) {
 		$res = sql_insertq_multi('spip_tradlangs', $chaines_inserees);
 	}
 	/**
@@ -68,22 +68,21 @@ function inc_tradlang_ajouter_code_langue($module, $lang) {
 	/**
 	 * On ajoute un job tout de suite pour générer les premières révisions
 	 */
-	$job_description = _T('tradlang:job_creation_revisions_modules', array('module' => "#". $module['id_tradlang_module'] . ' ' . $module['module']));
-	job_queue_add('tradlang_creer_premieres_revisions', $job_description, array($module['id_tradlang_module'], $lang), 'inc/', false, 0, 10);
+	$job_description = _T('tradlang:job_creation_revisions_modules', ['module' => "#". $module['id_tradlang_module'] . ' ' . $module['module']]);
+	job_queue_add('tradlang_creer_premieres_revisions', $job_description, [$module['id_tradlang_module'], $lang], 'inc/', false, 0, 10);
 
 	/**
 	 * On ajoute la ligne du bilan
 	 */
-	$bilan = array(
-				'id_tradlang_module' => $module['id_tradlang_module'],
-				'module' => $module['module'],
-				'lang'=> $lang,
-				'chaines_total' => $total,
-				'chaines_ok' => 0,
-				'chaines_relire' => 0,
-				'chaines_modif' => 0,
-				'chaines_new' => $total
-			);
+	$bilan = [
+		'id_tradlang_module' => $module['id_tradlang_module'],
+		'module' => $module['module'], 'lang'=> $lang,
+		'chaines_total' => $total,
+		'chaines_ok' => 0,
+		'chaines_relire' => 0,
+		'chaines_modif' => 0,
+		'chaines_new' => $total
+	];
 	sql_insertq('spip_tradlangs_bilans', $bilan);
 
 	/**
diff --git a/inc/tradlang_creer_premieres_revisions.php b/inc/tradlang_creer_premieres_revisions.php
index ac86687..dd43755 100644
--- a/inc/tradlang_creer_premieres_revisions.php
+++ b/inc/tradlang_creer_premieres_revisions.php
@@ -16,13 +16,9 @@ function inc_tradlang_creer_premieres_revisions_dist($id_tradlang_module=0, $lan
 	$count = 0;
 	if ($versionnes = liste_champs_versionnes('spip_tradlangs')) {
 		$where = 'b.id_objet IS NULL';
-		$where .= (isset($id_tradlang_module) and $id_tradlang_module) ? ' AND a.id_tradlang_module = '.intval($id_tradlang_module) : '';
-		$where .= (isset($lang) and $lang) ? ' AND a.lang = '.sql_quote($lang) : '';
-		if (isset($nb) && is_numeric($nb) && $nb > 1) {
-			$nb = $nb;
-		} else {
-			$nb = 400;
-		}
+		$where .= (isset($id_tradlang_module) && $id_tradlang_module) ? ' AND a.id_tradlang_module = '.(int) $id_tradlang_module : '';
+		$where .= (isset($lang) && $lang) ? ' AND a.lang = '.sql_quote($lang) : '';
+		$nb = isset($nb) && is_numeric($nb) && $nb > 1 ? $nb : 400;
 
 		$tradlangs_sans_revisions = sql_select('a.id_tradlang', 'spip_tradlangs AS a LEFT JOIN spip_versions AS b ON b.objet = "tradlang" AND b.id_objet = a.id_tradlang', $where, '', 'a.id_tradlang DESC', '0,'.$nb);
 		while ($tradlang = sql_fetch($tradlangs_sans_revisions)) {
diff --git a/inc/tradlang_forum_extraire_titre.php b/inc/tradlang_forum_extraire_titre.php
index 13004cc..aa65a05 100644
--- a/inc/tradlang_forum_extraire_titre.php
+++ b/inc/tradlang_forum_extraire_titre.php
@@ -5,16 +5,17 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 }
 
 function inc_tradlang_forum_extraire_titre($id_objet) {
-	$trouver_table = charger_fonction('trouver_table', 'base');
+	$titre = null;
+ 	$trouver_table = charger_fonction('trouver_table', 'base');
 	$desc = $trouver_table(table_objet_sql('tradlang'));
-	$_titre = $desc['titre'] ? $desc['titre'] : ($desc['field']['titre'] ? 'titre' : '');
+	$_titre = $desc['titre'] ?: ($desc['field']['titre'] ? 'titre' : '');
 	$_table = $desc['table'];
 	$_primary = id_table_objet($_table);
-	if ($_titre and $res = sql_fetsel(
+	if ($_titre && ($res = sql_fetsel(
 		$_titre,
 		$_table,
-		array("$_primary = ". sql_quote($id_objet))
-	)) {
+		["$_primary = ". sql_quote($id_objet)]
+	))) {
 		$titre = $res['titre'];
 	}
 	return $titre;
diff --git a/inc/tradlang_sauvegarde_module.php b/inc/tradlang_sauvegarde_module.php
index 1c64c53..cb44dc9 100644
--- a/inc/tradlang_sauvegarde_module.php
+++ b/inc/tradlang_sauvegarde_module.php
@@ -57,7 +57,5 @@ function inc_tradlang_sauvegarde_module_dist($module, $langue, $dir_lang = false
 		$f = charger_fonction('spip', 'export_lang');
 	}
 
-	$fichier = $f($module,$langue,$dir_lang,$tout);
-
-	return $fichier;
+	return $f($module,$langue,$dir_lang,$tout);
 }
diff --git a/inc/tradlang_supprimer_module.php b/inc/tradlang_supprimer_module.php
index 03d28df..f517a0b 100644
--- a/inc/tradlang_supprimer_module.php
+++ b/inc/tradlang_supprimer_module.php
@@ -12,35 +12,35 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * @return bool
  */
 function inc_tradlang_supprimer_module($id_tradlang_module) {
-	if (intval($id_tradlang_module) > 0) {
+	if ((int) $id_tradlang_module > 0) {
 		/**
 		 * Le module existe-t-il ?
 		 */
-		$module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
+		$module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_tradlang_module);
 		if ($module) {
 			/**
 			 * Suppression des versions des chaines de langue
 			 */
-			$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module=' . intval($module));
-			$tradlangs_supprimer = array();
+			$tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module=' . (int) $module);
+			$tradlangs_supprimer = [];
 			foreach ($tradlangs as $tradlang) {
 				$tradlangs_supprimer[] = $tradlang['id_tradlang'];
 			}
-			if (count($tradlangs_supprimer)) {
+			if ($tradlangs_supprimer !== []) {
 				sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
 				sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
 			}
 			/**
 			 * Suppression des chaines de langue, du module et des bilans
 			 */
-			sql_delete('spip_tradlangs', 'id_tradlang_module = ' . intval($module));
-			sql_delete('spip_tradlang_modules', 'id_tradlang_module = ' . intval($module));
-			sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . intval($module));
+			sql_delete('spip_tradlangs', 'id_tradlang_module = ' . (int) $module);
+			sql_delete('spip_tradlang_modules', 'id_tradlang_module = ' . (int) $module);
+			sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . (int) $module);
 			/**
 			 * Suppression des versions du module
 			 */
-			sql_delete('spip_versions_fragments', 'objet="tradlang_module" AND id_objet=' . intval($module));
-			sql_delete('spip_versions', 'objet="tradlang_module" AND id_objet = ' . intval($module));
+			sql_delete('spip_versions_fragments', 'objet="tradlang_module" AND id_objet=' . (int) $module);
+			sql_delete('spip_versions', 'objet="tradlang_module" AND id_objet = ' . (int) $module);
 			return true;
 		} else {
 			return false;
diff --git a/inc/tradlang_verifier_bilans.php b/inc/tradlang_verifier_bilans.php
index c79c37b..5df6bf0 100644
--- a/inc/tradlang_verifier_bilans.php
+++ b/inc/tradlang_verifier_bilans.php
@@ -25,18 +25,18 @@ function inc_tradlang_verifier_bilans_dist($id_tradlang_module, $langue_mere, $i
 	/**
 	 * Quelle est le total de la langue mère
 	 */
-	$total = sql_countsel('spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($langue_mere) . " AND statut='OK'");
+	$total = sql_countsel('spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($langue_mere) . " AND statut='OK'");
 
 	/**
 	 * Les infos du module
 	 */
-	$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . intval($id_tradlang_module));
+	$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . (int) $id_tradlang_module);
 	$module = $row_module['module'];
 
 	/**
 	 * Les différentes langues du module
 	 */
-	$langues = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module));
+	$langues = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module);
 	$langues = array_column($langues, 'lang');
 
 	$tradlang_verifier_langue_base = charger_fonction('tradlang_verifier_langue_base', 'inc');
@@ -45,20 +45,20 @@ function inc_tradlang_verifier_bilans_dist($id_tradlang_module, $langue_mere, $i
 	 */
 	foreach ($langues as $lang){
 		$bilan = false;
-		$where = 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang);
+		$where = 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang = ' . sql_quote($lang);
 
-		$nbs = array();
+		$nbs = [];
 		foreach (['OK', 'RELIRE', 'MODIF', 'NEW'] as $s){
 			$nbs[$s] = sql_countsel('spip_tradlangs', "$where AND statut=" . sql_quote($s));
 		}
 		$total_lang = array_sum($nbs);
 
 		// si les totaux ne matchent pas, reverifier tout
-		if ($total_lang!=$total){
+		if ($total_lang != $total){
 			if ($total_lang>$total){
-				spip_log("La langue $lang du mondule $module (#$id_tradlang_module) a trop de chaines $total_lang vs " . json_encode($nbs), 'bilan.' . _LOG_ERREUR);
+				spip_log("La langue $lang du mondule $module (#$id_tradlang_module) a trop de chaines $total_lang vs " . json_encode($nbs, JSON_THROW_ON_ERROR), 'bilan.' . _LOG_ERREUR);
 			} elseif ($total_lang<$total) {
-				spip_log("La langue $lang du mondule $module (#$id_tradlang_module) n'a pas assez de chaines $total_lang vs " . json_encode($nbs), 'bilan.' . _LOG_ERREUR);
+				spip_log("La langue $lang du mondule $module (#$id_tradlang_module) n'a pas assez de chaines $total_lang vs " . json_encode($nbs, JSON_THROW_ON_ERROR), 'bilan.' . _LOG_ERREUR);
 			}
 
 			$tradlang_verifier_langue_base($module, $lang);
@@ -67,7 +67,7 @@ function inc_tradlang_verifier_bilans_dist($id_tradlang_module, $langue_mere, $i
 			}
 		}
 
-		$infos_bilan = array(
+		$infos_bilan = [
 			'id_tradlang_module' => $id_tradlang_module,
 			'module' => $module,
 			'lang' => $lang,
@@ -76,10 +76,10 @@ function inc_tradlang_verifier_bilans_dist($id_tradlang_module, $langue_mere, $i
 			'chaines_relire' => $nbs['RELIRE'],
 			'chaines_modif' => $nbs['MODIF'],
 			'chaines_new' => $nbs['NEW']
-		);
+		];
 
-		if (sql_countsel('spip_tradlangs_bilans', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang))) {
-			sql_updateq('spip_tradlangs_bilans', $infos_bilan, 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang));
+		if (sql_countsel('spip_tradlangs_bilans', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang))) {
+			sql_updateq('spip_tradlangs_bilans', $infos_bilan, 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang));
 		}
 		else {
 			sql_insertq('spip_tradlangs_bilans', $infos_bilan);
diff --git a/inc/tradlang_verifier_langue_base.php b/inc/tradlang_verifier_langue_base.php
index b896e43..70d595e 100644
--- a/inc/tradlang_verifier_langue_base.php
+++ b/inc/tradlang_verifier_langue_base.php
@@ -35,20 +35,20 @@ function inc_tradlang_verifier_langue_base_dist($id_tradlang_module, $langue) {
 		$supprimees = array_sum(array_column($res, 1));
 		$recuperees = array_sum(array_column($res, 2));
 
-		return array($inserees,$supprimees,$recuperees);
+		return [$inserees, $supprimees, $recuperees];
 	}
 
-	if (!$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . intval($id_tradlang_module))) {
-		return array(0,0,0);
+	if (!$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . (int) $id_tradlang_module)) {
+		return [0, 0, 0];
 	}
-	$where_module = 'id_tradlang_module=' . intval($id_tradlang_module);
+	$where_module = 'id_tradlang_module=' . (int) $id_tradlang_module;
 	$module = $row_module['module']; // pour les logs
 
 	/**
 	 * Quelle est la langue mère
 	 */
 	$langue_mere = $row_module['lang_mere'];
-	$trad_langue_mere_id = $trad_langue_cible_id = $trad_langue_cible_id_attic = array();
+	$trad_langue_mere_id = $trad_langue_cible_id = $trad_langue_cible_id_attic = [];
 
 	/**
 	 * On crée trois tableaux:
@@ -75,7 +75,7 @@ function inc_tradlang_verifier_langue_base_dist($id_tradlang_module, $langue) {
 	 * On met dans un tableau les chaines en question si on a au moins un résultat
 	 */
 	$diff1 = array_diff($trad_langue_mere_id, $trad_langue_cible_id);
-	if (count($diff1) > 0) {
+	if ($diff1 !== []) {
 		$diff1_array = sql_allfetsel('*', 'spip_tradlangs', "$where_module AND lang=" . sql_quote($langue_mere) . ' AND ' . sql_in('id', $diff1));
 		foreach ($diff1_array as $diff) {
 			/**
@@ -85,7 +85,7 @@ function inc_tradlang_verifier_langue_base_dist($id_tradlang_module, $langue) {
 			 */
 			if (in_array($diff['id'], $trad_langue_cible_id_attic)) {
 				$titre = $diff['id'].' : '.$diff['module'].' - '.$langue;
-				sql_updateq('spip_tradlangs', array('statut' => 'MODIF', 'titre' => $titre), "$where_module AND id=" . sql_quote($diff['id']) . ' AND lang=' . sql_quote($langue) . " AND statut='attic'");
+				sql_updateq('spip_tradlangs', ['statut' => 'MODIF', 'titre' => $titre], "$where_module AND id=" . sql_quote($diff['id']) . ' AND lang=' . sql_quote($langue) . " AND statut='attic'");
 				$recuperees++;
 			} else {
 				$diff['orig'] = 0;
@@ -106,9 +106,9 @@ function inc_tradlang_verifier_langue_base_dist($id_tradlang_module, $langue) {
 	 * et donc à supprimer
 	 */
 	$diff2 = array_diff($trad_langue_cible_id, $trad_langue_mere_id);
-	if (count($diff2) > 0) {
+	if ($diff2 !== []) {
 		foreach ($diff2 as $id) {
-			sql_updateq('spip_tradlangs', array('statut' => 'attic'), "$where_module AND id=" . sql_quote($id) . ' AND lang=' . sql_quote($langue));
+			sql_updateq('spip_tradlangs', ['statut' => 'attic'], "$where_module AND id=" . sql_quote($id) . ' AND lang=' . sql_quote($langue));
 			$supprimees++;
 		}
 	}
@@ -117,8 +117,8 @@ function inc_tradlang_verifier_langue_base_dist($id_tradlang_module, $langue) {
 		include_spip('inc/invalideur');
 		suivre_invalideur('1');
 		spip_log("$module: insert => $inserees - suppressions => $supprimees - recuperations => $recuperees", 'bilan.'._LOG_ERREUR);
-		return array($inserees,$supprimees,$recuperees);
+		return [$inserees, $supprimees, $recuperees];
 	}
 
-	return array(0,0,0);
+	return [0, 0, 0];
 }
diff --git a/salvatore/ecriveur.php b/salvatore/ecriveur.php
index 1cbcf38..0a1520a 100644
--- a/salvatore/ecriveur.php
+++ b/salvatore/ecriveur.php
@@ -113,7 +113,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 
 	$url_repo = $source['url'];
 
-	$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . intval($id_tradlang_module));
+	$row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module=' . (int) $id_tradlang_module);
 	if (!$row_module) {
 		$module = $source['module'];
 		salvatore_log("<error>Le module #$id_tradlang_module $module n'existe pas</error>");
@@ -123,7 +123,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 	$dir_module = $dir_modules . $row_module['dir_module'];
 	$module = $row_module['module'];
 
-	if (is_numeric($row_module['limite_trad']) and $row_module['limite_trad']>0){
+	if (is_numeric($row_module['limite_trad']) && $row_module['limite_trad']>0){
 		$seuil_export = $row_module['limite_trad'];
 	}
 	else {
@@ -136,22 +136,22 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 	}
 
 
-	$xml_infos = $commit_infos = array();
-	$liste_lang = $liste_lang_non_exportees = $liste_lang_a_supprimer = array();
+	$xml_infos = $commit_infos = [];
+	$liste_lang = $liste_lang_non_exportees = $liste_lang_a_supprimer = [];
 
-	$count_trad_reference = sql_countsel('spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($row_module['lang_mere']) . " AND statut='OK'", 'id');
+	$count_trad_reference = sql_countsel('spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($row_module['lang_mere']) . " AND statut='OK'", 'id');
 	$minimal = ceil((($count_trad_reference*$seuil_export)/100));
 	salvatore_log("Minimal = $minimal ($seuil_export %)");
 
-	$langues = sql_allfetsel('lang,COUNT(*) as count', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . " AND statut != 'NEW' AND statut != 'attic'", 'lang', 'lang');
+	$langues = sql_allfetsel('lang,COUNT(*) as count', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . " AND statut != 'NEW' AND statut != 'attic'", 'lang', 'lang');
 	foreach ($langues as $langue){
 		/**
 		 * Le fichier est il suffisamment traduit
 		 */
 		if ($langue['count']>=$minimal){
 			$liste_lang[] = $langue['lang'];
-			$commit_infos[$langue['lang']] = array();
-		} 
+			$commit_infos[$langue['lang']] = [];
+		}
 		else {
 			/**
 			 * Le fichier n'est pas suffisamment traduit et n'existe pas, on ne fera donc rien
@@ -164,7 +164,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 				 * On ne va donc pas le supprimer à la barbare, mais on le met à jour quand même
 				 */
 				$liste_lang[] = $langue['lang'];
-				$commit_infos[$langue['lang']] = array();
+				$commit_infos[$langue['lang']] = [];
 				$liste_lang_a_supprimer[] = $langue['lang'];
 				$percent = (($langue['count']/$count_trad_reference)*100);
 				if ($percent<($seuil_export-15)){
@@ -179,11 +179,11 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 		salvatore_log("Generation de la langue $lang");
 		$indent = "\t";
 
-		$php_lines = $chaines = $id_tradlangs = array();
+		$php_lines = $chaines = $id_tradlangs = [];
 		$initiale = '';
 
 		// On ne prend que les MODIF, les RELIRE et les OK pour ne pas rendre les sites multilingues en français
-		$chaines = sql_allfetsel('id_tradlang,id,str,comm,statut,md5', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang) . " AND statut!='NEW' AND statut!='attic'", 'id');
+		$chaines = sql_allfetsel('id_tradlang,id,str,comm,statut,md5', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang) . " AND statut!='NEW' AND statut!='attic'", 'id');
 		$id_tradlangs = array_column($chaines, 'id_tradlang');
 		$chaines = array_combine(array_column($chaines, 'id'), $chaines);
 		ksort($chaines);
@@ -199,7 +199,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 				$php_lines[] = "\n$indent// $initiale";
 			}
 
-			if (strlen($chaine['statut']) and ($chaine['statut']!=='OK')){
+			if (strlen($chaine['statut']) && $chaine['statut']!=='OK'){
 				$comment .= ' ' . $chaine['statut'];
 			}
 			if ($comment){
@@ -213,8 +213,8 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 			/**
 			 * Si le md5 ou la chaine à changé, on la met à jour dans la base
 			 */
-			if (($chaine['md5']!==$newmd5) || ($str!=$chaine['str'])){
-				$r = sql_updateq('spip_tradlangs', array('md5' => $newmd5, 'str' => $str), 'id_tradlang=' . intval($chaine['id_tradlang']));
+			if (($chaine['md5']!==$newmd5) || ($str != $chaine['str'])){
+				$r = sql_updateq('spip_tradlangs', ['md5' => $newmd5, 'str' => $str], 'id_tradlang=' . (int) $chaine['id_tradlang']);
 			}
 
 			$php_lines[] = $indent . var_export($chaine['id'], 1) . ' => ' . var_export($str, 1) . ',' . $comment;
@@ -224,25 +224,25 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 		$file_name = salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines, $url_trad_module, ($lang==$lang_ref) ? $url_repo : false);
 
 		// noter la langue et les traducteurs pour lang/module.xml
-		$people_unique = array();
-		$xml_infos[$lang] = array(
-			'traducteurs' => array(),
+		$people_unique = [];
+		$xml_infos[$lang] = [
+			'traducteurs' => [],
 			'traduits' => $total_chaines['OK'],
 			'modifs' => $total_chaines['MODIF'],
-			'relire' => $total_chaines['RELIRE'],
-		);
-		if (defined('_ID_AUTEUR_SALVATORE') and intval(_ID_AUTEUR_SALVATORE)>0){
+			'relire' => $total_chaines['RELIRE']
+		];
+		if (defined('_ID_AUTEUR_SALVATORE') && (int) _ID_AUTEUR_SALVATORE>0){
 			$people_unique[] = _ID_AUTEUR_SALVATORE;
 		}
 
 		// ici on prend tous les statut de chaine (?)
-		$traducteurs = sql_allfetsel('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang));
+		$traducteurs = sql_allfetsel('DISTINCT(traducteur)', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang));
 		foreach ($traducteurs as $t){
 			$traducteurs_lang = explode(',', $t['traducteur']);
 			foreach ($traducteurs_lang as $traducteur){
 				if (!in_array($traducteur, $people_unique)){
-					$traducteur_supp = array();
-					if (is_numeric($traducteur) and $id_auteur = intval($traducteur)){
+					$traducteur_supp = [];
+					if (is_numeric($traducteur) && ($id_auteur = (int) $traducteur)){
 						$traducteur_supp['nom'] = extraire_multi(sql_getfetsel('nom', 'spip_auteurs', 'id_auteur = ' . $id_auteur));
 						$traducteur_supp['lien'] = url_absolue(generer_url_entite($id_auteur, 'auteur'), $url_site);
 					} elseif (trim(strlen($traducteur))>0) {
@@ -267,27 +267,27 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 
 			if ($row_module['limite_trad']==0){
 				$commit_infos[$lang]['must_add'] = true;
-			} elseif (!in_array($module, array('ecrire', 'spip', 'public'))) {
-				if ((intval(($xml_infos[$lang]['traduits']/$count_trad_reference)*100)>$seuil_export)){
+			} elseif (!in_array($module, ['ecrire', 'spip', 'public'])) {
+				if (((int) (($xml_infos[$lang]['traduits']/$count_trad_reference)*100)>$seuil_export)){
 					$commit_infos[$lang]['must_add'] = true;
 				}
 			}
 
 			// trouver le commiteur si c'est un fichier deja versionne ou a ajouter
-			if ($commit_infos[$lang]['lastmodified'] or $commit_infos[$lang]['must_add']){
+			if ($commit_infos[$lang]['lastmodified'] || $commit_infos[$lang]['must_add']){
 				$where = [
 					"objet='tradlang'",
 					sql_in('id_objet', $id_tradlangs),
 					"id_auteur != '-1'",
-					'id_auteur !=' . intval(_ID_AUTEUR_SALVATORE),
+					'id_auteur !=' . (int) _ID_AUTEUR_SALVATORE,
 				];
 				if ($commit_infos[$lang]['lastmodified']){
 					$where[] = "date>" . sql_quote(date('Y-m-d H:i:s', $commit_infos[$lang]['lastmodified']));
 				}
 				$auteur_versions = sql_allfetsel('DISTINCT id_auteur', 'spip_versions', $where);
-				if (count($auteur_versions)==1){
-					$auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur = ' . intval($auteur_versions[0]['id_auteur']));
-					if ($auteur and $auteur['email']){
+				if ((is_countable($auteur_versions) ? count($auteur_versions) : 0)==1){
+					$auteur = sql_fetsel('nom,email', 'spip_auteurs', 'id_auteur = ' . (int) $auteur_versions[0]['id_auteur']);
+					if ($auteur && $auteur['email']){
 						$commit_infos[$lang]['author'] = $auteur['email'];
 						if ($auteur['nom']){
 							$nom = $auteur['nom'];
@@ -321,7 +321,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 		if ($info['traduits'] > 0) {
 			$detail = " total=\"$count_trad_reference\" traduits=\"" . $info['traduits'] . '" relire="' . $info['relire'] . '" modifs="' . $info['modifs'] . '" nouveaux="' . ($count_trad_reference-($info['modifs']+$info['traduits']+$info['relire'])) . '" pourcent="' . number_format((($info['traduits']/$count_trad_reference)*100), 2) . "\"";
 		}
-		if (count($info['traducteurs'])>0){
+		if ($info['traducteurs'] !== []){
 			$xml .= "$indent<langue code=\"$lang\" url=\"" . parametre_url($url_trad_module, 'lang_cible', $lang) . "\"{$detail}>\n";
 			ksort($info['traducteurs']);
 			foreach ($info['traducteurs'] as $nom => $people){
@@ -336,33 +336,33 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 	$file_xml = $dir_module . '/' . $module . '.xml';
 	file_put_contents($file_xml, $xml);
 	if (salvatore_file_need_commit(basename($file_xml), $source, $dir_depots)){
-		$commit_infos['.xml'] = array(
+		$commit_infos['.xml'] = [
 			'file_name' => basename($file_xml),
 			'lastmodified' => salvatore_read_lastmodified_file(basename($file_xml), $source, $dir_depots),
-			'must_add' => true,
-		);
+			'must_add' => true
+		];
 	}
 
 
-	if (isset($liste_lang_non_exportees) and (count($liste_lang_non_exportees)>0)){
+	if (isset($liste_lang_non_exportees) && $liste_lang_non_exportees !== []){
 		salvatore_log("Les langues suivantes ne sont pas exportées car trop peu traduites : " . implode(', ', $liste_lang_non_exportees));
 	}
-	if (isset($liste_lang_a_supprimer) and (count($liste_lang_a_supprimer)>0)){
+	if (isset($liste_lang_a_supprimer) && $liste_lang_a_supprimer !== []){
 		salvatore_log("<error>Les langues suivantes devraient être supprimées car trop peu traduites : " . implode(', ', $liste_lang_a_supprimer)."</error>");
 	}
 
 	$nb_to_commit = 0;
 	// et on ecrit un json pour que le pousseur sache quoi commit
-	if (count($commit_infos)) {
+	if ($commit_infos !== []) {
 		$nb_to_commit = count($commit_infos);
 		if ($message_commit) {
 			$commit_infos['.message'] = $message_commit;
 		}
-		file_put_contents($file_commit_infos, json_encode($commit_infos));
+		file_put_contents($file_commit_infos, json_encode($commit_infos, JSON_THROW_ON_ERROR));
 	}
 
 	if ($row_module['bon_a_pousser']>0) {
-		sql_updateq("spip_tradlang_modules", array('bon_a_pousser' => 0), 'id_tradlang_module=' . intval($id_tradlang_module));
+		sql_updateq("spip_tradlang_modules", ['bon_a_pousser' => 0], 'id_tradlang_module=' . (int) $id_tradlang_module);
 	}
 
 	$log = salvatore_read_status_modif($module, $source, $dir_depots);
@@ -378,7 +378,7 @@ function salvatore_exporter_module($id_tradlang_module, $source, $url_site, $url
 function salvatore_clean_comment($comment) {
 	if (strlen(trim($comment))>1){
 		// On remplace les sauts de lignes des commentaires sinon ça crée des erreurs php
-		$comment = str_replace(array("\r\n", "\n", "\r"), ' ', $comment);
+		$comment = str_replace(["\r\n", "\n", "\r"], ' ', $comment);
 		// Conversion des commentaires en utf-8
 		$comment = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $comment), ENT_NOQUOTES, 'utf-8'));
 		return $comment;
@@ -399,7 +399,7 @@ function salvatore_clean_comment($comment) {
  */
 function salvatore_exporter_fichier_php($dir_module, $module, $lang, $php_lines, $url_trad_module, $origin) {
 	$file_name = $dir_module . '/' . $module . '_' . $lang . '.php';
-	$file_content = '<' . '?php
+	$file_content = '<?php
 // This is a SPIP language file  --  Ceci est un fichier langue de SPIP
 ';
 	if ($origin) {
@@ -488,5 +488,5 @@ function salvatore_file_need_commit($file, $source, $dir_depots) {
 
 	$vcs_status_file = salvatore_vcs_function($source['methode'],  "status_file");
 	$status = $vcs_status_file($dir_depots . $source['dir_checkout'], $pre . $file);
-	return (strlen(trim($status)) ? true : false);
+	return ((bool) strlen(trim($status)));
 }
diff --git a/salvatore/lecteur.php b/salvatore/lecteur.php
index c67f6dc..5a6cf5c 100644
--- a/salvatore/lecteur.php
+++ b/salvatore/lecteur.php
@@ -85,13 +85,13 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 		$last_update = filemtime($fichier_lang_principal);
 
 		if ($row_module = salvatore_retrouver_tradlang_module($dir_module, $module)) {
-			$id_tradlang_module = intval($row_module['id_tradlang_module']);
+			$id_tradlang_module = (int) $row_module['id_tradlang_module'];
 			salvatore_log("Module en base #$id_tradlang_module");
 			/**
 			 * Si la langue mere a changée, on la modifie
 			 */
 			if ($row_module['lang_mere']!==$source['lang']){
-				sql_updateq('spip_tradlang_modules', array('lang_mere' => $source['lang']), 'id_tradlang_module=' . intval($id_tradlang_module));
+				sql_updateq('spip_tradlang_modules', ['lang_mere' => $source['lang']], 'id_tradlang_module=' . (int) $id_tradlang_module);
 				salvatore_log("lang_mere mise a jour : " . $row_module['lang_mere'] . " => " . $source['lang']);
 				$row_module['lang_mere'] = $source['lang'];
 				$last_update = time();
@@ -100,7 +100,7 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 			 * Si le dir_module a change, on le met a jour
 			 */
 			if ($row_module['dir_module']!==$source['dir_module']){
-				sql_updateq('spip_tradlang_modules', array('dir_module' => $source['dir_module']), 'id_tradlang_module=' . intval($id_tradlang_module));
+				sql_updateq('spip_tradlang_modules', ['dir_module' => $source['dir_module']], 'id_tradlang_module=' . (int) $id_tradlang_module);
 				salvatore_log("dir_module mis a jour : " . $row_module['dir_module'] . " => " . $source['dir_module']);
 				$last_update = time();
 				$row_module['dir_module'] = $source['dir_module'];
@@ -109,7 +109,7 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 			 * On met le titre a jour si jamais il a change (ou si on a change de facon de le calculer)
 			 */
 			if (($t = calculer_nom_module($source['module'], $source['dir_module'])) !== $row_module['nom_mod']) {
-				sql_updateq('spip_tradlang_modules', array('nom_mod' => $t), 'id_tradlang_module=' . intval($id_tradlang_module));
+				sql_updateq('spip_tradlang_modules', ['nom_mod' => $t], 'id_tradlang_module=' . (int) $id_tradlang_module);
 				salvatore_log("nom_mod mis a jour : " . $row_module['nom_mod'] . " => " . $t);
 				$last_update = time();
 				$row_module['nom_mod'] = $t;
@@ -117,11 +117,9 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 		}
 
 		$new_module = false;
-		$langues_a_jour = array();
+		$langues_a_jour = [];
 
-		if (!$row_module
-		  or $force_reload
-			or $last_update>$refresh_time){
+		if (!$row_module || $force_reload || $last_update>$refresh_time){
 			$priorite = '';
 			$modifs = 0;
 			if (defined('_TRAD_PRIORITE_DEFAUT')){
@@ -131,7 +129,7 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 			/**
 			 * Si le module n'existe pas... on le crée
 			 */
-			if (!$row_module or !$id_tradlang_module = intval($row_module['id_tradlang_module'])){
+			if (!$row_module || !$id_tradlang_module = (int) $row_module['id_tradlang_module']){
 				$insert = [
 					'module' => $source['module'],
 					'dir_module' => $source['dir_module'],
@@ -144,8 +142,8 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 				/**
 				 * Si insertion echoue on fail
 				 */
-				if (!intval($id_tradlang_module)){
-					salvatore_fail("[Lecteur] Erreur sur $module", "Echec insertion dans spip_tradlang_modules " . json_encode($insert));
+				if (!(int) $id_tradlang_module){
+					salvatore_fail("[Lecteur] Erreur sur $module", "Echec insertion dans spip_tradlang_modules " . json_encode($insert, JSON_THROW_ON_ERROR));
 				}
 				else {
 					salvatore_log("Insertion en base #$id_tradlang_module");
@@ -157,20 +155,20 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 		// Pas de mise a jour recente du fichier maitre deja en base
 		else {
 			salvatore_log("On ne modifie rien : fichier original $fichier_lang_principal inchangé depuis " . date("Y-m-d H:i:s", $last_update));
-			$id_tradlang_module=intval($row_module['id_tradlang_module']);
+			$id_tradlang_module=(int) $row_module['id_tradlang_module'];
 
 			/**
 			 * Le fichier d'origine n'a pas été modifié
 			 * Mais on a peut être de nouvelles langues
 			 */
-			$langues_en_base = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module));
+			$langues_en_base = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module);
 			$langues_en_base = array_column($langues_en_base, 'lang');
 
-			$langues_a_ajouter = array();
+			$langues_a_ajouter = [];
 			foreach ($liste_fichiers_lang as $fichier_lang){
 				$lang = salvatore_get_lang_from($module, $fichier_lang);
 				if (!in_array($lang, $langues_en_base)){
-					$langues_a_ajouter[] = array('lang' => $lang, 'fichier' => $fichier_lang);
+					$langues_a_ajouter[] = ['lang' => $lang, 'fichier' => $fichier_lang];
 				}
 				else {
 					// inutile de regarder ce fichier
@@ -178,7 +176,7 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 				}
 			}
 
-			$liste_fichiers_lang = array();
+			$liste_fichiers_lang = [];
 			if ($langues_a_ajouter){
 				salvatore_log('On a ' . count($langues_a_ajouter) . " nouvelle(s) langue(s) à insérer (".count($langues_en_base). " langue(s) an base)");
 				$liste_fichiers_lang = array_column($langues_a_ajouter, 'fichier');
@@ -186,10 +184,10 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 		}
 
 		// traiter les fichiers lang
-		if (count($liste_fichiers_lang) or $force_reload) {
+		if (count($liste_fichiers_lang) || $force_reload) {
 
 			// on commence par la langue mere
-			$liste_md5_master = array();
+			$liste_md5_master = [];
 			$modifs_master = salvatore_importer_module_langue($id_tradlang_module, $source, $fichier_lang_principal, true, $new_module, $liste_md5_master);
 
 			// et on fait les autres langues
@@ -213,8 +211,8 @@ function salvatore_lire($liste_sources, $force_reload = false, $dir_modules = nu
 			 * On s'occupe des langues en base sans fichier
 			 * s'il y a eu au moins une modif et que l'on peut faire la synchro
 			 */
-			if ($modifs_master>0 and $tradlang_verifier_langue_base){
-				$langues_en_base = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . intval($id_tradlang_module));
+			if ($modifs_master>0 && $tradlang_verifier_langue_base){
+				$langues_en_base = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . (int) $id_tradlang_module);
 				$langues_en_base = array_column($langues_en_base, 'lang');
 
 				if ($langues_pas_a_jour = array_diff($langues_en_base, $langues_a_jour)) {
@@ -284,7 +282,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 	 * Nettoyer le contenu de ses <MODIF>,<NEW> et <PLUS_UTILISE>
 	 * Ces chaines sont utilisées comme statut
 	 */
-	$status = array();
+	$status = [];
 
 	foreach ($chaines as $id => $chaine){
 		if ($is_master){
@@ -303,7 +301,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 
 	if (array_key_exists($lang, $GLOBALS['codes_langues'])) {
 		$statut_exclus = 'attic';
-		$res = sql_select("id, str, md5", "spip_tradlangs", "id_tradlang_module=" . intval($id_tradlang_module) . " AND lang=" . sql_quote($lang) . " AND statut!=" . sql_quote($statut_exclus));
+		$res = sql_select("id, str, md5", "spip_tradlangs", "id_tradlang_module=" . (int) $id_tradlang_module . " AND lang=" . sql_quote($lang) . " AND statut!=" . sql_quote($statut_exclus));
 		$nb = sql_count($res);
 		if ($nb>0){
 			salvatore_log("!-- Fichier de langue $lang du module $module deja inclus dans la base\n");
@@ -313,26 +311,26 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 		 * Si la langue est deja dans la base, on ne l'ecrase que s'il s'agit
 		 * de la langue source
 		 */
-		if (!$nb or $is_master or $new_module){
+		if (!$nb || $is_master || $new_module){
 			// La liste de ce qui existe deja
-			$existant = $str_existant = array();
+			$existant = $str_existant = [];
 			while ($row = sql_fetch($res)){
 				$existant[$row['id']] = $row['md5'];
 				$str_existant[$row['id']] = $row['str'];
 			}
 
-			$bigwhere = "id_tradlang_module=" . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang);
+			$bigwhere = "id_tradlang_module=" . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang);
 
 			include_spip('action/editer_tradlang');
 			// Dans ce qui arrive, il y a 4 cas :
 			$ids = array_unique(array_merge(array_keys($existant), array_keys($chaines)));
 			foreach ($ids as $id){
-				$comm = (isset($commentaires[$id])) ? $commentaires[$id] : '';
+				$comm = $commentaires[$id] ?? '';
 
 				/**
 				 * 1. chaine neuve
 				 */
-				if (isset($chaines[$id]) and !isset($existant[$id])){
+				if (isset($chaines[$id]) && !isset($existant[$id])){
 					$md5 = null;
 					if ($is_master){
 						$md5 = md5($chaines[$id]);
@@ -357,7 +355,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						 * Si le commentaire est un statut et que l'on ne traite pas le fichier de langue mère
 						 * On vire le commentaire et met son contenu comme statut
 						 */
-						if (in_array($comm, array('NEW', 'OK', 'MODIF', 'MODI')) and !$is_master){
+						if (in_array($comm, ['NEW', 'OK', 'MODIF', 'MODI']) && !$is_master){
 							if ($comm=='MODI'){
 								$comm = 'MODIF';
 							}
@@ -377,7 +375,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						 */
 						$titre = $id . ' : ' . $source['module'] . ' - ' . $lang;
 
-						$set = array(
+						$set = [
 							'id_tradlang_module' => $id_tradlang_module,
 							'titre' => $titre,
 							'module' => $source['module'],
@@ -387,7 +385,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 							'comm' => $comm,
 							'md5' => $md5,
 							'statut' => $status[$id]
-						);
+						];
 						$id_tradlang = sql_insertq('spip_tradlangs', $set);
 
 						/**
@@ -396,21 +394,21 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						 */
 						if (!$id_tradlang){
 							// mais il serait bien de pouvoir piquer une chaine attic du meme module meme si pas id_tradlang_module identique
-							$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . intval($id_tradlang_module) . ' AND lang=' . sql_quote($lang) . ' AND statut=' . sql_quote('attic'));
-							if ($tradlang and $id_tradlang = intval($tradlang['id_tradlang'])){
+							$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . (int) $id_tradlang_module . ' AND lang=' . sql_quote($lang) . ' AND statut=' . sql_quote('attic'));
+							if ($tradlang && ($id_tradlang = (int) $tradlang['id_tradlang'])){
 								salvatore_log("<info>Recuperation chaine ".$source['module'].":{$id}[{$lang}] de statut ATTIC</info>");
-								sql_updateq('spip_tradlangs', $set, 'id_tradlang=' . intval($id_tradlang));
+								sql_updateq('spip_tradlangs', $set, 'id_tradlang=' . (int) $id_tradlang);
 
-								$trads = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . intval($id_tradlang_module) . 'AND lang!=' . sql_quote($lang) . ' AND statut=' . sql_quote('attic'));
-								$maj = array('statut' => 'MODIF');
+								$trads = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . (int) $id_tradlang_module . 'AND lang!=' . sql_quote($lang) . ' AND statut=' . sql_quote('attic'));
+								$maj = ['statut' => 'MODIF'];
 								foreach ($trads as $trad){
 									salvatore_log("Changement de la trad #" . $trad['id_tradlang'] . " ATTIC => MODIF");
-									sql_updateq('spip_tradlangs', $maj, 'id_tradlang=' . intval($trad['id_tradlang']));
+									sql_updateq('spip_tradlangs', $maj, 'id_tradlang=' . (int) $trad['id_tradlang']);
 								}
 								$recuperees++;
 							}
 							else {
-								salvatore_fail("[Lecteur] Echec insertion", "Echec insertion en base : " . json_encode($set));
+								salvatore_fail("[Lecteur] Echec insertion", "Echec insertion en base : " . json_encode($set, JSON_THROW_ON_ERROR));
 							}
 						}
 
@@ -424,7 +422,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						// si on a un contenu identique a une autre chaine du meme module
 						// (renommage de l'id dans un meme fichier de langue)
 						$where_identique = [
-							'id_tradlang_module=' . intval($id_tradlang_module),
+							'id_tradlang_module=' . (int) $id_tradlang_module,
 							'lang=' . sql_quote($lang),
 							'id!=' . sql_quote($id),
 							'str=' . sql_quote($chaines[$id]),
@@ -433,9 +431,9 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 
 						// si on est sur la langue master on cherche si ce n'est pas un renommage/decoupe de module :
 						// chercher une chaine avec meme id et meme contenu dans un autre module
-						if (!$identique and $is_master) {
+						if (!$identique && $is_master) {
 							$where_identique = [
-								'id_tradlang_module!=' . intval($id_tradlang_module),
+								'id_tradlang_module!=' . (int) $id_tradlang_module,
 								'lang=' . sql_quote($lang),
 								'id=' . sql_quote($id),
 								'str=' . sql_quote($chaines[$id]),
@@ -447,10 +445,10 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						if ($identique){
 							salvatore_log("La nouvelle chaine $id est une chaine dupliquée de " . $identique['module'].':'.$identique['id']);
 
-							$deja_lang = sql_allfetsel('lang', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . intval($id_tradlang_module));
+							$deja_lang = sql_allfetsel('lang', 'spip_tradlangs', 'id=' . sql_quote($id) . ' AND id_tradlang_module=' . (int) $id_tradlang_module);
 							$deja_lang = array_column($deja_lang, 'lang');
 							// on ne prend pas les fausse trads dont str est identique $chaines[$id]
-							$chaines_a_dupliquer = sql_allfetsel('*', 'spip_tradlangs', 'id=' . sql_quote($identique['id']) . ' AND id_tradlang_module=' . intval($identique['id_tradlang_module']) . ' AND str!=' . sql_quote($chaines[$id]) . ' AND ' . sql_in('lang', $deja_lang, 'NOT'));
+							$chaines_a_dupliquer = sql_allfetsel('*', 'spip_tradlangs', 'id=' . sql_quote($identique['id']) . ' AND id_tradlang_module=' . (int) $identique['id_tradlang_module'] . ' AND str!=' . sql_quote($chaines[$id]) . ' AND ' . sql_in('lang', $deja_lang, 'NOT'));
 							foreach ($chaines_a_dupliquer as $chaine){
 								unset($chaine['id_tradlang']);
 								unset($chaine['maj']);
@@ -465,7 +463,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 								}
 								$id_tradlang_new = sql_insertq('spip_tradlangs', $chaine);
 								if (!$id_tradlang_new) {
-									salvatore_fail("[Lecteur] Echec insertion", "Echec insertion en base : " . json_encode($chaine));
+									salvatore_fail("[Lecteur] Echec insertion", "Echec insertion en base : " . json_encode($chaine, JSON_THROW_ON_ERROR));
 								}
 								salvatore_log('Ajout de la version ' . $chaine['lang'] . ' - #' . $id_tradlang_new);
 							}
@@ -479,7 +477,7 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 				 * 2. chaine existante
 				 *
 				 */
-				elseif (isset($chaines[$id]) and isset($existant[$id])) {
+				elseif (isset($chaines[$id]) && isset($existant[$id])) {
 					// * chaine existante
 					// * identique ? => NOOP
 					$chaines[$id] = salvatore_nettoyer_chaine_langue($chaines[$id], $lang);
@@ -496,12 +494,12 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						salvatore_log("Chaine $id modifiee $md5 != ".$existant[$id]);
 
 						// modifier la chaine
-						$modifs = array(
+						$modifs = [
 							'str' => $chaines[$id],
 							'md5' => ($is_master ? $md5 : $existant[$id]),
 							'statut' => ($is_master ? 'OK' : ''),
-							'comm' => $comm,
-						);
+							'comm' => $comm
+						];
 						$id_tradlang = sql_getfetsel('id_tradlang', 'spip_tradlangs', "$bigwhere AND id = " . sql_quote($id));
 						$test = tradlang_set($id_tradlang, $modifs);
 
@@ -510,15 +508,15 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 						 * update des str de ses traductions NEW
 						 */
 						if ($is_master){
-							sql_updateq('spip_tradlangs', array('statut'=> 'MODIF'),
-								'id_tradlang_module=' . intval($id_tradlang_module)
+							sql_updateq('spip_tradlangs', ['statut'=> 'MODIF'],
+								'id_tradlang_module=' . (int) $id_tradlang_module
 								. ' AND id=' . sql_quote($id)
 								. ' AND md5!=' . sql_quote($md5)
 								. ' AND lang!=' . sql_quote($lang)
 								. ' AND statut!=' . sql_quote('NEW'));
 						}
-						sql_updateq('spip_tradlangs', array('str'=> $chaines[$id]),
-							'id_tradlang_module=' . intval($id_tradlang_module)
+						sql_updateq('spip_tradlangs', ['str'=> $chaines[$id]],
+							'id_tradlang_module=' . (int) $id_tradlang_module
 							. ' AND id=' . sql_quote($id)
 							. ' AND md5!=' . sql_quote($md5)
 							. ' AND lang!=' . sql_quote($lang)
@@ -531,14 +529,14 @@ function salvatore_importer_module_langue($id_tradlang_module, $source, $fichier
 				 * 3. chaine supprimee
 				 *
 				 */
-				elseif (!isset($chaines[$id]) and isset($existant[$id])) {
+				elseif (!isset($chaines[$id]) && isset($existant[$id])) {
 					// * chaine supprimee
 					// mettre au grenier
-					sql_updateq('spip_tradlangs', array('statut' => 'attic'), 'id_tradlang_module=' . intval($id_tradlang_module) . ' AND id=' . sql_quote($id));
+					sql_updateq('spip_tradlangs', ['statut' => 'attic'], 'id_tradlang_module=' . (int) $id_tradlang_module . ' AND id=' . sql_quote($id));
 					$supprimees++;
 				}
 
-				if ($is_master and isset($chaines[$id])){
+				if ($is_master && isset($chaines[$id])){
 					$liste_md5_master[$id] = md5($chaines[$id]);
 				}
 			}
@@ -566,7 +564,7 @@ function salvatore_charger_commentaires_fichier_langue($fichier_lang){
 
 	$contenu = file_get_contents($fichier_lang);
 	$tokens = token_get_all($contenu);
-	$comments = array();
+	$comments = [];
 
 	// allons jusqu'au debut du tableau
 	while (count($tokens)) {
@@ -589,12 +587,12 @@ function salvatore_charger_commentaires_fichier_langue($fichier_lang){
 				break;
 			case T_WHITESPACE:
 				// si c'est une nouvelle ligne, on est plus interesse par le commentaire
-				if (strpos($token[1], "\n") !== false or strpos($token[1], "\r") !== false) {
+				if (strpos($token[1], "\n") !== false || strpos($token[1], "\r") !== false) {
 					$index = '';
 				}
 				break;
 			case T_COMMENT:
-				if ($index and strpos($token[1], '#') === 0) {
+				if ($index && strpos($token[1], '#') === 0) {
 					$comments[$index] = trim(substr($token[1],1));
 				}
 				break;
diff --git a/salvatore/pousseur.php b/salvatore/pousseur.php
index f241cca..f7deeb9 100644
--- a/salvatore/pousseur.php
+++ b/salvatore/pousseur.php
@@ -90,9 +90,11 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 
 	$file_commit = $dir_module . '/' . $module . '.commit.json';
 
-	if (!file_exists($file_commit)
-	  or !$commit_infos = file_get_contents($file_commit)
-	  or !$commit_infos = json_decode($commit_infos, true)) {
+	if (
+		!file_exists($file_commit)
+		|| !($commit_infos = file_get_contents($file_commit))
+		|| !($commit_infos = json_decode($commit_infos, true))
+		) {
 		salvatore_log("<comment>Module $module rien à faire (pas de fichier $file_commit ou fichier invalide)</comment>");
 		return false;
 	}
@@ -105,7 +107,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 	}
 
 	$subdir = '';
-	if (isset($source['dir']) and $source['dir']) {
+	if (isset($source['dir']) && $source['dir']) {
 		$subdir = $source['dir'] . DIRECTORY_SEPARATOR;
 	}
 
@@ -113,7 +115,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 	// - ignorer les fichiers non modifies, ou non versionnes et qui ne doivent pas etre ajoutes
 	// - regrouper par auteur
 
-	$commits_todo = array();
+	$commits_todo = [];
 	$vcs_status_file = salvatore_vcs_function($source['methode'],  "status_file");
 	$vcs_commit_files = salvatore_vcs_function($source['methode'],  "commit_files");
 	$vcs_push_repository = salvatore_vcs_function($source['methode'],  "push_repository");
@@ -122,7 +124,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 
 		$file = $commit_info['file_name'];
 
-		if ($commit_info['lastmodified'] or $commit_info['must_add']) {
+		if ($commit_info['lastmodified'] || $commit_info['must_add']) {
 			$status = $vcs_status_file($dir_depots . $source['dir_checkout'], $subdir . $file);
 
 			// fichier nouveau ou modifie (sinon on l'ignore)
@@ -132,16 +134,16 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 					$author = $commit_info['author'];
 				}
 				// si c'est le xml et qu'on a un seul auteur de commit, on lui fait commit aussi le xml
-				elseif($what === '.xml' and count($commits_todo)===1) {
+				elseif($what === '.xml' && count($commits_todo)===1) {
 					$author = array_keys($commits_todo);
 					$author = reset($author);
 				}
 
 				if (!isset($commits_todo[$author])) {
-					$commits_todo[$author] = array(
-						'files' => array(),
+					$commits_todo[$author] = [
+						'files' => [],
 						'message' => []
-					);
+					];
 					if ($message_commit) {
 						$commits_todo[$author]['message'][] = $message_commit;
 					}
@@ -170,7 +172,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 	// ajoutons les credentials dans la source pour pouvoir commit ou push
 	$url_with_credentials = salvatore_set_credentials($source['methode'], $source['url'], $source['module']);
 	$parts = parse_url($url_with_credentials);
-	if (!empty($parts['user']) and !empty($parts['pass'])){
+	if (!empty($parts['user']) && !empty($parts['pass'])){
 		$source['user'] = urldecode($parts['user']);
 		$source['pass'] = urldecode($parts['pass']);
 	}
@@ -183,7 +185,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 		salvatore_log("Commit de <info>$author</info> :" . implode(', ', $commit_todo['files']));
 		salvatore_log("\t" . str_replace("\n", "\n\t", $message));
 
-		list($res,$out) = $vcs_commit_files($dir_depots . $source['dir_checkout'], $commit_todo['files'], $message, $author, empty($source['user']) ? null : $source['user'], empty($source['pass']) ? null : $source['pass']);
+		[$res, $out] = $vcs_commit_files($dir_depots . $source['dir_checkout'], $commit_todo['files'], $message, $author, empty($source['user']) ? null : $source['user'], empty($source['pass']) ? null : $source['pass']);
 		salvatore_log($out);
 		if (!$res) {
 			salvatore_fail("[Pousseur] Erreur sur $module", "Erreur lors du commit :\n$out");
@@ -197,7 +199,7 @@ function savatore_commit_and_push_module($source, $dir_modules, $dir_depots, $ur
 	// et push si besoin
 	// ne fera rien en svn (deja pushe)
 	if ($commits_todo) {
-		list($res,$out) = $vcs_push_repository($dir_depots . $source['dir_checkout'], empty($source['user']) ? null : $source['user'], empty($source['pass']) ? null : $source['pass']);
+		[$res, $out] = $vcs_push_repository($dir_depots . $source['dir_checkout'], empty($source['user']) ? null : $source['user'], empty($source['pass']) ? null : $source['pass']);
 		salvatore_log($out);
 		if (!$res) {
 			salvatore_fail("[Pousseur] Erreur sur $module", "Erreur lors du commit :\n$out");
diff --git a/salvatore/tireur.php b/salvatore/tireur.php
index d4fcb85..755e951 100644
--- a/salvatore/tireur.php
+++ b/salvatore/tireur.php
@@ -45,7 +45,7 @@ function salvatore_tirer($liste_sources, $dir_modules=null, $dir_depots=null) {
 	}
 	salvatore_check_dir($dir_depots);
 
-	$done = array();
+	$done = [];
 
 	foreach ($liste_sources as $source){
 		salvatore_log("\n<info>--- Module " . $source['module'] . " | " . $source['dir_module'] . " | " . $source['url']."</info>");
@@ -72,7 +72,7 @@ function salvatore_tirer($liste_sources, $dir_modules=null, $dir_depots=null) {
 			$done[$dir_checkout] = true;
 		}
 
-		if ($return !== 0 or !is_dir($dir_checkout) or !is_dir($dir_target)) {
+		if ($return !== 0 || !is_dir($dir_checkout) || !is_dir($dir_target)) {
 			$corps = $source['url'] . ' | ' . $source['module'] . "\n" . "Erreur lors du checkout";
 			salvatore_fail('[Tireur] : Erreur', $corps);
 		}
@@ -80,13 +80,13 @@ function salvatore_tirer($liste_sources, $dir_modules=null, $dir_depots=null) {
 		$set_default_commiter = salvatore_vcs_function($source['methode'], 'set_default_commiter');
 		$set_default_commiter($dir_checkout, _SALVATORE_AUTHOR_COMMITS);
 
-		if (file_exists($dir_module) and !is_link($dir_module)) {
+		if (file_exists($dir_module) && !is_link($dir_module)) {
 			$corps = $source['url'] . ' | ' . $source['module'] . "\n" . "Il y a deja un repertoire $dir_module";
 			salvatore_fail('[Tireur] : Erreur', $corps);
 		}
 
 		$dir_target = realpath($dir_target);
-		if (is_link($dir_module) and readlink($dir_module) !== $dir_target) {
+		if (is_link($dir_module) && readlink($dir_module) !== $dir_target) {
 			@unlink($dir_module);
 		}
 		if (!file_exists($dir_module)) {
diff --git a/salvatore/vcs/git.php b/salvatore/vcs/git.php
index 2d7a33e..5c56bad 100644
--- a/salvatore/vcs/git.php
+++ b/salvatore/vcs/git.php
@@ -31,7 +31,7 @@
  * @return string
  */
 function salvatore_git_format_author($author) {
-	if (strpos($author, '<') !== false and strpos($author, '>') !== false) {
+	if (strpos($author, '<') !== false && strpos($author, '>') !== false) {
 		return $author;
 	}
 	else {
@@ -49,11 +49,11 @@ function salvatore_git_format_author($author) {
  */
 function salvatore_vcs_git_set_default_commiter_dist($dir_repo, $author) {
 
-	$output = array();
+	$output = [];
 	$nom = $email = "";
 	include_spip('inc/filtres');
 	if (!$email = email_valide($author)) {
-		return array(false, $output);
+		return [false, $output];
 	}
 	if ($author !== $email) {
 		$nom = explode("<", $author);
@@ -83,7 +83,7 @@ function salvatore_vcs_git_set_default_commiter_dist($dir_repo, $author) {
 	}
 	chdir($d);
 
-	return array($res, implode("\n", $output));
+	return [$res, implode("\n", $output)];
 }
 
 
@@ -100,7 +100,7 @@ function salvatore_vcs_git_lastmodified_file_dist($dir_repo, $file) {
 	chdir($dir_repo);
 	$file = escapeshellarg($file);
 	$lastmodified = exec("git log -1 -c --pretty=tformat:'%ct' $file | head -1");
-	$lastmodified = intval(trim($lastmodified));
+	$lastmodified = (int) trim($lastmodified);
 	chdir($d);
 	return $lastmodified;
 }
@@ -123,7 +123,7 @@ function salvatore_vcs_git_status_file_dist($dir_repo, $file_or_files) {
 
 	$d = getcwd();
 	chdir($dir_repo);
-	$output = array();
+	$output = [];
 	exec("git status --short $file_or_files 2>&1", $output);
 	//exec("svn status $files_list 2>&1", $output);
 	chdir($d);
@@ -147,7 +147,7 @@ function salvatore_vcs_git_commit_files_dist($dir_repo, $files, $message, $autho
 
 	$d = getcwd();
 	chdir($dir_repo);
-	$output = array();
+	$output = [];
 	$res = true;
 	// on ajoute tous les fichiers pour commit
 	$commands = [
@@ -166,7 +166,7 @@ function salvatore_vcs_git_commit_files_dist($dir_repo, $files, $message, $autho
 	}
 	chdir($d);
 
-	return array($res, implode("\n", $output));
+	return [$res, implode("\n", $output)];
 }
 
 /**
@@ -181,7 +181,7 @@ function salvatore_vcs_git_commit_files_dist($dir_repo, $files, $message, $autho
 function salvatore_vcs_git_push_repository_dist($dir_repo, $user=null, $pass=null) {
 	$d = getcwd();
 	chdir($dir_repo);
-	$output = array();
+	$output = [];
 	$res = true;
 	// on ajoute tous les fichiers pour commit
 	$commands = [
@@ -202,5 +202,5 @@ function salvatore_vcs_git_push_repository_dist($dir_repo, $user=null, $pass=nul
 	}
 	chdir($d);
 
-	return array($res, implode("\n", $output));
+	return [$res, implode("\n", $output)];
 }
diff --git a/salvatore/vcs/svn.php b/salvatore/vcs/svn.php
index 11e80fa..a90bf44 100644
--- a/salvatore/vcs/svn.php
+++ b/salvatore/vcs/svn.php
@@ -34,7 +34,7 @@
  */
 function salvatore_vcs_svn_set_default_commiter_dist($dir_repo, $author) {
 
-	return array(true, array());
+	return [true, []];
 }
 
 /**
@@ -67,7 +67,7 @@ function salvatore_vcs_svn_status_file_dist($dir_repo, $file_or_files) {
 		$escaped_file_or_files = array_map('escapeshellarg', $file_or_files);
 		// si on passe un nom de fichier avec un * il ne faut pas le quoter pour svn :(
 		foreach ($file_or_files as $k=>$file) {
-			if (strpos($file, '*')!==false and $file === trim($escaped_file_or_files[$k], "'")) {
+			if (strpos($file, '*')!==false && $file === trim($escaped_file_or_files[$k], "'")) {
 				$escaped_file_or_files[$k] = $file;
 			}
 		}
@@ -79,7 +79,7 @@ function salvatore_vcs_svn_status_file_dist($dir_repo, $file_or_files) {
 
 	$d = getcwd();
 	chdir($dir_repo);
-	$output = array();
+	$output = [];
 	exec("svn status $file_or_files 2>&1", $output);
 	chdir($d);
 	return implode("\n", $output);
@@ -100,7 +100,7 @@ function salvatore_vcs_svn_status_file_dist($dir_repo, $file_or_files) {
 function salvatore_vcs_svn_commit_files_dist($dir_repo, $files, $message, $author, $user=null, $pass=null) {
 
 	// lister deja les fichiers qui necessitent un svn add (fichiers ajoutes qui ne sont pas dans le repo)
-	$files_to_add = array();
+	$files_to_add = [];
 	foreach ($files as $file) {
 		$status = trim(salvatore_vcs_svn_status_file_dist($dir_repo, $file));
 		if (strpos($status, '?') !== false) {
@@ -108,9 +108,7 @@ function salvatore_vcs_svn_commit_files_dist($dir_repo, $files, $message, $autho
 		}
 	}
 
-	if ($author
-		and $author !== _SALVATORE_AUTHOR_COMMITS
-		and !_SALVATORE_SVN_PROPSET) {
+	if ($author && $author !== _SALVATORE_AUTHOR_COMMITS && !_SALVATORE_SVN_PROPSET) {
 		$message = rtrim($message) . "\nCredits : $author\n";
 	}
 
@@ -122,7 +120,7 @@ function salvatore_vcs_svn_commit_files_dist($dir_repo, $files, $message, $autho
 
 	$d = getcwd();
 	chdir($dir_repo);
-	$output = array();
+	$output = [];
 	$res = true;
 
 	$auth = "";
@@ -151,19 +149,22 @@ function salvatore_vcs_svn_commit_files_dist($dir_repo, $files, $message, $autho
 			$res = false;
 		}
 	}
-	if ($res and $author and _SALVATORE_SVN_PROPSET) {
-		if ($revision = exec("svn up . && env LC_MESSAGES=en_US.UTF-8 svn info . |awk '/^Last Changed Rev/ { print $4 }'")) {
-			$command = "svn propset --revprop -r $revision svn:author ".escapeshellarg($author). " .{$auth} --no-auth-cache --non-interactive --trust-server-cert";
-			$output[] = "> " . ($auth ? str_replace($auth, $auth_disp, $command) : $command);
-			exec($command, $output, $return_var);
-			if ($return_var) {
-				$res = false;
-			}
+	if (
+		$res
+		&& $author
+		&& _SALVATORE_SVN_PROPSET
+		&& ($revision = exec("svn up . && env LC_MESSAGES=en_US.UTF-8 svn info . |awk '/^Last Changed Rev/ { print $4 }'"))
+	) {
+		$command = "svn propset --revprop -r $revision svn:author ".escapeshellarg($author). " .{$auth} --no-auth-cache --non-interactive --trust-server-cert";
+		$output[] = "> " . ($auth ? str_replace($auth, $auth_disp, $command) : $command);
+		exec($command, $output, $return_var);
+		if ($return_var) {
+			$res = false;
 		}
 	}
 	chdir($d);
 
-	return array($res, implode("\n", $output));
+	return [$res, implode("\n", $output)];
 }
 
 
@@ -177,5 +178,5 @@ function salvatore_vcs_svn_commit_files_dist($dir_repo, $files, $message, $autho
  * @return array
  */
 function salvatore_vcs_svn_push_repository_dist($dir_repo, $user=null, $pass=null) {
-	return array(true, '');
-}
\ No newline at end of file
+	return [true, ''];
+}
diff --git a/spip-cli/SalvatoreEcrire.php b/spip-cli/SalvatoreEcrire.php
index 5123736..f3a55a0 100644
--- a/spip-cli/SalvatoreEcrire.php
+++ b/spip-cli/SalvatoreEcrire.php
@@ -81,7 +81,7 @@ class SalvatoreEcrire extends Command {
 		include_spip('salvatore/ecriveur');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 
 		salvatore_log("<comment>=======================================</comment>");
@@ -92,7 +92,7 @@ class SalvatoreEcrire extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
@@ -103,7 +103,7 @@ class SalvatoreEcrire extends Command {
 
 		$message = $input->getOption('message');
 
-		salvatore_ecrire($liste_trad, $message ? $message : '');
+		salvatore_ecrire($liste_trad, $message ?: '');
 
 		return self::SUCCESS;
 	}
diff --git a/spip-cli/SalvatoreLire.php b/spip-cli/SalvatoreLire.php
index 454a0a1..f1d83f9 100644
--- a/spip-cli/SalvatoreLire.php
+++ b/spip-cli/SalvatoreLire.php
@@ -81,7 +81,7 @@ class SalvatoreLire extends Command {
 		include_spip('salvatore/lecteur');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 		salvatore_log("<comment>=======================================</comment>");
 		salvatore_log("<comment>LECTEUR [Prend les fichiers de reference de salvatore/modules/ et met a jour la base de donnees]</comment>");
@@ -91,7 +91,7 @@ class SalvatoreLire extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
diff --git a/spip-cli/SalvatoreOuvrager.php b/spip-cli/SalvatoreOuvrager.php
index c312d85..9ffb66a 100644
--- a/spip-cli/SalvatoreOuvrager.php
+++ b/spip-cli/SalvatoreOuvrager.php
@@ -91,7 +91,7 @@ class SalvatoreOuvrager extends Command {
 		include_spip('salvatore/pousseur');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 		$output->writeln("<comment>=======================================</comment>");
 		$output->writeln("<comment>OUVRAGER [Traiter complètement les fichiers de reference de salvatore/modules/]</comment>");
@@ -101,7 +101,7 @@ class SalvatoreOuvrager extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		$output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		$output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
@@ -109,7 +109,7 @@ class SalvatoreOuvrager extends Command {
 			if ($modules === 'bon_a_pousser') {
 				$modules = sql_allfetsel('DISTINCT module', 'spip_tradlang_modules', 'bon_a_pousser>0');
 				$modules = array_column($modules, 'module');
-				if (count($modules)) {
+				if ($modules !== []) {
 					$modules_str .= ' (' .implode(', ', $modules).')';
 				}
 			}
@@ -128,7 +128,7 @@ class SalvatoreOuvrager extends Command {
 			salvatore_log("<info>LIRE</info>");
 			salvatore_lire([$une_trad], $force);
 			salvatore_log("<info>ECRIRE</info>");
-			salvatore_ecrire([$une_trad], $message ? $message : '');
+			salvatore_ecrire([$une_trad], $message ?: '');
 			salvatore_log("<info>POUSSER</info>");
 			salvatore_pousser([$une_trad]);
 		}
diff --git a/spip-cli/SalvatorePousser.php b/spip-cli/SalvatorePousser.php
index 748c66e..db401cf 100644
--- a/spip-cli/SalvatorePousser.php
+++ b/spip-cli/SalvatorePousser.php
@@ -73,7 +73,7 @@ class SalvatorePousser extends Command {
 		include_spip('salvatore/pousseur');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 		salvatore_log("<comment>=======================================</comment>");
 		salvatore_log("<comment>POUSSEUR [Prend les fichiers langue dans sa copie locale et les commite+push SVN|GIT]</comment>");
@@ -82,7 +82,7 @@ class SalvatorePousser extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
diff --git a/spip-cli/SalvatoreRecharger.php b/spip-cli/SalvatoreRecharger.php
index 81f9fc1..b5619ef 100644
--- a/spip-cli/SalvatoreRecharger.php
+++ b/spip-cli/SalvatoreRecharger.php
@@ -94,7 +94,7 @@ class SalvatoreRecharger extends Command {
 		include_spip('inc/salvatore');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 		salvatore_log("<comment>=======================================</comment>");
 		salvatore_log("<comment>RECHARGER [Tirer&Lire les modules modifies sur la zone]</comment>");
@@ -104,7 +104,7 @@ class SalvatoreRecharger extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
@@ -115,7 +115,7 @@ class SalvatoreRecharger extends Command {
 
 		// https://git.spip.net/spip-contrib-extensions/debardeur/src/branch/master/action/api_debardeur_hook.php#L224
 		$changedir = $input->getOption('changedir');
-		if (empty($changedir) or !is_dir($changedir)) {
+		if (empty($changedir) || !is_dir($changedir)) {
 			salvatore_log("<error>Indiquez un repertoire valide pour changedir</error>");
 			return self::FAILURE;
 		}
@@ -138,7 +138,7 @@ class SalvatoreRecharger extends Command {
 
 		$changed_trad = $this->filter_changed_traductions($liste_trad, $changed, $t_since);
 		if ($changed_trad) {
-			$n = count($changed_trad);
+			$n = is_countable($changed_trad) ? count($changed_trad) : 0;
 			$changed_modules = array_column($changed_trad, 'module');
 			$changed_modules = array_unique($changed_modules);
 			salvatore_log("<info>$n modules modifiés à recharger : " . implode(',', $changed_modules) . "</info>");
@@ -163,8 +163,10 @@ class SalvatoreRecharger extends Command {
 		$changed = [];
 		$files = glob(rtrim($changedir,'/')."/*.json");
 		foreach ($files as $file) {
-			if ($json = file_get_contents($file)
-				and $json = json_decode($json, true)) {
+			if (
+				($json = file_get_contents($file))
+				&& ($json = json_decode($json, true, 512, JSON_THROW_ON_ERROR))
+			) {
 				if (empty($json['time'])) {
 					$json['time'] = filemtime($file);
 				}
@@ -180,8 +182,8 @@ class SalvatoreRecharger extends Command {
 
 	protected function filter_changed_traductions($liste_trad, $changed, $t_since) {
 
-		$changed_trad = array();
-		salvatore_log(count($changed) . " depots changés");
+		$changed_trad = [];
+		salvatore_log((is_countable($changed) ? count($changed) : 0) . " depots changés");
 
 		foreach($changed as $c) {
 			/*
@@ -196,8 +198,9 @@ class SalvatoreRecharger extends Command {
 
 			if ($c['time'] >= $t_since) {
 				foreach ($liste_trad as $k=>$source) {
-					if ($source['url'] === $c['url']
-						and $source['branche'] === $c['branche']
+					if (
+						$source['url'] === $c['url']
+						&& $source['branche'] === $c['branche']
 					) {
 						$changed_trad[$k] = $source;
 						unset($liste_trad[$k]);
diff --git a/spip-cli/SalvatoreTirer.php b/spip-cli/SalvatoreTirer.php
index 4dec28c..547435f 100644
--- a/spip-cli/SalvatoreTirer.php
+++ b/spip-cli/SalvatoreTirer.php
@@ -74,7 +74,7 @@ class SalvatoreTirer extends Command {
 		include_spip('salvatore/tireur');
 
 		$time = $input->getOption('time');
-		salvatore_init(array($output, 'writeln'), !!$time);
+		salvatore_init([$output, 'writeln'], (bool) $time);
 
 		salvatore_log("<comment>=======================================</comment>");
 		salvatore_log("<comment>TIREUR [Va chercher les fichiers dans un repo SVN|GIT et les depose dans sa copie locale]</comment>");
@@ -84,7 +84,7 @@ class SalvatoreTirer extends Command {
 		$traductions = $input->getOption('traductions');
 		$liste_trad = salvatore_charger_fichier_traductions($traductions);
 		$n = count($liste_trad);
-		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+		salvatore_log("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 		$modules = $input->getOption('module');
 		if ($modules = trim($modules)) {
diff --git a/spip-cli/SalvatoreUpgrade.php b/spip-cli/SalvatoreUpgrade.php
index d77cad1..3c777c8 100644
--- a/spip-cli/SalvatoreUpgrade.php
+++ b/spip-cli/SalvatoreUpgrade.php
@@ -58,7 +58,7 @@ class SalvatoreUpgrade extends Command {
 		include_spip('inc/salvatore');
 		include_spip('salvatore/lecteur');
 
-		salvatore_init(array($output, 'writeln'));
+		salvatore_init([$output, 'writeln']);
 
 
 		$output->writeln("<comment>=======================================</comment>");
@@ -84,17 +84,17 @@ class SalvatoreUpgrade extends Command {
 			if ($n > 0) {
 				$output->writeln("<info>Forcer un dir_module arbitraire pour les modules restant :</info>");
 				$output->writeln(implode(', ', $modules_todo));
-				sql_update('spip_tradlang_modules', array('dir_module' => "CONCAT('--',module)"), "dir_module='' OR dir_module=module");
+				sql_update('spip_tradlang_modules', ['dir_module' => "CONCAT('--',module)"], "dir_module='' OR dir_module=module");
 			}
 		}
 		elseif ($traductions) {
 			$liste_trad = salvatore_charger_fichier_traductions($traductions);
 			$n = count($liste_trad);
-			$output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ? $traductions : '') . "</info>");
+			$output->writeln("<info>$n modules dans le fichier traductions " . ($traductions ?: '') . "</info>");
 
 			foreach ($liste_trad as $traduction) {
 				if (in_array($traduction['module'], $modules_todo)) {
-					sql_updateq('spip_tradlang_modules', array('dir_module' => $traduction['dir_module']), "module=".sql_quote($traduction['module'])." AND (dir_module='' OR dir_module=module)");
+					sql_updateq('spip_tradlang_modules', ['dir_module' => $traduction['dir_module']], "module=".sql_quote($traduction['module'])." AND (dir_module='' OR dir_module=module)");
 					$output->writeln("  Module " . $traduction['module'] . " -> " . $traduction['dir_module']);
 				}
 			}
diff --git a/tradlang_administrations.php b/tradlang_administrations.php
index c0ed475..a1d7c3e 100644
--- a/tradlang_administrations.php
+++ b/tradlang_administrations.php
@@ -13,126 +13,90 @@ include_spip('inc/meta');
 /**
  * Fonction d'installation, mise à jour de la base
  *
- * @param unknown_type $nom_meta_base_version
- * @param unknown_type $version_cible
+ * @param string $nom_meta_base_version
+ * @param string $version_cible
  */
 function tradlang_upgrade($nom_meta_base_version, $version_cible) {
 	$current_version = 0.0;
-	$maj = array();
-	$maj['create'] = array(
-		array('creer_base'),
-		array('maj_tables',array('spip_auteurs')),
-		array('tradlang_import_ancien_tradlang',true),
-		array('tradlang_maj_modules',true)
-	);
-	$maj['0.3.1'] = array(
-		array('sql_alter',"TABLE spip_tradlang CHANGE status status VARCHAR(16) NOT NULL DEFAULT 'OK'")
-	);
-	$maj['0.3.2'] = array(
-		array('sql_alter','TABLE spip_tradlang_modules CHANGE nom_mod nom_mod VARCHAR(32) NOT NULL'),
-		array('sql_alter','TABLE spip_tradlang_modules CHANGE lang_prefix lang_prefix VARCHAR(32) NOT NULL')
-	);
-	$maj['0.3.3'] = array(
-		array('sql_alter',"TABLE spip_tradlang CHANGE status statut VARCHAR(16) NOT NULL default 'OK'"),
-	);
-	$maj['0.3.4'] = array(
-		array('sql_alter',"TABLE spip_tradlang ADD id_tradlang_module bigint(21) DEFAULT '0' NOT NULL"),
-		array('tradlang_maj_id_tradlang_modules',true)
-	);
-	$maj['0.3.5'] = array(
-		array('maj_tables',array('spip_tradlang')),
-		array('tradlang_maj_tradlang_titre',true)
-	);
-	$maj['0.3.6'] = array(
-		array('maj_tables',array('spip_tradlang'))
-	);
-	$maj['0.3.7'] = array(
-		array('tradlang_maj_traducteurs','true')
-	);
-	$maj['0.3.8'] = array(
-		array('maj_tables',array('spip_tradlang_modules'))
-	);
-	$maj['0.3.9'] = array(
-		array('sql_alter','TABLE spip_tradlang_modules DROP INDEX nom_mod'),
-		array('sql_alter','TABLE spip_tradlang_modules CHANGE nom_mod nom_mod text DEFAULT "" NOT NULL'),
-		array('sql_alter','TABLE spip_tradlang_modules ADD INDEX `nom_mod` ( `nom_mod` ( 255 ) )')
-	);
-	$maj['0.4.0'] = array(
-		array('maj_tables', array('spip_auteurs'))
-	);
-	$maj['0.4.1'] = array(
-		array('sql_alter', 'TABLE spip_tradlang DROP maj'),
-		array('sql_alter', 'TABLE spip_tradlang CHANGE ts maj timestamp(14) NOT NULL'),
-	);
-	$maj['0.4.2'] = array(
-		array('sql_alter', 'TABLE spip_tradlang RENAME spip_tradlangs')
-	);
-	$maj['0.4.3'] = array(
-		array('maj_tables', array('spip_auteurs'))
-	);
-	$maj['0.4.4'] = array(
-		array('maj_tables', array('spip_tradlang_modules'))
-	);
-	$maj['0.4.5'] = array(
-		array('sql_alter', 'TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)'),
-	);
-	$maj['0.4.6'] = array(
-		array('sql_alter', 'TABLE spip_tradlangs ADD INDEX statut (statut)'),
-	);
-	$maj['0.5.0'] = array(
-		array('creer_base'),
-		array('tradlang_maj_bilans')
-	);
-	$maj['0.5.1'] = array(
-		array('tradlang_maj_attic')
-	);
-	$maj['0.5.2'] = array(
-		array('maj_tables',array('spip_tradlang_modules'))
-	);
+	$maj = [];
+	$maj['create'] = [
+		['creer_base'],
+		['maj_tables', ['spip_auteurs']],
+		['tradlang_import_ancien_tradlang', true],
+		['tradlang_maj_modules', true]
+	];
+	$maj['0.3.1'] = [
+		['sql_alter', "TABLE spip_tradlang CHANGE status status VARCHAR(16) NOT NULL DEFAULT 'OK'"]
+	];
+	$maj['0.3.2'] = [
+		['sql_alter', 'TABLE spip_tradlang_modules CHANGE nom_mod nom_mod VARCHAR(32) NOT NULL'],
+		['sql_alter', 'TABLE spip_tradlang_modules CHANGE lang_prefix lang_prefix VARCHAR(32) NOT NULL']
+	];
+	$maj['0.3.3'] = [
+		['sql_alter', "TABLE spip_tradlang CHANGE status statut VARCHAR(16) NOT NULL default 'OK'"]
+	];
+	$maj['0.3.4'] = [
+		['sql_alter', "TABLE spip_tradlang ADD id_tradlang_module bigint(21) DEFAULT '0' NOT NULL"], ['tradlang_maj_id_tradlang_modules', true]
+	];
+	$maj['0.3.5'] = [['maj_tables', ['spip_tradlang']], ['tradlang_maj_tradlang_titre', true]];
+	$maj['0.3.6'] = [['maj_tables', ['spip_tradlang']]];
+	$maj['0.3.7'] = [['tradlang_maj_traducteurs', 'true']];
+	$maj['0.3.8'] = [['maj_tables', ['spip_tradlang_modules']]];
+	$maj['0.3.9'] = [
+		['sql_alter', 'TABLE spip_tradlang_modules DROP INDEX nom_mod'],
+		['sql_alter', 'TABLE spip_tradlang_modules CHANGE nom_mod nom_mod text DEFAULT "" NOT NULL'],
+		['sql_alter', 'TABLE spip_tradlang_modules ADD INDEX `nom_mod` ( `nom_mod` ( 255 ) )']
+	];
+	$maj['0.4.0'] = [['maj_tables', ['spip_auteurs']]];
+	$maj['0.4.1'] = [
+		['sql_alter', 'TABLE spip_tradlang DROP maj'],
+		['sql_alter', 'TABLE spip_tradlang CHANGE ts maj timestamp(14) NOT NULL']
+	];
+	$maj['0.4.2'] = [['sql_alter', 'TABLE spip_tradlang RENAME spip_tradlangs']];
+	$maj['0.4.3'] = [['maj_tables', ['spip_auteurs']]];
+	$maj['0.4.4'] = [['maj_tables', ['spip_tradlang_modules']]];
+	$maj['0.4.5'] = [['sql_alter', 'TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)']];
+	$maj['0.4.6'] = [['sql_alter', 'TABLE spip_tradlangs ADD INDEX statut (statut)']];
+	$maj['0.5.0'] = [['creer_base'], ['tradlang_maj_bilans']];
+	$maj['0.5.1'] = [['tradlang_maj_attic']];
+	$maj['0.5.2'] = [['maj_tables', ['spip_tradlang_modules']]];
 
 	// changement de cle unique sur spip_tradlang_modules
-	$maj['1.0.0'] = array(
-		array('sql_alter','TABLE spip_tradlang_modules DROP INDEX module'),
-		// ajouter le champ dir_module
-		array('sql_alter','TABLE spip_tradlang_modules ADD dir_module varchar(255) NOT NULL DEFAULT \'\''),
-		// on preremplit avec module pour avoir l'unicite
-		array('sql_update','spip_tradlang_modules',array('dir_module' => 'module'), "dir_module=''"),
-		// ajout de l'index unique sur dir_module
-		array('sql_alter','TABLE spip_tradlang_modules ADD UNIQUE INDEX dir_module (dir_module)'),
-		// et on remet un index module simple
-		array('sql_alter','TABLE spip_tradlang_modules ADD INDEX module (module)'),
-	);
+	$maj['1.0.0'] = [
+     ['sql_alter', 'TABLE spip_tradlang_modules DROP INDEX module'],
+     // ajouter le champ dir_module
+     ['sql_alter', 'TABLE spip_tradlang_modules ADD dir_module varchar(255) NOT NULL DEFAULT \'\''],
+     // on preremplit avec module pour avoir l'unicite
+     ['sql_update', 'spip_tradlang_modules', ['dir_module' => 'module'], "dir_module=''"],
+     // ajout de l'index unique sur dir_module
+     ['sql_alter', 'TABLE spip_tradlang_modules ADD UNIQUE INDEX dir_module (dir_module)'],
+     // et on remet un index module simple
+     ['sql_alter', 'TABLE spip_tradlang_modules ADD INDEX module (module)'],
+ ];
 
-	$maj['1.1.0'] = array(
-		// supprimer tous les indexs
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX id'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX module'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX id_tradlang_module'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX statut'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX langstatut'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX modlangstatut'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX idmodlangstatut'),
-		array('sql_alter','TABLE spip_tradlangs DROP INDEX idmodlang'),
+	$maj['1.1.0'] = [
+     // supprimer tous les indexs
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX id'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX module'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX id_tradlang_module'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX statut'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX langstatut'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX modlangstatut'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX idmodlangstatut'],
+     ['sql_alter', 'TABLE spip_tradlangs DROP INDEX idmodlang'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD UNIQUE INDEX id_tradlang_module_id_lang (id_tradlang_module,id,lang)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX id (id)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX lang (lang)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX module (module)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX statut (statut)'],
+     ['sql_alter', 'TABLE spip_tradlangs ADD INDEX module_lang (module,lang)'],
+ ];
+	$maj['1.1.1'] = [['sql_alter', 'TABLE spip_tradlangs ADD INDEX id_tradlang_module_lang_statut (id_tradlang_module,lang,statut)']];
 
-		array('sql_alter','TABLE spip_tradlangs ADD UNIQUE INDEX id_tradlang_module_id_lang (id_tradlang_module,id,lang)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX id_tradlang_module (id_tradlang_module)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX id (id)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX lang (lang)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX module (module)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX statut (statut)'),
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX module_lang (module,lang)'),
-	);
-	$maj['1.1.1'] = array(
-		array('sql_alter','TABLE spip_tradlangs ADD INDEX id_tradlang_module_lang_statut (id_tradlang_module,lang,statut)'),
-	);
+	$maj['1.2.0'] = [['tradlang_nommer_modules']];
 
-	$maj['1.2.0'] = array(
-		array('tradlang_nommer_modules'),
-	);
-
-	$maj['1.2.1'] = array(
-		array('sql_alter','TABLE spip_tradlang_modules ADD bon_a_pousser tinyint NOT NULL DEFAULT 0'),
-	);
+	$maj['1.2.1'] = [['sql_alter', 'TABLE spip_tradlang_modules ADD bon_a_pousser tinyint NOT NULL DEFAULT 0']];
 
 	include_spip('base/upgrade');
 	maj_plugin($nom_meta_base_version, $version_cible, $maj);
@@ -148,10 +112,8 @@ function tradlang_nommer_modules() {
 
 		$id_tradlang_module = $row_module['id_tradlang_module'];
 
-		$set = array(
-			'nom_mod' => calculer_nom_module($row_module['module'], $row_module['dir_module']),
-		);
-		sql_updateq("spip_tradlang_modules", $set, "id_tradlang_module=".intval($id_tradlang_module));
+		$set = ['nom_mod' => calculer_nom_module($row_module['module'], $row_module['dir_module'])];
+		sql_updateq("spip_tradlang_modules", $set, "id_tradlang_module=".(int) $id_tradlang_module);
 		if (time()>_TIME_OUT) {
 			return;
 		}
@@ -166,16 +128,16 @@ function tradlang_import_ancien_tradlang($affiche = false) {
 	/**
 	 * On insère les modules
 	 */
-	$modules = sql_select('*', 'trad_lang', '', array('module'));
+	$modules = sql_select('*', 'trad_lang', '', ['module']);
 	while ($module=sql_fetch($modules)) {
-		$id_module = sql_insertq('spip_tradlang_modules', array('module' => $module['module'], 'nom_mod' => $module['module']));
+		$id_module = sql_insertq('spip_tradlang_modules', ['module' => $module['module'], 'nom_mod' => $module['module']]);
 		/**
 		 * On insére les anciens tradlang
 		 */
 		//$docs = array_map('reset',sql_allfetsel('id_document','spip_documents',"statut='0'",'','',"0,100"));
 		$strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif', 'trad_lang', 'module = ' . sql_quote($module['module']). ' AND orig!="2"', '', '', '0,100');
 		$count = 0;
-		while (count($strings)) {
+		while (is_countable($strings) ? count($strings) : 0) {
 			foreach ($strings as $id => $string) {
 				$string['titre'] = $string['id'].' : '.$string['module'].' - '.$string['lang'];
 				if (!$string['md5']) {
@@ -183,17 +145,17 @@ function tradlang_import_ancien_tradlang($affiche = false) {
 				}
 				$string['langue_choisie'] = 'non';
 				$string['id_tradlang_module'] = $id_module;
-				$string['statut'] = $string['status'] ? $string['status'] : 'OK';
+				$string['statut'] = $string['status'] ?: 'OK';
 				$string['maj'] = $string['ts'];
 				unset($string['ts']);
 				unset($string['status']);
 				sql_insertq('spip_tradlangs', $string);
-				sql_updateq('trad_lang', array('orig' => 2), 'str=' . sql_quote($string['str']) . ' AND lang= ' . sql_quote($string['lang']));
+				sql_updateq('trad_lang', ['orig' => 2], 'str=' . sql_quote($string['str']) . ' AND lang= ' . sql_quote($string['lang']));
 			}
 			if ($affiche) {
 				echo ' .';
 			}
-			$count = $count+count($strings);
+			$count += count($strings);
 			spip_log($count, 'tradlang');
 			$strings = sql_allfetsel('id,module,lang,str,comm,status,traducteur,ts,md5,orig,date_modif', 'trad_lang', 'module = ' . sql_quote($module['module']). ' AND orig!="2"', '', '', '0,100');
 		}
@@ -203,9 +165,9 @@ function tradlang_maj_id_tradlang_modules($affiche = false) {
 	$strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module=0', '', '', '0,100'));
 	while (count($strings)) {
 		foreach ($strings as $id_tradlang) {
-			$module = sql_getfetsel('module', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
+			$module = sql_getfetsel('module', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
 			$id_tradlang_module = sql_getfetsel('id_tradlang_module', 'spip_tradlang_modules', 'module = ' . sql_quote($module));
-			sql_updateq('spip_tradlangs', array('id_tradlang_module' => $id_tradlang_module), 'id_tradlang = ' . intval($id_tradlang));
+			sql_updateq('spip_tradlangs', ['id_tradlang_module' => $id_tradlang_module], 'id_tradlang = ' . (int) $id_tradlang);
 		}
 		if ($affiche) {
 			echo ' .';
@@ -218,9 +180,9 @@ function tradlang_maj_tradlang_titre($affiche = false) {
 	$strings = array_map('reset', sql_allfetsel('id_tradlang', 'spip_tradlangs', 'titre=""', '', '', '0,500'));
 	while (count($strings)) {
 		foreach ($strings as $id_tradlang) {
-			$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang));
+			$tradlang = sql_fetsel('*', 'spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang);
 			$titre = $tradlang['id'].' : '.$tradlang['module'].' - '.$tradlang['lang'];
-			sql_updateq('spip_tradlangs', array('titre' => $titre), 'id_tradlang='.intval($id_tradlang));
+			sql_updateq('spip_tradlangs', ['titre' => $titre], 'id_tradlang='.(int) $id_tradlang);
 		}
 		if ($affiche) {
 			echo ' .';
@@ -241,7 +203,7 @@ function tradlang_maj_modules($affiche = false) {
 		if ($affiche) {
 			echo ' .';
 		}
-		$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($module['id_tradlang_module']).' AND lang!='.sql_quote($module['lang_mere']), array('lang'));
+		$langues = sql_select('lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $module['id_tradlang_module'].' AND lang!='.sql_quote($module['lang_mere']), ['lang']);
 		while ($lang = sql_fetch($langues)) {
 			$modifs = $tradlang_verifier_langue_base($module['module'],$lang['lang']);
 		}
@@ -254,12 +216,12 @@ function tradlang_maj_modules($affiche = false) {
 function tradlang_maj_traducteurs($affiche = false) {
 	$chaines_traducteurs = sql_select('*', 'trad_lang', 'status = "" AND traducteur != ""');
 	while ($traduction = sql_fetch($chaines_traducteurs)) {
-		sql_updateq('spip_tradlangs', array('traducteur' => $traduction['traducteur']), 'module = '.sql_quote($traduction['module']).' AND id = ' . sql_quote($traduction['id']) . ' AND lang = ' . sql_quote($traduction['lang']));
+		sql_updateq('spip_tradlangs', ['traducteur' => $traduction['traducteur']], 'module = '.sql_quote($traduction['module']).' AND id = ' . sql_quote($traduction['id']) . ' AND lang = ' . sql_quote($traduction['lang']));
 	}
 
 	$chaines_traducteurs_modif = sql_select('*', 'trad_lang', 'status = "MODIF" AND traducteur != ""');
 	while ($traduction = sql_fetch($chaines_traducteurs_modif)) {
-		sql_updateq('spip_tradlangs', array('traducteur' => $traduction['traducteur']), 'module = '.sql_quote($traduction['module']).' AND id='.sql_quote($traduction['id']).' AND lang='.sql_quote($traduction['lang']));
+		sql_updateq('spip_tradlangs', ['traducteur' => $traduction['traducteur']], 'module = '.sql_quote($traduction['module']).' AND id='.sql_quote($traduction['id']).' AND lang='.sql_quote($traduction['lang']));
 	}
 }
 
@@ -290,16 +252,16 @@ function tradlang_maj_bilans($affiche = false) {
 				$chaines_relire = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="RELIRE"');
 				$chaines_modif = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="MODIF"');
 				$chaines_new = sql_countsel('spip_tradlangs', 'module='.sql_quote($module['module']).' AND lang='.sql_quote($lang).' AND statut="NEW"');
-				$infos_bilan = array(
-									'id_tradlang_module' => $module['id_tradlang_module'],
-									'module' => $module['module'],
-									'lang' => $lang,
-									'chaines_total' => $total,
-									'chaines_ok' => $chaines_ok,
-									'chaines_relire' => $chaines_relire,
-									'chaines_modif' => $chaines_modif,
-									'chaines_new' => $chaines_new
-								);
+				$infos_bilan = [
+					'id_tradlang_module' => $module['id_tradlang_module'],
+					'module' => $module['module'],
+					'lang' => $lang,
+					'chaines_total' => $total,
+					'chaines_ok' => $chaines_ok,
+					'chaines_relire' => $chaines_relire,
+					'chaines_modif' => $chaines_modif,
+					'chaines_new' => $chaines_new
+				];
 				sql_insertq('spip_tradlangs_bilans', $infos_bilan);
 			}
 		}
@@ -314,14 +276,14 @@ function tradlang_maj_attic($affiche = false) {
 	sql_delete('spip_tradlangs', 'module LIKE "attic%" AND statut="NEW"');
 	$select_attic_id_module = sql_select('*', 'spip_tradlangs', 'module LIKE "attic%"', 'id_tradlang_module');
 	while ($id_module = sql_fetch($select_attic_id_module)) {
-		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_module['id_tradlang_module']));
+		$module = sql_getfetsel('module', 'spip_tradlang_modules', 'id_tradlang_module = ' . (int) $id_module['id_tradlang_module']);
 		if ($module) {
-			$attics_module = sql_select('id_tradlang,id,module,lang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_module['id_tradlang_module']) . ' AND module LIKE "attic%"');
+			$attics_module = sql_select('id_tradlang,id,module,lang', 'spip_tradlangs', 'id_tradlang_module = ' . (int) $id_module['id_tradlang_module'] . ' AND module LIKE "attic%"');
 			while ($id_tradlang = sql_fetch($attics_module)) {
 				if (!sql_getfetsel('id_tradlang', 'spip_tradlangs', 'id = ' . sql_quote($id_tradlang['id']).' AND module = ' . sql_quote($id_tradlang['module']).' AND lang = ' . sql_quote($id_tradlang['lang']))) {
-					sql_updateq('spip_tradlangs', array('statut' => 'attic', 'module' => $module), 'id_tradlang = ' . intval($id_tradlang['id_tradlang']));
+					sql_updateq('spip_tradlangs', ['statut' => 'attic', 'module' => $module], 'id_tradlang = ' . (int) $id_tradlang['id_tradlang']);
 				} else {
-					sql_delete('spip_tradlangs', 'id_tradlang = ' . intval($id_tradlang['id_tradlang']));
+					sql_delete('spip_tradlangs', 'id_tradlang = ' . (int) $id_tradlang['id_tradlang']);
 				}
 			}
 		}
@@ -336,7 +298,7 @@ function tradlang_maj_attic($affiche = false) {
  * -* la table spip_tradlangs_bilans
  * -* les éléments de spip_versions concernant l'obet tradlang
  * -* les éléments de spip_versions_fragments concernant l'obet tradlang
- * @param unknown_type $nom_meta_base_version
+ * @param string $nom_meta_base_version
  */
 function tradlang_vider_tables($nom_meta_base_version) {
 	sql_drop_table('spip_tradlangs');
diff --git a/tradlang_autoriser.php b/tradlang_autoriser.php
index cc2215d..daebb52 100644
--- a/tradlang_autoriser.php
+++ b/tradlang_autoriser.php
@@ -28,9 +28,10 @@ function tradlang_autoriser() {
  * @param string $action
  * 		L'action que l'on souhaite faire
  * @param boolean $utiliser_defaut [optional]
- * @return array, boolean
+ * @return array|false
  */
 function definir_autorisations_tradlang($action, $utiliser_defaut = true) {
+	$define = null;
 	$aut = null;
 
 	switch (strtolower($action)) {
@@ -50,9 +51,9 @@ function definir_autorisations_tradlang($action, $utiliser_defaut = true) {
 		if (in_array('webmestre', $liste)) {
 			$aut['auteur'] = explode(':', _ID_WEBMESTRES);
 		} elseif (in_array('0minirezo', $liste)) {
-			$aut['statut'] = array('0minirezo');
+			$aut['statut'] = ['0minirezo'];
 		} elseif (in_array('1comite', $liste)) {
-			$aut['statut'] = array('0minirezo', '1comite');
+			$aut['statut'] = ['0minirezo', '1comite'];
 		} else {
 			$aut['auteur'] = $liste;
 		}
@@ -94,15 +95,15 @@ function autoriser_tradlang_configurer_dist($faire, $type, $id, $qui, $opt) {
 				break;
 			case 'par_statut':
 				// Traitement spécifique pour la valeur 'tous'
-				if (in_array('tous', lire_config('tradlang/autorisations/configurer_statuts', array('0minirezo')))) {
+				if (in_array('tous', lire_config('tradlang/autorisations/configurer_statuts', ['0minirezo']))) {
 					return true;
 				}
 				// Autorisation par statut
-				$autorise = in_array($qui['statut'], lire_config('tradlang/autorisations/configurer_statuts', array()));
+				$autorise = in_array($qui['statut'], lire_config('tradlang/autorisations/configurer_statuts', []));
 				break;
 			case 'par_auteur':
 				// Autorisation par id d'auteurs
-				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/autorisations/configurer_auteurs', array()));
+				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/autorisations/configurer_auteurs', []));
 				break;
 		}
 		if ($autorise == true) {
@@ -150,8 +151,8 @@ function autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt) {
 	/**
 	 * Retourner false si c'est une chaîne de la langue mère
 	 */
-	if (intval($id) > 0) {
-		$infos_chaine = sql_fetsel('lang,module', 'spip_tradlangs', 'id_tradlang = ' . intval($id));
+	if ((int) $id > 0) {
+		$infos_chaine = sql_fetsel('lang,module', 'spip_tradlangs', 'id_tradlang = ' . (int) $id);
 		$lang_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'module = ' . sql_quote($infos_chaine['module']));
 		if ($infos_chaine['lang'] == $lang_mere) {
 			return false;
@@ -178,15 +179,15 @@ function autoriser_tradlang_modifier_dist($faire, $type, $id, $qui, $opt) {
 				break;
 			case 'par_statut':
 				// Traitement spécifique pour la valeur 'tous'
-				if (in_array('tous', lire_config('tradlang/modifier_statuts', array()))) {
+				if (in_array('tous', lire_config('tradlang/modifier_statuts', []))) {
 					return true;
 				}
 				// Autorisation par statut
-				$autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', array('0minirezo')));
+				$autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', ['0minirezo']));
 				break;
 			case 'par_auteur':
 				// Autorisation par id d'auteurs
-				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', array()));
+				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', []));
 				break;
 		}
 		if ($autorise == true) {
@@ -242,15 +243,15 @@ function autoriser_tradlangmodule_modifier_dist($faire, $type, $id, $qui, $opt)
 				break;
 			case 'par_statut':
 				// Traitement spécifique pour la valeur 'tous'
-				if (in_array('tous', lire_config('tradlang/modifier_statuts', array()))) {
+				if (in_array('tous', lire_config('tradlang/modifier_statuts', []))) {
 					return true;
 				}
 				// Autorisation par statut
-				$autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', array('0minirezo')));
+				$autorise = in_array($qui['statut'], lire_config('tradlang/modifier_statuts', ['0minirezo']));
 				break;
 			case 'par_auteur':
 				// Autorisation par id d'auteurs
-				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', array()));
+				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/modifier_auteurs', []));
 				break;
 		}
 		if ($autorise == true) {
@@ -302,15 +303,15 @@ function autoriser_tradlang_voir_dist($faire, $type, $id, $qui, $opt) {
 				break;
 			case 'par_statut':
 				// Traitement spécifique pour la valeur 'tous'
-				if (in_array('tous', lire_config('tradlang/voir_statuts', array()))) {
+				if (in_array('tous', lire_config('tradlang/voir_statuts', []))) {
 					return true;
 				}
 				// Autorisation par statut
-				$autorise = in_array($qui['statut'], lire_config('tradlang/voir_statuts', array('0minirezo', '1comite')));
+				$autorise = in_array($qui['statut'], lire_config('tradlang/voir_statuts', ['0minirezo', '1comite']));
 				break;
 			case 'par_auteur':
 				// Autorisation par id d'auteurs
-				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/voir_auteurs', array()));
+				$autorise = in_array($qui['id_auteur'], lire_config('tradlang/voir_auteurs', []));
 				break;
 		}
 		if ($autorise == true) {
diff --git a/tradlang_fonctions.php b/tradlang_fonctions.php
index 24c5f3b..f321b8e 100644
--- a/tradlang_fonctions.php
+++ b/tradlang_fonctions.php
@@ -21,7 +21,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
  * 		Un array complet des modules en base
  */
 function tradlang_getmodules_base() {
-	$ret = array();
+	$ret = [];
 
 	/**
 	 * Sélection de tous les modules de langue
@@ -36,7 +36,7 @@ function tradlang_getmodules_base() {
 			 * Récupération des différentes langues et calcul du nom des
 			 * fichiers de langue
 			 */
-			$res2 = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . intval($row['id_tradlang_module']));
+			$res2 = sql_allfetsel('DISTINCT lang', 'spip_tradlangs', 'id_tradlang_module=' . (int) $row['id_tradlang_module']);
 			foreach ($res2 as $row2) {
 				$lg = $row2['lang'];
 				$ret[$module]['langue_' . $lg] = $row['lang_prefix'].'_'.$lg.'.php';
@@ -48,10 +48,10 @@ function tradlang_getmodules_base() {
 
 function tradlang_dir_lang() {
 	global $dossier_squelettes;
-	if (!$dossier_squelettes and !is_dir(_DIR_RACINE.'squelettes')) {
+	if (!$dossier_squelettes && !is_dir(_DIR_RACINE.'squelettes')) {
 		return false;
 	} else {
-		$squelettes = $dossier_squelettes ? $dossier_squelettes : 'squelettes';
+		$squelettes = $dossier_squelettes ?: 'squelettes';
 	}
 
 	if (!is_dir($dir_lang = _DIR_RACINE.$squelettes.'/lang')) {
@@ -70,7 +70,7 @@ function langues_sort($array, $defaut = null) {
 	if (is_array($array)) {
 		arsort($array);
 		if (isset($defaut)) {
-			$langue_defaut = array($defaut => $array[$defaut]);
+			$langue_defaut = [$defaut => $array[$defaut]];
 			unset($array[$defaut]);
 			$array = array_merge($langue_defaut, $array);
 		}
@@ -88,8 +88,7 @@ function boucle_TRADLANG_MODULES_dist($id_boucle, &$boucles) {
 	/**
 	 * Par défaut on tri par priorité et nom_mod
 	 */
-	if (!isset($boucle->modificateur['par'])
-		and !isset($boucle->modificateur['tri'])) {
+	if (!isset($boucle->modificateur['par']) && !isset($boucle->modificateur['tri'])) {
 			$id_table = $boucle->id_table;
 			$boucle->order[] = "'$id_table." ."priorite'";
 			$boucle->order[] = "'$id_table." ."nom_mod'";
@@ -102,9 +101,9 @@ function boucle_TRADLANG_MODULES_dist($id_boucle, &$boucles) {
  */
 function boucle_TRADLANGS_dist($id_boucle, &$boucles) {
 	$boucle = &$boucles[$id_boucle];
-	if (isset($boucle->nom) and ($boucle->nom == 'calculer_langues_utilisees') and $boucle->id_boucle == 'tradlang') {
+	if (isset($boucle->nom) && $boucle->nom == 'calculer_langues_utilisees' && $boucle->id_boucle == 'tradlang') {
 		$id_table = $boucle->id_table;
-		array_unshift($boucle->where,array("'='", "'$id_table." ."id_tradlang'", "'0'"));
+		array_unshift($boucle->where,["'='", "'$id_table." ."id_tradlang'", "'0'"]);
 	}
 	return calculer_boucle($id_boucle, $boucles);
 }
@@ -147,9 +146,9 @@ function critere_langues_preferees_dist($idb, &$boucles, $crit) {
  */
 function prepare_langues_preferees() {
 	include_spip('inc/lang_liste');
-	if (isset($GLOBALS['visiteur_session']['id_auteur']) and $GLOBALS['visiteur_session']['id_auteur'] >= 1) {
-		$langues_preferees = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']));
-		if ($langues_preferees and count(unserialize($langues_preferees)) > 0) {
+	if (isset($GLOBALS['visiteur_session']['id_auteur']) && $GLOBALS['visiteur_session']['id_auteur'] >= 1) {
+		$langues_preferees = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur='.(int) $GLOBALS['visiteur_session']['id_auteur']);
+		if ($langues_preferees && (is_countable(unserialize($langues_preferees)) ? count(unserialize($langues_preferees)) : 0) > 0) {
 			$langues_array = unserialize($langues_preferees);
 		} else {
 			$langues_array = array_keys($GLOBALS['codes_langues']);
@@ -174,7 +173,7 @@ function critere_langue_complete_dist($id_boucle, &$boucles, $crit) {
 	$id_table = $boucle->id_table;
 	if ($id_table == 'tradlangs') {
 		if (isset($crit->param[0][0])) {
-			$id_module = calculer_liste(array($crit->param[0][0]), array(), $boucles, $boucles[$id_boucle]->id_parent);
+			$id_module = calculer_liste([$crit->param[0][0]], [], $boucles, $boucles[$id_boucle]->id_parent);
 		} else {
 			$id_module = calculer_argument_precedent($id_boucle, 'id_tradlang_module', $boucles);
 		}
@@ -184,11 +183,12 @@ function critere_langue_complete_dist($id_boucle, &$boucles, $crit) {
 			$module_having = $prepare_module('.$id_module.', "' . $boucle->sql_serveur . '");
 		';
 
-		array_unshift($boucle->where, array("'='", "'$id_table." ."statut'", "'\"OK\"'"));
+		array_unshift($boucle->where, ["'='", "'$id_table." ."statut'", "'\"OK\"'"]);
 		$boucles[$id_boucle]->group[] = "$id_table.lang";
-		$boucles[$id_boucle]->having[] = "\n\t\t".'$module_having';
+		$boucles[$id_boucle]->having[] = '
+		$module_having';
 	} else {
-		return (array('zbug_critere_inconnu', array('table' => $crit->op.' ?')));
+		return (['zbug_critere_inconnu', ['table' => $crit->op.' ?']]);
 	}
 }
 
@@ -205,7 +205,7 @@ function inc_prepare_module_langue_complete_dist($id_module, $serveur = '') {
 	/**
 	 * On récupère la langue mère du module
 	 */
-	$langue_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module='.intval($id_module));
+	$langue_mere = sql_getfetsel('lang_mere', 'spip_tradlang_modules', 'id_tradlang_module='.(int) $id_module);
 	/**
 	 * On compte le nombre d'éléments de la langue mère ce qui correspond au nombre total d'éléments
 	 * à traduire pour un module
@@ -227,8 +227,7 @@ function inc_prepare_module_langue_complete_dist($id_module, $serveur = '') {
  * 		La chaîne convertie en UTF-8
  */
 function tradlang_utf8($str) {
-	$str = unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
-	return $str;
+	return unicode_to_utf_8(html_entity_decode(preg_replace('/&([lg]t;)/S', '&amp;\1', $str), ENT_NOQUOTES, 'utf-8'));
 }
 
 /**
@@ -244,23 +243,19 @@ function tradlang_utf8($str) {
 function langue_possible($lang) {
 	include_spip('inc/lang');
 	$langues = $GLOBALS['codes_langues'];
-	if (key_exists($lang, $langues)) {
-		return true;
-	}
-
-	return false;
+ 	return array_key_exists($lang, $langues);
 }
 
 function tradlang_module_jolinom($nom_mod) {
 	if (strpos($nom_mod, '[') !== false) {
-		$nom_mod = str_replace(array('[', ']'), array('<small class=\'text-muted\'>[', ']</small>'), $nom_mod);
+		$nom_mod = str_replace(['[', ']'], ['<small class=\'text-muted\'>[', ']</small>'], $nom_mod);
 		if (strpos($nom_mod, ']') === false) {
 			$nom_mod .= "</small>";
 		}
 	}
-	if (strpos($nom_mod, '(') !== false and strpos($nom_mod, ')') !== false) {
+	if (strpos($nom_mod, '(') !== false && strpos($nom_mod, ')') !== false) {
 		$nom_mod = str_replace("(", "<small class='text-muted'>(", $nom_mod);
 		$nom_mod = str_replace(")", ")</small>", $nom_mod);
 	}
 	return $nom_mod;
-}
\ No newline at end of file
+}
diff --git a/tradlang_options.php b/tradlang_options.php
index 8a2ef73..19f0c3c 100644
--- a/tradlang_options.php
+++ b/tradlang_options.php
@@ -15,7 +15,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
 
 include_spip('inc/lang_liste');
 
-$GLOBALS['url_arbo_parents']['tradlang'] = array('id_tradlang_module','tradlang_module');
+$GLOBALS['url_arbo_parents']['tradlang'] = ['id_tradlang_module', 'tradlang_module'];
 
 /**
  * Définition des priorités à utiliser par défaut
@@ -56,12 +56,12 @@ function calculer_nom_module($module, $dir_module) {
 	$nom = $module;
 	if (strpos($nom, 'paquet-') === 0) {
 		$nom = substr($nom, 7) . " (paquet.xml)";
-		if ($s and $s !== $module) {
+		if ($s && $s !== $module) {
 			$nom .= " [$s]";
 		}
 	}
 	else {
-		$nom .= " [" . ($s ? $s : '?') . "]";
+		$nom .= " [" . ($s ?: '?') . "]";
 	}
 	return $nom;
 }
\ No newline at end of file
diff --git a/tradlang_pipelines.php b/tradlang_pipelines.php
index 6bcd2d2..2ac15ed 100644
--- a/tradlang_pipelines.php
+++ b/tradlang_pipelines.php
@@ -47,7 +47,7 @@ function tradlang_pre_edition($flux) {
 		if (is_array($langues_preferees = _request('langues_preferees'))) {
 			$flux['data']['langues_preferees'] = serialize($langues_preferees);
 		} else {
-			$flux['data']['langues_preferees'] = serialize(array());
+			$flux['data']['langues_preferees'] = serialize([]);
 		}
 	}
 	return $flux;
@@ -73,10 +73,10 @@ function tradlang_post_edition($flux) {
 		$config = lire_config('tradlang');
 		if (!is_array($config)) {
 			return $flux;
-		} elseif (($config['sauvegarde_locale'] == 'on') and ($config['sauvegarde_post_edition'] == 'on')) {
+		} elseif ($config['sauvegarde_locale'] == 'on' && $config['sauvegarde_post_edition'] == 'on') {
 			include_spip('tradlang_fonctions');
 			if ($dir_lang = tradlang_dir_lang()) {
-				$infos = sql_fetsel('lang,module', $flux['args']['table'], 'id_tradlang=' . intval($flux['args']['id_objet']));
+				$infos = sql_fetsel('lang,module', $flux['args']['table'], 'id_tradlang=' . (int) $flux['args']['id_objet']);
 				$module = sql_fetsel('*', 'spip_tradlang_modules', 'module=' . sql_quote($infos['module']));
 				$sauvegarder_module = charger_fonction('tradlang_sauvegarde_module', 'inc');
 				$sauvegarder_module($module['module'],$infos['lang'],$dir_lang);
@@ -96,8 +96,9 @@ function tradlang_post_edition($flux) {
  * @return object $boucle
  */
 function tradlang_pre_boucle($boucle) {
-	if (isset($boucle->nom) and ($boucle->nom == 'calculer_langues_utilisees') and ($boucle->id_boucle == 'tradlangs')) {
-		array_unshift($boucle->where, array("'='", "'$id_table." ."id_tradlang'", "'0'"));
+	$id_table = null;
+	if (isset($boucle->nom) && $boucle->nom == 'calculer_langues_utilisees' && $boucle->id_boucle == 'tradlangs') {
+		array_unshift($boucle->where, ["'='", "'$id_table." ."id_tradlang'", "'0'"]);
 	}
 	return $boucle;
 }
@@ -113,13 +114,13 @@ function tradlang_pre_boucle($boucle) {
  * 		Le contexte modifié si besoin
  */
 function tradlang_affiche_milieu($flux) {
-	if (($flux['args']['exec'] == 'auteur') && (intval($flux['args']['id_auteur']) > 0)) {
+	if (($flux['args']['exec'] == 'auteur') && ((int) $flux['args']['id_auteur'] > 0)) {
 		$texte = recuperer_fond(
 			'prive/objets/liste/versions',
-			array(
+			[
 				'objet'=>'tradlang',
-				'id_auteur'=>intval($flux['args']['id_auteur'])
-			)
+				'id_auteur'=>(int) $flux['args']['id_auteur']
+			]
 		);
 		$flux['data'] .= $texte;
 	}
@@ -154,10 +155,10 @@ function tradlang_editer_contenu_objet($flux) {
  */
 function tradlang_formulaire_charger($flux) {
 	// si le charger a renvoye false ou une chaine, ne rien faire
-	if (is_array($flux['data']) and ($flux['args']['form'] == 'editer_auteur')) {
+	if (is_array($flux['data']) && $flux['args']['form'] == 'editer_auteur') {
 		$flux['data']['langues_preferees'] = '';
-		if ($id_auteur = intval($flux['data']['id_auteur'])) {
-			$flux['data']['langues_preferees'] = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
+		if ($id_auteur = (int) $flux['data']['id_auteur']) {
+			$flux['data']['langues_preferees'] = sql_getfetsel('langues_preferees', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
 		}
 	}
 	return $flux;
@@ -185,14 +186,14 @@ function tradlang_forum_objets_depuis_env($array) {
  * 		Le contexte du pipeline modifié
  */
 function tradlang_revisions_chercher_label($flux) {
-	if ($flux['args']['objet'] == 'tradlang' and in_array($flux['args']['champ'], array('str', 'traducteur', 'statut'))) {
+	if ($flux['args']['objet'] == 'tradlang' && in_array($flux['args']['champ'], ['str', 'traducteur', 'statut'])) {
 		$flux['data'] = 'tradlang:info_'.$flux['args']['champ'];
 	}
 	return $flux;
 }
 
 function tradlang_grappes_objets_lies($flux) {
-	if (is_array($flux) and !isset($flux['tradlang_modules'])) {
+	if (is_array($flux) && !isset($flux['tradlang_modules'])) {
 		$flux['tradlang_modules'] = _T('tradlang:item_groupes_association_modules');
 	}
 	return $flux;
-- 
GitLab