Completed
Push — master ( b872a5...71c68d )
by cam
01:07
created
ecrire/inc/cvt_multietapes.php 1 patch
Indentation   +165 added lines, -165 removed lines patch added patch discarded remove patch
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
  */
67 67
 
68 68
 if (!defined('_ECRIRE_INC_VERSION')) {
69
-	return;
69
+    return;
70 70
 }
71 71
 
72 72
 /**
@@ -77,46 +77,46 @@  discard block
 block discarded – undo
77 77
  * @return array|false
78 78
  */
79 79
 function cvtmulti_recuperer_post_precedents($form) {
80
-	include_spip('inc/filtres');
81
-	if (
82
-		$form
83
-		and $c = _request('cvtm_prev_post')
84
-		and $c = decoder_contexte_ajax($c, $form)
85
-	) {
86
-		#var_dump($c);
80
+    include_spip('inc/filtres');
81
+    if (
82
+        $form
83
+        and $c = _request('cvtm_prev_post')
84
+        and $c = decoder_contexte_ajax($c, $form)
85
+    ) {
86
+        #var_dump($c);
87 87
 
88
-		# reinjecter dans la bonne variable pour permettre de retrouver
89
-		# toutes les saisies dans un seul tableau
90
-		if ($_SERVER['REQUEST_METHOD'] == 'POST') {
91
-			$store = &$_POST;
92
-		} else {
93
-			$store = &$_GET;
94
-		}
88
+        # reinjecter dans la bonne variable pour permettre de retrouver
89
+        # toutes les saisies dans un seul tableau
90
+        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
91
+            $store = &$_POST;
92
+        } else {
93
+            $store = &$_GET;
94
+        }
95 95
 
96
-		foreach ($c as $k => $v) { // on ecrase pas si saisi a nouveau !
97
-		if (!isset($store[$k])) {
98
-				$_REQUEST[$k] = $store[$k] = $v;
99
-		} // mais si tableau des deux cotes, on merge avec priorite a la derniere saisie
100
-			elseif (
101
-				is_array($store[$k])
102
-				and is_array($v)
103
-				and $z = array_keys($v)
104
-				and !is_numeric(reset($z))
105
-				and $z = array_keys($store[$k])
106
-				and !is_numeric(reset($z))
107
-			) {
108
-				$_REQUEST[$k] = $store[$k] = array_merge($v, $store[$k]);
109
-			}
110
-		}
96
+        foreach ($c as $k => $v) { // on ecrase pas si saisi a nouveau !
97
+        if (!isset($store[$k])) {
98
+                $_REQUEST[$k] = $store[$k] = $v;
99
+        } // mais si tableau des deux cotes, on merge avec priorite a la derniere saisie
100
+            elseif (
101
+                is_array($store[$k])
102
+                and is_array($v)
103
+                and $z = array_keys($v)
104
+                and !is_numeric(reset($z))
105
+                and $z = array_keys($store[$k])
106
+                and !is_numeric(reset($z))
107
+            ) {
108
+                $_REQUEST[$k] = $store[$k] = array_merge($v, $store[$k]);
109
+            }
110
+        }
111 111
 
112
-		// vider pour eviter un second appel a verifier_n
113
-		// en cas de double implementation (unipotence)
114
-		set_request('cvtm_prev_post');
112
+        // vider pour eviter un second appel a verifier_n
113
+        // en cas de double implementation (unipotence)
114
+        set_request('cvtm_prev_post');
115 115
 
116
-		return [$c['_etape'], $c['_etapes']];
117
-	}
116
+        return [$c['_etape'], $c['_etapes']];
117
+    }
118 118
 
119
-	return false;
119
+    return false;
120 120
 }
121 121
 
122 122
 /**
@@ -129,28 +129,28 @@  discard block
 block discarded – undo
129 129
  * @return array
130 130
  */
131 131
 function cvtmulti_sauver_post($form, $je_suis_poste, &$valeurs) {
132
-	if (!isset($valeurs['_cvtm_prev_post'])) {
133
-		$post = ['_etape' => $valeurs['_etape'], '_etapes' => $valeurs['_etapes']];
134
-		foreach (array_keys($valeurs) as $champ) {
135
-			if (substr($champ, 0, 1) !== '_') {
136
-				if ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])) {
137
-					if (($v = _request($champ)) !== null) {
138
-						$post[$champ] = $v;
139
-					}
140
-				}
141
-			}
142
-		}
143
-		include_spip('inc/filtres');
144
-		$c = encoder_contexte_ajax($post, $form);
145
-		if (!isset($valeurs['_hidden'])) {
146
-			$valeurs['_hidden'] = '';
147
-		}
148
-		$valeurs['_hidden'] .= "<input type='hidden' name='cvtm_prev_post' value='$c' />";
149
-		// marquer comme fait, pour eviter double encodage (unipotence)
150
-		$valeurs['_cvtm_prev_post'] = true;
151
-	}
132
+    if (!isset($valeurs['_cvtm_prev_post'])) {
133
+        $post = ['_etape' => $valeurs['_etape'], '_etapes' => $valeurs['_etapes']];
134
+        foreach (array_keys($valeurs) as $champ) {
135
+            if (substr($champ, 0, 1) !== '_') {
136
+                if ($je_suis_poste || (isset($valeurs['_forcer_request']) && $valeurs['_forcer_request'])) {
137
+                    if (($v = _request($champ)) !== null) {
138
+                        $post[$champ] = $v;
139
+                    }
140
+                }
141
+            }
142
+        }
143
+        include_spip('inc/filtres');
144
+        $c = encoder_contexte_ajax($post, $form);
145
+        if (!isset($valeurs['_hidden'])) {
146
+            $valeurs['_hidden'] = '';
147
+        }
148
+        $valeurs['_hidden'] .= "<input type='hidden' name='cvtm_prev_post' value='$c' />";
149
+        // marquer comme fait, pour eviter double encodage (unipotence)
150
+        $valeurs['_cvtm_prev_post'] = true;
151
+    }
152 152
 
153
-	return $valeurs;
153
+    return $valeurs;
154 154
 }
155 155
 
156 156
 
@@ -164,14 +164,14 @@  discard block
 block discarded – undo
164 164
  * @return array
165 165
  */
166 166
 function cvtmulti_formulaire_charger($flux) {
167
-	if (
168
-		is_array($flux['data'])
169
-		and isset($flux['data']['_etapes'])
170
-	) {
171
-		$flux['data'] = cvtmulti_formulaire_charger_etapes($flux['args'], $flux['data']);
172
-	}
167
+    if (
168
+        is_array($flux['data'])
169
+        and isset($flux['data']['_etapes'])
170
+    ) {
171
+        $flux['data'] = cvtmulti_formulaire_charger_etapes($flux['args'], $flux['data']);
172
+    }
173 173
 
174
-	return $flux;
174
+    return $flux;
175 175
 }
176 176
 
177 177
 /**
@@ -181,19 +181,19 @@  discard block
 block discarded – undo
181 181
  * @return array
182 182
  */
183 183
 function cvtmulti_formulaire_charger_etapes($args, $valeurs) {
184
-	if (!isset($valeurs['_etape'])) {
185
-		$form = $args['form'];
186
-		$je_suis_poste = $args['je_suis_poste'];
187
-		$nb_etapes = $valeurs['_etapes'];
188
-		$etape = _request('_etape');
189
-		$etape = min(max($etape, 1), $nb_etapes);
190
-		set_request('_etape', $etape);
191
-		$valeurs['_etape'] = $etape;
184
+    if (!isset($valeurs['_etape'])) {
185
+        $form = $args['form'];
186
+        $je_suis_poste = $args['je_suis_poste'];
187
+        $nb_etapes = $valeurs['_etapes'];
188
+        $etape = _request('_etape');
189
+        $etape = min(max($etape, 1), $nb_etapes);
190
+        set_request('_etape', $etape);
191
+        $valeurs['_etape'] = $etape;
192 192
 
193
-		// sauver les posts de cette etape pour les avoir a la prochaine etape
194
-		$valeurs = cvtmulti_sauver_post($form, $je_suis_poste, $valeurs);
195
-	}
196
-	return $valeurs;
193
+        // sauver les posts de cette etape pour les avoir a la prochaine etape
194
+        $valeurs = cvtmulti_sauver_post($form, $je_suis_poste, $valeurs);
195
+    }
196
+    return $valeurs;
197 197
 }
198 198
 
199 199
 
@@ -206,8 +206,8 @@  discard block
 block discarded – undo
206 206
  * @return array
207 207
  */
208 208
 function cvtmulti_formulaire_verifier($flux) {
209
-	$flux['data'] = cvtmulti_formulaire_verifier_etapes($flux['args'], $flux['data']);
210
-	return $flux;
209
+    $flux['data'] = cvtmulti_formulaire_verifier_etapes($flux['args'], $flux['data']);
210
+    return $flux;
211 211
 }
212 212
 
213 213
 /**
@@ -218,87 +218,87 @@  discard block
 block discarded – undo
218 218
  * @return array
219 219
  */
220 220
 function cvtmulti_formulaire_verifier_etapes($args, $erreurs) {
221
-	#var_dump('Pipe verifier');
221
+    #var_dump('Pipe verifier');
222 222
 
223
-	if (
224
-		$form = $args['form']
225
-		and ($e = cvtmulti_recuperer_post_precedents($form)) !== false
226
-	) {
227
-		// recuperer l'etape saisie et le nombre d'etapes total
228
-		[$etape, $etapes] = $e;
229
-		$etape_demandee = intval(_request('aller_a_etape')); // possibilite de poster un entier dans aller_a_etape
223
+    if (
224
+        $form = $args['form']
225
+        and ($e = cvtmulti_recuperer_post_precedents($form)) !== false
226
+    ) {
227
+        // recuperer l'etape saisie et le nombre d'etapes total
228
+        [$etape, $etapes] = $e;
229
+        $etape_demandee = intval(_request('aller_a_etape')); // possibilite de poster un entier dans aller_a_etape
230 230
 
231
-		$args['etape_saisie'] = $etape;
232
-		$args['etapes'] = $etapes;
233
-		// lancer les verifs pour chaque etape deja saisie de 1 a $etape
234
-		$erreurs_etapes = [];
235
-		$derniere_etape_ok = 0;
236
-		$e = 0;
237
-		while ($e < max($etape, $etape_demandee - 1) and $e < $etapes) {
238
-			$e++;
239
-			$erreurs_etapes[$e] = [];
240
-			if ($verifier = charger_fonction("verifier_$e", "formulaires/$form/", true)) {
241
-				$erreurs_etapes[$e] = $verifier(...$args['args']);
242
-			} elseif ($verifier = charger_fonction('verifier_etape', "formulaires/$form/", true)) {
243
-				$a = $args['args'];
244
-				array_unshift($a, $e);
245
-				$erreurs_etapes[$e] = $verifier(...$a);
246
-			}
247
-			// et on appelle un pipeline dedie aux etapes, plus easy
248
-			$args['etape'] = $e;
249
-			$args['etape_demandee'] = $etape_demandee;
250
-			$erreurs_etapes[$e] = pipeline(
251
-				'formulaire_verifier_etape',
252
-				[
253
-					'args' => $args,
254
-					'data' => $erreurs_etapes[$e]
255
-				]
256
-			);
231
+        $args['etape_saisie'] = $etape;
232
+        $args['etapes'] = $etapes;
233
+        // lancer les verifs pour chaque etape deja saisie de 1 a $etape
234
+        $erreurs_etapes = [];
235
+        $derniere_etape_ok = 0;
236
+        $e = 0;
237
+        while ($e < max($etape, $etape_demandee - 1) and $e < $etapes) {
238
+            $e++;
239
+            $erreurs_etapes[$e] = [];
240
+            if ($verifier = charger_fonction("verifier_$e", "formulaires/$form/", true)) {
241
+                $erreurs_etapes[$e] = $verifier(...$args['args']);
242
+            } elseif ($verifier = charger_fonction('verifier_etape', "formulaires/$form/", true)) {
243
+                $a = $args['args'];
244
+                array_unshift($a, $e);
245
+                $erreurs_etapes[$e] = $verifier(...$a);
246
+            }
247
+            // et on appelle un pipeline dedie aux etapes, plus easy
248
+            $args['etape'] = $e;
249
+            $args['etape_demandee'] = $etape_demandee;
250
+            $erreurs_etapes[$e] = pipeline(
251
+                'formulaire_verifier_etape',
252
+                [
253
+                    'args' => $args,
254
+                    'data' => $erreurs_etapes[$e]
255
+                ]
256
+            );
257 257
 
258
-			if ($derniere_etape_ok == $e - 1 and !(is_countable($erreurs_etapes[$e]) ? count($erreurs_etapes[$e]) : 0)) {
259
-				$derniere_etape_ok = $e;
260
-			}
261
-			// possibilite de poster dans _retour_etape_x ou aller_a_etape
262
-			if (!is_null(_request("_retour_etape_$e"))) {
263
-				$etape_demandee = $e;
264
-			}
265
-			// Il se peut que les verifications ait décidé de faire sauter des étapes
266
-			if ($aller_a_etape = intval(_request('aller_a_etape'))) {
267
-				$etape_demandee = $aller_a_etape; // possibilite de poster un entier dans aller_a_etape
268
-			}
269
-		}
258
+            if ($derniere_etape_ok == $e - 1 and !(is_countable($erreurs_etapes[$e]) ? count($erreurs_etapes[$e]) : 0)) {
259
+                $derniere_etape_ok = $e;
260
+            }
261
+            // possibilite de poster dans _retour_etape_x ou aller_a_etape
262
+            if (!is_null(_request("_retour_etape_$e"))) {
263
+                $etape_demandee = $e;
264
+            }
265
+            // Il se peut que les verifications ait décidé de faire sauter des étapes
266
+            if ($aller_a_etape = intval(_request('aller_a_etape'))) {
267
+                $etape_demandee = $aller_a_etape; // possibilite de poster un entier dans aller_a_etape
268
+            }
269
+        }
270 270
 
271 271
 
272
-		// si la derniere etape OK etait la derniere
273
-		// on renvoie le flux inchange et ca declenche traiter
274
-		if (
275
-			$derniere_etape_ok == $etapes
276
-			and (!$etape_demandee or $etape_demandee >= $etapes)
277
-		) {
278
-			return $erreurs;
279
-		} else {
280
-			$etape = $derniere_etape_ok + 1;
281
-			if ($etape_demandee > 0 and $etape_demandee < $etape) {
282
-				$etape = $etape_demandee;
283
-			}
284
-			$etape = min($etape, $etapes);
285
-			#var_dump("prochaine etape $etape");
286
-			// retourner les erreurs de l'etape ciblee
287
-			$erreurs = $erreurs_etapes[$etape] ?? [];
288
-			// Ne pas se tromper dans le texte du message d'erreur : la clé '_etapes' n'est pas une erreur !
289
-			if ($erreurs) {
290
-				if (!isset($erreurs['message_erreur'])) {
291
-					$erreurs['message_erreur'] = singulier_ou_pluriel(is_countable($erreurs) ? count($erreurs) : 0, 'avis_1_erreur_saisie', 'avis_nb_erreurs_saisie');
292
-				}
293
-			} else {
294
-				$erreurs['message_erreur'] = '';
295
-			}
296
-			$erreurs['_etapes'] = "etape suivante $etape";
297
-			set_request('_etape', $etape);
298
-		}
299
-	}
272
+        // si la derniere etape OK etait la derniere
273
+        // on renvoie le flux inchange et ca declenche traiter
274
+        if (
275
+            $derniere_etape_ok == $etapes
276
+            and (!$etape_demandee or $etape_demandee >= $etapes)
277
+        ) {
278
+            return $erreurs;
279
+        } else {
280
+            $etape = $derniere_etape_ok + 1;
281
+            if ($etape_demandee > 0 and $etape_demandee < $etape) {
282
+                $etape = $etape_demandee;
283
+            }
284
+            $etape = min($etape, $etapes);
285
+            #var_dump("prochaine etape $etape");
286
+            // retourner les erreurs de l'etape ciblee
287
+            $erreurs = $erreurs_etapes[$etape] ?? [];
288
+            // Ne pas se tromper dans le texte du message d'erreur : la clé '_etapes' n'est pas une erreur !
289
+            if ($erreurs) {
290
+                if (!isset($erreurs['message_erreur'])) {
291
+                    $erreurs['message_erreur'] = singulier_ou_pluriel(is_countable($erreurs) ? count($erreurs) : 0, 'avis_1_erreur_saisie', 'avis_nb_erreurs_saisie');
292
+                }
293
+            } else {
294
+                $erreurs['message_erreur'] = '';
295
+            }
296
+            $erreurs['_etapes'] = "etape suivante $etape";
297
+            set_request('_etape', $etape);
298
+        }
299
+    }
300 300
 
301
-	return $erreurs;
301
+    return $erreurs;
302 302
 }
303 303
 
304 304
 /**
@@ -310,17 +310,17 @@  discard block
 block discarded – undo
310 310
  * @return array
311 311
  */
312 312
 function cvtmulti_styliser($flux) {
313
-	if (
314
-		strncmp($flux['args']['fond'], 'formulaires/', 12) == 0
315
-		and isset($flux['args']['contexte']['_etapes'])
316
-		and isset($flux['args']['contexte']['_etape'])
317
-		and ($e = $flux['args']['contexte']['_etape']) > 1
318
-		and $ext = $flux['args']['ext']
319
-		and $f = $flux['data']
320
-		and file_exists($f . "_$e.$ext")
321
-	) {
322
-		$flux['data'] = $f . "_$e";
323
-	}
313
+    if (
314
+        strncmp($flux['args']['fond'], 'formulaires/', 12) == 0
315
+        and isset($flux['args']['contexte']['_etapes'])
316
+        and isset($flux['args']['contexte']['_etape'])
317
+        and ($e = $flux['args']['contexte']['_etape']) > 1
318
+        and $ext = $flux['args']['ext']
319
+        and $f = $flux['data']
320
+        and file_exists($f . "_$e.$ext")
321
+    ) {
322
+        $flux['data'] = $f . "_$e";
323
+    }
324 324
 
325
-	return $flux;
325
+    return $flux;
326 326
 }
Please login to merge, or discard this patch.
ecrire/inc/actions.php 1 patch
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -43,9 +43,9 @@  discard block
 block discarded – undo
43 43
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
44 44
  */
45 45
 function generer_action_auteur($action, $arg = '', $redirect = '', $mode = false, $att = '', $public = false) {
46
-	$securiser_action = charger_fonction('securiser_action', 'inc');
46
+    $securiser_action = charger_fonction('securiser_action', 'inc');
47 47
 
48
-	return $securiser_action($action, $arg, $redirect, $mode, $att, $public);
48
+    return $securiser_action($action, $arg, $redirect, $mode, $att, $public);
49 49
 }
50 50
 
51 51
 /**
@@ -78,9 +78,9 @@  discard block
 block discarded – undo
78 78
  *     Code HTML du formulaire
79 79
  */
80 80
 function redirige_action_auteur($action, $arg, $ret, $gra = '', $mode = false, $atts = '', $public = false) {
81
-	$r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) . generer_url_ecrire($ret, $gra, true, true);
81
+    $r = ($public ? _DIR_RESTREINT_ABS : _DIR_RESTREINT) . generer_url_ecrire($ret, $gra, true, true);
82 82
 
83
-	return generer_action_auteur($action, $arg, $r, $mode, $atts, $public);
83
+    return generer_action_auteur($action, $arg, $r, $mode, $atts, $public);
84 84
 }
85 85
 
86 86
 /**
@@ -105,9 +105,9 @@  discard block
 block discarded – undo
105 105
  *     URL, code HTML du formulaire ou tableau (action, arg, hash)
106 106
  */
107 107
 function redirige_action_post($action, $arg, $ret, $gra, $corps, $att = '') {
108
-	$r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
108
+    $r = _DIR_RESTREINT . generer_url_ecrire($ret, $gra, false, true);
109 109
 
110
-	return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
110
+    return generer_action_auteur($action, $arg, $r, $corps, $att . " method='post'");
111 111
 }
112 112
 
113 113
 
@@ -124,26 +124,26 @@  discard block
 block discarded – undo
124 124
  *   passer "text/html" comme $content_type
125 125
  */
126 126
 function ajax_retour($corps, $content_type = null): void {
127
-	$xml = false;
128
-	if (is_null($content_type) or $content_type === true) {
129
-		$xml = true;
130
-		$content_type = 'text/html';
131
-	} elseif (!$content_type or !is_string($content_type) or strpos($content_type, '/') === false) {
132
-		$content_type = 'text/html';
133
-	}
127
+    $xml = false;
128
+    if (is_null($content_type) or $content_type === true) {
129
+        $xml = true;
130
+        $content_type = 'text/html';
131
+    } elseif (!$content_type or !is_string($content_type) or strpos($content_type, '/') === false) {
132
+        $content_type = 'text/html';
133
+    }
134 134
 
135
-	$e = '';
136
-	if (
137
-		isset($_COOKIE['spip_admin'])
138
-		and ((_request('var_mode') == 'debug') or !empty($GLOBALS['tableau_des_temps']))
139
-	) {
140
-		$e = erreur_squelette();
141
-	}
135
+    $e = '';
136
+    if (
137
+        isset($_COOKIE['spip_admin'])
138
+        and ((_request('var_mode') == 'debug') or !empty($GLOBALS['tableau_des_temps']))
139
+    ) {
140
+        $e = erreur_squelette();
141
+    }
142 142
 
143
-	$c = $GLOBALS['meta']['charset'];
144
-	header('Content-Type: ' . $content_type . '; charset=' . $c);
145
-	$debut = (($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '');
146
-	$fin = '';
143
+    $c = $GLOBALS['meta']['charset'];
144
+    header('Content-Type: ' . $content_type . '; charset=' . $c);
145
+    $debut = (($xml and strlen(trim($corps))) ? '<' . "?xml version='1.0' encoding='" . $c . "'?" . ">\n" : '');
146
+    $fin = '';
147 147
 
148
-	echo $debut, $corps, $fin, $e;
148
+    echo $debut, $corps, $fin, $e;
149 149
 }
Please login to merge, or discard this patch.
ecrire/inc/bandeau.php 1 patch
Indentation   +149 added lines, -149 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('inc/boutons');
@@ -37,33 +37,33 @@  discard block
 block discarded – undo
37 37
  *     Contexte
38 38
  **/
39 39
 function definir_barre_contexte($contexte = null) {
40
-	if (is_null($contexte)) {
41
-		$contexte = $_GET;
42
-	} elseif (is_string($contexte)) {
43
-		$contexte = unserialize($contexte);
44
-	}
45
-	if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
-		if (!function_exists('trouver_objet_exec')) {
47
-			include_spip('inc/pipelines_ecrire');
48
-		}
49
-		if ($e = trouver_objet_exec($contexte['exec'])) {
50
-			$_id = $e['id_table_objet'];
51
-			if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
-				$table = $e['table_objet_sql'];
53
-				$row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
-				if (isset($row['id_rubrique'])) {
55
-					$contexte['id_rubrique'] = $row['id_rubrique'];
56
-					if (isset($row['id_secteur'])) {
57
-						$contexte['id_secteur'] = $row['id_secteur'];
58
-					}
59
-				} elseif (isset($row['id_groupe'])) {
60
-					// TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
-					$contexte['id_groupe'] = $row['id_groupe'];
62
-				}
63
-			}
64
-		}
65
-	}
66
-	return $contexte;
40
+    if (is_null($contexte)) {
41
+        $contexte = $_GET;
42
+    } elseif (is_string($contexte)) {
43
+        $contexte = unserialize($contexte);
44
+    }
45
+    if (!isset($contexte['id_rubrique']) and isset($contexte['exec'])) {
46
+        if (!function_exists('trouver_objet_exec')) {
47
+            include_spip('inc/pipelines_ecrire');
48
+        }
49
+        if ($e = trouver_objet_exec($contexte['exec'])) {
50
+            $_id = $e['id_table_objet'];
51
+            if (isset($contexte[$_id]) and $id = intval($contexte[$_id])) {
52
+                $table = $e['table_objet_sql'];
53
+                $row = sql_fetsel('*', $table, "$_id=" . intval($id));
54
+                if (isset($row['id_rubrique'])) {
55
+                    $contexte['id_rubrique'] = $row['id_rubrique'];
56
+                    if (isset($row['id_secteur'])) {
57
+                        $contexte['id_secteur'] = $row['id_secteur'];
58
+                    }
59
+                } elseif (isset($row['id_groupe'])) {
60
+                    // TODO supprimer ce bloc quand https://core.spip.net/issues/3844 sera réalisé
61
+                    $contexte['id_groupe'] = $row['id_groupe'];
62
+                }
63
+            }
64
+        }
65
+    }
66
+    return $contexte;
67 67
 }
68 68
 
69 69
 /**
@@ -79,89 +79,89 @@  discard block
 block discarded – undo
79 79
  * @return array
80 80
  */
