Completed
Push — master ( 81ee9f...4ab7e7 )
by cam
01:09
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_oc_prv.php 1 patch
Indentation   +514 added lines, -514 removed lines patch added patch discarded remove patch
@@ -4,476 +4,476 @@  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 aqueu mot clau',
20
-	'admin_modifier_rubrique' => 'Modificar aquela rubrica',
21
-	'admin_recalculer' => 'Tornar calcular la pagina',
22
-	'alerte_maj_impossible' => '<b>Alèrta!</b> Es impossible d’actualizar la basa SQL vèrs la version @version@; benlèu i a un problèma relatiu au drech de modificar la basa de donadas. Vougatz contactar vòstre aubergador.',
23
-	'analyse_xml' => 'Analisi XML',
24
-	'articles_recents' => 'Leis articles mai recents',
25
-	'avis_archive_incorrect' => 'lo fichier archiu es pas un fichier SPIP',
26
-	'avis_archive_invalide' => 'lo fichier archiu es pas valid',
27
-	'avis_attention' => 'ATENCION!',
28
-	'avis_champ_incorrect_type_objet' => 'Nom de camp incorrècte @name@ per objècte de tipe @type@',
29
-	'avis_colonne_inexistante' => 'La colomna @col@ existís pas',
30
-	'avis_erreur' => 'Error: vejatz çai sota',
31
-	'avis_erreur_connexion' => 'Error de connexion',
32
-	'avis_erreur_cookie' => 'problèma de cookie',
33
-	'avis_erreur_fonction_contexte' => 'Error de programacion. Cau pas apelar aquela foncion dins aqueu contèxt.',
34
-	'avis_erreur_mysql' => 'Error SQL ',
35
-	'avis_erreur_sauvegarde' => 'Error dins la sauvagarda (@type@ @id_objet@)! ',
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 aqueu mot clau',
20
+    'admin_modifier_rubrique' => 'Modificar aquela rubrica',
21
+    'admin_recalculer' => 'Tornar calcular la pagina',
22
+    'alerte_maj_impossible' => '<b>Alèrta!</b> Es impossible d’actualizar la basa SQL vèrs la version @version@; benlèu i a un problèma relatiu au drech de modificar la basa de donadas. Vougatz contactar vòstre aubergador.',
23
+    'analyse_xml' => 'Analisi XML',
24
+    'articles_recents' => 'Leis articles mai recents',
25
+    'avis_archive_incorrect' => 'lo fichier archiu es pas un fichier SPIP',
26
+    'avis_archive_invalide' => 'lo fichier archiu es pas valid',
27
+    'avis_attention' => 'ATENCION!',
28
+    'avis_champ_incorrect_type_objet' => 'Nom de camp incorrècte @name@ per objècte de tipe @type@',
29
+    'avis_colonne_inexistante' => 'La colomna @col@ existís pas',
30
+    'avis_erreur' => 'Error: vejatz çai sota',
31
+    'avis_erreur_connexion' => 'Error de connexion',
32
+    'avis_erreur_cookie' => 'problèma de cookie',
33
+    'avis_erreur_fonction_contexte' => 'Error de programacion. Cau pas apelar aquela foncion dins aqueu contèxt.',
34
+    'avis_erreur_mysql' => 'Error SQL ',
35
+    'avis_erreur_sauvegarde' => 'Error dins la sauvagarda (@type@ @id_objet@)! ',
36 36
 
37
-	// B
38
-	'barre_a_accent_grave' => 'Inserir una A accent grèu majuscula',
39
-	'barre_aide' => 'Utilizar leis acorchas tipograficas per enriquir vòstra compaginacion',
40
-	'barre_e_accent_aigu' => 'Inserir una E accent agut majuscula',
41
-	'barre_eo' => 'Inserir una E dins l’O',
42
-	'barre_eo_maj' => 'Inserir una E dins l’O majuscula',
43
-	'barre_euro' => 'Inserir lo simbèu de l’èuro: €',
44
-	'barre_gras' => 'Metre en {{gras}}',
45
-	'barre_guillemets' => 'Enrodar amb de « verguetas »',
46
-	'barre_guillemets_simples' => 'Enrodar amb de „verguetas“',
47
-	'barre_intertitre' => 'Transformar en {{{intertítol}}}',
48
-	'barre_italic' => 'Metre en {italics}',
49
-	'barre_lien' => 'Transformar en [liame ipertèxt->http://...]',
50
-	'barre_lien_input' => 'Vougatz indicar l’adreiça de vòstre liame (podètz indicar una adreiça web sota la forma http://www.lomieusit.com o simplament indicar lo numèro d’un article d’aqueu sit).',
51
-	'barre_note' => 'Transformar en [[Nòta de pè]]',
52
-	'barre_quote' => '<quote>Citar un messatge</quote>',
53
-	'bouton_changer' => 'Cambiar',
54
-	'bouton_chercher' => 'Cercar',
55
-	'bouton_choisir' => 'Chausir',
56
-	'bouton_enregistrer' => 'Registrar',
57
-	'bouton_radio_desactiver_messagerie_interne' => 'Desactivar la messatjariá intèrna',
58
-	'bouton_radio_envoi_annonces' => 'Mandar leis anoncis editoriaus',
59
-	'bouton_radio_non_envoi_annonces' => 'Pas mandar d’anoncis',
60
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Pas mandar la tiera dei novetats',
61
-	'bouton_recharger_page' => 'tornar cargar aquela pagina',
62
-	'bouton_telecharger' => 'Telecargar',
63
-	'bouton_upload' => 'Telecargar', # MODIF
64
-	'bouton_valider' => 'Validar',
37
+    // B
38
+    'barre_a_accent_grave' => 'Inserir una A accent grèu majuscula',
39
+    'barre_aide' => 'Utilizar leis acorchas tipograficas per enriquir vòstra compaginacion',
40
+    'barre_e_accent_aigu' => 'Inserir una E accent agut majuscula',
41
+    'barre_eo' => 'Inserir una E dins l’O',
42
+    'barre_eo_maj' => 'Inserir una E dins l’O majuscula',
43
+    'barre_euro' => 'Inserir lo simbèu de l’èuro: €',
44
+    'barre_gras' => 'Metre en {{gras}}',
45
+    'barre_guillemets' => 'Enrodar amb de « verguetas »',
46
+    'barre_guillemets_simples' => 'Enrodar amb de „verguetas“',
47
+    'barre_intertitre' => 'Transformar en {{{intertítol}}}',
48
+    'barre_italic' => 'Metre en {italics}',
49
+    'barre_lien' => 'Transformar en [liame ipertèxt->http://...]',
50
+    'barre_lien_input' => 'Vougatz indicar l’adreiça de vòstre liame (podètz indicar una adreiça web sota la forma http://www.lomieusit.com o simplament indicar lo numèro d’un article d’aqueu sit).',
51
+    'barre_note' => 'Transformar en [[Nòta de pè]]',
52
+    'barre_quote' => '<quote>Citar un messatge</quote>',
53
+    'bouton_changer' => 'Cambiar',
54
+    'bouton_chercher' => 'Cercar',
55
+    'bouton_choisir' => 'Chausir',
56
+    'bouton_enregistrer' => 'Registrar',
57
+    'bouton_radio_desactiver_messagerie_interne' => 'Desactivar la messatjariá intèrna',
58
+    'bouton_radio_envoi_annonces' => 'Mandar leis anoncis editoriaus',
59
+    'bouton_radio_non_envoi_annonces' => 'Pas mandar d’anoncis',
60
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Pas mandar la tiera dei novetats',
61
+    'bouton_recharger_page' => 'tornar cargar aquela pagina',
62
+    'bouton_telecharger' => 'Telecargar',
63
+    'bouton_upload' => 'Telecargar', # MODIF
64
+    'bouton_valider' => 'Validar',
65 65
 
66
-	// C
67
-	'cal_apresmidi' => 'tantòst',
68
-	'cal_jour_entier' => 'jorn entier',
69
-	'cal_matin' => 'matin',
70
-	'cal_par_jour' => 'calendier per jorn',
71
-	'cal_par_mois' => 'calendier per mes',
72
-	'cal_par_semaine' => 'calendier per setmana',
73
-	'confirm_changer_statut' => 'Atencion, avètz demandat de cambiar l’estatut d’aquel element. Desiratz de contunhar? ',
66
+    // C
67
+    'cal_apresmidi' => 'tantòst',
68
+    'cal_jour_entier' => 'jorn entier',
69
+    'cal_matin' => 'matin',
70
+    'cal_par_jour' => 'calendier per jorn',
71
+    'cal_par_mois' => 'calendier per mes',
72
+    'cal_par_semaine' => 'calendier per setmana',
73
+    'confirm_changer_statut' => 'Atencion, avètz demandat de cambiar l’estatut d’aquel element. Desiratz de contunhar? ',
74 74
 
