Completed
Push — master ( e2ff1c...d410df )
by cam
01:21
created
ecrire/src/Texte/Collecteur/AbstractCollecteur.php 1 patch
Indentation   +149 added lines, -149 removed lines patch added patch discarded remove patch
@@ -14,154 +14,154 @@
 block discarded – undo
14 14
 
15 15
 abstract class AbstractCollecteur {
16 16
 
17
-	protected static string $markPrefix = 'COLLECT';
18
-	protected string $markId;
19
-
20
-	/**
21
-	 * Collecteur générique des occurences d'une preg dans un texte avec leurs positions et longueur
22
-	 * @param string $texte
23
-	 *   texte à analyser pour la collecte
24
-	 * @param string $if_chars
25
-	 *   caractere(s) à tester avant de tenter la preg
26
-	 * @param string $start_with
27
-	 *   caractere(s) par lesquels commencent l'expression recherchée (permet de démarrer la preg à la prochaine occurence de cette chaine)
28
-	 * @param string $preg
29
-	 *   preg utilisée pour la collecte
30
-	 * @param int $max_items
31
-	 *   pour limiter le nombre de preg collectée (pour la detection simple de présence par exemple)
32
-	 * @return array
33
-	 */
34
-	protected static function collecteur(string $texte, string $if_chars, string $start_with, string $preg, int $max_items = 0): array {
35
-
36
-		$collection = [];
37
-		$pos = 0;
38
-		while (
39
-			(!$if_chars || strpos($texte, $if_chars, $pos) !== false)
40
-			and ($next = ($start_with ? strpos($texte, $start_with, $pos) : $pos)) !== false
41
-			and preg_match($preg, $texte, $r, PREG_OFFSET_CAPTURE, $next)) {
42
-
43
-			$found_pos = $r[0][1];
44
-			$found_length = strlen($r[0][0]);
45
-			$match = [
46
-				'raw' => $r[0][0],
47
-				'match' => array_column($r, 0),
48
-				'pos' => $found_pos,
49
-				'length' => $found_length
50
-			];
51
-
52
-			$collection[] = $match;
53
-
54
-			if ($max_items and count($collection) === $max_items) {
55
-				break;
56
-			}
57
-
58
-			$pos = $match['pos'] + $match['length'];
59
-		}
60
-
61
-		return $collection;
62
-	}
63
-
64
-	/**
65
-	 * Sanitizer une collection d'occurences
66
-	 *
67
-	 * @param array $collection
68
-	 * @param string $sanitize_callback
69
-	 * @return array
70
-	 */
71
-	protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
72
-		foreach ($collection as &$c) {
73
-			$c['raw'] = $sanitize_callback($c['raw']);
74
-		}
75
-
76
-		return $collection;
77
-	}
78
-
79
-	/**
80
-	 * @param string $texte
81
-	 * @param array $options
82
-	 * @return array
83
-	 */
84
-	public function collecter(string $texte, array $options = []): array {
85
-		$collection = [];
86
-		return $collection;
87
-	}
88
-
89
-	public function detecter($texte): bool {
90
-		if (!empty($this->markId) and strpos($texte, $this->markId) !== false) {
91
-			return true;
92
-		}
93
-		return !empty($this->collecter($texte, ['detecter_presence' => true]));
94
-	}
95
-
96
-	/**
97
-	 * Echapper les occurences de la collecte par un texte neutre du point de vue HTML
98
-	 *
99
-	 * @see retablir()
100
-	 * @param string $texte
101
-	 * @param array $options
102
-	 *   string $sanitize_callback
103
-	 * @return array
104
-	 *   texte, marqueur utilise pour echapper les modeles
105
-	 */
106
-	public function echapper(string $texte, array $options = []): string {
107
-		if (!function_exists('creer_uniqid')) {
108
-			include_spip('inc/acces');
109
-		}
110
-
111
-		$collection = $this->collecter($texte, $options);
112
-		if (!empty($options['sanitize_callback']) and is_callable($options['sanitize_callback'])) {
113
-			$collection = $this->sanitizer_collection($collection, $options['sanitize_callback']);
114
-		}
115
-
116
-		if (!empty($collection)) {
117
-			if (empty($this->markId)) {
118
-				// generer un marqueur qui n'existe pas dans le texte
119
-				do {
120
-					$this->markId = substr(md5(uniqid(static::class, 1)), 0, 7);
121
-					$this->markId = "@|".static::$markPrefix . $this->markId . "|";
122
-				} while (strpos($texte, $this->markId) !== false);
123
-			}
124
-
125
-			$offset_pos = 0;
126
-			foreach ($collection as $c) {
127
-				$rempl = $this->markId . base64_encode($c['raw']) . '|@';
128
-				$texte = substr_replace($texte, $rempl, $c['pos'] + $offset_pos, $c['length']);
129
-				$offset_pos += strlen($rempl) - $c['length'];
130
-			}
131
-		}
132
-
133
-		return $texte;
134
-	}
135
-
136
-
137
-	/**
138
-	 * Retablir les occurences échappées précédemment
139
-	 *
140
-	 * @see echapper()
141
-	 * @param string $texte
142
-	 * @return string
143
-	 */
144
-	function retablir(string $texte): string {
145
-
146
-		if (!empty($this->markId)) {
147
-			$lm = strlen($this->markId);
148
-			$pos = 0;
149
-			while (
150
-				($p = strpos($texte, $this->markId, $pos)) !== false
151
-				and $end = strpos($texte, '|@', $p + $lm)
152
-			) {
153
-				$base64 = substr($texte, $p + $lm, $end - ($p + $lm));
154
-				if ($c = base64_decode($base64, true)) {
155
-					$texte = substr_replace($texte, $c, $p, $end + 2 - $p);
156
-					$pos = $p + strlen($c);
157
-				}
158
-				else {
159
-					$pos = $end;
160
-				}
161
-			}
162
-		}
163
-
164
-		return $texte;
165
-	}
17
+    protected static string $markPrefix = 'COLLECT';
18
+    protected string $markId;
19
+
20
+    /**
21
+     * Collecteur générique des occurences d'une preg dans un texte avec leurs positions et longueur
22
+     * @param string $texte
23
+     *   texte à analyser pour la collecte
24
+     * @param string $if_chars
25
+     *   caractere(s) à tester avant de tenter la preg
26
+     * @param string $start_with
27
+     *   caractere(s) par lesquels commencent l'expression recherchée (permet de démarrer la preg à la prochaine occurence de cette chaine)
28
+     * @param string $preg
29
+     *   preg utilisée pour la collecte
30
+     * @param int $max_items
31
+     *   pour limiter le nombre de preg collectée (pour la detection simple de présence par exemple)
32
+     * @return array
33
+     */
34
+    protected static function collecteur(string $texte, string $if_chars, string $start_with, string $preg, int $max_items = 0): array {
35
+
36
+        $collection = [];
37
+        $pos = 0;
38
+        while (
39
+            (!$if_chars || strpos($texte, $if_chars, $pos) !== false)
40
+            and ($next = ($start_with ? strpos($texte, $start_with, $pos) : $pos)) !== false
41
+            and preg_match($preg, $texte, $r, PREG_OFFSET_CAPTURE, $next)) {
42
+
43
+            $found_pos = $r[0][1];
44
+            $found_length = strlen($r[0][0]);
45
+            $match = [
46
+                'raw' => $r[0][0],
47
+                'match' => array_column($r, 0),
48
+                'pos' => $found_pos,
49
+                'length' => $found_length
50
+            ];
51
+
52
+            $collection[] = $match;
53
+
54
+            if ($max_items and count($collection) === $max_items) {
55
+                break;
56
+            }
57
+
58
+            $pos = $match['pos'] + $match['length'];
59
+        }
60
+
61
+        return $collection;
62
+    }
63
+
64
+    /**
65
+     * Sanitizer une collection d'occurences
66
+     *
67
+     * @param array $collection
68
+     * @param string $sanitize_callback
69
+     * @return array
70
+     */
71
+    protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
72
+        foreach ($collection as &$c) {
73
+            $c['raw'] = $sanitize_callback($c['raw']);
74
+        }
75
+
76
+        return $collection;
77
+    }
78
+
79
+    /**
80
+     * @param string $texte
81
+     * @param array $options
82
+     * @return array
83
+     */
84
+    public function collecter(string $texte, array $options = []): array {
85
+        $collection = [];
86
+        return $collection;
87
+    }
88
+
89
+    public function detecter($texte): bool {
90
+        if (!empty($this->markId) and strpos($texte, $this->markId) !== false) {
91
+            return true;
92
+        }
93
+        return !empty($this->collecter($texte, ['detecter_presence' => true]));
94
+    }
95
+
96
+    /**
97
+     * Echapper les occurences de la collecte par un texte neutre du point de vue HTML
98
+     *
99
+     * @see retablir()
100
+     * @param string $texte
101
+     * @param array $options
102
+     *   string $sanitize_callback
103
+     * @return array
104
+     *   texte, marqueur utilise pour echapper les modeles
105
+     */
106
+    public function echapper(string $texte, array $options = []): string {
107
+        if (!function_exists('creer_uniqid')) {
108
+            include_spip('inc/acces');
109
+        }
110
+
111
+        $collection = $this->collecter($texte, $options);
112
+        if (!empty($options['sanitize_callback']) and is_callable($options['sanitize_callback'])) {
113
+            $collection = $this->sanitizer_collection($collection, $options['sanitize_callback']);
114
+        }
115
+
116
+        if (!empty($collection)) {
117
+            if (empty($this->markId)) {
118
+                // generer un marqueur qui n'existe pas dans le texte
119
+                do {
120
+                    $this->markId = substr(md5(uniqid(static::class, 1)), 0, 7);
121
+                    $this->markId = "@|".static::$markPrefix . $this->markId . "|";
122
+                } while (strpos($texte, $this->markId) !== false);
123
+            }
124
+
125
+            $offset_pos = 0;
126
+            foreach ($collection as $c) {
127
+                $rempl = $this->markId . base64_encode($c['raw']) . '|@';
128
+                $texte = substr_replace($texte, $rempl, $c['pos'] + $offset_pos, $c['length']);
129
+                $offset_pos += strlen($rempl) - $c['length'];
130
+            }
131
+        }
132
+
133
+        return $texte;
134
+    }
135
+
136
+
137
+    /**
138
+     * Retablir les occurences échappées précédemment
139
+     *
140
+     * @see echapper()
141
+     * @param string $texte
142
+     * @return string
143
+     */
144
+    function retablir(string $texte): string {
145
+
146
+        if (!empty($this->markId)) {
147
+            $lm = strlen($this->markId);
148
+            $pos = 0;
149
+            while (
150
+                ($p = strpos($texte, $this->markId, $pos)) !== false
151
+                and $end = strpos($texte, '|@', $p + $lm)
152
+            ) {
153
+                $base64 = substr($texte, $p + $lm, $end - ($p + $lm));
154
+                if ($c = base64_decode($base64, true)) {
155
+                    $texte = substr_replace($texte, $c, $p, $end + 2 - $p);
156
+                    $pos = $p + strlen($c);
157
+                }
158
+                else {
159
+                    $pos = $end;
160
+                }
161
+            }
162
+        }
163
+
164
+        return $texte;
165
+    }
166 166
 
167 167
 }
Please login to merge, or discard this patch.
ecrire/src/Texte/Collecteur/Idiomes.php 1 patch
Indentation   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -23,115 +23,115 @@
 block discarded – undo
23 23
  */
24 24
 class Idiomes extends AbstractCollecteur {
25 25
 
26
-	protected static string $markPrefix = 'IDIOME';
27
-
28
-	/**
29
-	 * La preg pour découper et collecter les modèles
30
-	 * @var string
31
-	 */
32
-	protected string $preg_idiome;
33
-
34
-	public function __construct(?string $preg = null) {
35
-
36
-		$this->preg_idiome = ($preg ?: '@<:(?:([a-z0-9_]+):)?([a-z0-9_]+):>@isS');
37
-	}
38
-
39
-	/**
40
-	 * Sanitizer une collection d'occurences d'idiomes : on ne fait rien
41
-	 *
42
-	 * @param array $collection
43
-	 * @param string $sanitize_callback
44
-	 * @return array
45
-	 */
46
-	protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
47
-
48
-		return $collection;
49
-	}
50
-
51
-
52
-	/**
53
-	 * @param string $texte
54
-	 * @param array $options
55
-	 *   bool $collecter_liens
56
-	 * @return array
57
-	 */
58
-	public function collecter(string $texte, array $options = []): array {
59
-		if (!$texte) {
60
-			return [];
61
-		}
62
-
63
-		// collecter les matchs de la preg
64
-		$idiomes = $this->collecteur($texte, '', '<:', $this->preg_idiome, empty($options['detecter_presence']) ? 0 : 1);
65
-
66
-		// si on veut seulement detecter la présence, on peut retourner tel quel
67
-		if (empty($options['detecter_presence'])) {
68
-
69
-			$pos_prev = 0;
70
-			foreach ($idiomes as $k => &$idiome) {
71
-
72
-				$idiome['module'] = $idiome['match'][1];
73
-				$idiome['chaine'] = $idiome['match'][2];
74
-			}
75
-		}
76
-
77
-		return $idiomes;
78
-	}
79
-
80
-	/**
81
-	 * Traiter les idiomes d'un texte
82
-	 *
83
-	 * @uses inc_traduire_dist()
84
-	 * @uses code_echappement()
85
-	 * @uses echappe_retour()
86
-	 *
87
-	 * @param string $texte
88
-	 * @param array $options
89
-	 *   ?string $lang
90
-	 *   ?bool echappe_span
91
-	 * @return string
92
-	 */
93
-	public function traiter(string $texte, array $options) {
94
-		static $traduire;
95
-		if ($texte) {
96
-
97
-			$idiomes = $this->collecter($texte);
98
-			if (!empty($idiomes)) {
99
-				$lang = $options['lang'] ?? $GLOBALS['spip_lang'];
100
-				$echappe_span = $options['echappe_span'] ?? false;
101
-
102
-				if (is_null($traduire)) {
103
-					$traduire = charger_fonction('traduire', 'inc');
104
-					include_spip('inc/lang');
105
-				}
106
-
107
-				$offset_pos = 0;
108
-				foreach ($idiomes as $idiome) {
109
-
110
-					$cle = ($idiome['module'] ? $idiome['module'] . ':' : '') . $idiome['chaine'];
111
-					$desc = $traduire($cle, $lang, true);
112
-					$l = $desc->langue;
113
-
114
-					// si pas de traduction, on laissera l'écriture de l'idiome entier dans le texte.
115
-					if (strlen($desc->texte ?? '')) {
116
-						$trad = code_echappement($desc->texte, 'idiome', false);
117
-						if ($l !== $lang) {
118
-							$trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l));
119
-						}
120
-						if (lang_dir($l) !== lang_dir($lang)) {
121
-							$trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l)));
122
-						}
123
-						if (!$echappe_span) {
124
-							$trad = echappe_retour($trad, 'idiome');
125
-						}
126
-						$texte = substr_replace($texte, $trad, $idiome['pos'] + $offset_pos, $idiome['length']);
127
-						$offset_pos += strlen($trad) - $idiome['length'];
128
-					}
129
-
130
-				}
131
-			}
132
-		}
133
-
134
-		return $texte;
135
-	}
26
+    protected static string $markPrefix = 'IDIOME';
27
+
28
+    /**
29
+     * La preg pour découper et collecter les modèles
30
+     * @var string
31
+     */
32
+    protected string $preg_idiome;
33
+
34
+    public function __construct(?string $preg = null) {
35
+
36
+        $this->preg_idiome = ($preg ?: '@<:(?:([a-z0-9_]+):)?([a-z0-9_]+):>@isS');
37
+    }
38
+
39
+    /**
40
+     * Sanitizer une collection d'occurences d'idiomes : on ne fait rien
41
+     *
42
+     * @param array $collection
43
+     * @param string $sanitize_callback
44
+     * @return array
45
+     */
46
+    protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
47
+
48
+        return $collection;
49
+    }
50
+
51
+
52
+    /**
53
+     * @param string $texte
54
+     * @param array $options
55
+     *   bool $collecter_liens
56
+     * @return array
57
+     */
58
+    public function collecter(string $texte, array $options = []): array {
59
+        if (!$texte) {
60
+            return [];
61
+        }
62
+
63
+        // collecter les matchs de la preg
64
+        $idiomes = $this->collecteur($texte, '', '<:', $this->preg_idiome, empty($options['detecter_presence']) ? 0 : 1);
65
+
66
+        // si on veut seulement detecter la présence, on peut retourner tel quel
67
+        if (empty($options['detecter_presence'])) {
68
+
69
+            $pos_prev = 0;
70
+            foreach ($idiomes as $k => &$idiome) {
71
+
72
+                $idiome['module'] = $idiome['match'][1];
73
+                $idiome['chaine'] = $idiome['match'][2];
74
+            }
75
+        }
76
+
77
+        return $idiomes;
78
+    }
79
+
80
+    /**
81
+     * Traiter les idiomes d'un texte
82
+     *
83
+     * @uses inc_traduire_dist()
84
+     * @uses code_echappement()
85
+     * @uses echappe_retour()
86
+     *
87
+     * @param string $texte
88
+     * @param array $options
89
+     *   ?string $lang
90
+     *   ?bool echappe_span
91
+     * @return string
92
+     */
93
+    public function traiter(string $texte, array $options) {
94
+        static $traduire;
95
+        if ($texte) {
96
+
97
+            $idiomes = $this->collecter($texte);
98
+            if (!empty($idiomes)) {
99
+                $lang = $options['lang'] ?? $GLOBALS['spip_lang'];
100
+                $echappe_span = $options['echappe_span'] ?? false;
101
+
102
+                if (is_null($traduire)) {
103
+                    $traduire = charger_fonction('traduire', 'inc');
104
+                    include_spip('inc/lang');
105
+                }
106
+
107
+                $offset_pos = 0;
108
+                foreach ($idiomes as $idiome) {
109
+
110
+                    $cle = ($idiome['module'] ? $idiome['module'] . ':' : '') . $idiome['chaine'];
111
+                    $desc = $traduire($cle, $lang, true);
112
+                    $l = $desc->langue;
113
+
114
+                    // si pas de traduction, on laissera l'écriture de l'idiome entier dans le texte.
115
+                    if (strlen($desc->texte ?? '')) {
116
+                        $trad = code_echappement($desc->texte, 'idiome', false);
117
+                        if ($l !== $lang) {
118
+                            $trad = str_replace("'", '"', inserer_attribut($trad, 'lang', $l));
119
+                        }
120
+                        if (lang_dir($l) !== lang_dir($lang)) {
121
+                            $trad = str_replace("'", '"', inserer_attribut($trad, 'dir', lang_dir($l)));
122
+                        }
123
+                        if (!$echappe_span) {
124
+                            $trad = echappe_retour($trad, 'idiome');
125
+                        }
126
+                        $texte = substr_replace($texte, $trad, $idiome['pos'] + $offset_pos, $idiome['length']);
127
+                        $offset_pos += strlen($trad) - $idiome['length'];
128
+                    }
129
+
130
+                }
131
+            }
132
+        }
133
+
134
+        return $texte;
135
+    }
136 136
 
137 137
 }
Please login to merge, or discard this patch.
ecrire/src/Texte/Collecteur/Modeles.php 1 patch
Indentation   +197 added lines, -197 removed lines patch added patch discarded remove patch
@@ -22,202 +22,202 @@
 block discarded – undo
22 22
  */
23 23
 class Modeles extends AbstractCollecteur {
24 24
 
25
-	protected static string $markPrefix = 'MODELE';
26
-
27
-	/**
28
-	 * La preg pour découper et collecter les modèles
29
-	 * @var string
30
-	 */
31
-	protected string $preg_modele;
32
-
33
-	public function __construct(?string $preg = null) {
34
-
35
-		$this->preg_modele = ($preg ?:
36
-			'@<([a-z_-]{3,})' # <modele
37
-			. '\s*([0-9]*)\s*' # id
38
-			. '([|](?:<[^<>]*>|[^>])*?)?' # |arguments (y compris des tags <...>)
39
-			. '\s*/?' . '>@isS' # fin du modele >
40
-		);
41
-	}
42
-
43
-	/**
44
-	 * Sanitizer une collection d'occurences de modèle : on ne fait rien
45
-	 *
46
-	 * @param array $collection
47
-	 * @param string $sanitize_callback
48
-	 * @return array
49
-	 */
50
-	protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
51
-
52
-		return $collection;
53
-	}
54
-
55
-	/**
56
-	 * @param string $texte
57
-	 * @param array $options
58
-	 *   bool $collecter_liens
59
-	 * @return array
60
-	 */
61
-	public function collecter(string $texte, array $options = []): array {
62
-		if (!$texte) {
63
-			return [];
64
-		}
65
-
66
-		// collecter les matchs de la preg
67
-		$modeles = $this->collecteur($texte, '', '<', $this->preg_modele);
68
-
69
-		$pos_prev = 0;
70
-		foreach ($modeles as $k => &$modele) {
71
-			$pos = $modele['pos'];
72
-			$modele['type'] = $modele['match'][1];
73
-			$modele['id'] = $modele['match'][2] ?? '';
74
-			$modele['params'] = $modele['match'][3] ?? '';
75
-
76
-			$longueur = $modele['length'];
77
-			$end = $pos + $longueur;
78
-
79
-			// il faut avoir un id ou des params commençant par un | sinon c'est une simple balise html
80
-			if (empty($modele['id']) and empty($modele['params'])) {
81
-				unset($modeles[$k]);
82
-				continue;
83
-			}
84
-
85
-			// si on veut seulement detecter la présence, on peut retourner tel quel
86
-			if (!empty($options['detecter_presence'])) {
87
-				break;
88
-			}
89
-
90
-			$modele['lien'] = false;
91
-			if (!empty($options['collecter_liens'])
92
-				and $pos_fermeture_lien = stripos($texte, '</a>', $end)
93
-				and !strlen(trim(substr($texte, $end, $pos_fermeture_lien - $end)))) {
94
-
95
-				$pos_lien_ouvrant = stripos($texte, '<a', $pos_prev);
96
-				if ($pos_lien_ouvrant !== false
97
-					and $pos_lien_ouvrant < $pos
98
-					and preg_match('/<a\s[^<>]*>\s*$/i', substr($texte, $pos_prev, $pos - $pos_prev), $r)
99
-				) {
100
-					$modele['lien'] = [
101
-						'href' => extraire_attribut($r[0], 'href'),
102
-						'class' => extraire_attribut($r[0], 'class'),
103
-						'mime' => extraire_attribut($r[0], 'type'),
104
-						'title' => extraire_attribut($r[0], 'title'),
105
-						'hreflang' => extraire_attribut($r[0], 'hreflang')
106
-					];
107
-					$n = strlen($r[0]);
108
-					$pos -= $n;
109
-					$longueur = $pos_fermeture_lien - $pos + 4;
110
-					$end = $pos + $longueur;
111
-				}
112
-			}
113
-
114
-
115
-			$modele['pos'] = $pos;
116
-			$modele['length'] = $longueur;
117
-			$pos_prev = $end;
118
-		}
119
-
120
-		return $modeles;
121
-	}
122
-
123
-	/**
124
-	 * Traiter les modeles d'un texte
125
-	 * @param string $texte
126
-	 * @param array $options
127
-	 *   bool|array $doublons
128
-	 *   string $echap
129
-	 *   ?Spip\Texte\CollecteurLiens $collecteurLiens
130
-	 *   ?array $env
131
-	 *   ?string $connect
132
-	 * @return string
133
-	 */
134
-	public function traiter(string $texte, array $options) {
135
-		if ($texte) {
136
-			$doublons = $options['doublons'] ?? false;
137
-			$echap = $options['echap'] ?? '';
138
-			$collecteurLiens = $options['collecteurLiens'] ?? null;
139
-			$env = $options['env'] ?? [];
140
-			$connect = $options['connect'] ?? '';
141
-
142
-			// preserver la compatibilite : true = recherche des documents
143
-			if ($doublons === true) {
144
-				$doublons = ['documents' => ['doc', 'emb', 'img']];
145
-			}
146
-
147
-			$modeles = $this->collecter($texte, ['collecter_liens' => true]);
148
-			if (!empty($modeles)) {
149
-				include_spip('public/assembler');
150
-				$wrap_embed_html = charger_fonction('wrap_embed_html', 'inc', true);
151
-
152
-				$offset_pos = 0;
153
-				foreach ($modeles as $m) {
154
-					// calculer le modele
155
-					# hack indexation
156
-					if ($doublons) {
157
-						$texte .= preg_replace(',[|][^|=]*,s', ' ', $m['params']);
158
-					} # version normale
159
-					else {
160
-						// si un tableau de liens a ete passe, reinjecter le contenu d'origine
161
-						// dans les parametres, plutot que les liens echappes
162
-						$params = $m['params'];
163
-						if (!is_null($collecteurLiens)) {
164
-							$params = $collecteurLiens->retablir($params);
165
-						}
166
-
167
-						$modele = inclure_modele($m['type'], $m['id'], $params, $m['lien'], $connect ?? '', $env);
168
-
169
-						// en cas d'echec,
170
-						// si l'objet demande a une url,
171
-						// creer un petit encadre vers elle
172
-						if ($modele === false) {
173
-							$modele = $m['raw'];
174
-
175
-							if (!is_null($collecteurLiens)) {
176
-								$modele = $collecteurLiens->retablir($modele);
177
-							}
178
-
179
-							$contexte = array_merge($env, ['id' => $m['id'], 'type' => $m['type'], 'modele' => $modele]);
180
-
181
-							if (!empty($m['lien'])) {
182
-								# un eventuel guillemet (") sera reechappe par #ENV
183
-								$contexte['lien'] = str_replace('&quot;', '"', $m['lien']['href']);
184
-								$contexte['lien_class'] = $m['lien']['class'];
185
-								$contexte['lien_mime'] = $m['lien']['mime'];
186
-								$contexte['lien_title'] = $m['lien']['title'];
187
-								$contexte['lien_hreflang'] = $m['lien']['hreflang'];
188
-							}
189
-
190
-							$modele = recuperer_fond('modeles/dist', $contexte, [], $connect ?? '');
191
-						}
192
-
193
-						// le remplacer dans le texte
194
-						if ($modele !== false) {
195
-							$modele = protege_js_modeles($modele);
196
-
197
-							if ($wrap_embed_html) {
198
-								$modele = $wrap_embed_html($m['raw'], $modele);
199
-							}
200
-
201
-							$rempl = code_echappement($modele, $echap);
202
-							$texte = substr_replace($texte, $rempl, $m['pos'] + $offset_pos, $m['length']);
203
-							$offset_pos += strlen($rempl) - $m['length'];
204
-						}
205
-					}
206
-
207
-					// hack pour tout l'espace prive
208
-					if ((test_espace_prive() or ($doublons)) and !empty($m['id'])) {
209
-						$type = strtolower($m['type']);
210
-						foreach ($doublons ?: ['documents' => ['doc', 'emb', 'img']] as $quoi => $type_modeles) {
211
-							if (in_array($type, $type_modeles)) {
212
-								$GLOBALS["doublons_{$quoi}_inclus"][] = $m['id'];
213
-							}
214
-						}
215
-					}
216
-				}
217
-			}
218
-		}
219
-
220
-		return $texte;
221
-	}
25
+    protected static string $markPrefix = 'MODELE';
26
+
27
+    /**
28
+     * La preg pour découper et collecter les modèles
29
+     * @var string
30
+     */
31
+    protected string $preg_modele;
32
+
33
+    public function __construct(?string $preg = null) {
34
+
35
+        $this->preg_modele = ($preg ?:
36
+            '@<([a-z_-]{3,})' # <modele
37
+            . '\s*([0-9]*)\s*' # id
38
+            . '([|](?:<[^<>]*>|[^>])*?)?' # |arguments (y compris des tags <...>)
39
+            . '\s*/?' . '>@isS' # fin du modele >
40
+        );
41
+    }
42
+
43
+    /**
44
+     * Sanitizer une collection d'occurences de modèle : on ne fait rien
45
+     *
46
+     * @param array $collection
47
+     * @param string $sanitize_callback
48
+     * @return array
49
+     */
50
+    protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
51
+
52
+        return $collection;
53
+    }
54
+
55
+    /**
56
+     * @param string $texte
57
+     * @param array $options
58
+     *   bool $collecter_liens
59
+     * @return array
60
+     */
61
+    public function collecter(string $texte, array $options = []): array {
62
+        if (!$texte) {
63
+            return [];
64
+        }
65
+
66
+        // collecter les matchs de la preg
67
+        $modeles = $this->collecteur($texte, '', '<', $this->preg_modele);
68
+
69
+        $pos_prev = 0;
70
+        foreach ($modeles as $k => &$modele) {
71
+            $pos = $modele['pos'];
72
+            $modele['type'] = $modele['match'][1];
73
+            $modele['id'] = $modele['match'][2] ?? '';
74
+            $modele['params'] = $modele['match'][3] ?? '';
75
+
76
+            $longueur = $modele['length'];
77
+            $end = $pos + $longueur;
78
+
79
+            // il faut avoir un id ou des params commençant par un | sinon c'est une simple balise html
80
+            if (empty($modele['id']) and empty($modele['params'])) {
81
+                unset($modeles[$k]);
82
+                continue;
83
+            }
84
+
85
+            // si on veut seulement detecter la présence, on peut retourner tel quel
86
+            if (!empty($options['detecter_presence'])) {
87
+                break;
88
+            }
89
+
90
+            $modele['lien'] = false;
91
+            if (!empty($options['collecter_liens'])
92
+                and $pos_fermeture_lien = stripos($texte, '</a>', $end)
93
+                and !strlen(trim(substr($texte, $end, $pos_fermeture_lien - $end)))) {
94
+
95
+                $pos_lien_ouvrant = stripos($texte, '<a', $pos_prev);
96
+                if ($pos_lien_ouvrant !== false
97
+                    and $pos_lien_ouvrant < $pos
98
+                    and preg_match('/<a\s[^<>]*>\s*$/i', substr($texte, $pos_prev, $pos - $pos_prev), $r)
99
+                ) {
100
+                    $modele['lien'] = [
101
+                        'href' => extraire_attribut($r[0], 'href'),
102
+                        'class' => extraire_attribut($r[0], 'class'),
103
+                        'mime' => extraire_attribut($r[0], 'type'),
104
+                        'title' => extraire_attribut($r[0], 'title'),
105
+                        'hreflang' => extraire_attribut($r[0], 'hreflang')
106
+                    ];
107
+                    $n = strlen($r[0]);
108
+                    $pos -= $n;
109
+                    $longueur = $pos_fermeture_lien - $pos + 4;
110
+                    $end = $pos + $longueur;
111
+                }
112
+            }
113
+
114
+
115
+            $modele['pos'] = $pos;
116
+            $modele['length'] = $longueur;
117
+            $pos_prev = $end;
118
+        }
119
+
120
+        return $modeles;
121
+    }
122
+
123
+    /**
124
+     * Traiter les modeles d'un texte
125
+     * @param string $texte
126
+     * @param array $options
127
+     *   bool|array $doublons
128
+     *   string $echap
129
+     *   ?Spip\Texte\CollecteurLiens $collecteurLiens
130
+     *   ?array $env
131
+     *   ?string $connect
132
+     * @return string
133
+     */
134
+    public function traiter(string $texte, array $options) {
135
+        if ($texte) {
136
+            $doublons = $options['doublons'] ?? false;
137
+            $echap = $options['echap'] ?? '';
138
+            $collecteurLiens = $options['collecteurLiens'] ?? null;
139
+            $env = $options['env'] ?? [];
140
+            $connect = $options['connect'] ?? '';
141
+
142
+            // preserver la compatibilite : true = recherche des documents
143
+            if ($doublons === true) {
144
+                $doublons = ['documents' => ['doc', 'emb', 'img']];
145
+            }
146
+
147
+            $modeles = $this->collecter($texte, ['collecter_liens' => true]);
148
+            if (!empty($modeles)) {
149
+                include_spip('public/assembler');
150
+                $wrap_embed_html = charger_fonction('wrap_embed_html', 'inc', true);
151
+
152
+                $offset_pos = 0;
153
+                foreach ($modeles as $m) {
154
+                    // calculer le modele
155
+                    # hack indexation
156
+                    if ($doublons) {
157
+                        $texte .= preg_replace(',[|][^|=]*,s', ' ', $m['params']);
158
+                    } # version normale
159
+                    else {
160
+                        // si un tableau de liens a ete passe, reinjecter le contenu d'origine
161
+                        // dans les parametres, plutot que les liens echappes
162
+                        $params = $m['params'];
163
+                        if (!is_null($collecteurLiens)) {
164
+                            $params = $collecteurLiens->retablir($params);
165
+                        }
166
+
167
+                        $modele = inclure_modele($m['type'], $m['id'], $params, $m['lien'], $connect ?? '', $env);
168
+
169
+                        // en cas d'echec,
170
+                        // si l'objet demande a une url,
171
+                        // creer un petit encadre vers elle
172
+                        if ($modele === false) {
173
+                            $modele = $m['raw'];
174
+
175
+                            if (!is_null($collecteurLiens)) {
176
+                                $modele = $collecteurLiens->retablir($modele);
177
+                            }
178
+
179
+                            $contexte = array_merge($env, ['id' => $m['id'], 'type' => $m['type'], 'modele' => $modele]);
180
+
181
+                            if (!empty($m['lien'])) {
182
+                                # un eventuel guillemet (") sera reechappe par #ENV
183
+                                $contexte['lien'] = str_replace('&quot;', '"', $m['lien']['href']);
184
+                                $contexte['lien_class'] = $m['lien']['class'];
185
+                                $contexte['lien_mime'] = $m['lien']['mime'];
186
+                                $contexte['lien_title'] = $m['lien']['title'];
187
+                                $contexte['lien_hreflang'] = $m['lien']['hreflang'];
188
+                            }
189
+
190
+                            $modele = recuperer_fond('modeles/dist', $contexte, [], $connect ?? '');
191
+                        }
192
+
193
+                        // le remplacer dans le texte
194
+                        if ($modele !== false) {
195
+                            $modele = protege_js_modeles($modele);
196
+
197
+                            if ($wrap_embed_html) {
198
+                                $modele = $wrap_embed_html($m['raw'], $modele);
199
+                            }
200
+
201
+                            $rempl = code_echappement($modele, $echap);
202
+                            $texte = substr_replace($texte, $rempl, $m['pos'] + $offset_pos, $m['length']);
203
+                            $offset_pos += strlen($rempl) - $m['length'];
204
+                        }
205
+                    }
206
+
207
+                    // hack pour tout l'espace prive
208
+                    if ((test_espace_prive() or ($doublons)) and !empty($m['id'])) {
209
+                        $type = strtolower($m['type']);
210
+                        foreach ($doublons ?: ['documents' => ['doc', 'emb', 'img']] as $quoi => $type_modeles) {
211
+                            if (in_array($type, $type_modeles)) {
212
+                                $GLOBALS["doublons_{$quoi}_inclus"][] = $m['id'];
213
+                            }
214
+                        }
215
+                    }
216
+                }
217
+            }
218
+        }
219
+
220
+        return $texte;
221
+    }
222 222
 
223 223
 }
Please login to merge, or discard this patch.
ecrire/src/Texte/Collecteur/Liens.php 1 patch
Indentation   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -17,103 +17,103 @@
 block discarded – undo
17 17
  */