81 81
 function definir_barre_boutons($contexte = [], $icones = true, $autorise = true) {
82
-	include_spip('inc/autoriser');
83
-	$boutons_admin = [];
82
+    include_spip('inc/autoriser');
83
+    $boutons_admin = [];
84 84
 
85
-	// les boutons du core, issus de ecrire/paquet.xml
86
-	$liste_boutons = [];
85
+    // les boutons du core, issus de ecrire/paquet.xml
86
+    $liste_boutons = [];
87 87
 
88
-	// ajouter les boutons issus des plugin via paquet.xml
89
-	if (
90
-		function_exists('boutons_plugins')
91
-		and is_array($liste_boutons_plugins = boutons_plugins())
92
-	) {
93
-		$liste_boutons = &$liste_boutons_plugins;
94
-	}
88
+    // ajouter les boutons issus des plugin via paquet.xml
89
+    if (
90
+        function_exists('boutons_plugins')
91
+        and is_array($liste_boutons_plugins = boutons_plugins())
92
+    ) {
93
+        $liste_boutons = &$liste_boutons_plugins;
94
+    }
95 95
 
96
-	foreach ($liste_boutons as $id => $infos) {
97
-		$parent = '';
98
-		// les boutons principaux ne sont pas soumis a autorisation
99
-		if (
100
-			!isset($infos['parent'])
101
-			or !($parent = $infos['parent'])
102
-			or !$autorise
103
-			or autoriser('menu', "_$id", 0, null, ['contexte' => $contexte])
104
-		) {
105
-			if (
106
-				$parent
107
-				and $parent = preg_replace(',^bando_,', 'menu_', $parent)
108
-				and isset($boutons_admin[$parent])
109
-			) {
110
-				$position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
111
-				if ($position < 0) {
112
-					$position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
113
-				}
114
-				$boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
115
-					+ [
116
-						$id => new Bouton(
117
-							($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
118
-							$infos['titre'],  // titre
119
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
120
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
121
-						)
122
-					]
123
-					+ array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
124
-			}
125
-			if (
126
-				!$parent
127
-				// provisoire, eviter les vieux boutons
128
-				and (!in_array($id, ['forum', 'statistiques_visites']))
129
-				and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, ['contexte' => $contexte]))
130
-			) {
131
-				$position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
132
-				$boutons_admin = array_slice($boutons_admin, 0, $position)
133
-					+ [
134
-						$id => new Bouton(
135
-							($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
136
-							$infos['titre'],  // titre
137
-							(isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
138
-							(isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
139
-						)
140
-					]
141
-					+ array_slice($boutons_admin, $position, 100);
142
-			}
143
-		}
144
-	}
145
-	$boutons_admin = pipeline('ajouter_menus', $boutons_admin);
96
+    foreach ($liste_boutons as $id => $infos) {
97
+        $parent = '';
98
+        // les boutons principaux ne sont pas soumis a autorisation
99
+        if (
100
+            !isset($infos['parent'])
101
+            or !($parent = $infos['parent'])
102
+            or !$autorise
103
+            or autoriser('menu', "_$id", 0, null, ['contexte' => $contexte])
104
+        ) {
105
+            if (
106
+                $parent
107
+                and $parent = preg_replace(',^bando_,', 'menu_', $parent)
108
+                and isset($boutons_admin[$parent])
109
+            ) {
110
+                $position = (isset($infos['position']) and strlen($infos['position'])) ? intval($infos['position']) : count($boutons_admin[$parent]->sousmenu);
111
+                if ($position < 0) {
112
+                    $position = count($boutons_admin[$parent]->sousmenu) + 1 + $position;
113
+                }
114
+                $boutons_admin[$parent]->sousmenu = array_slice($boutons_admin[$parent]->sousmenu, 0, $position)
115
+                    + [
116
+                        $id => new Bouton(
117
+                            ($icones and !empty($infos['icone'])) ? find_in_theme($infos['icone']) : '',  // icone
118
+                            $infos['titre'],  // titre
119
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
120
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
121
+                        )
122
+                    ]
123
+                    + array_slice($boutons_admin[$parent]->sousmenu, $position, 100);
124
+            }
125
+            if (
126
+                !$parent
127
+                // provisoire, eviter les vieux boutons
128
+                and (!in_array($id, ['forum', 'statistiques_visites']))
129
+                and (!$autorise or autoriser('menugrandeentree', "_$id", 0, null, ['contexte' => $contexte]))
130
+            ) {
131
+                $position = (isset($infos['position']) and $infos['position']) ? $infos['position'] : count($boutons_admin);
132
+                $boutons_admin = array_slice($boutons_admin, 0, $position)
133
+                    + [
134
+                        $id => new Bouton(
135
+                            ($icones and isset($infos['icone']) and $infos['icone']) ? find_in_theme($infos['icone']) : '',  // icone
136
+                            $infos['titre'],  // titre
137
+                            (isset($infos['action']) and $infos['action']) ? $infos['action'] : null,
138
+                            (isset($infos['parametres']) and $infos['parametres']) ? $infos['parametres'] : null
139
+                        )
140
+                    ]
141
+                    + array_slice($boutons_admin, $position, 100);
142
+            }
143
+        }
144
+    }
145
+    $boutons_admin = pipeline('ajouter_menus', $boutons_admin);
146 146
 
147
-	// définir les favoris et positions d’origine
148
-	if ($boutons_admin) {
149
-		$menus_favoris = obtenir_menus_favoris();
150
-		$i = 1;
151
-		foreach ($boutons_admin as $key => $menu) {
152
-			$menu->favori = table_valeur($menus_favoris, $key, false);
153
-			$menu->position = $i++;
154
-			if ($menu->sousmenu) {
155
-				$j = 1;
156
-				foreach ($menu->sousmenu as $key => $bouton) {
157
-					$bouton->favori = table_valeur($menus_favoris, $key, false);
158
-					$bouton->position = $j++;
159
-				}
160
-			}
161
-		}
162
-	}
147
+    // définir les favoris et positions d’origine
148
+    if ($boutons_admin) {
149
+        $menus_favoris = obtenir_menus_favoris();
150
+        $i = 1;
151
+        foreach ($boutons_admin as $key => $menu) {
152
+            $menu->favori = table_valeur($menus_favoris, $key, false);
153
+            $menu->position = $i++;
154
+            if ($menu->sousmenu) {
155
+                $j = 1;
156
+                foreach ($menu->sousmenu as $key => $bouton) {
157
+                    $bouton->favori = table_valeur($menus_favoris, $key, false);
158
+                    $bouton->position = $j++;
159
+                }
160
+            }
161
+        }
162
+    }
163 163
 
164
-	return $boutons_admin;
164
+    return $boutons_admin;
165 165
 }
166 166
 
167 167
 /**
@@ -173,22 +173,22 @@  discard block
 block discarded – undo
173 173
  * @return Bouton[]
174 174
  */
175 175
 function trier_boutons_enfants_par_alpha($menus, $avec_favoris = false) {
176
-	foreach ($menus as $menu) {
177
-		if ($menu->sousmenu) {
178
-			$libelles = $isfavoris = $favoris = [];
179
-			foreach ($menu->sousmenu as $key => $item) {
180
-				$libelles[$key] = strtolower(translitteration(_T($item->libelle)));
181
-				$isfavoris[$key] = (bool)$item->favori;
182
-				$favoris[$key] = $item->favori;
183
-			}
184
-			if ($avec_favoris) {
185
-				array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
186
-			} else {
187
-				array_multisort($libelles, SORT_ASC, $menu->sousmenu);
188
-			}
189
-		}
190
-	}
191
-	return $menus;
176
+    foreach ($menus as $menu) {
177
+        if ($menu->sousmenu) {
178
+            $libelles = $isfavoris = $favoris = [];
179
+            foreach ($menu->sousmenu as $key => $item) {
180
+                $libelles[$key] = strtolower(translitteration(_T($item->libelle)));
181
+                $isfavoris[$key] = (bool)$item->favori;
182
+                $favoris[$key] = $item->favori;
183
+            }
184
+            if ($avec_favoris) {
185
+                array_multisort($isfavoris, SORT_DESC, $favoris, SORT_ASC, $libelles, SORT_ASC, $menu->sousmenu);
186
+            } else {
187
+                array_multisort($libelles, SORT_ASC, $menu->sousmenu);
188
+            }
189
+        }
190
+    }
191
+    return $menus;
192 192
 }
193 193
 
194 194
 /**
@@ -199,7 +199,7 @@  discard block
 block discarded – undo
199 199
  * @return Bouton[]
200 200
  */
201 201
 function trier_boutons_enfants_par_favoris_alpha($menus) {
202
-	return trier_boutons_enfants_par_alpha($menus, true);
202
+    return trier_boutons_enfants_par_alpha($menus, true);
203 203
 }
204 204
 
205 205
 
@@ -212,23 +212,23 @@  discard block
 block discarded – undo
212 212
  * @return string
213 213
  */
214 214
 function bandeau_creer_url($url, $args = '', $contexte = null) {
215
-	if (!preg_match(',[\/\?],', $url)) {
216
-		$url = generer_url_ecrire($url, $args, true);
217
-		// recuperer les parametres du contexte demande par l'url sous la forme
218
-		// &truc=@machin@
219
-		// @machin@ etant remplace par _request('machin')
220
-		$url = str_replace('&amp;', '&', $url);
221
-		while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
222
-			if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
223
-				$contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
224
-			}
225
-			$val = _request($matches[2], $contexte);
226
-			$url = parametre_url($url, $matches[1], $val ?: '', '&');
227
-		}
228
-		$url = str_replace('&', '&amp;', $url);
229
-	}
215
+    if (!preg_match(',[\/\?],', $url)) {
216
+        $url = generer_url_ecrire($url, $args, true);
217
+        // recuperer les parametres du contexte demande par l'url sous la forme
218
+        // &truc=@machin@
219
+        // @machin@ etant remplace par _request('machin')
220
+        $url = str_replace('&amp;', '&', $url);
221
+        while (preg_match(',[&?]([a-z_]+)=@([a-z_]+)@,i', $url, $matches)) {
222
+            if ($matches[2] == 'id_secteur' and !isset($contexte['id_secteur']) and isset($contexte['id_rubrique'])) {
223
+                $contexte['id_secteur'] = sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique=' . intval($contexte['id_rubrique']));
224
+            }
225
+            $val = _request($matches[2], $contexte);
226
+            $url = parametre_url($url, $matches[1], $val ?: '', '&');
227
+        }
228
+        $url = str_replace('&', '&amp;', $url);
229
+    }
230 230
 
231
-	return $url;
231
+    return $url;
232 232
 }
233 233
 
234 234
 /**
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
  *     Code HTML du bandeau
239 239
  */
240 240
 function inc_bandeau_dist() {
241
-	return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
241
+    return recuperer_fond('prive/squelettes/inclure/barre-nav', $_GET);
242 242
 }
243 243
 
244 244
 
@@ -247,13 +247,13 @@  discard block
 block discarded – undo
247 247
  * @return array
248 248
  */
249 249
 function obtenir_menus_favoris() {
250
-	if (
251
-		isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
252
-		and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
253
-		and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
254
-	) {
255
-		return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
256
-	}
257
-	$definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
258
-	return $definir_menus_favoris();
250
+    if (
251
+        isset($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
252
+        and is_array($GLOBALS['visiteur_session']['prefs']['menus_favoris'])
253
+        and $GLOBALS['visiteur_session']['prefs']['menus_favoris']
254
+    ) {
255
+        return $GLOBALS['visiteur_session']['prefs']['menus_favoris'];
256
+    }
257
+    $definir_menus_favoris = charger_fonction('definir_menus_favoris', 'inc');
258
+    return $definir_menus_favoris();
259 259
 }
Please login to merge, or discard this patch.
ecrire/base/connect_sql.php 1 patch
Indentation   +315 added lines, -315 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\SQL
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 require_once _ROOT_RESTREINT . 'base/objets.php';
22 22
 
@@ -42,118 +42,118 @@  discard block
 block discarded – undo
42 42
  **/
43 43
 function spip_connect($serveur = '', $version = '') {
44 44
 
45
-	$serveur = !is_string($serveur) ? '' : strtolower($serveur);
46
-	$index = $serveur ?: 0;
47
-	if (!$version) {
48
-		$version = $GLOBALS['spip_sql_version'];
49
-	}
50
-	if (isset($GLOBALS['connexions'][$index][$version])) {
51
-		return $GLOBALS['connexions'][$index];
52
-	}
53
-
54
-	include_spip('base/abstract_sql');
55
-	$install = (_request('exec') == 'install');
56
-
57
-	// Premiere connexion ?
58
-	if (!($old = isset($GLOBALS['connexions'][$index]))) {
59
-		$f = (!preg_match('/^[\w\.]*$/', $serveur))
60
-			? '' // nom de serveur mal ecrit
61
-			: ($serveur ?
62
-				(_DIR_CONNECT . $serveur . '.php') // serveur externe
63
-				: (_FILE_CONNECT ?: ($install ? _FILE_CONNECT_TMP // init du serveur principal
64
-						: ''))); // installation pas faite
65
-
66
-		unset($GLOBALS['db_ok']);
67
-		unset($GLOBALS['spip_connect_version']);
68
-		if ($f) {
69
-			if (is_readable($f)) {
70
-				include($f);
71
-			} elseif ($serveur and !$install) {
72
-				// chercher une declaration de serveur dans le path
73
-				// qui pourra un jour servir a declarer des bases sqlite
74
-				// par des plugins. Et sert aussi aux boucles POUR.
75
-				find_in_path("$serveur.php", 'connect/', true);
76
-			}
77
-		}
78
-		if (!isset($GLOBALS['db_ok'])) {
79
-			// fera mieux la prochaine fois
80
-			if ($install) {
81
-				return false;
82
-			}
83
-			if ($f and is_readable($f)) {
84
-				spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
85
-			} else {
86
-				spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
87
-			}
88
-			spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
89
-
90
-			// ne plus reessayer si ce n'est pas l'install
91
-			return $GLOBALS['connexions'][$index] = false;
92
-		}
93
-		$GLOBALS['connexions'][$index] = $GLOBALS['db_ok'];
94
-	}
95
-	// si la connexion a deja ete tentee mais a echoue, le dire!
96
-	if (!$GLOBALS['connexions'][$index]) {
97
-		return false;
98
-	}
99
-
100
-	// la connexion a reussi ou etait deja faite.
101
-	// chargement de la version du jeu de fonctions
102
-	// si pas dans le fichier par defaut
103
-	$type = $GLOBALS['db_ok']['type'];
104
-	$jeu = 'spip_' . $type . '_functions_' . $version;
105
-	if (!isset($GLOBALS[$jeu])) {
106
-		if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) {
107
-			spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
108
-
109
-			// ne plus reessayer
110
-			return $GLOBALS['connexions'][$index][$version] = [];
111
-		}
112
-	}
113
-	$GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu];
114
-	if ($old) {
115
-		return $GLOBALS['connexions'][$index];
116
-	}
117
-
118
-	$GLOBALS['connexions'][$index]['spip_connect_version'] = $GLOBALS['spip_connect_version'] ?? 0;
119
-
120
-	// initialisation de l'alphabet utilise dans les connexions SQL
121
-	// si l'installation l'a determine.
122
-	// Celui du serveur principal l'impose aux serveurs secondaires
123
-	// s'ils le connaissent
124
-
125
-	if (!$serveur) {
126
-		$charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']);
127
-		if (!$charset) {
128
-			unset($GLOBALS['connexions'][$index]);
129
-			spip_log('spip_connect: absence de charset', _LOG_AVERTISSEMENT);
130
-
131
-			return false;
132
-		}
133
-	} else {
134
-		if ($GLOBALS['db_ok']['charset']) {
135
-			$charset = $GLOBALS['db_ok']['charset'];
136
-		}
137
-		// spip_meta n'existe pas toujours dans la base
138
-		// C'est le cas d'un dump sqlite par exemple
139
-		elseif (
140
-			$GLOBALS['connexions'][$index]['spip_connect_version']
141
-			and sql_showtable('spip_meta', true, $serveur)
142
-			and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur)
143
-		) {
144
-			$charset = $r;
145
-		} else {
146
-			$charset = -1;
147
-		}
148
-	}
149
-	if ($charset != -1) {
150
-		$f = $GLOBALS[$jeu]['set_charset'];
151
-		if (function_exists($f)) {
152
-			$f($charset, $serveur);
153
-		}
154
-	}
155
-
156
-	return $GLOBALS['connexions'][$index];
45
+    $serveur = !is_string($serveur) ? '' : strtolower($serveur);
46
+    $index = $serveur ?: 0;
47
+    if (!$version) {
48
+        $version = $GLOBALS['spip_sql_version'];
49
+    }
50
+    if (isset($GLOBALS['connexions'][$index][$version])) {
51
+        return $GLOBALS['connexions'][$index];
52
+    }
53
+
54
+    include_spip('base/abstract_sql');
55
+    $install = (_request('exec') == 'install');
56
+
57
+    // Premiere connexion ?
58
+    if (!($old = isset($GLOBALS['connexions'][$index]))) {
59
+        $f = (!preg_match('/^[\w\.]*$/', $serveur))
60
+            ? '' // nom de serveur mal ecrit
61
+            : ($serveur ?
62
+                (_DIR_CONNECT . $serveur . '.php') // serveur externe
63
+                : (_FILE_CONNECT ?: ($install ? _FILE_CONNECT_TMP // init du serveur principal
64
+                        : ''))); // installation pas faite
65
+
66
+        unset($GLOBALS['db_ok']);
67
+        unset($GLOBALS['spip_connect_version']);
68
+        if ($f) {
69
+            if (is_readable($f)) {
70
+                include($f);
71
+            } elseif ($serveur and !$install) {
72
+                // chercher une declaration de serveur dans le path
73
+                // qui pourra un jour servir a declarer des bases sqlite
74
+                // par des plugins. Et sert aussi aux boucles POUR.
75
+                find_in_path("$serveur.php", 'connect/', true);
76
+            }
77
+        }
78
+        if (!isset($GLOBALS['db_ok'])) {
79
+            // fera mieux la prochaine fois
80
+            if ($install) {
81
+                return false;
82
+            }
83
+            if ($f and is_readable($f)) {
84
+                spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
85
+            } else {
86
+                spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
87
+            }
88
+            spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
89
+
90
+            // ne plus reessayer si ce n'est pas l'install
91
+            return $GLOBALS['connexions'][$index] = false;
92
+        }
93
+        $GLOBALS['connexions'][$index] = $GLOBALS['db_ok'];
94
+    }
95
+    // si la connexion a deja ete tentee mais a echoue, le dire!
96
+    if (!$GLOBALS['connexions'][$index]) {
97
+        return false;
98
+    }
99
+
100
+    // la connexion a reussi ou etait deja faite.
101
+    // chargement de la version du jeu de fonctions
102
+    // si pas dans le fichier par defaut
103
+    $type = $GLOBALS['db_ok']['type'];
104
+    $jeu = 'spip_' . $type . '_functions_' . $version;
105
+    if (!isset($GLOBALS[$jeu])) {
106
+        if (!find_in_path($type . '_' . $version . '.php', 'req/', true)) {
107
+            spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
108
+
109
+            // ne plus reessayer
110
+            return $GLOBALS['connexions'][$index][$version] = [];
111
+        }
112
+    }
113
+    $GLOBALS['connexions'][$index][$version] = $GLOBALS[$jeu];
114
+    if ($old) {
115
+        return $GLOBALS['connexions'][$index];
116
+    }
117
+
118
+    $GLOBALS['connexions'][$index]['spip_connect_version'] = $GLOBALS['spip_connect_version'] ?? 0;
119
+
120
+    // initialisation de l'alphabet utilise dans les connexions SQL
121
+    // si l'installation l'a determine.
122
+    // Celui du serveur principal l'impose aux serveurs secondaires
123
+    // s'ils le connaissent
124
+
125
+    if (!$serveur) {
126
+        $charset = spip_connect_main($GLOBALS[$jeu], $GLOBALS['db_ok']['charset']);
127
+        if (!$charset) {
128
+            unset($GLOBALS['connexions'][$index]);
129
+            spip_log('spip_connect: absence de charset', _LOG_AVERTISSEMENT);
130
+
131
+            return false;
132
+        }
133
+    } else {
134
+        if ($GLOBALS['db_ok']['charset']) {
135
+            $charset = $GLOBALS['db_ok']['charset'];
136
+        }
137
+        // spip_meta n'existe pas toujours dans la base
138
+        // C'est le cas d'un dump sqlite par exemple
139
+        elseif (
140
+            $GLOBALS['connexions'][$index]['spip_connect_version']
141
+            and sql_showtable('spip_meta', true, $serveur)
142
+            and $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'", '', '', '', '', $serveur)
143
+        ) {
144
+            $charset = $r;
145
+        } else {
146
+            $charset = -1;
147
+        }
148
+    }
149
+    if ($charset != -1) {
150
+        $f = $GLOBALS[$jeu]['set_charset'];
151
+        if (function_exists($f)) {
152
+            $f($charset, $serveur);
153
+        }
154
+    }
155
+
156
+    return $GLOBALS['connexions'][$index];
157 157
 }
158 158
 
159 159
 /**
@@ -162,12 +162,12 @@  discard block
 block discarded – undo
162 162
  * @param string $serveur Nom du connecteur de bdd utilisé
163 163
  **/
164 164
 function spip_sql_erreur($serveur = '') {
165
-	$connexion = spip_connect($serveur);
166
-	$e = sql_errno($serveur);
167
-	$t = ($connexion['type'] ?? 'sql');
168
-	$m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']);
169
-	$f = $t . $serveur;
170
-	spip_log($m, $f . '.' . _LOG_ERREUR);
165
+    $connexion = spip_connect($serveur);
166
+    $e = sql_errno($serveur);
167
+    $t = ($connexion['type'] ?? 'sql');
168
+    $m = "Erreur $e de $t: " . sql_error($serveur) . "\nin " . sql_error_backtrace() . "\n" . trim($connexion['last']);
169
+    $f = $t . $serveur;
170
+    spip_log($m, $f . '.' . _LOG_ERREUR);
171 171
 }
172 172
 
173 173
 /**
@@ -189,23 +189,23 @@  discard block
 block discarded – undo
189 189
  *     - array : description de la connexion, si l'instruction sql est indisponible pour cette connexion
190 190
  **/
191 191
 function spip_connect_sql($version, $ins = '', $serveur = '', $continue = false) {
192
-	$desc = spip_connect($serveur, $version);
193
-	if (
194
-		$desc
195
-		and $f = ($desc[$version][$ins] ?? '')
196
-		and function_exists($f)
197
-	) {
198
-		return $f;
199
-	}
200
-	if ($continue) {
201
-		return $desc;
202
-	}
203
-	if ($ins) {
204
-		spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
205
-	}
206
-	include_spip('inc/minipres');
207
-	echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]);
208
-	exit;
192
+    $desc = spip_connect($serveur, $version);
193
+    if (
194
+        $desc
195
+        and $f = ($desc[$version][$ins] ?? '')
196
+        and function_exists($f)
197
+    ) {
198
+        return $f;
199
+    }
200
+    if ($continue) {
201
+        return $desc;
202
+    }
203
+    if ($ins) {
204
+        spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
205
+    }
206
+    include_spip('inc/minipres');
207
+    echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'), ['status' => 503]);
208
+    exit;
209 209
 }
210 210
 
211 211
 /**
@@ -231,70 +231,70 @@  discard block
 block discarded – undo
231 231
  * @return array|null Description de la connexion
232 232
  */
233 233
 function spip_connect_db(
234
-	$host,
235
-	$port,
236
-	$login,
237
-	$pass,
238
-	$db = '',
239
-	$type = 'mysql',
240
-	$prefixe = '',
241
-	$auth = '',
242
-	$charset = ''
234
+    $host,
235
+    $port,
236
+    $login,
237
+    $pass,
238
+    $db = '',
239
+    $type = 'mysql',
240
+    $prefixe = '',
241
+    $auth = '',
242
+    $charset = ''
243 243
 ) {
244
-	// temps avant nouvelle tentative de connexion
245
-	// suite a une connection echouee
246
-	if (!defined('_CONNECT_RETRY_DELAY')) {
247
-		define('_CONNECT_RETRY_DELAY', 30);
248
-	}
249
-
250
-	$f = '';
251
-	// un fichier de identifiant par combinaison (type,host,port,db)
252
-	// pour ne pas declarer tout indisponible d'un coup
253
-	// si en cours d'installation ou si db=@test@ on ne pose rien
254
-	// car c'est un test de connexion
255
-	if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') {
256
-		$f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
257
-	} elseif ($db == '@test@') {
258
-		$db = '';
259
-	}
260
-
261
-	if (
262
-		$f
263
-		and @file_exists($f)
264
-		and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)
265
-	) {
266
-		spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
267
-
268
-		return null;
269
-	}
270
-
271
-	if (!$prefixe) {
272
-		$prefixe = $GLOBALS['table_prefix'] ?? $db;
273
-	}
274
-	$h = charger_fonction($type, 'req', true);
275
-	if (!$h) {
276
-		spip_log("les requetes $type ne sont pas fournies", _LOG_HS);
277
-
278
-		return null;
279
-	}
280
-	if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
281
-		if (!is_array($auth)) {
282
-			// compatibilite version 0.7 initiale
283
-			$g['ldap'] = $auth;
284
-			$auth = ['ldap' => $auth];
285
-		}
286
-		$g['authentification'] = $auth;
287
-		$g['type'] = $type;
288
-		$g['charset'] = $charset;
289
-
290
-		return $GLOBALS['db_ok'] = $g;
291
-	}
292
-	// En cas d'indisponibilite du serveur, eviter de le bombarder
293
-	if ($f) {
294
-		@touch($f);
295
-		spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS);
296
-	}
297
-	return null;
244
+    // temps avant nouvelle tentative de connexion
245
+    // suite a une connection echouee
246
+    if (!defined('_CONNECT_RETRY_DELAY')) {
247
+        define('_CONNECT_RETRY_DELAY', 30);
248
+    }
249
+
250
+    $f = '';
251
+    // un fichier de identifiant par combinaison (type,host,port,db)
252
+    // pour ne pas declarer tout indisponible d'un coup
253
+    // si en cours d'installation ou si db=@test@ on ne pose rien
254
+    // car c'est un test de connexion
255
+    if (!defined('_ECRIRE_INSTALL') and $db !== '@test@') {
256
+        $f = _DIR_TMP . $type . '.' . substr(md5($host . $port . $db), 0, 8) . '.out';
257
+    } elseif ($db == '@test@') {
258
+        $db = '';
259
+    }
260
+
261
+    if (
262
+        $f
263
+        and @file_exists($f)
264
+        and (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)
265
+    ) {
266
+        spip_log("Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
267
+
268
+        return null;
269
+    }
270
+
271
+    if (!$prefixe) {
272
+        $prefixe = $GLOBALS['table_prefix'] ?? $db;
273
+    }
274
+    $h = charger_fonction($type, 'req', true);
275
+    if (!$h) {
276
+        spip_log("les requetes $type ne sont pas fournies", _LOG_HS);
277
+
278
+        return null;
279
+    }
280
+    if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
281
+        if (!is_array($auth)) {
282
+            // compatibilite version 0.7 initiale
283
+            $g['ldap'] = $auth;
284
+            $auth = ['ldap' => $auth];
285
+        }
286
+        $g['authentification'] = $auth;
287
+        $g['type'] = $type;
288
+        $g['charset'] = $charset;
289
+
290
+        return $GLOBALS['db_ok'] = $g;
291
+    }
292
+    // En cas d'indisponibilite du serveur, eviter de le bombarder
293
+    if ($f) {
294
+        @touch($f);
295
+        spip_log("Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type . '.' . _LOG_HS);
296
+    }
297
+    return null;
298 298
 }