75
-	// D
76
-	'date_aujourdhui' => 'uei',
77
-	'date_avant_jc' => 'avans lo Crist',
78
-	'date_dans' => 'd’aquí @delai@',
79
-	'date_de_mois_1' => '@j@ de genier',
80
-	'date_de_mois_10' => '@j@ d’octòbre',
81
-	'date_de_mois_11' => '@j@ de novembre',
82
-	'date_de_mois_12' => '@j@ de decembre',
83
-	'date_de_mois_2' => '@j@ de febrier',
84
-	'date_de_mois_3' => '@j@ de març',
85
-	'date_de_mois_4' => '@j@ d’abriu',
86
-	'date_de_mois_5' => '@j@ de mai',
87
-	'date_de_mois_6' => '@j@ de junh',
88
-	'date_de_mois_7' => '@j@ de julh',
89
-	'date_de_mois_8' => '@j@ d’aost',
90
-	'date_de_mois_9' => '@j@ de setembre',
91
-	'date_demain' => 'deman',
92
-	'date_fmt_heures_minutes' => '@h@h@m@min',
93
-	'date_fmt_jour_heure' => '@jour@ a @heure@',
94
-	'date_fmt_jour_mois' => '@jourmois@',
95
-	'date_fmt_jour_mois_annee' => '@jourmois@ de @annee@',
96
-	'date_fmt_mois_annee' => '@nommois@ de @annee@',
97
-	'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
98
-	'date_heures' => 'oras',
99
-	'date_hier' => 'ièr',
100
-	'date_il_y_a' => 'fa @delai@',
101
-	'date_jnum1' => '1r',
102
-	'date_jnum10' => '10',
103
-	'date_jnum11' => '11',
104
-	'date_jnum12' => '12',
105
-	'date_jnum13' => '13',
106
-	'date_jnum14' => '14',
107
-	'date_jnum15' => '15',
108
-	'date_jnum16' => '16',
109
-	'date_jnum17' => '17',
110
-	'date_jnum18' => '18',
111
-	'date_jnum19' => '19',
112
-	'date_jnum2' => '2',
113
-	'date_jnum20' => '20',
114
-	'date_jnum21' => '21',
115
-	'date_jnum22' => '22',
116
-	'date_jnum23' => '23',
117
-	'date_jnum24' => '24',
118
-	'date_jnum25' => '25',
119
-	'date_jnum26' => '26',
120
-	'date_jnum27' => '27',
121
-	'date_jnum28' => '28',
122
-	'date_jnum29' => '29',
123
-	'date_jnum3' => '3',
124
-	'date_jnum30' => '30',
125
-	'date_jnum31' => '31',
126
-	'date_jnum4' => '4',
127
-	'date_jnum5' => '5',
128
-	'date_jnum6' => '6',
129
-	'date_jnum7' => '7',
130
-	'date_jnum8' => '8',
131
-	'date_jnum9' => '9',
132
-	'date_jour_1' => 'dimenge',
133
-	'date_jour_2' => 'diluns',
134
-	'date_jour_3' => 'dimars',
135
-	'date_jour_4' => 'dimècres',
136
-	'date_jour_5' => 'dijòus',
137
-	'date_jour_6' => 'divendres',
138
-	'date_jour_7' => 'dissabte',
139
-	'date_jours' => 'jorns',
140
-	'date_minutes' => 'minutas',
141
-	'date_mois' => 'mes',
142
-	'date_mois_1' => 'genier',
143
-	'date_mois_10' => 'octòbre',
144
-	'date_mois_11' => 'novembre',
145
-	'date_mois_12' => 'decembre',
146
-	'date_mois_2' => 'febrier',
147
-	'date_mois_3' => 'març',
148
-	'date_mois_4' => 'abriu',
149
-	'date_mois_5' => 'mai',
150
-	'date_mois_6' => 'junh',
151
-	'date_mois_7' => 'julh',
152
-	'date_mois_8' => 'aost',
153
-	'date_mois_9' => 'setembre',
154
-	'date_saison_1' => 'ivèrn',
155
-	'date_saison_2' => 'prima',
156
-	'date_saison_3' => 'estiu',
157
-	'date_saison_4' => 'auton',
158
-	'date_semaines' => 'setmana(s)',
159
-	'dirs_commencer' => 'per començar vertadierament l’installacion',
160
-	'dirs_preliminaire' => 'Preliminar: <b>Reglar lei drechs d’accès</b>',
161
-	'dirs_probleme_droits' => 'Problèma de drechs d’accès',
162
-	'dirs_repertoires_absents' => '<b>S’es pas trobat lei repertòris seguents: <ul>@bad_dirs@.</ul> </b>
75
+    // D
76
+    'date_aujourdhui' => 'uei',
77
+    'date_avant_jc' => 'avans lo Crist',
78
+    'date_dans' => 'd’aquí @delai@',
79
+    'date_de_mois_1' => '@j@ de genier',
80
+    'date_de_mois_10' => '@j@ d’octòbre',
81
+    'date_de_mois_11' => '@j@ de novembre',
82
+    'date_de_mois_12' => '@j@ de decembre',
83
+    'date_de_mois_2' => '@j@ de febrier',
84
+    'date_de_mois_3' => '@j@ de març',
85
+    'date_de_mois_4' => '@j@ d’abriu',
86
+    'date_de_mois_5' => '@j@ de mai',
87
+    'date_de_mois_6' => '@j@ de junh',
88
+    'date_de_mois_7' => '@j@ de julh',
89
+    'date_de_mois_8' => '@j@ d’aost',
90
+    'date_de_mois_9' => '@j@ de setembre',
91
+    'date_demain' => 'deman',
92
+    'date_fmt_heures_minutes' => '@h@h@m@min',
93
+    'date_fmt_jour_heure' => '@jour@ a @heure@',
94
+    'date_fmt_jour_mois' => '@jourmois@',
95
+    'date_fmt_jour_mois_annee' => '@jourmois@ de @annee@',
96
+    'date_fmt_mois_annee' => '@nommois@ de @annee@',
97
+    'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
98
+    'date_heures' => 'oras',
99
+    'date_hier' => 'ièr',
100
+    'date_il_y_a' => 'fa @delai@',
101
+    'date_jnum1' => '1r',
102
+    'date_jnum10' => '10',
103
+    'date_jnum11' => '11',
104
+    'date_jnum12' => '12',
105
+    'date_jnum13' => '13',
106
+    'date_jnum14' => '14',
107
+    'date_jnum15' => '15',
108
+    'date_jnum16' => '16',
109
+    'date_jnum17' => '17',
110
+    'date_jnum18' => '18',
111
+    'date_jnum19' => '19',
112
+    'date_jnum2' => '2',
113
+    'date_jnum20' => '20',
114
+    'date_jnum21' => '21',
115
+    'date_jnum22' => '22',
116
+    'date_jnum23' => '23',
117
+    'date_jnum24' => '24',
118
+    'date_jnum25' => '25',
119
+    'date_jnum26' => '26',
120
+    'date_jnum27' => '27',
121
+    'date_jnum28' => '28',
122
+    'date_jnum29' => '29',
123
+    'date_jnum3' => '3',
124
+    'date_jnum30' => '30',
125
+    'date_jnum31' => '31',
126
+    'date_jnum4' => '4',
127
+    'date_jnum5' => '5',
128
+    'date_jnum6' => '6',
129
+    'date_jnum7' => '7',
130
+    'date_jnum8' => '8',
131
+    'date_jnum9' => '9',
132
+    'date_jour_1' => 'dimenge',
133
+    'date_jour_2' => 'diluns',
134
+    'date_jour_3' => 'dimars',
135
+    'date_jour_4' => 'dimècres',
136
+    'date_jour_5' => 'dijòus',
137
+    'date_jour_6' => 'divendres',
138
+    'date_jour_7' => 'dissabte',
139
+    'date_jours' => 'jorns',
140
+    'date_minutes' => 'minutas',
141
+    'date_mois' => 'mes',
142
+    'date_mois_1' => 'genier',
143
+    'date_mois_10' => 'octòbre',
144
+    'date_mois_11' => 'novembre',
145
+    'date_mois_12' => 'decembre',
146
+    'date_mois_2' => 'febrier',
147
+    'date_mois_3' => 'març',
148
+    'date_mois_4' => 'abriu',
149
+    'date_mois_5' => 'mai',
150
+    'date_mois_6' => 'junh',
151
+    'date_mois_7' => 'julh',
152
+    'date_mois_8' => 'aost',
153
+    'date_mois_9' => 'setembre',
154
+    'date_saison_1' => 'ivèrn',
155
+    'date_saison_2' => 'prima',
156
+    'date_saison_3' => 'estiu',
157
+    'date_saison_4' => 'auton',
158
+    'date_semaines' => 'setmana(s)',
159
+    'dirs_commencer' => 'per començar vertadierament l’installacion',
160
+    'dirs_preliminaire' => 'Preliminar: <b>Reglar lei drechs d’accès</b>',
161
+    'dirs_probleme_droits' => 'Problèma de drechs d’accès',
162
+    'dirs_repertoires_absents' => '<b>S’es pas trobat lei repertòris seguents: <ul>@bad_dirs@.</ul> </b>
163 163
   <p>Se pòt que venga d’un problèma de majusculas o minusculas mau mesas.
164 164
   Verificatz que lei minusculas e majusculas d’aquelei repertòris correspòndan ben amb çò afichat
165 165
   çai subre; s’es pas lo cas, tornatz nommar lei repertòris amb vòstre logiciau FTP en corregissent l’error.
166 166
   <p>Un còp qu’auretz fach aquò, poiretz ',
167
-	'dirs_repertoires_suivants' => '<b>Lei repertòris seguents son pas accessibles en escritura: <ul>@bad_dirs@.</ul> </b>
167
+    'dirs_repertoires_suivants' => '<b>Lei repertòris seguents son pas accessibles en escritura: <ul>@bad_dirs@.</ul> </b>
168 168
   <p>Per adobar aquò, utilizatz vòstre client FTP per fin de reglar lei drechs d’accès de cadun
169 169
   d’aquelei repertòris. La guida d’installacion explica en detalh coma cau procedir.
170 170
   </p><p>Tre qu’auretz facha aquela manipulacion, poiretz </p>',
171 171
 
172
-	// E
173
-	'envoi_via_le_site' => 'Mandadís amb lo biais dau sit web',
172
+    // E
173
+    'envoi_via_le_site' => 'Mandadís amb lo biais dau sit web',
174 174
 
175
-	// F
176
-	'fichier_introuvable' => 'S’es pas pogut trobar lo fichier @fichier@.', # MODIF
177
-	'form_deja_inscrit' => 'Siatz ja inscrich(a).',
178
-	'form_email_non_valide' => 'Vòstra adreiça e-mail es pas valida.',
179
-	'form_forum_access_refuse' => 'Podètz pus accedir a aqueu sit.',
180
-	'form_forum_bonjour' => 'Bonjorn @nom@,',
181
-	'form_forum_email_deja_enregistre' => 'Aquela adreiça e-mail ja es registrada, adoncas podètz utilizar vòstre mot de santa Clara costumier.',
182
-	'form_forum_identifiant_mail' => 'Vos avèm mandat vòstre identificant novèu per e-mail.',
183
-	'form_forum_identifiants' => 'Identificants personaus',
184
-	'form_forum_indiquer_nom_email' => 'Indicatz aquí vòstre nom e vòstra adreiça e-mail. Vòstre identificant personau arribarà lèu-lèu, per e-mail.',
185
-	'form_forum_login' => 'login:',
186
-	'form_forum_message_auto' => '(aquò’s un messatge automatic)',
187
-	'form_forum_pass' => 'mot de santa Clara:',
188
-	'form_forum_probleme_mail' => 'Problèma d’e-mail: se pòt pas mandar l’identificant.',
189
-	'form_forum_voici1' => 'Vaicí vòstreis identificants per poder participar ai forums
175
+    // F
176
+    'fichier_introuvable' => 'S’es pas pogut trobar lo fichier @fichier@.', # MODIF
177
+    'form_deja_inscrit' => 'Siatz ja inscrich(a).',
178
+    'form_email_non_valide' => 'Vòstra adreiça e-mail es pas valida.',
179
+    'form_forum_access_refuse' => 'Podètz pus accedir a aqueu sit.',
180
+    'form_forum_bonjour' => 'Bonjorn @nom@,',
181
+    'form_forum_email_deja_enregistre' => 'Aquela adreiça e-mail ja es registrada, adoncas podètz utilizar vòstre mot de santa Clara costumier.',
182
+    'form_forum_identifiant_mail' => 'Vos avèm mandat vòstre identificant novèu per e-mail.',
183
+    'form_forum_identifiants' => 'Identificants personaus',
184
+    'form_forum_indiquer_nom_email' => 'Indicatz aquí vòstre nom e vòstra adreiça e-mail. Vòstre identificant personau arribarà lèu-lèu, per e-mail.',
185
+    'form_forum_login' => 'login:',
186
+    'form_forum_message_auto' => '(aquò’s un messatge automatic)',
187
+    'form_forum_pass' => 'mot de santa Clara:',
188
+    'form_forum_probleme_mail' => 'Problèma d’e-mail: se pòt pas mandar l’identificant.',
189
+    'form_forum_voici1' => 'Vaicí vòstreis identificants per poder participar ai forums
190 190
 dau sit "@nom_site_spip@" (@adresse_site@):',