18 18
 class Liens extends AbstractCollecteur {
19 19
 
20
-	protected static string $markPrefix = 'LIEN';
21
-
22
-	/**
23
-	 * La preg pour découper et collecter les modèles
24
-	 * @var string
25
-	 */
26
-	protected string $preg_lien;
27
-
28
-	public function __construct(?string $preg = null) {
29
-
30
-		// Regexp des raccourcis, aussi utilisee pour la fusion de sauvegarde Spip
31
-		// Laisser passer des paires de crochets pour la balise multi
32
-		// mais refuser plus d'imbrications ou de mauvaises imbrications
33
-		// sinon les crochets ne peuvent plus servir qu'a ce type de raccourci
34
-		$this->preg_lien = ($preg ?: '/\[([^][]*?([[][^]>-]*[]][^][]*)*)->(>?)([^]]*)\]/msS');
35
-	}
36
-
37
-
38
-	/**
39
-	 * Sanitizer une collection d'occurences de liens : il faut sanitizer le href et le texte uniquement
40
-	 *
41
-	 * @param array $collection
42
-	 * @param string $sanitize_callback
43
-	 * @return array
44
-	 */
45
-	protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
46
-		foreach ($collection as &$lien) {
47
-			$t = $sanitize_callback($lien['texte']);
48
-			if ($t !== $lien['texte']) {
49
-				$lien['raw'] = str_replace($lien['texte'], $t, $lien['raw']);
50
-				$lien['texte'] = $t;
51
-			}
52
-			$href = $sanitize_callback($lien['href']);
53
-			if ($href !== $lien['href']) {
54
-				$lien['raw'] = str_replace($lien['href'], $href, $lien['raw']);
55
-				$lien['href'] = $href;
56
-			}
57
-		}
58
-
59
-		return $collection;
60
-	}
61
-
62
-	/**
63
-	 * @param string $texte
64
-	 * @param array $options
65
-	 *   bool $collecter_liens
66
-	 * @return array
67
-	 */
68
-	public function collecter(string $texte, array $options = []): array {
69
-		if (!$texte) {
70
-			return [];
71
-		}
72
-
73
-		$liens = [];
74
-		if (strpos($texte, '->') !== false) {
75
-
76
-			$desechappe_crochets = false;
77
-			// si il y a un crochet ouvrant échappé ou un crochet fermant échappé, les substituer pour les ignorer
78
-			if (strpos($texte, '\[') !== false or strpos($texte, '\]') !== false) {
79
-				$texte = str_replace(['\[', '\]'], ["\x1\x5", "\x1\x6"], $texte);
80
-				$desechappe_crochets = true;
81
-			}
82
-
83
-			// collecter les matchs de la preg
84
-			$liens = $this->collecteur($texte, '->', '[', $this->preg_lien, empty($options['detecter_presence']) ? 0 : 1);
85
-
86
-			// si on veut seulement detecter la présence, on peut retourner tel quel
87
-			if (empty($options['detecter_presence'])) {
88
-
89
-				foreach ($liens as $k => &$lien) {
90
-
91
-					$lien['href'] = end($lien['match']);
92
-					$lien['texte'] = $lien['match'][1];
93
-					$lien['ouvrant'] = $lien['match'][3] ?? '';
94
-
95
-					// la mise en lien automatique est passee par la a tort !
96
-					// corrigeons pour eviter d'avoir un <a...> dans un href...
97
-					if (strncmp($lien['href'], '<a', 2) == 0) {
98
-						$href = extraire_attribut($lien['href'], 'href');
99
-						// remplacons dans la source qui peut etre reinjectee dans les arguments
100
-						// d'un modele
101
-						$lien['raw'] = str_replace($lien['href'], $href, $lien['raw']);
102
-						// et prenons le href comme la vraie url a linker
103
-						$lien['href'] = $href;
104
-					}
105
-
106
-					if ($desechappe_crochets and strpos($lien['raw'], "\x1") !== false) {
107
-						$lien['raw'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['raw']);
108
-						$lien['texte'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['texte']);
109
-						$lien['href'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['href']);
110
-					}
111
-
112
-				}
113
-			}
114
-		}
115
-
116
-		return $liens;
117
-	}
20
+    protected static string $markPrefix = 'LIEN';
21
+
22
+    /**
23
+     * La preg pour découper et collecter les modèles
24
+     * @var string
25
+     */
26
+    protected string $preg_lien;
27
+
28
+    public function __construct(?string $preg = null) {
29
+
30
+        // Regexp des raccourcis, aussi utilisee pour la fusion de sauvegarde Spip
31
+        // Laisser passer des paires de crochets pour la balise multi
32
+        // mais refuser plus d'imbrications ou de mauvaises imbrications
33
+        // sinon les crochets ne peuvent plus servir qu'a ce type de raccourci
34
+        $this->preg_lien = ($preg ?: '/\[([^][]*?([[][^]>-]*[]][^][]*)*)->(>?)([^]]*)\]/msS');
35
+    }
36
+
37
+
38
+    /**
39
+     * Sanitizer une collection d'occurences de liens : il faut sanitizer le href et le texte uniquement
40
+     *
41
+     * @param array $collection
42
+     * @param string $sanitize_callback
43
+     * @return array
44
+     */
45
+    protected function sanitizer_collection(array $collection, string $sanitize_callback): array {
46
+        foreach ($collection as &$lien) {
47
+            $t = $sanitize_callback($lien['texte']);
48
+            if ($t !== $lien['texte']) {
49
+                $lien['raw'] = str_replace($lien['texte'], $t, $lien['raw']);
50
+                $lien['texte'] = $t;
51
+            }
52
+            $href = $sanitize_callback($lien['href']);
53
+            if ($href !== $lien['href']) {
54
+                $lien['raw'] = str_replace($lien['href'], $href, $lien['raw']);
55
+                $lien['href'] = $href;
56
+            }
57
+        }
58
+
59
+        return $collection;
60
+    }
61
+
62
+    /**
63
+     * @param string $texte
64
+     * @param array $options
65
+     *   bool $collecter_liens
66
+     * @return array
67
+     */
68
+    public function collecter(string $texte, array $options = []): array {
69
+        if (!$texte) {
70
+            return [];
71
+        }
72
+
73
+        $liens = [];
74
+        if (strpos($texte, '->') !== false) {
75
+
76
+            $desechappe_crochets = false;
77
+            // si il y a un crochet ouvrant échappé ou un crochet fermant échappé, les substituer pour les ignorer
78
+            if (strpos($texte, '\[') !== false or strpos($texte, '\]') !== false) {
79
+                $texte = str_replace(['\[', '\]'], ["\x1\x5", "\x1\x6"], $texte);
80
+                $desechappe_crochets = true;
81
+            }
82
+
83
+            // collecter les matchs de la preg
84
+            $liens = $this->collecteur($texte, '->', '[', $this->preg_lien, empty($options['detecter_presence']) ? 0 : 1);
85
+
86
+            // si on veut seulement detecter la présence, on peut retourner tel quel
87
+            if (empty($options['detecter_presence'])) {
88
+
89
+                foreach ($liens as $k => &$lien) {
90
+
91
+                    $lien['href'] = end($lien['match']);
92
+                    $lien['texte'] = $lien['match'][1];
93
+                    $lien['ouvrant'] = $lien['match'][3] ?? '';
94
+
95
+                    // la mise en lien automatique est passee par la a tort !
96
+                    // corrigeons pour eviter d'avoir un <a...> dans un href...
97
+                    if (strncmp($lien['href'], '<a', 2) == 0) {
98
+                        $href = extraire_attribut($lien['href'], 'href');
99
+                        // remplacons dans la source qui peut etre reinjectee dans les arguments
100
+                        // d'un modele
101
+                        $lien['raw'] = str_replace($lien['href'], $href, $lien['raw']);
102
+                        // et prenons le href comme la vraie url a linker
103
+                        $lien['href'] = $href;
104
+                    }
105
+
106
+                    if ($desechappe_crochets and strpos($lien['raw'], "\x1") !== false) {
107
+                        $lien['raw'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['raw']);
108
+                        $lien['texte'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['texte']);
109
+                        $lien['href'] = str_replace(["\x1\x5", "\x1\x6"], ['[', ']'], $lien['href']);
110
+                    }
111
+
112
+                }
113
+            }
114
+        }
115
+
116
+        return $liens;
117
+    }
118 118
 
119 119
 }
Please login to merge, or discard this patch.
ecrire/inc/modeles.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 /**
@@ -26,16 +26,16 @@  discard block
 block discarded – undo
26 26
  */
27 27
 function traiter_modeles($texte, $doublons = false, $echap = '', string $connect = '', ?Spip\Texte\Collecteur\Liens $collecteurLiens = null, $env = []) {
28 28
 
29
-	include_spip("src/Texte/Collecteur/AbstractCollecteur");
30
-	include_spip("src/Texte/Collecteur/Modeles");
31
-	$collecteurModeles = new Spip\Texte\Collecteur\Modeles();
29
+    include_spip("src/Texte/Collecteur/AbstractCollecteur");
30
+    include_spip("src/Texte/Collecteur/Modeles");
31
+    $collecteurModeles = new Spip\Texte\Collecteur\Modeles();
32 32
 
33
-	$options = [
34
-		'doublons' => $doublons,
35
-		'echap' => $echap,
36
-		'connect' => $connect,
37
-		'collecteurLiens' => $collecteurLiens,
38
-		'env' => $env
39
-	];
40
-	return $collecteurModeles->traiter($texte ?? '', $options);
33
+    $options = [
34
+        'doublons' => $doublons,
35
+        'echap' => $echap,
36
+        'connect' => $connect,
37
+        'collecteurLiens' => $collecteurLiens,
38
+        'env' => $env
39
+    ];
40
+    return $collecteurModeles->traiter($texte ?? '', $options);
41 41
 }
Please login to merge, or discard this patch.
ecrire/inc/liens.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -11,5 +11,5 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
Please login to merge, or discard this patch.
ecrire/public/debusquer.php 1 patch
Indentation   +695 added lines, -695 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 include_spip('public/decompiler');
@@ -68,133 +68,133 @@  discard block
 block discarded – undo
68 68
  *     - true si $opt 'erreurs' = 'reset'
69 69
  **/
70 70
 function public_debusquer_dist($message = '', $lieu = '', $opt = []) {
71
-	static $should_log;
72
-	static $tableau_des_erreurs = [];
73
-
74
-	// Pour des tests unitaires, pouvoir récupérer les erreurs générées
75
-	if (isset($opt['erreurs'])) {
76
-		if ($opt['erreurs'] == 'get') {
77
-			return $tableau_des_erreurs;
78
-		}
79
-		if ($opt['erreurs'] == 'reset') {
80
-			$tableau_des_erreurs = [];
81
-
82
-			return true;
83
-		}
84
-	}
85
-
86
-	if (is_null($should_log)) {
87
-		$should_log = (empty($GLOBALS['visiteur_session']) || !include_spip('inc/autoriser') || !autoriser('debug'));
88
-	}
89
-
90
-	// Erreur ou appel final ?
91
-	if ($message) {
92
-		$message = debusquer_compose_message($message);
93
-		$tableau_des_erreurs[] = [$message, $lieu];
94
-		set_request('var_mode', 'debug');
95
-		$GLOBALS['bouton_admin_debug'] = true;
96
-		// Permettre a la compil de continuer
97
-		if (is_object($lieu) and (!isset($lieu->code) or !$lieu->code)) {
98
-			$lieu->code = "''";
99
-		}
100
-		// loger si personne ne verra l'erreur
101
-		if ($should_log) {
102
-			debusquer_loger_erreur($message, $lieu);
103
-		}
104
-		// forcer l'appel au debusqueur en cas de boucles infernales
105
-		$urgence = (_DEBUG_MAX_SQUELETTE_ERREURS and (is_countable($tableau_des_erreurs) ? count($tableau_des_erreurs) : 0) > _DEBUG_MAX_SQUELETTE_ERREURS);
106
-		if (!$urgence) {
107
-			return;
108
-		}
109
-	}
110
-	if (empty($GLOBALS['debug_objets']['principal'])) {
111
-		// espace public ?
112
-		if (isset($GLOBALS['fond'])) {
113
-			$GLOBALS['debug_objets']['principal'] = $GLOBALS['fond'];
114
-		}
115
-	}
116
-
117
-	include_spip('inc/autoriser');
118
-	if (!autoriser('debug')) {
119
-		return;
120
-	}
121
-	include_spip('inc/headers');
122
-	include_spip('inc/filtres');
123
-
124
-	lang_select($GLOBALS['visiteur_session']['lang'] ?? null);
125
-	$fonc = preg_replace(',\W,', '_', _request('var_mode_objet') ?? '');
126
-	$mode = preg_replace(',\W,', '_', _request('var_mode_affiche') ?? '');
127
-
128
-	$self = str_replace("\\'", '&#39;', self());
129
-	$self = parametre_url($self, 'var_mode', 'debug');
130
-
131
-	$res = debusquer_bandeau($tableau_des_erreurs)
132
-		. '<br />'
133
-		. debusquer_squelette($fonc, $mode, $self);
134
-
135
-	if (!_DIR_RESTREINT or headers_sent()) {
136
-		return $res;
137
-	}
138
-	if ($tableau_des_erreurs) {
139
-		http_response_code(503);
140
-	}
141
-
142
-	http_no_cache();
143
-	if (isset($_GET['var_profile'])) {
144
-		$titre = parametre_url($GLOBALS['REQUEST_URI'], 'var_profile', '');
145
-		$titre = parametre_url($titre, 'var_mode', '');
146
-	} else {
147
-		if (!$fonc) {
148
-			$fonc = $GLOBALS['debug_objets']['principal'];
149
-		}
150
-		$titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' ' . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
151
-	}
152
-	if ($message === false) {
153
-		lang_select();
154
-
155
-		return debusquer_entete($titre, $res);
156
-	} else {
157
-		echo debusquer_entete($titre, $res);
158
-	}
159
-	exit;
71
+    static $should_log;
72
+    static $tableau_des_erreurs = [];
73
+
74
+    // Pour des tests unitaires, pouvoir récupérer les erreurs générées
75
+    if (isset($opt['erreurs'])) {
76
+        if ($opt['erreurs'] == 'get') {
77
+            return $tableau_des_erreurs;
78
+        }
79
+        if ($opt['erreurs'] == 'reset') {
80
+            $tableau_des_erreurs = [];
81
+
82
+            return true;
83
+        }
84
+    }
85
+
86
+    if (is_null($should_log)) {
87
+        $should_log = (empty($GLOBALS['visiteur_session']) || !include_spip('inc/autoriser') || !autoriser('debug'));
88
+    }
89
+
90
+    // Erreur ou appel final ?
91
+    if ($message) {
92
+        $message = debusquer_compose_message($message);
93
+        $tableau_des_erreurs[] = [$message, $lieu];
94
+        set_request('var_mode', 'debug');
95
+        $GLOBALS['bouton_admin_debug'] = true;
96
+        // Permettre a la compil de continuer
97
+        if (is_object($lieu) and (!isset($lieu->code) or !$lieu->code)) {
98
+            $lieu->code = "''";
99
+        }
100
+        // loger si personne ne verra l'erreur
101
+        if ($should_log) {
102
+            debusquer_loger_erreur($message, $lieu);
103
+        }
104
+        // forcer l'appel au debusqueur en cas de boucles infernales
105
+        $urgence = (_DEBUG_MAX_SQUELETTE_ERREURS and (is_countable($tableau_des_erreurs) ? count($tableau_des_erreurs) : 0) > _DEBUG_MAX_SQUELETTE_ERREURS);
106
+        if (!$urgence) {
107
+            return;
108
+        }
109
+    }
110
+    if (empty($GLOBALS['debug_objets']['principal'])) {
111
+        // espace public ?
112
+        if (isset($GLOBALS['fond'])) {
113
+            $GLOBALS['debug_objets']['principal'] = $GLOBALS['fond'];
114
+        }
115
+    }
116
+
117
+    include_spip('inc/autoriser');
118
+    if (!autoriser('debug')) {
119
+        return;
120
+    }
121
+    include_spip('inc/headers');
122
+    include_spip('inc/filtres');
123
+
124
+    lang_select($GLOBALS['visiteur_session']['lang'] ?? null);
125
+    $fonc = preg_replace(',\W,', '_', _request('var_mode_objet') ?? '');
126
+    $mode = preg_replace(',\W,', '_', _request('var_mode_affiche') ?? '');
127
+
128
+    $self = str_replace("\\'", '&#39;', self());
129
+    $self = parametre_url($self, 'var_mode', 'debug');
130
+
131
+    $res = debusquer_bandeau($tableau_des_erreurs)
132
+        . '<br />'
133
+        . debusquer_squelette($fonc, $mode, $self);
134
+
135
+    if (!_DIR_RESTREINT or headers_sent()) {
136
+        return $res;
137
+    }
138
+    if ($tableau_des_erreurs) {
139
+        http_response_code(503);
140
+    }
141
+
142
+    http_no_cache();
143
+    if (isset($_GET['var_profile'])) {
144
+        $titre = parametre_url($GLOBALS['REQUEST_URI'], 'var_profile', '');
145
+        $titre = parametre_url($titre, 'var_mode', '');
146
+    } else {
147
+        if (!$fonc) {
148
+            $fonc = $GLOBALS['debug_objets']['principal'];
149
+        }
150
+        $titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' ' . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
151
+    }
152
+    if ($message === false) {
153
+        lang_select();
154
+
155
+        return debusquer_entete($titre, $res);
156
+    } else {
157
+        echo debusquer_entete($titre, $res);
158
+    }
159
+    exit;
160 160
 }
161 161
 
162 162
 function debusquer_compose_message($msg) {
163
-	if (is_array($msg)) {
164
-		// si c'est un texte, c'est une traduction a faire, mais
165
-		// sqlite renvoit aussi des erreurs alpha num (mais avec 3 arguments)
166
-		if (!is_numeric($msg[0]) and count($msg) == 2) {
167
-			// message avec argument: instancier
168
-			$msg = _T($msg[0], $msg[1], 'spip-debug-arg');
169
-		} else {
170
-			// message SQL: interpreter
171
-			$msg = debusquer_requete($msg);
172
-		}
173
-	}
174
-	// FIXME: le fond n'est pas la si on n'est pas dans un squelette
175
-	// cela dit, ca serait bien d'indiquer tout de meme d'ou vient l'erreur
176
-	$fond = $GLOBALS['fond'] ?? '';
177
-	// une erreur critique sort $message en array
178
-	$debug = is_array($msg) ? $msg[1] : $msg;
179
-	spip_log('Debug: ' . $debug . ' (' . $fond . ')');
180
-
181
-	return $msg;
163
+    if (is_array($msg)) {
164
+        // si c'est un texte, c'est une traduction a faire, mais
165
+        // sqlite renvoit aussi des erreurs alpha num (mais avec 3 arguments)
166
+        if (!is_numeric($msg[0]) and count($msg) == 2) {
167
+            // message avec argument: instancier
168
+            $msg = _T($msg[0], $msg[1], 'spip-debug-arg');
169
+        } else {
170
+            // message SQL: interpreter
171
+            $msg = debusquer_requete($msg);
172
+        }
173
+    }
174
+    // FIXME: le fond n'est pas la si on n'est pas dans un squelette
175
+    // cela dit, ca serait bien d'indiquer tout de meme d'ou vient l'erreur
176
+    $fond = $GLOBALS['fond'] ?? '';
177
+    // une erreur critique sort $message en array
178
+    $debug = is_array($msg) ? $msg[1] : $msg;
179
+    spip_log('Debug: ' . $debug . ' (' . $fond . ')');
180
+
181
+    return $msg;
182 182
 }
183 183
 
184 184
 function debusquer_bandeau($erreurs) {
185 185
 
186
-	if (!empty($erreurs)) {
187
-		$n = [(is_countable($erreurs) ? count($erreurs) : 0) . ' ' . _T('zbug_erreur_squelette')];
186
+    if (!empty($erreurs)) {
187
+        $n = [(is_countable($erreurs) ? count($erreurs) : 0) . ' ' . _T('zbug_erreur_squelette')];
188 188
 
189
-		return debusquer_navigation($erreurs, $n);
190
-	} elseif (!empty($GLOBALS['tableau_des_temps'])) {
191
-		include_spip('public/tracer');
192
-		[$temps, $nav] = chrono_requete($GLOBALS['tableau_des_temps']);
189
+        return debusquer_navigation($erreurs, $n);
190
+    } elseif (!empty($GLOBALS['tableau_des_temps'])) {
191
+        include_spip('public/tracer');
192
+        [$temps, $nav] = chrono_requete($GLOBALS['tableau_des_temps']);
193 193
 
194
-		return debusquer_navigation($temps, $nav, 'debug-profile');
195
-	} else {
196
-		return '';
197
-	}
194
+        return debusquer_navigation($temps, $nav, 'debug-profile');
195
+    } else {
196
+        return '';
197
+    }
198 198
 }
199 199
 
200 200
 /**
@@ -204,63 +204,63 @@  discard block
 block discarded – undo
204 204
  * @return string Code HTML
205 205
  **/
206 206
 function debusquer_contexte($env) {
207
-	if (is_string($env) and is_array($env_tab = @unserialize($env))) {
208
-		$env = $env_tab;
209
-	}
210
-
211
-	if (!$env) {
212
-		return '';
213
-	}
214
-	$res = '';
215
-	foreach ($env as $nom => $valeur) {
216
-		if (is_array($valeur)) {
217
-			$valeur_simple = [];
218
-			foreach ($valeur as $v) {
219
-				if (is_array($v)) {
220
-					$valeur_simple[] = 'array:' . count($v);
221
-				} elseif (is_object($v)) {
222
-					$valeur_simple[] = get_class($v);
223
-				} elseif (is_string($v)) {
224
-					$valeur_simple[] = "'" . $v . "'";
225
-				} else {
226
-					$valeur_simple[] = $v;
227
-				}
228
-			}
229
-			$n = count($valeur);
230
-			$valeur = (($n > 3) ? 'array:' . $n . ' ' : '');
231
-			$valeur .= '[' . join(', ', $valeur_simple) . ']';
232
-		} elseif (is_object($valeur)) {
233
-			$valeur = get_class($valeur);
234
-		} elseif (is_string($valeur)) {
235
-			$valeur = "'" . $valeur . "'";
236
-		}
237
-		$res .= "\n<tr><td><strong>" . nl2br((string) entites_html($nom))
238
-			. '</strong></td><td>:&nbsp;' . nl2br((string) entites_html($valeur))
239
-			. "</td></tr>\n";
240
-	}
241
-
242
-	return "<div class='spip-env'><fieldset><legend onclick=\"this.parentElement.classList.toggle('expanded');\">#ENV</legend>\n<div><table>$res</table></div></fieldset></div>\n";
207
+    if (is_string($env) and is_array($env_tab = @unserialize($env))) {
208
+        $env = $env_tab;
209
+    }
210
+
211
+    if (!$env) {
212
+        return '';
213
+    }
214
+    $res = '';
215
+    foreach ($env as $nom => $valeur) {
216
+        if (is_array($valeur)) {
217
+            $valeur_simple = [];
218
+            foreach ($valeur as $v) {
219
+                if (is_array($v)) {
220
+                    $valeur_simple[] = 'array:' . count($v);
221
+                } elseif (is_object($v)) {
222
+                    $valeur_simple[] = get_class($v);
223
+                } elseif (is_string($v)) {
224
+                    $valeur_simple[] = "'" . $v . "'";
225
+                } else {
226
+                    $valeur_simple[] = $v;
227
+                }
228
+            }
229
+            $n = count($valeur);
230
+            $valeur = (($n > 3) ? 'array:' . $n . ' ' : '');
231
+            $valeur .= '[' . join(', ', $valeur_simple) . ']';
232
+        } elseif (is_object($valeur)) {
233
+            $valeur = get_class($valeur);
234
+        } elseif (is_string($valeur)) {
235
+            $valeur = "'" . $valeur . "'";
236
+        }
237
+        $res .= "\n<tr><td><strong>" . nl2br((string) entites_html($nom))
238
+            . '</strong></td><td>:&nbsp;' . nl2br((string) entites_html($valeur))
239
+            . "</td></tr>\n";
240
+    }
241
+
242
+    return "<div class='spip-env'><fieldset><legend onclick=\"this.parentElement.classList.toggle('expanded');\">#ENV</legend>\n<div><table>$res</table></div></fieldset></div>\n";
243 243
 }
244 244
 
245 245
 
246 246
 function debusquer_loger_erreur($msg, $lieu) {
247
-	$boucle = $ligne = $skel = '';
248
-	if (is_object($lieu)) {
249
-		$ligne = ($lieu->ligne ?? '');
250
-		$boucle = ($lieu->id_boucle ?? '');
251
-		$skel = ($lieu->descr['sourcefile'] ?? '');
252
-	}
253
-	$msg = (is_array($msg) ? implode('', $msg) : $msg);
254
-	if ($skel) {
255
-		$msg .= " Squelette $skel";
256
-	}
257
-	if ($boucle) {
258
-		$msg .= " Boucle $boucle";
259
-	}
260
-	if ($ligne) {
261
-		$msg .= " L$ligne";
262
-	}
263
-	spip_log($msg, "debusquer" . _LOG_ERREUR);
247
+    $boucle = $ligne = $skel = '';
248
+    if (is_object($lieu)) {
249
+        $ligne = ($lieu->ligne ?? '');
250
+        $boucle = ($lieu->id_boucle ?? '');
251
+        $skel = ($lieu->descr['sourcefile'] ?? '');
252
+    }
253
+    $msg = (is_array($msg) ? implode('', $msg) : $msg);
254
+    if ($skel) {
255
+        $msg .= " Squelette $skel";
256
+    }
257
+    if ($boucle) {
258
+        $msg .= " Boucle $boucle";
259
+    }
260
+    if ($ligne) {
261
+        $msg .= " L$ligne";
262
+    }
263
+    spip_log($msg, "debusquer" . _LOG_ERREUR);
264 264
 }
265 265
 
266 266
 
@@ -269,66 +269,66 @@  discard block
 block discarded – undo
269 269
 
270 270
 function debusquer_navigation($tableau, $caption = [], $id = 'debug-nav') {
271 271
 
272
-	if (_request('exec') == 'valider_xml') {
273
-		return '';
274
-	}
275
-	$GLOBALS['bouton_admin_debug'] = true;
276
-	$res = '';
277
-	$href = quote_amp(parametre_url($GLOBALS['REQUEST_URI'], 'var_mode', 'debug'));
278
-	foreach ($tableau as $i => $err) {
279
-		$boucle = $ligne = $skel = '';
280
-		[$msg, $lieu] = $err;
281
-		if (is_object($lieu)) {
282
-			$ligne = $lieu->ligne;
283
-			$boucle = !empty($lieu->id_boucle) ? $lieu->id_boucle : '';
284
-			if (isset($lieu->descr['nom'])) {
285
-				$nom_code = $lieu->descr['nom'];
286
-				$skel = $lieu->descr['sourcefile'];
287
-				$h2 = parametre_url($href, 'var_mode_objet', $nom_code);
288
-				$h3 = parametre_url($h2, 'var_mode_affiche', 'squelette') . '#L' . $ligne;
289
-				$skel = "<a href='$h3'><b>$skel</b></a>";
290
-				if ($boucle) {
291
-					$h3 = parametre_url($h2 . $boucle, 'var_mode_affiche', 'boucle');
292
-					$boucle = "<a href='$h3'><b>$boucle</b></a>";
293
-				}
294
-			}
295
-		}
296
-
297
-		$j = ($i + 1);
298
-		$res .= "<tr id='req$j'><td style='text-align: right'>"
299
-			. $j
300
-			. "&nbsp;</td><td style='text-align: left'>"
301
-			. (is_array($msg) ? implode('', $msg) : $msg)
302
-			. "</td><td style='text-align: left'>"
303
-			. ($skel ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
304
-			. "</td><td class='spip-debug-arg' style='text-align: left'>"
305
-			. ($boucle ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
306
-			. "</td><td style='text-align: right'>"
307
-			. $ligne
308
-			. "</td></tr>\n";
309
-	}
310
-
311
-	return "\n<table id='$id'>"
312
-	. "<caption onclick=\"x = document.getElementById('$id'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\">"
313
-	. $caption[0]
272
+    if (_request('exec') == 'valider_xml') {
273
+        return '';
274
+    }
275
+    $GLOBALS['bouton_admin_debug'] = true;
276
+    $res = '';
277
+    $href = quote_amp(parametre_url($GLOBALS['REQUEST_URI'], 'var_mode', 'debug'));
278
+    foreach ($tableau as $i => $err) {
279
+        $boucle = $ligne = $skel = '';
280
+        [$msg, $lieu] = $err;
281
+        if (is_object($lieu)) {
282
+            $ligne = $lieu->ligne;
283
+            $boucle = !empty($lieu->id_boucle) ? $lieu->id_boucle : '';
284
+            if (isset($lieu->descr['nom'])) {
285
+                $nom_code = $lieu->descr['nom'];
286
+                $skel = $lieu->descr['sourcefile'];
287
+                $h2 = parametre_url($href, 'var_mode_objet', $nom_code);
288
+                $h3 = parametre_url($h2, 'var_mode_affiche', 'squelette') . '#L' . $ligne;
289
+                $skel = "<a href='$h3'><b>$skel</b></a>";
290
+                if ($boucle) {
291
+                    $h3 = parametre_url($h2 . $boucle, 'var_mode_affiche', 'boucle');
292
+                    $boucle = "<a href='$h3'><b>$boucle</b></a>";
293
+                }
294
+            }
295
+        }
296
+
297
+        $j = ($i + 1);
298
+        $res .= "<tr id='req$j'><td style='text-align: right'>"
299
+            . $j
300
+            . "&nbsp;</td><td style='text-align: left'>"
301
+            . (is_array($msg) ? implode('', $msg) : $msg)
302
+            . "</td><td style='text-align: left'>"
303
+            . ($skel ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
304
+            . "</td><td class='spip-debug-arg' style='text-align: left'>"
305
+            . ($boucle ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
306
+            . "</td><td style='text-align: right'>"
307
+            . $ligne
308
+            . "</td></tr>\n";
309
+    }
310
+
311
+    return "\n<table id='$id'>"
312
+    . "<caption onclick=\"x = document.getElementById('$id'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\">"
313
+    . $caption[0]
314 314
 ## aide locale courte a ecrire, avec lien vers une grosse page de documentation
315 315
 #		aider('erreur_compilation'),
316
-	. '</caption>'
317
-	//  fausse caption du chrono (mais vraie nav)
318
-	. (!empty($caption[1]) ? $caption[1] : '')
319
-	. '<tr><th>'
320
-	. _T('numero')
321
-	. '</th><th>'
322
-	. _T('public:message')
323
-	. '</th><th>'
324
-	. _T('squelette')
325
-	. '</th><th>'
326
-	. _T('zbug_boucle')
327
-	. '</th><th>'
328
-	. _T('ligne')
329
-	. '</th></tr>'
330
-	. $res
331
-	. '</table>';
316
+    . '</caption>'
317
+    //  fausse caption du chrono (mais vraie nav)
318
+    . (!empty($caption[1]) ? $caption[1] : '')
319
+    . '<tr><th>'
320
+    . _T('numero')
321
+    . '</th><th>'
322
+    . _T('public:message')
323
+    . '</th><th>'
324
+    . _T('squelette')
325
+    . '</th><th>'
326
+    . _T('zbug_boucle')
327
+    . '</th><th>'
328
+    . _T('ligne')
329
+    . '</th></tr>'
330
+    . $res
331
+    . '</table>';
332 332
 }
333 333
 
334 334
 
@@ -348,514 +348,514 @@  discard block
 block discarded – undo
348 348
  *    ou un tableau si l'erreur est critique
349 349
  **/
350 350
 function debusquer_requete($message) {
351
-	[$errno, $msg, $query] = $message;
352
-
353
-	// FIXME: ces écritures mélangent divers syntaxe des moteurs SQL
354
-	// il serait plus prudent certainement d'avoir une fonction d'analyse par moteur
355
-	if (preg_match(',err(no|code):?[[:space:]]*([0-9]+),i', $msg, $regs)) {
356
-		$errno = $regs[2];
357
-	} elseif (
358
-		is_numeric($errno) and ($errno == 1030 or $errno <= 1026)
359
-		and preg_match(',[^[:alnum:]]([0-9]+)[^[:alnum:]],', $msg, $regs)
360
-	) {
361
-		$errno = $regs[1];
362
-	}
363
-
364
-	// Erreur systeme
365
-	if (is_numeric($errno) and $errno > 0 and $errno < 200) {
366
-		$retour = '<tt><br /><br /><blink>'
367
-			. _T('info_erreur_systeme', ['errsys' => $errno])
368
-			. "</blink><br />\n<b>"
369
-			. _T(
370
-				'info_erreur_systeme2',
371
-				['script' => generer_url_ecrire('base_repair')]
372
-			)
373
-			. '</b><br />';
374
-		spip_log("Erreur systeme $errno");
375
-
376
-		return [$retour, ''];
377
-	}
378
-
379
-	// Requete erronee
380
-	$err = '<b>' . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
381
-		. spip_htmlspecialchars($msg)
382
-		. "\n<br /><span style='color: red'><b>"
383
-		. spip_htmlspecialchars($query)
384
-		. '</b></span></tt><br />';
385
-
386
-	//. aider('erreur_mysql');
387
-
388
-	return $err;
351
+    [$errno, $msg, $query] = $message;
352
+
353
+    // FIXME: ces écritures mélangent divers syntaxe des moteurs SQL
354
+    // il serait plus prudent certainement d'avoir une fonction d'analyse par moteur
355
+    if (preg_match(',err(no|code):?[[:space:]]*([0-9]+),i', $msg, $regs)) {
356
+        $errno = $regs[2];
357
+    } elseif (
358
+        is_numeric($errno) and ($errno == 1030 or $errno <= 1026)
359
+        and preg_match(',[^[:alnum:]]([0-9]+)[^[:alnum:]],', $msg, $regs)
360
+    ) {
361
+        $errno = $regs[1];
362
+    }
363
+
364
+    // Erreur systeme
365
+    if (is_numeric($errno) and $errno > 0 and $errno < 200) {
366
+        $retour = '<tt><br /><br /><blink>'
367
+            . _T('info_erreur_systeme', ['errsys' => $errno])
368
+            . "</blink><br />\n<b>"
369
+            . _T(
370
+                'info_erreur_systeme2',
371
+                ['script' => generer_url_ecrire('base_repair')]
372
+            )
373
+            . '</b><br />';
374
+        spip_log("Erreur systeme $errno");
375
+
376
+        return [$retour, ''];
377
+    }
378
+
379
+    // Requete erronee
380
+    $err = '<b>' . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
381
+        . spip_htmlspecialchars($msg)
382
+        . "\n<br /><span style='color: red'><b>"
383
+        . spip_htmlspecialchars($query)
384
+        . '</b></span></tt><br />';
385
+
386
+    //. aider('erreur_mysql');
387
+
388
+    return $err;
389 389
 }
390 390
 
391 391
 
392 392
 function trouve_boucle_debug($n, $nom, $debut = 0, $boucle = '') {
393 393
 
394
-	$id = $nom . $boucle;
395
-	if (is_array($GLOBALS['debug_objets']['sequence'][$id])) {
396
-		foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v) {
397
-			if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r)) {
398
-				$y = substr_count($v[0], "\n");
399
-			} else {
400
-				if ($v[1][0] == '#') { // balise dynamique
401
-				$incl = $GLOBALS['debug_objets']['resultat'][$v[2]];
402
-				} else // inclusion
403
-				{
404
-					$incl = $GLOBALS['debug_objets']['squelette'][trouve_squelette_inclus($v[0])];
405
-				}
406
-				$y = substr_count($incl, "\n")
407
-					+ substr_count($r[1], "\n")
408
-					+ substr_count($r[3], "\n");
409
-			}
410
-			if ($n <= ($y + $debut)) {
411
-				if ($v[1][0] == '?') {
412
-					return trouve_boucle_debug($n, $nom, $debut, substr($v[1], 1));
413
-				} elseif ($v[1][0] == '!') {
414
-					if ($incl = trouve_squelette_inclus($v[1])) {
415
-						return trouve_boucle_debug($n, $incl, $debut);
416
-					}
417
-				}
418
-
419
-				return [$nom, $boucle, $v[2] - 1 + $n - $debut];
420
-			}
421
-			$debut += $y;
422
-		}
423
-	}
424
-
425
-	return [$nom, $boucle, $n - $debut];
394
+    $id = $nom . $boucle;
395
+    if (is_array($GLOBALS['debug_objets']['sequence'][$id])) {
396
+        foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v) {
397
+            if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r)) {
398
+                $y = substr_count($v[0], "\n");
399
+            } else {
400
+                if ($v[1][0] == '#') { // balise dynamique
401
+                $incl = $GLOBALS['debug_objets']['resultat'][$v[2]];
402
+                } else // inclusion
403
+                {
404
+                    $incl = $GLOBALS['debug_objets']['squelette'][trouve_squelette_inclus($v[0])];
405
+                }
406
+                $y = substr_count($incl, "\n")
407
+                    + substr_count($r[1], "\n")
408
+                    + substr_count($r[3], "\n");
409
+            }
410
+            if ($n <= ($y + $debut)) {
411
+                if ($v[1][0] == '?') {
412
+                    return trouve_boucle_debug($n, $nom, $debut, substr($v[1], 1));
413
+                } elseif ($v[1][0] == '!') {
414
+                    if ($incl = trouve_squelette_inclus($v[1])) {
415
+                        return trouve_boucle_debug($n, $incl, $debut);
416
+                    }
417
+                }
418
+
419
+                return [$nom, $boucle, $v[2] - 1 + $n - $debut];
420
+            }
421
+            $debut += $y;
422
+        }
423
+    }
424
+
425
+    return [$nom, $boucle, $n - $debut];
426 426
 }
427 427
 
428 428
 function trouve_squelette_inclus($script) {
429 429
 
430
-	preg_match('/include\(.(.*).php3?.\);/', $script, $reg);
431
-	// si le script X.php n'est pas ecrire/public.php
432
-	// on suppose qu'il prend le squelette X.html (pas sur, mais y a pas mieux)
433
-	if ($reg[1] == 'ecrire/public') { // si c'est bien ecrire/public on cherche le param 'fond'
434
-	if (!preg_match("/'fond' => '([^']*)'/", $script, $reg)) { // a defaut on cherche le param 'page'
435
-		if (!preg_match("/'param' => '([^']*)'/", $script, $reg)) {
436
-				$reg[1] = 'inconnu';
437
-		}
438
-	}
439
-	}
440
-	$incl = ',' . $reg[1] . '[.]\w$,';
441
-
442
-	foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v) {
443
-		if (preg_match($incl, $v)) {
444
-			return $k;
445
-		}
446
-	}
447
-
448
-	return '';
430
+    preg_match('/include\(.(.*).php3?.\);/', $script, $reg);
431
+    // si le script X.php n'est pas ecrire/public.php
432
+    // on suppose qu'il prend le squelette X.html (pas sur, mais y a pas mieux)
433
+    if ($reg[1] == 'ecrire/public') { // si c'est bien ecrire/public on cherche le param 'fond'
434
+    if (!preg_match("/'fond' => '([^']*)'/", $script, $reg)) { // a defaut on cherche le param 'page'
435
+        if (!preg_match("/'param' => '([^']*)'/", $script, $reg)) {
436
+                $reg[1] = 'inconnu';
437
+        }
438
+    }
439
+    }
440
+    $incl = ',' . $reg[1] . '[.]\w$,';
441
+
442
+    foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v) {
443
+        if (preg_match($incl, $v)) {
444
+            return $k;
445
+        }
446
+    }
447
+
448
+    return '';
449 449
 }