299 299
 
300 300
 
@@ -326,32 +326,32 @@  discard block
 block discarded – undo
326 326
  *     - nom du charset sinon
327 327
  **/
328 328
 function spip_connect_main($connexion, $charset_sql_connexion = '') {
329
-	if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) {
330
-		include_spip('inc/headers');
331
-		redirige_url_ecrire('upgrade', 'reinstall=oui');
332
-	}
333
-
334
-	if (!($f = $connexion['select'])) {
335
-		return false;
336
-	}
337
-	// si le charset est fourni, l'utiliser
338
-	if ($charset_sql_connexion) {
339
-		return $charset_sql_connexion;
340
-	}
341
-	// sinon on regarde la table spip_meta
342
-	// en cas d'erreur select retourne la requette (is_string=true donc)
343
-	if (
344
-		!$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'")
345
-		or is_string($r)
346
-	) {
347
-		return false;
348
-	}
349
-	if (!($f = $connexion['fetch'])) {
350
-		return false;
351
-	}
352
-	$r = $f($r);
353
-
354
-	return (isset($r['valeur']) && $r['valeur']) ? $r['valeur'] : -1;
329
+    if ($GLOBALS['spip_connect_version'] < 0.1 and _DIR_RESTREINT) {
330
+        include_spip('inc/headers');
331
+        redirige_url_ecrire('upgrade', 'reinstall=oui');
332
+    }
333
+
334
+    if (!($f = $connexion['select'])) {
335
+        return false;
336
+    }
337
+    // si le charset est fourni, l'utiliser
338
+    if ($charset_sql_connexion) {
339
+        return $charset_sql_connexion;
340
+    }
341
+    // sinon on regarde la table spip_meta
342
+    // en cas d'erreur select retourne la requette (is_string=true donc)
343
+    if (
344
+        !$r = $f('valeur', 'spip_meta', "nom='charset_sql_connexion'")
345
+        or is_string($r)
346
+    ) {
347
+        return false;
348
+    }
349
+    if (!($f = $connexion['fetch'])) {
350
+        return false;
351
+    }
352
+    $r = $f($r);
353
+
354
+    return (isset($r['valeur']) && $r['valeur']) ? $r['valeur'] : -1;
355 355
 }
356 356
 
357 357
 /**
@@ -367,8 +367,8 @@  discard block
 block discarded – undo
367 367
  * @return array
368 368
  */
369 369
 function spip_connect_ldap($serveur = '') {
370
-	include_spip('auth/ldap');
371
-	return auth_ldap_connect($serveur);
370
+    include_spip('auth/ldap');
371
+    return auth_ldap_connect($serveur);
372 372
 }
373 373
 
374 374
 /**
@@ -384,16 +384,16 @@  discard block
 block discarded – undo
384 384
  * @return string Valeur échappée.
385 385
  **/
386 386
 function _q($a): string {
387
-	if (is_numeric($a)) {
388
-		return strval($a);
389
-	} elseif (is_array($a)) {
390
-		return join(',', array_map('_q', $a));
391
-	} elseif (is_scalar($a)) {
392
-		return ("'" . addslashes($a) . "'");
393
-	} elseif ($a === null) {
394
-		return "''";
395
-	}
396
-	throw new \RuntimeException('Can’t use _q with ' . gettype($a));
387
+    if (is_numeric($a)) {
388
+        return strval($a);
389
+    } elseif (is_array($a)) {
390
+        return join(',', array_map('_q', $a));
391
+    } elseif (is_scalar($a)) {
392
+        return ("'" . addslashes($a) . "'");
393
+    } elseif ($a === null) {
394
+        return "''";
395
+    }
396
+    throw new \RuntimeException('Can’t use _q with ' . gettype($a));
397 397
 }
398 398
 
399 399
 /**
@@ -409,75 +409,75 @@  discard block
 block discarded – undo
409 409
  * @return array
410 410
  */
411 411
 function query_echappe_textes($query, $uniqid = null) {
412
-	static $codeEchappements = null;
413
-	if (is_null($codeEchappements) or $uniqid) {
414
-		if (is_null($uniqid)) {
415
-			$uniqid = uniqid();
416
-		}
417
-		$uniqid = substr(md5($uniqid), 0, 4);
418
-		$codeEchappements = ['\\\\' => "\x1@#{$uniqid}#@\x1", "\\'" => "\x2@#{$uniqid}#@\x2", '\\"' => "\x3@#{$uniqid}#@\x3", '%' => "\x4@#{$uniqid}#@\x4"];
419
-	}
420
-	if ($query === null) {
421
-		return $codeEchappements;
422
-	}
423
-
424
-	// si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien
425
-	// ce n'est pas un cas legitime
426
-	foreach ($codeEchappements as $codeEchappement) {
427
-		if (strpos($query, (string) $codeEchappement) !== false) {
428
-			return [$query, []];
429
-		}
430
-	}
431
-
432
-	$query_echappees = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
433
-	if (preg_match_all("/('[^']*')|(\"[^\"]*\")/S", $query_echappees, $textes)) {
434
-		$textes = reset($textes);
435
-
436
-		$parts = [];
437
-		$currentpos = 0;
438
-		$k = 0;
439
-		while (count($textes)) {
440
-			$part = array_shift($textes);
441
-			$nextpos = strpos($query_echappees, $part, $currentpos);
442
-			// si besoin recoller ensemble les doubles '' de sqlite (echappement des ')
443
-			while (count($textes) and substr($part, -1) === "'") {
444
-				$next = reset($textes);
445
-				if (
446
-					strpos($next, "'") === 0
447
-					and strpos($query_echappees, $part . $next, $currentpos) === $nextpos
448
-				) {
449
-					$part .= array_shift($textes);
450
-				}
451
-				else {
452
-					break;
453
-				}
454
-			}
455
-			$k++;
456
-			$parts[$k] = [
457
-				'texte' => $part,
458
-				'position' => $nextpos,
459
-				'placeholder' => '%' . $k . '$s',
460
-			];
461
-			$currentpos = $nextpos + strlen($part);
462
-		}
463
-
464
-		// et on replace les parts une par une en commencant par la fin
465
-		while ($k > 0) {
466
-			$query_echappees = substr_replace($query_echappees, $parts[$k]['placeholder'], $parts[$k]['position'], strlen($parts[$k]['texte']));
467
-			$k--;
468
-		}
469
-		$textes = array_column($parts, 'texte');
470
-	} else {
471
-		$textes = [];
472
-	}
473
-
474
-	// si il reste des quotes simples ou doubles, c'est qu'on s'est emmelle les pinceaux
475
-	// dans le doute on ne touche a rien
476
-	if (strpbrk($query_echappees, "'\"") !== false) {
477
-		return [$query, []];
478
-	}
479
-
480
-	return [$query_echappees, $textes];
412
+    static $codeEchappements = null;
413
+    if (is_null($codeEchappements) or $uniqid) {
414
+        if (is_null($uniqid)) {
415
+            $uniqid = uniqid();
416
+        }
417
+        $uniqid = substr(md5($uniqid), 0, 4);
418
+        $codeEchappements = ['\\\\' => "\x1@#{$uniqid}#@\x1", "\\'" => "\x2@#{$uniqid}#@\x2", '\\"' => "\x3@#{$uniqid}#@\x3", '%' => "\x4@#{$uniqid}#@\x4"];
419
+    }
420
+    if ($query === null) {
421
+        return $codeEchappements;
422
+    }
423
+
424
+    // si la query contient deja des codes d'echappement on va s'emmeler les pinceaux et donc on ne touche a rien
425
+    // ce n'est pas un cas legitime
426
+    foreach ($codeEchappements as $codeEchappement) {
427
+        if (strpos($query, (string) $codeEchappement) !== false) {
428
+            return [$query, []];
429
+        }
430
+    }
431
+
432
+    $query_echappees = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
433
+    if (preg_match_all("/('[^']*')|(\"[^\"]*\")/S", $query_echappees, $textes)) {
434
+        $textes = reset($textes);
435
+
436
+        $parts = [];
437
+        $currentpos = 0;
438
+        $k = 0;
439
+        while (count($textes)) {
440
+            $part = array_shift($textes);
441
+            $nextpos = strpos($query_echappees, $part, $currentpos);
442
+            // si besoin recoller ensemble les doubles '' de sqlite (echappement des ')
443
+            while (count($textes) and substr($part, -1) === "'") {
444
+                $next = reset($textes);
445
+                if (
446
+                    strpos($next, "'") === 0
447
+                    and strpos($query_echappees, $part . $next, $currentpos) === $nextpos
448
+                ) {
449
+                    $part .= array_shift($textes);
450
+                }
451
+                else {
452
+                    break;
453
+                }
454
+            }
455
+            $k++;
456
+            $parts[$k] = [
457
+                'texte' => $part,
458
+                'position' => $nextpos,
459
+                'placeholder' => '%' . $k . '$s',
460
+            ];
461
+            $currentpos = $nextpos + strlen($part);
462
+        }
463
+
464
+        // et on replace les parts une par une en commencant par la fin
465
+        while ($k > 0) {
466
+            $query_echappees = substr_replace($query_echappees, $parts[$k]['placeholder'], $parts[$k]['position'], strlen($parts[$k]['texte']));
467
+            $k--;
468
+        }
469
+        $textes = array_column($parts, 'texte');
470
+    } else {
471
+        $textes = [];
472
+    }
473
+
474
+    // si il reste des quotes simples ou doubles, c'est qu'on s'est emmelle les pinceaux
475
+    // dans le doute on ne touche a rien
476
+    if (strpbrk($query_echappees, "'\"") !== false) {
477
+        return [$query, []];
478
+    }
479
+
480
+    return [$query_echappees, $textes];
481 481
 }
482 482
 
483 483
 /**
@@ -491,16 +491,16 @@  discard block
 block discarded – undo
491 491
  * @return string
492 492
  */
493 493
 function query_reinjecte_textes($query, $textes) {
494
-	// recuperer les codes echappements
495
-	$codeEchappements = query_echappe_textes(null);
494
+    // recuperer les codes echappements
495
+    $codeEchappements = query_echappe_textes(null);
496 496
 
497
-	if (!empty($textes)) {
498
-		$query = sprintf($query, ...$textes);
499
-	}
497
+    if (!empty($textes)) {
498
+        $query = sprintf($query, ...$textes);
499
+    }
500 500
 
501
-	$query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
501
+    $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
502 502
 
503
-	return $query;
503
+    return $query;
504 504
 }
505 505
 
506 506
 
@@ -519,7 +519,7 @@  discard block
 block discarded – undo
519 519
  **/
520 520
 function spip_query($query, $serveur = '') {
521 521
 
522
-	$f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true);
522
+    $f = spip_connect_sql($GLOBALS['spip_sql_version'], 'query', $serveur, true);
523 523
 
524
-	return function_exists($f) ? $f($query, $serveur) : false;
524
+    return function_exists($f) ? $f($query, $serveur) : false;
525 525
 }
Please login to merge, or discard this patch.
ecrire/genie/maintenance.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -35,18 +35,18 @@  discard block
 block discarded – undo
35 35
  */
36 36
 function genie_maintenance_dist($t) {
37 37
 
38
-	// (re)mettre .htaccess avec deny from all
39
-	// dans les deux repertoires dits inaccessibles par http
40
-	include_spip('inc/acces');
41
-	verifier_htaccess(_DIR_ETC);
42
-	verifier_htaccess(_DIR_TMP);
38
+    // (re)mettre .htaccess avec deny from all
39
+    // dans les deux repertoires dits inaccessibles par http
40
+    include_spip('inc/acces');
41
+    verifier_htaccess(_DIR_ETC);
42
+    verifier_htaccess(_DIR_TMP);
43 43
 
44
-	// Verifier qu'aucune table n'est crashee
45
-	if (!_request('reinstall')) {
46
-		verifier_crash_tables();
47
-	}
44
+    // Verifier qu'aucune table n'est crashee
45
+    if (!_request('reinstall')) {
46
+        verifier_crash_tables();
47
+    }
48 48
 
49
-	return 1;
49
+    return 1;
50 50
 }
51 51
 
52 52
 
@@ -63,33 +63,33 @@  discard block
 block discarded – undo
63 63
  *     des tables qui ont crashé.
64 64
  */
65 65
 function verifier_crash_tables() {
66
-	if (spip_connect()) {
67
-		include_spip('base/serial');
68
-		include_spip('base/auxiliaires');
69
-		$crash = [];
70
-		foreach (['tables_principales', 'tables_auxiliaires'] as $com) {
71
-			foreach ($GLOBALS[$com] as $table => $desc) {
72
-				if (
73
-					!sql_select('*', $table, '', '', '', 1)
74
-					and !defined('spip_interdire_cache')
75
-				) { # cas "LOST CONNECTION"
76
-				$crash[] = $table;
77
-				}
78
-			}
79
-		}
80
-		#$crash[] = 'test';
81
-		if ($crash) {
82
-			ecrire_meta('message_crash_tables', serialize($crash));
83
-			spip_log('crash des tables', 'err');
84
-			spip_log($crash, 'err');
85
-		} else {
86
-			effacer_meta('message_crash_tables');
87
-		}
66
+    if (spip_connect()) {
67
+        include_spip('base/serial');
68
+        include_spip('base/auxiliaires');
69
+        $crash = [];
70
+        foreach (['tables_principales', 'tables_auxiliaires'] as $com) {
71
+            foreach ($GLOBALS[$com] as $table => $desc) {
72
+                if (
73
+                    !sql_select('*', $table, '', '', '', 1)
74
+                    and !defined('spip_interdire_cache')
75
+                ) { # cas "LOST CONNECTION"
76
+                $crash[] = $table;
77
+                }
78
+            }
79
+        }
80
+        #$crash[] = 'test';
81
+        if ($crash) {
82
+            ecrire_meta('message_crash_tables', serialize($crash));
83
+            spip_log('crash des tables', 'err');
84
+            spip_log($crash, 'err');
85
+        } else {
86
+            effacer_meta('message_crash_tables');
87
+        }
88 88
 
89
-		return $crash;
90
-	}
89
+        return $crash;
90
+    }
91 91
 
92
-	return false;
92
+    return false;
93 93
 }
94 94
 
95 95
 /**
@@ -105,16 +105,16 @@  discard block
 block discarded – undo
105 105
  * @return string
106 106
  */
107 107
 function message_crash_tables() {
108
-	if ($crash = verifier_crash_tables()) {
109
-		return
110
-			'<strong>' . _T('texte_recuperer_base') . '</strong><br />'
111
-			. ' <tt>' . join(', ', $crash) . '</tt><br />'
112
-			. generer_form_ecrire(
113
-				'base_repair',
114
-				_T('texte_crash_base'),
115
-				'',
116
-				_T('bouton_tenter_recuperation')
117
-			);
118
-	}
119
-	return '';
108
+    if ($crash = verifier_crash_tables()) {
109
+        return
110
+            '<strong>' . _T('texte_recuperer_base') . '</strong><br />'
111
+            . ' <tt>' . join(', ', $crash) . '</tt><br />'
112
+            . generer_form_ecrire(
113
+                'base_repair',
114
+                _T('texte_crash_base'),
115
+                '',
116
+                _T('bouton_tenter_recuperation')
117
+            );
118
+    }
119
+    return '';
120 120
 }
Please login to merge, or discard this patch.
ecrire/inc/filtres_alertes.php 1 patch
Indentation   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  **/
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 /**
@@ -43,22 +43,22 @@  discard block
 block discarded – undo
43 43
  *     Pile complétée par le code à générer
44 44
  */
45 45
 function balise_ALERTE_MESSAGE_dist($p) {
46
-	$_texte = interprete_argument_balise(1, $p);
47
-	$_titre = interprete_argument_balise(2, $p);
48
-	$_class = interprete_argument_balise(3, $p);
49
-	$_role  = interprete_argument_balise(4, $p);
50
-	$_id    = interprete_argument_balise(5, $p);
51
-	$_texte = ($_texte ?: "''");
52
-	$_titre = ($_titre ? ", $_titre" : ', null');
53
-	$_class = ($_class ? ", $_class" : ', null');
54
-	$_role  = ($_role  ? ", $_role"  : ', null');
55
-	$_id    = ($_id    ? ", $_id"    : ', null');
46
+    $_texte = interprete_argument_balise(1, $p);
47
+    $_titre = interprete_argument_balise(2, $p);
48
+    $_class = interprete_argument_balise(3, $p);
49
+    $_role  = interprete_argument_balise(4, $p);
50
+    $_id    = interprete_argument_balise(5, $p);
51
+    $_texte = ($_texte ?: "''");
52
+    $_titre = ($_titre ? ", $_titre" : ', null');
53
+    $_class = ($_class ? ", $_class" : ', null');
54
+    $_role  = ($_role  ? ", $_role"  : ', null');
55
+    $_id    = ($_id    ? ", $_id"    : ', null');
56 56
 
57
-	$f = chercher_filtre('message_alerte');
58
-	$p->code = "$f($_texte$_titre$_class$_role$_id)";
59
-	$p->interdire_scripts = false;
57
+    $f = chercher_filtre('message_alerte');
58
+    $p->code = "$f($_texte$_titre$_class$_role$_id)";
59
+    $p->interdire_scripts = false;
60 60
 
61
-	return $p;
61
+    return $p;
62 62
 }
63 63
 
64 64
 /**
@@ -86,20 +86,20 @@  discard block
 block discarded – undo
86 86
  *     Pile complétée par le code à générer
87 87
  */
88 88
 function balise_ALERTE_OUVRIR_dist($p) {
89
-	$_titre = interprete_argument_balise(1, $p);
90
-	$_class = interprete_argument_balise(2, $p);
91
-	$_role  = interprete_argument_balise(3, $p);
92
-	$_id    = interprete_argument_balise(4, $p);
93
-	$_titre = ($_titre ? "$_titre"   : 'null');
94
-	$_class = ($_class ? ", $_class" : ', null');
95
-	$_role  = ($_role  ? ", $_role"  : ', null');
96
-	$_id    = ($_id    ? ", $_id"    : ', null');
89
+    $_titre = interprete_argument_balise(1, $p);
90
+    $_class = interprete_argument_balise(2, $p);
91
+    $_role  = interprete_argument_balise(3, $p);
92
+    $_id    = interprete_argument_balise(4, $p);
93
+    $_titre = ($_titre ? "$_titre"   : 'null');
94
+    $_class = ($_class ? ", $_class" : ', null');
95
+    $_role  = ($_role  ? ", $_role"  : ', null');
96
+    $_id    = ($_id    ? ", $_id"    : ', null');
97 97
 
98
-	$f = chercher_filtre('message_alerte_ouvrir');
99
-	$p->code = "$f($_titre$_class$_role$_id)";
100
-	$p->interdire_scripts = false;
98
+    $f = chercher_filtre('message_alerte_ouvrir');
99
+    $p->code = "$f($_titre$_class$_role$_id)";
100
+    $p->interdire_scripts = false;
101 101
 
102
-	return $p;
102
+    return $p;
103 103
 }
104 104
 
105 105
 /**
@@ -121,11 +121,11 @@  discard block
 block discarded – undo
121 121
  *     Pile complétée par le code à générer
122 122
  */
123 123
 function balise_ALERTE_FERMER_dist($p) {
124
-	$f = chercher_filtre('message_alerte_fermer');
125
-	$p->code = "$f()";
126
-	$p->interdire_scripts = false;
124
+    $f = chercher_filtre('message_alerte_fermer');
125
+    $p->code = "$f()";
126
+    $p->interdire_scripts = false;
127 127
 
128
-	return $p;
128
+    return $p;
129 129
 }
130 130
 
131 131
 /**
@@ -160,14 +160,14 @@  discard block
 block discarded – undo
160 160
  */
161 161
 function message_alerte(string $texte, ?string $titre = null, ?string $class = null, ?string $role = null, ?string $id = null): string {
162 162
 
163
-	$message_alerte_ouvrir = chercher_filtre('message_alerte_ouvrir');
164
-	$message_alerte_fermer = chercher_filtre('message_alerte_fermer');
165
-	$message =
166
-		$message_alerte_ouvrir($titre, $class, $role, $id) .
167
-		$texte .
168
-		$message_alerte_fermer();
163
+    $message_alerte_ouvrir = chercher_filtre('message_alerte_ouvrir');
164
+    $message_alerte_fermer = chercher_filtre('message_alerte_fermer');
165
+    $message =
166
+        $message_alerte_ouvrir($titre, $class, $role, $id) .
167
+        $texte .
168
+        $message_alerte_fermer();
169 169
 
170
-	return $message;
170
+    return $message;
171 171
 }
172 172
 
173 173
 /**
@@ -198,56 +198,56 @@  discard block
 block discarded – undo
198 198
  */
199 199
 function message_alerte_ouvrir(?string $titre = null, ?string $class = null, ?string $role = null, ?string $id = null): string {
200 200
 
201
-	$prive = test_espace_prive();
201
+    $prive = test_espace_prive();
202 202
 
203
-	// Valeurs par défaut
204
-	$titre = trim($titre ?? '');
205
-	$role ??= 'alert'; // fallback uniquement si null
206
-	$class ??= 'notice'; // fallback uniquement si null
203
+    // Valeurs par défaut
204
+    $titre = trim($titre ?? '');
205
+    $role ??= 'alert'; // fallback uniquement si null
206
+    $class ??= 'notice'; // fallback uniquement si null
207 207
 
208
-	// Type d'alerte : le chercher dans les classes, nettoyer celles-ci, puis le réinjecter
209
-	$types = [
210
-		'notice',
211
-		'error',
212
-		'success',
213
-		'info',
214
-	];
215
-	$type  = array_intersect(explode(' ', $class), $types);
216
-	$type  = reset($type);
217
-	$class = trim(str_replace($types, '', $class) . " $type");
208
+    // Type d'alerte : le chercher dans les classes, nettoyer celles-ci, puis le réinjecter
209
+    $types = [
210
+        'notice',
211
+        'error',
212
+        'success',
213
+        'info',
214
+    ];
215
+    $type  = array_intersect(explode(' ', $class), $types);
216
+    $type  = reset($type);
217
+    $class = trim(str_replace($types, '', $class) . " $type");
218 218
 
219
-	// Classes
220
-	$class_racine = 'msg-alert';
221
-	$clearfix     = ($prive ? 'clearfix' : '');
222
-	$class_alerte = "$class_racine $class";
223
-	$class_texte  = "${class_racine}__text $clearfix";
224
-	$class_titre  = "${class_racine}__heading";
219
+    // Classes
220
+    $class_racine = 'msg-alert';
221
+    $clearfix     = ($prive ? 'clearfix' : '');
222
+    $class_alerte = "$class_racine $class";
223
+    $class_texte  = "${class_racine}__text $clearfix";
224
+    $class_titre  = "${class_racine}__heading";
225 225
 
226
-	// Titre : markup
227
-	$titre = trim($titre);
228
-	if (strlen($titre)) {
229
-		include_spip('inc/filtres');
230
-		// Si besoin on encapsule le titre : un h3 dans le privé, un simple div sinon.
231
-		$cherche_tag = ($prive ? '<h' : '<');
232
-		$wrap_tag    = ($prive ? '<h3>' : '<div>');
233
-		if (strpos($titre, $cherche_tag) !== 0) {
234
-			$titre = wrap($titre, $wrap_tag);
235
-		}
236
-		// puis on ajoute la classe
237
-		$titre = ajouter_class($titre, $class_titre);
238
-	}
226
+    // Titre : markup
227
+    $titre = trim($titre);
228
+    if (strlen($titre)) {
229
+        include_spip('inc/filtres');
230
+        // Si besoin on encapsule le titre : un h3 dans le privé, un simple div sinon.
231
+        $cherche_tag = ($prive ? '<h' : '<');
232
+        $wrap_tag    = ($prive ? '<h3>' : '<div>');
233
+        if (strpos($titre, $cherche_tag) !== 0) {
234
+            $titre = wrap($titre, $wrap_tag);
235
+        }
236
+        // puis on ajoute la classe
237
+        $titre = ajouter_class($titre, $class_titre);
238
+    }
239 239
 
240
-	// Attributs
241
-	$attr_role = ($role ? "role=\"$role\"" : '');
242
-	$attr_id   = ($id   ? "id=\"$id\"" : '');
243
-	$attr_data = ($type ? "data-alert=\"$type\"" : '');
240
+    // Attributs
241
+    $attr_role = ($role ? "role=\"$role\"" : '');
242
+    $attr_id   = ($id   ? "id=\"$id\"" : '');
243
+    $attr_data = ($type ? "data-alert=\"$type\"" : '');
244 244
 
245
-	$message =
246
-		"<div class=\"$class_alerte\" $attr_role $attr_id $attr_data>"
247
-			. $titre
248
-			. "<div class=\"$class_texte\">";
245
+    $message =
246
+        "<div class=\"$class_alerte\" $attr_role $attr_id $attr_data>"
247
+            . $titre
248
+            . "<div class=\"$class_texte\">";
249 249
 
250
-	return $message;
250
+    return $message;
251 251
 }
252 252
 
253 253
 /**
@@ -261,5 +261,5 @@  discard block
 block discarded – undo
261 261
  *     HTML de fin de l'alerte
262 262
  */