191
-	'form_forum_voici2' => 'Vaquí vòstreis identificants per prepausar d’articles 
191
+    'form_forum_voici2' => 'Vaquí vòstreis identificants per prepausar d’articles 
192 192
  sus lo sit "@nom_site_spip@" (@adresse_login@):',
193
-	'form_indiquer_email' => 'Vougatz indicar vòstra adreiça e-mail.',
194
-	'form_indiquer_nom' => 'Vougatz indicar vòstre nom.',
195
-	'form_indiquer_nom_site' => 'Vougatz indicar lo nom de vòstre sit.',
196
-	'form_pet_deja_enregistre' => 'Ja aqueu sit es registrat',
197
-	'form_pet_signature_pasprise' => 'Vòstra signatura es pas presa en còmpte.',
198
-	'form_prop_confirmer_envoi' => 'Confirmar lo mandadís',
199
-	'form_prop_description' => 'Descripcion/comentari',
200
-	'form_prop_enregistre' => 'Vòstra proposicion es ben registrada, apareisserà en linha tre que lei responsables dau sit l’auràn validada.',
201
-	'form_prop_envoyer' => 'Mandar un messatge',
202
-	'form_prop_indiquer_email' => 'Vougatz indicar una adreiça e-mail valida',
203
-	'form_prop_indiquer_nom_site' => 'Vougatz indicar lo nom dau sit.',
204
-	'form_prop_indiquer_sujet' => 'Vougatz indicar un subjècte',
205
-	'form_prop_message_envoye' => 'Messatge mandat',
206
-	'form_prop_non_enregistre' => 'Vòstra proposicion es pas estada registrada.',
207
-	'form_prop_sujet' => 'Subjècte',
208
-	'form_prop_url_site' => 'Adreiça (URL) dau sit', # MODIF
209
-	'forum_non_inscrit' => 'Siá siatz pas inscrich(a), siá avètz fach una error d’adreiça o de mot de santa Clara. ',
210
-	'forum_par_auteur' => 'per @auteur@',
211
-	'forum_titre_erreur' => 'Error...',
193
+    'form_indiquer_email' => 'Vougatz indicar vòstra adreiça e-mail.',
194
+    'form_indiquer_nom' => 'Vougatz indicar vòstre nom.',
195
+    'form_indiquer_nom_site' => 'Vougatz indicar lo nom de vòstre sit.',
196
+    'form_pet_deja_enregistre' => 'Ja aqueu sit es registrat',
197
+    'form_pet_signature_pasprise' => 'Vòstra signatura es pas presa en còmpte.',
198
+    'form_prop_confirmer_envoi' => 'Confirmar lo mandadís',
199
+    'form_prop_description' => 'Descripcion/comentari',
200
+    'form_prop_enregistre' => 'Vòstra proposicion es ben registrada, apareisserà en linha tre que lei responsables dau sit l’auràn validada.',
201
+    'form_prop_envoyer' => 'Mandar un messatge',
202
+    'form_prop_indiquer_email' => 'Vougatz indicar una adreiça e-mail valida',
203
+    'form_prop_indiquer_nom_site' => 'Vougatz indicar lo nom dau sit.',
204
+    'form_prop_indiquer_sujet' => 'Vougatz indicar un subjècte',
205
+    'form_prop_message_envoye' => 'Messatge mandat',
206
+    'form_prop_non_enregistre' => 'Vòstra proposicion es pas estada registrada.',
207
+    'form_prop_sujet' => 'Subjècte',
208
+    'form_prop_url_site' => 'Adreiça (URL) dau sit', # MODIF
209
+    'forum_non_inscrit' => 'Siá siatz pas inscrich(a), siá avètz fach una error d’adreiça o de mot de santa Clara. ',
210
+    'forum_par_auteur' => 'per @auteur@',
211
+    'forum_titre_erreur' => 'Error...',
212 212
 