450 450
 
451 451
 function reference_boucle_debug($n, $nom, $self) {
452
-	[$skel, $boucle, $ligne] = trouve_boucle_debug($n, $nom);
453
-
454
-	if (!$boucle) {
455
-		return !$ligne ? '' :
456
-			(' (' .
457
-				(($nom != $skel) ? _T('squelette_inclus_ligne') :
458
-					_T('squelette_ligne')) .
459
-				" <a href='$self&amp;var_mode_objet=$skel&amp;var_mode_affiche=squelette&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)");
460
-	} else {
461
-		$self .= "&amp;var_mode_objet=$skel$boucle&amp;var_mode_affiche=boucle";
462
-
463
-		return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" :
464
-			" (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
465
-	}
452
+    [$skel, $boucle, $ligne] = trouve_boucle_debug($n, $nom);
453
+
454
+    if (!$boucle) {
455
+        return !$ligne ? '' :
456
+            (' (' .
457
+                (($nom != $skel) ? _T('squelette_inclus_ligne') :
458
+                    _T('squelette_ligne')) .
459
+                " <a href='$self&amp;var_mode_objet=$skel&amp;var_mode_affiche=squelette&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)");
460
+    } else {
461
+        $self .= "&amp;var_mode_objet=$skel$boucle&amp;var_mode_affiche=boucle";
462
+
463
+        return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" :
464
+            " (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
465
+    }
466 466
 }
467 467
 
468 468
 // affiche un texte avec numero de ligne et ancre.
469 469
 
470 470
 function ancre_texte($texte, $fautifs = [], $nocpt = false) {
471 471
 
472
-	$var_mode_ligne = _request('var_mode_ligne');
473
-	if ($var_mode_ligne) {
474
-		$fautifs[] = [$var_mode_ligne];
475
-	}
476
-	$res = '';
477
-
478
-	$s = highlight_string($texte, true);
479
-	if (substr($s, 0, 6) == '<code>') {
480
-		$s = substr($s, 6);
481
-		$res = '<code>';
482
-	}
483
-
484
-	$s = preg_replace(
485
-		',<(\w[^<>]*)>([^<]*)<br />([^<]*)</\1>,',
486
-		'<\1>\2</\1><br />' . "\n" . '<\1>\3</\1>',
487
-		$s
488
-	);
489
-
490
-
491
-	$tableau = explode('<br />', $s);
492
-
493
-	$format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: " . ($nocpt ? 'hidden' : 'visible') . ";%s' href='#T%s' title=\"%s\">%0" . strval(@strlen(count($tableau))) . "d</a></span> %s<br />\n";
494
-
495
-	$format10 = str_replace('white', 'lightgrey', $format);
496
-	$formaterr = 'color: red;';
497
-	$i = 1;
498
-	$flignes = [];
499
-	$loc = [0, 0];
500
-	foreach ($fautifs as $lc) {
501
-		if (is_array($lc)) {
502
-			$l = array_shift($lc);
503
-			$flignes[$l] = $lc;
504
-		} else {
505
-			$flignes[$lc] = $loc;
506
-		}
507
-	}
508
-
509
-	$ancre = md5($texte);
510
-	foreach ($tableau as $ligne) {
511
-		if (isset($flignes[$i])) {
512
-			$ligne = str_replace('&nbsp;', ' ', $ligne);
513
-			$indexmesg = $flignes[$i][1];
514
-			$err = textebrut($flignes[$i][2]);
515
-			// tentative de pointer sur la colonne fautive;
516
-			// marche pas car highlight_string rajoute des entites. A revoir.
517
-			// $m = $flignes[$i][0];
518
-			// $ligne = substr($ligne, 0, $m-1) .
519
-			// sprintf($formaterr, substr($ligne,$m));
520
-			$bg = $formaterr;
521
-		} else {
522
-			$indexmesg = $ancre;
523
-			$err = $bg = '';
524
-		}
525
-		$res .= sprintf((($i % 10) ? $format : $format10), $i, $bg, $indexmesg, $err, $i, $ligne);
526
-		$i++;
527
-	}
528
-
529
-	return "<div id='T$ancre'>"
530
-	. '<div onclick="'
531
-	. "jQuery(this).parent().find('a').toggle();"
532
-	. '" title="'
533
-	. _T('masquer_colonne')
534
-	. '" style="cursor: pointer;">'
535
-	. ($nocpt ? '' : _T('info_numero_abbreviation'))
536
-	. '</div>
472
+    $var_mode_ligne = _request('var_mode_ligne');
473
+    if ($var_mode_ligne) {
474
+        $fautifs[] = [$var_mode_ligne];
475
+    }
476
+    $res = '';
477
+
478
+    $s = highlight_string($texte, true);
479
+    if (substr($s, 0, 6) == '<code>') {
480
+        $s = substr($s, 6);
481
+        $res = '<code>';
482
+    }
483
+
484
+    $s = preg_replace(
485
+        ',<(\w[^<>]*)>([^<]*)<br />([^<]*)</\1>,',
486
+        '<\1>\2</\1><br />' . "\n" . '<\1>\3</\1>',
487
+        $s
488
+    );
489
+
490
+
491
+    $tableau = explode('<br />', $s);
492
+
493
+    $format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: " . ($nocpt ? 'hidden' : 'visible') . ";%s' href='#T%s' title=\"%s\">%0" . strval(@strlen(count($tableau))) . "d</a></span> %s<br />\n";
494
+
495
+    $format10 = str_replace('white', 'lightgrey', $format);
496
+    $formaterr = 'color: red;';
497
+    $i = 1;
498
+    $flignes = [];
499
+    $loc = [0, 0];
500
+    foreach ($fautifs as $lc) {
501
+        if (is_array($lc)) {
502
+            $l = array_shift($lc);
503
+            $flignes[$l] = $lc;
504
+        } else {
505
+            $flignes[$lc] = $loc;
506
+        }
507
+    }
508
+
509
+    $ancre = md5($texte);
510
+    foreach ($tableau as $ligne) {
511
+        if (isset($flignes[$i])) {
512
+            $ligne = str_replace('&nbsp;', ' ', $ligne);
513
+            $indexmesg = $flignes[$i][1];
514
+            $err = textebrut($flignes[$i][2]);
515
+            // tentative de pointer sur la colonne fautive;
516
+            // marche pas car highlight_string rajoute des entites. A revoir.
517
+            // $m = $flignes[$i][0];
518
+            // $ligne = substr($ligne, 0, $m-1) .
519
+            // sprintf($formaterr, substr($ligne,$m));
520
+            $bg = $formaterr;
521
+        } else {
522
+            $indexmesg = $ancre;
523
+            $err = $bg = '';
524
+        }
525
+        $res .= sprintf((($i % 10) ? $format : $format10), $i, $bg, $indexmesg, $err, $i, $ligne);
526
+        $i++;
527
+    }
528
+
529
+    return "<div id='T$ancre'>"
530
+    . '<div onclick="'
531
+    . "jQuery(this).parent().find('a').toggle();"
532
+    . '" title="'
533
+    . _T('masquer_colonne')
534
+    . '" style="cursor: pointer;">'
535
+    . ($nocpt ? '' : _T('info_numero_abbreviation'))
536
+    . '</div>
537 537
 	' . $res . "</div>\n";
538 538
 }
539 539
 
540 540
 // l'environnement graphique du debuggueur
541 541
 
542 542
 function debusquer_squelette($fonc, $mode, $self) {
543
-	$legend = null;
544
-	$texte = '';
545
-
546
-	if ($mode !== 'validation') {
547
-		if (isset($GLOBALS['debug_objets']['sourcefile']) and $GLOBALS['debug_objets']['sourcefile']) {
548
-			$res = "<div id='spip-boucles'>\n"
549
-				. debusquer_navigation_squelettes($self)
550
-				. '</div>';
551
-		} else {
552
-			$res = '';
553
-		}
554
-		if ($fonc) {
555
-			$id = " id='$fonc'";
556
-			if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
557
-				[$legend, $texte, $res2] = debusquer_source($fonc, $mode);
558
-				$texte .= $res2;
559
-			} elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
560
-				$legend = _T('zbug_' . $mode);
561
-				$texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
562
-				$texte = ancre_texte($texte, ['', '']);
563
-			}
564
-		} else {
565
-			if (strlen(trim($res))) {
566
-				return "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
567
-			} else {
568
-				// cas de l'appel sur erreur: montre la page
569
-				return $GLOBALS['debug_objets']['resultat']['tout'] ?? '';
570
-			}
571
-		}
572
-	} else {
573
-		$valider = charger_fonction('valider', 'xml');
574
-		$val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
575
-		// Si erreur, signaler leur nombre dans le formulaire admin
576
-		$GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
577
-		[$texte, $err] = emboite_texte($val, $fonc, $self);
578
-		if ($err === false) {
579
-			$err = _T('impossible');
580
-		} elseif ($err === true) {
581
-			$err = _T('correcte');
582
-		} else {
583
-			$err = ": $err";
584
-		}
585
-		$legend = _T('validation') . ' ' . $err;
586
-		$res = $id = '';
587
-	}
588
-
589
-	return !trim($texte) ? '' : (
590
-		"<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
591
-		. "<div id='debug_boucle'><fieldset$id><legend>"
592
-		. "<a href='" . $self . '#f_' . substr($fonc, 0, 37) . "'> &#8593; "
593
-		. ($legend ?: $mode)
594
-		. '</a></legend>'
595
-		. $texte
596
-		. '</fieldset></div>'
597
-		. '</div>');
543
+    $legend = null;
544
+    $texte = '';
545
+
546
+    if ($mode !== 'validation') {
547
+        if (isset($GLOBALS['debug_objets']['sourcefile']) and $GLOBALS['debug_objets']['sourcefile']) {
548
+            $res = "<div id='spip-boucles'>\n"
549
+                . debusquer_navigation_squelettes($self)
550
+                . '</div>';
551
+        } else {
552
+            $res = '';
553
+        }
554
+        if ($fonc) {
555
+            $id = " id='$fonc'";
556
+            if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
557
+                [$legend, $texte, $res2] = debusquer_source($fonc, $mode);
558
+                $texte .= $res2;
559
+            } elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
560
+                $legend = _T('zbug_' . $mode);
561
+                $texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
562
+                $texte = ancre_texte($texte, ['', '']);
563
+            }
564
+        } else {
565
+            if (strlen(trim($res))) {
566
+                return "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
567
+            } else {
568
+                // cas de l'appel sur erreur: montre la page
569
+                return $GLOBALS['debug_objets']['resultat']['tout'] ?? '';
570
+            }
571
+        }
572
+    } else {
573
+        $valider = charger_fonction('valider', 'xml');
574
+        $val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
575
+        // Si erreur, signaler leur nombre dans le formulaire admin
576
+        $GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
577
+        [$texte, $err] = emboite_texte($val, $fonc, $self);
578
+        if ($err === false) {
579
+            $err = _T('impossible');
580
+        } elseif ($err === true) {
581
+            $err = _T('correcte');
582
+        } else {
583
+            $err = ": $err";
584
+        }
585
+        $legend = _T('validation') . ' ' . $err;
586
+        $res = $id = '';
587
+    }
588
+
589
+    return !trim($texte) ? '' : (
590
+        "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
591
+        . "<div id='debug_boucle'><fieldset$id><legend>"
592
+        . "<a href='" . $self . '#f_' . substr($fonc, 0, 37) . "'> &#8593; "
593
+        . ($legend ?: $mode)
594
+        . '</a></legend>'
595
+        . $texte
596
+        . '</fieldset></div>'
597
+        . '</div>');
598 598
 }
599 599
 
600 600
 
601 601
 function emboite_texte($res, $fonc = '', $self = '') {
602
-	$errs = $res->err;
603
-	$texte = $res->entete . ($errs ? '' : $res->page);
604
-
605
-	if (!$texte and !$errs) {
606
-		return [ancre_texte('', ['', '']), false];
607
-	}
608
-	if (!$errs) {
609
-		return [ancre_texte($texte, ['', '']), true];
610
-	}
611
-
612
-	if (!isset($GLOBALS['debug_objets'])) {
613
-		$colors = ['#e0e0f0', '#f8f8ff'];
614
-		$encore = count_occ($errs);
615
-		$encore2 = [];
616
-		$fautifs = [];
617
-
618
-		$err = '<tr><th>'
619
-			. _T('numero')
620
-			. '</th><th>'
621
-			. _T('occurence')
622
-			. '</th><th>'
623
-			. _T('ligne')
624
-			. '</th><th>'
625
-			. _T('colonne')
626
-			. '</th><th>'
627
-			. _T('erreur')
628
-			. '</th></tr>';
629
-
630
-		$i = 0;
631
-		$style = "style='text-align: right; padding-right: 5px'";
632
-		foreach ($errs as $r) {
633
-			$i++;
634
-			[$msg, $ligne, $col] = $r;
635
-			#spip_log("$r = list($msg, $ligne, $col");
636
-			if (isset($encore2[$msg])) {
637
-				$ref = ++$encore2[$msg];
638
-			} else {
639
-				$encore2[$msg] = $ref = 1;
640
-			}
641
-			$err .= "<tr  style='background-color: "
642
-				. $colors[$i % 2]
643
-				. "'><td $style><a href='#debut_err'>"
644
-				. $i
645
-				. "</a></td><td $style>"
646
-				. "$ref/$encore[$msg]</td>"
647
-				. "<td $style><a href='#L"
648
-				. $ligne
649
-				. "' id='T$i'>"
650
-				. $ligne
651
-				. "</a></td><td $style>"
652
-				. $col
653
-				. "</td><td>$msg</td></tr>\n";
654
-			$fautifs[] = [$ligne, $col, $i, $msg];
655
-		}
656
-		$err = "<h2 style='text-align: center'>"
657
-			. $i
658
-			. "<a href='#fin_err'>"
659
-			. ' ' . _T('erreur_texte')
660
-			. "</a></h2><table id='debut_err' style='width: 100%'>"
661
-			. $err
662
-			. " </table><a id='fin_err'></a>";
663
-
664
-		return [ancre_texte($texte, $fautifs), $err];
665
-	} else {
666
-		[$msg, $fermant, $ouvrant] = $errs[0];
667
-		$rf = reference_boucle_debug($fermant, $fonc, $self);
668
-		$ro = reference_boucle_debug($ouvrant, $fonc, $self);
669
-		$err = $msg .
670
-			"<a href='#L" . $fermant . "'>$fermant</a>$rf<br />" .
671
-			"<a href='#L" . $ouvrant . "'>$ouvrant</a>$ro";
672
-
673
-		return [ancre_texte($texte, [[$ouvrant], [$fermant]]), $err];
674
-	}
602
+    $errs = $res->err;
603
+    $texte = $res->entete . ($errs ? '' : $res->page);
604
+
605
+    if (!$texte and !$errs) {
606
+        return [ancre_texte('', ['', '']), false];
607
+    }
608
+    if (!$errs) {
609
+        return [ancre_texte($texte, ['', '']), true];
610
+    }
611
+
612
+    if (!isset($GLOBALS['debug_objets'])) {
613
+        $colors = ['#e0e0f0', '#f8f8ff'];
614
+        $encore = count_occ($errs);
615
+        $encore2 = [];
616
+        $fautifs = [];
617
+
618
+        $err = '<tr><th>'
619
+            . _T('numero')
620
+            . '</th><th>'
621
+            . _T('occurence')
622
+            . '</th><th>'
623
+            . _T('ligne')
624
+            . '</th><th>'
625
+            . _T('colonne')
626
+            . '</th><th>'
627
+            . _T('erreur')
628
+            . '</th></tr>';
629
+
630
+        $i = 0;
631
+        $style = "style='text-align: right; padding-right: 5px'";
632
+        foreach ($errs as $r) {
633
+            $i++;
634
+            [$msg, $ligne, $col] = $r;
635
+            #spip_log("$r = list($msg, $ligne, $col");
636
+            if (isset($encore2[$msg])) {
637
+                $ref = ++$encore2[$msg];
638
+            } else {
639
+                $encore2[$msg] = $ref = 1;
640
+            }
641
+            $err .= "<tr  style='background-color: "
642
+                . $colors[$i % 2]
643
+                . "'><td $style><a href='#debut_err'>"
644
+                . $i
645
+                . "</a></td><td $style>"
646
+                . "$ref/$encore[$msg]</td>"
647
+                . "<td $style><a href='#L"
648
+                . $ligne
649
+                . "' id='T$i'>"
650
+                . $ligne
651
+                . "</a></td><td $style>"
652
+                . $col
653
+                . "</td><td>$msg</td></tr>\n";
654
+            $fautifs[] = [$ligne, $col, $i, $msg];
655
+        }
656
+        $err = "<h2 style='text-align: center'>"
657
+            . $i
658
+            . "<a href='#fin_err'>"
659
+            . ' ' . _T('erreur_texte')
660
+            . "</a></h2><table id='debut_err' style='width: 100%'>"
661
+            . $err
662
+            . " </table><a id='fin_err'></a>";
663
+
664
+        return [ancre_texte($texte, $fautifs), $err];
665
+    } else {
666
+        [$msg, $fermant, $ouvrant] = $errs[0];
667
+        $rf = reference_boucle_debug($fermant, $fonc, $self);
668
+        $ro = reference_boucle_debug($ouvrant, $fonc, $self);
669
+        $err = $msg .
670
+            "<a href='#L" . $fermant . "'>$fermant</a>$rf<br />" .
671
+            "<a href='#L" . $ouvrant . "'>$ouvrant</a>$ro";
672
+
673
+        return [ancre_texte($texte, [[$ouvrant], [$fermant]]), $err];
674
+    }
675 675
 }
676 676
 
677 677
 function count_occ($regs) {
678
-	$encore = [];
679
-	foreach ($regs as $r) {
680
-		if (isset($encore[$r[0]])) {
681
-			$encore[$r[0]]++;
682
-		} else {
683
-			$encore[$r[0]] = 1;
684
-		}
685
-	}
686
-
687
-	return $encore;
678
+    $encore = [];
679
+    foreach ($regs as $r) {
680
+        if (isset($encore[$r[0]])) {
681
+            $encore[$r[0]]++;
682
+        } else {
683
+            $encore[$r[0]] = 1;
684
+        }
685
+    }
686
+
687
+    return $encore;
688 688
 }
689 689
 
690 690
 function debusquer_navigation_squelettes($self) {
691 691
 
692
-	$res = '';
693
-	$boucles = !empty($GLOBALS['debug_objets']['boucle']) ? $GLOBALS['debug_objets']['boucle'] : '';
694
-	$contexte = $GLOBALS['debug_objets']['contexte'];
695
-	$t_skel = _T('squelette');
696
-	foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile) {
697
-		$self2 = parametre_url($self, 'var_mode_objet', $nom);
698
-		$nav = !$boucles ? '' : debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile);
699
-		$temps = !isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? '' : _T(
700
-			'zbug_profile',
701
-			['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]]
702
-		);
703
-
704
-		$res .= "<fieldset id='f_" . $nom . "'><legend>"
705
-			. $t_skel
706
-			. ' '
707
-			. $sourcefile
708
-			. "&nbsp;:\n<a href='$self2&amp;var_mode_affiche=squelette#f_$nom'>"
709
-			. $t_skel
710
-			. "</a>\n<a href='$self2&amp;var_mode_affiche=resultat#f_$nom'>"
711
-			. _T('zbug_resultat')
712
-			. "</a>\n<a href='$self2&amp;var_mode_affiche=code#f_$nom'>"
713
-			. _T('zbug_code')
714
-			. "</a>\n<a href='"
715
-			. str_replace('var_mode=debug', 'var_profile=1&amp;var_mode=recalcul', $self)
716
-			. "'>"
717
-			. _T('zbug_calcul')
718
-			. '</a></legend>'
719
-			. (!$temps ? '' : ("\n<span style='display:block;float:" . $GLOBALS['spip_lang_right'] . "'>$temps</span><br />"))
720
-			. debusquer_contexte($contexte[$sourcefile])
721
-		. (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
722
-		. "</fieldset>\n";
723
-	}
724
-
725
-	return $res;
692
+    $res = '';
693
+    $boucles = !empty($GLOBALS['debug_objets']['boucle']) ? $GLOBALS['debug_objets']['boucle'] : '';
694
+    $contexte = $GLOBALS['debug_objets']['contexte'];
695
+    $t_skel = _T('squelette');
696
+    foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile) {
697
+        $self2 = parametre_url($self, 'var_mode_objet', $nom);
698
+        $nav = !$boucles ? '' : debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile);
699
+        $temps = !isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? '' : _T(
700
+            'zbug_profile',
701
+            ['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]]
702
+        );
703
+
704
+        $res .= "<fieldset id='f_" . $nom . "'><legend>"
705
+            . $t_skel
706
+            . ' '
707
+            . $sourcefile
708
+            . "&nbsp;:\n<a href='$self2&amp;var_mode_affiche=squelette#f_$nom'>"
709
+            . $t_skel
710
+            . "</a>\n<a href='$self2&amp;var_mode_affiche=resultat#f_$nom'>"
711
+            . _T('zbug_resultat')
712
+            . "</a>\n<a href='$self2&amp;var_mode_affiche=code#f_$nom'>"
713
+            . _T('zbug_code')
714
+            . "</a>\n<a href='"
715
+            . str_replace('var_mode=debug', 'var_profile=1&amp;var_mode=recalcul', $self)
716
+            . "'>"
717
+            . _T('zbug_calcul')
718
+            . '</a></legend>'
719
+            . (!$temps ? '' : ("\n<span style='display:block;float:" . $GLOBALS['spip_lang_right'] . "'>$temps</span><br />"))
720
+            . debusquer_contexte($contexte[$sourcefile])
721
+        . (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
722
+        . "</fieldset>\n";
723
+    }
724
+
725
+    return $res;
726 726
 }
727 727
 