263 263
 function message_alerte_fermer(): string {
264
-	return '</div></div>';
264
+    return '</div></div>';
265 265
 }
Please login to merge, or discard this patch.
ecrire/charsets/translit.php 1 patch
Indentation   +358 added lines, -358 removed lines patch added patch discarded remove patch
@@ -9,384 +9,384 @@
 block discarded – undo
9 9
 
10 10
 $GLOBALS['CHARSET']['translit'] = [
11 11
 // latin [fausse plage]
12
-	128 => 'EUR',
13
-	131 => 'f',
14
-	140 => 'OE',
15
-	147 => '\'\'',
16
-	148 => '\'\'',
17
-	153 => '(TM)',
18
-	156 => 'oe',
19
-	159 => 'Y',
12
+    128 => 'EUR',
13
+    131 => 'f',
14
+    140 => 'OE',
15
+    147 => '\'\'',
16
+    148 => '\'\'',
17
+    153 => '(TM)',
18
+    156 => 'oe',
19
+    159 => 'Y',
20 20
 
21 21
 // latin [legal]
22
-	160 => ' ',
23
-	161 => '!',
24
-	162 => 'c',
25
-	163 => 'L',
26
-	164 => 'O',
27
-	165 => 'yen',
28
-	166 => '|',
29
-	167 => 'p',
30
-	169 => '(c)',
31
-	171 => '<<',
32
-	172 => '-',
33
-	173 => '-',
34
-	174 => '(R)',
35
-	176 => 'o',
36
-	177 => '+-',
37
-	181 => 'mu',
38
-	182 => 'p',
39
-	183 => '.',
40
-	186 => 'o ',
41
-	187 => '>>',
42
-	191 => '?',
43
-	192 => 'A',
44
-	193 => 'A',
45
-	194 => 'A',
46
-	195 => 'A',
47
-	196 => 'A',
48
-	197 => 'A',
49
-	198 => 'AE',
50
-	199 => 'C',
51
-	200 => 'E',
52
-	201 => 'E',
53
-	202 => 'E',
54
-	203 => 'E',
55
-	204 => 'I',
56
-	205 => 'I',
57
-	206 => 'I',
58
-	207 => 'I',
59
-	209 => 'N',
60
-	210 => 'O',
61
-	211 => 'O',
62
-	212 => 'O',
63
-	213 => 'O',
64
-	214 => 'O',
65
-	216 => 'O',
66
-	217 => 'U',
67
-	218 => 'U',
68
-	219 => 'U',
69
-	220 => 'U',
70
-	223 => 'ss',
71
-	224 => 'a',
72
-	225 => 'a',
73
-	226 => 'a',
74
-	227 => 'a',
75
-	228 => 'a',
76
-	229 => 'a',
77
-	230 => 'ae',
78
-	231 => 'c',
79
-	232 => 'e',
80
-	233 => 'e',
81
-	234 => 'e',
82
-	235 => 'e',
83
-	236 => 'i',
84
-	237 => 'i',
85
-	238 => 'i',
86
-	239 => 'i',
87
-	241 => 'n',
88
-	242 => 'o',
89
-	243 => 'o',
90
-	244 => 'o',
91
-	245 => 'o',
92
-	246 => 'o',
93
-	248 => 'o',
94
-	249 => 'u',
95
-	250 => 'u',
96
-	251 => 'u',
97
-	252 => 'u',
98
-	255 => 'y',
22
+    160 => ' ',
23
+    161 => '!',
24
+    162 => 'c',
25
+    163 => 'L',
26
+    164 => 'O',
27
+    165 => 'yen',
28
+    166 => '|',
29
+    167 => 'p',
30
+    169 => '(c)',
31
+    171 => '<<',
32
+    172 => '-',
33
+    173 => '-',
34
+    174 => '(R)',
35
+    176 => 'o',
36
+    177 => '+-',
37
+    181 => 'mu',
38
+    182 => 'p',
39
+    183 => '.',
40
+    186 => 'o ',
41
+    187 => '>>',
42
+    191 => '?',
43
+    192 => 'A',
44
+    193 => 'A',
45
+    194 => 'A',
46
+    195 => 'A',
47
+    196 => 'A',
48
+    197 => 'A',
49
+    198 => 'AE',
50
+    199 => 'C',
51
+    200 => 'E',
52
+    201 => 'E',
53
+    202 => 'E',
54
+    203 => 'E',
55
+    204 => 'I',
56
+    205 => 'I',
57
+    206 => 'I',
58
+    207 => 'I',
59
+    209 => 'N',
60
+    210 => 'O',
61
+    211 => 'O',
62
+    212 => 'O',
63
+    213 => 'O',
64
+    214 => 'O',
65
+    216 => 'O',
66
+    217 => 'U',
67
+    218 => 'U',
68
+    219 => 'U',
69
+    220 => 'U',
70
+    223 => 'ss',
71
+    224 => 'a',
72
+    225 => 'a',
73
+    226 => 'a',
74
+    227 => 'a',
75
+    228 => 'a',
76
+    229 => 'a',
77
+    230 => 'ae',
78
+    231 => 'c',
79
+    232 => 'e',
80
+    233 => 'e',
81
+    234 => 'e',
82
+    235 => 'e',
83
+    236 => 'i',
84
+    237 => 'i',
85
+    238 => 'i',
86
+    239 => 'i',
87
+    241 => 'n',
88
+    242 => 'o',
89
+    243 => 'o',
90
+    244 => 'o',
91
+    245 => 'o',
92
+    246 => 'o',
93
+    248 => 'o',
94
+    249 => 'u',
95
+    250 => 'u',
96
+    251 => 'u',
97
+    252 => 'u',
98
+    255 => 'y',
99 99
 
100 100
 // turc
101
-	286 => 'G',
102
-	287 => 'g',
103
-	304 => 'I',
104
-	305 => 'i',
101
+    286 => 'G',
102
+    287 => 'g',
103
+    304 => 'I',
104
+    305 => 'i',
105 105
 
106 106
 // esperanto
107
-	264 => 'Cx',
108
-	265 => 'cx',
109
-	284 => 'Gx',
110
-	285 => 'gx',
111
-	292 => 'Hx',
112
-	293 => 'hx',
113
-	308 => 'Jx',
114
-	309 => 'jx',
115
-	348 => 'Sx',
116
-	349 => 'sx',
117
-	364 => 'Ux',
118
-	365 => 'ux',
107
+    264 => 'Cx',
108
+    265 => 'cx',
109
+    284 => 'Gx',
110
+    285 => 'gx',
111
+    292 => 'Hx',
112
+    293 => 'hx',
113
+    308 => 'Jx',
114
+    309 => 'jx',
115
+    348 => 'Sx',
116
+    349 => 'sx',
117
+    364 => 'Ux',
118
+    365 => 'ux',
119 119
 
120 120
 
121 121
 // latin2 [Czech]
122
-	283 => 'e',
123
-	353 => 's',
124
-	269 => 'c',
125
-	345 => 'r',
126
-	382 => 'z',
127
-	367 => 'u',
128
-	328 => 'n',
129
-	357 => 't',
130
-	271 => 'd',
131
-	449 => 'o',
132
-	282 => 'E',
133
-	352 => 'S',
134
-	268 => 'C',
135
-	344 => 'R',
136
-	381 => 'Z',
137
-	366 => 'U',
138
-	327 => 'N',
139
-	356 => 'T',
140
-	270 => 'D',
141
-	467 => 'O',
122
+    283 => 'e',
123
+    353 => 's',
124
+    269 => 'c',
125
+    345 => 'r',
126
+    382 => 'z',
127
+    367 => 'u',
128
+    328 => 'n',
129
+    357 => 't',
130
+    271 => 'd',
131
+    449 => 'o',
132
+    282 => 'E',
133
+    352 => 'S',
134
+    268 => 'C',
135
+    344 => 'R',
136
+    381 => 'Z',
137
+    366 => 'U',
138
+    327 => 'N',
139
+    356 => 'T',
140
+    270 => 'D',
141
+    467 => 'O',
142 142
 
143 143
 // francais
144
-	338 => 'OE',
145
-	339 => 'oe',
146
-	376 => 'Y',
147
-	402 => 'f',
144
+    338 => 'OE',
145
+    339 => 'oe',
146
+    376 => 'Y',
147
+    402 => 'f',
148 148
 
149 149
 //polskie
150
-	260 => 'A',
151
-	261 => 'a',
152
-	262 => 'C',
153
-	263 => 'c',
154
-	280 => 'E',
155
-	281 => 'e',
156
-	321 => 'L',
157
-	322 => 'l',
158
-	323 => 'N',
159
-	324 => 'n',
160
-	346 => 'S',
161
-	347 => 's',
162
-	377 => 'Z',
163
-	378 => 'z',
164
-	379 => 'Z',
165
-	380 => 'z',
150
+    260 => 'A',
151
+    261 => 'a',
152
+    262 => 'C',
153
+    263 => 'c',
154
+    280 => 'E',
155
+    281 => 'e',
156
+    321 => 'L',
157
+    322 => 'l',
158
+    323 => 'N',
159
+    324 => 'n',
160
+    346 => 'S',
161
+    347 => 's',
162
+    377 => 'Z',
163
+    378 => 'z',
164
+    379 => 'Z',
165
+    380 => 'z',
166 166
 
167 167
 //roumain
168
-	258 => 'A',
169
-	259 => 'a',
170
-	354 => 'T',
171
-	355 => 't',
168
+    258 => 'A',
169
+    259 => 'a',
170
+    354 => 'T',
171
+    355 => 't',
172 172
 
173 173
 //turc & roumain
174
-	350 => 'S',
175
-	351 => 's',
174
+    350 => 'S',
175
+    351 => 's',
176 176
 
177 177
 // cyrillique
178
-	1026 => 'D%',
179
-	1027 => 'G%',
180
-	8218 => '\'',
181
-	1107 => 'g%',
182
-	8222 => '"',
183
-	8230 => '...',
184
-	8224 => '/-',
185
-	8225 => '/=',
186
-	8364 => 'EUR',
187
-	8240 => '0/00',
188
-	1033 => 'LJ',
189
-	8249 => '<',
190
-	1034 => 'NJ',
191
-	1036 => 'KJ',
192
-	1035 => 'Ts',
193
-	1039 => 'DZ',
194
-	1106 => 'd%',
195
-	8216 => '`',
196
-	8217 => '\'',
197
-	8220 => '"',
198
-	8221 => '"',
199
-	8226 => ' o ',
200
-	8211 => '-',
201
-	8212 => '~',
202
-	8482 => '(TM)',
203
-	1113 => 'lj',
204
-	8250 => '>',
205
-	1114 => 'nj',
206
-	1116 => 'kj',
207
-	1115 => 'ts',
208
-	1119 => 'dz',
209
-	1038 => 'V%',
210
-	1118 => 'v%',
211
-	1032 => 'J%',
212
-	1168 => 'G3',
213
-	1025 => 'IO',
214
-	1028 => 'IE',
215
-	1031 => 'YI',
216
-	1030 => 'II',
217
-	1110 => 'ii',
218
-	1169 => 'g3',
219
-	1105 => 'io',
220
-	8470 => 'No.',
221
-	1108 => 'ie',
222
-	1112 => 'j%',
223
-	1029 => 'DS',
224
-	1109 => 'ds',
225
-	1111 => 'yi',
226
-	1040 => 'A',
227
-	1041 => 'B',
228
-	1042 => 'V',
229
-	1043 => 'G',
230
-	1044 => 'D',
231
-	1045 => 'E',
232
-	1046 => 'ZH',
233
-	1047 => 'Z',
234
-	1048 => 'I',
235
-	1049 => 'J',
236
-	1050 => 'K',
237
-	1051 => 'L',
238
-	1052 => 'M',
239
-	1053 => 'N',
240
-	1054 => 'O',
241
-	1055 => 'P',
242
-	1056 => 'R',
243
-	1057 => 'S',
244
-	1058 => 'T',
245
-	1059 => 'U',
246
-	1060 => 'F',
247
-	1061 => 'H',
248
-	1062 => 'C',
249
-	1063 => 'CH',
250
-	1064 => 'SH',
251
-	1065 => 'SCH',
252
-	1066 => '"',
253
-	1067 => 'Y',
254
-	1068 => '\'',
255
-	1069 => '`E',
256
-	1070 => 'YU',
257
-	1071 => 'YA',
258
-	1072 => 'a',
259
-	1073 => 'b',
260
-	1074 => 'v',
261
-	1075 => 'g',
262
-	1076 => 'd',
263
-	1077 => 'e',
264
-	1078 => 'zh',
265
-	1079 => 'z',
266
-	1080 => 'i',
267
-	1081 => 'j',
268
-	1082 => 'k',
269
-	1083 => 'l',
270
-	1084 => 'm',
271
-	1085 => 'n',
272
-	1086 => 'o',
273
-	1087 => 'p',
274
-	1088 => 'r',
275
-	1089 => 's',
276
-	1090 => 't',
277
-	1091 => 'u',
278
-	1092 => 'f',
279
-	1093 => 'h',
280
-	1094 => 'c',
281
-	1095 => 'ch',
282
-	1096 => 'sh',
283
-	1097 => 'sch',
284
-	1098 => '"',
285
-	1099 => 'y',
286
-	1100 => '\'',
287
-	1101 => '`e',
288
-	1102 => 'yu',
289
-	1103 => 'ya',
178
+    1026 => 'D%',
179
+    1027 => 'G%',
180
+    8218 => '\'',
181
+    1107 => 'g%',
182
+    8222 => '"',
183
+    8230 => '...',
184
+    8224 => '/-',
185
+    8225 => '/=',
186
+    8364 => 'EUR',
187
+    8240 => '0/00',
188
+    1033 => 'LJ',
189
+    8249 => '<',
190
+    1034 => 'NJ',
191
+    1036 => 'KJ',
192
+    1035 => 'Ts',
193
+    1039 => 'DZ',
194
+    1106 => 'd%',
195
+    8216 => '`',
196
+    8217 => '\'',
197
+    8220 => '"',
198
+    8221 => '"',
199
+    8226 => ' o ',
200
+    8211 => '-',
201
+    8212 => '~',
202
+    8482 => '(TM)',
203
+    1113 => 'lj',
204
+    8250 => '>',
205
+    1114 => 'nj',
206
+    1116 => 'kj',
207
+    1115 => 'ts',
208
+    1119 => 'dz',
209
+    1038 => 'V%',
210
+    1118 => 'v%',
211
+    1032 => 'J%',
212
+    1168 => 'G3',
213
+    1025 => 'IO',
214
+    1028 => 'IE',
215
+    1031 => 'YI',
216
+    1030 => 'II',
217
+    1110 => 'ii',
218
+    1169 => 'g3',
219
+    1105 => 'io',
220
+    8470 => 'No.',
221
+    1108 => 'ie',
222
+    1112 => 'j%',
223
+    1029 => 'DS',
224
+    1109 => 'ds',
225
+    1111 => 'yi',
226
+    1040 => 'A',
227
+    1041 => 'B',
228
+    1042 => 'V',
229
+    1043 => 'G',
230
+    1044 => 'D',
231
+    1045 => 'E',
232
+    1046 => 'ZH',
233
+    1047 => 'Z',
234
+    1048 => 'I',
235
+    1049 => 'J',
236
+    1050 => 'K',
237
+    1051 => 'L',
238
+    1052 => 'M',
239
+    1053 => 'N',
240
+    1054 => 'O',
241
+    1055 => 'P',
242
+    1056 => 'R',
243
+    1057 => 'S',
244
+    1058 => 'T',
245
+    1059 => 'U',
246
+    1060 => 'F',
247
+    1061 => 'H',
248
+    1062 => 'C',
249
+    1063 => 'CH',
250
+    1064 => 'SH',
251
+    1065 => 'SCH',
252
+    1066 => '"',
253
+    1067 => 'Y',
254
+    1068 => '\'',
255
+    1069 => '`E',
256
+    1070 => 'YU',
257
+    1071 => 'YA',
258
+    1072 => 'a',
259
+    1073 => 'b',
260
+    1074 => 'v',
261
+    1075 => 'g',
262
+    1076 => 'd',
263
+    1077 => 'e',
264
+    1078 => 'zh',
265
+    1079 => 'z',
266
+    1080 => 'i',
267
+    1081 => 'j',
268
+    1082 => 'k',
269
+    1083 => 'l',
270
+    1084 => 'm',
271
+    1085 => 'n',
272
+    1086 => 'o',
273
+    1087 => 'p',
274
+    1088 => 'r',
275
+    1089 => 's',
276
+    1090 => 't',
277
+    1091 => 'u',
278
+    1092 => 'f',
279
+    1093 => 'h',
280
+    1094 => 'c',
281
+    1095 => 'ch',
282
+    1096 => 'sh',
283
+    1097 => 'sch',
284
+    1098 => '"',
285
+    1099 => 'y',
286
+    1100 => '\'',
287
+    1101 => '`e',
288
+    1102 => 'yu',
289
+    1103 => 'ya',
290 290
 
291 291
 // vietnamien en translitteration de base
292
-	7843 => 'a',
293
-	7841 => 'a',
294
-	7845 => 'a',
295
-	7847 => 'a',
296
-	7849 => 'a',
297
-	7851 => 'a',
298
-	7853 => 'a',
299
-	7855 => 'a',
300
-	7857 => 'a',
301
-	7859 => 'a',
302
-	7861 => 'a',
303
-	7863 => 'a',
304
-	7842 => 'A',
305
-	7840 => 'A',
306
-	7844 => 'A',
307
-	7846 => 'A',
308
-	7848 => 'A',
309
-	7850 => 'A',
310
-	7852 => 'A',
311
-	7854 => 'A',
312
-	7856 => 'A',
313
-	7858 => 'A',
314
-	7860 => 'A',
315
-	7862 => 'A',
316
-	7867 => 'e',
317
-	7869 => 'e',
318
-	7865 => 'e',
319
-	7871 => 'e',
320
-	7873 => 'e',
321
-	7875 => 'e',
322
-	7877 => 'e',
323
-	7879 => 'e',
324
-	7866 => 'E',
325
-	7868 => 'E',
326
-	7864 => 'E',
327
-	7870 => 'E',
328
-	7872 => 'E',
329
-	7874 => 'E',
330
-	7876 => 'E',
331
-	7878 => 'E',
332
-	7881 => 'i',
333
-	7883 => 'i',
334
-	7880 => 'I',
335
-	7882 => 'I',
336
-	7887 => 'o',
337
-	7885 => 'o',
338
-	7889 => 'o',
339
-	7891 => 'o',
340
-	7893 => 'o',
341
-	7895 => 'o',
342
-	7897 => 'o',
343
-	417 => 'o',
344
-	7899 => 'o',
345
-	7901 => 'o',
346
-	7903 => 'o',
347
-	7905 => 'o',
348
-	7907 => 'o',
349
-	7886 => 'O',
350
-	7884 => 'O',
351
-	7888 => 'O',
352
-	7890 => 'O',
353
-	7892 => 'O',
354
-	7894 => 'O',
355
-	7896 => 'O',
356
-	416 => 'O',
357
-	7898 => 'O',
358
-	7900 => 'O',
359
-	7902 => 'O',
360
-	7904 => 'O',
361
-	7906 => 'O',
362
-	7911 => 'u',
363
-	361 => 'u',
364
-	7909 => 'u',
365
-	432 => 'u',
366
-	7913 => 'u',
367
-	7915 => 'u',
368
-	7917 => 'u',
369
-	7919 => 'u',
370
-	7921 => 'u',
371
-	7910 => 'U',
372
-	360 => 'U',
373
-	7908 => 'U',
374
-	431 => 'U',
375
-	7912 => 'U',
376
-	7914 => 'U',
377
-	7916 => 'U',
378
-	7918 => 'U',
379
-	7920 => 'U',
380
-	253 => 'y',
381
-	7923 => 'y',
382
-	7927 => 'y',
383
-	7929 => 'y',
384
-	7925 => 'y',
385
-	221 => 'Y',
386
-	7922 => 'Y',
387
-	7926 => 'Y',
388
-	7928 => 'Y',
389
-	7924 => 'Y',
390
-	273 => 'd'
292
+    7843 => 'a',
293
+    7841 => 'a',
294
+    7845 => 'a',
295
+    7847 => 'a',
296
+    7849 => 'a',
297
+    7851 => 'a',
298
+    7853 => 'a',
299
+    7855 => 'a',
300
+    7857 => 'a',
301
+    7859 => 'a',
302
+    7861 => 'a',
303
+    7863 => 'a',
304
+    7842 => 'A',
305
+    7840 => 'A',
306
+    7844 => 'A',
307
+    7846 => 'A',
308
+    7848 => 'A',
309
+    7850 => 'A',
310
+    7852 => 'A',
311
+    7854 => 'A',
312
+    7856 => 'A',
313
+    7858 => 'A',
314
+    7860 => 'A',
315
+    7862 => 'A',
316
+    7867 => 'e',
317
+    7869 => 'e',
318
+    7865 => 'e',
319
+    7871 => 'e',
320
+    7873 => 'e',
321
+    7875 => 'e',
322
+    7877 => 'e',
323
+    7879 => 'e',
324
+    7866 => 'E',
325
+    7868 => 'E',
326
+    7864 => 'E',
327
+    7870 => 'E',
328
+    7872 => 'E',
329
+    7874 => 'E',
330
+    7876 => 'E',
331
+    7878 => 'E',
332
+    7881 => 'i',
333
+    7883 => 'i',
334
+    7880 => 'I',
335
+    7882 => 'I',
336
+    7887 => 'o',
337
+    7885 => 'o',
338
+    7889 => 'o',
339
+    7891 => 'o',
340
+    7893 => 'o',
341
+    7895 => 'o',
342
+    7897 => 'o',
343
+    417 => 'o',
344
+    7899 => 'o',
345
+    7901 => 'o',
346
+    7903 => 'o',
347
+    7905 => 'o',
348
+    7907 => 'o',
349
+    7886 => 'O',
350
+    7884 => 'O',
351
+    7888 => 'O',
352
+    7890 => 'O',
353
+    7892 => 'O',
354
+    7894 => 'O',
355
+    7896 => 'O',
356
+    416 => 'O',
357
+    7898 => 'O',
358
+    7900 => 'O',
359
+    7902 => 'O',
360
+    7904 => 'O',
361
+    7906 => 'O',
362
+    7911 => 'u',
363
+    361 => 'u',
364
+    7909 => 'u',
365
+    432 => 'u',
366
+    7913 => 'u',
367
+    7915 => 'u',
368
+    7917 => 'u',
369
+    7919 => 'u',
370
+    7921 => 'u',
371
+    7910 => 'U',
372
+    360 => 'U',
373
+    7908 => 'U',
374
+    431 => 'U',
375
+    7912 => 'U',
376
+    7914 => 'U',
377
+    7916 => 'U',
378
+    7918 => 'U',
379
+    7920 => 'U',
380
+    253 => 'y',
381
+    7923 => 'y',
382
+    7927 => 'y',
383
+    7929 => 'y',
384
+    7925 => 'y',
385
+    221 => 'Y',
386
+    7922 => 'Y',
387
+    7926 => 'Y',
388
+    7928 => 'Y',
389
+    7924 => 'Y',
390
+    273 => 'd'
391 391
 
392 392
 ];
Please login to merge, or discard this patch.
ecrire/index.php 1 patch
Indentation   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
 /** Drapeau indiquant que l'on est dans l'espace privé */
20 20
 define('_ESPACE_PRIVE', true);
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	include 'inc_version.php';
22
+    include 'inc_version.php';
23 23
 }
24 24
 
25 25
 include_spip('inc/cookie');
@@ -35,18 +35,18 @@  discard block
 block discarded – undo
35 35
 // alors il faut blinder les variables d'URL
36 36
 //
37 37
 if (autoriser_sans_cookie($exec, false)) {
38
-	if (!isset($reinstall)) {
39
-		$reinstall = 'non';
40
-	}
41
-	$var_auth = true;
38
+    if (!isset($reinstall)) {
39
+        $reinstall = 'non';
40
+    }
41
+    $var_auth = true;
42 42
 } else {
43
-	// Authentification, redefinissable
44
-	$auth = charger_fonction('auth', 'inc');
45
-	$var_auth = $auth();
46
-	if ($var_auth) {
47
-		echo auth_echec($var_auth);
48
-		exit;
49
-	}
43
+    // Authentification, redefinissable
44
+    $auth = charger_fonction('auth', 'inc');
45
+    $var_auth = $auth();
46
+    if ($var_auth) {
47
+        echo auth_echec($var_auth);
48
+        exit;
49
+    }
50 50
 }
51 51
 
52 52
 // initialiser a la langue par defaut
@@ -57,29 +57,29 @@  discard block
 block discarded – undo
57 57
 
58 58
 
59 59
 if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
60
-	if (!autoriser_sans_cookie($exec)) {
61
-		// Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
62
-		include_spip('public/aiguiller');
63
-		if (
64
-			// cas des appels actions ?action=xxx
65
-			traiter_appels_actions()
66
-			or
67
-			// cas des hits ajax sur les inclusions ajax
68
-			traiter_appels_inclusions_ajax()
69
-			or
70
-			// cas des formulaires charger/verifier/traiter
71
-			traiter_formulaires_dynamiques()
72
-		) {
73
-			exit;
74
-		} // le hit est fini !
75
-	}
60
+    if (!autoriser_sans_cookie($exec)) {
61
+        // Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
62
+        include_spip('public/aiguiller');
63
+        if (
64
+            // cas des appels actions ?action=xxx
65
+            traiter_appels_actions()
66
+            or
67
+            // cas des hits ajax sur les inclusions ajax
68
+            traiter_appels_inclusions_ajax()
69
+            or
70
+            // cas des formulaires charger/verifier/traiter
71
+            traiter_formulaires_dynamiques()
72
+        ) {
73
+            exit;
74
+        } // le hit est fini !
75
+    }
76 76
 }