213
-	// I
214
-	'ical_texte_rss_articles' => 'Lo fichier "backend" deis articles d’aquest sit se tròba a l’adreiça:',
215
-	'ical_texte_rss_articles2' => 'Atanben podètz obtenir de fichiers "backend" per leis articles de cada rubrica dau sit:',
216
-	'ical_texte_rss_breves' => 'Existisson mai d’un fichier contenent lei brèvas dau sit. En precisant un numèro de rubrica,  obtendretz ren que lei brèvas de la rubrica aquela.',
217
-	'icone_a_suivre' => 'De seguir',
218
-	'icone_admin_site' => 'Administracion dau sit',
219
-	'icone_agenda' => 'Agenda',
220
-	'icone_aide_ligne' => 'Ajuda',
221
-	'icone_articles' => 'Articles',
222
-	'icone_auteurs' => 'Autors',
223
-	'icone_brouteur' => 'Navigacion rapida',
224
-	'icone_configuration_site' => 'Configuracion',
225
-	'icone_configurer_site' => 'Configurar vòstre sit',
226
-	'icone_creer_nouvel_auteur' => 'Crear un autor nòu ',
227
-	'icone_creer_rubrique' => 'Crear una rubrica',
228
-	'icone_creer_sous_rubrique' => 'Crear una sosrubrica',
229
-	'icone_deconnecter' => 'Se desconnectar',
230
-	'icone_discussions' => 'Discussions',
231
-	'icone_doc_rubrique' => 'Documents dei rubricas',
232
-	'icone_ecrire_article' => 'Escriure un article nòu',
233
-	'icone_edition_site' => 'Edicion',
234
-	'icone_gestion_langues' => 'Gestion dei lengas',
235
-	'icone_informations_personnelles' => 'Informacions personalas',
236
-	'icone_interface_complet' => 'Interfàcia completa',
237
-	'icone_interface_simple' => 'Interfàcia simplificada',
238
-	'icone_maintenance_site' => 'Mantenença dau sit',
239
-	'icone_messagerie_personnelle' => 'Messatjariá personala',
240
-	'icone_repartition_debut' => 'Afichar la reparticion dempuei la començança',
241
-	'icone_rubriques' => 'Rubricas',
242
-	'icone_sauver_site' => 'Sauvagarda dau sit',
243
-	'icone_site_entier' => 'Tot lo sit ',
244
-	'icone_sites_references' => 'Sits referenciats',
245
-	'icone_statistiques' => 'Estadisticas dau sit',
246
-	'icone_suivi_activite' => 'Seguir la vida dau sit',
247
-	'icone_suivi_actualite' => 'Evolucion dau sit',
248
-	'icone_suivi_pettions' => 'Seguir/gerir lei peticions',
249
-	'icone_suivi_revisions' => 'Modificacions deis articles',
250
-	'icone_supprimer_document' => 'Suprimir aqueu document',
251
-	'icone_supprimer_image' => 'Suprimir aquel imatge',
252
-	'icone_tous_articles' => 'Totei vòstreis articles ',
253
-	'icone_tous_auteur' => 'Totei leis autors ',
254
-	'icone_visiter_site' => 'Vesitar', # MODIF
255
-	'icone_voir_en_ligne' => 'Veire en linha',
256
-	'img_indisponible' => 'imatge indisponible',
257
-	'impossible' => 'impossible',
258
-	'info_a_suivre' => 'DE SEGUIR>>',
259
-	'info_acces_interdit' => 'Accès proïbit',
260
-	'info_acces_refuse' => 'Accès refusat',
261
-	'info_action' => 'Accion: @action@',
262
-	'info_administrer_rubriques' => 'Podètz administrar aquela rubrica e sei sosrubricas',
263
-	'info_adresse_non_indiquee' => 'Avètz pas indicat l’adreiça de testar!',
264
-	'info_aide' => 'AJUDA:',
265
-	'info_ajouter_mot' => 'Apondre aqueu mot',
266
-	'info_annonce' => 'ANONCI',
267
-	'info_annonces_generales' => 'Anoncis generaus:',
268
-	'info_article_propose' => 'Article prepausat',
269
-	'info_article_publie' => 'Article publicat',
270
-	'info_article_redaction' => 'Article en cors de redaccion',
271
-	'info_article_refuse' => 'Article refusat',
272
-	'info_article_supprime' => 'Article suprimit',
273
-	'info_articles' => 'Articles',
274
-	'info_articles_a_valider' => 'Los articles de validar',
275
-	'info_articles_proposes' => 'Articles prepausats',
276
-	'info_auteurs_nombre' => 'autor(s)',
277
-	'info_authentification_ftp' => 'autentificacion (per FTP).',
278
-	'info_breves_2' => 'brèvas',
279
-	'info_connexion_refusee' => 'Connexion refusada',
280
-	'info_contact_developpeur' => 'Vougatz contactar un desvolopaire.',
281
-	'info_contenance' => 'Aqueu sit conten:',
282
-	'info_contribution' => 'Contribucions de forum', # MODIF
283
-	'info_copyright' => '@spip@ es un logiciau liure distribuit @lien_gpl@.',
284
-	'info_copyright_doc' => 'Per mai d’informacions, veire lo sit <a href="@spipnet@">http://www.spip.net/oc</a>.', # MODIF
285
-	'info_copyright_gpl' => 'sota licéncia GPL',
286
-	'info_cours_edition' => 'Vòstreis articles en cors de redaccion', # MODIF
287
-	'info_creer_repertoire' => 'Vougatz crear un fichier o un repertòri nommat',
288
-	'info_creer_repertoire_2' => 'dintre lo sosrepertòri   <b>@repertoire@</b>, puei:',
289
-	'info_creer_vignette' => 'creacion automatica de la vinheta',
290
-	'info_deplier' => 'Desplegar',
291
-	'info_descriptif_nombre' => 'descriptiu(s):',
292
-	'info_description' => 'Descripcion:',
293
-	'info_description_2' => 'Descripcion:',
294
-	'info_dimension' => 'Dimensions:',
295
-	'info_ecire_message_prive' => 'Escriure un messatge privat',
296
-	'info_email_invalide' => 'Adreiça e-mail invalida',
297
-	'info_en_cours_validation' => 'Vòstreis articles en cors de redaccion',
298
-	'info_en_ligne' => 'Ara en linha:',
299
-	'info_envoyer_message_prive' => 'Mandar un messatge privat a aquel autor',
300
-	'info_erreur_requete' => 'Error dins la requista',
301
-	'info_erreur_squelette2' => 'Ges d’esqueleta <b>@fichier@</b> es disponibla...',
302
-	'info_erreur_systeme' => 'Error sistèma (errno @errsys@)',
303
-	'info_erreur_systeme2' => 'Lo disc dur es benlèu plen, o la basa de donadas degalhada.<br />
213
+    // I
214
+    'ical_texte_rss_articles' => 'Lo fichier "backend" deis articles d’aquest sit se tròba a l’adreiça:',
215
+    'ical_texte_rss_articles2' => 'Atanben podètz obtenir de fichiers "backend" per leis articles de cada rubrica dau sit:',
216
+    'ical_texte_rss_breves' => 'Existisson mai d’un fichier contenent lei brèvas dau sit. En precisant un numèro de rubrica,  obtendretz ren que lei brèvas de la rubrica aquela.',
217
+    'icone_a_suivre' => 'De seguir',
218
+    'icone_admin_site' => 'Administracion dau sit',
219
+    'icone_agenda' => 'Agenda',
220
+    'icone_aide_ligne' => 'Ajuda',
221
+    'icone_articles' => 'Articles',
222
+    'icone_auteurs' => 'Autors',
223
+    'icone_brouteur' => 'Navigacion rapida',
224
+    'icone_configuration_site' => 'Configuracion',
225
+    'icone_configurer_site' => 'Configurar vòstre sit',
226
+    'icone_creer_nouvel_auteur' => 'Crear un autor nòu ',
227
+    'icone_creer_rubrique' => 'Crear una rubrica',
228
+    'icone_creer_sous_rubrique' => 'Crear una sosrubrica',
229
+    'icone_deconnecter' => 'Se desconnectar',
230
+    'icone_discussions' => 'Discussions',
231
+    'icone_doc_rubrique' => 'Documents dei rubricas',
232
+    'icone_ecrire_article' => 'Escriure un article nòu',
233
+    'icone_edition_site' => 'Edicion',
234
+    'icone_gestion_langues' => 'Gestion dei lengas',
235
+    'icone_informations_personnelles' => 'Informacions personalas',
236
+    'icone_interface_complet' => 'Interfàcia completa',
237
+    'icone_interface_simple' => 'Interfàcia simplificada',
238
+    'icone_maintenance_site' => 'Mantenença dau sit',
239
+    'icone_messagerie_personnelle' => 'Messatjariá personala',
240
+    'icone_repartition_debut' => 'Afichar la reparticion dempuei la començança',
241
+    'icone_rubriques' => 'Rubricas',
242
+    'icone_sauver_site' => 'Sauvagarda dau sit',
243
+    'icone_site_entier' => 'Tot lo sit ',
244
+    'icone_sites_references' => 'Sits referenciats',
245
+    'icone_statistiques' => 'Estadisticas dau sit',
246
+    'icone_suivi_activite' => 'Seguir la vida dau sit',
247
+    'icone_suivi_actualite' => 'Evolucion dau sit',
248
+    'icone_suivi_pettions' => 'Seguir/gerir lei peticions',
249
+    'icone_suivi_revisions' => 'Modificacions deis articles',
250
+    'icone_supprimer_document' => 'Suprimir aqueu document',
251
+    'icone_supprimer_image' => 'Suprimir aquel imatge',
252
+    'icone_tous_articles' => 'Totei vòstreis articles ',
253
+    'icone_tous_auteur' => 'Totei leis autors ',
254
+    'icone_visiter_site' => 'Vesitar', # MODIF
255
+    'icone_voir_en_ligne' => 'Veire en linha',
256
+    'img_indisponible' => 'imatge indisponible',
257
+    'impossible' => 'impossible',
258
+    'info_a_suivre' => 'DE SEGUIR>>',
259
+    'info_acces_interdit' => 'Accès proïbit',
260
+    'info_acces_refuse' => 'Accès refusat',
261
+    'info_action' => 'Accion: @action@',
262
+    'info_administrer_rubriques' => 'Podètz administrar aquela rubrica e sei sosrubricas',
263
+    'info_adresse_non_indiquee' => 'Avètz pas indicat l’adreiça de testar!',
264
+    'info_aide' => 'AJUDA:',
265
+    'info_ajouter_mot' => 'Apondre aqueu mot',
266
+    'info_annonce' => 'ANONCI',
267
+    'info_annonces_generales' => 'Anoncis generaus:',
268
+    'info_article_propose' => 'Article prepausat',
269
+    'info_article_publie' => 'Article publicat',
270
+    'info_article_redaction' => 'Article en cors de redaccion',
271
+    'info_article_refuse' => 'Article refusat',
272
+    'info_article_supprime' => 'Article suprimit',
273
+    'info_articles' => 'Articles',
274
+    'info_articles_a_valider' => 'Los articles de validar',
275
+    'info_articles_proposes' => 'Articles prepausats',
276
+    'info_auteurs_nombre' => 'autor(s)',
277
+    'info_authentification_ftp' => 'autentificacion (per FTP).',
278
+    'info_breves_2' => 'brèvas',
279
+    'info_connexion_refusee' => 'Connexion refusada',
280
+    'info_contact_developpeur' => 'Vougatz contactar un desvolopaire.',
281
+    'info_contenance' => 'Aqueu sit conten:',
282
+    'info_contribution' => 'Contribucions de forum', # MODIF
283
+    'info_copyright' => '@spip@ es un logiciau liure distribuit @lien_gpl@.',
284
+    'info_copyright_doc' => 'Per mai d’informacions, veire lo sit <a href="@spipnet@">http://www.spip.net/oc</a>.', # MODIF
285
+    'info_copyright_gpl' => 'sota licéncia GPL',
286
+    'info_cours_edition' => 'Vòstreis articles en cors de redaccion', # MODIF
287
+    'info_creer_repertoire' => 'Vougatz crear un fichier o un repertòri nommat',
288
+    'info_creer_repertoire_2' => 'dintre lo sosrepertòri   <b>@repertoire@</b>, puei:',
289
+    'info_creer_vignette' => 'creacion automatica de la vinheta',
290
+    'info_deplier' => 'Desplegar',
291
+    'info_descriptif_nombre' => 'descriptiu(s):',
292
+    'info_description' => 'Descripcion:',
293
+    'info_description_2' => 'Descripcion:',
294
+    'info_dimension' => 'Dimensions:',
295
+    'info_ecire_message_prive' => 'Escriure un messatge privat',
296
+    'info_email_invalide' => 'Adreiça e-mail invalida',
297
+    'info_en_cours_validation' => 'Vòstreis articles en cors de redaccion',
298
+    'info_en_ligne' => 'Ara en linha:',
299
+    'info_envoyer_message_prive' => 'Mandar un messatge privat a aquel autor',
300
+    'info_erreur_requete' => 'Error dins la requista',
301
+    'info_erreur_squelette2' => 'Ges d’esqueleta <b>@fichier@</b> es disponibla...',
302
+    'info_erreur_systeme' => 'Error sistèma (errno @errsys@)',
303
+    'info_erreur_systeme2' => 'Lo disc dur es benlèu plen, o la basa de donadas degalhada.<br />
304 304
 <span style="color:red;">Assajatz de <a href=\'@script@\'>reparar la basa</a>, o contactatz vòstre aubergador.</span>',