728 728
 function debusquer_navigation_boucles($boucles, $nom_skel, $self, $nom_source) {
729
-	$i = 0;
730
-	$res = '';
731
-	$var_mode_objet = _request('var_mode_objet');
732
-	$gram = preg_match('/[.](\w+)$/', $nom_source, $r) ? $r[1] : '';
733
-
734
-	foreach ($boucles as $objet => $boucle) {
735
-		if (substr($objet, 0, strlen($nom_skel)) == $nom_skel) {
736
-			$i++;
737
-			$nom = $boucle->id_boucle;
738
-			$req = $boucle->type_requete;
739
-			$crit = public_decompiler($boucle, $gram, 0, 'criteres');
740
-			$self2 = $self . '&amp;var_mode_objet=' . $objet;
741
-
742
-			$res .= "\n<tr style='background-color: " .
743
-				($i % 2 ? '#e0e0f0' : '#f8f8ff') .
744
-				"'><td  align='right'>$i</td><td>\n" .
745
-				"<a  class='debug_link_boucle' href='" .
746
-				$self2 .
747
-				"&amp;var_mode_affiche=boucle#f_$nom_skel'>" .
748
-				_T('zbug_boucle') .
749
-				"</a></td><td>\n<a class='debug_link_boucle' href='" .
750
-				$self2 .
751
-				"&amp;var_mode_affiche=resultat#f_$nom_skel'>" .
752
-				_T('zbug_resultat') .
753
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
754
-				$self2 .
755
-				"&amp;var_mode_affiche=code#f_$nom_skel'>" .
756
-				_T('zbug_code') .
757
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
758
-				str_replace('var_mode=', 'var_profile=', $self2) .
759
-				"'>" .
760
-				_T('zbug_calcul') .
761
-				"</a></td><td>\n" .
762
-				(($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom) .
763
-				"</td><td>\n" .
764
-				$req .
765
-				"</td><td>\n" .
766
-				spip_htmlspecialchars($crit) .
767
-				'</td></tr>';
768
-		}
769
-	}
770
-
771
-	return $res;
729
+    $i = 0;
730
+    $res = '';
731
+    $var_mode_objet = _request('var_mode_objet');
732
+    $gram = preg_match('/[.](\w+)$/', $nom_source, $r) ? $r[1] : '';
733
+
734
+    foreach ($boucles as $objet => $boucle) {
735
+        if (substr($objet, 0, strlen($nom_skel)) == $nom_skel) {
736
+            $i++;
737
+            $nom = $boucle->id_boucle;
738
+            $req = $boucle->type_requete;
739
+            $crit = public_decompiler($boucle, $gram, 0, 'criteres');
740
+            $self2 = $self . '&amp;var_mode_objet=' . $objet;
741
+
742
+            $res .= "\n<tr style='background-color: " .
743
+                ($i % 2 ? '#e0e0f0' : '#f8f8ff') .
744
+                "'><td  align='right'>$i</td><td>\n" .
745
+                "<a  class='debug_link_boucle' href='" .
746
+                $self2 .
747
+                "&amp;var_mode_affiche=boucle#f_$nom_skel'>" .
748
+                _T('zbug_boucle') .
749
+                "</a></td><td>\n<a class='debug_link_boucle' href='" .
750
+                $self2 .
751
+                "&amp;var_mode_affiche=resultat#f_$nom_skel'>" .
752
+                _T('zbug_resultat') .
753
+                "</a></td><td>\n<a class='debug_link_resultat' href='" .
754
+                $self2 .
755
+                "&amp;var_mode_affiche=code#f_$nom_skel'>" .
756
+                _T('zbug_code') .
757
+                "</a></td><td>\n<a class='debug_link_resultat' href='" .
758
+                str_replace('var_mode=', 'var_profile=', $self2) .
759
+                "'>" .
760
+                _T('zbug_calcul') .
761
+                "</a></td><td>\n" .
762
+                (($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom) .
763
+                "</td><td>\n" .
764
+                $req .
765
+                "</td><td>\n" .
766
+                spip_htmlspecialchars($crit) .
767
+                '</td></tr>';
768
+        }
769
+    }
770
+
771
+    return $res;
772 772
 }
773 773
 
774 774
 function debusquer_source($objet, $affiche) {
775
-	$quoi = $GLOBALS['debug_objets'][$affiche][$objet];
776
-	if (!empty($GLOBALS['debug_objets']['boucle'][$objet]->id_boucle)) {
777
-		$nom = $GLOBALS['debug_objets']['boucle'][$objet]->id_boucle;
778
-	} else {
779
-		$nom = $GLOBALS['debug_objets']['sourcefile'][$objet];
780
-	}
781
-	$res2 = '';
782
-
783
-	if ($affiche == 'resultat') {
784
-		$legend = $nom;
785
-		$req = $GLOBALS['debug_objets']['requete'][$objet];
786
-		if (function_exists('_mysql_traite_query')) {
787
-			$c = strtolower(_request('connect') ?? '');
788
-			$c = $GLOBALS['connexions'][$c ?: 0]['prefixe'];
789
-			$req = _mysql_traite_query($req, '', $c);
790
-		}
791
-		//  permettre le copier/coller facile
792
-		// $res = ancre_texte($req, array(), true);
793
-		$res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
794
-		//  formatage et affichage des resultats bruts de la requete
795
-		$ress_req = spip_query($req);
796
-		$brut_sql = '';
797
-		$num = 1;
798
-		//  eviter l'affichage de milliers de lignes
799
-		//  personnalisation possible dans mes_options
800
-		$max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
801
-		while ($retours_sql = sql_fetch($ress_req)) {
802
-			if ($num <= $max_aff) {
803
-				$brut_sql .= '<h3>' . ($num == 1 ? $num . ' sur ' . sql_count($ress_req) : $num) . '</h3>';
804
-				$brut_sql .= '<p>';
805
-				foreach ($retours_sql as $key => $val) {
806
-					$brut_sql .= '<strong>' . $key . '</strong> => ' . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
807
-				}
808
-				$brut_sql .= '</p>';
809
-			}
810
-			$num++;
811
-		}
812
-		$res2 = interdire_scripts($brut_sql);
813
-		foreach ($quoi as $view) {
814
-			//  ne pas afficher les $contexte_inclus
815
-			$view = preg_replace(',<\?php.+\?[>],Uims', '', $view);
816
-			if ($view) {
817
-				$res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . '</fieldset>';
818
-			}
819
-		}
820
-	} elseif ($affiche == 'code') {
821
-		$legend = $nom;
822
-		$res = ancre_texte('<' . "?php\n" . $quoi . "\n?" . '>');
823
-	} elseif ($affiche == 'boucle') {
824
-		$legend = _T('zbug_boucle') . ' ' . $nom;
825
-		// Le compilateur prefixe le nom des boucles par l'extension du fichier source.
826
-		$gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
827
-		$res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
828
-	} elseif ($affiche == 'squelette') {
829
-		$legend = $GLOBALS['debug_objets']['sourcefile'][$objet];
830
-		$res = ancre_texte($GLOBALS['debug_objets']['squelette'][$objet]);
831
-	}
832
-
833
-	return [$legend, $res, $res2];
775
+    $quoi = $GLOBALS['debug_objets'][$affiche][$objet];
776
+    if (!empty($GLOBALS['debug_objets']['boucle'][$objet]->id_boucle)) {
777
+        $nom = $GLOBALS['debug_objets']['boucle'][$objet]->id_boucle;
778
+    } else {
779
+        $nom = $GLOBALS['debug_objets']['sourcefile'][$objet];
780
+    }
781
+    $res2 = '';
782
+
783
+    if ($affiche == 'resultat') {
784
+        $legend = $nom;
785
+        $req = $GLOBALS['debug_objets']['requete'][$objet];
786
+        if (function_exists('_mysql_traite_query')) {
787
+            $c = strtolower(_request('connect') ?? '');
788
+            $c = $GLOBALS['connexions'][$c ?: 0]['prefixe'];
789
+            $req = _mysql_traite_query($req, '', $c);
790
+        }
791
+        //  permettre le copier/coller facile
792
+        // $res = ancre_texte($req, array(), true);
793
+        $res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
794
+        //  formatage et affichage des resultats bruts de la requete
795
+        $ress_req = spip_query($req);
796
+        $brut_sql = '';
797
+        $num = 1;
798
+        //  eviter l'affichage de milliers de lignes
799
+        //  personnalisation possible dans mes_options
800
+        $max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
801
+        while ($retours_sql = sql_fetch($ress_req)) {
802
+            if ($num <= $max_aff) {
803
+                $brut_sql .= '<h3>' . ($num == 1 ? $num . ' sur ' . sql_count($ress_req) : $num) . '</h3>';
804
+                $brut_sql .= '<p>';
805
+                foreach ($retours_sql as $key => $val) {
806
+                    $brut_sql .= '<strong>' . $key . '</strong> => ' . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
807
+                }
808
+                $brut_sql .= '</p>';
809
+            }
810
+            $num++;
811
+        }
812
+        $res2 = interdire_scripts($brut_sql);
813
+        foreach ($quoi as $view) {
814
+            //  ne pas afficher les $contexte_inclus
815
+            $view = preg_replace(',<\?php.+\?[>],Uims', '', $view);
816
+            if ($view) {
817
+                $res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . '</fieldset>';
818
+            }
819
+        }
820
+    } elseif ($affiche == 'code') {
821
+        $legend = $nom;
822
+        $res = ancre_texte('<' . "?php\n" . $quoi . "\n?" . '>');
823
+    } elseif ($affiche == 'boucle') {
824
+        $legend = _T('zbug_boucle') . ' ' . $nom;
825
+        // Le compilateur prefixe le nom des boucles par l'extension du fichier source.
826
+        $gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
827
+        $res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
828
+    } elseif ($affiche == 'squelette') {
829
+        $legend = $GLOBALS['debug_objets']['sourcefile'][$objet];
830
+        $res = ancre_texte($GLOBALS['debug_objets']['squelette'][$objet]);
831
+    }
832
+
833
+    return [$legend, $res, $res2];
834 834
 }
835 835
 
836 836
 function debusquer_entete($titre, $corps) {
837 837
 
838
-	include_spip('balise/formulaire_admin');
839
-	include_spip('public/assembler'); // pour inclure_balise_dynamique
840
-	include_spip('inc/texte'); // pour corriger_typo
841
-
842
-	return _DOCTYPE_ECRIRE .
843
-	html_lang_attributes() .
844
-	"<head>\n<title>" .
845
-	('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' .
846
-		_T('admin_debug') . ' ' . spip_htmlspecialchars($titre) . ' (' .
847
-		supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) .
848
-	")</title>\n" .
849
-	"<meta http-equiv='Content-Type' content='text/html" .
850
-	(($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '') .
851
-	"' />\n" .
852
-	http_script('', 'jquery.js')
853
-	. "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css'))
854
-	. "' type='text/css' />" .
855
-	"</head>\n" .
856
-	"<body style='margin:0 10px;'>\n" .
857
-	"<div id='spip-debug-header'>" .
858
-	$corps .
859
-	inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
860
-	'</div></body></html>';
838
+    include_spip('balise/formulaire_admin');
839
+    include_spip('public/assembler'); // pour inclure_balise_dynamique
840
+    include_spip('inc/texte'); // pour corriger_typo
841
+
842
+    return _DOCTYPE_ECRIRE .
843
+    html_lang_attributes() .
844
+    "<head>\n<title>" .
845
+    ('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' .
846
+        _T('admin_debug') . ' ' . spip_htmlspecialchars($titre) . ' (' .
847
+        supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) .
848
+    ")</title>\n" .
849
+    "<meta http-equiv='Content-Type' content='text/html" .
850
+    (($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '') .
851
+    "' />\n" .
852
+    http_script('', 'jquery.js')
853
+    . "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css'))
854
+    . "' type='text/css' />" .
855
+    "</head>\n" .
856
+    "<body style='margin:0 10px;'>\n" .
857
+    "<div id='spip-debug-header'>" .
858
+    $corps .
859
+    inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
860
+    '</div></body></html>';
861 861
 }
Please login to merge, or discard this patch.
ecrire/lang/spip_oc_lnc.php 1 patch
Indentation   +569 added lines, -569 removed lines patch added patch discarded remove patch
@@ -4,507 +4,507 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'access_interface_graphique' => 'Tornar a l’interfàcia grafica completa',
14
-	'access_mode_texte' => 'Afichar l’interfàcia textuala simplificada',
15
-	'admin_debug' => 'desbugatge',
16
-	'admin_modifier_article' => 'Modificar aquel article',
17
-	'admin_modifier_auteur' => 'Modificar aquel autor',
18
-	'admin_modifier_breve' => 'Modificar aquela brèva',
19
-	'admin_modifier_mot' => 'Modificar aquel mot clau',
20
-	'admin_modifier_rubrique' => 'Modificar aquela rubrica',
21
-	'admin_recalculer' => 'Tornar calcular la pagina',
22
-	'afficher_trad' => 'mostrar las reviradas',
23
-	'alerte_maj_impossible' => '<b>Alèrta!</b> Es impossible d’actualizar la basa SQL vèrs la version @version@; saique i a un problèma relatiu al drech de modificar la basa de donadas. Volgatz contactar vòstre albergador.',
24
-	'analyse_xml' => 'Analisi XML',
25
-	'annuler' => 'Anullar',
26
-	'antispam_champ_vide' => 'Volgatz daissar aquel camp void :',
27
-	'articles_recents' => 'Los articles mai recents',
28
-	'avis_archive_incorrect' => 'lo fichièr archiu es pas un fichièr SPIP',
29
-	'avis_archive_invalide' => 'lo fichièr archiu es pas valid',
30
-	'avis_attention' => 'ATENCION!',
31
-	'avis_champ_incorrect_type_objet' => 'Nom de camp incorrècte @name@ per objècte de tipe @type@',
32
-	'avis_colonne_inexistante' => 'La colomna @col@ existís pas',
33
-	'avis_erreur' => 'Error: vejatz çai jos',
34
-	'avis_erreur_connexion' => 'Error de connexion',
35
-	'avis_erreur_cookie' => 'problèma de cookie',
36
-	'avis_erreur_fonction_contexte' => 'Error de programacion. Cal pas apelar aquela foncion dins aquel contèxt.',
37
-	'avis_erreur_mysql' => 'Error SQL ',
38
-	'avis_erreur_sauvegarde' => 'Error dins la salvagarda (@type@ @id_objet@)! ',
39
-	'avis_erreur_visiteur' => 'Problèma per accedir a l’espaci privat',
12
+    // A
13
+    'access_interface_graphique' => 'Tornar a l’interfàcia grafica completa',
14
+    'access_mode_texte' => 'Afichar l’interfàcia textuala simplificada',
15
+    'admin_debug' => 'desbugatge',
16
+    'admin_modifier_article' => 'Modificar aquel article',
17
+    'admin_modifier_auteur' => 'Modificar aquel autor',
18
+    'admin_modifier_breve' => 'Modificar aquela brèva',
19
+    'admin_modifier_mot' => 'Modificar aquel mot clau',
20
+    'admin_modifier_rubrique' => 'Modificar aquela rubrica',
21
+    'admin_recalculer' => 'Tornar calcular la pagina',
22
+    'afficher_trad' => 'mostrar las reviradas',
23
+    'alerte_maj_impossible' => '<b>Alèrta!</b> Es impossible d’actualizar la basa SQL vèrs la version @version@; saique i a un problèma relatiu al drech de modificar la basa de donadas. Volgatz contactar vòstre albergador.',
24
+    'analyse_xml' => 'Analisi XML',
25
+    'annuler' => 'Anullar',
26
+    'antispam_champ_vide' => 'Volgatz daissar aquel camp void :',
27
+    'articles_recents' => 'Los articles mai recents',
28
+    'avis_archive_incorrect' => 'lo fichièr archiu es pas un fichièr SPIP',
29
+    'avis_archive_invalide' => 'lo fichièr archiu es pas valid',
30
+    'avis_attention' => 'ATENCION!',
31
+    'avis_champ_incorrect_type_objet' => 'Nom de camp incorrècte @name@ per objècte de tipe @type@',
32
+    'avis_colonne_inexistante' => 'La colomna @col@ existís pas',
33
+    'avis_erreur' => 'Error: vejatz çai jos',
34
+    'avis_erreur_connexion' => 'Error de connexion',
35
+    'avis_erreur_cookie' => 'problèma de cookie',
36
+    'avis_erreur_fonction_contexte' => 'Error de programacion. Cal pas apelar aquela foncion dins aquel contèxt.',
37
+    'avis_erreur_mysql' => 'Error SQL ',
38
+    'avis_erreur_sauvegarde' => 'Error dins la salvagarda (@type@ @id_objet@)! ',
39
+    'avis_erreur_visiteur' => 'Problèma per accedir a l’espaci privat',
40 40
 
41
-	// B
42
-	'barre_a_accent_grave' => 'Inserir una A accent grèu majuscula',
43
-	'barre_aide' => 'Utilizar las acorchas tipograficas per enriquir vòstra compaginacion',
44
-	'barre_e_accent_aigu' => 'Inserir una E accent agut majuscula',
45
-	'barre_eo' => 'Inserir una E dins l’O',
46
-	'barre_eo_maj' => 'Inserir una E dins la O majuscula',
47
-	'barre_euro' => 'Inserir lo simbèl de l’èuro: €',
48
-	'barre_gras' => 'Metre en {{gras}}',
49
-	'barre_guillemets' => 'Enrodar amb de « verguetas »',
50
-	'barre_guillemets_simples' => 'Enrodar amb de „verguetas“',
51
-	'barre_intertitre' => 'Transformar en {{{intertítol}}}',
52
-	'barre_italic' => 'Metre en {italics}',
53
-	'barre_lien' => 'Transformar en [ligam ipertèxt->http://...]',
54
-	'barre_lien_input' => 'Volgatz indicar l’adreiça de vòstre ligam (podètz indicar una adreiça web jos la forma http://www.lomieusit.com o simplament indicar lo numèro d’un article d’aquel sit).',
55
-	'barre_note' => 'Transformar en [[Nòta de pè]]',
56
-	'barre_quote' => '<quote>Citar un messatge</quote>',
57
-	'bouton_changer' => 'Cambiar',
58
-	'bouton_chercher' => 'Cercar',
59
-	'bouton_choisir' => 'Causir',
60
-	'bouton_download' => 'Telecargar', # MODIF
61
-	'bouton_enregistrer' => 'Registrar',
62
-	'bouton_radio_desactiver_messagerie_interne' => 'Desactivar la messatjariá intèrna',
63
-	'bouton_radio_envoi_annonces' => 'Mandar los anoncis editorials',
64
-	'bouton_radio_non_envoi_annonces' => 'Mandar pas d’anoncis',
65
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Mandar pas la tièra de las novetats',
66
-	'bouton_recharger_page' => 'tornar cargar aquela pagina',
67
-	'bouton_telecharger' => 'Telecargar',
68
-	'bouton_upload' => 'Telecargar', # MODIF
69
-	'bouton_valider' => 'Validar',
41
+    // B
42
+    'barre_a_accent_grave' => 'Inserir una A accent grèu majuscula',
43
+    'barre_aide' => 'Utilizar las acorchas tipograficas per enriquir vòstra compaginacion',
44
+    'barre_e_accent_aigu' => 'Inserir una E accent agut majuscula',
45
+    'barre_eo' => 'Inserir una E dins l’O',
46
+    'barre_eo_maj' => 'Inserir una E dins la O majuscula',
47
+    'barre_euro' => 'Inserir lo simbèl de l’èuro: €',
48
+    'barre_gras' => 'Metre en {{gras}}',
49
+    'barre_guillemets' => 'Enrodar amb de « verguetas »',
50
+    'barre_guillemets_simples' => 'Enrodar amb de „verguetas“',
51
+    'barre_intertitre' => 'Transformar en {{{intertítol}}}',
52
+    'barre_italic' => 'Metre en {italics}',
53
+    'barre_lien' => 'Transformar en [ligam ipertèxt->http://...]',
54
+    'barre_lien_input' => 'Volgatz indicar l’adreiça de vòstre ligam (podètz indicar una adreiça web jos la forma http://www.lomieusit.com o simplament indicar lo numèro d’un article d’aquel sit).',
55
+    'barre_note' => 'Transformar en [[Nòta de pè]]',
56
+    'barre_quote' => '<quote>Citar un messatge</quote>',
57
+    'bouton_changer' => 'Cambiar',
58
+    'bouton_chercher' => 'Cercar',
59
+    'bouton_choisir' => 'Causir',
60
+    'bouton_download' => 'Telecargar', # MODIF
61
+    'bouton_enregistrer' => 'Registrar',
62
+    'bouton_radio_desactiver_messagerie_interne' => 'Desactivar la messatjariá intèrna',
63
+    'bouton_radio_envoi_annonces' => 'Mandar los anoncis editorials',
64
+    'bouton_radio_non_envoi_annonces' => 'Mandar pas d’anoncis',
65
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Mandar pas la tièra de las novetats',
66
+    'bouton_recharger_page' => 'tornar cargar aquela pagina',
67
+    'bouton_telecharger' => 'Telecargar',
68
+    'bouton_upload' => 'Telecargar', # MODIF
69
+    'bouton_valider' => 'Validar',
70 70
 
71
-	// C
72
-	'cal_apresmidi' => 'tantòst',
73
-	'cal_jour_entier' => 'jorn entièr',
74
-	'cal_matin' => 'matin',
75
-	'cal_par_jour' => 'calendièr per jorn',
76
-	'cal_par_mois' => 'calendièr per mes',
77
-	'cal_par_semaine' => 'calendièr per setmana',
78
-	'choix_couleur_interface' => 'color ',
79
-	'choix_interface' => 'causir l’interfàcia',
80
-	'colonne' => 'Colomna',
81
-	'confirm_changer_statut' => 'Atencion, avètz demandat de cambiar l’estatut d’aquel element. Desiratz de contunhar? ',
82
-	'correcte' => 'corrècte',
71
+    // C
72
+    'cal_apresmidi' => 'tantòst',
73
+    'cal_jour_entier' => 'jorn entièr',
74
+    'cal_matin' => 'matin',
75
+    'cal_par_jour' => 'calendièr per jorn',
76
+    'cal_par_mois' => 'calendièr per mes',
77
+    'cal_par_semaine' => 'calendièr per setmana',
78
+    'choix_couleur_interface' => 'color ',
79
+    'choix_interface' => 'causir l’interfàcia',
80
+    'colonne' => 'Colomna',
81
+    'confirm_changer_statut' => 'Atencion, avètz demandat de cambiar l’estatut d’aquel element. Desiratz de contunhar? ',
82
+    'correcte' => 'corrècte',
83 83
 
84
-	// D
85
-	'date_aujourdhui' => 'uèi',
86
-	'date_avant_jc' => 'abans lo Crist',
87
-	'date_dans' => 'd’aquí @delai@',
88
-	'date_de_mois_1' => '@j@ de genièr',
89
-	'date_de_mois_10' => '@j@ d’octobre',
90
-	'date_de_mois_11' => '@j@ de novembre',
91
-	'date_de_mois_12' => '@j@ de decembre',
92
-	'date_de_mois_2' => '@j@ de febrièr',
93
-	'date_de_mois_3' => '@j@ de març',
94
-	'date_de_mois_4' => '@j@ d’abril',
95
-	'date_de_mois_5' => '@j@ de mai',
96
-	'date_de_mois_6' => '@j@ de junh',
97
-	'date_de_mois_7' => '@j@ de julh',
98
-	'date_de_mois_8' => '@j@ d’agost',
99
-	'date_de_mois_9' => '@j@ de setembre',
100
-	'date_demain' => 'deman',
101
-	'date_fmt_heures_minutes' => '@h@h@m@min',
102
-	'date_fmt_jour_heure' => '@jour@ a @heure@',
103
-	'date_fmt_jour_mois' => '@jourmois@',
104
-	'date_fmt_jour_mois_annee' => '@jourmois@ de @annee@',
105
-	'date_fmt_mois_annee' => '@nommois@ de @annee@',
106
-	'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
107
-	'date_heures' => 'oras',
108
-	'date_hier' => 'ièr',
109
-	'date_il_y_a' => 'fa @delai@',
110
-	'date_jnum1' => '1r',
111
-	'date_jnum10' => '10',
112
-	'date_jnum11' => '11',
113
-	'date_jnum12' => '12',
114
-	'date_jnum13' => '13',
115
-	'date_jnum14' => '14',
116
-	'date_jnum15' => '15',
117
-	'date_jnum16' => '16',
118
-	'date_jnum17' => '17',
119
-	'date_jnum18' => '18',
120
-	'date_jnum19' => '19',
121
-	'date_jnum2' => '2',
122
-	'date_jnum20' => '20',
123
-	'date_jnum21' => '21',
124
-	'date_jnum22' => '22',
125
-	'date_jnum23' => '23',
126
-	'date_jnum24' => '24',
127
-	'date_jnum25' => '25',
128
-	'date_jnum26' => '26',
129
-	'date_jnum27' => '27',
130
-	'date_jnum28' => '28',
131
-	'date_jnum29' => '29',
132
-	'date_jnum3' => '3',
133
-	'date_jnum30' => '30',
134
-	'date_jnum31' => '31',
135
-	'date_jnum4' => '4',
136
-	'date_jnum5' => '5',
137
-	'date_jnum6' => '6',
138
-	'date_jnum7' => '7',
139
-	'date_jnum8' => '8',
140
-	'date_jnum9' => '9',
141
-	'date_jour_1' => 'dimenge',
142
-	'date_jour_1_abbr' => 'dmg.',
143
-	'date_jour_1_initiale' => 'dg.',
144
-	'date_jour_2' => 'diluns',
145
-	'date_jour_2_abbr' => 'dil.',
146
-	'date_jour_2_initiale' => 'dl.',
147
-	'date_jour_3' => 'dimars',
148
-	'date_jour_3_abbr' => 'dmr.',
149
-	'date_jour_3_initiale' => 'dm.',
150
-	'date_jour_4' => 'dimècres',
151
-	'date_jour_4_abbr' => 'dmc.',
152
-	'date_jour_4_initiale' => 'dc.',
153
-	'date_jour_5' => 'dijòus',
154
-	'date_jour_5_abbr' => 'dij.',
155
-	'date_jour_5_initiale' => 'dj.',
156
-	'date_jour_6' => 'divendres',
157
-	'date_jour_6_abbr' => 'div.',
158
-	'date_jour_6_initiale' => 'dv.',
159
-	'date_jour_7' => 'dissabte',
160
-	'date_jour_7_abbr' => 'dis.',
161
-	'date_jour_7_initiale' => 'ds.',
162
-	'date_jours' => 'jorns',
163
-	'date_minutes' => 'minutas',
164
-	'date_mois' => 'mes(es)',
165
-	'date_mois_1' => 'genièr',
166
-	'date_mois_10' => 'octobre',
167
-	'date_mois_11' => 'novembre',
168
-	'date_mois_12' => 'decembre',
169
-	'date_mois_2' => 'febrièr',
170
-	'date_mois_3' => 'març',
171
-	'date_mois_4' => 'abril',
172
-	'date_mois_5' => 'mai',
173
-	'date_mois_6' => 'junh',
174
-	'date_mois_7' => 'julh',
175
-	'date_mois_8' => 'agost',
176
-	'date_mois_9' => 'setembre',
177
-	'date_saison_1' => 'ivèrn',
178
-	'date_saison_2' => 'prima',
179
-	'date_saison_3' => 'estiu',
180
-	'date_saison_4' => 'davalada',
181
-	'date_semaines' => 'setmana(s)',
182
-	'dirs_commencer' => 'per començar vertadièrament l’installacion',
183
-	'dirs_preliminaire' => 'Preliminar: <b>Reglar los dreches d’accès</b>',
184
-	'dirs_probleme_droits' => 'Problèma de dreches d’accès',
185
-	'dirs_repertoires_absents' => '<p><b>S’es pas trobat los repertòris seguents: </b></p> <ul>@bad_dirs@.</ul> 
84
+    // D
85
+    'date_aujourdhui' => 'uèi',
86
+    'date_avant_jc' => 'abans lo Crist',
87
+    'date_dans' => 'd’aquí @delai@',
88
+    'date_de_mois_1' => '@j@ de genièr',
89
+    'date_de_mois_10' => '@j@ d’octobre',
90
+    'date_de_mois_11' => '@j@ de novembre',
91
+    'date_de_mois_12' => '@j@ de decembre',
92
+    'date_de_mois_2' => '@j@ de febrièr',
93
+    'date_de_mois_3' => '@j@ de març',
94
+    'date_de_mois_4' => '@j@ d’abril',
95
+    'date_de_mois_5' => '@j@ de mai',
96
+    'date_de_mois_6' => '@j@ de junh',
97
+    'date_de_mois_7' => '@j@ de julh',
98
+    'date_de_mois_8' => '@j@ d’agost',
99
+    'date_de_mois_9' => '@j@ de setembre',
100
+    'date_demain' => 'deman',
101
+    'date_fmt_heures_minutes' => '@h@h@m@min',
102
+    'date_fmt_jour_heure' => '@jour@ a @heure@',
103
+    'date_fmt_jour_mois' => '@jourmois@',
104
+    'date_fmt_jour_mois_annee' => '@jourmois@ de @annee@',
105
+    'date_fmt_mois_annee' => '@nommois@ de @annee@',
106
+    'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
107
+    'date_heures' => 'oras',
108
+    'date_hier' => 'ièr',
109
+    'date_il_y_a' => 'fa @delai@',
110
+    'date_jnum1' => '1r',
111
+    'date_jnum10' => '10',
112
+    'date_jnum11' => '11',
113
+    'date_jnum12' => '12',
114
+    'date_jnum13' => '13',
115
+    'date_jnum14' => '14',
116
+    'date_jnum15' => '15',
117
+    'date_jnum16' => '16',
118
+    'date_jnum17' => '17',
119
+    'date_jnum18' => '18',
120
+    'date_jnum19' => '19',
121
+    'date_jnum2' => '2',
122
+    'date_jnum20' => '20',
123
+    'date_jnum21' => '21',
124
+    'date_jnum22' => '22',
125
+    'date_jnum23' => '23',
126
+    'date_jnum24' => '24',
127
+    'date_jnum25' => '25',
128
+    'date_jnum26' => '26',
129
+    'date_jnum27' => '27',
130
+    'date_jnum28' => '28',
131
+    'date_jnum29' => '29',
132
+    'date_jnum3' => '3',
133
+    'date_jnum30' => '30',
134
+    'date_jnum31' => '31',
135
+    'date_jnum4' => '4',
136
+    'date_jnum5' => '5',
137
+    'date_jnum6' => '6',
138
+    'date_jnum7' => '7',
139
+    'date_jnum8' => '8',
140
+    'date_jnum9' => '9',
141
+    'date_jour_1' => 'dimenge',
142
+    'date_jour_1_abbr' => 'dmg.',
143
+    'date_jour_1_initiale' => 'dg.',
144
+    'date_jour_2' => 'diluns',
145
+    'date_jour_2_abbr' => 'dil.',
146
+    'date_jour_2_initiale' => 'dl.',
147
+    'date_jour_3' => 'dimars',
148
+    'date_jour_3_abbr' => 'dmr.',
149
+    'date_jour_3_initiale' => 'dm.',
150
+    'date_jour_4' => 'dimècres',
151
+    'date_jour_4_abbr' => 'dmc.',
152
+    'date_jour_4_initiale' => 'dc.',
153
+    'date_jour_5' => 'dijòus',
154
+    'date_jour_5_abbr' => 'dij.',
155
+    'date_jour_5_initiale' => 'dj.',
156
+    'date_jour_6' => 'divendres',
157
+    'date_jour_6_abbr' => 'div.',
158
+    'date_jour_6_initiale' => 'dv.',
159
+    'date_jour_7' => 'dissabte',
160
+    'date_jour_7_abbr' => 'dis.',
161
+    'date_jour_7_initiale' => 'ds.',
162
+    'date_jours' => 'jorns',
163
+    'date_minutes' => 'minutas',
164
+    'date_mois' => 'mes(es)',
165
+    'date_mois_1' => 'genièr',
166
+    'date_mois_10' => 'octobre',
167
+    'date_mois_11' => 'novembre',
168
+    'date_mois_12' => 'decembre',
169
+    'date_mois_2' => 'febrièr',
170
+    'date_mois_3' => 'març',
171
+    'date_mois_4' => 'abril',
172
+    'date_mois_5' => 'mai',
173
+    'date_mois_6' => 'junh',
174
+    'date_mois_7' => 'julh',
175
+    'date_mois_8' => 'agost',
176
+    'date_mois_9' => 'setembre',
177
+    'date_saison_1' => 'ivèrn',
178
+    'date_saison_2' => 'prima',
179
+    'date_saison_3' => 'estiu',
180
+    'date_saison_4' => 'davalada',
181
+    'date_semaines' => 'setmana(s)',
182
+    'dirs_commencer' => 'per començar vertadièrament l’installacion',
183
+    'dirs_preliminaire' => 'Preliminar: <b>Reglar los dreches d’accès</b>',
184
+    'dirs_probleme_droits' => 'Problèma de dreches d’accès',
185
+    'dirs_repertoires_absents' => '<p><b>S’es pas trobat los repertòris seguents: </b></p> <ul>@bad_dirs@.</ul> 
186 186
   <p>Se pòt que venga d’un problèma de majusculas o minusculas mal mesas.
187 187
   Verificatz que las minusculas e majusculas d’aqueles repertòris correspondan ben amb çò afichat
188 188
   çai subre; s’es pas lo cas, tornatz nommar los repertòris amb vòstre logicial FTP en corregir l’error.</p>
189 189
   <p>Un còp qu’auretz fach aquò, poiretz ',
190
-	'dirs_repertoires_suivants' => '<p><b>Los repertòris seguents son pas accessibles en escritura: </b></p><ul>@bad_dirs@.</ul> </b>
190
+    'dirs_repertoires_suivants' => '<p><b>Los repertòris seguents son pas accessibles en escritura: </b></p><ul>@bad_dirs@.</ul> </b>
191 191
   <p>Per adobar aquò, utilizatz vòstre client FTP per tal de reglar los dreches d’accès de cadun
192 192
   d’aqueles repertòris. La guida d’installacion explica en detalh cossí cal procedir.</p>
193 193
   <p>Tre qu’auretz facha aquela manipulacion, poiretz ',
194
-	'double_occurrence' => 'Dobla ocurréncia', # MODIF
194
+    'double_occurrence' => 'Dobla ocurréncia', # MODIF
195 195
 
196
-	// E
197
-	'envoi_via_le_site' => 'Mandadís amb lo biais del sit web',
198
-	'erreur' => 'Error',
199
-	'erreur_balise_non_fermee' => 'darrièra balisa non tampada :',
200
-	'erreur_texte' => 'error(s)',
196
+    // E
197
+    'envoi_via_le_site' => 'Mandadís amb lo biais del sit web',
198
+    'erreur' => 'Error',
199
+    'erreur_balise_non_fermee' => 'darrièra balisa non tampada :',
200
+    'erreur_texte' => 'error(s)',
201 201
 
202
-	// F
203
-	'fichier_introuvable' => 'S’es pas pogut trobar lo fichièr @fichier@.', # MODIF
204
-	'form_deja_inscrit' => 'Sètz ja inscrich(a).',
205
-	'form_email_non_valide' => 'Vòstra adreiça e-mail es pas valida.',
206
-	'form_forum_access_refuse' => 'Podètz pas mai accedir a aquel sit.',
207
-	'form_forum_bonjour' => 'Bonjorn @nom@,,',
208
-	'form_forum_email_deja_enregistre' => 'Aquela adreiça e-mail ja es registrada, adoncas podètz utilizar vòstre mot de santa Clara costumièr.',
209
-	'form_forum_identifiant_mail' => 'Vos avèm mandat vòstre identificant novèl per e-mail.',
210
-	'form_forum_identifiants' => 'Identificants personals',
211
-	'form_forum_indiquer_nom_email' => 'Indicatz aquí vòstre nom e vòstra adreiça e-mail. Vòstre identificant personal arribarà lèu-lèu, per e-mail.',
212
-	'form_forum_login' => 'login :',
213
-	'form_forum_message_auto' => '(aquò’s un messatge automatic)',
214
-	'form_forum_pass' => 'mot de santa Clara :',
215
-	'form_forum_probleme_mail' => 'Problèma d’e-mail: se pòt pas mandar l’identificant.',
216
-	'form_forum_voici1' => 'Vaicí vòstres identificants per poder participar a la vida
202
+    // F
203
+    'fichier_introuvable' => 'S’es pas pogut trobar lo fichièr @fichier@.', # MODIF
204
+    'form_deja_inscrit' => 'Sètz ja inscrich(a).',
205
+    'form_email_non_valide' => 'Vòstra adreiça e-mail es pas valida.',
206
+    'form_forum_access_refuse' => 'Podètz pas mai accedir a aquel sit.',
207
+    'form_forum_bonjour' => 'Bonjorn @nom@,,',
208
+    'form_forum_email_deja_enregistre' => 'Aquela adreiça e-mail ja es registrada, adoncas podètz utilizar vòstre mot de santa Clara costumièr.',
209
+    'form_forum_identifiant_mail' => 'Vos avèm mandat vòstre identificant novèl per e-mail.',
210
+    'form_forum_identifiants' => 'Identificants personals',
211
+    'form_forum_indiquer_nom_email' => 'Indicatz aquí vòstre nom e vòstra adreiça e-mail. Vòstre identificant personal arribarà lèu-lèu, per e-mail.',
212
+    'form_forum_login' => 'login :',
213
+    'form_forum_message_auto' => '(aquò’s un messatge automatic)',
214
+    'form_forum_pass' => 'mot de santa Clara :',
215
+    'form_forum_probleme_mail' => 'Problèma d’e-mail: se pòt pas mandar l’identificant.',
216
+    'form_forum_voici1' => 'Vaicí vòstres identificants per poder participar a la vida
217 217
 del sit "@nom_site_spip@" (@adresse_site@) :',
218
-	'form_forum_voici2' => 'Vaquí vòstres identificants per prepausar d’articles 
218
+    'form_forum_voici2' => 'Vaquí vòstres identificants per prepausar d’articles 
219 219
  sul sit "@nom_site_spip@" (@adresse_login@) :',
220
-	'form_indiquer_email' => 'Volgatz indicar vòstra adreiça e-mail.',
221
-	'form_indiquer_nom' => 'Volgatz indicar vòstre nom.',
222
-	'form_indiquer_nom_site' => 'Volgatz indicar lo nom de vòstre sit.',
223
-	'form_pet_deja_enregistre' => 'Ja aquel sit es registrat',
224
-	'form_pet_signature_pasprise' => 'Vòstra signatura es pas presa en compte.',
225
-	'form_prop_confirmer_envoi' => 'Confirmar lo mandadís',
226
-	'form_prop_description' => 'Descripcion/comentari',
227
-	'form_prop_enregistre' => 'Vòstra proposicion es plan registrada, apareisserà en linha tre que los responsables del sit l’auràn validada .',
228
-	'form_prop_envoyer' => 'Mandar un messatge',
229
-	'form_prop_indiquer_email' => 'Volgatz indicar una adreiça e-mail valida',
230
-	'form_prop_indiquer_nom_site' => 'Volgatz indicar lo nom del sit.',
231
-	'form_prop_indiquer_sujet' => 'Volgatz indicar un subjècte',
232
-	'form_prop_message_envoye' => 'Messatge mandat',
233
-	'form_prop_non_enregistre' => 'Vòstra proposicion es pas estada registrada.',
234
-	'form_prop_sujet' => 'Subjècte',
235
-	'form_prop_url_site' => 'Adreiça (URL) del sit', # MODIF
236
-	'forum_non_inscrit' => 'Siá sètz pas inscrich(a), siá avètz fach una error d’adreiça o de mot de santa Clara. ',
237
-	'forum_par_auteur' => 'per @auteur@',
238
-	'forum_titre_erreur' => 'Error...',
220
+    'form_indiquer_email' => 'Volgatz indicar vòstra adreiça e-mail.',
221
+    'form_indiquer_nom' => 'Volgatz indicar vòstre nom.',
222
+    'form_indiquer_nom_site' => 'Volgatz indicar lo nom de vòstre sit.',
223
+    'form_pet_deja_enregistre' => 'Ja aquel sit es registrat',
224
+    'form_pet_signature_pasprise' => 'Vòstra signatura es pas presa en compte.',
225
+    'form_prop_confirmer_envoi' => 'Confirmar lo mandadís',
226
+    'form_prop_description' => 'Descripcion/comentari',
227
+    'form_prop_enregistre' => 'Vòstra proposicion es plan registrada, apareisserà en linha tre que los responsables del sit l’auràn validada .',
228
+    'form_prop_envoyer' => 'Mandar un messatge',
229
+    'form_prop_indiquer_email' => 'Volgatz indicar una adreiça e-mail valida',
230
+    'form_prop_indiquer_nom_site' => 'Volgatz indicar lo nom del sit.',
231
+    'form_prop_indiquer_sujet' => 'Volgatz indicar un subjècte',
232
+    'form_prop_message_envoye' => 'Messatge mandat',
233
+    'form_prop_non_enregistre' => 'Vòstra proposicion es pas estada registrada.',
234
+    'form_prop_sujet' => 'Subjècte',
235
+    'form_prop_url_site' => 'Adreiça (URL) del sit', # MODIF
236
+    'forum_non_inscrit' => 'Siá sètz pas inscrich(a), siá avètz fach una error d’adreiça o de mot de santa Clara. ',
237
+    'forum_par_auteur' => 'per @auteur@',
238
+    'forum_titre_erreur' => 'Error...',
239 239
 
240
-	// I
241
-	'ical_texte_rss_articles' => 'Lo fichièr "backend" dels articles d’aqueste sit se tròba a l’adreiça:',
242
-	'ical_texte_rss_articles2' => 'Atanben podètz obténer de fichièrs "backend" pels articles de cada rubrica del sit:',
243
-	'ical_texte_rss_breves' => 'Existisson mai d’un fichièr contenent las brèvas del sit. En precisar un numèro de rubrica,  obtendretz sonque las brèvas de la rubrica aquela.',
244
-	'icone_a_suivre' => 'De seguir',
245
-	'icone_admin_site' => 'Administracion del sit',
246
-	'icone_agenda' => 'Agenda',
247
-	'icone_aide_ligne' => 'Ajuda',
248
-	'icone_articles' => 'Articles',
249
-	'icone_auteurs' => 'Autors',
250
-	'icone_brouteur' => 'Navigacion rapida',
251
-	'icone_configuration_site' => 'Configuracion',
252
-	'icone_configurer_site' => 'Configurar vòstre sit',
253
-	'icone_creer_nouvel_auteur' => 'Crear un autor nòu',
254
-	'icone_creer_rubrique' => 'Crear una rubrica',
255
-	'icone_creer_sous_rubrique' => 'Crear una sosrubrica',
256
-	'icone_deconnecter' => 'Se desconnectar',
257
-	'icone_discussions' => 'Discussions',
258
-	'icone_doc_rubrique' => 'Documents de las rubricas',
259
-	'icone_ecrire_article' => 'Escriure un article nòu',
260
-	'icone_edition_site' => 'Edicion',
261
-	'icone_gestion_langues' => 'Gestion de las lengas',
262
-	'icone_informations_personnelles' => 'Informacions personalas',
263
-	'icone_interface_complet' => 'Interfàcia completa',
264
-	'icone_interface_simple' => 'Interfàcia simplificada',
265
-	'icone_maintenance_site' => 'Mantenença del sit',
266
-	'icone_messagerie_personnelle' => 'Messatjariá personala',
267
-	'icone_repartition_debut' => 'Afichar la reparticion dempuèi la començança',
268
-	'icone_rubriques' => 'Rubricas',
269
-	'icone_sauver_site' => 'Salvagarda del sit',
270
-	'icone_site_entier' => 'Tot lo sit ',
271
-	'icone_sites_references' => 'Sits referenciats',
272
-	'icone_statistiques' => 'Estadisticas del sit',
273
-	'icone_suivi_activite' => 'Seguir la vida del sit',
274
-	'icone_suivi_actualite' => 'Evolucion del sit',
275
-	'icone_suivi_pettions' => 'Seguir/gerir las peticions',
276
-	'icone_suivi_revisions' => 'Modificacions dels articles',
277
-	'icone_supprimer_document' => 'Suprimir aquel document',
278
-	'icone_supprimer_image' => 'Suprimir aquel imatge',
279
-	'icone_tous_articles' => 'Totes vòstres articles ',
280
-	'icone_tous_auteur' => 'Totes los autors ',
281
-	'icone_visiter_site' => 'Vesitar', # MODIF
282
-	'icone_voir_en_ligne' => 'Veire en linha',
283
-	'img_indisponible' => 'imatge indisponible',
284
-	'impossible' => 'impossible',
285
-	'info_a_suivre' => 'DE SEGUIR>>',
286
-	'info_acces_interdit' => 'Accès proïbit',
287
-	'info_acces_refuse' => 'Accès refusat',
288
-	'info_action' => 'Accion : @action@',
289
-	'info_administrer_rubriques' => 'Podètz administrar aquela rubrica e sas sosrubricas',
290
-	'info_adresse_non_indiquee' => 'Avètz pas indicat l’adreiça de testar !',
291
-	'info_aide' => 'AJUDA :',
292
-	'info_ajouter_mot' => 'Apondre aquel mot',
293
-	'info_annonce' => 'ANONCI',
294
-	'info_annonces_generales' => 'Anoncis generals:',
295
-	'info_article_propose' => 'Article prepausat',
296
-	'info_article_publie' => 'Article publicat',
297
-	'info_article_redaction' => 'Article en cors de redaccion',
298
-	'info_article_refuse' => 'Article refusat',
299
-	'info_article_supprime' => 'Article suprimit',
300
-	'info_articles' => 'Articles',
301
-	'info_articles_a_valider' => 'Los articles de validar',
302
-	'info_articles_proposes' => 'Articles prepausats',
303
-	'info_auteurs_nombre' => 'autor(s)',
304
-	'info_authentification_ftp' => 'autentificacion (per FTP).',
305
-	'info_breves_2' => 'brèvas',
306
-	'info_connexion_refusee' => 'Connexion refusada',
307
-	'info_contact_developpeur' => 'Volgatz contactar un desvolopaire.',
308
-	'info_contenance' => 'Aquel sit conten:',
309
-	'info_contribution' => 'Contribucions de forum', # MODIF
310
-	'info_copyright' => '@spip@ es un logicial liure distribuit @lien_gpl@.',
311
-	'info_copyright_doc' => ' Per mai d’informacions, veire lo sit <a href="@spipnet@">http://www.spip.net/oc</a>.', # MODIF
312
-	'info_copyright_gpl' => 'jos licéncia GPL',
313
-	'info_cours_edition' => 'Vòstres articles en cors de redaccion', # MODIF
314
-	'info_creer_repertoire' => 'Volgatz crear un fichièr o un repertòri nommat',
315
-	'info_creer_repertoire_2' => 'dintre lo sosrepertòri   <b>@repertoire@</b>, puèi:',
316
-	'info_creer_vignette' => 'creacion automatica de la vinheta',
317
-	'info_deplier' => 'Desplegar',
318
-	'info_descriptif_nombre' => 'descriptiu(s) :',
319
-	'info_description' => 'Descripcion :',
320
-	'info_description_2' => 'Descripcion :',
321
-	'info_dimension' => 'Dimensions :',
322
-	'info_ecire_message_prive' => 'Escriure un messatge privat',
323
-	'info_email_invalide' => 'Adreiça e-mail invalida',
324
-	'info_en_cours_validation' => 'Vòstres articles en cors de redaccion',
325
-	'info_en_ligne' => 'Ara en linha:',
326
-	'info_envoyer_message_prive' => 'Mandar un messatge privat a aquel autor',
327
-	'info_erreur_requete' => 'Error dins la requista',
328
-	'info_erreur_squelette2' => 'Ges d’esqueleta <b>@fichier@</b> es pas disponibla...',
329
-	'info_erreur_systeme' => 'Error sistèma (errno @errsys@)',
330
-	'info_erreur_systeme2' => 'Lo disc dur es benlèu plen, o la basa de donadas degalhada.<br />
240
+    // I
241
+    'ical_texte_rss_articles' => 'Lo fichièr "backend" dels articles d’aqueste sit se tròba a l’adreiça:',
242
+    'ical_texte_rss_articles2' => 'Atanben podètz obténer de fichièrs "backend" pels articles de cada rubrica del sit:',
243
+    'ical_texte_rss_breves' => 'Existisson mai d’un fichièr contenent las brèvas del sit. En precisar un numèro de rubrica,  obtendretz sonque las brèvas de la rubrica aquela.',
244
+    'icone_a_suivre' => 'De seguir',
245
+    'icone_admin_site' => 'Administracion del sit',
246
+    'icone_agenda' => 'Agenda',
247
+    'icone_aide_ligne' => 'Ajuda',
248
+    'icone_articles' => 'Articles',
249
+    'icone_auteurs' => 'Autors',
250
+    'icone_brouteur' => 'Navigacion rapida',
251
+    'icone_configuration_site' => 'Configuracion',
252
+    'icone_configurer_site' => 'Configurar vòstre sit',
253
+    'icone_creer_nouvel_auteur' => 'Crear un autor nòu',
254
+    'icone_creer_rubrique' => 'Crear una rubrica',
255
+    'icone_creer_sous_rubrique' => 'Crear una sosrubrica',
256
+    'icone_deconnecter' => 'Se desconnectar',
257
+    'icone_discussions' => 'Discussions',
258
+    'icone_doc_rubrique' => 'Documents de las rubricas',
259
+    'icone_ecrire_article' => 'Escriure un article nòu',
260
+    'icone_edition_site' => 'Edicion',
261
+    'icone_gestion_langues' => 'Gestion de las lengas',
262
+    'icone_informations_personnelles' => 'Informacions personalas',
263
+    'icone_interface_complet' => 'Interfàcia completa',
264
+    'icone_interface_simple' => 'Interfàcia simplificada',
265
+    'icone_maintenance_site' => 'Mantenença del sit',
266
+    'icone_messagerie_personnelle' => 'Messatjariá personala',
267
+    'icone_repartition_debut' => 'Afichar la reparticion dempuèi la començança',
268
+    'icone_rubriques' => 'Rubricas',
269
+    'icone_sauver_site' => 'Salvagarda del sit',
270
+    'icone_site_entier' => 'Tot lo sit ',
271
+    'icone_sites_references' => 'Sits referenciats',
272
+    'icone_statistiques' => 'Estadisticas del sit',
273
+    'icone_suivi_activite' => 'Seguir la vida del sit',
274
+    'icone_suivi_actualite' => 'Evolucion del sit',
275
+    'icone_suivi_pettions' => 'Seguir/gerir las peticions',
276
+    'icone_suivi_revisions' => 'Modificacions dels articles',
277
+    'icone_supprimer_document' => 'Suprimir aquel document',
278
+    'icone_supprimer_image' => 'Suprimir aquel imatge',
279
+    'icone_tous_articles' => 'Totes vòstres articles ',
280
+    'icone_tous_auteur' => 'Totes los autors ',
281
+    'icone_visiter_site' => 'Vesitar', # MODIF
282
+    'icone_voir_en_ligne' => 'Veire en linha',
283
+    'img_indisponible' => 'imatge indisponible',
284
+    'impossible' => 'impossible',
285
+    'info_a_suivre' => 'DE SEGUIR>>',
286
+    'info_acces_interdit' => 'Accès proïbit',
287
+    'info_acces_refuse' => 'Accès refusat',
288
+    'info_action' => 'Accion : @action@',
289
+    'info_administrer_rubriques' => 'Podètz administrar aquela rubrica e sas sosrubricas',
290
+    'info_adresse_non_indiquee' => 'Avètz pas indicat l’adreiça de testar !',
291
+    'info_aide' => 'AJUDA :',
292
+    'info_ajouter_mot' => 'Apondre aquel mot',
293
+    'info_annonce' => 'ANONCI',
294
+    'info_annonces_generales' => 'Anoncis generals:',
295
+    'info_article_propose' => 'Article prepausat',
296
+    'info_article_publie' => 'Article publicat',
297
+    'info_article_redaction' => 'Article en cors de redaccion',
298
+    'info_article_refuse' => 'Article refusat',
299
+    'info_article_supprime' => 'Article suprimit',
300
+    'info_articles' => 'Articles',
301
+    'info_articles_a_valider' => 'Los articles de validar',
302
+    'info_articles_proposes' => 'Articles prepausats',
303
+    'info_auteurs_nombre' => 'autor(s)',
304
+    'info_authentification_ftp' => 'autentificacion (per FTP).',
305
+    'info_breves_2' => 'brèvas',
306
+    'info_connexion_refusee' => 'Connexion refusada',
307
+    'info_contact_developpeur' => 'Volgatz contactar un desvolopaire.',
308
+    'info_contenance' => 'Aquel sit conten:',
309
+    'info_contribution' => 'Contribucions de forum', # MODIF
310
+    'info_copyright' => '@spip@ es un logicial liure distribuit @lien_gpl@.',
311
+    'info_copyright_doc' => ' Per mai d’informacions, veire lo sit <a href="@spipnet@">http://www.spip.net/oc</a>.', # MODIF
312
+    'info_copyright_gpl' => 'jos licéncia GPL',
313
+    'info_cours_edition' => 'Vòstres articles en cors de redaccion', # MODIF
314
+    'info_creer_repertoire' => 'Volgatz crear un fichièr o un repertòri nommat',
315
+    'info_creer_repertoire_2' => 'dintre lo sosrepertòri   <b>@repertoire@</b>, puèi:',
316
+    'info_creer_vignette' => 'creacion automatica de la vinheta',
317
+    'info_deplier' => 'Desplegar',
318
+    'info_descriptif_nombre' => 'descriptiu(s) :',
319
+    'info_description' => 'Descripcion :',
320
+    'info_description_2' => 'Descripcion :',
321
+    'info_dimension' => 'Dimensions :',
322
+    'info_ecire_message_prive' => 'Escriure un messatge privat',
323
+    'info_email_invalide' => 'Adreiça e-mail invalida',
324
+    'info_en_cours_validation' => 'Vòstres articles en cors de redaccion',
325
+    'info_en_ligne' => 'Ara en linha:',
326
+    'info_envoyer_message_prive' => 'Mandar un messatge privat a aquel autor',
327
+    'info_erreur_requete' => 'Error dins la requista',
328
+    'info_erreur_squelette2' => 'Ges d’esqueleta <b>@fichier@</b> es pas disponibla...',
329
+    'info_erreur_systeme' => 'Error sistèma (errno @errsys@)',
330
+    'info_erreur_systeme2' => 'Lo disc dur es benlèu plen, o la basa de donadas degalhada.<br />
331 331
 <span style="color:red;">Assajatz de <a href=\'@script@\'>reparar la basa</a>, o contactatz vòstre albergador.</span>',
332
-	'info_fini' => 'Es acabat !',
333
-	'info_format_image' => 'Formats d’imatges que se pòdon utilizar per crear de vinhetas: @gd_formats@.',
334
-	'info_format_non_defini' => 'format non definit',
335
-	'info_grand_ecran' => 'Ecran grand',
336
-	'info_image_aide' => 'AJUDA',
337
-	'info_image_process_titre' => 'Metòde de fabricacion de las vinhetas',
338
-	'info_impossible_lire_page' => '<b>Error!</b> Impossible de legir la pagina <tt><html>@test_proxy@</html></tt> a travèrs del proxy <tt>',
339
-	'info_installation_systeme_publication' => 'Installacion del sistèma de publicacion...',
340
-	'info_installer_documents' => 'Podètz installar automaticament totes los documents contenguts dins lo repertòri @upload@.',
341
-	'info_installer_ftp' => 'Coma administrator, podètz installar (per FTP) de fichièrs dins lo repertòri @upload@,  puèi los  seleccionar dirèctament aicí.',
342
-	'info_installer_images' => 'Podètz installar d’imatges als formats JPEG, GIF e PNG.',
343
-	'info_installer_images_dossier' => 'Installar d’imatges dins lo reprtòri @upload@ per los poder seleccionar aicí.',
344
-	'info_interface_complete' => 'Interfàcia completa',
345
-	'info_interface_simple' => 'Interfàcia simplificada',
346
-	'info_joindre_document_article' => 'Podètz jónher a aquel article de documents de la mena de',
347
-	'info_joindre_document_rubrique' => 'Podètz apondre a aquela rubrica de documents de la mena de',
348
-	'info_joindre_documents_article' => 'Podètz jónher a aquel article de documents de la mena de:',
349
-	'info_l_article' => 'l’article',
350
-	'info_la_breve' => 'la brèva',
351
-	'info_la_rubrique' => 'la rubrica',
352
-	'info_langue_principale' => 'Lenga majorala del sit',
353
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixèls',
354
-	'info_les_auteurs_1' => 'per @les_auteurs@ ',
355
-	'info_logo_format_interdit' => 'Los lògos de formats @formats@ son sols autorizats.',
356
-	'info_logo_max_poids' => 'Los lògos an de far mens de @maxi@ (aqueste fichièr fa @actuel@).',
357
-	'info_mail_fournisseur' => '[email protected]',
358
-	'info_message_2' => 'MESSATGE',
359
-	'info_message_supprime' => 'MESSATGE SUPRIMIT',
360
-	'info_mise_en_ligne' => 'Data de mesa en linha:',
361
-	'info_modification_parametres_securite' => 'modificacions dels paramètres de seguretat',
362
-	'info_mois_courant' => 'Dins lo corrent del mes:',
363
-	'info_mot_cle_ajoute' => 'S’es apondut lo mot clau seguent a ',
364
-	'info_multi_herit' => 'Lenga predefinida',
365
-	'info_multi_langues_soulignees' => 'Las <u>lengas solinhadas</u> benefícian d’una revirada de totes los tèxtes de l’interfàcia. Se seleccionatz aquelas lengas, fòrça elements del sit public (datas, formularis) se reviraràn automaticament. Per las lengas non solinhadas, aqueles elements apareisseràn dins la lenga principala del sit.', # MODIF
366
-	'info_multilinguisme' => 'Multilingüisme',
367
-	'info_nom_non_utilisateurs_connectes' => 'Vòstre nom apareis pas dins la tièra dels utilizaires connectats.',
368
-	'info_nom_utilisateurs_connectes' => 'Lo vòstre nom apareis dins la tièra dels utilizaires connectats.',
369
-	'info_nombre_en_ligne' => 'Ara en linha:',
370
-	'info_non_resultat' => 'Pas cap de resultat per "@cherche_mot@"',
371
-	'info_non_utilisation_messagerie' => 'Utilizatz pas la messatjariá intèrna d’aquel sit.',
372
-	'info_nouveau_message' => 'AVÈTZ UN MESSATGE NÒU',
373
-	'info_nouveaux_messages' => 'AVÈTZ @total_messages@ MESSATGES NÒUS',
374
-	'info_numero_abbreviation' => 'N° ',
375
-	'info_pense_bete' => 'MEMENTO',
376
-	'info_petit_ecran' => 'Ecran pichòt ',
377
-	'info_pixels' => 'pixèls',
378
-	'info_plusieurs_mots_trouves' => 'Mai d’un mot clau trobat per "@cherche_mot@" :',
379
-	'info_portfolio_automatique' => 'Pòrtfòlio automatic:',
380
-	'info_premier_resultat' => '[@debut_limit@ primièrs resultats de @total@]',
381
-	'info_premier_resultat_sur' => ' [@debut_limit@ primièrs resultats de @total@]',
382
-	'info_propose_1' => '[@nom_site_spip@] Prepausa: @titre@',
383
-	'info_propose_2' => 'Article prepausat
332
+    'info_fini' => 'Es acabat !',
333
+    'info_format_image' => 'Formats d’imatges que se pòdon utilizar per crear de vinhetas: @gd_formats@.',
334
+    'info_format_non_defini' => 'format non definit',
335
+    'info_grand_ecran' => 'Ecran grand',
336
+    'info_image_aide' => 'AJUDA',
337
+    'info_image_process_titre' => 'Metòde de fabricacion de las vinhetas',
338
+    'info_impossible_lire_page' => '<b>Error!</b> Impossible de legir la pagina <tt><html>@test_proxy@</html></tt> a travèrs del proxy <tt>',
339
+    'info_installation_systeme_publication' => 'Installacion del sistèma de publicacion...',
340
+    'info_installer_documents' => 'Podètz installar automaticament totes los documents contenguts dins lo repertòri @upload@.',
341
+    'info_installer_ftp' => 'Coma administrator, podètz installar (per FTP) de fichièrs dins lo repertòri @upload@,  puèi los  seleccionar dirèctament aicí.',
342
+    'info_installer_images' => 'Podètz installar d’imatges als formats JPEG, GIF e PNG.',
343
+    'info_installer_images_dossier' => 'Installar d’imatges dins lo reprtòri @upload@ per los poder seleccionar aicí.',
344
+    'info_interface_complete' => 'Interfàcia completa',
345
+    'info_interface_simple' => 'Interfàcia simplificada',
346
+    'info_joindre_document_article' => 'Podètz jónher a aquel article de documents de la mena de',
347
+    'info_joindre_document_rubrique' => 'Podètz apondre a aquela rubrica de documents de la mena de',
348
+    'info_joindre_documents_article' => 'Podètz jónher a aquel article de documents de la mena de:',
349
+    'info_l_article' => 'l’article',
350
+    'info_la_breve' => 'la brèva',
351
+    'info_la_rubrique' => 'la rubrica',
352
+    'info_langue_principale' => 'Lenga majorala del sit',
353
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixèls',
354
+    'info_les_auteurs_1' => 'per @les_auteurs@ ',
355
+    'info_logo_format_interdit' => 'Los lògos de formats @formats@ son sols autorizats.',
356
+    'info_logo_max_poids' => 'Los lògos an de far mens de @maxi@ (aqueste fichièr fa @actuel@).',
357
+    'info_mail_fournisseur' => '[email protected]',
358
+    'info_message_2' => 'MESSATGE',
359
+    'info_message_supprime' => 'MESSATGE SUPRIMIT',
360
+    'info_mise_en_ligne' => 'Data de mesa en linha:',
361
+    'info_modification_parametres_securite' => 'modificacions dels paramètres de seguretat',
362
+    'info_mois_courant' => 'Dins lo corrent del mes:',
363
+    'info_mot_cle_ajoute' => 'S’es apondut lo mot clau seguent a ',
364
+    'info_multi_herit' => 'Lenga predefinida',
365
+    'info_multi_langues_soulignees' => 'Las <u>lengas solinhadas</u> benefícian d’una revirada de totes los tèxtes de l’interfàcia. Se seleccionatz aquelas lengas, fòrça elements del sit public (datas, formularis) se reviraràn automaticament. Per las lengas non solinhadas, aqueles elements apareisseràn dins la lenga principala del sit.', # MODIF
366
+    'info_multilinguisme' => 'Multilingüisme',
367
+    'info_nom_non_utilisateurs_connectes' => 'Vòstre nom apareis pas dins la tièra dels utilizaires connectats.',
368
+    'info_nom_utilisateurs_connectes' => 'Lo vòstre nom apareis dins la tièra dels utilizaires connectats.',
369
+    'info_nombre_en_ligne' => 'Ara en linha:',
370
+    'info_non_resultat' => 'Pas cap de resultat per "@cherche_mot@"',
371
+    'info_non_utilisation_messagerie' => 'Utilizatz pas la messatjariá intèrna d’aquel sit.',
372
+    'info_nouveau_message' => 'AVÈTZ UN MESSATGE NÒU',
373
+    'info_nouveaux_messages' => 'AVÈTZ @total_messages@ MESSATGES NÒUS',
374
+    'info_numero_abbreviation' => 'N° ',
375
+    'info_pense_bete' => 'MEMENTO',
376
+    'info_petit_ecran' => 'Ecran pichòt ',
377
+    'info_pixels' => 'pixèls',
378
+    'info_plusieurs_mots_trouves' => 'Mai d’un mot clau trobat per "@cherche_mot@" :',
379
+    'info_portfolio_automatique' => 'Pòrtfòlio automatic:',
380
+    'info_premier_resultat' => '[@debut_limit@ primièrs resultats de @total@]',
381
+    'info_premier_resultat_sur' => ' [@debut_limit@ primièrs resultats de @total@]',
382
+    'info_propose_1' => '[@nom_site_spip@] Prepausa: @titre@',
383
+    'info_propose_2' => 'Article prepausat
384 384
 ---------------',
385
-	'info_propose_3' => 'L’article "@titre@" es prepausat a la publicacion.',
386
-	'info_propose_4' => 'Vos convidam a lo venir consultar e a donar vòstre vejaire',
387
-	'info_propose_5' => 'dins lo forum que li es estacat. Es disponible a l’adreiça:',
388
-	'info_publie_01' => 'L’article "@titre@" es estat validat per @connect_nom@.',
389
-	'info_publie_1' => '[@nom_site_spip@] PUBLICA: @titre@',
390
-	'info_publie_2' => 'Article publicat
385
+    'info_propose_3' => 'L’article "@titre@" es prepausat a la publicacion.',
386
+    'info_propose_4' => 'Vos convidam a lo venir consultar e a donar vòstre vejaire',
387
+    'info_propose_5' => 'dins lo forum que li es estacat. Es disponible a l’adreiça:',
388
+    'info_publie_01' => 'L’article "@titre@" es estat validat per @connect_nom@.',
389
+    'info_publie_1' => '[@nom_site_spip@] PUBLICA: @titre@',
390
+    'info_publie_2' => 'Article publicat
391 391
 --------------',
392
-	'info_rechercher' => 'Cercar',
393
-	'info_rechercher_02' => 'Cercar:',
394
-	'info_remplacer_vignette' => 'Remplaçar la vinheta predefinida per un lògo personalizat:',
395
-	'info_sans_titre_2' => 'sens títol',
396
-	'info_selectionner_fichier' => 'Podètz seleccionar un fichièr del dorsièr @upload@',
397
-	'info_selectionner_fichier_2' => 'Seleccionar un fichièr:',
398
-	'info_supprimer_vignette' => 'suprimir la vinheta',
399
-	'info_symbole_bleu' => 'Lo simbèl <b>blau</b> marca un <b>memento</b>: valent a dire un messatge per vòstre usatge personal.',
400
-	'info_symbole_jaune' => 'Lo simbèl <b>jaune</b> marca un <b>anonci per totes los redactors </b>: los administrators lo pòdon modificar, cada redactor lo pòt veire.',
401
-	'info_symbole_vert' => 'Lo simbèl <b>verd</b> marca los <b>messatges escambiats amb d’autres utilizaires</b> del sit.',
402
-	'info_telecharger_nouveau_logo' => 'Telecargar un lògo nòu:',
403
-	'info_telecharger_ordinateur' => 'Telecargar a partir de vòstre ordenador:',
404
-	'info_tous_resultats_enregistres' => '[totes los resultats son registrats]',
405
-	'info_tout_afficher' => 'O afichar tot',
406
-	'info_travaux_texte' => 'Aquel sit es pas encara configurat. Tornatz mai tard...',
407
-	'info_travaux_titre' => 'Sit en òbras',
408
-	'info_trop_resultat' => 'Tròp de resultats per "@cherche_mot@"; volgatz afinar la recèrca.',
409
-	'info_utilisation_messagerie_interne' => 'Utilizatz la messatjariá intèrna d’aquel sit.',
410
-	'info_valider_lien' => 'validar aquel ligam',
411
-	'info_verifier_image' => ', volgatz verificar que los imatges se sián plan transferits.',
412
-	'info_vignette_defaut' => 'Vinheta predefinida',
413
-	'info_vignette_personnalisee' => 'Vinheta personalizada',
414
-	'info_visite' => 'vesita:',
415
-	'info_vos_rendez_vous' => 'Los vòstres rendètz-vos venents',
416
-	'infos_vos_pense_bete' => 'Vòstres mementos', # MODIF
392
+    'info_rechercher' => 'Cercar',
393
+    'info_rechercher_02' => 'Cercar:',
394
+    'info_remplacer_vignette' => 'Remplaçar la vinheta predefinida per un lògo personalizat:',
395
+    'info_sans_titre_2' => 'sens títol',
396
+    'info_selectionner_fichier' => 'Podètz seleccionar un fichièr del dorsièr @upload@',
397
+    'info_selectionner_fichier_2' => 'Seleccionar un fichièr:',
398
+    'info_supprimer_vignette' => 'suprimir la vinheta',
399
+    'info_symbole_bleu' => 'Lo simbèl <b>blau</b> marca un <b>memento</b>: valent a dire un messatge per vòstre usatge personal.',
400
+    'info_symbole_jaune' => 'Lo simbèl <b>jaune</b> marca un <b>anonci per totes los redactors </b>: los administrators lo pòdon modificar, cada redactor lo pòt veire.',
401
+    'info_symbole_vert' => 'Lo simbèl <b>verd</b> marca los <b>messatges escambiats amb d’autres utilizaires</b> del sit.',
402
+    'info_telecharger_nouveau_logo' => 'Telecargar un lògo nòu:',
403
+    'info_telecharger_ordinateur' => 'Telecargar a partir de vòstre ordenador:',
404
+    'info_tous_resultats_enregistres' => '[totes los resultats son registrats]',
405
+    'info_tout_afficher' => 'O afichar tot',
406
+    'info_travaux_texte' => 'Aquel sit es pas encara configurat. Tornatz mai tard...',
407
+    'info_travaux_titre' => 'Sit en òbras',
408
+    'info_trop_resultat' => 'Tròp de resultats per "@cherche_mot@"; volgatz afinar la recèrca.',
409
+    'info_utilisation_messagerie_interne' => 'Utilizatz la messatjariá intèrna d’aquel sit.',
410
+    'info_valider_lien' => 'validar aquel ligam',
411
+    'info_verifier_image' => ', volgatz verificar que los imatges se sián plan transferits.',
412
+    'info_vignette_defaut' => 'Vinheta predefinida',
413
+    'info_vignette_personnalisee' => 'Vinheta personalizada',
414
+    'info_visite' => 'vesita:',
415
+    'info_vos_rendez_vous' => 'Los vòstres rendètz-vos venents',
416
+    'infos_vos_pense_bete' => 'Vòstres mementos', # MODIF
417 417
 
418
-	// L
419
-	'lien_afficher_icones_seuls' => 'Afichar sonque las icònas',
420
-	'lien_afficher_texte_icones' => 'Afichar las icònas e lo tèxt',
421
-	'lien_afficher_texte_seul' => 'Afichar sonque lo tèxt',
422
-	'lien_liberer' => 'liberar',
423
-	'lien_liberer_tous' => 'liberar aqueles articles', # MODIF
424
-	'lien_nouvea_pense_bete' => 'MEMENTO NÒU',
425
-	'lien_nouveau_message' => 'MESSATGE NÒU',
426
-	'lien_nouvelle_annonce' => 'ANONCI NOVÈL',
427
-	'lien_petitions' => 'PETICION',
428
-	'lien_popularite' => 'popularitat: @popularite@%',
429
-	'lien_racine_site' => 'RAIÇ DEL SIT',
430
-	'lien_reessayer' => 'tornar ensajar',
431
-	'lien_repondre_message' => 'Respondre a aquel messatge',
432
-	'lien_supprimer' => 'suprimir',
433
-	'lien_tout_afficher' => 'O afichar tot',
434
-	'lien_visite_site' => 'vesitar aquel sit',
435
-	'lien_visites' => '@visites@ vesitas',
436
-	'lien_voir_auteur' => 'Veire aquel autor',
437
-	'ligne' => 'Linha',
438
-	'login_acces_prive' => 'accès a l’espaci privat',
439
-	'login_autre_identifiant' => 'se connectar amb un autre identificant',
440
-	'login_cookie_accepte' => 'Volgatz configurar vòstre navigador per que los accèpte (almens per aquel sit).',
441
-	'login_cookie_oblige' => 'Per vos identificar d’un biais segur sus aqueste sit, vos cal acceptar los cookies.',
442
-	'login_deconnexion_ok' => 'Sètz desconnectat/ada.',
443
-	'login_erreur_pass' => 'Error de mot de santa Clara.',
444
-	'login_espace_prive' => 'espaci privat',
445
-	'login_identifiant_inconnu' => 'L’identificant «@login@» es inconegut.',
446
-	'login_login' => 'Login :',
447
-	'login_login2' => 'Login (identificant de connexion al sit) :', # MODIF
448
-	'login_login_pass_incorrect' => '(Login o mot de santa Clara incorrècte.)',
449
-	'login_motpasseoublie' => 'mot de santa Clara oblidat ?',
450
-	'login_non_securise' => 'Atencion, aquel formulari es pas securizat.
418
+    // L
419
+    'lien_afficher_icones_seuls' => 'Afichar sonque las icònas',
420
+    'lien_afficher_texte_icones' => 'Afichar las icònas e lo tèxt',
421
+    'lien_afficher_texte_seul' => 'Afichar sonque lo tèxt',
422
+    'lien_liberer' => 'liberar',
423
+    'lien_liberer_tous' => 'liberar aqueles articles', # MODIF
424
+    'lien_nouvea_pense_bete' => 'MEMENTO NÒU',
425
+    'lien_nouveau_message' => 'MESSATGE NÒU',
426
+    'lien_nouvelle_annonce' => 'ANONCI NOVÈL',
427
+    'lien_petitions' => 'PETICION',
428
+    'lien_popularite' => 'popularitat: @popularite@%',
429
+    'lien_racine_site' => 'RAIÇ DEL SIT',
430
+    'lien_reessayer' => 'tornar ensajar',
431
+    'lien_repondre_message' => 'Respondre a aquel messatge',
432
+    'lien_supprimer' => 'suprimir',
433
+    'lien_tout_afficher' => 'O afichar tot',
434
+    'lien_visite_site' => 'vesitar aquel sit',
435
+    'lien_visites' => '@visites@ vesitas',
436
+    'lien_voir_auteur' => 'Veire aquel autor',
437
+    'ligne' => 'Linha',
438
+    'login_acces_prive' => 'accès a l’espaci privat',
439
+    'login_autre_identifiant' => 'se connectar amb un autre identificant',
440
+    'login_cookie_accepte' => 'Volgatz configurar vòstre navigador per que los accèpte (almens per aquel sit).',
441
+    'login_cookie_oblige' => 'Per vos identificar d’un biais segur sus aqueste sit, vos cal acceptar los cookies.',
442
+    'login_deconnexion_ok' => 'Sètz desconnectat/ada.',
443
+    'login_erreur_pass' => 'Error de mot de santa Clara.',
444
+    'login_espace_prive' => 'espaci privat',
445
+    'login_identifiant_inconnu' => 'L’identificant «@login@» es inconegut.',
446
+    'login_login' => 'Login :',
447
+    'login_login2' => 'Login (identificant de connexion al sit) :', # MODIF
448
+    'login_login_pass_incorrect' => '(Login o mot de santa Clara incorrècte.)',
449
+    'login_motpasseoublie' => 'mot de santa Clara oblidat ?',
450
+    'login_non_securise' => 'Atencion, aquel formulari es pas securizat.
451 451
     Se volètz pas que vòstre mot de santa Clara siá
452 452
    interceptat sul ret, volgatz activar Javascript 
453 453
    dins vòstre navigador e',
454
-	'login_nouvelle_tentative' => 'novèl ensag',
455
-	'login_par_ici' => 'Sètz registrat/ada... per aquí...',
456
-	'login_pass2' => 'Mot de santa Clara :',
457
-	'login_preferez_refuser' => '<b>Se vos agrada mai de refusar los cookies</b>, un autre metòde de connexion (mens securizat) es a vòstra disposicion:',
458
-	'login_recharger' => 'tornar cargar aquela pagina',
459
-	'login_rester_identifie' => 'Demorar identificat qualques jorns', # MODIF
460
-	'login_retour_public' => 'Tornar al sit public',
461
-	'login_retour_site' => 'Tornar al sit public',
462
-	'login_retoursitepublic' => 'tornar al sit public',
463
-	'login_sinscrire' => 's’inscriure', # MODIF
464
-	'login_test_navigateur' => 'Ensag navigador/tornar connectar',
465
-	'login_verifiez_navigateur' => '(ça que la verificatz que vòstre navigador aja pas servat vòstre mot de santa Clara en memòria...)',
454
+    'login_nouvelle_tentative' => 'novèl ensag',
455
+    'login_par_ici' => 'Sètz registrat/ada... per aquí...',
456
+    'login_pass2' => 'Mot de santa Clara :',
457
+    'login_preferez_refuser' => '<b>Se vos agrada mai de refusar los cookies</b>, un autre metòde de connexion (mens securizat) es a vòstra disposicion:',
458
+    'login_recharger' => 'tornar cargar aquela pagina',
459
+    'login_rester_identifie' => 'Demorar identificat qualques jorns', # MODIF
460
+    'login_retour_public' => 'Tornar al sit public',
461
+    'login_retour_site' => 'Tornar al sit public',
462
+    'login_retoursitepublic' => 'tornar al sit public',
463
+    'login_sinscrire' => 's’inscriure', # MODIF
464
+    'login_test_navigateur' => 'Ensag navigador/tornar connectar',
465
+    'login_verifiez_navigateur' => '(ça que la verificatz que vòstre navigador aja pas servat vòstre mot de santa Clara en memòria...)',
466 466
 
467
-	// M
468
-	'masquer_trad' => 'escondre las reviradas',
469
-	'module_fichiers_langues' => 'Fichièrs de lenga',
467
+    // M
468
+    'masquer_trad' => 'escondre las reviradas',
469
+    'module_fichiers_langues' => 'Fichièrs de lenga',
470 470
 
471
-	// N
472
-	'navigateur_pas_redirige' => 'Se vòstre navigador es pas redirigit, clicatz aicí per contunhar.',
473
-	'numero' => 'Numèro',
471
+    // N
472
+    'navigateur_pas_redirige' => 'Se vòstre navigador es pas redirigit, clicatz aicí per contunhar.',
473
+    'numero' => 'Numèro',
474 474
 
475
-	// O
476
-	'occurence' => 'Ocurréncia',
477
-	'onglet_affacer_base' => 'Escafar la basa',
478
-	'onglet_auteur' => 'L’autor',
479
-	'onglet_contenu_site' => 'Contengut del sit',
480
-	'onglet_evolution_visite_mod' => 'Evolucion',
481
-	'onglet_fonctions_avances' => 'Foncions avançadas',
482
-	'onglet_informations_personnelles' => 'Informacions personalas',
483
-	'onglet_interactivite' => 'Interactivitat',
484
-	'onglet_messagerie' => 'Messatjariá',
485
-	'onglet_repartition_rubrique' => 'Reparticion per rubricas',
486
-	'onglet_save_restaur_base' => 'Salvagardar/restaurar la basa',
487
-	'onglet_vider_cache' => 'Vojar l’escondedor',
475
+    // O
476
+    'occurence' => 'Ocurréncia',
477
+    'onglet_affacer_base' => 'Escafar la basa',
478
+    'onglet_auteur' => 'L’autor',
479
+    'onglet_contenu_site' => 'Contengut del sit',
480
+    'onglet_evolution_visite_mod' => 'Evolucion',
481
+    'onglet_fonctions_avances' => 'Foncions avançadas',
482
+    'onglet_informations_personnelles' => 'Informacions personalas',
483
+    'onglet_interactivite' => 'Interactivitat',
484
+    'onglet_messagerie' => 'Messatjariá',
485
+    'onglet_repartition_rubrique' => 'Reparticion per rubricas',
486
+    'onglet_save_restaur_base' => 'Salvagardar/restaurar la basa',
487
+    'onglet_vider_cache' => 'Vojar l’escondedor',
488 488
 
489
-	// P
490
-	'pass_choix_pass' => 'Volgatz causir vòstre mot de santa Clara novèl:',
491
-	'pass_erreur' => 'Error',
492
-	'pass_erreur_acces_refuse' => '<b>Error :</b> podètz pas pus accedir a aquel sit.',
493
-	'pass_erreur_code_inconnu' => '<b>Error :</b> aquel còde correspond pas a cap de vesitaire que pòsca accedir a aquel sit.',
494
-	'pass_erreur_non_enregistre' => '<b>Error:</b> l’adreiça <tt>@email_oubli@</tt> es pas registrada sus aquel sit.',
495
-	'pass_erreur_non_valide' => '<b>Error:</b> aquel e-mail <tt>@email_oubli@</tt> es pas valid!',
496
-	'pass_erreur_probleme_technique' => '<b>Error:</b> pr’amor d’un problèma tecnic, l’e-mail se pòt pas mandar. ',
497
-	'pass_espace_prive_bla' => 'L’espaci privat d’aqueste sit es dobèrt als
489
+    // P
490
+    'pass_choix_pass' => 'Volgatz causir vòstre mot de santa Clara novèl:',
491
+    'pass_erreur' => 'Error',
492
+    'pass_erreur_acces_refuse' => '<b>Error :</b> podètz pas pus accedir a aquel sit.',
493
+    'pass_erreur_code_inconnu' => '<b>Error :</b> aquel còde correspond pas a cap de vesitaire que pòsca accedir a aquel sit.',
494
+    'pass_erreur_non_enregistre' => '<b>Error:</b> l’adreiça <tt>@email_oubli@</tt> es pas registrada sus aquel sit.',
495
+    'pass_erreur_non_valide' => '<b>Error:</b> aquel e-mail <tt>@email_oubli@</tt> es pas valid!',
496
+    'pass_erreur_probleme_technique' => '<b>Error:</b> pr’amor d’un problèma tecnic, l’e-mail se pòt pas mandar. ',
497
+    'pass_espace_prive_bla' => 'L’espaci privat d’aqueste sit es dobèrt als
498 498
   vesitaires que se son inscriches. Un còp registrat/ada,
499 499
   poiretz consultar los articles en cors de redaccion,
500 500
   prepausar d’articles novèls e participar a totes los forums.',
501
-	'pass_forum_bla' => 'Avètz demandat d’intervenir dins un forum
501
+    'pass_forum_bla' => 'Avètz demandat d’intervenir dins un forum
502 502
   reservat als vesitaires registrats.',
503
-	'pass_indiquez_cidessous' => 'Marcatz çai sota l’adreiça e-mail ont
503
+    'pass_indiquez_cidessous' => 'Marcatz çai sota l’adreiça e-mail ont
504 504
  vos registrèretz lo còp passat. 
505 505
    Recebretz un e-mail que vos bailarà lo biais de 
506 506
     tornar trobar vòstre accès.',
507
-	'pass_mail_passcookie' => '(aquò’s un messatge automatic)
507
+    'pass_mail_passcookie' => '(aquò’s un messatge automatic)
508 508
 Per tornar trobar vòstre accès al sit
509 509
 @nom_site_spip@ (@adresse_site@)
510 510
 
@@ -516,126 +516,126 @@  discard block
 block discarded – undo
516 516
 e vos tornar connectar al sit.
517 517
 
518 518
 ',
519
-	'pass_mot_oublie' => 'Mot de santa Clara desmembrat',
520
-	'pass_nouveau_enregistre' => 'Vòstre mot de santa Clara novèl es estat registrat.',
521
-	'pass_nouveau_pass' => 'Mot de santa Clara novèl',
522
-	'pass_ok' => 'D’acòrdi',
523
-	'pass_oubli_mot' => 'Mot de santa Clara desmembrat',
524
-	'pass_quitter_fenetre' => 'Quitar aquesta fenèstra ',
525
-	'pass_rappel_login' => 'Remembrança: vòstre identificant (login) es « @login@ ».',
526
-	'pass_recevoir_mail' => 'Recebretz un e-mail que vos explicarà cossí tornar trobar vòstre accès al sit.', # MODIF
527
-	'pass_retour_public' => 'Tornar al sit public',
528
-	'pass_rien_a_faire_ici' => 'Pas res a faire aicí.',
529
-	'pass_vousinscrire' => 'S’inscriure sus aqueste sit',
530
-	'precedent' => 'precedent',
531
-	'previsualisation' => 'Previsualizacion',
532
-	'previsualiser' => 'Previsualizar',
519
+    'pass_mot_oublie' => 'Mot de santa Clara desmembrat',
520
+    'pass_nouveau_enregistre' => 'Vòstre mot de santa Clara novèl es estat registrat.',
521
+    'pass_nouveau_pass' => 'Mot de santa Clara novèl',
522
+    'pass_ok' => 'D’acòrdi',
523
+    'pass_oubli_mot' => 'Mot de santa Clara desmembrat',
524
+    'pass_quitter_fenetre' => 'Quitar aquesta fenèstra ',
525
+    'pass_rappel_login' => 'Remembrança: vòstre identificant (login) es « @login@ ».',
526
+    'pass_recevoir_mail' => 'Recebretz un e-mail que vos explicarà cossí tornar trobar vòstre accès al sit.', # MODIF
527
+    'pass_retour_public' => 'Tornar al sit public',
528
+    'pass_rien_a_faire_ici' => 'Pas res a faire aicí.',
529
+    'pass_vousinscrire' => 'S’inscriure sus aqueste sit',
530
+    'precedent' => 'precedent',
531
+    'previsualisation' => 'Previsualizacion',
532
+    'previsualiser' => 'Previsualizar',
533 533
 
534
-	// R
535
-	'retour' => 'Tornar',
534
+    // R
535
+    'retour' => 'Tornar',
536 536
 
537
-	// S
538
-	'spip_conforme_dtd' => 'SPIP considèra aquel document coma confòrm a son DOCTYPE :',
539
-	'squelette' => 'esqueleta',
540
-	'squelette_inclus_ligne' => 'esqueleta inclusa, linha',
541
-	'squelette_ligne' => 'esqueleta, linha',
542
-	'stats_visites_et_popularite' => '@visites@ vesitas; popularitat: @popularite@',
543
-	'suivant' => 'seguent',
537
+    // S
538
+    'spip_conforme_dtd' => 'SPIP considèra aquel document coma confòrm a son DOCTYPE :',
539
+    'squelette' => 'esqueleta',
540
+    'squelette_inclus_ligne' => 'esqueleta inclusa, linha',
541
+    'squelette_ligne' => 'esqueleta, linha',
542
+    'stats_visites_et_popularite' => '@visites@ vesitas; popularitat: @popularite@',
543
+    'suivant' => 'seguent',
544 544
 
545
-	// T
546
-	'taille_ko' => '@taille@ Ko',
547
-	'taille_mo' => '@taille@ Mo',
548
-	'taille_octets' => '@taille@ octets',
549
-	'texte_actualite_site_1' => 'Quand vos seretz familharizat/ada amb l’interfàcia, poiretz clicar sus «',
550
-	'texte_actualite_site_2' => 'Interfàcia completa',
551
-	'texte_actualite_site_3' => '" per dobrir mai de possibilitats.',
552
-	'texte_creation_automatique_vignette' => 'La creacion automatica de vinhetas de previsualizacion es activada sus aquel sit. S’installatz a partir d’aquel formulari d’imatges al(s) format(s) @gd_formats@, s’acompanharàn d’una vinheta d’una talha maximala de @taille_preview@ pixèls.',
553
-	'texte_documents_associes' => 'Los documents seguents s’assòcian a l’article,
545
+    // T
546
+    'taille_ko' => '@taille@ Ko',
547
+    'taille_mo' => '@taille@ Mo',
548
+    'taille_octets' => '@taille@ octets',
549
+    'texte_actualite_site_1' => 'Quand vos seretz familharizat/ada amb l’interfàcia, poiretz clicar sus «',
550
+    'texte_actualite_site_2' => 'Interfàcia completa',
551
+    'texte_actualite_site_3' => '" per dobrir mai de possibilitats.',
552
+    'texte_creation_automatique_vignette' => 'La creacion automatica de vinhetas de previsualizacion es activada sus aquel sit. S’installatz a partir d’aquel formulari d’imatges al(s) format(s) @gd_formats@, s’acompanharàn d’una vinheta d’una talha maximala de @taille_preview@ pixèls.',
553
+    'texte_documents_associes' => 'Los documents seguents s’assòcian a l’article,
554 554
  mas s’inserisson pas
555 555
  dirèctament. Segon la compaginacion del sit public,
556 556
  poiràn aparéisser jos forma de documents jonches.',
557
-	'texte_erreur_mise_niveau_base' => 'Error de basa de donadas pendent la mesa a nivèl. L’imatge <b>@fichier@</b> es pas passat (article @id_article@).
557
+    'texte_erreur_mise_niveau_base' => 'Error de basa de donadas pendent la mesa a nivèl. L’imatge <b>@fichier@</b> es pas passat (article @id_article@).
558 558
   Notatz plan aquela referéncia, tornatz ensajar la mesa a
559 559
  nivèl, e verificatz puèi que los imatges aparescan
560 560
  encara dins los articles.',
561
-	'texte_erreur_visiteur' => 'Avètz assajat d’accedir a l’espaci privat amb un identificant qu’o permet pas.',
562
-	'texte_inc_auth_1' => 'Sètz identificat/ada coma
561
+    'texte_erreur_visiteur' => 'Avètz assajat d’accedir a l’espaci privat amb un identificant qu’o permet pas.',
562
+    'texte_inc_auth_1' => 'Sètz identificat/ada coma
563 563
    <b>@auth_login@</b>, mas aquel login existís pas o pas mai dins la basa.
564 564
   Ensajatz de vos', # MODIF
565
-	'texte_inc_auth_2' => 'tornar connectar',
566
-	'texte_inc_auth_3' => ', aprèp qu’auretz quitat eventualament, puèi
565
+    'texte_inc_auth_2' => 'tornar connectar',
566
+    'texte_inc_auth_3' => ', aprèp qu’auretz quitat eventualament, puèi
567 567
   tornat lançar vòstre navigador.',
568
-	'texte_inc_config' => 'Las modificacions fachas dins aquestas paginas influéncian bravament lo
568
+    'texte_inc_config' => 'Las modificacions fachas dins aquestas paginas influéncian bravament lo
569 569
  foncionament de vòstre sit. Vos aconselham d’i intervenir pas tant que siatz pas
570 570
  acostumat/ada al foncionament del sistèma SPIP. <br /><br /><b>
571 571
  En general, se conselha fòrt
572 572
  de daissar la carga d’aquestas paginas al webmèstre principal de vòstre sit.</b>',
573
-	'texte_inc_meta_1' => 'Lo sistèma a rescontrat una error dins l’escritura del fichièr <code>@fichier@</code>.Volgatz, coma administrator/tritz del sit,',
574
-	'texte_inc_meta_2' => 'verificar los dreches d’escritura',
575
-	'texte_inc_meta_3' => 'dins lo repertòri <code>@repertoire@</code>.',
576
-	'texte_statut_en_cours_redaction' => 'en cors de redaccion',
577
-	'texte_statut_poubelle' => 'al bordilhièr',
578
-	'texte_statut_propose_evaluation' => 'prepausat per avaloracion',
579
-	'texte_statut_publie' => 'publicat en linha',
580
-	'texte_statut_refuse' => 'refusat',
581
-	'titre_ajouter_mot_cle' => 'APONDRE UN MOT CLAU:',
582
-	'titre_cadre_raccourcis' => 'ACORCHAS:',
583
-	'titre_changer_couleur_interface' => 'Cambiar la color de l’interfàcia',
584
-	'titre_image_admin_article' => 'Podètz administrar aqueste article',
585
-	'titre_image_administrateur' => 'Administrator',
586
-	'titre_image_aide' => 'D’ajuda subre aquel element',
587
-	'titre_image_auteur_supprime' => 'Autor suprimit',
588
-	'titre_image_redacteur' => 'Redactor sens accès',
589
-	'titre_image_redacteur_02' => 'Redactor',
590
-	'titre_image_visiteur' => 'Vesitaire',
591
-	'titre_joindre_document' => 'JÓNHER UN DOCUMENT',
592
-	'titre_mots_cles' => 'MOTS CLAU',
593
-	'titre_probleme_technique' => 'Atencion: un problèma tecnic (servidor SQL) empacha d’accedir a aquela part del sit. Mercés de vòstra indulgéncia.',
594
-	'titre_publier_document' => 'PUBLICAR UN DOCUMENT DINS AQUELA RUBRICA',
595
-	'titre_statistiques' => 'Estadisticas del sit',
596
-	'titre_titre_document' => 'Títol del document:',
597
-	'trad_reference' => '(article de referéncia)', # MODIF
573
+    'texte_inc_meta_1' => 'Lo sistèma a rescontrat una error dins l’escritura del fichièr <code>@fichier@</code>.Volgatz, coma administrator/tritz del sit,',
574
+    'texte_inc_meta_2' => 'verificar los dreches d’escritura',
575
+    'texte_inc_meta_3' => 'dins lo repertòri <code>@repertoire@</code>.',
576
+    'texte_statut_en_cours_redaction' => 'en cors de redaccion',
577
+    'texte_statut_poubelle' => 'al bordilhièr',
578
+    'texte_statut_propose_evaluation' => 'prepausat per avaloracion',
579
+    'texte_statut_publie' => 'publicat en linha',
580
+    'texte_statut_refuse' => 'refusat',
581
+    'titre_ajouter_mot_cle' => 'APONDRE UN MOT CLAU:',
582
+    'titre_cadre_raccourcis' => 'ACORCHAS:',
583
+    'titre_changer_couleur_interface' => 'Cambiar la color de l’interfàcia',
584
+    'titre_image_admin_article' => 'Podètz administrar aqueste article',
585
+    'titre_image_administrateur' => 'Administrator',
586
+    'titre_image_aide' => 'D’ajuda subre aquel element',
587
+    'titre_image_auteur_supprime' => 'Autor suprimit',
588
+    'titre_image_redacteur' => 'Redactor sens accès',
589
+    'titre_image_redacteur_02' => 'Redactor',
590
+    'titre_image_visiteur' => 'Vesitaire',
591
+    'titre_joindre_document' => 'JÓNHER UN DOCUMENT',
592
+    'titre_mots_cles' => 'MOTS CLAU',
593
+    'titre_probleme_technique' => 'Atencion: un problèma tecnic (servidor SQL) empacha d’accedir a aquela part del sit. Mercés de vòstra indulgéncia.',
594
+    'titre_publier_document' => 'PUBLICAR UN DOCUMENT DINS AQUELA RUBRICA',
595
+    'titre_statistiques' => 'Estadisticas del sit',
596
+    'titre_titre_document' => 'Títol del document:',
597
+    'trad_reference' => '(article de referéncia)', # MODIF
598 598
 
599
-	// Z
600
-	'zbug_balise_b_aval' => ' : balisa B en aval',
601
-	'zbug_boucle' => 'bloca',
602
-	'zbug_boucle_recursive_undef' => 'bloca recursiva non definida', # MODIF
603
-	'zbug_champ_hors_boucle' => 'Camp @champ@ fòra bloca',
604
-	'zbug_champ_hors_motif' => 'Camp @champ@ en defòra d’una bloca de motiu @motif@', # MODIF
605
-	'zbug_code' => 'còde',
606
-	'zbug_critere_inconnu' => 'critèri inconegut @critere@', # MODIF
607
-	'zbug_distant_interdit' => 'extèrne enebit', # MODIF
608
-	'zbug_doublon_table_sans_index' => 'doblons sus una taula sens indèx', # MODIF
609
-	'zbug_erreur_boucle_double' => 'BLOCA@id@: definicion dobla', # MODIF
610
-	'zbug_erreur_boucle_fermant' => 'BLOCA@id@: lo tag barrador manca', # MODIF
611
-	'zbug_erreur_boucle_syntaxe' => 'Sintaxi bloca incorrècta', # MODIF
612
-	'zbug_erreur_compilation' => 'Error de compilacion',
613
-	'zbug_erreur_execution_page' => 'error d’execucion de la pagina', # MODIF
614
-	'zbug_erreur_filtre' => 'Error: filtre <b>« @filtre@ »</b> non definit', # MODIF
615
-	'zbug_erreur_meme_parent' => '{meme_parent} s’aplica sonque a las blocas (FORUMS) o (RUBRIQUES)', # MODIF
616
-	'zbug_erreur_squelette' => 'Error(s) dins l’esqueleta',
617
-	'zbug_info_erreur_squelette' => 'Error subre lo sit',
618
-	'zbug_inversion_ordre_inexistant' => 'inversion d’un òrdre inexistent', # MODIF
619
-	'zbug_pagination_sans_critere' => '#PAGINATION sens critèri {pagination} o emplegat dins una bocla recursiva', # MODIF
620
-	'zbug_parametres_inclus_incorrects' => 'Paramètres d’inclusion incorrèctes', # MODIF
621
-	'zbug_profile' => 'Temps de calcul: @time@',
622
-	'zbug_resultat' => 'resultat',
623
-	'zbug_serveur_indefini' => 'servidor SQL indefinit', # MODIF
624
-	'zbug_table_inconnue' => 'Taula SQL « @table@ » inconeguda',
625
-	'zxml_connus_attributs' => 'atributs coneguts',
626
-	'zxml_de' => 'de',
627
-	'zxml_inconnu_attribut' => 'atribut inconegut',
628
-	'zxml_inconnu_balise' => 'balisa inconeguda',
629
-	'zxml_inconnu_entite' => 'entitat inconeguda',
630
-	'zxml_inconnu_id' => 'ID inconegut',
631
-	'zxml_mais_de' => 'mas de',
632
-	'zxml_non_conforme' => 'es pas confòrm al motiu',
633
-	'zxml_non_fils' => 'es pas un filh de',
634
-	'zxml_nonvide_balise' => 'balisa non voida',
635
-	'zxml_obligatoire_attribut' => 'atribut obligatòri mas absent dins',
636
-	'zxml_succession_fils_incorrecte' => 'succession dels filhs incorrècte',
637
-	'zxml_survoler' => 'susvolar per veire los corrèctes',
638
-	'zxml_valeur_attribut' => 'valor de l’atribut',
639
-	'zxml_vide_balise' => 'balise voida',
640
-	'zxml_vu' => 'vist aperavant'
599
+    // Z
600
+    'zbug_balise_b_aval' => ' : balisa B en aval',
601
+    'zbug_boucle' => 'bloca',
602
+    'zbug_boucle_recursive_undef' => 'bloca recursiva non definida', # MODIF
603
+    'zbug_champ_hors_boucle' => 'Camp @champ@ fòra bloca',
604
+    'zbug_champ_hors_motif' => 'Camp @champ@ en defòra d’una bloca de motiu @motif@', # MODIF
605
+    'zbug_code' => 'còde',
606
+    'zbug_critere_inconnu' => 'critèri inconegut @critere@', # MODIF
607
+    'zbug_distant_interdit' => 'extèrne enebit', # MODIF
608
+    'zbug_doublon_table_sans_index' => 'doblons sus una taula sens indèx', # MODIF
609
+    'zbug_erreur_boucle_double' => 'BLOCA@id@: definicion dobla', # MODIF
610
+    'zbug_erreur_boucle_fermant' => 'BLOCA@id@: lo tag barrador manca', # MODIF
611
+    'zbug_erreur_boucle_syntaxe' => 'Sintaxi bloca incorrècta', # MODIF
612
+    'zbug_erreur_compilation' => 'Error de compilacion',
613
+    'zbug_erreur_execution_page' => 'error d’execucion de la pagina', # MODIF
614
+    'zbug_erreur_filtre' => 'Error: filtre <b>« @filtre@ »</b> non definit', # MODIF
615
+    'zbug_erreur_meme_parent' => '{meme_parent} s’aplica sonque a las blocas (FORUMS) o (RUBRIQUES)', # MODIF
616
+    'zbug_erreur_squelette' => 'Error(s) dins l’esqueleta',
617
+    'zbug_info_erreur_squelette' => 'Error subre lo sit',
618
+    'zbug_inversion_ordre_inexistant' => 'inversion d’un òrdre inexistent', # MODIF
619
+    'zbug_pagination_sans_critere' => '#PAGINATION sens critèri {pagination} o emplegat dins una bocla recursiva', # MODIF
620
+    'zbug_parametres_inclus_incorrects' => 'Paramètres d’inclusion incorrèctes', # MODIF
621
+    'zbug_profile' => 'Temps de calcul: @time@',
622
+    'zbug_resultat' => 'resultat',
623
+    'zbug_serveur_indefini' => 'servidor SQL indefinit', # MODIF
624
+    'zbug_table_inconnue' => 'Taula SQL « @table@ » inconeguda',
625
+    'zxml_connus_attributs' => 'atributs coneguts',
626
+    'zxml_de' => 'de',
627
+    'zxml_inconnu_attribut' => 'atribut inconegut',
628
+    'zxml_inconnu_balise' => 'balisa inconeguda',
629
+    'zxml_inconnu_entite' => 'entitat inconeguda',
630
+    'zxml_inconnu_id' => 'ID inconegut',
631
+    'zxml_mais_de' => 'mas de',
632
+    'zxml_non_conforme' => 'es pas confòrm al motiu',
633
+    'zxml_non_fils' => 'es pas un filh de',
634
+    'zxml_nonvide_balise' => 'balisa non voida',
635
+    'zxml_obligatoire_attribut' => 'atribut obligatòri mas absent dins',
636
+    'zxml_succession_fils_incorrecte' => 'succession dels filhs incorrècte',
637
+    'zxml_survoler' => 'susvolar per veire los corrèctes',
638
+    'zxml_valeur_attribut' => 'valor de l’atribut',
639
+    'zxml_vide_balise' => 'balise voida',
640
+    'zxml_vu' => 'vist aperavant'
641 641
 );
Please login to merge, or discard this patch.
ecrire/lang/spip_fr_fem.php 1 patch
Indentation   +668 added lines, -668 removed lines patch added patch discarded remove patch
@@ -4,247 +4,247 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'access_interface_graphique' => 'Retour à l’interface graphique complète',
14
-	'access_mode_texte' => 'Afficher l’interface textuelle simplifiée',
15
-	'admin_debug' => 'debug',
16
-	'admin_modifier_article' => 'Modifier cet article',
17
-	'admin_modifier_auteur' => 'Modifier cette autrice',
18
-	'admin_modifier_breve' => 'Modifier cette brève',
19
-	'admin_modifier_mot' => 'Modifier ce mot-clé',
20
-	'admin_modifier_rubrique' => 'Modifier cette rubrique',
21
-	'admin_recalculer' => 'Recalculer cette page',
22
-	'afficher_calendrier' => 'Afficher le calendrier',
23
-	'afficher_trad' => 'afficher les traductions',
24
-	'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base SQL vers la version @version@ est impossible, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.',
25
-	'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifiée par ailleurs. La valeur actuelle est :',
26
-	'analyse_xml' => 'Analyse XML',
27
-	'annuler' => 'Annuler',
28
-	'antispam_champ_vide' => 'Veuillez laisser ce champ vide :',
29
-	'articles_recents' => 'Articles les plus récents',
30
-	'attention_champ_mini_nb_caractères' => 'Attention ! @nb@ caractères au minimum',
31
-	'avis_1_erreur_saisie' => 'Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.',
32
-	'avis_archive_incorrect' => 'le fichier archive n’est pas un fichier SPIP',
33
-	'avis_archive_invalide' => 'le fichier archive n’est pas valide',
34
-	'avis_attention' => 'ATTENTION !',
35
-	'avis_champ_incorrect_type_objet' => 'Nom de champ incorrect @name@ pour objet de type @type@',
36
-	'avis_colonne_inexistante' => 'La colonne @col@ n’existe pas',
37
-	'avis_erreur' => 'Erreur : voir ci-dessous',
38
-	'avis_erreur_connexion' => 'Erreur de connexion',
39
-	'avis_erreur_cookie' => 'problème de cookie',
40
-	'avis_erreur_fonction_contexte' => 'Erreur de programmation. Cette fonction ne doit pas être appelée dans ce contexte.',
41
-	'avis_erreur_mysql' => 'Erreur SQL',
42
-	'avis_erreur_sauvegarde' => 'Erreur dans la sauvegarde (@type@ @id_objet@) !',
43
-	'avis_erreur_visiteur' => 'Problème d’accès à l’espace privé',
44
-	'avis_nb_erreurs_saisie' => 'Il y a @nb@ erreurs dans votre saisie, veuillez vérifier les informations.',
12
+    // A
13
+    'access_interface_graphique' => 'Retour à l’interface graphique complète',
14
+    'access_mode_texte' => 'Afficher l’interface textuelle simplifiée',
15
+    'admin_debug' => 'debug',
16
+    'admin_modifier_article' => 'Modifier cet article',
17
+    'admin_modifier_auteur' => 'Modifier cette autrice',
18
+    'admin_modifier_breve' => 'Modifier cette brève',
19
+    'admin_modifier_mot' => 'Modifier ce mot-clé',
20
+    'admin_modifier_rubrique' => 'Modifier cette rubrique',
21
+    'admin_recalculer' => 'Recalculer cette page',
22
+    'afficher_calendrier' => 'Afficher le calendrier',
23
+    'afficher_trad' => 'afficher les traductions',
24
+    'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base SQL vers la version @version@ est impossible, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.',
25
+    'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifiée par ailleurs. La valeur actuelle est :',
26
+    'analyse_xml' => 'Analyse XML',
27
+    'annuler' => 'Annuler',
28
+    'antispam_champ_vide' => 'Veuillez laisser ce champ vide :',
29
+    'articles_recents' => 'Articles les plus récents',
30
+    'attention_champ_mini_nb_caractères' => 'Attention ! @nb@ caractères au minimum',
31
+    'avis_1_erreur_saisie' => 'Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.',
32
+    'avis_archive_incorrect' => 'le fichier archive n’est pas un fichier SPIP',
33
+    'avis_archive_invalide' => 'le fichier archive n’est pas valide',
34
+    'avis_attention' => 'ATTENTION !',
35
+    'avis_champ_incorrect_type_objet' => 'Nom de champ incorrect @name@ pour objet de type @type@',
36
+    'avis_colonne_inexistante' => 'La colonne @col@ n’existe pas',
37
+    'avis_erreur' => 'Erreur : voir ci-dessous',
38
+    'avis_erreur_connexion' => 'Erreur de connexion',
39
+    'avis_erreur_cookie' => 'problème de cookie',
40
+    'avis_erreur_fonction_contexte' => 'Erreur de programmation. Cette fonction ne doit pas être appelée dans ce contexte.',
41
+    'avis_erreur_mysql' => 'Erreur SQL',
42
+    'avis_erreur_sauvegarde' => 'Erreur dans la sauvegarde (@type@ @id_objet@) !',
43
+    'avis_erreur_visiteur' => 'Problème d’accès à l’espace privé',
44
+    'avis_nb_erreurs_saisie' => 'Il y a @nb@ erreurs dans votre saisie, veuillez vérifier les informations.',
45 45
 
46
-	// B
47
-	'barre_a_accent_grave' => 'Insérer un A accent grave majuscule',
48
-	'barre_aide' => 'Utilisez les raccourcis typographiques pour enrichir votre mise en page',
49
-	'barre_e_accent_aigu' => 'Insérer un E accent aigu majuscule',
50
-	'barre_eo' => 'Insérer un E dans l’O',
51
-	'barre_eo_maj' => 'Insérer un E dans l’O majuscule',
52
-	'barre_euro' => 'Insérer le symbole €',
53
-	'barre_gras' => 'Mettre en {{gras}}',
54
-	'barre_guillemets' => 'Entourer de « guillemets »',
55
-	'barre_guillemets_simples' => 'Entourer de “guillemets de second niveau”',
56
-	'barre_intertitre' => 'Transformer en {{{intertitre}}}',
57
-	'barre_italic' => 'Mettre en {italique}',
58
-	'barre_lien' => 'Transformer en [lien hypertexte->http://...]',
59
-	'barre_lien_input' => 'Veuillez indiquer l’adresse de votre lien (vous pouvez indiquer une adresse Web sous la forme http://www.monsite/com ou simplement indiquer le numéro d’un article de ce site.',
60
-	'barre_note' => 'Transformer en [[Note de bas de page]]',
61
-	'barre_paragraphe' => 'Créer un paragraphe',
62
-	'barre_quote' => '<quote>Citer un message</quote>',
63
-	'bouton_changer' => 'Changer',
64
-	'bouton_chercher' => 'Chercher',
65
-	'bouton_choisir' => 'Choisir',
66
-	'bouton_deplacer' => 'Déplacer',
67
-	'bouton_download' => 'Télécharger',
68
-	'bouton_enregistrer' => 'Enregistrer',
69
-	'bouton_radio_desactiver_messagerie_interne' => 'Désactiver la messagerie interne',
70
-	'bouton_radio_envoi_annonces' => 'Envoyer les annonces éditoriales',
71
-	'bouton_radio_non_envoi_annonces' => 'Ne pas envoyer d’annonces',
72
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés',
73
-	'bouton_recharger_page' => 'recharger cette page',
74
-	'bouton_telecharger' => 'Télécharger',
75
-	'bouton_upload' => 'Téléverser',
76
-	'bouton_valider' => 'Valider',
46
+    // B
47
+    'barre_a_accent_grave' => 'Insérer un A accent grave majuscule',
48
+    'barre_aide' => 'Utilisez les raccourcis typographiques pour enrichir votre mise en page',
49
+    'barre_e_accent_aigu' => 'Insérer un E accent aigu majuscule',
50
+    'barre_eo' => 'Insérer un E dans l’O',
51
+    'barre_eo_maj' => 'Insérer un E dans l’O majuscule',
52
+    'barre_euro' => 'Insérer le symbole €',
53
+    'barre_gras' => 'Mettre en {{gras}}',
54
+    'barre_guillemets' => 'Entourer de « guillemets »',
55
+    'barre_guillemets_simples' => 'Entourer de “guillemets de second niveau”',
56
+    'barre_intertitre' => 'Transformer en {{{intertitre}}}',
57
+    'barre_italic' => 'Mettre en {italique}',
58
+    'barre_lien' => 'Transformer en [lien hypertexte->http://...]',
59
+    'barre_lien_input' => 'Veuillez indiquer l’adresse de votre lien (vous pouvez indiquer une adresse Web sous la forme http://www.monsite/com ou simplement indiquer le numéro d’un article de ce site.',
60
+    'barre_note' => 'Transformer en [[Note de bas de page]]',
61
+    'barre_paragraphe' => 'Créer un paragraphe',
62
+    'barre_quote' => '<quote>Citer un message</quote>',
63
+    'bouton_changer' => 'Changer',
64
+    'bouton_chercher' => 'Chercher',
65
+    'bouton_choisir' => 'Choisir',
66
+    'bouton_deplacer' => 'Déplacer',
67
+    'bouton_download' => 'Télécharger',
68
+    'bouton_enregistrer' => 'Enregistrer',
69
+    'bouton_radio_desactiver_messagerie_interne' => 'Désactiver la messagerie interne',
70
+    'bouton_radio_envoi_annonces' => 'Envoyer les annonces éditoriales',
71
+    'bouton_radio_non_envoi_annonces' => 'Ne pas envoyer d’annonces',
72
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés',
73
+    'bouton_recharger_page' => 'recharger cette page',
74
+    'bouton_telecharger' => 'Télécharger',
75
+    'bouton_upload' => 'Téléverser',
76
+    'bouton_valider' => 'Valider',
77 77
 
78
-	// C
79
-	'cal_apresmidi' => 'après-midi',
80
-	'cal_jour_entier' => 'jour entier',
81
-	'cal_matin' => 'matin',
82
-	'cal_par_jour' => 'calendrier par jour',
83
-	'cal_par_mois' => 'calendrier par mois',
84
-	'cal_par_semaine' => 'calendrier par semaine',
85
-	'choix_couleur_interface' => 'couleur ',
86
-	'choix_interface' => 'choix  de l’interface',
87
-	'colonne' => 'Colonne',
88
-	'confirm_changer_statut' => 'Attention, vous avez demandé à changer le statut de cet élément. Souhaitez-vous continuer ?',
89
-	'correcte' => 'correcte',
78
+    // C
79
+    'cal_apresmidi' => 'après-midi',
80
+    'cal_jour_entier' => 'jour entier',
81
+    'cal_matin' => 'matin',
82
+    'cal_par_jour' => 'calendrier par jour',
83
+    'cal_par_mois' => 'calendrier par mois',
84
+    'cal_par_semaine' => 'calendrier par semaine',
85
+    'choix_couleur_interface' => 'couleur ',
86
+    'choix_interface' => 'choix  de l’interface',
87
+    'colonne' => 'Colonne',
88
+    'confirm_changer_statut' => 'Attention, vous avez demandé à changer le statut de cet élément. Souhaitez-vous continuer ?',
89
+    'correcte' => 'correcte',
90 90
 
91
-	// D
92
-	'date_aujourdhui' => 'aujourd’hui',
93
-	'date_avant_jc' => 'av. J.C.',
94
-	'date_dans' => 'dans @delai@',
95
-	'date_de_mois_1' => '@j@ @nommois@',
96
-	'date_de_mois_10' => '@j@ @nommois@',
97
-	'date_de_mois_11' => '@j@ @nommois@',
98
-	'date_de_mois_12' => '@j@ @nommois@',
99
-	'date_de_mois_2' => '@j@ @nommois@',
100
-	'date_de_mois_3' => '@j@ @nommois@',
101
-	'date_de_mois_4' => '@j@ @nommois@',
102
-	'date_de_mois_5' => '@j@ @nommois@',
103
-	'date_de_mois_6' => '@j@ @nommois@',
104
-	'date_de_mois_7' => '@j@ @nommois@',
105
-	'date_de_mois_8' => '@j@ @nommois@',
106
-	'date_de_mois_9' => '@j@ @nommois@',
107
-	'date_demain' => 'demain',
108
-	'date_fmt_heures_minutes' => '@h@h@m@min',
109
-	'date_fmt_heures_minutes_court' => '@h@h@m@',
110
-	'date_fmt_jour' => '@nomjour@ @jour@',
111
-	'date_fmt_jour_heure' => '@jour@ à @heure@',
112
-	'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ à @heure_fin@',
113
-	'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ à @dtend@@heure_fin@@dtabbr@',
114
-	'date_fmt_jour_mois' => '@jour@ @nommois@',
115
-	'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
116
-	'date_fmt_mois_annee' => '@nommois@ @annee@',
117
-	'date_fmt_nomjour' => '@nomjour@ @date@',
118
-	'date_fmt_nomjour_date' => 'le @nomjour@ @date@',
119
-	'date_fmt_periode' => 'Du @date_debut@ au @date_fin@',
120
-	'date_fmt_periode_abbr' => 'Du @dtart@@date_debut@@dtabbr@ au @dtend@@date_fin@@dtabbr@',
121
-	'date_fmt_periode_from' => 'Du',
122
-	'date_fmt_periode_to' => 'au',
123
-	'date_fmt_saison_annee' => '@saison@ @annee@',
124
-	'date_heures' => 'heures',
125
-	'date_hier' => 'hier',
126
-	'date_il_y_a' => 'il y a @delai@',
127
-	'date_jnum1' => '1er',
128
-	'date_jnum10' => '10',
129
-	'date_jnum11' => '11',
130
-	'date_jnum12' => '12',
131
-	'date_jnum13' => '13',
132
-	'date_jnum14' => '14',
133
-	'date_jnum15' => '15',
134
-	'date_jnum16' => '16',
135
-	'date_jnum17' => '17',
136
-	'date_jnum18' => '18',
137
-	'date_jnum19' => '19',
138
-	'date_jnum2' => '2',
139
-	'date_jnum20' => '20',
140
-	'date_jnum21' => '21',
141
-	'date_jnum22' => '22',
142
-	'date_jnum23' => '23',
143
-	'date_jnum24' => '24',
144
-	'date_jnum25' => '25',
145
-	'date_jnum26' => '26',
146
-	'date_jnum27' => '27',
147
-	'date_jnum28' => '28',
148
-	'date_jnum29' => '29',
149
-	'date_jnum3' => '3',
150
-	'date_jnum30' => '30',
151
-	'date_jnum31' => '31',
152
-	'date_jnum4' => '4',
153
-	'date_jnum5' => '5',
154
-	'date_jnum6' => '6',
155
-	'date_jnum7' => '7',
156
-	'date_jnum8' => '8',
157
-	'date_jnum9' => '9',
158
-	'date_jour_1' => 'dimanche',
159
-	'date_jour_1_abbr' => 'dim.',
160
-	'date_jour_1_initiale' => 'd.',
161
-	'date_jour_2' => 'lundi',
162
-	'date_jour_2_abbr' => 'lun.',
163
-	'date_jour_2_initiale' => 'l.',
164
-	'date_jour_3' => 'mardi',
165
-	'date_jour_3_abbr' => 'mar.',
166
-	'date_jour_3_initiale' => 'm.',
167
-	'date_jour_4' => 'mercredi',
168
-	'date_jour_4_abbr' => 'mer.',
169
-	'date_jour_4_initiale' => 'm.',
170
-	'date_jour_5' => 'jeudi',
171
-	'date_jour_5_abbr' => 'jeu.',
172
-	'date_jour_5_initiale' => 'j.',
173
-	'date_jour_6' => 'vendredi',
174
-	'date_jour_6_abbr' => 'ven.',
175
-	'date_jour_6_initiale' => 'v.',
176
-	'date_jour_7' => 'samedi',
177
-	'date_jour_7_abbr' => 'sam.',
178
-	'date_jour_7_initiale' => 's.',
179
-	'date_jours' => 'jours',
180
-	'date_minutes' => 'minutes',
181
-	'date_mois' => 'mois',
182
-	'date_mois_1' => 'janvier',
183
-	'date_mois_10' => 'octobre',
184
-	'date_mois_10_abbr' => 'oct.',
185
-	'date_mois_11' => 'novembre',
186
-	'date_mois_11_abbr' => 'nov.',
187
-	'date_mois_12' => 'décembre',
188
-	'date_mois_12_abbr' => 'déc.',
189
-	'date_mois_1_abbr' => 'janv.',
190
-	'date_mois_2' => 'février',
191
-	'date_mois_2_abbr' => 'févr.',
192
-	'date_mois_3' => 'mars',
193
-	'date_mois_3_abbr' => 'mars',
194
-	'date_mois_4' => 'avril',
195
-	'date_mois_4_abbr' => 'avr.',
196
-	'date_mois_5' => 'mai',
197
-	'date_mois_5_abbr' => 'mai',
198
-	'date_mois_6' => 'juin',
199
-	'date_mois_6_abbr' => 'juin',
200
-	'date_mois_7' => 'juillet',
201
-	'date_mois_7_abbr' => 'juil.',
202
-	'date_mois_8' => 'août',
203
-	'date_mois_8_abbr' => 'août',
204
-	'date_mois_9' => 'septembre',
205
-	'date_mois_9_abbr' => 'sept.',
206
-	'date_saison_1' => 'hiver',
207
-	'date_saison_2' => 'printemps',
208
-	'date_saison_3' => 'été',
209
-	'date_saison_4' => 'automne',
210
-	'date_secondes' => 'secondes',
211
-	'date_semaines' => 'semaines',
212
-	'date_un_mois' => 'mois',
213
-	'date_une_heure' => 'heure',
214
-	'date_une_minute' => 'minute',
215
-	'date_une_seconde' => 'seconde',
216
-	'date_une_semaine' => 'semaine',
217
-	'dirs_commencer' => ' afin de commencer réellement l’installation',
218
-	'dirs_preliminaire' => 'Préliminaire : <b>Régler les droits d’accès</b>',
219
-	'dirs_probleme_droits' => 'Problème de droits d’accès',
220
-	'dirs_repertoires_absents' => '<p><b>Les répertoires suivants n’ont pas été trouvés :</b></p><ul>@bad_dirs@</ul>
91
+    // D
92
+    'date_aujourdhui' => 'aujourd’hui',
93
+    'date_avant_jc' => 'av. J.C.',
94
+    'date_dans' => 'dans @delai@',
95
+    'date_de_mois_1' => '@j@ @nommois@',
96
+    'date_de_mois_10' => '@j@ @nommois@',
97
+    'date_de_mois_11' => '@j@ @nommois@',
98
+    'date_de_mois_12' => '@j@ @nommois@',
99
+    'date_de_mois_2' => '@j@ @nommois@',
100
+    'date_de_mois_3' => '@j@ @nommois@',
101
+    'date_de_mois_4' => '@j@ @nommois@',
102
+    'date_de_mois_5' => '@j@ @nommois@',
103
+    'date_de_mois_6' => '@j@ @nommois@',
104
+    'date_de_mois_7' => '@j@ @nommois@',
105
+    'date_de_mois_8' => '@j@ @nommois@',
106
+    'date_de_mois_9' => '@j@ @nommois@',
107
+    'date_demain' => 'demain',
108
+    'date_fmt_heures_minutes' => '@h@h@m@min',
109
+    'date_fmt_heures_minutes_court' => '@h@h@m@',
110
+    'date_fmt_jour' => '@nomjour@ @jour@',
111
+    'date_fmt_jour_heure' => '@jour@ à @heure@',
112
+    'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ à @heure_fin@',
113
+    'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ à @dtend@@heure_fin@@dtabbr@',
114
+    'date_fmt_jour_mois' => '@jour@ @nommois@',
115
+    'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
116
+    'date_fmt_mois_annee' => '@nommois@ @annee@',
117
+    'date_fmt_nomjour' => '@nomjour@ @date@',
118
+    'date_fmt_nomjour_date' => 'le @nomjour@ @date@',
119
+    'date_fmt_periode' => 'Du @date_debut@ au @date_fin@',
120
+    'date_fmt_periode_abbr' => 'Du @dtart@@date_debut@@dtabbr@ au @dtend@@date_fin@@dtabbr@',
121
+    'date_fmt_periode_from' => 'Du',
122
+    'date_fmt_periode_to' => 'au',
123
+    'date_fmt_saison_annee' => '@saison@ @annee@',
124
+    'date_heures' => 'heures',
125
+    'date_hier' => 'hier',
126
+    'date_il_y_a' => 'il y a @delai@',
127
+    'date_jnum1' => '1er',
128
+    'date_jnum10' => '10',
129
+    'date_jnum11' => '11',
130
+    'date_jnum12' => '12',
131
+    'date_jnum13' => '13',
132
+    'date_jnum14' => '14',
133
+    'date_jnum15' => '15',
134
+    'date_jnum16' => '16',
135
+    'date_jnum17' => '17',
136
+    'date_jnum18' => '18',
137
+    'date_jnum19' => '19',
138
+    'date_jnum2' => '2',
139
+    'date_jnum20' => '20',
140
+    'date_jnum21' => '21',
141
+    'date_jnum22' => '22',
142
+    'date_jnum23' => '23',
143
+    'date_jnum24' => '24',
144
+    'date_jnum25' => '25',
145
+    'date_jnum26' => '26',
146
+    'date_jnum27' => '27',
147
+    'date_jnum28' => '28',
148
+    'date_jnum29' => '29',
149
+    'date_jnum3' => '3',
150
+    'date_jnum30' => '30',
151
+    'date_jnum31' => '31',
152
+    'date_jnum4' => '4',
153
+    'date_jnum5' => '5',
154
+    'date_jnum6' => '6',
155
+    'date_jnum7' => '7',
156
+    'date_jnum8' => '8',
157
+    'date_jnum9' => '9',
158
+    'date_jour_1' => 'dimanche',
159
+    'date_jour_1_abbr' => 'dim.',
160
+    'date_jour_1_initiale' => 'd.',
161
+    'date_jour_2' => 'lundi',
162
+    'date_jour_2_abbr' => 'lun.',
163
+    'date_jour_2_initiale' => 'l.',
164
+    'date_jour_3' => 'mardi',
165
+    'date_jour_3_abbr' => 'mar.',
166
+    'date_jour_3_initiale' => 'm.',
167
+    'date_jour_4' => 'mercredi',
168
+    'date_jour_4_abbr' => 'mer.',
169
+    'date_jour_4_initiale' => 'm.',
170
+    'date_jour_5' => 'jeudi',
171
+    'date_jour_5_abbr' => 'jeu.',
172
+    'date_jour_5_initiale' => 'j.',
173
+    'date_jour_6' => 'vendredi',
174
+    'date_jour_6_abbr' => 'ven.',
175
+    'date_jour_6_initiale' => 'v.',
176
+    'date_jour_7' => 'samedi',
177
+    'date_jour_7_abbr' => 'sam.',
178
+    'date_jour_7_initiale' => 's.',
179
+    'date_jours' => 'jours',
180
+    'date_minutes' => 'minutes',
181
+    'date_mois' => 'mois',
182
+    'date_mois_1' => 'janvier',
183
+    'date_mois_10' => 'octobre',
184
+    'date_mois_10_abbr' => 'oct.',
185
+    'date_mois_11' => 'novembre',
186
+    'date_mois_11_abbr' => 'nov.',
187
+    'date_mois_12' => 'décembre',
188
+    'date_mois_12_abbr' => 'déc.',
189
+    'date_mois_1_abbr' => 'janv.',
190
+    'date_mois_2' => 'février',
191
+    'date_mois_2_abbr' => 'févr.',
192
+    'date_mois_3' => 'mars',
193
+    'date_mois_3_abbr' => 'mars',
194
+    'date_mois_4' => 'avril',
195
+    'date_mois_4_abbr' => 'avr.',
196
+    'date_mois_5' => 'mai',
197
+    'date_mois_5_abbr' => 'mai',
198
+    'date_mois_6' => 'juin',
199
+    'date_mois_6_abbr' => 'juin',
200
+    'date_mois_7' => 'juillet',
201
+    'date_mois_7_abbr' => 'juil.',
202
+    'date_mois_8' => 'août',
203
+    'date_mois_8_abbr' => 'août',
204
+    'date_mois_9' => 'septembre',
205
+    'date_mois_9_abbr' => 'sept.',
206
+    'date_saison_1' => 'hiver',
207
+    'date_saison_2' => 'printemps',
208
+    'date_saison_3' => 'été',
209
+    'date_saison_4' => 'automne',
210
+    'date_secondes' => 'secondes',
211
+    'date_semaines' => 'semaines',
212
+    'date_un_mois' => 'mois',
213
+    'date_une_heure' => 'heure',
214
+    'date_une_minute' => 'minute',
215
+    'date_une_seconde' => 'seconde',
216
+    'date_une_semaine' => 'semaine',
217
+    'dirs_commencer' => ' afin de commencer réellement l’installation',
218
+    'dirs_preliminaire' => 'Préliminaire : <b>Régler les droits d’accès</b>',
219
+    'dirs_probleme_droits' => 'Problème de droits d’accès',
220
+    'dirs_repertoires_absents' => '<p><b>Les répertoires suivants n’ont pas été trouvés :</b></p><ul>@bad_dirs@</ul>
221 221
   <p>Il est probable que cela soit dû à un problème de mauvaise mise en majuscules ou minuscules.
222 222
   Vérifiez que les minuscules et majuscules de ces répertoires concordent bien avec ce qui est affiché
223 223
   ci-dessus ; si ce n’est pas le cas, renommez les répertoires avec votre logiciel FTP de façon à corriger l’erreur.</p>
224 224
   <p>Une fois cette manipulation effectuée, vous pourrez ',
225
-	'dirs_repertoires_suivants' => '<p><b>Les répertoires suivants ne sont pas accessibles en écriture :</b></p> <ul>@bad_dirs@</ul>
225
+    'dirs_repertoires_suivants' => '<p><b>Les répertoires suivants ne sont pas accessibles en écriture :</b></p> <ul>@bad_dirs@</ul>
226 226
   <p>Pour y remédier, utilisez votre client FTP afin de régler les droits d’accès de chacun
227 227
   de ces répertoires. La procédure est expliquée en détail dans le guide d’installation.</p>
228 228
   <p>Une fois cette manipulation effectuée, vous pourrez ',
229
-	'double_occurrence' => 'Double occurrence de @balise@',
229
+    'double_occurrence' => 'Double occurrence de @balise@',
230 230
 
231
-	// E
232
-	'en_cours' => 'en cours',
233
-	'envoi_via_le_site' => 'Envoi via le site',
234
-	'erreur' => 'Erreur',
235
-	'erreur_balise_non_fermee' => 'dernière balise non refermée :',
236
-	'erreur_technique_ajaxform' => 'Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.',
237
-	'erreur_technique_enregistrement_champs' => 'Une erreur technique a empêché l’enregistrement correct du champ @champs@.',
238
-	'erreur_technique_enregistrement_impossible' => 'Une erreur technique a empêché l’enregistrement.',
239
-	'erreur_texte' => 'erreur(s)',
240
-	'etape' => 'Étape',
231
+    // E
232
+    'en_cours' => 'en cours',
233
+    'envoi_via_le_site' => 'Envoi via le site',
234
+    'erreur' => 'Erreur',
235
+    'erreur_balise_non_fermee' => 'dernière balise non refermée :',
236
+    'erreur_technique_ajaxform' => 'Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.',
237
+    'erreur_technique_enregistrement_champs' => 'Une erreur technique a empêché l’enregistrement correct du champ @champs@.',
238
+    'erreur_technique_enregistrement_impossible' => 'Une erreur technique a empêché l’enregistrement.',
239
+    'erreur_texte' => 'erreur(s)',
240
+    'etape' => 'Étape',
241 241
 
242
-	// F
243
-	'fichier_introuvable' => 'Fichier @fichier@ introuvable', # MODIF
244
-	'form_auteur_confirmation' => 'Confirmez votre adresse email',
245
-	'form_auteur_email_modifie' => 'Votre adresse email a été modifiée.',
246
-	'form_auteur_envoi_mail_confirmation' => 'Un courrier électronique de confirmation vient d’être envoyé à @email@. Vous devrez visiter l’adresse Web mentionnée dans ce courrier pour valider votre adresse mail.',
247
-	'form_auteur_mail_confirmation' => 'Bonjour,
242
+    // F
243
+    'fichier_introuvable' => 'Fichier @fichier@ introuvable', # MODIF
244
+    'form_auteur_confirmation' => 'Confirmez votre adresse email',
245
+    'form_auteur_email_modifie' => 'Votre adresse email a été modifiée.',
246
+    'form_auteur_envoi_mail_confirmation' => 'Un courrier électronique de confirmation vient d’être envoyé à @email@. Vous devrez visiter l’adresse Web mentionnée dans ce courrier pour valider votre adresse mail.',
247
+    'form_auteur_mail_confirmation' => 'Bonjour,
248 248
 
249 249
 Vous avez demandé à changer votre adresse email.
250 250
 Pour confirmer votre nouvelle adresse, il suffit de vous connecter à
@@ -253,346 +253,346 @@  discard block
 block discarded – undo
253 253
 
254 254
     @url@
255 255
 ',
256
-	'form_deja_inscrit' => 'Vous êtes déjà inscrite.',
257
-	'form_email_non_valide' => 'Votre adresse email n’est pas valide.',
258
-	'form_forum_access_refuse' => 'Vous n’avez plus accès à ce site.',
259
-	'form_forum_bonjour' => 'Bonjour @nom@,',
260
-	'form_forum_confirmer_email' => 'Pour confirmer votre adresse email, rendez-vous à cette adresse : @url_confirm@',
261
-	'form_forum_email_deja_enregistre' => 'Cette adresse email est déjà enregistrée, vous pouvez donc utiliser votre mot de passe habituel.',
262
-	'form_forum_identifiant_mail' => 'Votre nouvel identifiant vient de vous être envoyé par email.',
263
-	'form_forum_identifiants' => 'Identifiants personnels',
264
-	'form_forum_indiquer_nom_email' => 'Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.',
265
-	'form_forum_login' => 'login :',
266
-	'form_forum_message_auto' => '(ceci est un message automatique)',
267
-	'form_forum_pass' => 'mot de passe :',
268
-	'form_forum_probleme_mail' => 'Problème de mail : l’identifiant ne peut pas être envoyé.',
269
-	'form_forum_voici1' => 'Voici vos identifiants pour pouvoir participer à la vie du site "@nom_site_spip@" (@adresse_site@) :',
270
-	'form_forum_voici2' => 'Voici vos identifiants pour proposer des articles sur
256
+    'form_deja_inscrit' => 'Vous êtes déjà inscrite.',
257
+    'form_email_non_valide' => 'Votre adresse email n’est pas valide.',
258
+    'form_forum_access_refuse' => 'Vous n’avez plus accès à ce site.',
259
+    'form_forum_bonjour' => 'Bonjour @nom@,',
260
+    'form_forum_confirmer_email' => 'Pour confirmer votre adresse email, rendez-vous à cette adresse : @url_confirm@',
261
+    'form_forum_email_deja_enregistre' => 'Cette adresse email est déjà enregistrée, vous pouvez donc utiliser votre mot de passe habituel.',
262
+    'form_forum_identifiant_mail' => 'Votre nouvel identifiant vient de vous être envoyé par email.',
263
+    'form_forum_identifiants' => 'Identifiants personnels',
264
+    'form_forum_indiquer_nom_email' => 'Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.',
265
+    'form_forum_login' => 'login :',
266
+    'form_forum_message_auto' => '(ceci est un message automatique)',
267
+    'form_forum_pass' => 'mot de passe :',
268
+    'form_forum_probleme_mail' => 'Problème de mail : l’identifiant ne peut pas être envoyé.',
269
+    'form_forum_voici1' => 'Voici vos identifiants pour pouvoir participer à la vie du site "@nom_site_spip@" (@adresse_site@) :',
270
+    'form_forum_voici2' => 'Voici vos identifiants pour proposer des articles sur
271 271
 le site "@nom_site_spip@" (@adresse_login@) :',
272
-	'form_indiquer_email' => 'Veuillez indiquer votre adresse email.',
273
-	'form_indiquer_nom' => 'Veuillez indiquer votre nom.',
274
-	'form_indiquer_nom_site' => 'Veuillez indiquer le nom de votre site.',
275
-	'form_pet_deja_enregistre' => 'Ce site est déjà enregistré',
276
-	'form_pet_signature_pasprise' => 'Votre signature n’est pas prise en compte.',
277
-	'form_prop_confirmer_envoi' => 'Confirmer l’envoi',
278
-	'form_prop_description' => 'Description/commentaire',
279
-	'form_prop_enregistre' => 'Votre proposition est enregistrée, elle apparaîtra en ligne après validation par les responsables de ce site.',
280
-	'form_prop_envoyer' => 'Envoyer un message',
281
-	'form_prop_indiquer_email' => 'Veuillez indiquer une adresse email valide',
282
-	'form_prop_indiquer_nom_site' => 'Veuillez indiquer le nom du site.',
283
-	'form_prop_indiquer_sujet' => 'Veuillez indiquer un sujet',
284
-	'form_prop_message_envoye' => 'Message envoyé',
285
-	'form_prop_non_enregistre' => 'Votre proposition n’a pas été enregistrée.',
286
-	'form_prop_sujet' => 'Sujet',
287
-	'form_prop_url_site' => 'Adresse URL du site',
288
-	'format_date_attendu' => 'Saisir une date au format jj/mm/aaaa.',
289
-	'format_date_incorrecte' => 'La date ou son format est incorrect',
290
-	'format_heure_attendu' => 'Saisir une heure au format hh:mm.',
291
-	'format_heure_incorrecte' => 'L’heure ou son format est incorrect',
292
-	'forum_non_inscrit' => 'Vous n’êtes pas inscrite, ou l’adresse ou le mot de passe sont erronés.',
293
-	'forum_par_auteur' => 'par @auteur@',
294
-	'forum_titre_erreur' => 'Erreur...',
272
+    'form_indiquer_email' => 'Veuillez indiquer votre adresse email.',
273
+    'form_indiquer_nom' => 'Veuillez indiquer votre nom.',
274
+    'form_indiquer_nom_site' => 'Veuillez indiquer le nom de votre site.',
275
+    'form_pet_deja_enregistre' => 'Ce site est déjà enregistré',
276
+    'form_pet_signature_pasprise' => 'Votre signature n’est pas prise en compte.',
277
+    'form_prop_confirmer_envoi' => 'Confirmer l’envoi',
278
+    'form_prop_description' => 'Description/commentaire',
279
+    'form_prop_enregistre' => 'Votre proposition est enregistrée, elle apparaîtra en ligne après validation par les responsables de ce site.',
280
+    'form_prop_envoyer' => 'Envoyer un message',
281
+    'form_prop_indiquer_email' => 'Veuillez indiquer une adresse email valide',
282
+    'form_prop_indiquer_nom_site' => 'Veuillez indiquer le nom du site.',
283
+    'form_prop_indiquer_sujet' => 'Veuillez indiquer un sujet',
284
+    'form_prop_message_envoye' => 'Message envoyé',
285
+    'form_prop_non_enregistre' => 'Votre proposition n’a pas été enregistrée.',
286
+    'form_prop_sujet' => 'Sujet',
287
+    'form_prop_url_site' => 'Adresse URL du site',
288
+    'format_date_attendu' => 'Saisir une date au format jj/mm/aaaa.',
289
+    'format_date_incorrecte' => 'La date ou son format est incorrect',
290
+    'format_heure_attendu' => 'Saisir une heure au format hh:mm.',
291
+    'format_heure_incorrecte' => 'L’heure ou son format est incorrect',
292
+    'forum_non_inscrit' => 'Vous n’êtes pas inscrite, ou l’adresse ou le mot de passe sont erronés.',
293
+    'forum_par_auteur' => 'par @auteur@',
294
+    'forum_titre_erreur' => 'Erreur...',
295 295
 
296
-	// I
297
-	'ical_texte_rss_articles' => 'Le fichier « backend » des articles de ce site se trouve à l’adresse :',
298
-	'ical_texte_rss_articles2' => 'Vous pouvez également obtenir des fichiers « backend » pour les articles de chaque rubrique du site :',
299
-	'ical_texte_rss_breves' => 'Il existe de plus un fichier contenant les brèves du site. En précisant un numéro de rubrique, vous obtiendrez uniquement les brèves de cette rubrique.',
300
-	'icone_a_suivre' => 'À suivre',
301
-	'icone_admin_site' => 'Administration du site',
302
-	'icone_agenda' => 'Agenda',
303
-	'icone_aide_ligne' => 'Aide',
304
-	'icone_articles' => 'Articles',
305
-	'icone_auteurs' => 'Autrices',
306
-	'icone_brouteur' => 'Navigation rapide',
307
-	'icone_configuration_site' => 'Configuration',
308
-	'icone_configurer_site' => 'Configurer votre site',
309
-	'icone_creer_nouvel_auteur' => 'Créer une nouvelle autrice',
310
-	'icone_creer_rubrique' => 'Créer une rubrique',
311
-	'icone_creer_sous_rubrique' => 'Créer une sous-rubrique',
312
-	'icone_deconnecter' => 'Se déconnecter',
313
-	'icone_discussions' => 'Discussions',
314
-	'icone_doc_rubrique' => 'Documents des rubriques',
315
-	'icone_ecrire_article' => 'Écrire un nouvel article',
316
-	'icone_edition_site' => 'Édition',
317
-	'icone_gestion_langues' => 'Gestion des langues',
318
-	'icone_informations_personnelles' => 'Informations personnelles',
319
-	'icone_interface_complet' => 'interface complète',
320
-	'icone_interface_simple' => 'Interface simplifiée',
321
-	'icone_maintenance_site' => 'Maintenance du site',
322
-	'icone_messagerie_personnelle' => 'Messagerie personnelle',
323
-	'icone_repartition_debut' => 'Afficher la répartition depuis le début',
324
-	'icone_rubriques' => 'Rubriques',
325
-	'icone_sauver_site' => 'Sauvegarde du site',
326
-	'icone_site_entier' => 'Tout le site',
327
-	'icone_sites_references' => 'Sites référencés',
328
-	'icone_statistiques' => 'Statistiques du site',
329
-	'icone_suivi_activite' => 'Suivre la vie du site',
330
-	'icone_suivi_actualite' => 'Évolution du site',
331
-	'icone_suivi_pettions' => 'Suivre/gérer les pétitions',
332
-	'icone_suivi_revisions' => 'Modifications des articles',
333
-	'icone_supprimer_document' => 'Supprimer ce document',
334
-	'icone_supprimer_image' => 'Supprimer cette image',
335
-	'icone_tous_articles' => 'Tous vos articles',
336
-	'icone_tous_auteur' => 'Toutes les autrices',
337
-	'icone_tous_visiteur' => 'Toutes les visiteuses',
338
-	'icone_visiter_site' => 'Voir le site public',
339
-	'icone_voir_en_ligne' => 'Voir en ligne',
340
-	'img_indisponible' => 'image indisponible',
341
-	'impossible' => 'impossible',
342
-	'info_a_suivre' => 'À SUIVRE »',
343
-	'info_acces_interdit' => 'Accès interdit',
344
-	'info_acces_refuse' => 'Accès refusé',
345
-	'info_action' => 'Action : @action@',
346
-	'info_administrer_rubriques' => 'Vous pouvez administrer cette rubrique et ses sous-rubriques',
347
-	'info_adresse_non_indiquee' => 'Vous n’avez pas indiqué d’adresse à tester !',
348
-	'info_aide' => 'AIDE :',
349
-	'info_ajouter_mot' => 'Ajouter ce mot',
350
-	'info_annonce' => 'ANNONCE',
351
-	'info_annonces_generales' => 'Annonces générales :',
352
-	'info_article_propose' => 'Article proposé',
353
-	'info_article_publie' => 'Article publié',
354
-	'info_article_redaction' => 'Article en cours de rédaction',
355
-	'info_article_refuse' => 'Article refusé',
356
-	'info_article_supprime' => 'Article supprimé',
357
-	'info_articles' => 'Articles',
358
-	'info_articles_a_valider' => 'Les articles à valider',
359
-	'info_articles_nb' => '@nb@ articles',
360
-	'info_articles_proposes' => 'Articles proposés',
361
-	'info_articles_un' => '1 article',
362
-	'info_auteurs_nombre' => 'autrice(s) :',
363
-	'info_authentification_ftp' => 'Authentification (par FTP).',
364
-	'info_breves_2' => 'brèves',
365
-	'info_breves_nb' => '@nb@ brèves',
366
-	'info_breves_un' => '1 brève',
367
-	'info_connexion_refusee' => 'Connexion refusée',
368
-	'info_contact_developpeur' => 'Veuillez contacter une développeuse.',
369
-	'info_contenance' => 'Ce site contient :',
370
-	'info_contribution' => 'contributions',
371
-	'info_copyright' => '@spip@ est un logiciel libre distribué @lien_gpl@.',
372
-	'info_copyright_doc' => 'Pour plus d’informations, voir le site <a href="@spipnet@">@spipnet_affiche@</a>.',
373
-	'info_copyright_gpl' => 'sous licence GPL',
374
-	'info_cours_edition' => 'En cours de modification',
375
-	'info_creer_repertoire' => 'Veuillez créer un fichier ou un répertoire nommé :',
376
-	'info_creer_repertoire_2' => 'à l’intérieur du sous-répertoire <b>@repertoire@</b>, puis :',
377
-	'info_creer_vignette' => 'création automatique de la vignette',
378
-	'info_creerdansrubrique_non_autorise' => 'Vous n’avez pas de droits suffisants pour créer un contenu dans cette rubrique',
379
-	'info_deplier' => 'Déplier',
380
-	'info_descriptif_nombre' => 'descriptif(s) :',
381
-	'info_description' => 'Description :',
382
-	'info_description_2' => 'Description :',
383
-	'info_dimension' => 'Dimensions :',
384
-	'info_documents_nb' => '@nb@ documents',
385
-	'info_documents_un' => '1 document',
386
-	'info_ecire_message_prive' => 'Écrire un message privé',
387
-	'info_email_invalide' => 'Adresse email invalide.',
388
-	'info_en_cours_validation' => 'Vos articles en cours de rédaction',
389
-	'info_en_ligne' => 'Actuellement en ligne :',
390
-	'info_envoyer_message_prive' => 'Envoyer un message privé à cette autrice',
391
-	'info_erreur_requete' => 'Erreur dans la requête :',
392
-	'info_erreur_squelette2' => 'Aucun squelette <b>@fichier@</b> n’est disponible...',
393
-	'info_erreur_systeme' => 'Erreur système (errno @errsys@)',
394
-	'info_erreur_systeme2' => 'Le disque dur est peut-être plein, ou la base de données endommagée.<br />
296
+    // I
297
+    'ical_texte_rss_articles' => 'Le fichier « backend » des articles de ce site se trouve à l’adresse :',
298
+    'ical_texte_rss_articles2' => 'Vous pouvez également obtenir des fichiers « backend » pour les articles de chaque rubrique du site :',
299
+    'ical_texte_rss_breves' => 'Il existe de plus un fichier contenant les brèves du site. En précisant un numéro de rubrique, vous obtiendrez uniquement les brèves de cette rubrique.',
300
+    'icone_a_suivre' => 'À suivre',
301
+    'icone_admin_site' => 'Administration du site',
302
+    'icone_agenda' => 'Agenda',
303
+    'icone_aide_ligne' => 'Aide',
304
+    'icone_articles' => 'Articles',
305
+    'icone_auteurs' => 'Autrices',
306
+    'icone_brouteur' => 'Navigation rapide',
307
+    'icone_configuration_site' => 'Configuration',
308
+    'icone_configurer_site' => 'Configurer votre site',
309
+    'icone_creer_nouvel_auteur' => 'Créer une nouvelle autrice',
310
+    'icone_creer_rubrique' => 'Créer une rubrique',
311
+    'icone_creer_sous_rubrique' => 'Créer une sous-rubrique',
312
+    'icone_deconnecter' => 'Se déconnecter',
313
+    'icone_discussions' => 'Discussions',
314
+    'icone_doc_rubrique' => 'Documents des rubriques',
315
+    'icone_ecrire_article' => 'Écrire un nouvel article',
316
+    'icone_edition_site' => 'Édition',
317
+    'icone_gestion_langues' => 'Gestion des langues',
318
+    'icone_informations_personnelles' => 'Informations personnelles',
319
+    'icone_interface_complet' => 'interface complète',
320
+    'icone_interface_simple' => 'Interface simplifiée',
321
+    'icone_maintenance_site' => 'Maintenance du site',
322
+    'icone_messagerie_personnelle' => 'Messagerie personnelle',
323
+    'icone_repartition_debut' => 'Afficher la répartition depuis le début',
324
+    'icone_rubriques' => 'Rubriques',
325
+    'icone_sauver_site' => 'Sauvegarde du site',
326
+    'icone_site_entier' => 'Tout le site',
327
+    'icone_sites_references' => 'Sites référencés',
328
+    'icone_statistiques' => 'Statistiques du site',
329
+    'icone_suivi_activite' => 'Suivre la vie du site',
330
+    'icone_suivi_actualite' => 'Évolution du site',
331
+    'icone_suivi_pettions' => 'Suivre/gérer les pétitions',
332
+    'icone_suivi_revisions' => 'Modifications des articles',
333
+    'icone_supprimer_document' => 'Supprimer ce document',
334
+    'icone_supprimer_image' => 'Supprimer cette image',
335
+    'icone_tous_articles' => 'Tous vos articles',
336
+    'icone_tous_auteur' => 'Toutes les autrices',
337
+    'icone_tous_visiteur' => 'Toutes les visiteuses',
338
+    'icone_visiter_site' => 'Voir le site public',
339
+    'icone_voir_en_ligne' => 'Voir en ligne',
340
+    'img_indisponible' => 'image indisponible',
341
+    'impossible' => 'impossible',
342
+    'info_a_suivre' => 'À SUIVRE »',
343
+    'info_acces_interdit' => 'Accès interdit',
344
+    'info_acces_refuse' => 'Accès refusé',
345
+    'info_action' => 'Action : @action@',
346
+    'info_administrer_rubriques' => 'Vous pouvez administrer cette rubrique et ses sous-rubriques',
347
+    'info_adresse_non_indiquee' => 'Vous n’avez pas indiqué d’adresse à tester !',
348
+    'info_aide' => 'AIDE :',
349
+    'info_ajouter_mot' => 'Ajouter ce mot',
350
+    'info_annonce' => 'ANNONCE',
351
+    'info_annonces_generales' => 'Annonces générales :',
352
+    'info_article_propose' => 'Article proposé',
353
+    'info_article_publie' => 'Article publié',
354
+    'info_article_redaction' => 'Article en cours de rédaction',
355
+    'info_article_refuse' => 'Article refusé',
356
+    'info_article_supprime' => 'Article supprimé',
357
+    'info_articles' => 'Articles',
358
+    'info_articles_a_valider' => 'Les articles à valider',
359
+    'info_articles_nb' => '@nb@ articles',
360
+    'info_articles_proposes' => 'Articles proposés',
361
+    'info_articles_un' => '1 article',
362
+    'info_auteurs_nombre' => 'autrice(s) :',
363
+    'info_authentification_ftp' => 'Authentification (par FTP).',
364
+    'info_breves_2' => 'brèves',
365
+    'info_breves_nb' => '@nb@ brèves',
366
+    'info_breves_un' => '1 brève',
367
+    'info_connexion_refusee' => 'Connexion refusée',
368
+    'info_contact_developpeur' => 'Veuillez contacter une développeuse.',
369
+    'info_contenance' => 'Ce site contient :',
370
+    'info_contribution' => 'contributions',
371
+    'info_copyright' => '@spip@ est un logiciel libre distribué @lien_gpl@.',
372
+    'info_copyright_doc' => 'Pour plus d’informations, voir le site <a href="@spipnet@">@spipnet_affiche@</a>.',
373
+    'info_copyright_gpl' => 'sous licence GPL',
374
+    'info_cours_edition' => 'En cours de modification',
375
+    'info_creer_repertoire' => 'Veuillez créer un fichier ou un répertoire nommé :',
376
+    'info_creer_repertoire_2' => 'à l’intérieur du sous-répertoire <b>@repertoire@</b>, puis :',
377
+    'info_creer_vignette' => 'création automatique de la vignette',
378
+    'info_creerdansrubrique_non_autorise' => 'Vous n’avez pas de droits suffisants pour créer un contenu dans cette rubrique',
379
+    'info_deplier' => 'Déplier',
380
+    'info_descriptif_nombre' => 'descriptif(s) :',
381
+    'info_description' => 'Description :',
382
+    'info_description_2' => 'Description :',
383
+    'info_dimension' => 'Dimensions :',
384
+    'info_documents_nb' => '@nb@ documents',
385
+    'info_documents_un' => '1 document',
386
+    'info_ecire_message_prive' => 'Écrire un message privé',
387
+    'info_email_invalide' => 'Adresse email invalide.',
388
+    'info_en_cours_validation' => 'Vos articles en cours de rédaction',
389
+    'info_en_ligne' => 'Actuellement en ligne :',
390
+    'info_envoyer_message_prive' => 'Envoyer un message privé à cette autrice',
391
+    'info_erreur_requete' => 'Erreur dans la requête :',
392
+    'info_erreur_squelette2' => 'Aucun squelette <b>@fichier@</b> n’est disponible...',
393
+    'info_erreur_systeme' => 'Erreur système (errno @errsys@)',
394
+    'info_erreur_systeme2' => 'Le disque dur est peut-être plein, ou la base de données endommagée.<br />
395 395
 <span style="color:red;">Essayez de <a href=\'@script@\'>réparer la base</a>, ou contactez votre hébergeur.</span>',
396
-	'info_fini' => 'C’est fini !',
397
-	'info_format_image' => 'Formats d’images pouvant être utilisées pour créer des vignettes : @gd_formats@.',
398
-	'info_format_non_defini' => 'format non défini',
399
-	'info_grand_ecran' => 'Grand écran',
400
-	'info_image_aide' => 'AIDE',
401
-	'info_image_process_titre' => 'Méthode de fabrication des vignettes',
402
-	'info_impossible_lire_page' => '<b>Erreur !</b> Impossible de lire la page <tt><html>@test_proxy@</html></tt> à travers le proxy ',
403
-	'info_installation_systeme_publication' => 'Installation du système de publication...',
404
-	'info_installer_documents' => 'Vous pouvez installer automatiquement tous les documents contenus dans le dossier @upload@.',
405
-	'info_installer_ftp' => 'En tant qu’administratrice, vous pouvez installer (par FTP) des fichiers dans le dossier @upload@ pour ensuite les sélectionner directement ici.',
406
-	'info_installer_images' => 'Vous pouvez installer des images aux formats JPEG, GIF et PNG.',
407
-	'info_installer_images_dossier' => 'Installer des images dans le dossier @upload@ pour pouvoir les sélectionner ici.',
408
-	'info_interface_complete' => 'interface complète',
409
-	'info_interface_simple' => 'Interface simplifiée',
410
-	'info_joindre_document_article' => 'Vous pouvez joindre à cet article des documents de type',
411
-	'info_joindre_document_rubrique' => 'Vous pouvez ajouter dans cette rubrique des documents de type',
412
-	'info_joindre_documents_article' => 'Vous pouvez joindre à votre article des documents de type :',
413
-	'info_l_article' => 'l’article',
414
-	'info_la_breve' => 'la brève',
415
-	'info_la_rubrique' => 'la rubrique',
416
-	'info_langue_principale' => 'Langue principale du site',
417
-	'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels',
418
-	'info_les_auteurs_1' => 'par @les_auteurs@',
419
-	'info_logo_format_interdit' => 'Seuls les logos aux formats @formats@ sont autorisés.',
420
-	'info_logo_max_poids' => 'Les logos doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).',
421
-	'info_mail_fournisseur' => '[email protected]',
422
-	'info_message_2' => 'MESSAGE',
423
-	'info_message_supprime' => 'MESSAGE SUPPRIMÉ',
424
-	'info_messages_nb' => '@nb@ messages',
425
-	'info_messages_un' => '1 message',
426
-	'info_mise_en_ligne' => 'Date de mise en ligne :',
427
-	'info_modification_parametres_securite' => 'modifications des paramètres de sécurité',
428
-	'info_mois_courant' => 'Dans le courant du mois :',
429
-	'info_mot_cle_ajoute' => 'Le mot-clé suivant a été ajouté à',
430
-	'info_multi_herit' => 'Langue par défaut',
431
-	'info_multi_langues_soulignees' => 'Les <u>langues soulignées</u> bénéficient d’une traduction totale ou partielle des textes de l’interface. Si vous sélectionnez ces langues, de nombreux éléments du site public (dates, formulaires) seront automatiquement traduits. Pour les langues non soulignées, ces éléments apparaîtront dans la langue principale du site.',
432
-	'info_multilinguisme' => 'Multilinguisme',
433
-	'info_nom_non_utilisateurs_connectes' => 'Votre nom n’apparaît pas dans la liste des utilisatrices connectées.',
434
-	'info_nom_utilisateurs_connectes' => 'Votre nom apparaît dans la liste des utilisatrices connectées.',
435
-	'info_nombre_en_ligne' => 'Actuellement en ligne :',
436
-	'info_non_resultat' => 'Aucun résultat pour "@cherche_mot@"',
437
-	'info_non_utilisation_messagerie' => 'Vous n’utilisez pas la messagerie interne de ce site.',
438
-	'info_nouveau_message' => 'VOUS AVEZ UN NOUVEAU MESSAGE',
439
-	'info_nouveaux_messages' => 'VOUS AVEZ @total_messages@ NOUVEAUX MESSAGES',
440
-	'info_numero_abbreviation' => 'N° ',
441
-	'info_obligatoire' => 'Cette information est obligatoire',
442
-	'info_page_actuelle' => 'Page actuelle',
443
-	'info_pense_bete' => 'PENSE-BÊTE',
444
-	'info_petit_ecran' => 'Petit écran',
445
-	'info_petition_close' => 'Pétition close',
446
-	'info_pixels' => 'pixels',
447
-	'info_plusieurs_mots_trouves' => 'Plusieurs mots-clés trouvés pour "@cherche_mot@" :',
448
-	'info_portfolio_automatique' => 'Portfolio automatique :',
449
-	'info_premier_resultat' => '[@debut_limit@ premiers résultats sur @total@]',
450
-	'info_premier_resultat_sur' => '[@debut_limit@ premiers résultats sur @total@]',
451
-	'info_propose_1' => '[@nom_site_spip@] Propose : @titre@',
452
-	'info_propose_2' => 'Article proposé
396
+    'info_fini' => 'C’est fini !',
397
+    'info_format_image' => 'Formats d’images pouvant être utilisées pour créer des vignettes : @gd_formats@.',
398
+    'info_format_non_defini' => 'format non défini',
399
+    'info_grand_ecran' => 'Grand écran',
400
+    'info_image_aide' => 'AIDE',
401
+    'info_image_process_titre' => 'Méthode de fabrication des vignettes',
402
+    'info_impossible_lire_page' => '<b>Erreur !</b> Impossible de lire la page <tt><html>@test_proxy@</html></tt> à travers le proxy ',
403
+    'info_installation_systeme_publication' => 'Installation du système de publication...',
404
+    'info_installer_documents' => 'Vous pouvez installer automatiquement tous les documents contenus dans le dossier @upload@.',
405
+    'info_installer_ftp' => 'En tant qu’administratrice, vous pouvez installer (par FTP) des fichiers dans le dossier @upload@ pour ensuite les sélectionner directement ici.',
406
+    'info_installer_images' => 'Vous pouvez installer des images aux formats JPEG, GIF et PNG.',
407
+    'info_installer_images_dossier' => 'Installer des images dans le dossier @upload@ pour pouvoir les sélectionner ici.',
408
+    'info_interface_complete' => 'interface complète',
409
+    'info_interface_simple' => 'Interface simplifiée',
410
+    'info_joindre_document_article' => 'Vous pouvez joindre à cet article des documents de type',
411
+    'info_joindre_document_rubrique' => 'Vous pouvez ajouter dans cette rubrique des documents de type',
412
+    'info_joindre_documents_article' => 'Vous pouvez joindre à votre article des documents de type :',
413
+    'info_l_article' => 'l’article',
414
+    'info_la_breve' => 'la brève',
415
+    'info_la_rubrique' => 'la rubrique',
416
+    'info_langue_principale' => 'Langue principale du site',
417
+    'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels',
418
+    'info_les_auteurs_1' => 'par @les_auteurs@',
419
+    'info_logo_format_interdit' => 'Seuls les logos aux formats @formats@ sont autorisés.',
420
+    'info_logo_max_poids' => 'Les logos doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).',
421
+    'info_mail_fournisseur' => '[email protected]',
422
+    'info_message_2' => 'MESSAGE',
423
+    'info_message_supprime' => 'MESSAGE SUPPRIMÉ',
424
+    'info_messages_nb' => '@nb@ messages',
425
+    'info_messages_un' => '1 message',
426
+    'info_mise_en_ligne' => 'Date de mise en ligne :',
427
+    'info_modification_parametres_securite' => 'modifications des paramètres de sécurité',
428
+    'info_mois_courant' => 'Dans le courant du mois :',
429
+    'info_mot_cle_ajoute' => 'Le mot-clé suivant a été ajouté à',
430
+    'info_multi_herit' => 'Langue par défaut',
431
+    'info_multi_langues_soulignees' => 'Les <u>langues soulignées</u> bénéficient d’une traduction totale ou partielle des textes de l’interface. Si vous sélectionnez ces langues, de nombreux éléments du site public (dates, formulaires) seront automatiquement traduits. Pour les langues non soulignées, ces éléments apparaîtront dans la langue principale du site.',
432
+    'info_multilinguisme' => 'Multilinguisme',
433
+    'info_nom_non_utilisateurs_connectes' => 'Votre nom n’apparaît pas dans la liste des utilisatrices connectées.',
434
+    'info_nom_utilisateurs_connectes' => 'Votre nom apparaît dans la liste des utilisatrices connectées.',
435
+    'info_nombre_en_ligne' => 'Actuellement en ligne :',
436
+    'info_non_resultat' => 'Aucun résultat pour "@cherche_mot@"',
437
+    'info_non_utilisation_messagerie' => 'Vous n’utilisez pas la messagerie interne de ce site.',
438
+    'info_nouveau_message' => 'VOUS AVEZ UN NOUVEAU MESSAGE',
439
+    'info_nouveaux_messages' => 'VOUS AVEZ @total_messages@ NOUVEAUX MESSAGES',
440
+    'info_numero_abbreviation' => 'N° ',
441
+    'info_obligatoire' => 'Cette information est obligatoire',
442
+    'info_page_actuelle' => 'Page actuelle',
443
+    'info_pense_bete' => 'PENSE-BÊTE',
444
+    'info_petit_ecran' => 'Petit écran',
445
+    'info_petition_close' => 'Pétition close',
446
+    'info_pixels' => 'pixels',
447
+    'info_plusieurs_mots_trouves' => 'Plusieurs mots-clés trouvés pour "@cherche_mot@" :',
448
+    'info_portfolio_automatique' => 'Portfolio automatique :',
449
+    'info_premier_resultat' => '[@debut_limit@ premiers résultats sur @total@]',
450
+    'info_premier_resultat_sur' => '[@debut_limit@ premiers résultats sur @total@]',
451
+    'info_propose_1' => '[@nom_site_spip@] Propose : @titre@',
452
+    'info_propose_2' => 'Article proposé
453 453
 ---------------',
454
-	'info_propose_3' => 'L’article "@titre@" est proposé à la publication.',
455
-	'info_propose_4' => 'Vous êtes invitée à venir le consulter et à donner votre opinion',
456
-	'info_propose_5' => 'dans le forum qui lui est attaché. Il est disponible à l’adresse :',
457
-	'info_publie_01' => 'L’article "@titre@" a été validé par @connect_nom@.',
458
-	'info_publie_1' => '[@nom_site_spip@] PUBLIE : @titre@',
459
-	'info_publie_2' => 'Article publié
454
+    'info_propose_3' => 'L’article "@titre@" est proposé à la publication.',
455
+    'info_propose_4' => 'Vous êtes invitée à venir le consulter et à donner votre opinion',
456
+    'info_propose_5' => 'dans le forum qui lui est attaché. Il est disponible à l’adresse :',
457
+    'info_publie_01' => 'L’article "@titre@" a été validé par @connect_nom@.',
458
+    'info_publie_1' => '[@nom_site_spip@] PUBLIE : @titre@',
459
+    'info_publie_2' => 'Article publié
460 460
 --------------',
461
-	'info_rechercher' => 'Rechercher',
462
-	'info_rechercher_02' => 'Rechercher :',
463
-	'info_remplacer_vignette' => 'Remplacer la vignette par défaut par un logo personnalisé :',
464
-	'info_rubriques_nb' => '@nb@ rubriques',
465
-	'info_rubriques_un' => '1 rubrique',
466
-	'info_sans_titre_2' => 'sans titre',
467
-	'info_selectionner_fichier' => 'Vous pouvez sélectionner un fichier du dossier @upload@',
468
-	'info_selectionner_fichier_2' => 'Sélectionner un fichier :',
469
-	'info_sites_nb' => '@nb@ sites',
470
-	'info_sites_un' => '1 site',
471
-	'info_supprimer_vignette' => 'supprimer la vignette',
472
-	'info_symbole_bleu' => 'Le symbole <b>bleu</b> indique un <b>pense-bête</b> : c’est-à-dire un message à votre usage personnel.',
473
-	'info_symbole_jaune' => 'Le symbole <b>jaune</b> indique une <b>annonce à toutes les rédactrices</b> : modifiable par toutes les administratrices, et visible par toutes les rédactrices.',
474
-	'info_symbole_vert' => 'Le symbole <b>vert</b> indique les <b>messages échangés avec d’autres utilisatrices</b> du site.',
475
-	'info_telecharger_nouveau_logo' => 'Télécharger un nouveau logo :',
476
-	'info_telecharger_ordinateur' => 'Télécharger depuis votre ordinateur :',
477
-	'info_tous_resultats_enregistres' => '[tous les résultats sont enregistrés]',
478
-	'info_tout_afficher' => 'Tout afficher',
479
-	'info_travaux_texte' => 'Ce site n’est pas encore configuré. Revenez plus tard...',
480
-	'info_travaux_titre' => 'Site en travaux',
481
-	'info_trop_resultat' => 'Trop de résultats pour "@cherche_mot@" ; veuillez affiner la recherche.',
482
-	'info_utilisation_messagerie_interne' => 'Vous utilisez la messagerie interne de ce site.',
483
-	'info_valider_lien' => 'valider ce lien',
484
-	'info_verifier_image' => ', veuillez vérifier que vos images ont été transférées correctement.',
485
-	'info_vignette_defaut' => 'Vignette par défaut',
486
-	'info_vignette_personnalisee' => 'Vignette personnalisée',
487
-	'info_visite' => 'visite :',
488
-	'info_vos_rendez_vous' => 'Vos rendez-vous à venir',
489
-	'infos_vos_pense_bete' => 'Vos pense-bêtes',
461
+    'info_rechercher' => 'Rechercher',
462
+    'info_rechercher_02' => 'Rechercher :',
463
+    'info_remplacer_vignette' => 'Remplacer la vignette par défaut par un logo personnalisé :',
464
+    'info_rubriques_nb' => '@nb@ rubriques',
465
+    'info_rubriques_un' => '1 rubrique',
466
+    'info_sans_titre_2' => 'sans titre',
467
+    'info_selectionner_fichier' => 'Vous pouvez sélectionner un fichier du dossier @upload@',
468
+    'info_selectionner_fichier_2' => 'Sélectionner un fichier :',
469
+    'info_sites_nb' => '@nb@ sites',
470
+    'info_sites_un' => '1 site',
471
+    'info_supprimer_vignette' => 'supprimer la vignette',
472
+    'info_symbole_bleu' => 'Le symbole <b>bleu</b> indique un <b>pense-bête</b> : c’est-à-dire un message à votre usage personnel.',
473
+    'info_symbole_jaune' => 'Le symbole <b>jaune</b> indique une <b>annonce à toutes les rédactrices</b> : modifiable par toutes les administratrices, et visible par toutes les rédactrices.',
474
+    'info_symbole_vert' => 'Le symbole <b>vert</b> indique les <b>messages échangés avec d’autres utilisatrices</b> du site.',
475
+    'info_telecharger_nouveau_logo' => 'Télécharger un nouveau logo :',
476
+    'info_telecharger_ordinateur' => 'Télécharger depuis votre ordinateur :',
477
+    'info_tous_resultats_enregistres' => '[tous les résultats sont enregistrés]',
478
+    'info_tout_afficher' => 'Tout afficher',
479
+    'info_travaux_texte' => 'Ce site n’est pas encore configuré. Revenez plus tard...',
480
+    'info_travaux_titre' => 'Site en travaux',
481
+    'info_trop_resultat' => 'Trop de résultats pour "@cherche_mot@" ; veuillez affiner la recherche.',
482
+    'info_utilisation_messagerie_interne' => 'Vous utilisez la messagerie interne de ce site.',
483
+    'info_valider_lien' => 'valider ce lien',
484
+    'info_verifier_image' => ', veuillez vérifier que vos images ont été transférées correctement.',
485
+    'info_vignette_defaut' => 'Vignette par défaut',
486
+    'info_vignette_personnalisee' => 'Vignette personnalisée',
487
+    'info_visite' => 'visite :',
488
+    'info_vos_rendez_vous' => 'Vos rendez-vous à venir',
489
+    'infos_vos_pense_bete' => 'Vos pense-bêtes',
490 490
 
491
-	// L
492
-	'label_ajout_id_rapide' => 'Ajout rapide',
493
-	'label_poids_fichier' => 'Taille',
494
-	'label_ponctuer' => '@label@ :',
495
-	'lien_afficher_icones_seuls' => 'Afficher uniquement les icones',
496
-	'lien_afficher_texte_icones' => 'Afficher les icones et le texte',
497
-	'lien_afficher_texte_seul' => 'Afficher uniquement le texte',
498
-	'lien_aller_a_la_derniere_page' => 'Aller à la dernière page',
499
-	'lien_aller_a_la_page_nb' => 'Aller à la page @nb@',
500
-	'lien_aller_a_la_page_precedente' => 'Aller à la page précédente',
501
-	'lien_aller_a_la_page_suivante' => 'Aller à la page suivante',
502
-	'lien_aller_a_la_premiere_page' => 'Aller à la première page',
503
-	'lien_liberer' => 'libérer',
504
-	'lien_liberer_tous' => 'Tout libérer',
505
-	'lien_nouvea_pense_bete' => 'NOUVEAU PENSE-BÊTE',
506
-	'lien_nouveau_message' => 'NOUVEAU MESSAGE',
507
-	'lien_nouvelle_annonce' => 'NOUVELLE ANNONCE',
508
-	'lien_petitions' => 'PÉTITION',
509
-	'lien_popularite' => 'popularité : @popularite@%',
510
-	'lien_racine_site' => 'RACINE DU SITE',
511
-	'lien_reessayer' => 'réessayer',
512
-	'lien_repondre_message' => 'Répondre à ce message',
513
-	'lien_supprimer' => 'supprimer',
514
-	'lien_tout_afficher' => 'Tout afficher',
515
-	'lien_visite_site' => 'visiter ce site',
516
-	'lien_visites' => '@visites@ visites',
517
-	'lien_voir_auteur' => 'Voir cette autrice',
518
-	'ligne' => 'Ligne',
519
-	'login' => 'Connexion',
520
-	'login_acces_prive' => 'accès à l’espace privé',
521
-	'login_autre_identifiant' => 'se connecter sous un autre identifiant',
522
-	'login_cookie_accepte' => 'Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).',
523
-	'login_cookie_oblige' => 'Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.',
524
-	'login_deconnexion_ok' => 'Déconnexion effectuée.',
525
-	'login_erreur_pass' => 'Erreur de mot de passe.',
526
-	'login_espace_prive' => 'espace privé',
527
-	'login_identifiant_inconnu' => 'L’identifiant « @login@ » est inconnu.',
528
-	'login_login' => 'Login :',
529
-	'login_login2' => 'Login ou adresse email :',
530
-	'login_login_pass_incorrect' => '(Login ou mot de passe incorrect.)',
531
-	'login_motpasseoublie' => 'mot de passe oublié ?',
532
-	'login_non_securise' => 'Attention, ce formulaire n’est pas sécurisé.
491
+    // L
492
+    'label_ajout_id_rapide' => 'Ajout rapide',
493
+    'label_poids_fichier' => 'Taille',
494
+    'label_ponctuer' => '@label@ :',
495
+    'lien_afficher_icones_seuls' => 'Afficher uniquement les icones',
496
+    'lien_afficher_texte_icones' => 'Afficher les icones et le texte',
497
+    'lien_afficher_texte_seul' => 'Afficher uniquement le texte',
498
+    'lien_aller_a_la_derniere_page' => 'Aller à la dernière page',
499
+    'lien_aller_a_la_page_nb' => 'Aller à la page @nb@',
500
+    'lien_aller_a_la_page_precedente' => 'Aller à la page précédente',
501
+    'lien_aller_a_la_page_suivante' => 'Aller à la page suivante',
502
+    'lien_aller_a_la_premiere_page' => 'Aller à la première page',
503
+    'lien_liberer' => 'libérer',
504
+    'lien_liberer_tous' => 'Tout libérer',
505
+    'lien_nouvea_pense_bete' => 'NOUVEAU PENSE-BÊTE',
506
+    'lien_nouveau_message' => 'NOUVEAU MESSAGE',
507
+    'lien_nouvelle_annonce' => 'NOUVELLE ANNONCE',
508
+    'lien_petitions' => 'PÉTITION',
509
+    'lien_popularite' => 'popularité : @popularite@%',
510
+    'lien_racine_site' => 'RACINE DU SITE',
511
+    'lien_reessayer' => 'réessayer',
512
+    'lien_repondre_message' => 'Répondre à ce message',
513
+    'lien_supprimer' => 'supprimer',
514
+    'lien_tout_afficher' => 'Tout afficher',
515
+    'lien_visite_site' => 'visiter ce site',
516
+    'lien_visites' => '@visites@ visites',
517
+    'lien_voir_auteur' => 'Voir cette autrice',
518
+    'ligne' => 'Ligne',
519
+    'login' => 'Connexion',
520
+    'login_acces_prive' => 'accès à l’espace privé',
521
+    'login_autre_identifiant' => 'se connecter sous un autre identifiant',
522
+    'login_cookie_accepte' => 'Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).',
523
+    'login_cookie_oblige' => 'Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.',
524
+    'login_deconnexion_ok' => 'Déconnexion effectuée.',
525
+    'login_erreur_pass' => 'Erreur de mot de passe.',
526
+    'login_espace_prive' => 'espace privé',
527
+    'login_identifiant_inconnu' => 'L’identifiant « @login@ » est inconnu.',
528
+    'login_login' => 'Login :',
529
+    'login_login2' => 'Login ou adresse email :',
530
+    'login_login_pass_incorrect' => '(Login ou mot de passe incorrect.)',
531
+    'login_motpasseoublie' => 'mot de passe oublié ?',
532
+    'login_non_securise' => 'Attention, ce formulaire n’est pas sécurisé.
533 533
 			Si vous ne voulez pas que votre mot de passe puisse être
534 534
 			intercepté sur le réseau, veuillez activer Javascript
535 535
 			dans votre navigateur et',
536
-	'login_nouvelle_tentative' => 'Nouvelle tentative',
537
-	'login_par_ici' => 'Vous êtes enregistrée... par ici...',
538
-	'login_pass2' => 'Mot de passe :',
539
-	'login_preferez_refuser' => '<b>Si vous préférez refuser les cookies</b>, une autre méthode de connexion (moins sécurisée) est à votre disposition :',
540
-	'login_recharger' => 'recharger cette page',
541
-	'login_rester_identifie' => 'Se souvenir de moi',
542
-	'login_retour_public' => 'Retour au site public',
543
-	'login_retour_site' => 'Retour au site public',
544
-	'login_retoursitepublic' => 'retour au site public',
545
-	'login_sans_cookie' => 'Identification sans cookie',
546
-	'login_securise' => 'Login sécurisé',
547
-	'login_sinscrire' => 's’inscrire', # MODIF
548
-	'login_test_navigateur' => 'test navigateur/reconnexion',
549
-	'login_verifiez_navigateur' => '(Vérifiez toutefois que votre navigateur n’a pas mémorisé votre mot de passe...)',
536
+    'login_nouvelle_tentative' => 'Nouvelle tentative',
537
+    'login_par_ici' => 'Vous êtes enregistrée... par ici...',
538
+    'login_pass2' => 'Mot de passe :',
539
+    'login_preferez_refuser' => '<b>Si vous préférez refuser les cookies</b>, une autre méthode de connexion (moins sécurisée) est à votre disposition :',
540
+    'login_recharger' => 'recharger cette page',
541
+    'login_rester_identifie' => 'Se souvenir de moi',
542
+    'login_retour_public' => 'Retour au site public',
543
+    'login_retour_site' => 'Retour au site public',
544
+    'login_retoursitepublic' => 'retour au site public',
545
+    'login_sans_cookie' => 'Identification sans cookie',
546
+    'login_securise' => 'Login sécurisé',
547
+    'login_sinscrire' => 's’inscrire', # MODIF
548
+    'login_test_navigateur' => 'test navigateur/reconnexion',
549
+    'login_verifiez_navigateur' => '(Vérifiez toutefois que votre navigateur n’a pas mémorisé votre mot de passe...)',
550 550
 
551
-	// M
552
-	'masquer_colonne' => 'Masquer cette colonne',
553
-	'masquer_trad' => 'masquer les traductions',
554
-	'message_nouveaux_identifiants_echec' => 'Impossible de générer de nouveaux identifiants.',
555
-	'message_nouveaux_identifiants_echec_envoi' => 'Les nouveaux identifiants de connexion n’ont pas pu être envoyés.',
556
-	'message_nouveaux_identifiants_ok' => 'Les nouveaux identifiants de connexion ont été envoyés à @email@.',
557
-	'module_fichiers_langues' => 'Fichiers de langue',
551
+    // M
552
+    'masquer_colonne' => 'Masquer cette colonne',
553
+    'masquer_trad' => 'masquer les traductions',
554
+    'message_nouveaux_identifiants_echec' => 'Impossible de générer de nouveaux identifiants.',
555
+    'message_nouveaux_identifiants_echec_envoi' => 'Les nouveaux identifiants de connexion n’ont pas pu être envoyés.',
556
+    'message_nouveaux_identifiants_ok' => 'Les nouveaux identifiants de connexion ont été envoyés à @email@.',
557
+    'module_fichiers_langues' => 'Fichiers de langue',
558 558
 
559
-	// N
560
-	'navigateur_pas_redirige' => 'Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.',
561
-	'numero' => 'Numéro',
559
+    // N
560
+    'navigateur_pas_redirige' => 'Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.',
561
+    'numero' => 'Numéro',
562 562
 
563
-	// O
564
-	'occurence' => 'Occurrence',
565
-	'onglet_affacer_base' => 'Effacer la base',
566
-	'onglet_auteur' => 'L’autrice',
567
-	'onglet_contenu_site' => 'Contenu du site',
568
-	'onglet_evolution_visite_mod' => 'Évolution',
569
-	'onglet_fonctions_avances' => 'Fonctions avancées',
570
-	'onglet_informations_personnelles' => 'Informations personnelles',
571
-	'onglet_interactivite' => 'Interactivité',
572
-	'onglet_messagerie' => 'Messagerie',
573
-	'onglet_repartition_rubrique' => 'Répartition par rubriques',
574
-	'onglet_save_restaur_base' => 'Sauvegarder/restaurer la base',
575
-	'onglet_vider_cache' => 'Vider le cache',
563
+    // O
564
+    'occurence' => 'Occurrence',
565
+    'onglet_affacer_base' => 'Effacer la base',
566
+    'onglet_auteur' => 'L’autrice',
567
+    'onglet_contenu_site' => 'Contenu du site',
568
+    'onglet_evolution_visite_mod' => 'Évolution',
569
+    'onglet_fonctions_avances' => 'Fonctions avancées',
570
+    'onglet_informations_personnelles' => 'Informations personnelles',
571
+    'onglet_interactivite' => 'Interactivité',
572
+    'onglet_messagerie' => 'Messagerie',
573
+    'onglet_repartition_rubrique' => 'Répartition par rubriques',
574
+    'onglet_save_restaur_base' => 'Sauvegarder/restaurer la base',
575
+    'onglet_vider_cache' => 'Vider le cache',
576 576
 
577
-	// P
578
-	'pass_choix_pass' => 'Veuillez choisir votre nouveau mot de passe :',
579
-	'pass_erreur' => 'Erreur',
580
-	'pass_erreur_acces_refuse' => '<b>Erreur :</b> vous n’avez plus accès à ce site.',
581
-	'pass_erreur_code_inconnu' => '<b>Erreur :</b> ce code ne correspond à aucune des visiteuses ayant accès à ce site.',
582
-	'pass_erreur_non_enregistre' => '<b>Erreur :</b> l’adresse <tt>@email_oubli@</tt> n’est pas enregistrée sur ce site.',
583
-	'pass_erreur_non_valide' => '<b>Erreur :</b> cet email <tt>@email_oubli@</tt> n’est pas valide !',
584
-	'pass_erreur_probleme_technique' => '<b>Erreur :</b> à cause d’un problème technique, l’email ne peut pas être envoyé.',
585
-	'pass_espace_prive_bla' => 'L’espace privé de ce site est ouvert aux
577
+    // P
578
+    'pass_choix_pass' => 'Veuillez choisir votre nouveau mot de passe :',
579
+    'pass_erreur' => 'Erreur',
580
+    'pass_erreur_acces_refuse' => '<b>Erreur :</b> vous n’avez plus accès à ce site.',
581
+    'pass_erreur_code_inconnu' => '<b>Erreur :</b> ce code ne correspond à aucune des visiteuses ayant accès à ce site.',
582
+    'pass_erreur_non_enregistre' => '<b>Erreur :</b> l’adresse <tt>@email_oubli@</tt> n’est pas enregistrée sur ce site.',
583
+    'pass_erreur_non_valide' => '<b>Erreur :</b> cet email <tt>@email_oubli@</tt> n’est pas valide !',
584
+    'pass_erreur_probleme_technique' => '<b>Erreur :</b> à cause d’un problème technique, l’email ne peut pas être envoyé.',
585
+    'pass_espace_prive_bla' => 'L’espace privé de ce site est ouvert aux
586 586
 		visiteuses, après inscription. Une fois enregistrée,
587 587
 		vous pourrez consulter les articles en cours de rédaction,
588 588
 		proposer des articles et participer à tous les forums.',
589
-	'pass_forum_bla' => 'Vous avez demandé à intervenir sur un forum
589
+    'pass_forum_bla' => 'Vous avez demandé à intervenir sur un forum
590 590
 		réservé aux visiteuses enregistrées.',
591
-	'pass_indiquez_cidessous' => 'Indiquez ci-dessous l’adresse email sous laquelle vous
591
+    'pass_indiquez_cidessous' => 'Indiquez ci-dessous l’adresse email sous laquelle vous
592 592
 			vous êtes précédemment enregistrée. Vous
593 593
 			recevrez un email vous indiquant la marche à suivre pour
594 594
 			récupérer votre accès.',
595
-	'pass_mail_passcookie' => '(ceci est un message automatique)
595
+    'pass_mail_passcookie' => '(ceci est un message automatique)
596 596
 Pour retrouver votre accès au site
597 597
 @nom_site_spip@ (@adresse_site@)
598 598
 
@@ -604,146 +604,146 @@  discard block
 block discarded – undo
604 604
 et vous reconnecter au site.
605 605
 
606 606
 ',
607
-	'pass_mot_oublie' => 'Mot de passe oublié',
608
-	'pass_nouveau_enregistre' => 'Votre nouveau mot de passe a été enregistré.',
609
-	'pass_nouveau_pass' => 'Nouveau mot de passe',
610
-	'pass_ok' => 'OK',
611
-	'pass_oubli_mot' => 'Oubli du mot de passe',
612
-	'pass_procedure_changer' => 'Pour modifier votre mot de passe, merci d’indiquer l’adresse email associée à votre compte.',
613
-	'pass_quitter_fenetre' => 'Quitter cette fenêtre',
614
-	'pass_rappel_login' => 'Rappel : votre identifiant (login) est « @login@ ».',
615
-	'pass_recevoir_mail' => 'Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide).',
616
-	'pass_retour_public' => 'Retour sur le site public',
617
-	'pass_rien_a_faire_ici' => 'Rien à faire ici.',
618
-	'pass_vousinscrire' => 'Vous inscrire sur ce site',
619
-	'precedent' => 'précédent',
620
-	'previsualisation' => 'Prévisualisation',
621
-	'previsualiser' => 'Prévisualiser',
607
+    'pass_mot_oublie' => 'Mot de passe oublié',
608
+    'pass_nouveau_enregistre' => 'Votre nouveau mot de passe a été enregistré.',
609
+    'pass_nouveau_pass' => 'Nouveau mot de passe',
610
+    'pass_ok' => 'OK',
611
+    'pass_oubli_mot' => 'Oubli du mot de passe',
612
+    'pass_procedure_changer' => 'Pour modifier votre mot de passe, merci d’indiquer l’adresse email associée à votre compte.',
613
+    'pass_quitter_fenetre' => 'Quitter cette fenêtre',
614
+    'pass_rappel_login' => 'Rappel : votre identifiant (login) est « @login@ ».',
615
+    'pass_recevoir_mail' => 'Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide).',
616
+    'pass_retour_public' => 'Retour sur le site public',
617
+    'pass_rien_a_faire_ici' => 'Rien à faire ici.',
618
+    'pass_vousinscrire' => 'Vous inscrire sur ce site',
619
+    'precedent' => 'précédent',
620
+    'previsualisation' => 'Prévisualisation',
621
+    'previsualiser' => 'Prévisualiser',
622 622
 
623
-	// R
624
-	'retour' => 'Retour',
623
+    // R
624
+    'retour' => 'Retour',
625 625
 
626
-	// S
627
-	'spip_conforme_dtd' => 'SPIP considère ce document comme conforme à son DOCTYPE :',
628
-	'squelette' => 'squelette',
629
-	'squelette_inclus_ligne' => 'squelette inclus, ligne',
630
-	'squelette_ligne' => 'squelette, ligne',
631
-	'stats_visites_et_popularite' => '@visites@ visites ; popularité : @popularite@',
632
-	'suivant' => 'suivant',
626
+    // S
627
+    'spip_conforme_dtd' => 'SPIP considère ce document comme conforme à son DOCTYPE :',
628
+    'squelette' => 'squelette',
629
+    'squelette_inclus_ligne' => 'squelette inclus, ligne',
630
+    'squelette_ligne' => 'squelette, ligne',
631
+    'stats_visites_et_popularite' => '@visites@ visites ; popularité : @popularite@',
632
+    'suivant' => 'suivant',
633 633
 
634
-	// T
635
-	'taille_go' => '@taille@ Go',
636
-	'taille_ko' => '@taille@ ko',
637
-	'taille_mo' => '@taille@ Mo',
638
-	'taille_octets' => '@taille@ octets',
639
-	'texte_actualite_site_1' => 'Quand vous serez familiarisée avec l’interface, vous pourrez cliquer sur « ',
640
-	'texte_actualite_site_2' => 'interface complète',
641
-	'texte_actualite_site_3' => ' » pour ouvrir plus de possibilités.',
642
-	'texte_creation_automatique_vignette' => 'La création automatique de vignettes de prévisualisation est activée sur ce site. Si vous installez à partir de ce formulaire des images au(x) format(s) @gd_formats@, elles seront accompagnées d’une vignette d’une taille maximale de @taille_preview@ pixels.',
643
-	'texte_documents_associes' => 'Les documents suivants sont associés à l’article,
634
+    // T
635
+    'taille_go' => '@taille@ Go',
636
+    'taille_ko' => '@taille@ ko',
637
+    'taille_mo' => '@taille@ Mo',
638
+    'taille_octets' => '@taille@ octets',
639
+    'texte_actualite_site_1' => 'Quand vous serez familiarisée avec l’interface, vous pourrez cliquer sur « ',
640
+    'texte_actualite_site_2' => 'interface complète',
641
+    'texte_actualite_site_3' => ' » pour ouvrir plus de possibilités.',
642
+    'texte_creation_automatique_vignette' => 'La création automatique de vignettes de prévisualisation est activée sur ce site. Si vous installez à partir de ce formulaire des images au(x) format(s) @gd_formats@, elles seront accompagnées d’une vignette d’une taille maximale de @taille_preview@ pixels.',
643
+    'texte_documents_associes' => 'Les documents suivants sont associés à l’article,
644 644
 				mais ils n’y ont pas été directement
645 645
 				insérés. Selon la mise en page du site public,
646 646
 				ils pourront apparaître sous forme de documents joints.',
647
-	'texte_erreur_mise_niveau_base' => 'Erreur de base de données lors de la mise à niveau.
647
+    'texte_erreur_mise_niveau_base' => 'Erreur de base de données lors de la mise à niveau.
648 648
 		L’image <b>@fichier@</b> n’est pas passée (article @id_article@).
649 649
 		Notez bien cette référence, réessayez la mise à
650 650
 		niveau, et enfin vérifiez que les images apparaissent
651 651
 		toujours dans les articles.',
652
-	'texte_erreur_visiteur' => 'Vous avez tenté d’accéder à l’espace privé avec un login qui ne le permet pas.',
653
-	'texte_inc_auth_1' => 'Vous êtes identifiée sous le
652
+    'texte_erreur_visiteur' => 'Vous avez tenté d’accéder à l’espace privé avec un login qui ne le permet pas.',
653
+    'texte_inc_auth_1' => 'Vous êtes identifiée sous le
654 654
 		login <b>@auth_login@</b>, mais celui-ci n’existe pas/plus dans la base.
655 655
 		Essayez de vous',
656
-	'texte_inc_auth_2' => 'reconnecter',
657
-	'texte_inc_auth_3' => ', après avoir éventuellement quitté puis
656
+    'texte_inc_auth_2' => 'reconnecter',
657
+    'texte_inc_auth_3' => ', après avoir éventuellement quitté puis
658 658
 		redémarré votre navigateur.',
659
-	'texte_inc_config' => 'Les modifications effectuées dans ces pages influent notablement sur le
659
+    'texte_inc_config' => 'Les modifications effectuées dans ces pages influent notablement sur le
660 660
  fonctionnement de votre site. Nous vous recommandons de ne pas y intervenir tant que vous n’êtes pas
661 661
  familière du fonctionnement du système SPIP. <br /><br /><b>Plus
662 662
  généralement, il est fortement conseillé
663 663
  de laisser la charge de ces pages à la webmestre principale de votre site.</b>',
664
-	'texte_inc_meta_1' => 'Le système a rencontré une erreur lors de l’écriture du fichier <code>@fichier@</code>. Veuillez, en tant qu’administratrice du site,',
665
-	'texte_inc_meta_2' => 'vérifier les droits d’écriture',
666
-	'texte_inc_meta_3' => 'sur le répertoire <code>@repertoire@</code>.',
667
-	'texte_statut_en_cours_redaction' => 'en cours de rédaction',
668
-	'texte_statut_poubelle' => 'à la poubelle',
669
-	'texte_statut_propose_evaluation' => 'proposé à l’évaluation',
670
-	'texte_statut_publie' => 'publié en ligne',
671
-	'texte_statut_refuse' => 'refusé',
672
-	'titre_ajouter_mot_cle' => 'AJOUTER UN MOT-CLÉ :',
673
-	'titre_cadre_raccourcis' => 'RACCOURCIS :',
674
-	'titre_changer_couleur_interface' => 'Changer la couleur de l’interface',
675
-	'titre_image_admin_article' => 'Vous pouvez administrer cet article',
676
-	'titre_image_administrateur' => 'Administratrice',
677
-	'titre_image_aide' => 'De l’aide sur cet élément',
678
-	'titre_image_auteur_supprime' => 'Autrice supprimée',
679
-	'titre_image_redacteur' => 'Rédactrice sans accès',
680
-	'titre_image_redacteur_02' => 'Rédactrice',
681
-	'titre_image_selecteur' => 'Afficher la liste',
682
-	'titre_image_visiteur' => 'Visiteur',
683
-	'titre_joindre_document' => 'JOINDRE UN DOCUMENT',
684
-	'titre_mots_cles' => 'MOTS-CLÉS',
685
-	'titre_probleme_technique' => 'Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.',
686
-	'titre_publier_document' => 'PUBLIER UN DOCUMENT DANS CETTE RUBRIQUE',
687
-	'titre_signatures_attente' => 'Signatures en attente de validation',
688
-	'titre_signatures_confirmees' => 'Signatures confirmées',
689
-	'titre_statistiques' => 'Statistiques du site',
690
-	'titre_titre_document' => 'Titre du document :',
691
-	'todo' => 'à venir',
692
-	'trad_definir_reference' => 'Choisir "@titre@" comme référence des traductions',
693
-	'trad_reference' => '(référence des traductions)',
664
+    'texte_inc_meta_1' => 'Le système a rencontré une erreur lors de l’écriture du fichier <code>@fichier@</code>. Veuillez, en tant qu’administratrice du site,',
665
+    'texte_inc_meta_2' => 'vérifier les droits d’écriture',
666
+    'texte_inc_meta_3' => 'sur le répertoire <code>@repertoire@</code>.',
667
+    'texte_statut_en_cours_redaction' => 'en cours de rédaction',
668
+    'texte_statut_poubelle' => 'à la poubelle',
669
+    'texte_statut_propose_evaluation' => 'proposé à l’évaluation',
670
+    'texte_statut_publie' => 'publié en ligne',
671
+    'texte_statut_refuse' => 'refusé',
672
+    'titre_ajouter_mot_cle' => 'AJOUTER UN MOT-CLÉ :',
673
+    'titre_cadre_raccourcis' => 'RACCOURCIS :',
674
+    'titre_changer_couleur_interface' => 'Changer la couleur de l’interface',
675
+    'titre_image_admin_article' => 'Vous pouvez administrer cet article',
676
+    'titre_image_administrateur' => 'Administratrice',
677
+    'titre_image_aide' => 'De l’aide sur cet élément',
678
+    'titre_image_auteur_supprime' => 'Autrice supprimée',
679
+    'titre_image_redacteur' => 'Rédactrice sans accès',
680
+    'titre_image_redacteur_02' => 'Rédactrice',
681
+    'titre_image_selecteur' => 'Afficher la liste',
682
+    'titre_image_visiteur' => 'Visiteur',
683
+    'titre_joindre_document' => 'JOINDRE UN DOCUMENT',
684
+    'titre_mots_cles' => 'MOTS-CLÉS',
685
+    'titre_probleme_technique' => 'Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.',
686
+    'titre_publier_document' => 'PUBLIER UN DOCUMENT DANS CETTE RUBRIQUE',
687
+    'titre_signatures_attente' => 'Signatures en attente de validation',
688
+    'titre_signatures_confirmees' => 'Signatures confirmées',
689
+    'titre_statistiques' => 'Statistiques du site',
690
+    'titre_titre_document' => 'Titre du document :',
691
+    'todo' => 'à venir',
692
+    'trad_definir_reference' => 'Choisir "@titre@" comme référence des traductions',
693
+    'trad_reference' => '(référence des traductions)',
694 694
 
695
-	// U
696
-	'upload_limit' => 'Ce fichier est trop gros pour le serveur ; la taille maximum autorisée en <i>upload</i> est de @max@.',
695
+    // U
696
+    'upload_limit' => 'Ce fichier est trop gros pour le serveur ; la taille maximum autorisée en <i>upload</i> est de @max@.',
697 697
 
698
-	// Z
699
-	'zbug_balise_b_aval' => ' : balise B en aval',
700
-	'zbug_balise_inexistante' => 'Balise @balise@ mal déclarée pour @from@',
701
-	'zbug_balise_sans_argument' => 'Argument manquant dans la balise @balise@',
702
-	'zbug_boucle' => 'boucle',
703
-	'zbug_boucle_recursive_undef' => 'Boucle récursive non définie : @nom@',
704
-	'zbug_calcul' => 'calcul',
705
-	'zbug_champ_hors_boucle' => 'Champ @champ@ hors boucle',
706
-	'zbug_champ_hors_critere' => 'Champ @champ@ hors critère @critere@',
707
-	'zbug_champ_hors_motif' => 'Champ @champ@ hors d’un contexte @motif@',
708
-	'zbug_code' => 'code',
709
-	'zbug_critere_inconnu' => 'Critère inconnu @critere@',
710
-	'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} sur une table sans clef primaire atomique',
711
-	'zbug_distant_interdit' => 'Externe interdit',
712
-	'zbug_doublon_table_sans_cle_primaire' => 'Doublons sur une table sans clef primaire atomique',
713
-	'zbug_doublon_table_sans_index' => 'Doublons sur une table sans index',
714
-	'zbug_erreur_boucle_double' => 'Double définition de la boucle @id@',
715
-	'zbug_erreur_boucle_fermant' => 'Boucle @id@ non fermée',
716
-	'zbug_erreur_boucle_syntaxe' => 'Syntaxe de la boucle @id@ incorrecte',
717
-	'zbug_erreur_compilation' => 'Erreur de compilation',
718
-	'zbug_erreur_execution_page' => 'Erreur d’exécution',
719
-	'zbug_erreur_filtre' => 'Filtre @filtre@ non défini',
720
-	'zbug_erreur_filtre_nbarg_min' => 'Filtre @filtre@ : il manque @nb@ argument(s)',
721
-	'zbug_erreur_meme_parent' => 'Le critère {meme_parent} ne s’applique qu’aux boucles (FORUMS) ou (RUBRIQUES)',
722
-	'zbug_erreur_squelette' => 'Erreur(s) dans le squelette',
723
-	'zbug_hors_compilation' => 'Hors Compilation',
724
-	'zbug_info_erreur_squelette' => 'Erreur sur le site',
725
-	'zbug_inversion_ordre_inexistant' => 'Inversion d’un ordre inexistant',
726
-	'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans critère {pagination} ou employé dans une boucle récursive',
727
-	'zbug_parametres_inclus_incorrects' => 'Paramètre d’inclusion incorrect : @param@',
728
-	'zbug_profile' => 'Temps de calcul : @time@',
729
-	'zbug_resultat' => 'résultat',
730
-	'zbug_serveur_indefini' => 'Serveur SQL indéfini',
731
-	'zbug_statistiques' => 'Statistiques des requêtes SQL classées par durée',
732
-	'zbug_table_inconnue' => 'Table SQL « @table@ » inconnue',
733
-	'zxml_connus_attributs' => 'attributs connus',
734
-	'zxml_de' => 'de',
735
-	'zxml_inconnu_attribut' => 'attribut inconnu',
736
-	'zxml_inconnu_balise' => 'balise inconnue',
737
-	'zxml_inconnu_entite' => 'entité inconnue',
738
-	'zxml_inconnu_id' => 'ID inconnu',
739
-	'zxml_mais_de' => 'mais de',
740
-	'zxml_non_conforme' => 'n’est pas conforme au motif',
741
-	'zxml_non_fils' => 'n’est pas un fils de',
742
-	'zxml_nonvide_balise' => 'balise non vide',
743
-	'zxml_obligatoire_attribut' => 'attribut obligatoire mais absent dans',
744
-	'zxml_succession_fils_incorrecte' => 'succession des fils incorrecte',
745
-	'zxml_survoler' => 'survoler pour voir les corrects',
746
-	'zxml_valeur_attribut' => 'valeur de l’attribut',
747
-	'zxml_vide_balise' => 'balise vide',
748
-	'zxml_vu' => 'vu auparavant'
698
+    // Z
699
+    'zbug_balise_b_aval' => ' : balise B en aval',
700
+    'zbug_balise_inexistante' => 'Balise @balise@ mal déclarée pour @from@',
701
+    'zbug_balise_sans_argument' => 'Argument manquant dans la balise @balise@',
702
+    'zbug_boucle' => 'boucle',
703
+    'zbug_boucle_recursive_undef' => 'Boucle récursive non définie : @nom@',
704
+    'zbug_calcul' => 'calcul',
705
+    'zbug_champ_hors_boucle' => 'Champ @champ@ hors boucle',
706
+    'zbug_champ_hors_critere' => 'Champ @champ@ hors critère @critere@',
707
+    'zbug_champ_hors_motif' => 'Champ @champ@ hors d’un contexte @motif@',
708
+    'zbug_code' => 'code',
709
+    'zbug_critere_inconnu' => 'Critère inconnu @critere@',
710
+    'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} sur une table sans clef primaire atomique',
711
+    'zbug_distant_interdit' => 'Externe interdit',
712
+    'zbug_doublon_table_sans_cle_primaire' => 'Doublons sur une table sans clef primaire atomique',
713
+    'zbug_doublon_table_sans_index' => 'Doublons sur une table sans index',
714
+    'zbug_erreur_boucle_double' => 'Double définition de la boucle @id@',
715
+    'zbug_erreur_boucle_fermant' => 'Boucle @id@ non fermée',
716
+    'zbug_erreur_boucle_syntaxe' => 'Syntaxe de la boucle @id@ incorrecte',
717
+    'zbug_erreur_compilation' => 'Erreur de compilation',
718
+    'zbug_erreur_execution_page' => 'Erreur d’exécution',
719
+    'zbug_erreur_filtre' => 'Filtre @filtre@ non défini',
720
+    'zbug_erreur_filtre_nbarg_min' => 'Filtre @filtre@ : il manque @nb@ argument(s)',
721
+    'zbug_erreur_meme_parent' => 'Le critère {meme_parent} ne s’applique qu’aux boucles (FORUMS) ou (RUBRIQUES)',
722
+    'zbug_erreur_squelette' => 'Erreur(s) dans le squelette',
723
+    'zbug_hors_compilation' => 'Hors Compilation',
724
+    'zbug_info_erreur_squelette' => 'Erreur sur le site',
725
+    'zbug_inversion_ordre_inexistant' => 'Inversion d’un ordre inexistant',
726
+    'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans critère {pagination} ou employé dans une boucle récursive',
727
+    'zbug_parametres_inclus_incorrects' => 'Paramètre d’inclusion incorrect : @param@',
728
+    'zbug_profile' => 'Temps de calcul : @time@',
729
+    'zbug_resultat' => 'résultat',
730
+    'zbug_serveur_indefini' => 'Serveur SQL indéfini',
731
+    'zbug_statistiques' => 'Statistiques des requêtes SQL classées par durée',
732
+    'zbug_table_inconnue' => 'Table SQL « @table@ » inconnue',
733
+    'zxml_connus_attributs' => 'attributs connus',
734
+    'zxml_de' => 'de',
735
+    'zxml_inconnu_attribut' => 'attribut inconnu',
736
+    'zxml_inconnu_balise' => 'balise inconnue',
737
+    'zxml_inconnu_entite' => 'entité inconnue',
738
+    'zxml_inconnu_id' => 'ID inconnu',
739
+    'zxml_mais_de' => 'mais de',
740
+    'zxml_non_conforme' => 'n’est pas conforme au motif',
741
+    'zxml_non_fils' => 'n’est pas un fils de',
742
+    'zxml_nonvide_balise' => 'balise non vide',
743
+    'zxml_obligatoire_attribut' => 'attribut obligatoire mais absent dans',
744
+    'zxml_succession_fils_incorrecte' => 'succession des fils incorrecte',
745
+    'zxml_survoler' => 'survoler pour voir les corrects',
746
+    'zxml_valeur_attribut' => 'valeur de l’attribut',
747
+    'zxml_vide_balise' => 'balise vide',
748
+    'zxml_vu' => 'vu auparavant'
749 749
 );
Please login to merge, or discard this patch.