77 77
 // securiser les redirect du back-office
78 78
 if (_request('redirect')) {
79
-	if (!function_exists('securiser_redirect_action')) {
80
-		include_spip('public/aiguiller');
81
-	}
82
-	set_request('redirect', securiser_redirect_action(_request('redirect')));
79
+    if (!function_exists('securiser_redirect_action')) {
80
+        include_spip('public/aiguiller');
81
+    }
82
+    set_request('redirect', securiser_redirect_action(_request('redirect')));
83 83
 }
84 84
 
85 85
 
@@ -89,12 +89,12 @@  discard block
 block discarded – undo
89 89
 
90 90
 // Controle de la version, sauf si on est deja en train de s'en occuper
91 91
 if (
92
-	!$reinstall == 'oui'
93
-	and !_AJAX
94
-	and isset($GLOBALS['meta']['version_installee'])
95
-	and ($GLOBALS['spip_version_base'] != (str_replace(',', '.', $GLOBALS['meta']['version_installee'])))
92
+    !$reinstall == 'oui'
93
+    and !_AJAX
94
+    and isset($GLOBALS['meta']['version_installee'])
95
+    and ($GLOBALS['spip_version_base'] != (str_replace(',', '.', $GLOBALS['meta']['version_installee'])))
96 96
 ) {
97
-	$exec = 'demande_mise_a_jour';
97
+    $exec = 'demande_mise_a_jour';
98 98
 }
99 99
 
100 100
 // Quand une action d'administration est en cours (meta "admin"),
@@ -104,39 +104,39 @@  discard block
 block discarded – undo
104 104
 // sinon c'est qu'elle a ete interrompue et il faut la reprendre
105 105
 