305
-	'info_fini' => 'Es acabat!',
306
-	'info_format_image' => 'Formats d’imatges que se pòdon utilizar per crear de vinhetas: @gd_formats@.',
307
-	'info_format_non_defini' => 'format non definit',
308
-	'info_grand_ecran' => 'Ecran grand',
309
-	'info_image_aide' => 'AJUDA',
310
-	'info_image_process_titre' => 'Metòde de fabricacion dei vinhetas',
311
-	'info_impossible_lire_page' => '<b>Error!</b> Impossible de legir la pagina <tt><html>@test_proxy@</html></tt> a travèrs dau proxy <tt>',
312
-	'info_installation_systeme_publication' => 'Installacion dau sistèma de publicacion...',
313
-	'info_installer_documents' => 'Podètz installar automaticament totei lei documents contenguts dins lo repertòri @upload@.',
314
-	'info_installer_ftp' => 'Coma administrator, podètz installar (per FTP) de fichiers dins lo dorsier @upload@, puei lei seleccionar directament aicí.',
315
-	'info_installer_images' => 'Podètz installar d’imatges ai formats JPEG, GIF e PNG.',
316
-	'info_installer_images_dossier' => 'Installar d’imatges dins lo dorsier @upload@ per lei poder seleccionar aicí.',
317
-	'info_interface_complete' => 'Interfàcia completa',
318
-	'info_interface_simple' => 'Interfàcia simplificada',
319
-	'info_joindre_document_article' => 'Podètz jónher a aquel article de documents de la mena de',
320
-	'info_joindre_document_rubrique' => 'Podètz apondre a aquela rubrica de documents de la mena de',
321
-	'info_joindre_documents_article' => 'Podètz jónher a aquel article de documents de la mena de:',
322
-	'info_l_article' => 'l’article',
323
-	'info_la_breve' => 'la brèva',
324
-	'info_la_rubrique' => 'la rubrica',
325
-	'info_langue_principale' => 'Lenga majorala dau sit',
326
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixèls',
327
-	'info_les_auteurs_1' => 'per @les_auteurs@ ',
328
-	'info_logo_format_interdit' => 'Lei lògos de formats @formats@ son sols autorizats.',
329
-	'info_logo_max_poids' => 'Lei lògos an de far mens de @maxi@ (aquest fichier fa @actuel@).',
330
-	'info_mail_fournisseur' => '[email protected]',
331
-	'info_message_2' => 'MESSATGE',
332
-	'info_message_supprime' => 'MESSATGE SUPRIMIT',
333
-	'info_mise_en_ligne' => 'Data de mesa en linha:',
334
-	'info_modification_parametres_securite' => 'modificacions dei paramètres de seguretat',
335
-	'info_mois_courant' => 'Dins lo corrent dau mes:',
336
-	'info_mot_cle_ajoute' => 'S’es apondut lo mot clau seguent a',
337
-	'info_multi_herit' => 'Lenga predefinida',
338
-	'info_multi_langues_soulignees' => 'Lei <u>lengas solinhadas</u> benefícian d’una revirada de totei lei tèxts de l’interfàcia. Se seleccionatz aquelei lengas, fòrça elements dau sit public (datas, formularis) se reviraràn automaticament. Per lei lengas non solinhadas, aqueleis elements apareisseràn dins la lenga principala dau sit.', # MODIF
339
-	'info_multilinguisme' => 'Multilingüisme',
340
-	'info_nom_non_utilisateurs_connectes' => 'Vòstre nom apareis pas dins la tiera deis utilizaires connectats.',
341
-	'info_nom_utilisateurs_connectes' => 'Vòstre nom apareis dins la tiera deis utilizaires connectats.',
342
-	'info_nombre_en_ligne' => 'Ara en linha:',
343
-	'info_non_resultat' => 'Ges de resultat per "@cherche_mot@"',
344
-	'info_non_utilisation_messagerie' => 'Utilizatz pas la messatjariá intèrna d’aqueu sit.',
345
-	'info_nouveau_message' => 'AVÈTZ UN MESSATGE NÒU',
346
-	'info_nouveaux_messages' => 'AVÈTZ @total_messages@ MESSATGES NÒUS',
347
-	'info_numero_abbreviation' => 'N° ',
348
-	'info_pense_bete' => 'MEMENTO',
349
-	'info_petit_ecran' => 'Ecran pichòt ',
350
-	'info_pixels' => 'pixèls',
351
-	'info_plusieurs_mots_trouves' => 'Mai d’un mot clau trobat per "@cherche_mot@":',
352
-	'info_portfolio_automatique' => 'Pòrtfòlio automatic:',
353
-	'info_premier_resultat' => '[@debut_limit@ primiers resultats de @total@]',
354
-	'info_premier_resultat_sur' => '[@debut_limit@ primiers resultats de @total@]',
355
-	'info_propose_1' => '[@nom_site_spip@] Prepausa: @titre@',
356
-	'info_propose_2' => 'Article prepausat
305
+    'info_fini' => 'Es acabat!',
306
+    'info_format_image' => 'Formats d’imatges que se pòdon utilizar per crear de vinhetas: @gd_formats@.',
307
+    'info_format_non_defini' => 'format non definit',
308
+    'info_grand_ecran' => 'Ecran grand',
309
+    'info_image_aide' => 'AJUDA',
310
+    'info_image_process_titre' => 'Metòde de fabricacion dei vinhetas',
311
+    'info_impossible_lire_page' => '<b>Error!</b> Impossible de legir la pagina <tt><html>@test_proxy@</html></tt> a travèrs dau proxy <tt>',
312
+    'info_installation_systeme_publication' => 'Installacion dau sistèma de publicacion...',
313
+    'info_installer_documents' => 'Podètz installar automaticament totei lei documents contenguts dins lo repertòri @upload@.',
314
+    'info_installer_ftp' => 'Coma administrator, podètz installar (per FTP) de fichiers dins lo dorsier @upload@, puei lei seleccionar directament aicí.',
315
+    'info_installer_images' => 'Podètz installar d’imatges ai formats JPEG, GIF e PNG.',
316
+    'info_installer_images_dossier' => 'Installar d’imatges dins lo dorsier @upload@ per lei poder seleccionar aicí.',
317
+    'info_interface_complete' => 'Interfàcia completa',
318
+    'info_interface_simple' => 'Interfàcia simplificada',
319
+    'info_joindre_document_article' => 'Podètz jónher a aquel article de documents de la mena de',
320
+    'info_joindre_document_rubrique' => 'Podètz apondre a aquela rubrica de documents de la mena de',
321
+    'info_joindre_documents_article' => 'Podètz jónher a aquel article de documents de la mena de:',
322
+    'info_l_article' => 'l’article',
323
+    'info_la_breve' => 'la brèva',
324
+    'info_la_rubrique' => 'la rubrica',
325
+    'info_langue_principale' => 'Lenga majorala dau sit',
326
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixèls',
327
+    'info_les_auteurs_1' => 'per @les_auteurs@ ',
328
+    'info_logo_format_interdit' => 'Lei lògos de formats @formats@ son sols autorizats.',
329
+    'info_logo_max_poids' => 'Lei lògos an de far mens de @maxi@ (aquest fichier fa @actuel@).',
330
+    'info_mail_fournisseur' => '[email protected]',
331
+    'info_message_2' => 'MESSATGE',
332
+    'info_message_supprime' => 'MESSATGE SUPRIMIT',
333
+    'info_mise_en_ligne' => 'Data de mesa en linha:',
334
+    'info_modification_parametres_securite' => 'modificacions dei paramètres de seguretat',
335
+    'info_mois_courant' => 'Dins lo corrent dau mes:',
336
+    'info_mot_cle_ajoute' => 'S’es apondut lo mot clau seguent a',
337
+    'info_multi_herit' => 'Lenga predefinida',
338
+    'info_multi_langues_soulignees' => 'Lei <u>lengas solinhadas</u> benefícian d’una revirada de totei lei tèxts de l’interfàcia. Se seleccionatz aquelei lengas, fòrça elements dau sit public (datas, formularis) se reviraràn automaticament. Per lei lengas non solinhadas, aqueleis elements apareisseràn dins la lenga principala dau sit.', # MODIF
339
+    'info_multilinguisme' => 'Multilingüisme',
340
+    'info_nom_non_utilisateurs_connectes' => 'Vòstre nom apareis pas dins la tiera deis utilizaires connectats.',
341
+    'info_nom_utilisateurs_connectes' => 'Vòstre nom apareis dins la tiera deis utilizaires connectats.',
342
+    'info_nombre_en_ligne' => 'Ara en linha:',
343
+    'info_non_resultat' => 'Ges de resultat per "@cherche_mot@"',
344
+    'info_non_utilisation_messagerie' => 'Utilizatz pas la messatjariá intèrna d’aqueu sit.',
345
+    'info_nouveau_message' => 'AVÈTZ UN MESSATGE NÒU',
346
+    'info_nouveaux_messages' => 'AVÈTZ @total_messages@ MESSATGES NÒUS',
347
+    'info_numero_abbreviation' => 'N° ',
348
+    'info_pense_bete' => 'MEMENTO',
349
+    'info_petit_ecran' => 'Ecran pichòt ',
350
+    'info_pixels' => 'pixèls',
351
+    'info_plusieurs_mots_trouves' => 'Mai d’un mot clau trobat per "@cherche_mot@":',
352
+    'info_portfolio_automatique' => 'Pòrtfòlio automatic:',
353
+    'info_premier_resultat' => '[@debut_limit@ primiers resultats de @total@]',
354
+    'info_premier_resultat_sur' => '[@debut_limit@ primiers resultats de @total@]',
355
+    'info_propose_1' => '[@nom_site_spip@] Prepausa: @titre@',
356
+    'info_propose_2' => 'Article prepausat
357 357
 ---------------',
358
-	'info_propose_3' => 'L’article "@titre@" es prepausat a la publicacion.',
359
-	'info_propose_4' => 'Vos convidam a lo venir consultar e a bailar vòstre vejaire',
360
-	'info_propose_5' => 'dins lo forum que li es estacat. Es disponible a l’adreiça:',
361
-	'info_publie_01' => 'L’article "@titre@" es estat validat per @connect_nom@.',
362
-	'info_publie_1' => '[@nom_site_spip@] PUBLICA: @titre@',
363
-	'info_publie_2' => 'Article publicat
358
+    'info_propose_3' => 'L’article "@titre@" es prepausat a la publicacion.',
359
+    'info_propose_4' => 'Vos convidam a lo venir consultar e a bailar vòstre vejaire',
360
+    'info_propose_5' => 'dins lo forum que li es estacat. Es disponible a l’adreiça:',
361
+    'info_publie_01' => 'L’article "@titre@" es estat validat per @connect_nom@.',
362
+    'info_publie_1' => '[@nom_site_spip@] PUBLICA: @titre@',
363
+    'info_publie_2' => 'Article publicat
364 364
 --------------',