106 106
 elseif (isset($GLOBALS['meta']['admin'])) {
107
-	if (preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']['admin'], $l)) {
108
-		[, $var_f, $n] = $l;
109
-	}
110
-	if (
111
-		_AJAX
112
-		or !(
113
-			isset($_COOKIE['spip_admin'])
114
-			or (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']['statut'] == '0minirezo')
115
-		)
116
-	) {
117
-		spip_log('Quand la meta admin vaut ' .
118
-			$GLOBALS['meta']['admin'] .
119
-			' seul un admin peut se connecter et sans AJAX.' .
120
-			' En cas de probleme, detruire cette meta.');
121
-		die(_T('info_travaux_texte'));
122
-	}
123
-	if ($n) {
124
-		[, $var_f, $n] = $l;
125
-		if (tester_url_ecrire("base_$var_f")) {
126
-			$var_f = "base_$var_f";
127
-		}
128
-		if ($var_f != $exec) {
129
-			spip_log("Le script $var_f lance par auteur$n se substitue a l'exec $exec");
130
-			$exec = $var_f;
131
-			set_request('exec', $exec);
132
-		}
133
-	}
107
+    if (preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']['admin'], $l)) {
108
+        [, $var_f, $n] = $l;
109
+    }
110
+    if (
111
+        _AJAX
112
+        or !(
113
+            isset($_COOKIE['spip_admin'])
114
+            or (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']['statut'] == '0minirezo')
115
+        )
116
+    ) {
117
+        spip_log('Quand la meta admin vaut ' .
118
+            $GLOBALS['meta']['admin'] .
119
+            ' seul un admin peut se connecter et sans AJAX.' .
120
+            ' En cas de probleme, detruire cette meta.');
121
+        die(_T('info_travaux_texte'));
122
+    }
123
+    if ($n) {
124
+        [, $var_f, $n] = $l;
125
+        if (tester_url_ecrire("base_$var_f")) {
126
+            $var_f = "base_$var_f";
127
+        }
128
+        if ($var_f != $exec) {
129
+            spip_log("Le script $var_f lance par auteur$n se substitue a l'exec $exec");
130
+            $exec = $var_f;
131
+            set_request('exec', $exec);
132
+        }
133
+    }
134 134
 }
135 135
 // si nom pas plausible, prendre le script par defaut
136 136
 // attention aux deux cas 404/403 qui commencent par un 4 !
137 137
 elseif (!preg_match(',^[a-z4_][0-9a-z_-]*$,i', $exec)) {
138
-	$exec = 'accueil';
139
-	set_request('exec', $exec);
138
+    $exec = 'accueil';
139
+    set_request('exec', $exec);
140 140
 }
141 141
 
142 142
 // compatibilite ascendante : obsolete, ne plus utiliser
@@ -148,19 +148,19 @@  discard block
 block discarded – undo
148 148
 // on appelle directement la fonction, car un appel d'action peut conduire a une boucle infinie
149 149
 // si le cookie n'est pas pose correctement dans l'action
150 150
 if (
151
-	!$var_auth and isset($_COOKIE['spip_lang_ecrire'])
152
-	and $_COOKIE['spip_lang_ecrire'] <> $GLOBALS['visiteur_session']['lang']
151
+    !$var_auth and isset($_COOKIE['spip_lang_ecrire'])
152
+    and $_COOKIE['spip_lang_ecrire'] <> $GLOBALS['visiteur_session']['lang']
153 153
 ) {
154
-	include_spip('action/converser');
155
-	action_converser_post($GLOBALS['visiteur_session']['lang'], true);
154
+    include_spip('action/converser');
155
+    action_converser_post($GLOBALS['visiteur_session']['lang'], true);
156 156
 }
157 157
 
158 158
 if ($var_f = tester_url_ecrire($exec)) {
159
-	$var_f = charger_fonction($var_f);
160
-	$var_f(); // at last
159
+    $var_f = charger_fonction($var_f);
160
+    $var_f(); // at last
161 161
 } else {
162
-	// Rien de connu: rerouter vers exec=404 au lieu d'echouer
163
-	// ce qui permet de laisser la main a un plugin
164
-	$var_f = charger_fonction('404');
165
-	$var_f($exec);
162
+    // Rien de connu: rerouter vers exec=404 au lieu d'echouer
163
+    // ce qui permet de laisser la main a un plugin
164
+    $var_f = charger_fonction('404');
165
+    $var_f($exec);
166 166
 }
Please login to merge, or discard this patch.
ecrire/lang/spip_pt_br.php 1 patch
Indentation   +669 added lines, -669 removed lines patch added patch discarded remove patch
@@ -4,582 +4,582 @@  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' => 'Voltar para a interface gráfica completa',
14
-	'access_mode_texte' => 'Exibir a interface textual simplificada',
15
-	'admin_debug' => 'depurar',
16
-	'admin_modifier_article' => 'Editar esta matéria',
17
-	'admin_modifier_auteur' => 'Editar este autor',
18
-	'admin_modifier_breve' => 'Editar esta nota',
19
-	'admin_modifier_mot' => 'Editar esta palavra-chave',
20
-	'admin_modifier_rubrique' => 'Editar esta seção',
21
-	'admin_recalculer' => 'Atualizar esta página',
22
-	'afficher_calendrier' => 'Exibir o calendário',
23
-	'afficher_trad' => 'exibir as traduções',
24
-	'alerte_maj_impossible' => '<b>Atenção!</b> A atualização da base de dados SQL para a versão @version@ não é possível, provavelmente por problema de direitos de edição na base de dados. Por favor, contate o seu provedor de hospedagem.',
25
-	'alerte_modif_info_concourante' => 'ATENÇÃO: Esta informação foi alterada por outra pessoa. O valor atual é:',
26
-	'analyse_xml' => 'Analisar XML',
27
-	'annuler' => 'Cancelar',
28
-	'antispam_champ_vide' => 'Por favor, deixe este campo vazio:',
29
-	'articles_recents' => 'Matérias mais recentes',
30
-	'attention_champ_mini_nb_caractères' => 'Atenção! Mínimo de @nb@ caracteres',
31
-	'avis_1_erreur_saisie' => 'Há um erro nos dados informados. Por favor, verifique.',
32
-	'avis_archive_incorrect' => 'a cópia de segurança não é um arquivo do SPIP',
33
-	'avis_archive_invalide' => 'a cópia de segurança não é válida',
34
-	'avis_attention' => 'ATENÇÃO!',
35
-	'avis_champ_incorrect_type_objet' => 'Nome de campo @name@ incorreto para objeto do tipo @type@',
36
-	'avis_colonne_inexistante' => 'A coluna @col@ não existe',
37
-	'avis_erreur' => 'Erro: ver abaixo',
38
-	'avis_erreur_connexion' => 'Erro de conexão',
39
-	'avis_erreur_cookie' => 'problema de cookie',
40
-	'avis_erreur_fonction_contexte' => 'Erro de programação. Esta função não deve ser chamada neste contexto.',
41
-	'avis_erreur_mysql' => 'Erro SQL',
42
-	'avis_erreur_sauvegarde' => 'Erro na cópia de segurança (@type@ @id_objet@) !',
43
-	'avis_erreur_visiteur' => 'Problema de acesso ao espaço privado',
44
-	'avis_nb_erreurs_saisie' => 'Há @nb@ erros nos dados informados. Por favor, verifique.',
12
+    // A
13
+    'access_interface_graphique' => 'Voltar para a interface gráfica completa',
14
+    'access_mode_texte' => 'Exibir a interface textual simplificada',
15
+    'admin_debug' => 'depurar',
16
+    'admin_modifier_article' => 'Editar esta matéria',
17
+    'admin_modifier_auteur' => 'Editar este autor',
18
+    'admin_modifier_breve' => 'Editar esta nota',
19
+    'admin_modifier_mot' => 'Editar esta palavra-chave',
20
+    'admin_modifier_rubrique' => 'Editar esta seção',
21
+    'admin_recalculer' => 'Atualizar esta página',
22
+    'afficher_calendrier' => 'Exibir o calendário',
23
+    'afficher_trad' => 'exibir as traduções',
24
+    'alerte_maj_impossible' => '<b>Atenção!</b> A atualização da base de dados SQL para a versão @version@ não é possível, provavelmente por problema de direitos de edição na base de dados. Por favor, contate o seu provedor de hospedagem.',
25
+    'alerte_modif_info_concourante' => 'ATENÇÃO: Esta informação foi alterada por outra pessoa. O valor atual é:',
26
+    'analyse_xml' => 'Analisar XML',
27
+    'annuler' => 'Cancelar',
28
+    'antispam_champ_vide' => 'Por favor, deixe este campo vazio:',
29
+    'articles_recents' => 'Matérias mais recentes',
30
+    'attention_champ_mini_nb_caractères' => 'Atenção! Mínimo de @nb@ caracteres',
31
+    'avis_1_erreur_saisie' => 'Há um erro nos dados informados. Por favor, verifique.',
32
+    'avis_archive_incorrect' => 'a cópia de segurança não é um arquivo do SPIP',
33
+    'avis_archive_invalide' => 'a cópia de segurança não é válida',
34
+    'avis_attention' => 'ATENÇÃO!',
35
+    'avis_champ_incorrect_type_objet' => 'Nome de campo @name@ incorreto para objeto do tipo @type@',
36
+    'avis_colonne_inexistante' => 'A coluna @col@ não existe',
37
+    'avis_erreur' => 'Erro: ver abaixo',
38
+    'avis_erreur_connexion' => 'Erro de conexão',
39
+    'avis_erreur_cookie' => 'problema de cookie',
40
+    'avis_erreur_fonction_contexte' => 'Erro de programação. Esta função não deve ser chamada neste contexto.',
41
+    'avis_erreur_mysql' => 'Erro SQL',
42
+    'avis_erreur_sauvegarde' => 'Erro na cópia de segurança (@type@ @id_objet@) !',
43
+    'avis_erreur_visiteur' => 'Problema de acesso ao espaço privado',
44
+    'avis_nb_erreurs_saisie' => 'Há @nb@ erros nos dados informados. Por favor, verifique.',
45 45
 
46
-	// B
47
-	'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
48
-	'barre_aide' => 'utilize os atalhos tipográficos para enriquecer o seu layout',
49
-	'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo',
50
-	'barre_eo' => 'Inserir um OE contraído',
51
-	'barre_eo_maj' => 'Inserir um OE contraído maiúsculo',
52
-	'barre_euro' => 'Inserir o símbolo € (euro)',
53
-	'barre_gras' => 'Escrever em {{negrito}}',
54
-	'barre_guillemets' => 'envolver em "aspas"',
55
-	'barre_guillemets_simples' => 'Envolver em ’plicas’',
56
-	'barre_intertitre' => 'Transformar em {{{entretítulo}}}',
57
-	'barre_italic' => 'Escrever em {itálico}',
58
-	'barre_lien' => 'Transformar em [link hipertexto->http://...]',
59
-	'barre_lien_input' => 'Informe o endereço do seu link (você pode informar um endereço web do tipo http://www.monsite/com ou simplesmente informar o número de uma matéria deste site.',
60
-	'barre_note' => 'Transformar em [[Nota de pé de página]]',
61
-	'barre_paragraphe' => 'Criar um parágrafo',
62
-	'barre_quote' => '<quote>Citar uma mensagem</quote>',
63
-	'bouton_changer' => 'Alterar',
64
-	'bouton_chercher' => 'Procurar',
65
-	'bouton_choisir' => 'Escolher',
66
-	'bouton_deplacer' => 'Deslocar',
67
-	'bouton_download' => 'Baixar',
68
-	'bouton_enregistrer' => 'Gravar',
69
-	'bouton_radio_desactiver_messagerie_interne' => 'Desativar o sistema interno de mensagens',
70
-	'bouton_radio_envoi_annonces' => 'Enviar os avisos editoriais',
71
-	'bouton_radio_non_envoi_annonces' => 'Não enviar os avisos',
72
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista de novidades',
73
-	'bouton_recharger_page' => 'atualizar esta página',
74
-	'bouton_telecharger' => 'Transferir',
75
-	'bouton_upload' => 'Upload',
76
-	'bouton_valider' => 'Validar',
46
+    // B
47
+    'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
48
+    'barre_aide' => 'utilize os atalhos tipográficos para enriquecer o seu layout',
49
+    'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo',
50
+    'barre_eo' => 'Inserir um OE contraído',
51
+    'barre_eo_maj' => 'Inserir um OE contraído maiúsculo',
52
+    'barre_euro' => 'Inserir o símbolo € (euro)',
53
+    'barre_gras' => 'Escrever em {{negrito}}',
54
+    'barre_guillemets' => 'envolver em "aspas"',
55
+    'barre_guillemets_simples' => 'Envolver em ’plicas’',
56
+    'barre_intertitre' => 'Transformar em {{{entretítulo}}}',
57
+    'barre_italic' => 'Escrever em {itálico}',
58
+    'barre_lien' => 'Transformar em [link hipertexto->http://...]',
59
+    'barre_lien_input' => 'Informe o endereço do seu link (você pode informar um endereço web do tipo http://www.monsite/com ou simplesmente informar o número de uma matéria deste site.',
60
+    'barre_note' => 'Transformar em [[Nota de pé de página]]',
61
+    'barre_paragraphe' => 'Criar um parágrafo',
62
+    'barre_quote' => '<quote>Citar uma mensagem</quote>',
63
+    'bouton_changer' => 'Alterar',
64
+    'bouton_chercher' => 'Procurar',
65
+    'bouton_choisir' => 'Escolher',
66
+    'bouton_deplacer' => 'Deslocar',
67
+    'bouton_download' => 'Baixar',
68
+    'bouton_enregistrer' => 'Gravar',
69
+    'bouton_radio_desactiver_messagerie_interne' => 'Desativar o sistema interno de mensagens',
70
+    'bouton_radio_envoi_annonces' => 'Enviar os avisos editoriais',
71
+    'bouton_radio_non_envoi_annonces' => 'Não enviar os avisos',
72
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista de novidades',
73
+    'bouton_recharger_page' => 'atualizar esta página',
74
+    'bouton_telecharger' => 'Transferir',
75
+    'bouton_upload' => 'Upload',
76
+    'bouton_valider' => 'Validar',
77 77
 
78
-	// C
79
-	'cal_apresmidi' => 'tarde',
80
-	'cal_jour_entier' => 'dia todo',
81
-	'cal_matin' => 'manhã',
82
-	'cal_par_jour' => 'calendário por dia',
83
-	'cal_par_mois' => 'calendário por mês',
84
-	'cal_par_semaine' => 'calendário por semana',
85
-	'choix_couleur_interface' => 'côr',
86
-	'choix_interface' => 'escolha da interface',
87
-	'colonne' => 'Coluna',
88
-	'confirm_changer_statut' => 'Atenção, você solicitou a alteração de status deste elemento. Deseja continuar?',
89
-	'correcte' => 'correta',
78
+    // C
79
+    'cal_apresmidi' => 'tarde',
80
+    'cal_jour_entier' => 'dia todo',
81
+    'cal_matin' => 'manhã',
82
+    'cal_par_jour' => 'calendário por dia',
83
+    'cal_par_mois' => 'calendário por mês',
84
+    'cal_par_semaine' => 'calendário por semana',
85
+    'choix_couleur_interface' => 'côr',
86
+    'choix_interface' => 'escolha da interface',
87
+    'colonne' => 'Coluna',
88
+    'confirm_changer_statut' => 'Atenção, você solicitou a alteração de status deste elemento. Deseja continuar?',
89
+    'correcte' => 'correta',
90 90
 
91
-	// D
92
-	'date_aujourdhui' => 'hoje',
93
-	'date_avant_jc' => 'a.C.',
94
-	'date_dans' => 'entre @delai@',
95
-	'date_de_mois_1' => '@j@ de @nommois@',
96
-	'date_de_mois_10' => '@j@ de @nommois@',
97
-	'date_de_mois_11' => '@j@ de @nommois@',
98
-	'date_de_mois_12' => '@j@ de @nommois@',
99
-	'date_de_mois_2' => '@j@ de @nommois@',
100
-	'date_de_mois_3' => '@j@ de @nommois@',
101
-	'date_de_mois_4' => '@j@ de @nommois@',
102
-	'date_de_mois_5' => '@j@ de @nommois@',
103
-	'date_de_mois_6' => '@j@ de @nommois@',
104
-	'date_de_mois_7' => '@j@ de @nommois@',
105
-	'date_de_mois_8' => '@j@ de @nommois@',
106
-	'date_de_mois_9' => '@j@ de @nommois@',
107
-	'date_demain' => 'amanhã',
108
-	'date_fmt_heures_minutes' => '@h@h@m@min',
109
-	'date_fmt_heures_minutes_court' => '@h@h@m@',
110
-	'date_fmt_jour' => '@nomjour@ @jour@',
111
-	'date_fmt_jour_heure' => '@jour@ - @heure@',
112
-	'date_fmt_jour_heure_debut_fin' => 'dia @jour@ de @heure_debut@ a @heure_fin@',
113
-	'date_fmt_jour_heure_debut_fin_abbr' => 'dia @dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@',
114
-	'date_fmt_jour_mois' => '@jour@ de @nommois@',
115
-	'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
116
-	'date_fmt_mois_annee' => '@nommois@ de @annee@',
117
-	'date_fmt_nomjour' => '@nomjour@ @date@',
118
-	'date_fmt_nomjour_date' => '@nomjour@ de @date@',
119
-	'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
120
-	'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
121
-	'date_fmt_periode_from' => 'De',
122
-	'date_fmt_periode_to' => 'para',
123
-	'date_fmt_saison_annee' => '@saison@ @annee@',
124
-	'date_heures' => 'horas',
125
-	'date_hier' => 'ontem',
126
-	'date_il_y_a' => 'há @delai@',
127
-	'date_jnum1' => '1º',
128
-	'date_jnum10' => '10',
129
-	'date_jnum11' => '11',
130
-	'date_jnum12' => '12',
131
-	'date_jnum13' => '13',
132
-	'date_jnum14' => '14',
133
-	'date_jnum15' => '15',
134
-	'date_jnum16' => '16',
135
-	'date_jnum17' => '17',
136
-	'date_jnum18' => '18',
137
-	'date_jnum19' => '19',
138
-	'date_jnum2' => '2',
139
-	'date_jnum20' => '20',
140
-	'date_jnum21' => '21',
141
-	'date_jnum22' => '22',
142
-	'date_jnum23' => '23',
143
-	'date_jnum24' => '24',
144
-	'date_jnum25' => '25',
145
-	'date_jnum26' => '26',
146
-	'date_jnum27' => '27',
147
-	'date_jnum28' => '28',
148
-	'date_jnum29' => '29',
149
-	'date_jnum3' => '3',
150
-	'date_jnum30' => '30',
151
-	'date_jnum31' => '31',
152
-	'date_jnum4' => '4',
153
-	'date_jnum5' => '5',
154
-	'date_jnum6' => '6',
155
-	'date_jnum7' => '7',
156
-	'date_jnum8' => '8',
157
-	'date_jnum9' => '9',
158
-	'date_jour_1' => 'domingo',
159
-	'date_jour_1_abbr' => 'dom.',
160
-	'date_jour_1_initiale' => 'd.',
161
-	'date_jour_2' => 'segunda-feira',
162
-	'date_jour_2_abbr' => 'seg.',
163
-	'date_jour_2_initiale' => 's.',
164
-	'date_jour_3' => 'terça-feira',
165
-	'date_jour_3_abbr' => 'ter.',
166
-	'date_jour_3_initiale' => 't.',
167
-	'date_jour_4' => 'quarta-feira',
168
-	'date_jour_4_abbr' => 'quar.',
169
-	'date_jour_4_initiale' => 'q.',
170
-	'date_jour_5' => 'quinta-feira',
171
-	'date_jour_5_abbr' => 'quin.',
172
-	'date_jour_5_initiale' => 'q.',
173
-	'date_jour_6' => 'sexta-feira',
174
-	'date_jour_6_abbr' => 'sex.',
175
-	'date_jour_6_initiale' => 's.',
176
-	'date_jour_7' => 'sábado',
177
-	'date_jour_7_abbr' => 'sáb.',
178
-	'date_jour_7_initiale' => 's.',
179
-	'date_jours' => 'dias',
180
-	'date_minutes' => 'minutos',
181
-	'date_mois' => 'meses',
182
-	'date_mois_1' => 'janeiro',
183
-	'date_mois_10' => 'outubro',
184
-	'date_mois_10_abbr' => 'out.',
185
-	'date_mois_11' => 'novembro',
186
-	'date_mois_11_abbr' => 'nov.',
187
-	'date_mois_12' => 'dezembro',
188
-	'date_mois_12_abbr' => 'dez.',
189
-	'date_mois_1_abbr' => 'jan.',
190
-	'date_mois_2' => 'fevereiro',
191
-	'date_mois_2_abbr' => 'fev.',
192
-	'date_mois_3' => 'março',
193
-	'date_mois_3_abbr' => 'mar.',
194
-	'date_mois_4' => 'abril',
195
-	'date_mois_4_abbr' => 'abr.',
196
-	'date_mois_5' => 'maio',
197
-	'date_mois_5_abbr' => 'mai.',
198
-	'date_mois_6' => 'junho',
199
-	'date_mois_6_abbr' => 'jun.',
200
-	'date_mois_7' => 'julho',
201
-	'date_mois_7_abbr' => 'jul.',
202
-	'date_mois_8' => 'agosto',
203
-	'date_mois_8_abbr' => 'ago.',
204
-	'date_mois_9' => 'setembro',
205
-	'date_mois_9_abbr' => 'set.',
206
-	'date_saison_1' => 'inverno',
207
-	'date_saison_2' => 'primavera',
208
-	'date_saison_3' => 'verão',
209
-	'date_saison_4' => 'outono',
210
-	'date_secondes' => 'segundos',
211
-	'date_semaines' => 'semanas',
212
-	'date_un_mois' => 'mês',
213
-	'date_une_heure' => 'hora',
214
-	'date_une_minute' => 'minuto',
215
-	'date_une_seconde' => 'segundo',
216
-	'date_une_semaine' => 'semana',
217
-	'dirs_commencer' => 'Para começar realmente a instalação',
218
-	'dirs_preliminaire' => 'Preliminar: <b>Configurar os direitos de acesso</b>',
219
-	'dirs_probleme_droits' => 'Problema com as permissões de acesso',
220
-	'dirs_repertoires_absents' => '<p><b>Os diretórios a seguir não foram encontrados:</b></p><ul>@bad_dirs@.</ul>
91
+    // D
92
+    'date_aujourdhui' => 'hoje',
93
+    'date_avant_jc' => 'a.C.',
94
+    'date_dans' => 'entre @delai@',
95
+    'date_de_mois_1' => '@j@ de @nommois@',
96
+    'date_de_mois_10' => '@j@ de @nommois@',
97
+    'date_de_mois_11' => '@j@ de @nommois@',
98
+    'date_de_mois_12' => '@j@ de @nommois@',
99
+    'date_de_mois_2' => '@j@ de @nommois@',
100
+    'date_de_mois_3' => '@j@ de @nommois@',
101
+    'date_de_mois_4' => '@j@ de @nommois@',
102
+    'date_de_mois_5' => '@j@ de @nommois@',
103
+    'date_de_mois_6' => '@j@ de @nommois@',
104
+    'date_de_mois_7' => '@j@ de @nommois@',
105
+    'date_de_mois_8' => '@j@ de @nommois@',
106
+    'date_de_mois_9' => '@j@ de @nommois@',
107
+    'date_demain' => 'amanhã',
108
+    'date_fmt_heures_minutes' => '@h@h@m@min',
109
+    'date_fmt_heures_minutes_court' => '@h@h@m@',
110
+    'date_fmt_jour' => '@nomjour@ @jour@',
111
+    'date_fmt_jour_heure' => '@jour@ - @heure@',
112
+    'date_fmt_jour_heure_debut_fin' => 'dia @jour@ de @heure_debut@ a @heure_fin@',
113
+    'date_fmt_jour_heure_debut_fin_abbr' => 'dia @dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@',
114
+    'date_fmt_jour_mois' => '@jour@ de @nommois@',
115
+    'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
116
+    'date_fmt_mois_annee' => '@nommois@ de @annee@',
117
+    'date_fmt_nomjour' => '@nomjour@ @date@',
118
+    'date_fmt_nomjour_date' => '@nomjour@ de @date@',
119
+    'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
120
+    'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
121
+    'date_fmt_periode_from' => 'De',
122
+    'date_fmt_periode_to' => 'para',
123
+    'date_fmt_saison_annee' => '@saison@ @annee@',
124
+    'date_heures' => 'horas',
125
+    'date_hier' => 'ontem',
126
+    'date_il_y_a' => 'há @delai@',
127
+    'date_jnum1' => '1º',
128
+    'date_jnum10' => '10',
129
+    'date_jnum11' => '11',
130
+    'date_jnum12' => '12',
131
+    'date_jnum13' => '13',
132
+    'date_jnum14' => '14',
133
+    'date_jnum15' => '15',
134
+    'date_jnum16' => '16',
135
+    'date_jnum17' => '17',
136
+    'date_jnum18' => '18',
137
+    'date_jnum19' => '19',
138
+    'date_jnum2' => '2',
139
+    'date_jnum20' => '20',
140
+    'date_jnum21' => '21',
141
+    'date_jnum22' => '22',
142
+    'date_jnum23' => '23',
143
+    'date_jnum24' => '24',
144
+    'date_jnum25' => '25',
145
+    'date_jnum26' => '26',
146
+    'date_jnum27' => '27',
147
+    'date_jnum28' => '28',
148
+    'date_jnum29' => '29',
149
+    'date_jnum3' => '3',
150
+    'date_jnum30' => '30',
151
+    'date_jnum31' => '31',
152
+    'date_jnum4' => '4',
153
+    'date_jnum5' => '5',
154
+    'date_jnum6' => '6',
155
+    'date_jnum7' => '7',
156
+    'date_jnum8' => '8',
157
+    'date_jnum9' => '9',
158
+    'date_jour_1' => 'domingo',
159
+    'date_jour_1_abbr' => 'dom.',
160
+    'date_jour_1_initiale' => 'd.',
161
+    'date_jour_2' => 'segunda-feira',
162
+    'date_jour_2_abbr' => 'seg.',
163
+    'date_jour_2_initiale' => 's.',
164
+    'date_jour_3' => 'terça-feira',
165
+    'date_jour_3_abbr' => 'ter.',
166
+    'date_jour_3_initiale' => 't.',
167
+    'date_jour_4' => 'quarta-feira',
168
+    'date_jour_4_abbr' => 'quar.',
169
+    'date_jour_4_initiale' => 'q.',
170
+    'date_jour_5' => 'quinta-feira',
171
+    'date_jour_5_abbr' => 'quin.',
172
+    'date_jour_5_initiale' => 'q.',
173
+    'date_jour_6' => 'sexta-feira',
174
+    'date_jour_6_abbr' => 'sex.',
175
+    'date_jour_6_initiale' => 's.',
176
+    'date_jour_7' => 'sábado',
177
+    'date_jour_7_abbr' => 'sáb.',
178
+    'date_jour_7_initiale' => 's.',
179
+    'date_jours' => 'dias',
180
+    'date_minutes' => 'minutos',
181
+    'date_mois' => 'meses',
182
+    'date_mois_1' => 'janeiro',
183
+    'date_mois_10' => 'outubro',
184
+    'date_mois_10_abbr' => 'out.',
185
+    'date_mois_11' => 'novembro',
186
+    'date_mois_11_abbr' => 'nov.',
187
+    'date_mois_12' => 'dezembro',
188
+    'date_mois_12_abbr' => 'dez.',
189
+    'date_mois_1_abbr' => 'jan.',
190
+    'date_mois_2' => 'fevereiro',
191
+    'date_mois_2_abbr' => 'fev.',
192
+    'date_mois_3' => 'março',
193
+    'date_mois_3_abbr' => 'mar.',
194
+    'date_mois_4' => 'abril',
195
+    'date_mois_4_abbr' => 'abr.',
196
+    'date_mois_5' => 'maio',
197
+    'date_mois_5_abbr' => 'mai.',
198
+    'date_mois_6' => 'junho',
199
+    'date_mois_6_abbr' => 'jun.',
200
+    'date_mois_7' => 'julho',
201
+    'date_mois_7_abbr' => 'jul.',
202
+    'date_mois_8' => 'agosto',
203
+    'date_mois_8_abbr' => 'ago.',
204
+    'date_mois_9' => 'setembro',
205
+    'date_mois_9_abbr' => 'set.',
206
+    'date_saison_1' => 'inverno',
207
+    'date_saison_2' => 'primavera',
208
+    'date_saison_3' => 'verão',
209
+    'date_saison_4' => 'outono',
210
+    'date_secondes' => 'segundos',
211
+    'date_semaines' => 'semanas',
212
+    'date_un_mois' => 'mês',
213
+    'date_une_heure' => 'hora',
214
+    'date_une_minute' => 'minuto',
215
+    'date_une_seconde' => 'segundo',
216
+    'date_une_semaine' => 'semana',
217
+    'dirs_commencer' => 'Para começar realmente a instalação',
218
+    'dirs_preliminaire' => 'Preliminar: <b>Configurar os direitos de acesso</b>',
219
+    'dirs_probleme_droits' => 'Problema com as permissões de acesso',
220
+    'dirs_repertoires_absents' => '<p><b>Os diretórios a seguir não foram encontrados:</b></p><ul>@bad_dirs@.</ul>
221 221
 <p>É provável que isto se deva a um problema de letras em maiúsculas e minúsculas.
222 222
 Verifique se as maiúsculas e minúsuculas destes diretórios coincidem exatamente com o que está sendo exibido abaixo; se este não for o caso, renomeie os diretórios com o seu programa de FTP de modo a corrigir o erro.
223 223
 <p>Uma vêz feita esta manipulação, você poderá ',
224
-	'dirs_repertoires_suivants' => '<p><b>Os diretórios a seguir não estão acessiveis para leitura:</b></p><ul>@bad_dirs@.</ul>
224
+    'dirs_repertoires_suivants' => '<p><b>Os diretórios a seguir não estão acessiveis para leitura:</b></p><ul>@bad_dirs@.</ul>
225 225
 <p>Para corrigir, utilize o seu programa de FTP para configurar os direitos de acesso de cada um destes diretórios. O procedimento está explicado em detalhes no guia de instalação.</p>
226 226
 <p>Uma vêz feita esta alteração, você poderá ',
227
-	'double_occurrence' => 'Ocorrência dupla de @balise@',
227
+    'double_occurrence' => 'Ocorrência dupla de @balise@',
228 228
 
229
-	// E
230
-	'en_cours' => 'em curso',
231
-	'envoi_via_le_site' => 'Envio pelo site',
232
-	'erreur' => 'Erro',
233
-	'erreur_balise_non_fermee' => 'Última tag em aberto:',
234
-	'erreur_technique_ajaxform' => 'Ooops. Um erro inesperado impediu o envio do formulário. Você pode tentar novamente.',
235
-	'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu a gravação correta do campo @champs@.',
236
-	'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu a gravação.',
237
-	'erreur_texte' => 'erro(s)',
238
-	'etape' => 'Etapa',
229
+    // E
230
+    'en_cours' => 'em curso',
231
+    'envoi_via_le_site' => 'Envio pelo site',
232
+    'erreur' => 'Erro',
233
+    'erreur_balise_non_fermee' => 'Última tag em aberto:',
234
+    'erreur_technique_ajaxform' => 'Ooops. Um erro inesperado impediu o envio do formulário. Você pode tentar novamente.',
235
+    'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu a gravação correta do campo @champs@.',
236
+    'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu a gravação.',
237
+    'erreur_texte' => 'erro(s)',
238
+    'etape' => 'Etapa',
239 239
 
240
-	// F
241
-	'fichier_introuvable' => 'Arquivo @fichier@ não encontrado.',
242
-	'fonction_introuvable' => 'Função @fonction@() não encontrada.',
243
-	'form_auteur_confirmation' => 'Confirme o seu endereço de e-mail',
244
-	'form_auteur_email_modifie' => 'O seu endereço de e-mail foi alterado.',
245
-	'form_auteur_envoi_mail_confirmation' => 'Uma mensagem de confirmação acabou de ser enviada para @email@. Você precisa entrar no endereço web mencionado na mensagem para validar o seu endereço de e-mail.',
246
-	'form_auteur_mail_confirmation' => 'Olá,
240
+    // F
241
+    'fichier_introuvable' => 'Arquivo @fichier@ não encontrado.',
242
+    'fonction_introuvable' => 'Função @fonction@() não encontrada.',
243
+    'form_auteur_confirmation' => 'Confirme o seu endereço de e-mail',
244
+    'form_auteur_email_modifie' => 'O seu endereço de e-mail foi alterado.',
245
+    'form_auteur_envoi_mail_confirmation' => 'Uma mensagem de confirmação acabou de ser enviada para @email@. Você precisa entrar no endereço web mencionado na mensagem para validar o seu endereço de e-mail.',
246
+    'form_auteur_mail_confirmation' => 'Olá,
247 247
 
248 248
 Você pediu para alterar o seu endereço de e-mail
249 249
 Para confirmar o seu novo endereço, basta acessar o endereço abaixo (cas contrário, a sua solicitação será ignorada):
250 250
 
251 251
     @url@
252 252
 ',
253
-	'form_deja_inscrit' => 'Você já está inscrito.',
254
-	'form_email_non_valide' => 'Seu endereço de e-mail não é válido.',
255
-	'form_forum_access_refuse' => 'Você não tem mais acesso a este site.',
256
-	'form_forum_bonjour' => 'Bom dia @nom@,',
257
-	'form_forum_confirmer_email' => 'Para confirmar o seu endereço de e-mail, clique neste link: @url_confirm@',
258
-	'form_forum_email_deja_enregistre' => 'Este endereço de e-mail já está cadastrado, você pode usar a sua senha habitual.',
259
-	'form_forum_identifiant_mail' => 'Seu novo login foi enviado por e-mail.',
260
-	'form_forum_identifiants' => 'Identificadores pessoais',
261
-	'form_forum_indiquer_nom_email' => 'Informe aqui o seu nome  endereço de e-mail. O seu identificador pessoal será enviado de imediato por correio eletrônico.',
262
-	'form_forum_login' => 'login:',
263
-	'form_forum_message_auto' => '(esta é uma mensagem automática)',
264
-	'form_forum_pass' => 'senha:',
265
-	'form_forum_probleme_mail' => 'Problema de e-mail: o identificador não pôde ser enviado.',
266
-	'form_forum_voici1' => 'Estes são os seus identificadores para que você possa participar da vida do site "@nom_site_spip@" (@adresse_site@):',
267
-	'form_forum_voici2' => 'Estes são os seus identificadores para que você possa propor matérias ao site "@nom_site_spip@" (@adresse_login@):',
268
-	'form_indiquer_email' => 'Por favor, informe o seu endereço de e-mail.',
269
-	'form_indiquer_nom' => 'Por favor, informe o seu nome.',
270
-	'form_indiquer_nom_site' => 'Por favor, informe o nome do seu site.',
271
-	'form_pet_deja_enregistre' => 'Este site já está cadastrado',
272
-	'form_pet_signature_pasprise' => 'Sua assinatura não foi computada.',
273
-	'form_prop_confirmer_envoi' => 'Confirmar o envio',
274
-	'form_prop_description' => 'Descrição / comentário',
275
-	'form_prop_enregistre' => 'Sua proposta foi cadastrada, ela aparecerá online após ser validada pelos responsáveis deste site.',
276
-	'form_prop_envoyer' => 'Enviar uma mensagem',
277
-	'form_prop_indiquer_email' => 'Por favor, indique um endereço de e-mail válido',
278
-	'form_prop_indiquer_nom_site' => 'Por favor, informe o nome do site.',
279
-	'form_prop_indiquer_sujet' => 'Por favor, informe um assunto',
280
-	'form_prop_message_envoye' => 'Mensagem enviada',
281
-	'form_prop_non_enregistre' => 'Sua proposta não foi cadastrada.',
282
-	'form_prop_sujet' => 'Assunto',
283
-	'form_prop_url_site' => 'Endereço URL do site',
284
-	'format_date_attendu' => 'Inserir uma data no formato dd/mm/aaaa.',
285
-	'format_date_incorrecte' => 'A data e o seu formato está incorreta',
286
-	'format_heure_attendu' => 'Inserir uma hora no formato hh:mm.',
287
-	'format_heure_incorrecte' => 'A hora e o seu formato está incorreta',
288
-	'forum_non_inscrit' => 'Você não está inscrito, ou o endereço ou a senha estão errados.',
289
-	'forum_par_auteur' => 'por @auteur@',
290
-	'forum_titre_erreur' => 'Erro...',
253
+    'form_deja_inscrit' => 'Você já está inscrito.',
254
+    'form_email_non_valide' => 'Seu endereço de e-mail não é válido.',
255
+    'form_forum_access_refuse' => 'Você não tem mais acesso a este site.',
256
+    'form_forum_bonjour' => 'Bom dia @nom@,',
257
+    'form_forum_confirmer_email' => 'Para confirmar o seu endereço de e-mail, clique neste link: @url_confirm@',
258
+    'form_forum_email_deja_enregistre' => 'Este endereço de e-mail já está cadastrado, você pode usar a sua senha habitual.',
259
+    'form_forum_identifiant_mail' => 'Seu novo login foi enviado por e-mail.',
260
+    'form_forum_identifiants' => 'Identificadores pessoais',
261
+    'form_forum_indiquer_nom_email' => 'Informe aqui o seu nome  endereço de e-mail. O seu identificador pessoal será enviado de imediato por correio eletrônico.',
262
+    'form_forum_login' => 'login:',
263
+    'form_forum_message_auto' => '(esta é uma mensagem automática)',
264
+    'form_forum_pass' => 'senha:',
265
+    'form_forum_probleme_mail' => 'Problema de e-mail: o identificador não pôde ser enviado.',
266
+    'form_forum_voici1' => 'Estes são os seus identificadores para que você possa participar da vida do site "@nom_site_spip@" (@adresse_site@):',
267
+    'form_forum_voici2' => 'Estes são os seus identificadores para que você possa propor matérias ao site "@nom_site_spip@" (@adresse_login@):',
268
+    'form_indiquer_email' => 'Por favor, informe o seu endereço de e-mail.',
269
+    'form_indiquer_nom' => 'Por favor, informe o seu nome.',
270
+    'form_indiquer_nom_site' => 'Por favor, informe o nome do seu site.',
271
+    'form_pet_deja_enregistre' => 'Este site já está cadastrado',
272
+    'form_pet_signature_pasprise' => 'Sua assinatura não foi computada.',
273
+    'form_prop_confirmer_envoi' => 'Confirmar o envio',
274
+    'form_prop_description' => 'Descrição / comentário',
275
+    'form_prop_enregistre' => 'Sua proposta foi cadastrada, ela aparecerá online após ser validada pelos responsáveis deste site.',
276
+    'form_prop_envoyer' => 'Enviar uma mensagem',
277
+    'form_prop_indiquer_email' => 'Por favor, indique um endereço de e-mail válido',
278
+    'form_prop_indiquer_nom_site' => 'Por favor, informe o nome do site.',
279
+    'form_prop_indiquer_sujet' => 'Por favor, informe um assunto',
280
+    'form_prop_message_envoye' => 'Mensagem enviada',
281
+    'form_prop_non_enregistre' => 'Sua proposta não foi cadastrada.',
282
+    'form_prop_sujet' => 'Assunto',
283
+    'form_prop_url_site' => 'Endereço URL do site',
284
+    'format_date_attendu' => 'Inserir uma data no formato dd/mm/aaaa.',
285
+    'format_date_incorrecte' => 'A data e o seu formato está incorreta',
286
+    'format_heure_attendu' => 'Inserir uma hora no formato hh:mm.',
287
+    'format_heure_incorrecte' => 'A hora e o seu formato está incorreta',
288
+    'forum_non_inscrit' => 'Você não está inscrito, ou o endereço ou a senha estão errados.',
289
+    'forum_par_auteur' => 'por @auteur@',
290
+    'forum_titre_erreur' => 'Erro...',
291 291
 
292
-	// I
293
-	'ical_texte_rss_articles' => 'O arquivo «backend» das matérias deste site encontra-se no endereço:',
294
-	'ical_texte_rss_articles2' => 'Você pode também obter os arquivos «backend» para as matérias de cada seção do site:',
295
-	'ical_texte_rss_breves' => 'Existe também um arquivo contendo as notas do site. Ao especificar um número de seção, você obterá unicamente as natos dessa seção.',
296
-	'icone_a_suivre' => 'Acompanhar',
297
-	'icone_admin_site' => 'Administração do site',
298
-	'icone_agenda' => 'Agenda',
299
-	'icone_aide_ligne' => 'Ajuda',
300
-	'icone_articles' => 'Matérias',
301
-	'icone_auteurs' => 'Autores',
302
-	'icone_brouteur' => 'Navegação rápida',
303
-	'icone_configuration_site' => 'Configuração',
304
-	'icone_configurer_site' => 'Configurar o seu site',
305
-	'icone_creer_nouvel_auteur' => 'Criar um novo autor',
306
-	'icone_creer_rubrique' => 'Criar uma seção',
307
-	'icone_creer_sous_rubrique' => 'Criar uma subseção',
308
-	'icone_deconnecter' => 'Desconectar-se',
309
-	'icone_discussions' => 'Discussões',
310
-	'icone_doc_rubrique' => 'Documentos das seções',
311
-	'icone_ecrire_article' => 'Escrever uma nova matéria',
312
-	'icone_edition_site' => 'Edição',
313
-	'icone_gestion_langues' => 'Gerenciamento de idiomas',
314
-	'icone_informations_personnelles' => 'Informações pessoais',
315
-	'icone_interface_complet' => 'interface completa',
316
-	'icone_interface_simple' => 'Interface simplificada',
317
-	'icone_maintenance_site' => 'Manutenção do site',
318
-	'icone_messagerie_personnelle' => 'Mensagens pessoais',
319
-	'icone_repartition_debut' => 'Exibir a repartição após o início',
320
-	'icone_rubriques' => 'Seções',
321
-	'icone_sauver_site' => 'Backup do site',
322
-	'icone_site_entier' => 'Todo o site',
323
-	'icone_sites_references' => 'Sites referenciados',
324
-	'icone_statistiques' => 'Estatísticas do site',
325
-	'icone_suivi_activite' => 'Acompanhar a vida do site',
326
-	'icone_suivi_actualite' => 'Evolução do site',
327
-	'icone_suivi_pettions' => 'Acompanhar / gerenciar as petições',
328
-	'icone_suivi_revisions' => 'Modificações das matérias',
329
-	'icone_supprimer_document' => 'Suprimir este documento',
330
-	'icone_supprimer_image' => 'Suprimir esta imagem',
331
-	'icone_tous_articles' => 'Todas as suas matérias',
332
-	'icone_tous_auteur' => 'Todos os autores',
333
-	'icone_tous_visiteur' => 'Todos os visitantes',
334
-	'icone_visiter_site' => 'Ver o site público',
335
-	'icone_voir_en_ligne' => 'Ver online',
336
-	'img_indisponible' => 'imagem indisponível',
337
-	'impossible' => 'impossível',
338
-	'info_a_suivre' => 'ACOMPANHAR»',
339
-	'info_acces_interdit' => 'Acesso interdito',
340
-	'info_acces_refuse' => 'Acesso recusado',
341
-	'info_action' => 'Ação: @action@',
342
-	'info_administrer_rubriques' => 'Você pode administrar esta seção e suas subseções',
343
-	'info_adresse_non_indiquee' => 'Você não informou o endereço a testar!',
344
-	'info_aide' => 'AJUDA:',
345
-	'info_ajouter_mot' => 'Incluir esta palavra',
346
-	'info_annonce' => 'AVISO',
347
-	'info_annonces_generales' => 'Avisos gerais:',
348
-	'info_article_propose' => 'Matéria proposta',
349
-	'info_article_publie' => 'Matéria publicada',
350
-	'info_article_redaction' => 'Matéria em fase de redação',
351
-	'info_article_refuse' => 'Matéria recusada',
352
-	'info_article_supprime' => 'Matéria suprimida',
353
-	'info_articles' => 'Matérias',
354
-	'info_articles_a_valider' => 'As matérias para validar',
355
-	'info_articles_nb' => '@nb@ matérias',
356
-	'info_articles_proposes' => 'Matérias propostas',
357
-	'info_articles_un' => '1 matéria',
358
-	'info_auteurs_nombre' => 'autor(es):',
359
-	'info_authentification_ftp' => 'Autenticação (por FTP).',
360
-	'info_breves_2' => 'notas',
361
-	'info_breves_nb' => '@nb@ notas',
362
-	'info_breves_un' => '1 nota',
363
-	'info_connexion_refusee' => 'Conexão recusada',
364
-	'info_contact_developpeur' => 'Por favor, contate um desenvolvedor.',
365
-	'info_contenance' => 'Este site contém:',
366
-	'info_contribution' => 'contribuições',
367
-	'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
368
-	'info_copyright_doc' => 'Para mais informações, veja o site <a href="@spipnet@">@spipnet_affiche@</a>.',
369
-	'info_copyright_gpl' => 'sob licença GPL',
370
-	'info_cours_edition' => 'Em edição',
371
-	'info_creer_repertoire' => 'Por favor, crie um arquivo ou diretório com o nome:',
372
-	'info_creer_repertoire_2' => 'dentro do subdiretório <b>@repertoire@</b>, e depois:',
373
-	'info_creer_vignette' => 'criação automática do ícone',
374
-	'info_creerdansrubrique_non_autorise' => 'Você não tem permissão para criar um conteúdo nesta seção',
375
-	'info_deplier' => 'Expandir',
376
-	'info_descriptif_nombre' => 'descrição(ões):',
377
-	'info_description' => 'Resumo:',
378
-	'info_description_2' => 'Resumo:',
379
-	'info_dimension' => 'Dimensões:',
380
-	'info_documents_nb' => '@nb@ documentos',
381
-	'info_documents_un' => '1 documento',
382
-	'info_ecire_message_prive' => 'Escrever uma mensagem privada',
383
-	'info_email_invalide' => 'Endereço de e-mail inválido.',
384
-	'info_en_cours_validation' => 'Suas matérias em fase de redação',
385
-	'info_en_ligne' => 'Atualmente online:',
386
-	'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
387
-	'info_erreur_requete' => 'Erro na requisição:',
388
-	'info_erreur_squelette2' => 'Nenhum template <b>@fichier@</b> está disponível...',
389
-	'info_erreur_systeme' => 'Erro do sistema (errno @errsys@)',
390
-	'info_erreur_systeme2' => 'É possível que não haja espaço livre em disco, ou que a base de dados esteja corrompida.<br />
292
+    // I
293
+    'ical_texte_rss_articles' => 'O arquivo «backend» das matérias deste site encontra-se no endereço:',
294
+    'ical_texte_rss_articles2' => 'Você pode também obter os arquivos «backend» para as matérias de cada seção do site:',
295
+    'ical_texte_rss_breves' => 'Existe também um arquivo contendo as notas do site. Ao especificar um número de seção, você obterá unicamente as natos dessa seção.',
296
+    'icone_a_suivre' => 'Acompanhar',
297
+    'icone_admin_site' => 'Administração do site',
298
+    'icone_agenda' => 'Agenda',
299
+    'icone_aide_ligne' => 'Ajuda',
300
+    'icone_articles' => 'Matérias',
301
+    'icone_auteurs' => 'Autores',
302
+    'icone_brouteur' => 'Navegação rápida',
303
+    'icone_configuration_site' => 'Configuração',
304
+    'icone_configurer_site' => 'Configurar o seu site',
305
+    'icone_creer_nouvel_auteur' => 'Criar um novo autor',
306
+    'icone_creer_rubrique' => 'Criar uma seção',
307
+    'icone_creer_sous_rubrique' => 'Criar uma subseção',
308
+    'icone_deconnecter' => 'Desconectar-se',
309
+    'icone_discussions' => 'Discussões',
310
+    'icone_doc_rubrique' => 'Documentos das seções',
311
+    'icone_ecrire_article' => 'Escrever uma nova matéria',
312
+    'icone_edition_site' => 'Edição',
313
+    'icone_gestion_langues' => 'Gerenciamento de idiomas',
314
+    'icone_informations_personnelles' => 'Informações pessoais',
315
+    'icone_interface_complet' => 'interface completa',
316
+    'icone_interface_simple' => 'Interface simplificada',
317
+    'icone_maintenance_site' => 'Manutenção do site',
318
+    'icone_messagerie_personnelle' => 'Mensagens pessoais',
319
+    'icone_repartition_debut' => 'Exibir a repartição após o início',
320
+    'icone_rubriques' => 'Seções',
321
+    'icone_sauver_site' => 'Backup do site',
322
+    'icone_site_entier' => 'Todo o site',
323
+    'icone_sites_references' => 'Sites referenciados',
324
+    'icone_statistiques' => 'Estatísticas do site',
325
+    'icone_suivi_activite' => 'Acompanhar a vida do site',
326
+    'icone_suivi_actualite' => 'Evolução do site',
327
+    'icone_suivi_pettions' => 'Acompanhar / gerenciar as petições',
328
+    'icone_suivi_revisions' => 'Modificações das matérias',
329
+    'icone_supprimer_document' => 'Suprimir este documento',
330
+    'icone_supprimer_image' => 'Suprimir esta imagem',
331
+    'icone_tous_articles' => 'Todas as suas matérias',
332
+    'icone_tous_auteur' => 'Todos os autores',
333
+    'icone_tous_visiteur' => 'Todos os visitantes',
334
+    'icone_visiter_site' => 'Ver o site público',
335
+    'icone_voir_en_ligne' => 'Ver online',
336
+    'img_indisponible' => 'imagem indisponível',
337
+    'impossible' => 'impossível',
338
+    'info_a_suivre' => 'ACOMPANHAR»',
339
+    'info_acces_interdit' => 'Acesso interdito',
340
+    'info_acces_refuse' => 'Acesso recusado',
341
+    'info_action' => 'Ação: @action@',
342
+    'info_administrer_rubriques' => 'Você pode administrar esta seção e suas subseções',
343
+    'info_adresse_non_indiquee' => 'Você não informou o endereço a testar!',
344
+    'info_aide' => 'AJUDA:',
345
+    'info_ajouter_mot' => 'Incluir esta palavra',
346
+    'info_annonce' => 'AVISO',
347
+    'info_annonces_generales' => 'Avisos gerais:',
348
+    'info_article_propose' => 'Matéria proposta',
349
+    'info_article_publie' => 'Matéria publicada',
350
+    'info_article_redaction' => 'Matéria em fase de redação',
351
+    'info_article_refuse' => 'Matéria recusada',
352
+    'info_article_supprime' => 'Matéria suprimida',
353
+    'info_articles' => 'Matérias',
354
+    'info_articles_a_valider' => 'As matérias para validar',
355
+    'info_articles_nb' => '@nb@ matérias',
356
+    'info_articles_proposes' => 'Matérias propostas',
357
+    'info_articles_un' => '1 matéria',
358
+    'info_auteurs_nombre' => 'autor(es):',
359
+    'info_authentification_ftp' => 'Autenticação (por FTP).',
360
+    'info_breves_2' => 'notas',
361
+    'info_breves_nb' => '@nb@ notas',
362
+    'info_breves_un' => '1 nota',
363
+    'info_connexion_refusee' => 'Conexão recusada',
364
+    'info_contact_developpeur' => 'Por favor, contate um desenvolvedor.',
365
+    'info_contenance' => 'Este site contém:',
366
+    'info_contribution' => 'contribuições',
367
+    'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
368
+    'info_copyright_doc' => 'Para mais informações, veja o site <a href="@spipnet@">@spipnet_affiche@</a>.',
369
+    'info_copyright_gpl' => 'sob licença GPL',
370
+    'info_cours_edition' => 'Em edição',
371
+    'info_creer_repertoire' => 'Por favor, crie um arquivo ou diretório com o nome:',
372
+    'info_creer_repertoire_2' => 'dentro do subdiretório <b>@repertoire@</b>, e depois:',
373
+    'info_creer_vignette' => 'criação automática do ícone',
374
+    'info_creerdansrubrique_non_autorise' => 'Você não tem permissão para criar um conteúdo nesta seção',
375
+    'info_deplier' => 'Expandir',
376
+    'info_descriptif_nombre' => 'descrição(ões):',
377
+    'info_description' => 'Resumo:',
378
+    'info_description_2' => 'Resumo:',
379
+    'info_dimension' => 'Dimensões:',
380
+    'info_documents_nb' => '@nb@ documentos',
381
+    'info_documents_un' => '1 documento',
382
+    'info_ecire_message_prive' => 'Escrever uma mensagem privada',
383
+    'info_email_invalide' => 'Endereço de e-mail inválido.',
384
+    'info_en_cours_validation' => 'Suas matérias em fase de redação',
385
+    'info_en_ligne' => 'Atualmente online:',
386
+    'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
387
+    'info_erreur_requete' => 'Erro na requisição:',
388
+    'info_erreur_squelette2' => 'Nenhum template <b>@fichier@</b> está disponível...',
389
+    'info_erreur_systeme' => 'Erro do sistema (errno @errsys@)',
390
+    'info_erreur_systeme2' => 'É possível que não haja espaço livre em disco, ou que a base de dados esteja corrompida.<br />
391 391
 <span style="color:red;">Tente <a href=\'@script@\'>reparar a base</a>, ou contate o seu serviço de hospedagem.</span>',
392
-	'info_fini' => 'Terminou!',
393
-	'info_format_image' => 'Formatos das imagens que podem ser utilizados para criar os ícones @gd_formats@.',
394
-	'info_format_non_defini' => 'formato não definido',
395
-	'info_grand_ecran' => 'Alta resolução',
396
-	'info_image_aide' => 'AJUDA',
397
-	'info_image_process_titre' => 'Método de criação dos ícones',
398
-	'info_impossible_lire_page' => '<b>Erro!</b> Impossível ler a página <tt><html>@test_proxy@</html></tt> via proxy',
399
-	'info_installation_systeme_publication' => 'Instalação do sistema de publicação...',
400
-	'info_installer_documents' => 'Você pode instalar automaticamente todos os documentos contídos no diretório @upload@.',
401
-	'info_installer_ftp' => 'Como administrador, você pode transferir (por FTP) arquivos para o diretório @upload@ para, em seguida, selecioná-los aqui diretamente.',
402
-	'info_installer_images' => 'Você pode transferir imagens nos formatos JPEG, GIF e PNG.',
403
-	'info_installer_images_dossier' => 'Transferir as imagens para o diretório @upload@ para poder selecioná-las aqui.',
404
-	'info_interface_complete' => 'interface completa',
405
-	'info_interface_simple' => 'Interface simplificada',
406
-	'info_joindre_document_article' => 'Você pode anexar a esta matéria documentos dos tipos a seguir',
407
-	'info_joindre_document_rubrique' => 'Você pode anexar a esta seção documentos dos tipos a seguir',
408
-	'info_joindre_documents_article' => 'Você pode anexar à sua matéria documentos dos tipos a seguir:',
409
-	'info_l_article' => 'a matéria',
410
-	'info_la_breve' => 'a nota',
411
-	'info_la_rubrique' => 'a seção',
412
-	'info_langue_principale' => 'Idioma principal do site',
413
-	'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels',
414
-	'info_les_auteurs_1' => 'por @les_auteurs@',
415
-	'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
416
-	'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
417
-	'info_mail_fournisseur' => '[email protected]',
418
-	'info_message_2' => 'MENSAGEM',
419
-	'info_message_supprime' => 'MENSAGEM EXCLUÍDA',
420
-	'info_messages_nb' => '@nb@ mensagens',
421
-	'info_messages_un' => '1 mensagem',
422
-	'info_mise_en_ligne' => 'Data de publicação online:',
423
-	'info_modification_parametres_securite' => 'modificações dos parâmetros de segurança',
424
-	'info_mois_courant' => 'No mês corrente:',
425
-	'info_mot_cle_ajoute' => 'A palavra-chave a seguir foi associada a',
426
-	'info_multi_herit' => 'Idioma padrão',
427
-	'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhados</u> dispõem de tradução total ou parcial dos textos da interface. Se você escolher esses idiomas, diversos elementos do site público (datas, formulários) são traduzidos automaticamente. Para os idiomas não sublinhados, estes elementos aparecerão no idioma principal do site.',
428
-	'info_multilinguisme' => 'Multilinguismo',
429
-	'info_nom_non_utilisateurs_connectes' => 'Seu nome não aparece na relação de usuários conectados.',
430
-	'info_nom_utilisateurs_connectes' => 'Seu nome aparecerá na relação de usuários conectados.',
431
-	'info_nombre_en_ligne' => 'Online neste momento:',
432
-	'info_non_resultat' => 'Nenhum resultados para "@cherche_mot@"',
433
-	'info_non_utilisation_messagerie' => 'Você não utiliza o sistema de mensagens deste site.',
434
-	'info_nouveau_message' => 'VOCÊ TEM UMA NOVA MENSAGEM',
435
-	'info_nouveaux_messages' => 'VOCÊ TEM @total_messages@ MENSAGENS NOVAS',
436
-	'info_numero_abbreviation' => 'N° ',
437
-	'info_obligatoire' => 'Esta informação é obrigatória',
438
-	'info_page_actuelle' => 'Página atual',
439
-	'info_pense_bete' => 'LEMBRETE',
440
-	'info_petit_ecran' => 'Baixa resolução',
441
-	'info_petition_close' => 'Petição fechada',
442
-	'info_pixels' => 'pixels',
443
-	'info_plusieurs_mots_trouves' => 'Várias palavras-chave encontradas para "@cherche_mot@":',
444
-	'info_portfolio_automatique' => 'Portfólio automático:',
445
-	'info_premier_resultat' => '[@debut_limit@ primeiros resultados de @total@]',
446
-	'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados de @total@]',
447
-	'info_propose_1' => '[@nom_site_spip@] Propõe: @titre@',
448
-	'info_propose_2' => 'Matéria proposta
392
+    'info_fini' => 'Terminou!',
393
+    'info_format_image' => 'Formatos das imagens que podem ser utilizados para criar os ícones @gd_formats@.',
394
+    'info_format_non_defini' => 'formato não definido',
395
+    'info_grand_ecran' => 'Alta resolução',
396
+    'info_image_aide' => 'AJUDA',
397
+    'info_image_process_titre' => 'Método de criação dos ícones',
398
+    'info_impossible_lire_page' => '<b>Erro!</b> Impossível ler a página <tt><html>@test_proxy@</html></tt> via proxy',
399
+    'info_installation_systeme_publication' => 'Instalação do sistema de publicação...',
400
+    'info_installer_documents' => 'Você pode instalar automaticamente todos os documentos contídos no diretório @upload@.',
401
+    'info_installer_ftp' => 'Como administrador, você pode transferir (por FTP) arquivos para o diretório @upload@ para, em seguida, selecioná-los aqui diretamente.',
402
+    'info_installer_images' => 'Você pode transferir imagens nos formatos JPEG, GIF e PNG.',
403
+    'info_installer_images_dossier' => 'Transferir as imagens para o diretório @upload@ para poder selecioná-las aqui.',
404
+    'info_interface_complete' => 'interface completa',
405
+    'info_interface_simple' => 'Interface simplificada',
406
+    'info_joindre_document_article' => 'Você pode anexar a esta matéria documentos dos tipos a seguir',
407
+    'info_joindre_document_rubrique' => 'Você pode anexar a esta seção documentos dos tipos a seguir',
408
+    'info_joindre_documents_article' => 'Você pode anexar à sua matéria documentos dos tipos a seguir:',
409
+    'info_l_article' => 'a matéria',
410
+    'info_la_breve' => 'a nota',
411
+    'info_la_rubrique' => 'a seção',
412
+    'info_langue_principale' => 'Idioma principal do site',
413
+    'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels',
414
+    'info_les_auteurs_1' => 'por @les_auteurs@',
415
+    'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
416
+    'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
417
+    'info_mail_fournisseur' => '[email protected]',
418
+    'info_message_2' => 'MENSAGEM',
419
+    'info_message_supprime' => 'MENSAGEM EXCLUÍDA',
420
+    'info_messages_nb' => '@nb@ mensagens',
421
+    'info_messages_un' => '1 mensagem',
422
+    'info_mise_en_ligne' => 'Data de publicação online:',
423
+    'info_modification_parametres_securite' => 'modificações dos parâmetros de segurança',
424
+    'info_mois_courant' => 'No mês corrente:',
425
+    'info_mot_cle_ajoute' => 'A palavra-chave a seguir foi associada a',
426
+    'info_multi_herit' => 'Idioma padrão',
427
+    'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhados</u> dispõem de tradução total ou parcial dos textos da interface. Se você escolher esses idiomas, diversos elementos do site público (datas, formulários) são traduzidos automaticamente. Para os idiomas não sublinhados, estes elementos aparecerão no idioma principal do site.',
428
+    'info_multilinguisme' => 'Multilinguismo',
429
+    'info_nom_non_utilisateurs_connectes' => 'Seu nome não aparece na relação de usuários conectados.',
430
+    'info_nom_utilisateurs_connectes' => 'Seu nome aparecerá na relação de usuários conectados.',
431
+    'info_nombre_en_ligne' => 'Online neste momento:',
432
+    'info_non_resultat' => 'Nenhum resultados para "@cherche_mot@"',
433
+    'info_non_utilisation_messagerie' => 'Você não utiliza o sistema de mensagens deste site.',
434
+    'info_nouveau_message' => 'VOCÊ TEM UMA NOVA MENSAGEM',
435
+    'info_nouveaux_messages' => 'VOCÊ TEM @total_messages@ MENSAGENS NOVAS',
436
+    'info_numero_abbreviation' => 'N° ',
437
+    'info_obligatoire' => 'Esta informação é obrigatória',
438
+    'info_page_actuelle' => 'Página atual',
439
+    'info_pense_bete' => 'LEMBRETE',
440
+    'info_petit_ecran' => 'Baixa resolução',
441
+    'info_petition_close' => 'Petição fechada',
442
+    'info_pixels' => 'pixels',
443
+    'info_plusieurs_mots_trouves' => 'Várias palavras-chave encontradas para "@cherche_mot@":',
444
+    'info_portfolio_automatique' => 'Portfólio automático:',
445
+    'info_premier_resultat' => '[@debut_limit@ primeiros resultados de @total@]',
446
+    'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados de @total@]',
447
+    'info_propose_1' => '[@nom_site_spip@] Propõe: @titre@',
448
+    'info_propose_2' => 'Matéria proposta
449 449
 ----------------',
450
-	'info_propose_3' => 'A matéria "@titre@" foi proposta para publicação.',
451
-	'info_propose_4' => 'Você está convidado a consultá-la e dar sua opinião',
452
-	'info_propose_5' => 'no fórum a ela anexado. Ela está disponível no endereço:',
453
-	'info_publie_01' => 'A matéria "@titre@" foi validada por @connect_nom@.',
454
-	'info_publie_1' => '[@nom_site_spip@] PUBLICADO: @titre@',
455
-	'info_publie_2' => 'Matéria publicada
450
+    'info_propose_3' => 'A matéria "@titre@" foi proposta para publicação.',
451
+    'info_propose_4' => 'Você está convidado a consultá-la e dar sua opinião',
452
+    'info_propose_5' => 'no fórum a ela anexado. Ela está disponível no endereço:',
453
+    'info_publie_01' => 'A matéria "@titre@" foi validada por @connect_nom@.',
454
+    'info_publie_1' => '[@nom_site_spip@] PUBLICADO: @titre@',
455
+    'info_publie_2' => 'Matéria publicada
456 456
 -----------------',
457
-	'info_rechercher' => 'Procurar',
458
-	'info_rechercher_02' => 'Procurar:',
459
-	'info_remplacer_vignette' => 'Substituir o ícone padrão por um logo personalizado:',
460
-	'info_rubriques_nb' => '@nb@ seções',
461
-	'info_rubriques_un' => '1 seção',
462
-	'info_sans_titre_2' => 'sem título',
463
-	'info_selectionner_fichier' => 'Você pode escolher um arquivo do diretório @upload@',
464
-	'info_selectionner_fichier_2' => 'Selecionar um arquivo:',
465
-	'info_sites_nb' => '@nb@ sites',
466
-	'info_sites_un' => '1 site',
467
-	'info_supprimer_vignette' => 'excluir o ícone',
468
-	'info_symbole_bleu' => 'O ícone <b>azul</b> indica um <b>lembrete</b>: ou seja, uma mensagem para seu uso pessoal.',
469
-	'info_symbole_jaune' => 'O ícone <b>amarelo</b> indica um  <b>anúncio para todos os redatores</b>: modificável por todos os administradores, e visível por todos os redatores.',
470
-	'info_symbole_vert' => 'O ícone <b>verde</b> indica as  <b>mensagens trocadas com outros usuários</b> do site.',
471
-	'info_telecharger_nouveau_logo' => 'Transferir um novo logo:',
472
-	'info_telecharger_ordinateur' => 'Tranferir do seu computador:',
473
-	'info_tous_resultats_enregistres' => '[todos os resultados são gravados]',
474
-	'info_tout_afficher' => 'Mostrar todas',
475
-	'info_travaux_texte' => 'Este site ainda não está configurado. Volte mais tarde...',
476
-	'info_travaux_titre' => 'Site em manutenção',
477
-	'info_trop_resultat' => 'Resultados de mais para "@cherche_mot@"; por favor, refine a busca.',
478
-	'info_utilisation_messagerie_interne' => 'Você usa o sistema interno de mensagens deste site.',
479
-	'info_valider_lien' => 'validar este link',
480
-	'info_verifier_image' => ', verifique se as suas imagens foram transferidas corretamente.',
481
-	'info_vignette_defaut' => 'Ícone padrão',
482
-	'info_vignette_personnalisee' => 'Ícone personalizado',
483
-	'info_visite' => 'visita:',
484
-	'info_vos_rendez_vous' => 'Seus encontros futuros',
485
-	'infos_vos_pense_bete' => 'Seus lembretes',
457
+    'info_rechercher' => 'Procurar',
458
+    'info_rechercher_02' => 'Procurar:',
459
+    'info_remplacer_vignette' => 'Substituir o ícone padrão por um logo personalizado:',
460
+    'info_rubriques_nb' => '@nb@ seções',
461
+    'info_rubriques_un' => '1 seção',
462
+    'info_sans_titre_2' => 'sem título',
463
+    'info_selectionner_fichier' => 'Você pode escolher um arquivo do diretório @upload@',
464
+    'info_selectionner_fichier_2' => 'Selecionar um arquivo:',
465
+    'info_sites_nb' => '@nb@ sites',
466
+    'info_sites_un' => '1 site',
467
+    'info_supprimer_vignette' => 'excluir o ícone',
468
+    'info_symbole_bleu' => 'O ícone <b>azul</b> indica um <b>lembrete</b>: ou seja, uma mensagem para seu uso pessoal.',
469
+    'info_symbole_jaune' => 'O ícone <b>amarelo</b> indica um  <b>anúncio para todos os redatores</b>: modificável por todos os administradores, e visível por todos os redatores.',
470
+    'info_symbole_vert' => 'O ícone <b>verde</b> indica as  <b>mensagens trocadas com outros usuários</b> do site.',
471
+    'info_telecharger_nouveau_logo' => 'Transferir um novo logo:',
472
+    'info_telecharger_ordinateur' => 'Tranferir do seu computador:',
473
+    'info_tous_resultats_enregistres' => '[todos os resultados são gravados]',
474
+    'info_tout_afficher' => 'Mostrar todas',
475
+    'info_travaux_texte' => 'Este site ainda não está configurado. Volte mais tarde...',
476
+    'info_travaux_titre' => 'Site em manutenção',
477
+    'info_trop_resultat' => 'Resultados de mais para "@cherche_mot@"; por favor, refine a busca.',
478
+    'info_utilisation_messagerie_interne' => 'Você usa o sistema interno de mensagens deste site.',
479
+    'info_valider_lien' => 'validar este link',
480
+    'info_verifier_image' => ', verifique se as suas imagens foram transferidas corretamente.',
481
+    'info_vignette_defaut' => 'Ícone padrão',
482
+    'info_vignette_personnalisee' => 'Ícone personalizado',
483
+    'info_visite' => 'visita:',
484
+    'info_vos_rendez_vous' => 'Seus encontros futuros',
485
+    'infos_vos_pense_bete' => 'Seus lembretes',
486 486
 
487
-	// L
488
-	'label_ajout_id_rapide' => 'Ajuda rápida',
489
-	'label_poids_fichier' => 'Tamanho',
490
-	'label_ponctuer' => '@label@:',
491
-	'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
492
-	'lien_afficher_texte_icones' => 'Exibir ícones e texto',
493
-	'lien_afficher_texte_seul' => 'Exibir apenas o texto',
494
-	'lien_aller_a_la_derniere_page' => 'Ir para a última página',
495
-	'lien_aller_a_la_page_nb' => 'Ir para a página @nb@',
496
-	'lien_aller_a_la_page_precedente' => 'Ir para a página anterior',
497
-	'lien_aller_a_la_page_suivante' => 'Ir para a página seguinte',
498
-	'lien_aller_a_la_premiere_page' => 'Ir para a primeira página',
499
-	'lien_liberer' => 'liberar',
500
-	'lien_liberer_tous' => 'liberar todas',
501
-	'lien_nouvea_pense_bete' => 'NOVO LEMBRETE',
502
-	'lien_nouveau_message' => 'NOVA MENSAGEM',
503
-	'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
504
-	'lien_petitions' => 'PETIÇÃO',
505
-	'lien_popularite' => 'popularidade: @popularite@%',
506
-	'lien_racine_site' => 'RAIZ DO SITE',
507
-	'lien_reessayer' => 'tente novamente',
508
-	'lien_repondre_message' => 'Responder a esta mensagem',
509
-	'lien_supprimer' => 'excluir',
510
-	'lien_tout_afficher' => 'Mostrar tudo',
511
-	'lien_visite_site' => 'visitar este site',
512
-	'lien_visites' => '@visites@ visitas',
513
-	'lien_voir_auteur' => 'Ver este autor',
514
-	'ligne' => 'Linha',
515
-	'login' => 'Conexão',
516
-	'login_acces_prive' => 'acesso ao espaço privado',
517
-	'login_autre_identifiant' => 'conectar-se com outra identificação',
518
-	'login_cookie_accepte' => 'Por favor, configure o seu navegador para aceitá-los (pelo menos para este site).',
519
-	'login_cookie_oblige' => 'Para você se identificar de modo seguro neste site, você precisa aceitar cookies.',
520
-	'login_deconnexion_ok' => 'Desconexão efetuada.',
521
-	'login_erreur_pass' => 'Erro de senha.',
522
-	'login_espace_prive' => 'espaço privado',
523
-	'login_identifiant_inconnu' => 'O identificador «@login@» não está cadastrado.',
524
-	'login_login' => 'Login:',
525
-	'login_login2' => 'Login',
526
-	'login_login_pass_incorrect' => '(Login ou senha incorreta.)',
527
-	'login_motpasseoublie' => 'esqueceu sua senha?',
528
-	'login_non_securise' => 'Atenção, este formulário não é seguro.
487
+    // L
488
+    'label_ajout_id_rapide' => 'Ajuda rápida',
489
+    'label_poids_fichier' => 'Tamanho',
490
+    'label_ponctuer' => '@label@:',
491
+    'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
492
+    'lien_afficher_texte_icones' => 'Exibir ícones e texto',
493
+    'lien_afficher_texte_seul' => 'Exibir apenas o texto',
494
+    'lien_aller_a_la_derniere_page' => 'Ir para a última página',
495
+    'lien_aller_a_la_page_nb' => 'Ir para a página @nb@',
496
+    'lien_aller_a_la_page_precedente' => 'Ir para a página anterior',
497
+    'lien_aller_a_la_page_suivante' => 'Ir para a página seguinte',
498
+    'lien_aller_a_la_premiere_page' => 'Ir para a primeira página',
499
+    'lien_liberer' => 'liberar',
500
+    'lien_liberer_tous' => 'liberar todas',
501
+    'lien_nouvea_pense_bete' => 'NOVO LEMBRETE',
502
+    'lien_nouveau_message' => 'NOVA MENSAGEM',
503
+    'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
504
+    'lien_petitions' => 'PETIÇÃO',
505
+    'lien_popularite' => 'popularidade: @popularite@%',
506
+    'lien_racine_site' => 'RAIZ DO SITE',
507
+    'lien_reessayer' => 'tente novamente',
508
+    'lien_repondre_message' => 'Responder a esta mensagem',
509
+    'lien_supprimer' => 'excluir',
510
+    'lien_tout_afficher' => 'Mostrar tudo',
511
+    'lien_visite_site' => 'visitar este site',
512
+    'lien_visites' => '@visites@ visitas',
513
+    'lien_voir_auteur' => 'Ver este autor',
514
+    'ligne' => 'Linha',
515
+    'login' => 'Conexão',
516
+    'login_acces_prive' => 'acesso ao espaço privado',
517
+    'login_autre_identifiant' => 'conectar-se com outra identificação',
518
+    'login_cookie_accepte' => 'Por favor, configure o seu navegador para aceitá-los (pelo menos para este site).',
519
+    'login_cookie_oblige' => 'Para você se identificar de modo seguro neste site, você precisa aceitar cookies.',
520
+    'login_deconnexion_ok' => 'Desconexão efetuada.',
521
+    'login_erreur_pass' => 'Erro de senha.',
522
+    'login_espace_prive' => 'espaço privado',
523
+    'login_identifiant_inconnu' => 'O identificador «@login@» não está cadastrado.',
524
+    'login_login' => 'Login:',
525
+    'login_login2' => 'Login',
526
+    'login_login_pass_incorrect' => '(Login ou senha incorreta.)',
527
+    'login_motpasseoublie' => 'esqueceu sua senha?',
528
+    'login_non_securise' => 'Atenção, este formulário não é seguro.
529 529
 Se você não quiser que a sua senha possa ser interceptada na rede, por favor ative o Javascript no seu navegador e',
530
-	'login_nouvelle_tentative' => 'Tentar novamente',
531
-	'login_par_ici' => 'VocÊ está registrado... por aqui...',
532
-	'login_pass2' => 'Senha:',
533
-	'login_preferez_refuser' => '<b>Se você prefere recusar os cookies</b>, um outro método de conexão (menos seguro) está disponível:',
534
-	'login_recharger' => 'atualizar esta página',
535
-	'login_rester_identifie' => 'Manter-se identificado',
536
-	'login_retour_public' => 'Voltar ao site público',
537
-	'login_retour_site' => 'Voltar ao site público',
538
-	'login_retoursitepublic' => 'voltar ao site público',
539
-	'login_sans_cookie' => 'Identificação sem cookie',
540
-	'login_securise' => 'Login seguro',
541
-	'login_sinscrire' => 'cadastrar-se',
542
-	'login_test_navigateur' => 'testar navegador/reconexão',
543
-	'login_verifiez_navigateur' => '(Verifique sempre se o seu navegador não está memorizando a sua senha...)',
530
+    'login_nouvelle_tentative' => 'Tentar novamente',
531
+    'login_par_ici' => 'VocÊ está registrado... por aqui...',
532
+    'login_pass2' => 'Senha:',
533
+    'login_preferez_refuser' => '<b>Se você prefere recusar os cookies</b>, um outro método de conexão (menos seguro) está disponível:',
534
+    'login_recharger' => 'atualizar esta página',
535
+    'login_rester_identifie' => 'Manter-se identificado',
536
+    'login_retour_public' => 'Voltar ao site público',
537
+    'login_retour_site' => 'Voltar ao site público',
538
+    'login_retoursitepublic' => 'voltar ao site público',
539
+    'login_sans_cookie' => 'Identificação sem cookie',
540
+    'login_securise' => 'Login seguro',
541
+    'login_sinscrire' => 'cadastrar-se',
542
+    'login_test_navigateur' => 'testar navegador/reconexão',
543
+    'login_verifiez_navigateur' => '(Verifique sempre se o seu navegador não está memorizando a sua senha...)',
544 544
 
545
-	// M
546
-	'masquer_colonne' => 'Ocultar esta coluna',
547
-	'masquer_trad' => 'esconder as traduções',
548
-	'message_nouveaux_identifiants_echec' => 'Impossível criar novos logins.',
549
-	'message_nouveaux_identifiants_echec_envoi' => 'Os novos logins de conexão não puderam ser enviados.',
550
-	'message_nouveaux_identifiants_ok' => 'Os novos logins de conexão foram enviados para @email@.',
551
-	'module_fichiers_langues' => 'Arquivos de idioma',
545
+    // M
546
+    'masquer_colonne' => 'Ocultar esta coluna',
547
+    'masquer_trad' => 'esconder as traduções',
548
+    'message_nouveaux_identifiants_echec' => 'Impossível criar novos logins.',
549
+    'message_nouveaux_identifiants_echec_envoi' => 'Os novos logins de conexão não puderam ser enviados.',
550
+    'message_nouveaux_identifiants_ok' => 'Os novos logins de conexão foram enviados para @email@.',
551
+    'module_fichiers_langues' => 'Arquivos de idioma',
552 552
 
553
-	// N
554
-	'navigateur_pas_redirige' => 'Se o seu navegador não o redirecionar, clique aqui para continuar.',
555
-	'numero' => 'Número',
553
+    // N
554
+    'navigateur_pas_redirige' => 'Se o seu navegador não o redirecionar, clique aqui para continuar.',
555
+    'numero' => 'Número',
556 556
 
557
-	// O
558
-	'occurence' => 'Ocorrência',
559
-	'onglet_affacer_base' => 'Apagar a base',
560
-	'onglet_auteur' => 'O autor',
561
-	'onglet_contenu_site' => 'Conteúdo do site',
562
-	'onglet_evolution_visite_mod' => 'Evolução',
563
-	'onglet_fonctions_avances' => 'Funções avançadas',
564
-	'onglet_informations_personnelles' => 'Informações pessoais',
565
-	'onglet_interactivite' => 'Interatividade',
566
-	'onglet_messagerie' => 'Sistema de mensagens',
567
-	'onglet_repartition_rubrique' => 'Repartição por seções',
568
-	'onglet_save_restaur_base' => 'Fazer cópia de segurança/restaurar a base',
569
-	'onglet_vider_cache' => 'Esvaziar o cache',
557
+    // O
558
+    'occurence' => 'Ocorrência',
559
+    'onglet_affacer_base' => 'Apagar a base',
560
+    'onglet_auteur' => 'O autor',
561
+    'onglet_contenu_site' => 'Conteúdo do site',
562
+    'onglet_evolution_visite_mod' => 'Evolução',
563
+    'onglet_fonctions_avances' => 'Funções avançadas',
564
+    'onglet_informations_personnelles' => 'Informações pessoais',
565
+    'onglet_interactivite' => 'Interatividade',
566
+    'onglet_messagerie' => 'Sistema de mensagens',
567
+    'onglet_repartition_rubrique' => 'Repartição por seções',
568
+    'onglet_save_restaur_base' => 'Fazer cópia de segurança/restaurar a base',
569
+    'onglet_vider_cache' => 'Esvaziar o cache',
570 570
 
571
-	// P
572
-	'pass_choix_pass' => 'Por favor, escolha a sua nova senha:',
573
-	'pass_erreur' => 'Erro',
574
-	'pass_erreur_acces_refuse' => '<b>Erro:</b> você não tem mais acesso a este site.',
575
-	'pass_erreur_code_inconnu' => '<b>Erro:</b> este login não corresponde a nenhum visitante com permissão de acesso a este site.',
576
-	'pass_erreur_non_enregistre' => '<b>Erro:</b> o e-mail <tt>@email_oubli@</tt> não está cadastrado neste site.',
577
-	'pass_erreur_non_valide' => '<b>Erro:</b> o e-mail <tt>@email_oubli@</tt> não é válido!',
578
-	'pass_erreur_probleme_technique' => '<b>Erro:</b> este e-mail não pôde ser enviado devido a um problema técnico.',
579
-	'pass_espace_prive_bla' => 'O espaço privado deste site é aberto aos visitantes, após inscrição. Uma vez cadastrado, você poderá consultar as matérias em fase de redação, propor a publicação de novas matérias e participar de todos os fóruns.',
580
-	'pass_forum_bla' => 'Você soliciou a participação num fórum reservado a visitantes registrados.',
581
-	'pass_indiquez_cidessous' => 'Informe abaixo o endereço de e-mail com o qual você se cadastrou anteriormente. Você receberá um e-mail lhe indicando os procedimentos a seguir para recuperar o seu acesso.',
582
-	'pass_mail_passcookie' => '(esta é uma mensagem automática)
571
+    // P
572
+    'pass_choix_pass' => 'Por favor, escolha a sua nova senha:',
573
+    'pass_erreur' => 'Erro',
574
+    'pass_erreur_acces_refuse' => '<b>Erro:</b> você não tem mais acesso a este site.',
575
+    'pass_erreur_code_inconnu' => '<b>Erro:</b> este login não corresponde a nenhum visitante com permissão de acesso a este site.',
576
+    'pass_erreur_non_enregistre' => '<b>Erro:</b> o e-mail <tt>@email_oubli@</tt> não está cadastrado neste site.',
577
+    'pass_erreur_non_valide' => '<b>Erro:</b> o e-mail <tt>@email_oubli@</tt> não é válido!',
578
+    'pass_erreur_probleme_technique' => '<b>Erro:</b> este e-mail não pôde ser enviado devido a um problema técnico.',
579
+    'pass_espace_prive_bla' => 'O espaço privado deste site é aberto aos visitantes, após inscrição. Uma vez cadastrado, você poderá consultar as matérias em fase de redação, propor a publicação de novas matérias e participar de todos os fóruns.',
580
+    'pass_forum_bla' => 'Você soliciou a participação num fórum reservado a visitantes registrados.',
581
+    'pass_indiquez_cidessous' => 'Informe abaixo o endereço de e-mail com o qual você se cadastrou anteriormente. Você receberá um e-mail lhe indicando os procedimentos a seguir para recuperar o seu acesso.',
582
+    'pass_mail_passcookie' => '(esta é uma mensagem automática)
583 583
 Para recuperar o seu acesso ao site
584 584
 @nom_site_spip@ (@adresse_site@)
585 585
 
@@ -591,136 +591,136 @@  discard block
 block discarded – undo
591 591
 e reconectar-se com o site.
592 592
 
593 593
 ',
594
-	'pass_mot_oublie' => 'Senha esquecida',
595
-	'pass_nouveau_enregistre' => 'Sua nova senha foi cadastrada.',
596
-	'pass_nouveau_pass' => 'Nova senha',
597
-	'pass_ok' => 'OK',
598
-	'pass_oubli_mot' => 'Esquecimento de senha',
599
-	'pass_procedure_changer' => 'Para alterar a sua senha, por favor informe o endereço de e-mail associado à sua conta.',
600
-	'pass_quitter_fenetre' => 'Fechar esta janela',
601
-	'pass_rappel_login' => 'Lembrete: seu login é «@login@».',
602
-	'pass_recevoir_mail' => 'Um link para redefinição da sua senha foi enviado para o seu endereço de e-mail (se ele for válido).',
603
-	'pass_retour_public' => 'Voltar para o site público',
604
-	'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
605
-	'pass_vousinscrire' => 'Cadastrar-se neste site',
606
-	'precedent' => 'precedente',
607
-	'previsualisation' => 'Visualização',
608
-	'previsualiser' => 'Visualizar',
594
+    'pass_mot_oublie' => 'Senha esquecida',
595
+    'pass_nouveau_enregistre' => 'Sua nova senha foi cadastrada.',
596
+    'pass_nouveau_pass' => 'Nova senha',
597
+    'pass_ok' => 'OK',
598
+    'pass_oubli_mot' => 'Esquecimento de senha',
599
+    'pass_procedure_changer' => 'Para alterar a sua senha, por favor informe o endereço de e-mail associado à sua conta.',
600
+    'pass_quitter_fenetre' => 'Fechar esta janela',
601
+    'pass_rappel_login' => 'Lembrete: seu login é «@login@».',
602
+    'pass_recevoir_mail' => 'Um link para redefinição da sua senha foi enviado para o seu endereço de e-mail (se ele for válido).',
603
+    'pass_retour_public' => 'Voltar para o site público',
604
+    'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
605
+    'pass_vousinscrire' => 'Cadastrar-se neste site',
606
+    'precedent' => 'precedente',
607
+    'previsualisation' => 'Visualização',
608
+    'previsualiser' => 'Visualizar',
609 609
 
610
-	// R
611
-	'retour' => 'Voltar',
610
+    // R
611
+    'retour' => 'Voltar',
612 612
 
613
-	// S
614
-	'spip_conforme_dtd' => 'O SPIP considera este documento de acordo com o seu DOCTYPE:',
615
-	'squelette' => 'template',
616
-	'squelette_inclus_ligne' => 'template incluído, linha',
617
-	'squelette_ligne' => 'template, linha',
618
-	'stats_visites_et_popularite' => '@visites@ visitas; popularidade: @popularite@',
619
-	'suivant' => 'seguinte',
613
+    // S
614
+    'spip_conforme_dtd' => 'O SPIP considera este documento de acordo com o seu DOCTYPE:',
615
+    'squelette' => 'template',
616
+    'squelette_inclus_ligne' => 'template incluído, linha',
617
+    'squelette_ligne' => 'template, linha',
618
+    'stats_visites_et_popularite' => '@visites@ visitas; popularidade: @popularite@',
619
+    'suivant' => 'seguinte',
620 620
 
621
-	// T
622
-	'taille_go' => '@taille@ GB',
623
-	'taille_ko' => '@taille@ KB',
624
-	'taille_mo' => '@taille@ MB',
625
-	'taille_octets' => ' @taille@ bytes',
626
-	'texte_actualite_site_1' => 'Quando você estiver mais familiarizado com a interface, clique em «',
627
-	'texte_actualite_site_2' => 'interface completa',
628
-	'texte_actualite_site_3' => '» para abrir mais possibilidades.',
629
-	'texte_creation_automatique_vignette' => 'A criação automática de ícones de visualização está ativada neste site. Se você transferir por este formulário imagens no(s) formato(s) @gd_formats@, elas serão acompanhadas de um ícone com o tamanho máximo de @taille_preview@ pixels.',
630
-	'texte_documents_associes' => 'Os documentos a seguir estão associados à matéria,
621
+    // T
622
+    'taille_go' => '@taille@ GB',
623
+    'taille_ko' => '@taille@ KB',
624
+    'taille_mo' => '@taille@ MB',
625
+    'taille_octets' => ' @taille@ bytes',
626
+    'texte_actualite_site_1' => 'Quando você estiver mais familiarizado com a interface, clique em «',
627
+    'texte_actualite_site_2' => 'interface completa',
628
+    'texte_actualite_site_3' => '» para abrir mais possibilidades.',
629
+    'texte_creation_automatique_vignette' => 'A criação automática de ícones de visualização está ativada neste site. Se você transferir por este formulário imagens no(s) formato(s) @gd_formats@, elas serão acompanhadas de um ícone com o tamanho máximo de @taille_preview@ pixels.',
630
+    'texte_documents_associes' => 'Os documentos a seguir estão associados à matéria,
631 631
 mas eles não foram inseridos diretamente. Dependendo da elaboração dos templates do site público, eles podem aparecer como documentos anexados.',
632
-	'texte_erreur_mise_niveau_base' => 'Erro da base de dados durante a atualização.
632
+    'texte_erreur_mise_niveau_base' => 'Erro da base de dados durante a atualização.
633 633
 A imagem <b>@fichier@</b> não passou (matéria @id_article@).
634 634
 Anote esta referência, tente novamente a atualização e, finalmente, verifique se as imagens aparecem nas matérias.',
635
-	'texte_erreur_visiteur' => 'Você tentou acessar o espaço restrito com um login que não tem a permissão necessária.',
636
-	'texte_inc_auth_1' => 'Você se identificou com o login <b>@auth_login@</b>, mas ele não consta (mais) na base.
635
+    'texte_erreur_visiteur' => 'Você tentou acessar o espaço restrito com um login que não tem a permissão necessária.',
636
+    'texte_inc_auth_1' => 'Você se identificou com o login <b>@auth_login@</b>, mas ele não consta (mais) na base.
637 637
 Tente se',
638
-	'texte_inc_auth_2' => 'reconectar',
639
-	'texte_inc_auth_3' => ', após ter eventualmente saído e reiniciado o seu navegador.',
640
-	'texte_inc_config' => 'As modificações efetuadas nestas páginas influem consideravelmente no funcionamento do seu site. É recomendável não intervir enquanto você não estiver familiarizado com o funcionamento do sistema SPIP.<br /><br /><b>Geralmente, é fortemente aconselhável deixar a carga destas páginas para o webmaster principal do seu site.</b>',
641
-	'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do site, queira por favor,',
642
-	'texte_inc_meta_2' => 'Verificar os direitos de escrita',
643
-	'texte_inc_meta_3' => 'no diretório <code>@repertoire@</code>.',
644
-	'texte_statut_en_cours_redaction' => 'em fase de redação',
645
-	'texte_statut_poubelle' => 'na lixeira',
646
-	'texte_statut_propose_evaluation' => 'proposto para avaliação',
647
-	'texte_statut_publie' => 'publicado online',
648
-	'texte_statut_refuse' => 'recusado',
649
-	'titre_ajouter_mot_cle' => 'INCLUIR UMA PALAVRA-CHAVE:',
650
-	'titre_cadre_raccourcis' => 'ATALHOS:',
651
-	'titre_changer_couleur_interface' => 'Alterar a côr da interface',
652
-	'titre_image_admin_article' => 'Você pode administrar esta matéria',
653
-	'titre_image_administrateur' => 'Administrador',
654
-	'titre_image_aide' => 'Ajuda sobre este elemento',
655
-	'titre_image_auteur_supprime' => 'Autor excluído',
656
-	'titre_image_redacteur' => 'Redator sem acesso',
657
-	'titre_image_redacteur_02' => 'Redator',
658
-	'titre_image_selecteur' => 'Ver a lista',
659
-	'titre_image_visiteur' => 'Visitante',
660
-	'titre_joindre_document' => 'INCLUIR UM DOCUMENTO',
661
-	'titre_mots_cles' => 'PALAVRAS-CHAVE',
662
-	'titre_probleme_technique' => 'Atenção: um problema técnico (servidor SQL) impede o acesso a esta parte do site. Agradecemos sua compreensão.',
663
-	'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA SEÇÃO',
664
-	'titre_signatures_attente' => 'Assinaturas aguardando validação',
665
-	'titre_signatures_confirmees' => 'Assinaturas confirmadas',
666
-	'titre_statistiques' => 'Estatísticas do site',
667
-	'titre_titre_document' => 'Título do documento:',
668
-	'todo' => 'breve',
669
-	'trad_definir_reference' => 'Escolher "@titre@" como referência das traduções',
670
-	'trad_reference' => '(matéria das traduções)',
638
+    'texte_inc_auth_2' => 'reconectar',
639
+    'texte_inc_auth_3' => ', após ter eventualmente saído e reiniciado o seu navegador.',
640
+    'texte_inc_config' => 'As modificações efetuadas nestas páginas influem consideravelmente no funcionamento do seu site. É recomendável não intervir enquanto você não estiver familiarizado com o funcionamento do sistema SPIP.<br /><br /><b>Geralmente, é fortemente aconselhável deixar a carga destas páginas para o webmaster principal do seu site.</b>',
641
+    'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do site, queira por favor,',
642
+    'texte_inc_meta_2' => 'Verificar os direitos de escrita',
643
+    'texte_inc_meta_3' => 'no diretório <code>@repertoire@</code>.',
644
+    'texte_statut_en_cours_redaction' => 'em fase de redação',
645
+    'texte_statut_poubelle' => 'na lixeira',
646
+    'texte_statut_propose_evaluation' => 'proposto para avaliação',
647
+    'texte_statut_publie' => 'publicado online',
648
+    'texte_statut_refuse' => 'recusado',
649
+    'titre_ajouter_mot_cle' => 'INCLUIR UMA PALAVRA-CHAVE:',
650
+    'titre_cadre_raccourcis' => 'ATALHOS:',
651
+    'titre_changer_couleur_interface' => 'Alterar a côr da interface',
652
+    'titre_image_admin_article' => 'Você pode administrar esta matéria',
653
+    'titre_image_administrateur' => 'Administrador',
654
+    'titre_image_aide' => 'Ajuda sobre este elemento',
655
+    'titre_image_auteur_supprime' => 'Autor excluído',
656
+    'titre_image_redacteur' => 'Redator sem acesso',
657
+    'titre_image_redacteur_02' => 'Redator',
658
+    'titre_image_selecteur' => 'Ver a lista',
659
+    'titre_image_visiteur' => 'Visitante',
660
+    'titre_joindre_document' => 'INCLUIR UM DOCUMENTO',
661
+    'titre_mots_cles' => 'PALAVRAS-CHAVE',
662
+    'titre_probleme_technique' => 'Atenção: um problema técnico (servidor SQL) impede o acesso a esta parte do site. Agradecemos sua compreensão.',
663
+    'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA SEÇÃO',
664
+    'titre_signatures_attente' => 'Assinaturas aguardando validação',
665
+    'titre_signatures_confirmees' => 'Assinaturas confirmadas',
666
+    'titre_statistiques' => 'Estatísticas do site',
667
+    'titre_titre_document' => 'Título do documento:',
668
+    'todo' => 'breve',
669
+    'trad_definir_reference' => 'Escolher "@titre@" como referência das traduções',
670
+    'trad_reference' => '(matéria das traduções)',
671 671
 
672
-	// U
673
-	'upload_limit' => 'Este arquivo é grande demais para o servidor; o tamanho máximo autorizado para <i>upload</i> é de @max@.',
672
+    // U
673
+    'upload_limit' => 'Este arquivo é grande demais para o servidor; o tamanho máximo autorizado para <i>upload</i> é de @max@.',
674 674
 
675
-	// Z
676
-	'zbug_balise_b_aval' => ': tag B colocada após BOUCLE',
677
-	'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
678
-	'zbug_balise_sans_argument' => 'Falta um arqumento na tag @balise@',
679
-	'zbug_boucle' => 'laço',
680
-	'zbug_boucle_recursive_undef' => 'Laço recursivo não definido: @nom@',
681
-	'zbug_calcul' => 'cálculo',
682
-	'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço',
683
-	'zbug_champ_hors_critere' => 'Campo @champ@ fora do critério @critere@',
684
-	'zbug_champ_hors_motif' => 'Campo @champ@ fora de um contexto @motif@',
685
-	'zbug_code' => 'código',
686
-	'zbug_critere_inconnu' => 'Critério @critere@ desconhecido',
687
-	'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} em uma tabela sem chave primária atômica',
688
-	'zbug_distant_interdit' => 'Externa interdita',
689
-	'zbug_doublon_table_sans_cle_primaire' => 'Duplicação em tabela sem chave primária atômica',
690
-	'zbug_doublon_table_sans_index' => 'Doublons em uma tabela sem index',
691
-	'zbug_erreur_boucle_double' => 'Dupla definição do laço @id@',
692
-	'zbug_erreur_boucle_fermant' => 'Laço @id@ não fechado',
693
-	'zbug_erreur_boucle_syntaxe' => 'Sintaxe do laço @id@ está incorreta',
694
-	'zbug_erreur_compilation' => 'Erro de compilação',
695
-	'zbug_erreur_execution_page' => 'Erro de execução',
696
-	'zbug_erreur_filtre' => 'Filtro @filtre@ não definido',
697
-	'zbug_erreur_filtre_nbarg_min' => 'Filtro @filtre@: falta(m) @nb@ argumento(s)',
698
-	'zbug_erreur_meme_parent' => 'O critério {meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
699
-	'zbug_erreur_squelette' => 'Erro(s) no template',
700
-	'zbug_hors_compilation' => 'Fora de Compilação',
701
-	'zbug_info_erreur_squelette' => 'Erro no site',
702
-	'zbug_inversion_ordre_inexistant' => 'Inversão de uma ordem inexistente',
703
-	'zbug_pagination_sans_critere' => 'Tag #PAGINATION sem critério {pagination} ou usada dentro de uma boucle recursiva',
704
-	'zbug_parametres_inclus_incorrects' => 'Parâmetro de inclusão incorreto: @param@',
705
-	'zbug_profile' => 'Tempo de processamento: @time@',
706
-	'zbug_resultat' => 'resultado',
707
-	'zbug_serveur_indefini' => 'Sevidor SQL não definido',
708
-	'zbug_statistiques' => 'Estatísticas das requisições SQL classificadas por duração',
709
-	'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
710
-	'zxml_connus_attributs' => 'atributos conhecidos',
711
-	'zxml_de' => 'de',
712
-	'zxml_inconnu_attribut' => 'atributo desconhecido',
713
-	'zxml_inconnu_balise' => 'tag desconhecida',
714
-	'zxml_inconnu_entite' => 'entidade desconhecida',
715
-	'zxml_inconnu_id' => 'ID desconhecida',
716
-	'zxml_mais_de' => 'mas de',
717
-	'zxml_non_conforme' => 'não está de acordo com o motivo',
718
-	'zxml_non_fils' => 'não é filho de',
719
-	'zxml_nonvide_balise' => 'tag não vazia',
720
-	'zxml_obligatoire_attribut' => 'atributo obrigatório mas ausente em',
721
-	'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorreta',
722
-	'zxml_survoler' => 'sobrepor para ver os corretos',
723
-	'zxml_valeur_attribut' => 'valor do atributo',
724
-	'zxml_vide_balise' => 'tag vazia',
725
-	'zxml_vu' => 'previsualização'
675
+    // Z
676
+    'zbug_balise_b_aval' => ': tag B colocada após BOUCLE',
677
+    'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
678
+    'zbug_balise_sans_argument' => 'Falta um arqumento na tag @balise@',
679
+    'zbug_boucle' => 'laço',
680
+    'zbug_boucle_recursive_undef' => 'Laço recursivo não definido: @nom@',
681
+    'zbug_calcul' => 'cálculo',
682
+    'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço',
683
+    'zbug_champ_hors_critere' => 'Campo @champ@ fora do critério @critere@',
684
+    'zbug_champ_hors_motif' => 'Campo @champ@ fora de um contexto @motif@',
685
+    'zbug_code' => 'código',
686
+    'zbug_critere_inconnu' => 'Critério @critere@ desconhecido',
687
+    'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} em uma tabela sem chave primária atômica',
688
+    'zbug_distant_interdit' => 'Externa interdita',
689
+    'zbug_doublon_table_sans_cle_primaire' => 'Duplicação em tabela sem chave primária atômica',
690
+    'zbug_doublon_table_sans_index' => 'Doublons em uma tabela sem index',
691
+    'zbug_erreur_boucle_double' => 'Dupla definição do laço @id@',
692
+    'zbug_erreur_boucle_fermant' => 'Laço @id@ não fechado',
693
+    'zbug_erreur_boucle_syntaxe' => 'Sintaxe do laço @id@ está incorreta',
694
+    'zbug_erreur_compilation' => 'Erro de compilação',
695
+    'zbug_erreur_execution_page' => 'Erro de execução',
696
+    'zbug_erreur_filtre' => 'Filtro @filtre@ não definido',
697
+    'zbug_erreur_filtre_nbarg_min' => 'Filtro @filtre@: falta(m) @nb@ argumento(s)',
698
+    'zbug_erreur_meme_parent' => 'O critério {meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
699
+    'zbug_erreur_squelette' => 'Erro(s) no template',
700
+    'zbug_hors_compilation' => 'Fora de Compilação',
701
+    'zbug_info_erreur_squelette' => 'Erro no site',
702
+    'zbug_inversion_ordre_inexistant' => 'Inversão de uma ordem inexistente',
703
+    'zbug_pagination_sans_critere' => 'Tag #PAGINATION sem critério {pagination} ou usada dentro de uma boucle recursiva',
704
+    'zbug_parametres_inclus_incorrects' => 'Parâmetro de inclusão incorreto: @param@',
705
+    'zbug_profile' => 'Tempo de processamento: @time@',
706
+    'zbug_resultat' => 'resultado',
707
+    'zbug_serveur_indefini' => 'Sevidor SQL não definido',
708
+    'zbug_statistiques' => 'Estatísticas das requisições SQL classificadas por duração',
709
+    'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
710
+    'zxml_connus_attributs' => 'atributos conhecidos',
711
+    'zxml_de' => 'de',
712
+    'zxml_inconnu_attribut' => 'atributo desconhecido',
713
+    'zxml_inconnu_balise' => 'tag desconhecida',
714
+    'zxml_inconnu_entite' => 'entidade desconhecida',
715
+    'zxml_inconnu_id' => 'ID desconhecida',
716
+    'zxml_mais_de' => 'mas de',
717
+    'zxml_non_conforme' => 'não está de acordo com o motivo',
718
+    'zxml_non_fils' => 'não é filho de',
719
+    'zxml_nonvide_balise' => 'tag não vazia',
720
+    'zxml_obligatoire_attribut' => 'atributo obrigatório mas ausente em',
721
+    'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorreta',
722
+    'zxml_survoler' => 'sobrepor para ver os corretos',
723
+    'zxml_valeur_attribut' => 'valor do atributo',
724
+    'zxml_vide_balise' => 'tag vazia',
725
+    'zxml_vu' => 'previsualização'
726 726
 );
Please login to merge, or discard this patch.