365
-	'info_rechercher' => 'Cercar',
366
-	'info_rechercher_02' => 'Cercar:',
367
-	'info_remplacer_vignette' => 'Remplaçar la vinheta predefinida per un lògo personalizat:',
368
-	'info_sans_titre_2' => 'sensa títol',
369
-	'info_selectionner_fichier' => 'Podètz seleccionar un fichier dau dorsier @upload@',
370
-	'info_selectionner_fichier_2' => 'Seleccionar un fichier:',
371
-	'info_supprimer_vignette' => 'suprimir la vinheta',
372
-	'info_symbole_bleu' => 'Lo simbèu <b>blau</b> marca un <b>memento</b>: valent a dire un messatge per vòstre usatge personau.',
373
-	'info_symbole_jaune' => 'Lo simbèu <b>jaune</b> marca un <b>anonci per totei lei redactors </b>: leis administrators lo pòdon modificar, cada redactor lo pòt veire.',
374
-	'info_symbole_vert' => 'Lo simbèu <b>verd</b> marca lei <b>messatges escambiats amb d’autreis utilizaires</b> dau sit.',
375
-	'info_telecharger_nouveau_logo' => 'Telecargar un lògo nòu:',
376
-	'info_telecharger_ordinateur' => 'Telecargar a partir de vòstre ordenador:',
377
-	'info_tous_resultats_enregistres' => '[totei lei resultats son registrats]',
378
-	'info_tout_afficher' => 'Afichar tot',
379
-	'info_travaux_texte' => 'Aqueu sit es pas encara configurat. Tornatz mai tard...',
380
-	'info_travaux_titre' => 'Sit en òbras',
381
-	'info_trop_resultat' => 'Tròp de resultats per "@cherche_mot@"; vougatz afinar la cèrca.',
382
-	'info_utilisation_messagerie_interne' => 'Utilizatz la messatjariá intèrna d’aqueu sit.',
383
-	'info_valider_lien' => 'validar aqueu liame',
384
-	'info_verifier_image' => ', vougatz verificar que leis imatges se sigan ben transferits.',
385
-	'info_vignette_defaut' => 'Vinheta predefinida',
386
-	'info_vignette_personnalisee' => 'Vinheta personalizada',
387
-	'info_visite' => 'vesita:',
388
-	'info_vos_rendez_vous' => 'Vòstrei rendètz-vos venents',
389
-	'infos_vos_pense_bete' => 'Vòstrei mementos', # MODIF
365
+    'info_rechercher' => 'Cercar',
366
+    'info_rechercher_02' => 'Cercar:',
367
+    'info_remplacer_vignette' => 'Remplaçar la vinheta predefinida per un lògo personalizat:',
368
+    'info_sans_titre_2' => 'sensa títol',
369
+    'info_selectionner_fichier' => 'Podètz seleccionar un fichier dau dorsier @upload@',
370
+    'info_selectionner_fichier_2' => 'Seleccionar un fichier:',
371
+    'info_supprimer_vignette' => 'suprimir la vinheta',
372
+    'info_symbole_bleu' => 'Lo simbèu <b>blau</b> marca un <b>memento</b>: valent a dire un messatge per vòstre usatge personau.',
373
+    'info_symbole_jaune' => 'Lo simbèu <b>jaune</b> marca un <b>anonci per totei lei redactors </b>: leis administrators lo pòdon modificar, cada redactor lo pòt veire.',
374
+    'info_symbole_vert' => 'Lo simbèu <b>verd</b> marca lei <b>messatges escambiats amb d’autreis utilizaires</b> dau sit.',
375
+    'info_telecharger_nouveau_logo' => 'Telecargar un lògo nòu:',
376
+    'info_telecharger_ordinateur' => 'Telecargar a partir de vòstre ordenador:',
377
+    'info_tous_resultats_enregistres' => '[totei lei resultats son registrats]',
378
+    'info_tout_afficher' => 'Afichar tot',
379
+    'info_travaux_texte' => 'Aqueu sit es pas encara configurat. Tornatz mai tard...',
380
+    'info_travaux_titre' => 'Sit en òbras',
381
+    'info_trop_resultat' => 'Tròp de resultats per "@cherche_mot@"; vougatz afinar la cèrca.',
382
+    'info_utilisation_messagerie_interne' => 'Utilizatz la messatjariá intèrna d’aqueu sit.',
383
+    'info_valider_lien' => 'validar aqueu liame',
384
+    'info_verifier_image' => ', vougatz verificar que leis imatges se sigan ben transferits.',
385
+    'info_vignette_defaut' => 'Vinheta predefinida',
386
+    'info_vignette_personnalisee' => 'Vinheta personalizada',
387
+    'info_visite' => 'vesita:',
388
+    'info_vos_rendez_vous' => 'Vòstrei rendètz-vos venents',
389
+    'infos_vos_pense_bete' => 'Vòstrei mementos', # MODIF
390 390
 
391
-	// L
392
-	'lien_afficher_icones_seuls' => 'Afichar ren que leis icònas ',
393
-	'lien_afficher_texte_icones' => 'Afichar leis icònas e lo tèxt',
394
-	'lien_afficher_texte_seul' => 'Afichar ren que lo tèxt ',
395
-	'lien_liberer' => 'liberar',
396
-	'lien_liberer_tous' => 'liberar aqueleis articles', # MODIF
397
-	'lien_nouvea_pense_bete' => 'MEMENTO NÒU',
398
-	'lien_nouveau_message' => 'MESSATGE NÒU',
399
-	'lien_nouvelle_annonce' => 'ANONCI NOVÈU',
400
-	'lien_petitions' => 'PETICION',
401
-	'lien_popularite' => 'popularitat: @popularite@%',
402
-	'lien_racine_site' => 'RAIÇ DAU SIT',
403
-	'lien_reessayer' => 'tornar assajar',
404
-	'lien_repondre_message' => 'Respòndre a aqueu messatge',
405
-	'lien_supprimer' => 'suprimir',
406
-	'lien_tout_afficher' => 'Afichar tot',
407
-	'lien_visite_site' => 'vesitar aqueu sit',
408
-	'lien_visites' => '@visites@ vesitas',
409
-	'lien_voir_auteur' => 'Veire aquel autor',
410
-	'login_acces_prive' => 'accès a l’espaci privat',
411
-	'login_autre_identifiant' => 'se connectar amb un autre identificant',
412
-	'login_cookie_accepte' => 'Vougatz configurar vòstre navigador per que leis  accèpte (aumens per aqueu sit).',
413
-	'login_cookie_oblige' => 'Per vos identificar d’un biais segur sus aquest sit, vos cau acceptar lei cookies.',
414
-	'login_deconnexion_ok' => 'Siatz desconnectat/ada.',
415
-	'login_erreur_pass' => 'Error de mot de santa Clara.',
416
-	'login_espace_prive' => 'espaci privat',
417
-	'login_identifiant_inconnu' => 'L’identificant «@login@» es inconegut.',
418
-	'login_login' => 'Login:',
419
-	'login_login2' => 'Login (identificant de connexion au sit):', # MODIF
420
-	'login_login_pass_incorrect' => '(Login o mot de santa Clara incorrècte.)',
421
-	'login_motpasseoublie' => 'mot de santa Clara oblidat?',
422
-	'login_non_securise' => 'Atencion, aqueu formulari es pas securizat.
391
+    // L
392
+    'lien_afficher_icones_seuls' => 'Afichar ren que leis icònas ',
393
+    'lien_afficher_texte_icones' => 'Afichar leis icònas e lo tèxt',
394
+    'lien_afficher_texte_seul' => 'Afichar ren que lo tèxt ',
395
+    'lien_liberer' => 'liberar',
396
+    'lien_liberer_tous' => 'liberar aqueleis articles', # MODIF
397
+    'lien_nouvea_pense_bete' => 'MEMENTO NÒU',
398
+    'lien_nouveau_message' => 'MESSATGE NÒU',
399
+    'lien_nouvelle_annonce' => 'ANONCI NOVÈU',
400
+    'lien_petitions' => 'PETICION',
401
+    'lien_popularite' => 'popularitat: @popularite@%',
402
+    'lien_racine_site' => 'RAIÇ DAU SIT',
403
+    'lien_reessayer' => 'tornar assajar',
404
+    'lien_repondre_message' => 'Respòndre a aqueu messatge',
405
+    'lien_supprimer' => 'suprimir',
406
+    'lien_tout_afficher' => 'Afichar tot',
407
+    'lien_visite_site' => 'vesitar aqueu sit',
408
+    'lien_visites' => '@visites@ vesitas',
409
+    'lien_voir_auteur' => 'Veire aquel autor',
410
+    'login_acces_prive' => 'accès a l’espaci privat',
411
+    'login_autre_identifiant' => 'se connectar amb un autre identificant',
412
+    'login_cookie_accepte' => 'Vougatz configurar vòstre navigador per que leis  accèpte (aumens per aqueu sit).',
413
+    'login_cookie_oblige' => 'Per vos identificar d’un biais segur sus aquest sit, vos cau acceptar lei cookies.',
414
+    'login_deconnexion_ok' => 'Siatz desconnectat/ada.',
415
+    'login_erreur_pass' => 'Error de mot de santa Clara.',
416
+    'login_espace_prive' => 'espaci privat',
417
+    'login_identifiant_inconnu' => 'L’identificant «@login@» es inconegut.',
418
+    'login_login' => 'Login:',
419
+    'login_login2' => 'Login (identificant de connexion au sit):', # MODIF
420
+    'login_login_pass_incorrect' => '(Login o mot de santa Clara incorrècte.)',
421
+    'login_motpasseoublie' => 'mot de santa Clara oblidat?',
422
+    'login_non_securise' => 'Atencion, aqueu formulari es pas securizat.
423 423
     Se volètz pas que vòstre mot de santa Clara siá
424 424
    interceptat sus la ret, vougatz activar Javascript 
425 425
    dins vòstre navigador e',
426
-	'login_nouvelle_tentative' => 'novèl assai',
427
-	'login_par_ici' => 'Siatz registrat/ada... per aquí...',
428
-	'login_pass2' => 'Mot de santa Clara:',
429
-	'login_preferez_refuser' => '<b>Se vos agrada mai de refusar lei cookies</b>, un autre metòde de connexion (mens securizat) es a vòstra disposicion:',
430
-	'login_recharger' => 'tornar cargar aquela pagina',
431
-	'login_rester_identifie' => 'Restar identificat/ada quauquei jorns', # MODIF
432
-	'login_retour_public' => 'Tornar au sit public',
433
-	'login_retour_site' => 'Tornar au sit public',
434
-	'login_retoursitepublic' => 'tornar au sit public',
435
-	'login_sinscrire' => 's’inscriure', # MODIF
436
-	'login_test_navigateur' => 'Assai navigador/tornar connectar',
437
-	'login_verifiez_navigateur' => '(pasmens verificatz que vòstre navigador aga pas servat vòstre mot de santa Clara en memòria...)',
426
+    'login_nouvelle_tentative' => 'novèl assai',
427
+    'login_par_ici' => 'Siatz registrat/ada... per aquí...',
428
+    'login_pass2' => 'Mot de santa Clara:',
429
+    'login_preferez_refuser' => '<b>Se vos agrada mai de refusar lei cookies</b>, un autre metòde de connexion (mens securizat) es a vòstra disposicion:',
430
+    'login_recharger' => 'tornar cargar aquela pagina',
431
+    'login_rester_identifie' => 'Restar identificat/ada quauquei jorns', # MODIF
432
+    'login_retour_public' => 'Tornar au sit public',
433
+    'login_retour_site' => 'Tornar au sit public',
434
+    'login_retoursitepublic' => 'tornar au sit public',
435
+    'login_sinscrire' => 's’inscriure', # MODIF
436
+    'login_test_navigateur' => 'Assai navigador/tornar connectar',
437
+    'login_verifiez_navigateur' => '(pasmens verificatz que vòstre navigador aga pas servat vòstre mot de santa Clara en memòria...)',
438 438
 
439
-	// M
440
-	'module_fichiers_langues' => 'Fichiers de lenga',
439
+    // M
440
+    'module_fichiers_langues' => 'Fichiers de lenga',
441 441
 
442
-	// N
443
-	'navigateur_pas_redirige' => 'Se vòstre navigador es pas redirigit, clicatz aicí per contunhar.',
442
+    // N
443
+    'navigateur_pas_redirige' => 'Se vòstre navigador es pas redirigit, clicatz aicí per contunhar.',
444 444
 
445
-	// O
446
-	'onglet_affacer_base' => 'Escafar la basa',
447
-	'onglet_auteur' => 'L’autor',
448
-	'onglet_contenu_site' => 'Contengut dau sit',
449
-	'onglet_evolution_visite_mod' => 'Evolucion',
450
-	'onglet_fonctions_avances' => 'Foncions avançadas',
451
-	'onglet_informations_personnelles' => 'Informacions personalas',
452
-	'onglet_interactivite' => 'Interactivitat',
453
-	'onglet_messagerie' => 'Messatjariá',
454
-	'onglet_repartition_rubrique' => 'Reparticion per rubricas',
455
-	'onglet_save_restaur_base' => 'Sauvagardar/restaurar la basa',
456
-	'onglet_vider_cache' => 'Vujar l’escondedor',
445
+    // O
446
+    'onglet_affacer_base' => 'Escafar la basa',
447
+    'onglet_auteur' => 'L’autor',
448
+    'onglet_contenu_site' => 'Contengut dau sit',
449
+    'onglet_evolution_visite_mod' => 'Evolucion',
450
+    'onglet_fonctions_avances' => 'Foncions avançadas',
451
+    'onglet_informations_personnelles' => 'Informacions personalas',
452
+    'onglet_interactivite' => 'Interactivitat',
453
+    'onglet_messagerie' => 'Messatjariá',
454
+    'onglet_repartition_rubrique' => 'Reparticion per rubricas',
455
+    'onglet_save_restaur_base' => 'Sauvagardar/restaurar la basa',
456
+    'onglet_vider_cache' => 'Vujar l’escondedor',
457 457
 
458
-	// P
459
-	'pass_choix_pass' => 'Vougatz chausir vòstre mot de santa Clara novèu:',
460
-	'pass_erreur' => 'Error',
461
-	'pass_erreur_acces_refuse' => '<b>Error :</b> podètz pus accedir a aqueu sit.',
462
-	'pass_erreur_code_inconnu' => '<b>Error :</b> aqueu còde correspònd a ges de vesitaire que pòsca accedir a aqueu sit.',
463
-	'pass_erreur_non_enregistre' => '<b>Error:</b> l’adreiça <tt>@email_oubli@</tt> es pas registrada sus aqueu sit.',
464
-	'pass_erreur_non_valide' => '<b>Error:</b> aquel e-mail <tt>@email_oubli@</tt> es pas valid!',
465
-	'pass_erreur_probleme_technique' => '<b>Error:</b> per amòr d’un problèma tecnic, l’e-mail se pòt pas mandar. ',
466
-	'pass_espace_prive_bla' => 'L’espaci privat d’aquest sit es dobèrt ai
458
+    // P
459
+    'pass_choix_pass' => 'Vougatz chausir vòstre mot de santa Clara novèu:',
460
+    'pass_erreur' => 'Error',
461
+    'pass_erreur_acces_refuse' => '<b>Error :</b> podètz pus accedir a aqueu sit.',
462
+    'pass_erreur_code_inconnu' => '<b>Error :</b> aqueu còde correspònd a ges de vesitaire que pòsca accedir a aqueu sit.',
463
+    'pass_erreur_non_enregistre' => '<b>Error:</b> l’adreiça <tt>@email_oubli@</tt> es pas registrada sus aqueu sit.',
464
+    'pass_erreur_non_valide' => '<b>Error:</b> aquel e-mail <tt>@email_oubli@</tt> es pas valid!',
465
+    'pass_erreur_probleme_technique' => '<b>Error:</b> per amòr d’un problèma tecnic, l’e-mail se pòt pas mandar. ',
466
+    'pass_espace_prive_bla' => 'L’espaci privat d’aquest sit es dobèrt ai
467 467
   vesitaires que se son inscrichs. Un còp registrat/ada,
468 468
   poiretz consultar leis articles en cors de redaccion,
469 469
   prepausar d’articles novèus e participar a totei lei forums.',
470
-	'pass_forum_bla' => 'Avètz demandat d’intervenir dins un forum
470
+    'pass_forum_bla' => 'Avètz demandat d’intervenir dins un forum
471 471
   reservat ai vesitaires registrats.',
472
-	'pass_indiquez_cidessous' => 'Marcatz çai sota l’adreiça e-mail ont
472
+    'pass_indiquez_cidessous' => 'Marcatz çai sota l’adreiça e-mail ont
473 473
  vos registreriatz lo còp passat. 
474 474
    Recebretz un e-mail que vos bailarà lo biais de 
475 475
     tornar trobar vòstre accès.',
476
-	'pass_mail_passcookie' => '(aquò’s un messatge automatic)
476
+    'pass_mail_passcookie' => '(aquò’s un messatge automatic)
477 477
 Per tornar trobar vòstre accès au sit
478 478
 @nom_site_spip@ (@adresse_site@)
479 479
 
@@ -485,101 +485,101 @@  discard block
 block discarded – undo
485 485
 e vos tornar connectar au sit.
486 486
 
487 487
 ',
488
-	'pass_mot_oublie' => 'Mot de santa Clara demembrat',
489
-	'pass_nouveau_enregistre' => 'Vòstre mot de santa Clara novèu es estat registrat.',
490
-	'pass_nouveau_pass' => 'Mot de santa Clara novèu',
491
-	'pass_ok' => 'D’acòrdi',
492
-	'pass_oubli_mot' => 'Mot de santa Clara demembrat',
493
-	'pass_quitter_fenetre' => 'Quitar aquesta fenèstra ',
494
-	'pass_rappel_login' => 'Remembrança: vòstre identificant (login) es « @login@ ».',
495
-	'pass_recevoir_mail' => 'Recebretz un e-mail que vos explicarà coma tornar trobar vòstre accès au sit.', # MODIF
496
-	'pass_retour_public' => 'Tornar au sit public',
497
-	'pass_rien_a_faire_ici' => 'Ren a faire aicí.',
498
-	'pass_vousinscrire' => 'S’inscriure sus aquest sit',
499
-	'precedent' => 'precedent',
500
-	'previsualisation' => 'Previsualizacion',
501
-	'previsualiser' => 'Previsualizar',
488
+    'pass_mot_oublie' => 'Mot de santa Clara demembrat',
489
+    'pass_nouveau_enregistre' => 'Vòstre mot de santa Clara novèu es estat registrat.',
490
+    'pass_nouveau_pass' => 'Mot de santa Clara novèu',
491
+    'pass_ok' => 'D’acòrdi',
492
+    'pass_oubli_mot' => 'Mot de santa Clara demembrat',
493
+    'pass_quitter_fenetre' => 'Quitar aquesta fenèstra ',
494
+    'pass_rappel_login' => 'Remembrança: vòstre identificant (login) es « @login@ ».',
495
+    'pass_recevoir_mail' => 'Recebretz un e-mail que vos explicarà coma tornar trobar vòstre accès au sit.', # MODIF
496
+    'pass_retour_public' => 'Tornar au sit public',
497
+    'pass_rien_a_faire_ici' => 'Ren a faire aicí.',
498
+    'pass_vousinscrire' => 'S’inscriure sus aquest sit',
499
+    'precedent' => 'precedent',
500
+    'previsualisation' => 'Previsualizacion',
501
+    'previsualiser' => 'Previsualizar',
502 502
 
503
-	// S
504
-	'squelette' => 'esqueleta',
505
-	'squelette_inclus_ligne' => 'esqueleta inclusa, linha',
506
-	'squelette_ligne' => 'esqueleta, linha',
507
-	'stats_visites_et_popularite' => '@visites@ vesitas; popularitat: @popularite@',
508
-	'suivant' => 'seguent',
503
+    // S
504
+    'squelette' => 'esqueleta',
505
+    'squelette_inclus_ligne' => 'esqueleta inclusa, linha',
506
+    'squelette_ligne' => 'esqueleta, linha',
507
+    'stats_visites_et_popularite' => '@visites@ vesitas; popularitat: @popularite@',
508
+    'suivant' => 'seguent',
509 509
 
510
-	// T
511
-	'taille_ko' => '@taille@ Ko',
512
-	'taille_mo' => '@taille@ Mo',
513
-	'taille_octets' => '@taille@ octets',
514
-	'texte_actualite_site_1' => 'Quand vos seretz familharizat/ada amb l’interfàcia, poiretz clicar sus «',
515
-	'texte_actualite_site_2' => 'Interfàcia completa',
516
-	'texte_actualite_site_3' => '" per dobrir mai de possibilitats.',
517
-	'texte_creation_automatique_vignette' => 'La creacion automatica de vinhetas de previsualizacion es activada sus aqueu sit. S’installatz a partir d’aqueu formulari d’imatges au(ai) format(s) @gd_formats@, s’acompanharàn d’una vinheta d’una talha maximala de @taille_preview@ pixèls.',
518
-	'texte_documents_associes' => 'Lei documents seguents s’assòcian a l’article,
510
+    // T
511
+    'taille_ko' => '@taille@ Ko',
512
+    'taille_mo' => '@taille@ Mo',
513
+    'taille_octets' => '@taille@ octets',
514
+    'texte_actualite_site_1' => 'Quand vos seretz familharizat/ada amb l’interfàcia, poiretz clicar sus «',
515
+    'texte_actualite_site_2' => 'Interfàcia completa',
516
+    'texte_actualite_site_3' => '" per dobrir mai de possibilitats.',
517
+    'texte_creation_automatique_vignette' => 'La creacion automatica de vinhetas de previsualizacion es activada sus aqueu sit. S’installatz a partir d’aqueu formulari d’imatges au(ai) format(s) @gd_formats@, s’acompanharàn d’una vinheta d’una talha maximala de @taille_preview@ pixèls.',
518
+    'texte_documents_associes' => 'Lei documents seguents s’assòcian a l’article,
519 519
  mai s’inserisson pas
520 520
  directament. Segon la compaginacion dau sit public,
521 521
  poiràn aparéisser sota forma de documents jonchs.',
522
-	'texte_erreur_mise_niveau_base' => 'Error de basa de donadas pendent la mesa a nivèu. L’imatge <b>@fichier@</b> es pas passat (article @id_article@).
522
+    'texte_erreur_mise_niveau_base' => 'Error de basa de donadas pendent la mesa a nivèu. L’imatge <b>@fichier@</b> es pas passat (article @id_article@).
523 523
   Notatz ben aquela referéncia, tornatz assajar la mesa a
524 524
  nivèu, e verificatz puei que leis imatges aparegan
525 525
  encara dins leis articles.',
526
-	'texte_inc_auth_1' => 'Siatz identificat/ada coma
526
+    'texte_inc_auth_1' => 'Siatz identificat/ada coma
527 527
    <b>@auth_login@</b>, mai aqueu login existís pas o pus dins la basa.
528 528
   Assajatz de vos', # MODIF
529
-	'texte_inc_auth_2' => 'tornar connectar',
530
-	'texte_inc_auth_3' => ', après qu’auretz quitat eventualament, puei
529
+    'texte_inc_auth_2' => 'tornar connectar',
530
+    'texte_inc_auth_3' => ', après qu’auretz quitat eventualament, puei
531 531
   tornat lançar vòstre navigador.',
532
-	'texte_inc_config' => 'Lei modificacions fachas dins aquestei paginas influéncian bravament lo
532
+    'texte_inc_config' => 'Lei modificacions fachas dins aquestei paginas influéncian bravament lo
533 533
  foncionament de vòstre sit. Vos aconselham de pas i intervenir tant que siatz pas
534 534
  acostumat/ada au foncionament dau sistèma SPIP. <br /><br /><b>
535 535
  En generau, se conselha fòrt
536 536
  de laissar la carga d’aquestei paginas au webmèstre principau de vòstre sit.</b>',
537
-	'texte_inc_meta_1' => 'Lo sistèma a rescontrat una error dins l’escritura dau fichier <code>@fichier@</code>.Vougatz, coma administrator/tritz dau sit,',
538
-	'texte_inc_meta_2' => 'verificar lei drechs d’escritura',
539
-	'texte_inc_meta_3' => 'dins lo repertòri <code>@repertoire@</code>.',
540
-	'texte_statut_en_cours_redaction' => 'en cors de redaccion',
541
-	'texte_statut_poubelle' => 'au bordilhier',
542
-	'texte_statut_propose_evaluation' => 'prepausat per avaloracion',
543
-	'texte_statut_publie' => 'publicat en linha',
544
-	'texte_statut_refuse' => 'refusat',
545
-	'titre_ajouter_mot_cle' => 'APONDRE UN MOT CLAU:',
546
-	'titre_cadre_raccourcis' => 'ACORCHAS:',
547
-	'titre_changer_couleur_interface' => 'Cambiar la color de l’interfàcia',
548
-	'titre_image_admin_article' => 'Podètz administrar aquest article',
549
-	'titre_image_administrateur' => 'Administrator',
550
-	'titre_image_aide' => 'D’ajuda subre aquel element',
551
-	'titre_image_auteur_supprime' => 'Autor suprimit',
552
-	'titre_image_redacteur' => 'Redactor sens accès',
553
-	'titre_image_redacteur_02' => 'Redactor',
554
-	'titre_image_visiteur' => 'Vesitaire',
555
-	'titre_joindre_document' => 'JÓNHER UN DOCUMENT',
556
-	'titre_mots_cles' => 'MOTS CLAU',
557
-	'titre_probleme_technique' => 'Atencion: un problèma tecnic (servidor SQL) empacha d’accedir a aquela part dau sit. Grandmercé de vòstra indulgéncia.',
558
-	'titre_publier_document' => 'PUBLICAR UN DOCUMENT DINS AQUELA RUBRICA',
559
-	'titre_statistiques' => 'Estadisticas dau sit',
560
-	'titre_titre_document' => 'Títol dau document:',
561
-	'trad_reference' => '(article de referéncia)', # MODIF
537
+    'texte_inc_meta_1' => 'Lo sistèma a rescontrat una error dins l’escritura dau fichier <code>@fichier@</code>.Vougatz, coma administrator/tritz dau sit,',
538
+    'texte_inc_meta_2' => 'verificar lei drechs d’escritura',
539
+    'texte_inc_meta_3' => 'dins lo repertòri <code>@repertoire@</code>.',
540
+    'texte_statut_en_cours_redaction' => 'en cors de redaccion',
541
+    'texte_statut_poubelle' => 'au bordilhier',
542
+    'texte_statut_propose_evaluation' => 'prepausat per avaloracion',
543
+    'texte_statut_publie' => 'publicat en linha',
544
+    'texte_statut_refuse' => 'refusat',
545
+    'titre_ajouter_mot_cle' => 'APONDRE UN MOT CLAU:',
546
+    'titre_cadre_raccourcis' => 'ACORCHAS:',
547
+    'titre_changer_couleur_interface' => 'Cambiar la color de l’interfàcia',
548
+    'titre_image_admin_article' => 'Podètz administrar aquest article',
549
+    'titre_image_administrateur' => 'Administrator',
550
+    'titre_image_aide' => 'D’ajuda subre aquel element',
551
+    'titre_image_auteur_supprime' => 'Autor suprimit',
552
+    'titre_image_redacteur' => 'Redactor sens accès',
553
+    'titre_image_redacteur_02' => 'Redactor',
554
+    'titre_image_visiteur' => 'Vesitaire',
555
+    'titre_joindre_document' => 'JÓNHER UN DOCUMENT',
556
+    'titre_mots_cles' => 'MOTS CLAU',
557
+    'titre_probleme_technique' => 'Atencion: un problèma tecnic (servidor SQL) empacha d’accedir a aquela part dau sit. Grandmercé de vòstra indulgéncia.',
558
+    'titre_publier_document' => 'PUBLICAR UN DOCUMENT DINS AQUELA RUBRICA',
559
+    'titre_statistiques' => 'Estadisticas dau sit',
560
+    'titre_titre_document' => 'Títol dau document:',
561
+    'trad_reference' => '(article de referéncia)', # MODIF
562 562
 
563
-	// Z
564
-	'zbug_balise_b_aval' => ' : balisa B en avau',
565
-	'zbug_boucle' => 'bloca',
566
-	'zbug_boucle_recursive_undef' => 'bloca recursiva non definida', # MODIF
567
-	'zbug_champ_hors_boucle' => 'Camp @champ@ fòra bloca',
568
-	'zbug_champ_hors_motif' => 'Camp @champ@ en defòra d’una bloca de motiu @motif@', # MODIF
569
-	'zbug_code' => 'còde',
570
-	'zbug_critere_inconnu' => 'critèri inconegut @critere@', # MODIF
571
-	'zbug_distant_interdit' => 'extèrne enebit', # MODIF
572
-	'zbug_erreur_boucle_double' => 'BLOCA@id@: definicion dobla', # MODIF
573
-	'zbug_erreur_boucle_fermant' => 'BLOCA@id@: lo tag barrador manca', # MODIF
574
-	'zbug_erreur_boucle_syntaxe' => 'Sintaxi bloca incorrècta', # MODIF
575
-	'zbug_erreur_execution_page' => 'error d’execucion de la pagina', # MODIF
576
-	'zbug_erreur_filtre' => 'Error: filtre <b>« @filtre@ »</b> non definit', # MODIF
577
-	'zbug_erreur_meme_parent' => '{meme_parent} s’aplica ren qu’ai blocas (FORUMS) o (RUBRIQUES)', # MODIF
578
-	'zbug_erreur_squelette' => 'Error(s) dins l’esqueleta',
579
-	'zbug_info_erreur_squelette' => 'Error subre lo sit',
580
-	'zbug_inversion_ordre_inexistant' => 'inversion d’un òrdre inexistent', # MODIF
581
-	'zbug_parametres_inclus_incorrects' => 'Paramètres d’inclusion incorrèctes', # MODIF
582
-	'zbug_resultat' => 'resultat',
583
-	'zbug_serveur_indefini' => 'servidor SQL indefinit', # MODIF
584
-	'zbug_table_inconnue' => 'Taula SQL «@table@» inconeguda'
563
+    // Z
564
+    'zbug_balise_b_aval' => ' : balisa B en avau',
565
+    'zbug_boucle' => 'bloca',
566
+    'zbug_boucle_recursive_undef' => 'bloca recursiva non definida', # MODIF
567
+    'zbug_champ_hors_boucle' => 'Camp @champ@ fòra bloca',
568
+    'zbug_champ_hors_motif' => 'Camp @champ@ en defòra d’una bloca de motiu @motif@', # MODIF
569
+    'zbug_code' => 'còde',
570
+    'zbug_critere_inconnu' => 'critèri inconegut @critere@', # MODIF
571
+    'zbug_distant_interdit' => 'extèrne enebit', # MODIF
572
+    'zbug_erreur_boucle_double' => 'BLOCA@id@: definicion dobla', # MODIF
573
+    'zbug_erreur_boucle_fermant' => 'BLOCA@id@: lo tag barrador manca', # MODIF
574
+    'zbug_erreur_boucle_syntaxe' => 'Sintaxi bloca incorrècta', # MODIF
575
+    'zbug_erreur_execution_page' => 'error d’execucion de la pagina', # MODIF
576
+    'zbug_erreur_filtre' => 'Error: filtre <b>« @filtre@ »</b> non definit', # MODIF
577
+    'zbug_erreur_meme_parent' => '{meme_parent} s’aplica ren qu’ai blocas (FORUMS) o (RUBRIQUES)', # MODIF
578
+    'zbug_erreur_squelette' => 'Error(s) dins l’esqueleta',
579
+    'zbug_info_erreur_squelette' => 'Error subre lo sit',
580
+    'zbug_inversion_ordre_inexistant' => 'inversion d’un òrdre inexistent', # MODIF
581
+    'zbug_parametres_inclus_incorrects' => 'Paramètres d’inclusion incorrèctes', # MODIF
582
+    'zbug_resultat' => 'resultat',
583
+    'zbug_serveur_indefini' => 'servidor SQL indefinit', # MODIF
584
+    'zbug_table_inconnue' => 'Taula SQL «@table@» inconeguda'
585 585
 );
Please login to merge, or discard this patch.