Completed
Push — master ( a15233...457c22 )
by cam
01:25
created
ecrire/lang/spip_hu.php 1 patch
Indentation   +583 added lines, -583 removed lines patch added patch discarded remove patch
@@ -4,507 +4,507 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'access_interface_graphique' => 'Vissza a teljes grafikus felületre',
14
-	'access_mode_texte' => 'Egyszerűsített szöveges felület megjelenítése',
15
-	'admin_debug' => 'debug',
16
-	'admin_modifier_article' => 'Cikk módosítása',
17
-	'admin_modifier_auteur' => 'Szerző módosítása',
18
-	'admin_modifier_breve' => 'Hír szerkesztése',
19
-	'admin_modifier_mot' => 'Kulcsszó módosítása',
20
-	'admin_modifier_rubrique' => 'Rovat módosítása',
21
-	'admin_recalculer' => 'Oldal frissítése',
22
-	'afficher_trad' => 'fordítások megjelenítése',
23
-	'alerte_maj_impossible' => '<b>Hiba !</b> A SQL adatbázis frissítése a @version@ verzió felé nem lehtséges, talán adatbázishoz való módosítási jogosultság miatt. Ilyenkor a tárhely adminisztrátorához kell fordulni.',
24
-	'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifié par ailleurs. La valeur actuelle est :', # MODIF
25
-	'analyse_xml' => 'XML elemzés',
26
-	'annuler' => 'Mégsem',
27
-	'antispam_champ_vide' => 'Kérjük, hagyja üresen ezt a mezőt:',
28
-	'articles_recents' => 'Legújabb cikkek',
29
-	'avis_archive_incorrect' => 'Az archiválási fájl nem SPIP típusú',
30
-	'avis_archive_invalide' => 'Az archválási fájl érvénytelen',
31
-	'avis_attention' => 'Vigyázat !',
32
-	'avis_champ_incorrect_type_objet' => 'Érvénytelen mezőnév @name@ a(z) @type@ típusú objektumhoz',
33
-	'avis_colonne_inexistante' => 'A(z) @col@ nevű oszlop nem létezik',
34
-	'avis_erreur' => 'Hiba: lásd lejjebb',
35
-	'avis_erreur_connexion' => 'Csatlakozási hiba',
36
-	'avis_erreur_cookie' => 'Cookie hiba',
37
-	'avis_erreur_fonction_contexte' => 'Programozási hiba. Ezt a függvényt nem lehet hívni e körülmények között.',
38
-	'avis_erreur_mysql' => 'SQL hiba',
39
-	'avis_erreur_sauvegarde' => 'Hiba a mentés során (@type@ @id_objet@)!',
40
-	'avis_erreur_visiteur' => 'Probléma a privát zónába lépéskor',
12
+    // A
13
+    'access_interface_graphique' => 'Vissza a teljes grafikus felületre',
14
+    'access_mode_texte' => 'Egyszerűsített szöveges felület megjelenítése',
15
+    'admin_debug' => 'debug',
16
+    'admin_modifier_article' => 'Cikk módosítása',
17
+    'admin_modifier_auteur' => 'Szerző módosítása',
18
+    'admin_modifier_breve' => 'Hír szerkesztése',
19
+    'admin_modifier_mot' => 'Kulcsszó módosítása',
20
+    'admin_modifier_rubrique' => 'Rovat módosítása',
21
+    'admin_recalculer' => 'Oldal frissítése',
22
+    'afficher_trad' => 'fordítások megjelenítése',
23
+    'alerte_maj_impossible' => '<b>Hiba !</b> A SQL adatbázis frissítése a @version@ verzió felé nem lehtséges, talán adatbázishoz való módosítási jogosultság miatt. Ilyenkor a tárhely adminisztrátorához kell fordulni.',
24
+    'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifié par ailleurs. La valeur actuelle est :', # MODIF
25
+    'analyse_xml' => 'XML elemzés',
26
+    'annuler' => 'Mégsem',
27
+    'antispam_champ_vide' => 'Kérjük, hagyja üresen ezt a mezőt:',
28
+    'articles_recents' => 'Legújabb cikkek',
29
+    'avis_archive_incorrect' => 'Az archiválási fájl nem SPIP típusú',
30
+    'avis_archive_invalide' => 'Az archválási fájl érvénytelen',
31
+    'avis_attention' => 'Vigyázat !',
32
+    'avis_champ_incorrect_type_objet' => 'Érvénytelen mezőnév @name@ a(z) @type@ típusú objektumhoz',
33
+    'avis_colonne_inexistante' => 'A(z) @col@ nevű oszlop nem létezik',
34
+    'avis_erreur' => 'Hiba: lásd lejjebb',
35
+    'avis_erreur_connexion' => 'Csatlakozási hiba',
36
+    'avis_erreur_cookie' => 'Cookie hiba',
37
+    'avis_erreur_fonction_contexte' => 'Programozási hiba. Ezt a függvényt nem lehet hívni e körülmények között.',
38
+    'avis_erreur_mysql' => 'SQL hiba',
39
+    'avis_erreur_sauvegarde' => 'Hiba a mentés során (@type@ @id_objet@)!',
40
+    'avis_erreur_visiteur' => 'Probléma a privát zónába lépéskor',
41 41
 
42
-	// B
43
-	'barre_a_accent_grave' => 'Francia ékezetes A nagybetű beszúrása',
44
-	'barre_aide' => 'Használjon a nyomdai jelöléseket, hogy szépítse az írásképet',
45
-	'barre_e_accent_aigu' => 'Francia ékezetes E nagybetű beszúrása',
46
-	'barre_eo' => 'E betű beszúrása az O-ban',
47
-	'barre_eo_maj' => 'E betű beszúrása az O nagybetűbe',
48
-	'barre_euro' => 'Az € karakter beszúrása',
49
-	'barre_gras' => '{{félkövér stílus}} alkalmazása',
50
-	'barre_guillemets' => '« idezőjelekbe »',
51
-	'barre_guillemets_simples' => '“idézőjelekbe”',
52
-	'barre_intertitre' => '{{{közcím stílus}}} alkalmazása',
53
-	'barre_italic' => '{dőlt stílus} alkalmazása',
54
-	'barre_lien' => 'Hiperhivatkozás beszúrása [link szövege->http://...]',
55
-	'barre_lien_input' => 'Kérjük, adja meg a hivatkozás célját. (Beírhat egy webcímet http://www.mysite.com formátumban, vagy egyszerűen megadhatja az egyik cikk számát ezen az oldalon.)',
56
-	'barre_note' => '[[Lábjegyzet stílus]] alkalmazása',
57
-	'barre_paragraphe' => 'Új bekezdés',
58
-	'barre_quote' => '<quote>Üzenet idézése</quote>',
59
-	'bouton_changer' => 'Módosítás',
60
-	'bouton_chercher' => 'Keresés',
61
-	'bouton_choisir' => 'Kiválasztás',
62
-	'bouton_download' => 'Letöltés',
63
-	'bouton_enregistrer' => 'Mentés',
64
-	'bouton_radio_desactiver_messagerie_interne' => 'Belső üzenetek letiltása',
65
-	'bouton_radio_envoi_annonces' => 'Szerkesztői közlemény küldése',
66
-	'bouton_radio_non_envoi_annonces' => 'Ne küldjön közleményeket',
67
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Ne küldjön listát a legújabb hírekről',
68
-	'bouton_recharger_page' => 'az oldal újratöltése',
69
-	'bouton_telecharger' => 'Feltöltés',
70
-	'bouton_upload' => 'Feltöltés', # MODIF
71
-	'bouton_valider' => 'Rendben',
42
+    // B
43
+    'barre_a_accent_grave' => 'Francia ékezetes A nagybetű beszúrása',
44
+    'barre_aide' => 'Használjon a nyomdai jelöléseket, hogy szépítse az írásképet',
45
+    'barre_e_accent_aigu' => 'Francia ékezetes E nagybetű beszúrása',
46
+    'barre_eo' => 'E betű beszúrása az O-ban',
47
+    'barre_eo_maj' => 'E betű beszúrása az O nagybetűbe',
48
+    'barre_euro' => 'Az € karakter beszúrása',
49
+    'barre_gras' => '{{félkövér stílus}} alkalmazása',
50
+    'barre_guillemets' => '« idezőjelekbe »',
51
+    'barre_guillemets_simples' => '“idézőjelekbe”',
52
+    'barre_intertitre' => '{{{közcím stílus}}} alkalmazása',
53
+    'barre_italic' => '{dőlt stílus} alkalmazása',
54
+    'barre_lien' => 'Hiperhivatkozás beszúrása [link szövege->http://...]',
55
+    'barre_lien_input' => 'Kérjük, adja meg a hivatkozás célját. (Beírhat egy webcímet http://www.mysite.com formátumban, vagy egyszerűen megadhatja az egyik cikk számát ezen az oldalon.)',
56
+    'barre_note' => '[[Lábjegyzet stílus]] alkalmazása',
57
+    'barre_paragraphe' => 'Új bekezdés',
58
+    'barre_quote' => '<quote>Üzenet idézése</quote>',
59
+    'bouton_changer' => 'Módosítás',
60
+    'bouton_chercher' => 'Keresés',
61
+    'bouton_choisir' => 'Kiválasztás',
62
+    'bouton_download' => 'Letöltés',
63
+    'bouton_enregistrer' => 'Mentés',
64
+    'bouton_radio_desactiver_messagerie_interne' => 'Belső üzenetek letiltása',
65
+    'bouton_radio_envoi_annonces' => 'Szerkesztői közlemény küldése',
66
+    'bouton_radio_non_envoi_annonces' => 'Ne küldjön közleményeket',
67
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Ne küldjön listát a legújabb hírekről',
68
+    'bouton_recharger_page' => 'az oldal újratöltése',
69
+    'bouton_telecharger' => 'Feltöltés',
70
+    'bouton_upload' => 'Feltöltés', # MODIF
71
+    'bouton_valider' => 'Rendben',
72 72
 
73
-	// C
74
-	'cal_apresmidi' => 'délután',
75
-	'cal_jour_entier' => 'egész nap',
76
-	'cal_matin' => 'délelőtt',
77
-	'cal_par_jour' => 'napi naptár',
78
-	'cal_par_mois' => 'havi naptár',
79
-	'cal_par_semaine' => 'heti naptár',
80
-	'choix_couleur_interface' => 'szín',
81
-	'choix_interface' => 'választott interfész',
82
-	'colonne' => 'Oszlop',
83
-	'confirm_changer_statut' => 'Vigyázat, az elem státuszának változtatását kérte. Kívánja folytatni?',
84
-	'correcte' => 'helyes',
73
+    // C
74
+    'cal_apresmidi' => 'délután',
75
+    'cal_jour_entier' => 'egész nap',
76
+    'cal_matin' => 'délelőtt',
77
+    'cal_par_jour' => 'napi naptár',
78
+    'cal_par_mois' => 'havi naptár',
79
+    'cal_par_semaine' => 'heti naptár',
80
+    'choix_couleur_interface' => 'szín',
81
+    'choix_interface' => 'választott interfész',
82
+    'colonne' => 'Oszlop',
83
+    'confirm_changer_statut' => 'Vigyázat, az elem státuszának változtatását kérte. Kívánja folytatni?',
84
+    'correcte' => 'helyes',
85 85
 
86
-	// D
87
-	'date_aujourdhui' => 'ma',
88
-	'date_avant_jc' => 'Kr.e.',
89
-	'date_dans' => '@delai@',
90
-	'date_de_mois_1' => '@j@ @nommois@',
91
-	'date_de_mois_10' => '@j@ @nommois@',
92
-	'date_de_mois_11' => '@j@ @nommois@',
93
-	'date_de_mois_12' => '@j@ @nommois@',
94
-	'date_de_mois_2' => '@j@ @nommois@',
95
-	'date_de_mois_3' => '@j@ @nommois@',
96
-	'date_de_mois_4' => '@j@ @nommois@',
97
-	'date_de_mois_5' => '@j@ @nommois@',
98
-	'date_de_mois_6' => '@j@ @nommois@',
99
-	'date_de_mois_7' => '@j@ @nommois@',
100
-	'date_de_mois_8' => '@j@ @nommois@',
101
-	'date_de_mois_9' => '@j@ @nommois@',
102
-	'date_demain' => 'holnap',
103
-	'date_fmt_heures_minutes' => '@h@:@m@',
104
-	'date_fmt_jour_heure' => '@jour@ @heure@',
105
-	'date_fmt_jour_mois' => '@nommois@ @jour@',
106
-	'date_fmt_jour_mois_annee' => '@annee@. @nommois@ @jour@  ',
107
-	'date_fmt_mois_annee' => '@annee@. @nommois@',
108
-	'date_fmt_nomjour_date' => '@date@ @nomjour@',
109
-	'date_heures' => 'óra',
110
-	'date_hier' => 'tegnap',
111
-	'date_il_y_a' => 'ezelőtt @delai@',
112
-	'date_jnum1' => '1.',
113
-	'date_jnum10' => '10.',
114
-	'date_jnum11' => '11.',
115
-	'date_jnum12' => '12.',
116
-	'date_jnum13' => '13.',
117
-	'date_jnum14' => '14.',
118
-	'date_jnum15' => '15.',
119
-	'date_jnum16' => '16.',
120
-	'date_jnum17' => '17.',
121
-	'date_jnum18' => '18.',
122
-	'date_jnum19' => '19.',
123
-	'date_jnum2' => '2.',
124
-	'date_jnum20' => '20.',
125
-	'date_jnum21' => '21.',
126
-	'date_jnum22' => '22.',
127
-	'date_jnum23' => '23.',
128
-	'date_jnum24' => '24.',
129
-	'date_jnum25' => '25.',
130
-	'date_jnum26' => '26.',
131
-	'date_jnum27' => '27.',
132
-	'date_jnum28' => '28.',
133
-	'date_jnum29' => '29.',
134
-	'date_jnum3' => '3.',
135
-	'date_jnum30' => '30.',
136
-	'date_jnum31' => '31.',
137
-	'date_jnum4' => '4.',
138
-	'date_jnum5' => '5.',
139
-	'date_jnum6' => '6.',
140
-	'date_jnum7' => '7.',
141
-	'date_jnum8' => '8.',
142
-	'date_jnum9' => '9.',
143
-	'date_jour_1' => 'Vasárnap',
144
-	'date_jour_1_abbr' => 'Vas.',
145
-	'date_jour_1_initiale' => 'V.',
146
-	'date_jour_2' => 'Hétfő',
147
-	'date_jour_2_abbr' => 'Hét.',
148
-	'date_jour_2_initiale' => 'H.',
149
-	'date_jour_3' => 'Kedd',
150
-	'date_jour_3_abbr' => 'Kedd',
151
-	'date_jour_3_initiale' => 'K.',
152
-	'date_jour_4' => 'Szerda',
153
-	'date_jour_4_abbr' => 'Sze.',
154
-	'date_jour_4_initiale' => 'Sz.',
155
-	'date_jour_5' => 'Csütörtök',
156
-	'date_jour_5_abbr' => 'Csüt.',
157
-	'date_jour_5_initiale' => 'Cs.',
158
-	'date_jour_6' => 'Péntek',
159
-	'date_jour_6_abbr' => 'Pént.',
160
-	'date_jour_6_initiale' => 'P.',
161
-	'date_jour_7' => 'Szombat',
162
-	'date_jour_7_abbr' => 'Szo.',
163
-	'date_jour_7_initiale' => 'Sz.',
164
-	'date_jours' => 'nap',
165
-	'date_minutes' => 'perc',
166
-	'date_mois' => 'hónap',
167
-	'date_mois_1' => 'január',
168
-	'date_mois_10' => 'október',
169
-	'date_mois_11' => 'november',
170
-	'date_mois_12' => 'december',
171
-	'date_mois_2' => 'február',
172
-	'date_mois_3' => 'március',
173
-	'date_mois_4' => 'április',
174
-	'date_mois_5' => 'május',
175
-	'date_mois_6' => 'június',
176
-	'date_mois_7' => 'július',
177
-	'date_mois_8' => 'augusztus',
178
-	'date_mois_9' => 'szeptember',
179
-	'date_saison_1' => 'tél',
180
-	'date_saison_2' => 'tavasz',
181
-	'date_saison_3' => 'nyár',
182
-	'date_saison_4' => 'ősz',
183
-	'date_semaines' => 'hét',
184
-	'dirs_commencer' => ' ahhoz, hogy valóban kezdhesse a telepítést',
185
-	'dirs_preliminaire' => 'Bevezetés: <b>Hozzáférési jogok beállítása</b>',
186
-	'dirs_probleme_droits' => 'Jogosultsági hiba',
187
-	'dirs_repertoires_absents' => 'A következő mappák nem találhatók : <ul>@bad_dirs@.</ul> </b>
86
+    // D
87
+    'date_aujourdhui' => 'ma',
88
+    'date_avant_jc' => 'Kr.e.',
89
+    'date_dans' => '@delai@',
90
+    'date_de_mois_1' => '@j@ @nommois@',
91
+    'date_de_mois_10' => '@j@ @nommois@',
92
+    'date_de_mois_11' => '@j@ @nommois@',
93
+    'date_de_mois_12' => '@j@ @nommois@',
94
+    'date_de_mois_2' => '@j@ @nommois@',
95
+    'date_de_mois_3' => '@j@ @nommois@',
96
+    'date_de_mois_4' => '@j@ @nommois@',
97
+    'date_de_mois_5' => '@j@ @nommois@',
98
+    'date_de_mois_6' => '@j@ @nommois@',
99
+    'date_de_mois_7' => '@j@ @nommois@',
100
+    'date_de_mois_8' => '@j@ @nommois@',
101
+    'date_de_mois_9' => '@j@ @nommois@',
102
+    'date_demain' => 'holnap',
103
+    'date_fmt_heures_minutes' => '@h@:@m@',
104
+    'date_fmt_jour_heure' => '@jour@ @heure@',
105
+    'date_fmt_jour_mois' => '@nommois@ @jour@',
106
+    'date_fmt_jour_mois_annee' => '@annee@. @nommois@ @jour@  ',
107
+    'date_fmt_mois_annee' => '@annee@. @nommois@',
108
+    'date_fmt_nomjour_date' => '@date@ @nomjour@',
109
+    'date_heures' => 'óra',
110
+    'date_hier' => 'tegnap',
111
+    'date_il_y_a' => 'ezelőtt @delai@',
112
+    'date_jnum1' => '1.',
113
+    'date_jnum10' => '10.',
114
+    'date_jnum11' => '11.',
115
+    'date_jnum12' => '12.',
116
+    'date_jnum13' => '13.',
117
+    'date_jnum14' => '14.',
118
+    'date_jnum15' => '15.',
119
+    'date_jnum16' => '16.',
120
+    'date_jnum17' => '17.',
121
+    'date_jnum18' => '18.',
122
+    'date_jnum19' => '19.',
123
+    'date_jnum2' => '2.',
124
+    'date_jnum20' => '20.',
125
+    'date_jnum21' => '21.',
126
+    'date_jnum22' => '22.',
127
+    'date_jnum23' => '23.',
128
+    'date_jnum24' => '24.',
129
+    'date_jnum25' => '25.',
130
+    'date_jnum26' => '26.',
131
+    'date_jnum27' => '27.',
132
+    'date_jnum28' => '28.',
133
+    'date_jnum29' => '29.',
134
+    'date_jnum3' => '3.',
135
+    'date_jnum30' => '30.',
136
+    'date_jnum31' => '31.',
137
+    'date_jnum4' => '4.',
138
+    'date_jnum5' => '5.',
139
+    'date_jnum6' => '6.',
140
+    'date_jnum7' => '7.',
141
+    'date_jnum8' => '8.',
142
+    'date_jnum9' => '9.',
143
+    'date_jour_1' => 'Vasárnap',
144
+    'date_jour_1_abbr' => 'Vas.',
145
+    'date_jour_1_initiale' => 'V.',
146
+    'date_jour_2' => 'Hétfő',
147
+    'date_jour_2_abbr' => 'Hét.',
148
+    'date_jour_2_initiale' => 'H.',
149
+    'date_jour_3' => 'Kedd',
150
+    'date_jour_3_abbr' => 'Kedd',
151
+    'date_jour_3_initiale' => 'K.',
152
+    'date_jour_4' => 'Szerda',
153
+    'date_jour_4_abbr' => 'Sze.',
154
+    'date_jour_4_initiale' => 'Sz.',
155
+    'date_jour_5' => 'Csütörtök',
156
+    'date_jour_5_abbr' => 'Csüt.',
157
+    'date_jour_5_initiale' => 'Cs.',
158
+    'date_jour_6' => 'Péntek',
159
+    'date_jour_6_abbr' => 'Pént.',
160
+    'date_jour_6_initiale' => 'P.',
161
+    'date_jour_7' => 'Szombat',
162
+    'date_jour_7_abbr' => 'Szo.',
163
+    'date_jour_7_initiale' => 'Sz.',
164
+    'date_jours' => 'nap',
165
+    'date_minutes' => 'perc',
166
+    'date_mois' => 'hónap',
167
+    'date_mois_1' => 'január',
168
+    'date_mois_10' => 'október',
169
+    'date_mois_11' => 'november',
170
+    'date_mois_12' => 'december',
171
+    'date_mois_2' => 'február',
172
+    'date_mois_3' => 'március',
173
+    'date_mois_4' => 'április',
174
+    'date_mois_5' => 'május',
175
+    'date_mois_6' => 'június',
176
+    'date_mois_7' => 'július',
177
+    'date_mois_8' => 'augusztus',
178
+    'date_mois_9' => 'szeptember',
179
+    'date_saison_1' => 'tél',
180
+    'date_saison_2' => 'tavasz',
181
+    'date_saison_3' => 'nyár',
182
+    'date_saison_4' => 'ősz',
183
+    'date_semaines' => 'hét',
184
+    'dirs_commencer' => ' ahhoz, hogy valóban kezdhesse a telepítést',
185
+    'dirs_preliminaire' => 'Bevezetés: <b>Hozzáférési jogok beállítása</b>',
186
+    'dirs_probleme_droits' => 'Jogosultsági hiba',
187
+    'dirs_repertoires_absents' => 'A következő mappák nem találhatók : <ul>@bad_dirs@.</ul> </b>
188 188
   <p>Ez valószínüleg egy nagy-, kisbetűs probléma.
189 189
   Ellenőrizze, hogy a fenti mappák nagy-, és kisbetűi megfelelnek annak, ami feljebb megjelent
190 190
   ; ha mégsem, FTP szoftverével nevezze át a mappákat.
191 191
   </p><p>Ha megtörtént ez a művelet, tudni fog</p>',
192
-	'dirs_repertoires_suivants' => '<b>A következő mappákra nincs írási jogosultsága : <ul>@bad_dirs@.</ul> </b>
192
+    'dirs_repertoires_suivants' => '<b>A következő mappákra nincs írási jogosultsága : <ul>@bad_dirs@.</ul> </b>
193 193
   <p>Annak javítására, használja az FTP kliensét ahhoz, hogy beállítsa minden mappá hozzáférési jogait
194 194
   Az eljárás részletesen van magyarázva a telepítési kézikönyvben.
195 195
   </p><p>A megtörtént ez a művelet, tudni fogja</p>', # MODIF
196
-	'double_occurrence' => 'Két előfordulás', # MODIF
196
+    'double_occurrence' => 'Két előfordulás', # MODIF
197 197
 
198
-	// E
199
-	'envoi_via_le_site' => 'Küldés a honlapon keresztül',
200
-	'erreur' => 'Hiba',
201
-	'erreur_balise_non_fermee' => 'az utolsó tag nincs lezárva:',
202
-	'erreur_texte' => 'hiba',
198
+    // E
199
+    'envoi_via_le_site' => 'Küldés a honlapon keresztül',
200
+    'erreur' => 'Hiba',
201
+    'erreur_balise_non_fermee' => 'az utolsó tag nincs lezárva:',
202
+    'erreur_texte' => 'hiba',
203 203
 
204
-	// F
205
-	'fichier_introuvable' => 'A(z) @fichier@ fájl nem található', # MODIF
206
-	'form_deja_inscrit' => 'Ön már regisztrált.',
207
-	'form_email_non_valide' => 'A megadott e-mail cím érvénytelen.',
208
-	'form_forum_access_refuse' => 'Önnek már nincs hozzáférése ehhez az oldalhoz.',
209
-	'form_forum_bonjour' => 'Üdvözöljük, @nom@,',
210
-	'form_forum_email_deja_enregistre' => 'Ez az email cím már regisztrálva van, tehát használhatja a szokásos jelszavát.',
211
-	'form_forum_identifiant_mail' => 'Új azonosítóját elküldtük az e-mail címére.',
212
-	'form_forum_identifiants' => 'Személyes azonosítók',
213
-	'form_forum_indiquer_nom_email' => 'Kérjük, adja meg nevét és e-mail címét. A személyes azonosítóját e-mailben fogja megkapni.',
214
-	'form_forum_login' => 'Login:',
215
-	'form_forum_message_auto' => '(ez egy automatikus üzenet)',
216
-	'form_forum_pass' => 'jelszó:',
217
-	'form_forum_probleme_mail' => 'E-mail probléma : az azonosító nem küldhető el.',
218
-	'form_forum_voici1' => 'Az azonosítója, amivel részt vehet a(z) "@nom_site_spip@" (@adresse_site@) oldal életében:',
219
-	'form_forum_voici2' => 'Íme az azonosítói javasolt cikkek küldéséhez a(z)
204
+    // F
205
+    'fichier_introuvable' => 'A(z) @fichier@ fájl nem található', # MODIF
206
+    'form_deja_inscrit' => 'Ön már regisztrált.',
207
+    'form_email_non_valide' => 'A megadott e-mail cím érvénytelen.',
208
+    'form_forum_access_refuse' => 'Önnek már nincs hozzáférése ehhez az oldalhoz.',
209
+    'form_forum_bonjour' => 'Üdvözöljük, @nom@,',
210
+    'form_forum_email_deja_enregistre' => 'Ez az email cím már regisztrálva van, tehát használhatja a szokásos jelszavát.',
211
+    'form_forum_identifiant_mail' => 'Új azonosítóját elküldtük az e-mail címére.',
212
+    'form_forum_identifiants' => 'Személyes azonosítók',
213
+    'form_forum_indiquer_nom_email' => 'Kérjük, adja meg nevét és e-mail címét. A személyes azonosítóját e-mailben fogja megkapni.',
214
+    'form_forum_login' => 'Login:',
215
+    'form_forum_message_auto' => '(ez egy automatikus üzenet)',
216
+    'form_forum_pass' => 'jelszó:',
217
+    'form_forum_probleme_mail' => 'E-mail probléma : az azonosító nem küldhető el.',
218
+    'form_forum_voici1' => 'Az azonosítója, amivel részt vehet a(z) "@nom_site_spip@" (@adresse_site@) oldal életében:',
219
+    'form_forum_voici2' => 'Íme az azonosítói javasolt cikkek küldéséhez a(z)
220 220
  "@nom_site_spip@" (@adresse_login@) oldalra:',
221
-	'form_indiquer_email' => 'Kérjük, adja meg e-mail címét.',
222
-	'form_indiquer_nom' => 'Kérjük, adja meg a nevét.',
223
-	'form_indiquer_nom_site' => 'Kérjük, adja meg honlapjának címét.',
224
-	'form_pet_deja_enregistre' => 'Ezt a honlapot már regisztrálták',
225
-	'form_pet_signature_pasprise' => 'Az Ön aláírása nincs figyelembe véve.',
226
-	'form_prop_confirmer_envoi' => 'Erősítse meg a küldést',
227
-	'form_prop_description' => 'Leírás/hozzászólás',
228
-	'form_prop_enregistre' => 'A javaslatát felvettük. Nyilvánosan akkor fog megjelenni, miután e honlap adminisztrátorai jóváhagyták.',
229
-	'form_prop_envoyer' => 'Üzenetküldés',
230
-	'form_prop_indiquer_email' => 'Kérjük, érvényes e-mail címet adjon meg',
231
-	'form_prop_indiquer_nom_site' => 'Kérjük, adja meg a honlap nevét.',
232
-	'form_prop_indiquer_sujet' => 'Kérjük, adja meg a tárgyat',
233
-	'form_prop_message_envoye' => 'Üzenet elküldve',
234
-	'form_prop_non_enregistre' => 'A javaslatát nem rögzítettük.',
235
-	'form_prop_sujet' => 'Tárgy',
236
-	'form_prop_url_site' => 'Honlap címe', # MODIF
237
-	'forum_non_inscrit' => 'Nincs regisztrálva, vagy a cím vagy a jelszó hibás.',
238
-	'forum_par_auteur' => 'Írta: @auteur@',
239
-	'forum_titre_erreur' => 'Hiba...',
221
+    'form_indiquer_email' => 'Kérjük, adja meg e-mail címét.',
222
+    'form_indiquer_nom' => 'Kérjük, adja meg a nevét.',
223
+    'form_indiquer_nom_site' => 'Kérjük, adja meg honlapjának címét.',
224
+    'form_pet_deja_enregistre' => 'Ezt a honlapot már regisztrálták',
225
+    'form_pet_signature_pasprise' => 'Az Ön aláírása nincs figyelembe véve.',
226
+    'form_prop_confirmer_envoi' => 'Erősítse meg a küldést',
227
+    'form_prop_description' => 'Leírás/hozzászólás',
228
+    'form_prop_enregistre' => 'A javaslatát felvettük. Nyilvánosan akkor fog megjelenni, miután e honlap adminisztrátorai jóváhagyták.',
229
+    'form_prop_envoyer' => 'Üzenetküldés',
230
+    'form_prop_indiquer_email' => 'Kérjük, érvényes e-mail címet adjon meg',
231
+    'form_prop_indiquer_nom_site' => 'Kérjük, adja meg a honlap nevét.',
232
+    'form_prop_indiquer_sujet' => 'Kérjük, adja meg a tárgyat',
233
+    'form_prop_message_envoye' => 'Üzenet elküldve',
234
+    'form_prop_non_enregistre' => 'A javaslatát nem rögzítettük.',
235
+    'form_prop_sujet' => 'Tárgy',
236
+    'form_prop_url_site' => 'Honlap címe', # MODIF
237
+    'forum_non_inscrit' => 'Nincs regisztrálva, vagy a cím vagy a jelszó hibás.',
238
+    'forum_par_auteur' => 'Írta: @auteur@',
239
+    'forum_titre_erreur' => 'Hiba...',
240 240
 
241
-	// I
242
-	'ical_texte_rss_articles' => 'A honlap cikkeinek «backend» fájlja ezen a címen található:',
243
-	'ical_texte_rss_articles2' => 'Egyaránt lehet szerezni «backend» fájlokat a honlap minden egyes rubrikának cikkeiről:',
244
-	'ical_texte_rss_breves' => 'Ráadásul létezik olyan fájl, ami a honlap híreit tartalmazza. Egy rovatszám kijelölésével megkaphatja egyedül annak a rovatnak a híreit.',
245
-	'icone_a_suivre' => 'Iránytű',
246
-	'icone_admin_site' => 'Honlap adminisztrálása',
247
-	'icone_agenda' => 'Naptár',
248
-	'icone_aide_ligne' => 'Súgó',
249
-	'icone_articles' => 'Cikkek',
250
-	'icone_auteurs' => 'Szerzők',
251
-	'icone_brouteur' => 'Gyors böngészés',
252
-	'icone_configuration_site' => 'Konfigurálás',
253
-	'icone_configurer_site' => 'A honlap konfigurálása',
254
-	'icone_creer_nouvel_auteur' => 'Új szerző létrehozása',
255
-	'icone_creer_rubrique' => 'Rovat létrehozása',
256
-	'icone_creer_sous_rubrique' => 'Alrovat létrehozása',
257
-	'icone_deconnecter' => 'Kijelentkezés',
258
-	'icone_discussions' => 'Viták',
259
-	'icone_doc_rubrique' => 'Mellékelt dokumentumok',
260
-	'icone_ecrire_article' => 'Új cikk írása',
261
-	'icone_edition_site' => 'Szerkesztés',
262
-	'icone_gestion_langues' => 'Nyelvek kezelése',
263
-	'icone_informations_personnelles' => 'Személyes adatok',
264
-	'icone_interface_complet' => 'teljes felület',
265
-	'icone_interface_simple' => 'egyszerűsített felület',
266
-	'icone_maintenance_site' => 'Honlap karbantartása',
267
-	'icone_messagerie_personnelle' => 'Személyes levelezés',
268
-	'icone_repartition_debut' => 'Kezdettől megjeleníteni a megosztást',
269
-	'icone_rubriques' => 'Rovatok',
270
-	'icone_sauver_site' => 'A honlap mentése',
271
-	'icone_site_entier' => 'Az egész honlap',
272
-	'icone_sites_references' => 'Felvett honlapok',
273
-	'icone_statistiques' => 'A honlap statisztikai',
274
-	'icone_suivi_activite' => 'A honlap életének megfigyelése',
275
-	'icone_suivi_actualite' => 'A honlap kialakulása',
276
-	'icone_suivi_pettions' => 'Figyelni/kezelni az aláírásgyűjtéseket',
277
-	'icone_suivi_revisions' => 'Cikkek módosítása',
278
-	'icone_supprimer_document' => 'A dokumentum törlése',
279
-	'icone_supprimer_image' => 'A kép törlése',
280
-	'icone_tous_articles' => 'Az összes cikkei',
281
-	'icone_tous_auteur' => 'Az összes szerző',
282
-	'icone_visiter_site' => 'Látogatás', # MODIF
283
-	'icone_voir_en_ligne' => 'Nézni élőben',
284
-	'img_indisponible' => 'hiányzó kép',
285
-	'impossible' => 'nem lehetséges',
286
-	'info_a_suivre' => 'FOLYTATNI »',
287
-	'info_acces_interdit' => 'Hozzáférés tilos',
288
-	'info_acces_refuse' => 'Elutasított hozzáférés',
289
-	'info_action' => 'Művelet : @action@',
290
-	'info_administrer_rubriques' => 'Ezt a rovatot, illetve ennek alrovatait Ön adminisztrálhatja',
291
-	'info_adresse_non_indiquee' => 'Nem jelölt tesztelendő címet !',
292
-	'info_aide' => 'SÚGÓ :',
293
-	'info_ajouter_mot' => 'A szó hozzáadása',
294
-	'info_annonce' => 'HÍRDETÉS',
295
-	'info_annonces_generales' => 'Általános hírdetések :',
296
-	'info_article_propose' => 'Javasolt cikk',
297
-	'info_article_publie' => 'Publikált cikk',
298
-	'info_article_redaction' => 'Szerkeztés alatti cikk',
299
-	'info_article_refuse' => 'Elutasított cikk',
300
-	'info_article_supprime' => 'Törölt cikk',
301
-	'info_articles' => 'Cikkek',
302
-	'info_articles_a_valider' => 'Jóváhagyandó cikkek',
303
-	'info_articles_proposes' => 'Javasolt cikkek',
304
-	'info_auteurs_nombre' => 'szerző(k) :',
305
-	'info_authentification_ftp' => 'Autentifikálás (FTP-vel).',
306
-	'info_breves_2' => 'hírek',
307
-	'info_connexion_refusee' => 'Csatlakozás tagadva',
308
-	'info_contact_developpeur' => 'Keressen egy fejlesztőt.',
309
-	'info_contenance' => 'A honlap tartalmazza :',
310
-	'info_contribution' => 'Fórumi hozzászólások', # MODIF
311
-	'info_copyright' => '@spip@ egy szabad szoftver, letölthető: @lien_gpl@.',
312
-	'info_copyright_doc' => 'Bővebb információkra, lásd a honlapot <a href="@spipnet@">http://www.spip.net/fr</a>.', # MODIF
313
-	'info_copyright_gpl' => 'GPL licenzú',
314
-	'info_cours_edition' => 'Az Ön szerkesztés alatti cikkei', # MODIF
315
-	'info_creer_repertoire' => 'Hozzon létre fájlt, vagy mappát, melynek a neve :',
316
-	'info_creer_repertoire_2' => 'az almappán <b>@repertoire@</b> belül, ezútán :',
317
-	'info_creer_vignette' => 'a bélyegkép automatikus létrehozása',
318
-	'info_deplier' => 'Kibontás',
319
-	'info_descriptif_nombre' => 'Rövid ismertető(k) :',
320
-	'info_description' => 'Leírás :',
321
-	'info_description_2' => 'Leírás :',
322
-	'info_dimension' => 'Méretek :',
323
-	'info_ecire_message_prive' => 'Magán üzenet írása',
324
-	'info_email_invalide' => 'Érvénytelen email cím.',
325
-	'info_en_cours_validation' => 'Az Ön szerkesztés alatti cikkei',
326
-	'info_en_ligne' => 'Jelenleg a vonalon :',
327
-	'info_envoyer_message_prive' => 'Személyes üzenet küldés ennek a szerzőnek',
328
-	'info_erreur_requete' => 'Hiba a lekérdezésben :',
329
-	'info_erreur_squelette2' => 'Egyetlen csontváz (template) <b>@fichier@</b> sem áll rendelkezésre...',
330
-	'info_erreur_systeme' => 'Rendszer hiba (errno @errsys@)',
331
-	'info_erreur_systeme2' => 'A merevlemez talán tele van, vagy megsérült az adatbázis.<br />
241
+    // I
242
+    'ical_texte_rss_articles' => 'A honlap cikkeinek «backend» fájlja ezen a címen található:',
243
+    'ical_texte_rss_articles2' => 'Egyaránt lehet szerezni «backend» fájlokat a honlap minden egyes rubrikának cikkeiről:',
244
+    'ical_texte_rss_breves' => 'Ráadásul létezik olyan fájl, ami a honlap híreit tartalmazza. Egy rovatszám kijelölésével megkaphatja egyedül annak a rovatnak a híreit.',
245
+    'icone_a_suivre' => 'Iránytű',
246
+    'icone_admin_site' => 'Honlap adminisztrálása',
247
+    'icone_agenda' => 'Naptár',
248
+    'icone_aide_ligne' => 'Súgó',
249
+    'icone_articles' => 'Cikkek',
250
+    'icone_auteurs' => 'Szerzők',
251
+    'icone_brouteur' => 'Gyors böngészés',
252
+    'icone_configuration_site' => 'Konfigurálás',
253
+    'icone_configurer_site' => 'A honlap konfigurálása',
254
+    'icone_creer_nouvel_auteur' => 'Új szerző létrehozása',
255
+    'icone_creer_rubrique' => 'Rovat létrehozása',
256
+    'icone_creer_sous_rubrique' => 'Alrovat létrehozása',
257
+    'icone_deconnecter' => 'Kijelentkezés',
258
+    'icone_discussions' => 'Viták',
259
+    'icone_doc_rubrique' => 'Mellékelt dokumentumok',
260
+    'icone_ecrire_article' => 'Új cikk írása',
261
+    'icone_edition_site' => 'Szerkesztés',
262
+    'icone_gestion_langues' => 'Nyelvek kezelése',
263
+    'icone_informations_personnelles' => 'Személyes adatok',
264
+    'icone_interface_complet' => 'teljes felület',
265
+    'icone_interface_simple' => 'egyszerűsített felület',
266
+    'icone_maintenance_site' => 'Honlap karbantartása',
267
+    'icone_messagerie_personnelle' => 'Személyes levelezés',
268
+    'icone_repartition_debut' => 'Kezdettől megjeleníteni a megosztást',
269
+    'icone_rubriques' => 'Rovatok',
270
+    'icone_sauver_site' => 'A honlap mentése',
271
+    'icone_site_entier' => 'Az egész honlap',
272
+    'icone_sites_references' => 'Felvett honlapok',
273
+    'icone_statistiques' => 'A honlap statisztikai',
274
+    'icone_suivi_activite' => 'A honlap életének megfigyelése',
275
+    'icone_suivi_actualite' => 'A honlap kialakulása',
276
+    'icone_suivi_pettions' => 'Figyelni/kezelni az aláírásgyűjtéseket',
277
+    'icone_suivi_revisions' => 'Cikkek módosítása',
278
+    'icone_supprimer_document' => 'A dokumentum törlése',
279
+    'icone_supprimer_image' => 'A kép törlése',
280
+    'icone_tous_articles' => 'Az összes cikkei',
281
+    'icone_tous_auteur' => 'Az összes szerző',
282
+    'icone_visiter_site' => 'Látogatás', # MODIF
283
+    'icone_voir_en_ligne' => 'Nézni élőben',
284
+    'img_indisponible' => 'hiányzó kép',
285
+    'impossible' => 'nem lehetséges',
286
+    'info_a_suivre' => 'FOLYTATNI »',
287
+    'info_acces_interdit' => 'Hozzáférés tilos',
288
+    'info_acces_refuse' => 'Elutasított hozzáférés',
289
+    'info_action' => 'Művelet : @action@',
290
+    'info_administrer_rubriques' => 'Ezt a rovatot, illetve ennek alrovatait Ön adminisztrálhatja',
291
+    'info_adresse_non_indiquee' => 'Nem jelölt tesztelendő címet !',
292
+    'info_aide' => 'SÚGÓ :',
293
+    'info_ajouter_mot' => 'A szó hozzáadása',
294
+    'info_annonce' => 'HÍRDETÉS',
295
+    'info_annonces_generales' => 'Általános hírdetések :',
296
+    'info_article_propose' => 'Javasolt cikk',
297
+    'info_article_publie' => 'Publikált cikk',
298
+    'info_article_redaction' => 'Szerkeztés alatti cikk',
299
+    'info_article_refuse' => 'Elutasított cikk',
300
+    'info_article_supprime' => 'Törölt cikk',
301
+    'info_articles' => 'Cikkek',
302
+    'info_articles_a_valider' => 'Jóváhagyandó cikkek',
303
+    'info_articles_proposes' => 'Javasolt cikkek',
304
+    'info_auteurs_nombre' => 'szerző(k) :',
305
+    'info_authentification_ftp' => 'Autentifikálás (FTP-vel).',
306
+    'info_breves_2' => 'hírek',
307
+    'info_connexion_refusee' => 'Csatlakozás tagadva',
308
+    'info_contact_developpeur' => 'Keressen egy fejlesztőt.',
309
+    'info_contenance' => 'A honlap tartalmazza :',
310
+    'info_contribution' => 'Fórumi hozzászólások', # MODIF
311
+    'info_copyright' => '@spip@ egy szabad szoftver, letölthető: @lien_gpl@.',
312
+    'info_copyright_doc' => 'Bővebb információkra, lásd a honlapot <a href="@spipnet@">http://www.spip.net/fr</a>.', # MODIF
313
+    'info_copyright_gpl' => 'GPL licenzú',
314
+    'info_cours_edition' => 'Az Ön szerkesztés alatti cikkei', # MODIF
315
+    'info_creer_repertoire' => 'Hozzon létre fájlt, vagy mappát, melynek a neve :',
316
+    'info_creer_repertoire_2' => 'az almappán <b>@repertoire@</b> belül, ezútán :',
317
+    'info_creer_vignette' => 'a bélyegkép automatikus létrehozása',
318
+    'info_deplier' => 'Kibontás',
319
+    'info_descriptif_nombre' => 'Rövid ismertető(k) :',
320
+    'info_description' => 'Leírás :',
321
+    'info_description_2' => 'Leírás :',
322
+    'info_dimension' => 'Méretek :',
323
+    'info_ecire_message_prive' => 'Magán üzenet írása',
324
+    'info_email_invalide' => 'Érvénytelen email cím.',
325
+    'info_en_cours_validation' => 'Az Ön szerkesztés alatti cikkei',
326
+    'info_en_ligne' => 'Jelenleg a vonalon :',
327
+    'info_envoyer_message_prive' => 'Személyes üzenet küldés ennek a szerzőnek',
328
+    'info_erreur_requete' => 'Hiba a lekérdezésben :',
329
+    'info_erreur_squelette2' => 'Egyetlen csontváz (template) <b>@fichier@</b> sem áll rendelkezésre...',
330
+    'info_erreur_systeme' => 'Rendszer hiba (errno @errsys@)',
331
+    'info_erreur_systeme2' => 'A merevlemez talán tele van, vagy megsérült az adatbázis.<br />
332 332
 <span style="color:red;">probáljon <a href=\'@script@\'>javítani az adatbázis</a>, vagy keresse fel a rendszergazdát.</span>', # MODIF
333
-	'info_fini' => 'Készen van !',
334
-	'info_format_image' => 'Használható képformátumok a bélyegképek készítésére : @gd_formats@.',
335
-	'info_format_non_defini' => 'Határozatlan formátum',
336
-	'info_grand_ecran' => 'Nagy képernyő',
337
-	'info_image_aide' => 'SÚGÓ',
338
-	'info_image_process_titre' => 'Bélyegképek készítési módszer',
339
-	'info_impossible_lire_page' => '<b>Hiba !</b> Az opdal nem olvasható  <tt><html>@test_proxy@</html></tt> a proxyn keresztül <tt>', # MODIF
340
-	'info_installation_systeme_publication' => 'A publikálási rendszer telepítése...',
341
-	'info_installer_documents' => 'Automatikusan telepítheti az összes dokumentumot, amit tartalmaz az @upload@ nevű mappa.',
342
-	'info_installer_ftp' => 'Mint adminisztrátor, az @upload@ mappába másolhat (FTP-vel) fájlokat, és később közvetlenül kijelölheti őket itt.',
343
-	'info_installer_images' => 'JPEG, GIF és PNG tipusú képek telepíthetők.',
344
-	'info_installer_images_dossier' => 'Képeket másolni a @upload@ mappába ahhoz, hogy itt lehessen kijelölni.',
345
-	'info_interface_complete' => 'teljes felület',
346
-	'info_interface_simple' => 'Egyszerűsített felület',
347
-	'info_joindre_document_article' => 'Olyan tipusú dokumentumokat csatolhat ehhez a cikkhez',
348
-	'info_joindre_document_rubrique' => 'Olyan tipusú dokumentumokat beszúrhat abba a rovatba',
349
-	'info_joindre_documents_article' => 'Olyan tipusú dokumentumok csatolhatók az Ön cikkéhez :',
350
-	'info_l_article' => 'a cikk',
351
-	'info_la_breve' => 'a hír',
352
-	'info_la_rubrique' => 'a rovat',
353
-	'info_langue_principale' => 'A honlap alapnyelve',
354
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixel',
355
-	'info_les_auteurs_1' => 'írta @les_auteurs@',
356
-	'info_logo_format_interdit' => 'Csak a @formats@ tipusú formatumak vannak engedlyezve.',
357
-	'info_logo_max_poids' => 'Egy logo kisebb legyen, mint @maxi@ (ez a fájl pedig @actuel@).',
358
-	'info_mail_fournisseur' => 'ö[email protected]',
359
-	'info_message_2' => 'ÜZENET',
360
-	'info_message_supprime' => 'ÜZENET TÖRÖLVE',
361
-	'info_mise_en_ligne' => 'Publikálás időpontja :',
362
-	'info_modification_parametres_securite' => 'biztonsági paraméterek módosítása',
363
-	'info_mois_courant' => 'A hónap folyamán :',
364
-	'info_mot_cle_ajoute' => 'A következő kulcsszó nem lett hozzátéve',
365
-	'info_multi_herit' => 'Alapértelmezett nyelv',
366
-	'info_multi_langues_soulignees' => 'Az <u>aláhuzott nyelveknek</u> van fordítása a felület összes szövegére. Ha ezeket jelöli ki, akkor a nyilvános honlap számos elemei (dátumok, űrlapok) lesznek automatikusan lefordítva. A nem aláhúzott nyelvekre pedig azok az elemek a honlap alapnyelvén fognak megjelenni.', # MODIF
367
-	'info_multilinguisme' => 'Többnyelvűség',
368
-	'info_nom_non_utilisateurs_connectes' => 'Az Ön neve nem szerepel a jelenleg csatlakozott felhasználók listájában',
369
-	'info_nom_utilisateurs_connectes' => 'Az Ön neve szerepel a jelenleg csatlakozott felhasználók listájában.',
370
-	'info_nombre_en_ligne' => 'Jelenleg a vonalon :',
371
-	'info_non_resultat' => 'Nincs találat erre "@cherche_mot@"',
372
-	'info_non_utilisation_messagerie' => 'Nem használja a honlap belső levelezését.',
373
-	'info_nouveau_message' => 'ÖNNEK ÚJ ÜZENETE VAN',
374
-	'info_nouveaux_messages' => 'ÖNNEK @total_messages@ ÚJ ÜZENETE VAN',
375
-	'info_numero_abbreviation' => 'sz. ',
376
-	'info_pense_bete' => 'EMLÉKEZTET?',
377
-	'info_petit_ecran' => 'Kisebb képerny?',
378
-	'info_petition_close' => 'Kérelem lezárva',
379
-	'info_pixels' => 'pixelek',
380
-	'info_plusieurs_mots_trouves' => 'Néhany kulcsszó talált azzal "@cherche_mot@":',
381
-	'info_portfolio_automatique' => 'Automatikus portfolio :',
382
-	'info_premier_resultat' => '[@debut_limit@ első eredmények, @total@ összesen]',
383
-	'info_premier_resultat_sur' => '[@debut_limit@ eredmény, összesen @total@]',
384
-	'info_propose_1' => '[@nom_site_spip@] ezt javasolta : @titre@',
385
-	'info_propose_2' => 'Javasolt cikk
333
+    'info_fini' => 'Készen van !',
334
+    'info_format_image' => 'Használható képformátumok a bélyegképek készítésére : @gd_formats@.',
335
+    'info_format_non_defini' => 'Határozatlan formátum',
336
+    'info_grand_ecran' => 'Nagy képernyő',
337
+    'info_image_aide' => 'SÚGÓ',
338
+    'info_image_process_titre' => 'Bélyegképek készítési módszer',
339
+    'info_impossible_lire_page' => '<b>Hiba !</b> Az opdal nem olvasható  <tt><html>@test_proxy@</html></tt> a proxyn keresztül <tt>', # MODIF
340
+    'info_installation_systeme_publication' => 'A publikálási rendszer telepítése...',
341
+    'info_installer_documents' => 'Automatikusan telepítheti az összes dokumentumot, amit tartalmaz az @upload@ nevű mappa.',
342
+    'info_installer_ftp' => 'Mint adminisztrátor, az @upload@ mappába másolhat (FTP-vel) fájlokat, és később közvetlenül kijelölheti őket itt.',
343
+    'info_installer_images' => 'JPEG, GIF és PNG tipusú képek telepíthetők.',
344
+    'info_installer_images_dossier' => 'Képeket másolni a @upload@ mappába ahhoz, hogy itt lehessen kijelölni.',
345
+    'info_interface_complete' => 'teljes felület',
346
+    'info_interface_simple' => 'Egyszerűsített felület',
347
+    'info_joindre_document_article' => 'Olyan tipusú dokumentumokat csatolhat ehhez a cikkhez',
348
+    'info_joindre_document_rubrique' => 'Olyan tipusú dokumentumokat beszúrhat abba a rovatba',
349
+    'info_joindre_documents_article' => 'Olyan tipusú dokumentumok csatolhatók az Ön cikkéhez :',
350
+    'info_l_article' => 'a cikk',
351
+    'info_la_breve' => 'a hír',
352
+    'info_la_rubrique' => 'a rovat',
353
+    'info_langue_principale' => 'A honlap alapnyelve',
354
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixel',
355
+    'info_les_auteurs_1' => 'írta @les_auteurs@',
356
+    'info_logo_format_interdit' => 'Csak a @formats@ tipusú formatumak vannak engedlyezve.',
357
+    'info_logo_max_poids' => 'Egy logo kisebb legyen, mint @maxi@ (ez a fájl pedig @actuel@).',
358
+    'info_mail_fournisseur' => 'ö[email protected]',
359
+    'info_message_2' => 'ÜZENET',
360
+    'info_message_supprime' => 'ÜZENET TÖRÖLVE',
361
+    'info_mise_en_ligne' => 'Publikálás időpontja :',
362
+    'info_modification_parametres_securite' => 'biztonsági paraméterek módosítása',
363
+    'info_mois_courant' => 'A hónap folyamán :',
364
+    'info_mot_cle_ajoute' => 'A következő kulcsszó nem lett hozzátéve',
365
+    'info_multi_herit' => 'Alapértelmezett nyelv',
366
+    'info_multi_langues_soulignees' => 'Az <u>aláhuzott nyelveknek</u> van fordítása a felület összes szövegére. Ha ezeket jelöli ki, akkor a nyilvános honlap számos elemei (dátumok, űrlapok) lesznek automatikusan lefordítva. A nem aláhúzott nyelvekre pedig azok az elemek a honlap alapnyelvén fognak megjelenni.', # MODIF
367
+    'info_multilinguisme' => 'Többnyelvűség',
368
+    'info_nom_non_utilisateurs_connectes' => 'Az Ön neve nem szerepel a jelenleg csatlakozott felhasználók listájában',
369
+    'info_nom_utilisateurs_connectes' => 'Az Ön neve szerepel a jelenleg csatlakozott felhasználók listájában.',
370
+    'info_nombre_en_ligne' => 'Jelenleg a vonalon :',
371
+    'info_non_resultat' => 'Nincs találat erre "@cherche_mot@"',
372
+    'info_non_utilisation_messagerie' => 'Nem használja a honlap belső levelezését.',
373
+    'info_nouveau_message' => 'ÖNNEK ÚJ ÜZENETE VAN',
374
+    'info_nouveaux_messages' => 'ÖNNEK @total_messages@ ÚJ ÜZENETE VAN',
375
+    'info_numero_abbreviation' => 'sz. ',
376
+    'info_pense_bete' => 'EMLÉKEZTET?',
377
+    'info_petit_ecran' => 'Kisebb képerny?',
378
+    'info_petition_close' => 'Kérelem lezárva',
379
+    'info_pixels' => 'pixelek',
380
+    'info_plusieurs_mots_trouves' => 'Néhany kulcsszó talált azzal "@cherche_mot@":',
381
+    'info_portfolio_automatique' => 'Automatikus portfolio :',
382
+    'info_premier_resultat' => '[@debut_limit@ első eredmények, @total@ összesen]',
383
+    'info_premier_resultat_sur' => '[@debut_limit@ eredmény, összesen @total@]',
384
+    'info_propose_1' => '[@nom_site_spip@] ezt javasolta : @titre@',
385
+    'info_propose_2' => 'Javasolt cikk
386 386
 ---------------',
387
-	'info_propose_3' => 'A "@titre@" című cikket javasolták publikálásra.',
388
-	'info_propose_4' => 'Kérjuk, konzultálja és adjon róla véleményét',
389
-	'info_propose_5' => 'a hozzá kapcsolódó fórumban. Elérhető a következő címen :',
390
-	'info_publie_01' => 'A "@titre@" című cikket @connect_nom@ hagyta jóvá.',
391
-	'info_publie_1' => '[@nom_site_spip@] PUBLIKÁLJA : @titre@',
392
-	'info_publie_2' => 'Publikált cikkek
387
+    'info_propose_3' => 'A "@titre@" című cikket javasolták publikálásra.',
388
+    'info_propose_4' => 'Kérjuk, konzultálja és adjon róla véleményét',
389
+    'info_propose_5' => 'a hozzá kapcsolódó fórumban. Elérhető a következő címen :',
390
+    'info_publie_01' => 'A "@titre@" című cikket @connect_nom@ hagyta jóvá.',
391
+    'info_publie_1' => '[@nom_site_spip@] PUBLIKÁLJA : @titre@',
392
+    'info_publie_2' => 'Publikált cikkek
393 393
 --------------',
394
-	'info_rechercher' => 'Keresés',
395
-	'info_rechercher_02' => 'Keresés :',
396
-	'info_remplacer_vignette' => 'Az alapértelmezett bélyegkép helyettesítése egy személyes logoval :',
397
-	'info_sans_titre_2' => 'cím nélkül',
398
-	'info_selectionner_fichier' => 'Kijelölhet egy fájlt az @upload@ mappából',
399
-	'info_selectionner_fichier_2' => 'Válasszon egy fájlt :',
400
-	'info_supprimer_vignette' => 'a bélyegkép törlése',
401
-	'info_symbole_bleu' => 'A <b>kék</b> jel <b>emlékeztetőt</b> jelez: vagyis egy személyes jellegű üzenetet.', # MODIF
402
-	'info_symbole_jaune' => 'A <b>sárga</b> jel <b>minden szerzőnek szóló hírt</b> jelez : minden adminisztrátor módosíthatja, és minden szerző láthatja.', # MODIF
403
-	'info_symbole_vert' => 'A <b>zöld</b> jel a honlap <b>többi felhasználóival cserélt üzeneteket</b> jelzi.', # MODIF
404
-	'info_telecharger_nouveau_logo' => 'Új logo feltöltése :',
405
-	'info_telecharger_ordinateur' => 'Feltöltés a gépéről :',
406
-	'info_tous_resultats_enregistres' => '[minden eredmény mentve]',
407
-	'info_tout_afficher' => 'Mindent megjelenít',
408
-	'info_travaux_texte' => 'Ez a honlap még nincs konfigurálva. Jöjjön vissza később...',
409
-	'info_travaux_titre' => 'A honlap javítás alatt van',
410
-	'info_trop_resultat' => 'Túl sok eredmény erre "@cherche_mot@" ; Szükítse a kérésést.',
411
-	'info_utilisation_messagerie_interne' => 'A honlap belső levelezőrendszerét használhatja.',
412
-	'info_valider_lien' => 'a link jóváhagyása',
413
-	'info_verifier_image' => ', elenőrizze, hogy a képek megfelelően lettek másolva.',
414
-	'info_vignette_defaut' => 'Alapértelmezett bélyegkép',
415
-	'info_vignette_personnalisee' => 'Személyes bélyegkép',
416
-	'info_visite' => 'látogatás :',
417
-	'info_vos_rendez_vous' => 'A leendő találkozói',
418
-	'infos_vos_pense_bete' => 'Az Ön emlékeztetői', # MODIF
394
+    'info_rechercher' => 'Keresés',
395
+    'info_rechercher_02' => 'Keresés :',
396
+    'info_remplacer_vignette' => 'Az alapértelmezett bélyegkép helyettesítése egy személyes logoval :',
397
+    'info_sans_titre_2' => 'cím nélkül',
398
+    'info_selectionner_fichier' => 'Kijelölhet egy fájlt az @upload@ mappából',
399
+    'info_selectionner_fichier_2' => 'Válasszon egy fájlt :',
400
+    'info_supprimer_vignette' => 'a bélyegkép törlése',
401
+    'info_symbole_bleu' => 'A <b>kék</b> jel <b>emlékeztetőt</b> jelez: vagyis egy személyes jellegű üzenetet.', # MODIF
402
+    'info_symbole_jaune' => 'A <b>sárga</b> jel <b>minden szerzőnek szóló hírt</b> jelez : minden adminisztrátor módosíthatja, és minden szerző láthatja.', # MODIF
403
+    'info_symbole_vert' => 'A <b>zöld</b> jel a honlap <b>többi felhasználóival cserélt üzeneteket</b> jelzi.', # MODIF
404
+    'info_telecharger_nouveau_logo' => 'Új logo feltöltése :',
405
+    'info_telecharger_ordinateur' => 'Feltöltés a gépéről :',
406
+    'info_tous_resultats_enregistres' => '[minden eredmény mentve]',
407
+    'info_tout_afficher' => 'Mindent megjelenít',
408
+    'info_travaux_texte' => 'Ez a honlap még nincs konfigurálva. Jöjjön vissza később...',
409
+    'info_travaux_titre' => 'A honlap javítás alatt van',
410
+    'info_trop_resultat' => 'Túl sok eredmény erre "@cherche_mot@" ; Szükítse a kérésést.',
411
+    'info_utilisation_messagerie_interne' => 'A honlap belső levelezőrendszerét használhatja.',
412
+    'info_valider_lien' => 'a link jóváhagyása',
413
+    'info_verifier_image' => ', elenőrizze, hogy a képek megfelelően lettek másolva.',
414
+    'info_vignette_defaut' => 'Alapértelmezett bélyegkép',
415
+    'info_vignette_personnalisee' => 'Személyes bélyegkép',
416
+    'info_visite' => 'látogatás :',
417
+    'info_vos_rendez_vous' => 'A leendő találkozói',
418
+    'infos_vos_pense_bete' => 'Az Ön emlékeztetői', # MODIF
419 419
 
420
-	// L
421
-	'lien_afficher_icones_seuls' => 'Csak az ikonok megjelenítése',
422
-	'lien_afficher_texte_icones' => 'Ikonok és szöveg megjelenítése',
423
-	'lien_afficher_texte_seul' => 'Csak a szöveg megjelenítése',
424
-	'lien_liberer' => 'szabadítani',
425
-	'lien_liberer_tous' => 'a cikkek szabadítása', # MODIF
426
-	'lien_nouvea_pense_bete' => 'ÚJ EMLÉKEZTETŐ',
427
-	'lien_nouveau_message' => 'ÚJ ÜZENET',
428
-	'lien_nouvelle_annonce' => 'ÚJ HÍRKÖZLÉS',
429
-	'lien_petitions' => 'ALÁÍRÁSGYŰJTÉS',
430
-	'lien_popularite' => 'népszerűség : @popularite@%',
431
-	'lien_racine_site' => 'HONLAP TETEJE',
432
-	'lien_reessayer' => 'újabb próba',
433
-	'lien_repondre_message' => 'Válaszolni az üzenetre',
434
-	'lien_supprimer' => 'töröl',
435
-	'lien_tout_afficher' => 'Mindent megjelenít',
436
-	'lien_visite_site' => 'a honlap látógatása',
437
-	'lien_visites' => '@visites@ látógatás',
438
-	'lien_voir_auteur' => 'Lásd a szerzőt',
439
-	'ligne' => 'Sor',
440
-	'login' => 'Kapcsolat',
441
-	'login_acces_prive' => 'Belépés a privát részbe',
442
-	'login_autre_identifiant' => 'Csatlakozás másik azonosítóval',
443
-	'login_cookie_accepte' => 'Állítsa be a böngészőjét úgy, hogy elfogadja őket(legalább ezen a honlapon).',
444
-	'login_cookie_oblige' => 'A honlaphoz való biztonságos azonosítás érdekében a sütiket (cookies) el kell fogadni.',
445
-	'login_deconnexion_ok' => 'Kijelentkezés megtörtént.',
446
-	'login_erreur_pass' => 'Hibás jelszó.',
447
-	'login_espace_prive' => 'privát rész',
448
-	'login_identifiant_inconnu' => 'A « @login@ » azonosító ismeretlen.',
449
-	'login_login' => 'Login :',
450
-	'login_login2' => 'Login (honlaphoz való csatlakozási azonosító) :', # MODIF
451
-	'login_login_pass_incorrect' => '(Érvénytelen login vagy jelszó.)',
452
-	'login_motpasseoublie' => 'a jelszót elfelejtette ?',
453
-	'login_non_securise' => 'Vigyázat, az űrlap nem biztonságos.
420
+    // L
421
+    'lien_afficher_icones_seuls' => 'Csak az ikonok megjelenítése',
422
+    'lien_afficher_texte_icones' => 'Ikonok és szöveg megjelenítése',
423
+    'lien_afficher_texte_seul' => 'Csak a szöveg megjelenítése',
424
+    'lien_liberer' => 'szabadítani',
425
+    'lien_liberer_tous' => 'a cikkek szabadítása', # MODIF
426
+    'lien_nouvea_pense_bete' => 'ÚJ EMLÉKEZTETŐ',
427
+    'lien_nouveau_message' => 'ÚJ ÜZENET',
428
+    'lien_nouvelle_annonce' => 'ÚJ HÍRKÖZLÉS',
429
+    'lien_petitions' => 'ALÁÍRÁSGYŰJTÉS',
430
+    'lien_popularite' => 'népszerűség : @popularite@%',
431
+    'lien_racine_site' => 'HONLAP TETEJE',
432
+    'lien_reessayer' => 'újabb próba',
433
+    'lien_repondre_message' => 'Válaszolni az üzenetre',
434
+    'lien_supprimer' => 'töröl',
435
+    'lien_tout_afficher' => 'Mindent megjelenít',
436
+    'lien_visite_site' => 'a honlap látógatása',
437
+    'lien_visites' => '@visites@ látógatás',
438
+    'lien_voir_auteur' => 'Lásd a szerzőt',
439
+    'ligne' => 'Sor',
440
+    'login' => 'Kapcsolat',
441
+    'login_acces_prive' => 'Belépés a privát részbe',
442
+    'login_autre_identifiant' => 'Csatlakozás másik azonosítóval',
443
+    'login_cookie_accepte' => 'Állítsa be a böngészőjét úgy, hogy elfogadja őket(legalább ezen a honlapon).',
444
+    'login_cookie_oblige' => 'A honlaphoz való biztonságos azonosítás érdekében a sütiket (cookies) el kell fogadni.',
445
+    'login_deconnexion_ok' => 'Kijelentkezés megtörtént.',
446
+    'login_erreur_pass' => 'Hibás jelszó.',
447
+    'login_espace_prive' => 'privát rész',
448
+    'login_identifiant_inconnu' => 'A « @login@ » azonosító ismeretlen.',
449
+    'login_login' => 'Login :',
450
+    'login_login2' => 'Login (honlaphoz való csatlakozási azonosító) :', # MODIF
451
+    'login_login_pass_incorrect' => '(Érvénytelen login vagy jelszó.)',
452
+    'login_motpasseoublie' => 'a jelszót elfelejtette ?',
453
+    'login_non_securise' => 'Vigyázat, az űrlap nem biztonságos.
454 454
    Ha nem akarja, hogy jelszavát kaphassák a hálozaton, akkor a Javascriptet aktiválja
455 455
    a böngészójében és',
456
-	'login_nouvelle_tentative' => 'Újabb kisérlet',
457
-	'login_par_ici' => 'Be van íratkozva... errefelé...',
458
-	'login_pass2' => 'Jelszó :',
459
-	'login_preferez_refuser' => '<b>Ha mégis elutasítja a sütiket (cookies)</b>, akkor egy másik csatlakozási módszer (kevésbé biztonságos) áll rendelkezésére :',
460
-	'login_recharger' => 'újra tölteni az oldalt',
461
-	'login_rester_identifie' => 'Azonosítva maradni pár napig', # MODIF
462
-	'login_retour_public' => 'Vissza a nyilvános honlapra',
463
-	'login_retour_site' => 'Vissza a nyilvános honlapra',
464
-	'login_retoursitepublic' => 'vissza a nyilvános honlapra',
465
-	'login_sinscrire' => 'beíratkozás', # MODIF
466
-	'login_test_navigateur' => 'böngésző teszt/újracsatlakozás',
467
-	'login_verifiez_navigateur' => '(Azonban ellenőrizze, hogy a bongészó nem memorizálta-e a jelszót...)',
456
+    'login_nouvelle_tentative' => 'Újabb kisérlet',
457
+    'login_par_ici' => 'Be van íratkozva... errefelé...',
458
+    'login_pass2' => 'Jelszó :',
459
+    'login_preferez_refuser' => '<b>Ha mégis elutasítja a sütiket (cookies)</b>, akkor egy másik csatlakozási módszer (kevésbé biztonságos) áll rendelkezésére :',
460
+    'login_recharger' => 'újra tölteni az oldalt',
461
+    'login_rester_identifie' => 'Azonosítva maradni pár napig', # MODIF
462
+    'login_retour_public' => 'Vissza a nyilvános honlapra',
463
+    'login_retour_site' => 'Vissza a nyilvános honlapra',
464
+    'login_retoursitepublic' => 'vissza a nyilvános honlapra',
465
+    'login_sinscrire' => 'beíratkozás', # MODIF
466
+    'login_test_navigateur' => 'böngésző teszt/újracsatlakozás',
467
+    'login_verifiez_navigateur' => '(Azonban ellenőrizze, hogy a bongészó nem memorizálta-e a jelszót...)',
468 468
 
469
-	// M
470
-	'masquer_colonne' => 'Oszlop elrejtése',
471
-	'masquer_trad' => 'fordítások elrejtése',
472
-	'module_fichiers_langues' => 'Nyelvi fájlok',
469
+    // M
470
+    'masquer_colonne' => 'Oszlop elrejtése',
471
+    'masquer_trad' => 'fordítások elrejtése',
472
+    'module_fichiers_langues' => 'Nyelvi fájlok',
473 473
 
474
-	// N
475
-	'navigateur_pas_redirige' => 'Ha a böngészó nincsen átirányítva, akkor ide kattintson.',
476
-	'numero' => 'Szám',
474
+    // N
475
+    'navigateur_pas_redirige' => 'Ha a böngészó nincsen átirányítva, akkor ide kattintson.',
476
+    'numero' => 'Szám',
477 477
 
478
-	// O
479
-	'occurence' => 'Előfordulás',
480
-	'onglet_affacer_base' => 'Adatbázis törlése',
481
-	'onglet_auteur' => 'A szerző',
482
-	'onglet_contenu_site' => 'A honlap tartalma',
483
-	'onglet_evolution_visite_mod' => 'Kialakulás',
484
-	'onglet_fonctions_avances' => 'Bővített funkciók',
485
-	'onglet_informations_personnelles' => 'Személyes adatok',
486
-	'onglet_interactivite' => 'Interaktivitás',
487
-	'onglet_messagerie' => 'Levelezés',
488
-	'onglet_repartition_rubrique' => 'Rovat szerinti bontás',
489
-	'onglet_save_restaur_base' => 'Adatbázis mentése/resztaurálása',
490
-	'onglet_vider_cache' => 'Cache ürítése',
478
+    // O
479
+    'occurence' => 'Előfordulás',
480
+    'onglet_affacer_base' => 'Adatbázis törlése',
481
+    'onglet_auteur' => 'A szerző',
482
+    'onglet_contenu_site' => 'A honlap tartalma',
483
+    'onglet_evolution_visite_mod' => 'Kialakulás',
484
+    'onglet_fonctions_avances' => 'Bővített funkciók',
485
+    'onglet_informations_personnelles' => 'Személyes adatok',
486
+    'onglet_interactivite' => 'Interaktivitás',
487
+    'onglet_messagerie' => 'Levelezés',
488
+    'onglet_repartition_rubrique' => 'Rovat szerinti bontás',
489
+    'onglet_save_restaur_base' => 'Adatbázis mentése/resztaurálása',
490
+    'onglet_vider_cache' => 'Cache ürítése',
491 491
 
492
-	// P
493
-	'pass_choix_pass' => 'Legyen szíves választani az új jelszavát :',
494
-	'pass_erreur' => 'Hiba',
495
-	'pass_erreur_acces_refuse' => '<b>Hiba :</b> már nincs hozzáférése arra a honlapra.',
496
-	'pass_erreur_code_inconnu' => '<b>Hiba :</b> ez a kód a honlap egyik engedélyezett felhasználójanak sem felel meg.',
497
-	'pass_erreur_non_enregistre' => '<b>Hiba :</b> a cím <tt>@email_oubli@</tt> nincs felvéve ezen a honlapon.',
498
-	'pass_erreur_non_valide' => '<b>Hiba :</b> ez az email <tt>@email_oubli@</tt> érvénytelen !',
499
-	'pass_erreur_probleme_technique' => '<b>Hiba :</b> műszaki okból, az email nem küldhető el.',
500
-	'pass_espace_prive_bla' => 'A privát rész nyított a
492
+    // P
493
+    'pass_choix_pass' => 'Legyen szíves választani az új jelszavát :',
494
+    'pass_erreur' => 'Hiba',
495
+    'pass_erreur_acces_refuse' => '<b>Hiba :</b> már nincs hozzáférése arra a honlapra.',
496
+    'pass_erreur_code_inconnu' => '<b>Hiba :</b> ez a kód a honlap egyik engedélyezett felhasználójanak sem felel meg.',
497
+    'pass_erreur_non_enregistre' => '<b>Hiba :</b> a cím <tt>@email_oubli@</tt> nincs felvéve ezen a honlapon.',
498
+    'pass_erreur_non_valide' => '<b>Hiba :</b> ez az email <tt>@email_oubli@</tt> érvénytelen !',
499
+    'pass_erreur_probleme_technique' => '<b>Hiba :</b> műszaki okból, az email nem küldhető el.',
500
+    'pass_espace_prive_bla' => 'A privát rész nyított a
501 501
   látógatók részére, miután beíratkoztak. Ha be van iratkozva,
502 502
  akkor megtekintheti a szerkesztés alatti cikkeket,
503 503
  javasolhat cikkeket és részt vehet a fórumokban.',
504
-	'pass_forum_bla' => 'Hozzászólást kért olyan fórumon, ami a beiratkozott látógatóknak van fenntartva.',
505
-	'pass_indiquez_cidessous' => 'Lejjebb jelezze az email címet, amivel beíratkozott az imént. Olyan
504
+    'pass_forum_bla' => 'Hozzászólást kért olyan fórumon, ami a beiratkozott látógatóknak van fenntartva.',
505
+    'pass_indiquez_cidessous' => 'Lejjebb jelezze az email címet, amivel beíratkozott az imént. Olyan
506 506
    emailt fog kapni, ami mutatja az eljárást az Ön hozzáférésének visszaszerzésére.',
507
-	'pass_mail_passcookie' => '(Ez egy automatikus üzenet)
507
+    'pass_mail_passcookie' => '(Ez egy automatikus üzenet)
508 508
 A @nom_site_spip@ (@adresse_site@)
509 509
 honlaphozzáférés visszaszerzésére
510 510
 Menjen a következő címre :
@@ -515,133 +515,133 @@  discard block
 block discarded – undo
515 515
 és újra csatlakozhat a honlapra.
516 516
 
517 517
 ',
518
-	'pass_mot_oublie' => 'Elfelejtett jelszó',
519
-	'pass_nouveau_enregistre' => 'Az új jelszava fel lett véve.',
520
-	'pass_nouveau_pass' => 'Új jelszó',
521
-	'pass_ok' => 'Rendben',
522
-	'pass_oubli_mot' => 'Jelszó elvesztése',
523
-	'pass_quitter_fenetre' => 'Kilépni az ablakból',
524
-	'pass_rappel_login' => 'Emlékeztető : az Ön azonosítója (login) « @login@ ».',
525
-	'pass_recevoir_mail' => 'Hamarosan olyan emailt fog kapni, ami mutatja hogyan lehet visszaszerezni a hozzáférést a honlapra.', # MODIF
526
-	'pass_retour_public' => 'Vissza a nyilvános honlapra',
527
-	'pass_rien_a_faire_ici' => 'Nincs keresnivalója itt.',
528
-	'pass_vousinscrire' => 'Beíratkozás ezen a honlapon',
529
-	'precedent' => 'elöző',
530
-	'previsualisation' => 'Előnézet',
531
-	'previsualiser' => 'Előnézet',
518
+    'pass_mot_oublie' => 'Elfelejtett jelszó',
519
+    'pass_nouveau_enregistre' => 'Az új jelszava fel lett véve.',
520
+    'pass_nouveau_pass' => 'Új jelszó',
521
+    'pass_ok' => 'Rendben',
522
+    'pass_oubli_mot' => 'Jelszó elvesztése',
523
+    'pass_quitter_fenetre' => 'Kilépni az ablakból',
524
+    'pass_rappel_login' => 'Emlékeztető : az Ön azonosítója (login) « @login@ ».',
525
+    'pass_recevoir_mail' => 'Hamarosan olyan emailt fog kapni, ami mutatja hogyan lehet visszaszerezni a hozzáférést a honlapra.', # MODIF
526
+    'pass_retour_public' => 'Vissza a nyilvános honlapra',
527
+    'pass_rien_a_faire_ici' => 'Nincs keresnivalója itt.',
528
+    'pass_vousinscrire' => 'Beíratkozás ezen a honlapon',
529
+    'precedent' => 'elöző',
530
+    'previsualisation' => 'Előnézet',
531
+    'previsualiser' => 'Előnézet',
532 532
 
533
-	// R
534
-	'retour' => 'Vissza',
533
+    // R
534
+    'retour' => 'Vissza',
535 535
 
536
-	// S
537
-	'spip_conforme_dtd' => 'A SPIP szerint ez az oldal teljesíti a DOCTYPE követelményeit:',
538
-	'squelette' => 'vázlat',
539
-	'squelette_inclus_ligne' => 'vázlatot beleértve, sor',
540
-	'squelette_ligne' => 'vázlat, sor',
541
-	'stats_visites_et_popularite' => '@visites@ látogatás ; népszerűség : @popularite@',
542
-	'suivant' => 'következő',
536
+    // S
537
+    'spip_conforme_dtd' => 'A SPIP szerint ez az oldal teljesíti a DOCTYPE követelményeit:',
538
+    'squelette' => 'vázlat',
539
+    'squelette_inclus_ligne' => 'vázlatot beleértve, sor',
540
+    'squelette_ligne' => 'vázlat, sor',
541
+    'stats_visites_et_popularite' => '@visites@ látogatás ; népszerűség : @popularite@',
542
+    'suivant' => 'következő',
543 543
 
544
-	// T
545
-	'taille_ko' => '@taille@ ko',
546
-	'taille_mo' => '@taille@ Mo',
547
-	'taille_octets' => '@taille@ byte',
548
-	'taille_octets_bi' => '@taille@ byte',
549
-	'texte_actualite_site_1' => 'Ha barátkozik a felülettel akkor kattintson arra «',
550
-	'texte_actualite_site_2' => 'teljes felület',
551
-	'texte_actualite_site_3' => '» több lehetőség megnyítására.',
552
-	'texte_creation_automatique_vignette' => 'A bélyegképek automatikus létrehozása aktiválva van a honlapon. Ha erről az űrlapról telepít @gd_formats@ formátumú képeket, akkor majd bélyegkép kiséri, melynek maximális mérete @taille_preview@ pixel.',
553
-	'texte_documents_associes' => 'A következő dokumentumok tartoznak a cikk,
544
+    // T
545
+    'taille_ko' => '@taille@ ko',
546
+    'taille_mo' => '@taille@ Mo',
547
+    'taille_octets' => '@taille@ byte',
548
+    'taille_octets_bi' => '@taille@ byte',
549
+    'texte_actualite_site_1' => 'Ha barátkozik a felülettel akkor kattintson arra «',
550
+    'texte_actualite_site_2' => 'teljes felület',
551
+    'texte_actualite_site_3' => '» több lehetőség megnyítására.',
552
+    'texte_creation_automatique_vignette' => 'A bélyegképek automatikus létrehozása aktiválva van a honlapon. Ha erről az űrlapról telepít @gd_formats@ formátumú képeket, akkor majd bélyegkép kiséri, melynek maximális mérete @taille_preview@ pixel.',
553
+    'texte_documents_associes' => 'A következő dokumentumok tartoznak a cikk,
554 554
     de nem lettek közvetlenül
555 555
    beszúrva. A nyilvános rész oldalbeállítása szerint,
556 556
   csatolt dokumentumok formában jelenhetnek meg.',
557
-	'texte_erreur_mise_niveau_base' => 'Adatbázis hiba verziófrissítéskor.
557
+    'texte_erreur_mise_niveau_base' => 'Adatbázis hiba verziófrissítéskor.
558 558
   A <b>@fichier@</b> kép nem ment át (@id_article@ cikk).
559 559
  Jegyezze meg ezt a nevet, próblája újra a frissítést, és végül ellenőrizze, hogy a képek mindig jelennek meg a cikkekben.', # MODIF
560
-	'texte_erreur_visiteur' => 'Olyan azonosítóval próbált hozzáférni a privát zónához, aminek ehhez nincs jogosultsága.',
561
-	'texte_inc_auth_1' => 'Ön a <b>@auth_login@</b> loginnal
560
+    'texte_erreur_visiteur' => 'Olyan azonosítóval próbált hozzáférni a privát zónához, aminek ehhez nincs jogosultsága.',
561
+    'texte_inc_auth_1' => 'Ön a <b>@auth_login@</b> loginnal
562 562
 van azonosítva, nem ez létezik/létezett az adatbázisban. 
563 563
 Próbáljon', # MODIF
564
-	'texte_inc_auth_2' => 'újra csatlakozni',
565
-	'texte_inc_auth_3' => ', miután esetleg bezárta és 
564
+    'texte_inc_auth_2' => 'újra csatlakozni',
565
+    'texte_inc_auth_3' => ', miután esetleg bezárta és 
566 566
 újraindította a böngészőjét.',
567
-	'texte_inc_config' => 'Az ezeken az oldalokon végzett módosítások jelentősen befolyásolják a
567
+    'texte_inc_config' => 'Az ezeken az oldalokon végzett módosítások jelentősen befolyásolják a
568 568
  honlap működését. Javasoljuk, hogy ne  avatkozzon bele, amig Ön nem járátos
569 569
  az SPIP működésében. <br /><br /><b>Általában nagyon tanácsos bízni ezeket az oldalakat
570 570
  a honlap fő webmesterére.</b>', # MODIF
571
-	'texte_inc_meta_1' => 'A rendszer hibát észlelt a <code>@fichier@</code> fájl írásákor. Mint honlap adminisztrátor, legyen szíves',
572
-	'texte_inc_meta_2' => 'ellenőrizni a irási jogokat',
573
-	'texte_inc_meta_3' => 'a <code>@repertoire@</code> nevű mappán.',
574
-	'texte_statut_en_cours_redaction' => 'szerkesztés alatt',
575
-	'texte_statut_poubelle' => 'szemetesbe',
576
-	'texte_statut_propose_evaluation' => 'felmérésre javasolt',
577
-	'texte_statut_publie' => 'publikált',
578
-	'texte_statut_refuse' => 'elutasított',
579
-	'titre_ajouter_mot_cle' => 'KULCSSZÓ HOZZÁADÁS :',
580
-	'titre_cadre_raccourcis' => 'GYORS HIVATKOZÁSOK :',
581
-	'titre_changer_couleur_interface' => 'Felület színe változtatása',
582
-	'titre_image_admin_article' => 'Ezt a cikket Ön adminisztrálhatja',
583
-	'titre_image_administrateur' => 'Adminisztrátor',
584
-	'titre_image_aide' => 'Súgó erről a részről',
585
-	'titre_image_auteur_supprime' => 'Szerző törölve',
586
-	'titre_image_redacteur' => 'Hozzáférés nélküli szerző',
587
-	'titre_image_redacteur_02' => 'Szerző',
588
-	'titre_image_visiteur' => 'Vendég',
589
-	'titre_joindre_document' => 'DOKUMENTUM CSATOLÁSA',
590
-	'titre_mots_cles' => 'KULCSSZAVAK',
591
-	'titre_probleme_technique' => 'Vigyázat : műszaki hiba (SQL szerver) miatt nincs hozzáférés erre a részre. Megértését köszönjük.', # MODIF
592
-	'titre_publier_document' => 'DOKUMENTUM PUBLIKÁLÁSA ABBAN A ROVATBAN',
593
-	'titre_signatures_attente' => 'Érvényesítésre várakozó aláírások',
594
-	'titre_signatures_confirmees' => 'Érvényesített aláírások',
595
-	'titre_statistiques' => 'A honlap statisztikai',
596
-	'titre_titre_document' => 'Dokumentum címe :',
597
-	'trad_reference' => '(eredeti cikk)', # MODIF
571
+    'texte_inc_meta_1' => 'A rendszer hibát észlelt a <code>@fichier@</code> fájl írásákor. Mint honlap adminisztrátor, legyen szíves',
572
+    'texte_inc_meta_2' => 'ellenőrizni a irási jogokat',
573
+    'texte_inc_meta_3' => 'a <code>@repertoire@</code> nevű mappán.',
574
+    'texte_statut_en_cours_redaction' => 'szerkesztés alatt',
575
+    'texte_statut_poubelle' => 'szemetesbe',
576
+    'texte_statut_propose_evaluation' => 'felmérésre javasolt',
577
+    'texte_statut_publie' => 'publikált',
578
+    'texte_statut_refuse' => 'elutasított',
579
+    'titre_ajouter_mot_cle' => 'KULCSSZÓ HOZZÁADÁS :',
580
+    'titre_cadre_raccourcis' => 'GYORS HIVATKOZÁSOK :',
581
+    'titre_changer_couleur_interface' => 'Felület színe változtatása',
582
+    'titre_image_admin_article' => 'Ezt a cikket Ön adminisztrálhatja',
583
+    'titre_image_administrateur' => 'Adminisztrátor',
584
+    'titre_image_aide' => 'Súgó erről a részről',
585
+    'titre_image_auteur_supprime' => 'Szerző törölve',
586
+    'titre_image_redacteur' => 'Hozzáférés nélküli szerző',
587
+    'titre_image_redacteur_02' => 'Szerző',
588
+    'titre_image_visiteur' => 'Vendég',
589
+    'titre_joindre_document' => 'DOKUMENTUM CSATOLÁSA',
590
+    'titre_mots_cles' => 'KULCSSZAVAK',
591
+    'titre_probleme_technique' => 'Vigyázat : műszaki hiba (SQL szerver) miatt nincs hozzáférés erre a részre. Megértését köszönjük.', # MODIF
592
+    'titre_publier_document' => 'DOKUMENTUM PUBLIKÁLÁSA ABBAN A ROVATBAN',
593
+    'titre_signatures_attente' => 'Érvényesítésre várakozó aláírások',
594
+    'titre_signatures_confirmees' => 'Érvényesített aláírások',
595
+    'titre_statistiques' => 'A honlap statisztikai',
596
+    'titre_titre_document' => 'Dokumentum címe :',
597
+    'trad_reference' => '(eredeti cikk)', # MODIF
598 598
 
599
-	// Z
600
-	'zbug_balise_b_aval' => ' : B jelző után',
601
-	'zbug_balise_inexistante' => 'hiba @from@: a(z) #@balise@ tag nem létezik', # MODIF
602
-	'zbug_balise_sans_argument' => 'Hiányzó argumentum a(z) @balise@ tagban',
603
-	'zbug_boucle' => 'folyamat',
604
-	'zbug_boucle_recursive_undef' => 'határozatlan rekurzív folyamat', # MODIF
605
-	'zbug_calcul' => 'számolás',
606
-	'zbug_champ_hors_boucle' => 'A @champ@ mező a folyamaton kívül van',
607
-	'zbug_champ_hors_motif' => 'A @champ@ mező egy @motif@ jellegű folyamaton kívül van', # MODIF
608
-	'zbug_code' => 'kód',
609
-	'zbug_critere_inconnu' => 'ismeretlen kritérium @critere@', # MODIF
610
-	'zbug_distant_interdit' => 'külső tilos', # MODIF
611
-	'zbug_doublon_table_sans_cle_primaire' => 'duplumokat használt egy táblán, amin nincs egyszerű elsődleges kulcs', # MODIF
612
-	'zbug_doublon_table_sans_index' => 'index nélküli duplumok egy táblában', # MODIF
613
-	'zbug_erreur_boucle_double' => 'BOUCLE@id@: dupla definició', # MODIF
614
-	'zbug_erreur_boucle_fermant' => 'BOUCLE@id@: záró tag hiányzik', # MODIF
615
-	'zbug_erreur_boucle_syntaxe' => 'Folyamat szintáxisa nem korrekt', # MODIF
616
-	'zbug_erreur_compilation' => 'Összeállítási hiba',
617
-	'zbug_erreur_execution_page' => 'futtatási hiba az oldalnál', # MODIF
618
-	'zbug_erreur_filtre' => 'Hiba : szűrő <b>« @filtre@ »</b> nincs meghatározva', # MODIF
619
-	'zbug_erreur_meme_parent' => '{meme_parent} csak a (FORUMS) vagy (RUBRIQUES) folyamatoknál alkalmazható', # MODIF
620
-	'zbug_erreur_squelette' => 'Hiba a vázban',
621
-	'zbug_hors_compilation' => 'Nincs összeállítva',
622
-	'zbug_info_erreur_squelette' => 'Hiba a honlapon',
623
-	'zbug_inversion_ordre_inexistant' => 'nem létező sorrend megfordítása', # MODIF
624
-	'zbug_pagination_sans_critere' => '#PAGINATION tag {pagination} kritérium nélkül, vagy rekurzív ismétlésben használta', # MODIF
625
-	'zbug_parametres_inclus_incorrects' => 'Hibás inkluziós parameterek', # MODIF
626
-	'zbug_profile' => 'Számolás hossza: @time@',
627
-	'zbug_resultat' => 'eredmény',
628
-	'zbug_serveur_indefini' => 'határozatlan SQL szerver', # MODIF
629
-	'zbug_statistiques' => 'SQL kérések statisztikája hossz szerint',
630
-	'zbug_table_inconnue' => 'A « @table@ » nevű SQL tábla ismeretlen',
631
-	'zxml_connus_attributs' => 'ismert tulajdonságok',
632
-	'zxml_de' => 'Innen:',
633
-	'zxml_inconnu_attribut' => 'ismeretlen tulajdonság',
634
-	'zxml_inconnu_balise' => 'ismeretlen tag',
635
-	'zxml_inconnu_entite' => 'ismeretlen bejegyzés',
636
-	'zxml_inconnu_id' => 'ismeretlen ID',
637
-	'zxml_mais_de' => 'de innen:',
638
-	'zxml_non_conforme' => 'nem érvényes az alapelvre',
639
-	'zxml_non_fils' => 'nem a gyermeke neki:',
640
-	'zxml_nonvide_balise' => 'a tag nem üres',
641
-	'zxml_obligatoire_attribut' => 'szükséges tulajdonság hiányzik ebben:',
642
-	'zxml_succession_fils_incorrecte' => 'hibás öröklés',
643
-	'zxml_survoler' => 'a helyesek megjelenítéséhez mozgassa föléjük az egeret',
644
-	'zxml_valeur_attribut' => 'tulajdonság értéke',
645
-	'zxml_vide_balise' => 'üres tag',
646
-	'zxml_vu' => 'látva ezelőtt:'
599
+    // Z
600
+    'zbug_balise_b_aval' => ' : B jelző után',
601
+    'zbug_balise_inexistante' => 'hiba @from@: a(z) #@balise@ tag nem létezik', # MODIF
602
+    'zbug_balise_sans_argument' => 'Hiányzó argumentum a(z) @balise@ tagban',
603
+    'zbug_boucle' => 'folyamat',
604
+    'zbug_boucle_recursive_undef' => 'határozatlan rekurzív folyamat', # MODIF
605
+    'zbug_calcul' => 'számolás',
606
+    'zbug_champ_hors_boucle' => 'A @champ@ mező a folyamaton kívül van',
607
+    'zbug_champ_hors_motif' => 'A @champ@ mező egy @motif@ jellegű folyamaton kívül van', # MODIF
608
+    'zbug_code' => 'kód',
609
+    'zbug_critere_inconnu' => 'ismeretlen kritérium @critere@', # MODIF
610
+    'zbug_distant_interdit' => 'külső tilos', # MODIF
611
+    'zbug_doublon_table_sans_cle_primaire' => 'duplumokat használt egy táblán, amin nincs egyszerű elsődleges kulcs', # MODIF
612
+    'zbug_doublon_table_sans_index' => 'index nélküli duplumok egy táblában', # MODIF
613
+    'zbug_erreur_boucle_double' => 'BOUCLE@id@: dupla definició', # MODIF
614
+    'zbug_erreur_boucle_fermant' => 'BOUCLE@id@: záró tag hiányzik', # MODIF
615
+    'zbug_erreur_boucle_syntaxe' => 'Folyamat szintáxisa nem korrekt', # MODIF
616
+    'zbug_erreur_compilation' => 'Összeállítási hiba',
617
+    'zbug_erreur_execution_page' => 'futtatási hiba az oldalnál', # MODIF
618
+    'zbug_erreur_filtre' => 'Hiba : szűrő <b>« @filtre@ »</b> nincs meghatározva', # MODIF
619
+    'zbug_erreur_meme_parent' => '{meme_parent} csak a (FORUMS) vagy (RUBRIQUES) folyamatoknál alkalmazható', # MODIF
620
+    'zbug_erreur_squelette' => 'Hiba a vázban',
621
+    'zbug_hors_compilation' => 'Nincs összeállítva',
622
+    'zbug_info_erreur_squelette' => 'Hiba a honlapon',
623
+    'zbug_inversion_ordre_inexistant' => 'nem létező sorrend megfordítása', # MODIF
624
+    'zbug_pagination_sans_critere' => '#PAGINATION tag {pagination} kritérium nélkül, vagy rekurzív ismétlésben használta', # MODIF
625
+    'zbug_parametres_inclus_incorrects' => 'Hibás inkluziós parameterek', # MODIF
626
+    'zbug_profile' => 'Számolás hossza: @time@',
627
+    'zbug_resultat' => 'eredmény',
628
+    'zbug_serveur_indefini' => 'határozatlan SQL szerver', # MODIF
629
+    'zbug_statistiques' => 'SQL kérések statisztikája hossz szerint',
630
+    'zbug_table_inconnue' => 'A « @table@ » nevű SQL tábla ismeretlen',
631
+    'zxml_connus_attributs' => 'ismert tulajdonságok',
632
+    'zxml_de' => 'Innen:',
633
+    'zxml_inconnu_attribut' => 'ismeretlen tulajdonság',
634
+    'zxml_inconnu_balise' => 'ismeretlen tag',
635
+    'zxml_inconnu_entite' => 'ismeretlen bejegyzés',
636
+    'zxml_inconnu_id' => 'ismeretlen ID',
637
+    'zxml_mais_de' => 'de innen:',
638
+    'zxml_non_conforme' => 'nem érvényes az alapelvre',
639
+    'zxml_non_fils' => 'nem a gyermeke neki:',
640
+    'zxml_nonvide_balise' => 'a tag nem üres',
641
+    'zxml_obligatoire_attribut' => 'szükséges tulajdonság hiányzik ebben:',
642
+    'zxml_succession_fils_incorrecte' => 'hibás öröklés',
643
+    'zxml_survoler' => 'a helyesek megjelenítéséhez mozgassa föléjük az egeret',
644
+    'zxml_valeur_attribut' => 'tulajdonság értéke',
645
+    'zxml_vide_balise' => 'üres tag',
646
+    'zxml_vu' => 'látva ezelőtt:'
647 647
 );
Please login to merge, or discard this patch.
ecrire/lang/spip_gl.php 1 patch
Indentation   +625 added lines, -625 removed lines patch added patch discarded remove patch
@@ -4,231 +4,231 @@  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 á interface gráfica completa',
14
-	'access_mode_texte' => 'Mostrar a interface de textos simplificada',
15
-	'admin_debug' => 'debug',
16
-	'admin_modifier_article' => 'Modificar este artigo',
17
-	'admin_modifier_auteur' => 'Modificar este autor',
18
-	'admin_modifier_breve' => 'Modificar esta breve',
19
-	'admin_modifier_mot' => 'Modificar esta palabra-clave',
20
-	'admin_modifier_rubrique' => 'Modificar este tema',
21
-	'admin_recalculer' => 'Recargar a páxina',
22
-	'afficher_calendrier' => 'Presentar o calendario',
23
-	'afficher_trad' => 'mostrar as traducións',
24
-	'alerte_maj_impossible' => '<b>Aviso !</b> A actualización da base SQL sobre a versión @version@ é imposible, podería ser por causa dun problema de permisos de modificación da base de datos. Contacte co seu aloxador.',
25
-	'alerte_modif_info_concourante' => 'AVISO : esta información foi modificada por outros. O valor actual é :',
26
-	'analyse_xml' => 'Análise XML',
27
-	'annuler' => 'Anular',
28
-	'antispam_champ_vide' => 'Deixe este campo baleiro, por favor :',
29
-	'articles_recents' => 'Artigos máis recentes',
30
-	'avis_archive_incorrect' => 'o ficheiro arquivado non é un ficheiro SPIP',
31
-	'avis_archive_invalide' => 'o ficheiro arquivado non é válido',
32
-	'avis_attention' => 'ATENCIÓN!',
33
-	'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para o obxecto de tipo @type@',
34
-	'avis_colonne_inexistante' => 'A columna @col@ non existe',
35
-	'avis_erreur' => 'Erro: ver abaixo',
36
-	'avis_erreur_connexion' => 'Erro de conexión',
37
-	'avis_erreur_cookie' => 'problema de cookie',
38
-	'avis_erreur_fonction_contexte' => 'Erro de programación. Esta función non debe ser chamada neste contexto.',
39
-	'avis_erreur_mysql' => 'Erro SQL',
40
-	'avis_erreur_sauvegarde' => 'Erro gardando (@type@ @id_objet@)!',
41
-	'avis_erreur_visiteur' => 'Problema co acceso ao espazo privado',
12
+    // A
13
+    'access_interface_graphique' => 'Voltar á interface gráfica completa',
14
+    'access_mode_texte' => 'Mostrar a interface de textos simplificada',
15
+    'admin_debug' => 'debug',
16
+    'admin_modifier_article' => 'Modificar este artigo',
17
+    'admin_modifier_auteur' => 'Modificar este autor',
18
+    'admin_modifier_breve' => 'Modificar esta breve',
19
+    'admin_modifier_mot' => 'Modificar esta palabra-clave',
20
+    'admin_modifier_rubrique' => 'Modificar este tema',
21
+    'admin_recalculer' => 'Recargar a páxina',
22
+    'afficher_calendrier' => 'Presentar o calendario',
23
+    'afficher_trad' => 'mostrar as traducións',
24
+    'alerte_maj_impossible' => '<b>Aviso !</b> A actualización da base SQL sobre a versión @version@ é imposible, podería ser por causa dun problema de permisos de modificación da base de datos. Contacte co seu aloxador.',
25
+    'alerte_modif_info_concourante' => 'AVISO : esta información foi modificada por outros. O valor actual é :',
26
+    'analyse_xml' => 'Análise XML',
27
+    'annuler' => 'Anular',
28
+    'antispam_champ_vide' => 'Deixe este campo baleiro, por favor :',
29
+    'articles_recents' => 'Artigos máis recentes',
30
+    'avis_archive_incorrect' => 'o ficheiro arquivado non é un ficheiro SPIP',
31
+    'avis_archive_invalide' => 'o ficheiro arquivado non é válido',
32
+    'avis_attention' => 'ATENCIÓN!',
33
+    'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para o obxecto de tipo @type@',
34
+    'avis_colonne_inexistante' => 'A columna @col@ non existe',
35
+    'avis_erreur' => 'Erro: ver abaixo',
36
+    'avis_erreur_connexion' => 'Erro de conexión',
37
+    'avis_erreur_cookie' => 'problema de cookie',
38
+    'avis_erreur_fonction_contexte' => 'Erro de programación. Esta función non debe ser chamada neste contexto.',
39
+    'avis_erreur_mysql' => 'Erro SQL',
40
+    'avis_erreur_sauvegarde' => 'Erro gardando (@type@ @id_objet@)!',
41
+    'avis_erreur_visiteur' => 'Problema co acceso ao espazo privado',
42 42
 
43
-	// B
44
-	'barre_a_accent_grave' => 'Inserir un A con acento grave maiúsculo',
45
-	'barre_aide' => 'Utilice os recursos tipográficos para enriquecer a súa publicación',
46
-	'barre_e_accent_aigu' => 'Inserir un E con acento agudo maiúsculo',
47
-	'barre_eo' => 'Inserir un E dentro do O',
48
-	'barre_eo_maj' => 'Inserir un E dentro do O maiúsculo',
49
-	'barre_euro' => 'Inserir o símbolo €',
50
-	'barre_gras' => 'Poñer en {{gras}}',
51
-	'barre_guillemets' => 'Encerrar entre « ángulos »',
52
-	'barre_guillemets_simples' => 'Encerrar entre “comas dobres”',
53
-	'barre_intertitre' => 'Transformar en {{{intertítulo}}}',
54
-	'barre_italic' => 'Poñer en {cursiva}',
55
-	'barre_lien' => 'Transformar en [ligazón de hipertexto->http://...]',
56
-	'barre_lien_input' => 'Indicar o enderezo de seu web (pode indicar un enderezo de web coa forma http://www.monsite/com ou simplemente indicar o número dun artigo deste web.',
57
-	'barre_note' => 'Transformar en [[Nota a rodapé]]',
58
-	'barre_paragraphe' => 'Crear un parágrafo',
59
-	'barre_quote' => '<quote>Citar unha mensaxe</quote>',
60
-	'bouton_changer' => 'Trocar',
61
-	'bouton_chercher' => 'Buscar',
62
-	'bouton_choisir' => 'Elexir',
63
-	'bouton_deplacer' => 'Desprazar',
64
-	'bouton_download' => 'Descargar',
65
-	'bouton_enregistrer' => 'Rexistrar',
66
-	'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a mensaxería interna',
67
-	'bouton_radio_envoi_annonces' => 'Enviar os anuncios editoriais',
68
-	'bouton_radio_non_envoi_annonces' => 'Non enviar novas',
69
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Non enviar a lista de novidades',
70
-	'bouton_recharger_page' => 'recargar a páxina',
71
-	'bouton_telecharger' => 'Cargar',
72
-	'bouton_upload' => 'Cargar',
73
-	'bouton_valider' => 'Validar',
43
+    // B
44
+    'barre_a_accent_grave' => 'Inserir un A con acento grave maiúsculo',
45
+    'barre_aide' => 'Utilice os recursos tipográficos para enriquecer a súa publicación',
46
+    'barre_e_accent_aigu' => 'Inserir un E con acento agudo maiúsculo',
47
+    'barre_eo' => 'Inserir un E dentro do O',
48
+    'barre_eo_maj' => 'Inserir un E dentro do O maiúsculo',
49
+    'barre_euro' => 'Inserir o símbolo €',
50
+    'barre_gras' => 'Poñer en {{gras}}',
51
+    'barre_guillemets' => 'Encerrar entre « ángulos »',
52
+    'barre_guillemets_simples' => 'Encerrar entre “comas dobres”',
53
+    'barre_intertitre' => 'Transformar en {{{intertítulo}}}',
54
+    'barre_italic' => 'Poñer en {cursiva}',
55
+    'barre_lien' => 'Transformar en [ligazón de hipertexto->http://...]',
56
+    'barre_lien_input' => 'Indicar o enderezo de seu web (pode indicar un enderezo de web coa forma http://www.monsite/com ou simplemente indicar o número dun artigo deste web.',
57
+    'barre_note' => 'Transformar en [[Nota a rodapé]]',
58
+    'barre_paragraphe' => 'Crear un parágrafo',
59
+    'barre_quote' => '<quote>Citar unha mensaxe</quote>',
60
+    'bouton_changer' => 'Trocar',
61
+    'bouton_chercher' => 'Buscar',
62
+    'bouton_choisir' => 'Elexir',
63
+    'bouton_deplacer' => 'Desprazar',
64
+    'bouton_download' => 'Descargar',
65
+    'bouton_enregistrer' => 'Rexistrar',
66
+    'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a mensaxería interna',
67
+    'bouton_radio_envoi_annonces' => 'Enviar os anuncios editoriais',
68
+    'bouton_radio_non_envoi_annonces' => 'Non enviar novas',
69
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Non enviar a lista de novidades',
70
+    'bouton_recharger_page' => 'recargar a páxina',
71
+    'bouton_telecharger' => 'Cargar',
72
+    'bouton_upload' => 'Cargar',
73
+    'bouton_valider' => 'Validar',
74 74
 
75
-	// C
76
-	'cal_apresmidi' => 'mediodía',
77
-	'cal_jour_entier' => 'día enteiro',
78
-	'cal_matin' => 'mañá',
79
-	'cal_par_jour' => 'calendario por día',
80
-	'cal_par_mois' => 'calendario por mes',
81
-	'cal_par_semaine' => 'calendario por semana',
82
-	'choix_couleur_interface' => 'cor',
83
-	'choix_interface' => 'escolla de interface',
84
-	'colonne' => 'Columna',
85
-	'confirm_changer_statut' => 'Coidado, pediu cambiar o estado deste elemento. Quere proceder?',
86
-	'correcte' => 'correcto',
75
+    // C
76
+    'cal_apresmidi' => 'mediodía',
77
+    'cal_jour_entier' => 'día enteiro',
78
+    'cal_matin' => 'mañá',
79
+    'cal_par_jour' => 'calendario por día',
80
+    'cal_par_mois' => 'calendario por mes',
81
+    'cal_par_semaine' => 'calendario por semana',
82
+    'choix_couleur_interface' => 'cor',
83
+    'choix_interface' => 'escolla de interface',
84
+    'colonne' => 'Columna',
85
+    'confirm_changer_statut' => 'Coidado, pediu cambiar o estado deste elemento. Quere proceder?',
86
+    'correcte' => 'correcto',
87 87
 
88
-	// D
89
-	'date_aujourdhui' => 'hoxe',
90
-	'date_avant_jc' => 'a. de J.C.',
91
-	'date_dans' => 'en @delai@',
92
-	'date_de_mois_1' => '@j@ @nommois@',
93
-	'date_de_mois_10' => '@j@ @nommois@',
94
-	'date_de_mois_11' => '@j@ @nommois@',
95
-	'date_de_mois_12' => '@j@ @nommois@',
96
-	'date_de_mois_2' => '@j@ @nommois@',
97
-	'date_de_mois_3' => '@j@ @nommois@',
98
-	'date_de_mois_4' => '@j@ @nommois@',
99
-	'date_de_mois_5' => '@j@ @nommois@',
100
-	'date_de_mois_6' => '@j@ @nommois@',
101
-	'date_de_mois_7' => '@j@ @nommois@',
102
-	'date_de_mois_8' => '@j@ @nommois@',
103
-	'date_de_mois_9' => '@j@ @nommois@',
104
-	'date_demain' => 'mañá;',
105
-	'date_fmt_heures_minutes' => '@h@h@m@min',
106
-	'date_fmt_jour_heure' => '@jour@ ás @heure@',
107
-	'date_fmt_jour_mois' => '@jour@ de @nommois@',
108
-	'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ do @annee@',
109
-	'date_fmt_mois_annee' => '@nommois@ do @annee@',
110
-	'date_fmt_nomjour_date' => 'o @nomjour@ @date@',
111
-	'date_heures' => 'horas',
112
-	'date_hier' => 'onte',
113
-	'date_il_y_a' => 'fai @delai@',
114
-	'date_jnum1' => '1',
115
-	'date_jnum10' => '10',
116
-	'date_jnum11' => '11',
117
-	'date_jnum12' => '12',
118
-	'date_jnum13' => '13',
119
-	'date_jnum14' => '14',
120
-	'date_jnum15' => '15',
121
-	'date_jnum16' => '16',
122
-	'date_jnum17' => '17',
123
-	'date_jnum18' => '18',
124
-	'date_jnum19' => '19',
125
-	'date_jnum2' => '2',
126
-	'date_jnum20' => '20',
127
-	'date_jnum21' => '21',
128
-	'date_jnum22' => '22',
129
-	'date_jnum23' => '23',
130
-	'date_jnum24' => '24',
131
-	'date_jnum25' => '25',
132
-	'date_jnum26' => '26',
133
-	'date_jnum27' => '27',
134
-	'date_jnum28' => '28',
135
-	'date_jnum29' => '29',
136
-	'date_jnum3' => '3',
137
-	'date_jnum30' => '30',
138
-	'date_jnum31' => '31',
139
-	'date_jnum4' => '4',
140
-	'date_jnum5' => '5',
141
-	'date_jnum6' => '6',
142
-	'date_jnum7' => '7',
143
-	'date_jnum8' => '8',
144
-	'date_jnum9' => '9',
145
-	'date_jour_1' => 'domingo',
146
-	'date_jour_1_abbr' => 'dom.',
147
-	'date_jour_1_initiale' => 'd.',
148
-	'date_jour_2' => 'luns',
149
-	'date_jour_2_abbr' => 'lun.',
150
-	'date_jour_2_initiale' => 'l.',
151
-	'date_jour_3' => 'martes',
152
-	'date_jour_3_abbr' => 'mar.',
153
-	'date_jour_3_initiale' => 'm.',
154
-	'date_jour_4' => 'mércores',
155
-	'date_jour_4_abbr' => 'mer.',
156
-	'date_jour_4_initiale' => 'm.',
157
-	'date_jour_5' => 'xoves',
158
-	'date_jour_5_abbr' => 'xov.',
159
-	'date_jour_5_initiale' => 'x.',
160
-	'date_jour_6' => 'venres',
161
-	'date_jour_6_abbr' => 'ven.',
162
-	'date_jour_6_initiale' => 'v.',
163
-	'date_jour_7' => 'sábado',
164
-	'date_jour_7_abbr' => 'sáb.',
165
-	'date_jour_7_initiale' => 's.',
166
-	'date_jours' => 'días',
167
-	'date_minutes' => 'minutos',
168
-	'date_mois' => 'meses',
169
-	'date_mois_1' => 'xaneiro',
170
-	'date_mois_10' => 'outubro',
171
-	'date_mois_10_abbr' => 'out.',
172
-	'date_mois_11' => 'novembro',
173
-	'date_mois_11_abbr' => 'nov.',
174
-	'date_mois_12' => 'decembro',
175
-	'date_mois_12_abbr' => 'dec.',
176
-	'date_mois_1_abbr' => 'xan.',
177
-	'date_mois_2' => 'febreiro',
178
-	'date_mois_2_abbr' => 'feb.',
179
-	'date_mois_3' => 'marzo',
180
-	'date_mois_3_abbr' => 'marz.',
181
-	'date_mois_4' => 'abril',
182
-	'date_mois_4_abbr' => 'abr.',
183
-	'date_mois_5' => 'maio',
184
-	'date_mois_5_abbr' => 'mai',
185
-	'date_mois_6' => 'xuño',
186
-	'date_mois_6_abbr' => 'xuño',
187
-	'date_mois_7' => 'xullo',
188
-	'date_mois_7_abbr' => 'xullo',
189
-	'date_mois_8' => 'agosto',
190
-	'date_mois_8_abbr' => 'ago.',
191
-	'date_mois_9' => 'setembro',
192
-	'date_mois_9_abbr' => 'set.',
193
-	'date_saison_1' => 'inverno',
194
-	'date_saison_2' => 'primavera',
195
-	'date_saison_3' => 'verán',
196
-	'date_saison_4' => 'outono',
197
-	'date_secondes' => 'segundos',
198
-	'date_semaines' => 'semanas',
199
-	'date_un_mois' => 'mes',
200
-	'date_une_heure' => 'hora',
201
-	'date_une_minute' => 'minuto',
202
-	'date_une_seconde' => 'segundo',
203
-	'date_une_semaine' => 'semana',
204
-	'dirs_commencer' => ' para comezar realmente a instalación',
205
-	'dirs_preliminaire' => 'Preliminar: <b>Regular os permisos de acceso</b>',
206
-	'dirs_probleme_droits' => 'Problema de permisos de acceso',
207
-	'dirs_repertoires_absents' => '<p><b>Os directorios seguintes non foron atopados :</b></p><ul>@bad_dirs@.</ul>
88
+    // D
89
+    'date_aujourdhui' => 'hoxe',
90
+    'date_avant_jc' => 'a. de J.C.',
91
+    'date_dans' => 'en @delai@',
92
+    'date_de_mois_1' => '@j@ @nommois@',
93
+    'date_de_mois_10' => '@j@ @nommois@',
94
+    'date_de_mois_11' => '@j@ @nommois@',
95
+    'date_de_mois_12' => '@j@ @nommois@',
96
+    'date_de_mois_2' => '@j@ @nommois@',
97
+    'date_de_mois_3' => '@j@ @nommois@',
98
+    'date_de_mois_4' => '@j@ @nommois@',
99
+    'date_de_mois_5' => '@j@ @nommois@',
100
+    'date_de_mois_6' => '@j@ @nommois@',
101
+    'date_de_mois_7' => '@j@ @nommois@',
102
+    'date_de_mois_8' => '@j@ @nommois@',
103
+    'date_de_mois_9' => '@j@ @nommois@',
104
+    'date_demain' => 'mañá;',
105
+    'date_fmt_heures_minutes' => '@h@h@m@min',
106
+    'date_fmt_jour_heure' => '@jour@ ás @heure@',
107
+    'date_fmt_jour_mois' => '@jour@ de @nommois@',
108
+    'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ do @annee@',
109
+    'date_fmt_mois_annee' => '@nommois@ do @annee@',
110
+    'date_fmt_nomjour_date' => 'o @nomjour@ @date@',
111
+    'date_heures' => 'horas',
112
+    'date_hier' => 'onte',
113
+    'date_il_y_a' => 'fai @delai@',
114
+    'date_jnum1' => '1',
115
+    'date_jnum10' => '10',
116
+    'date_jnum11' => '11',
117
+    'date_jnum12' => '12',
118
+    'date_jnum13' => '13',
119
+    'date_jnum14' => '14',
120
+    'date_jnum15' => '15',
121
+    'date_jnum16' => '16',
122
+    'date_jnum17' => '17',
123
+    'date_jnum18' => '18',
124
+    'date_jnum19' => '19',
125
+    'date_jnum2' => '2',
126
+    'date_jnum20' => '20',
127
+    'date_jnum21' => '21',
128
+    'date_jnum22' => '22',
129
+    'date_jnum23' => '23',
130
+    'date_jnum24' => '24',
131
+    'date_jnum25' => '25',
132
+    'date_jnum26' => '26',
133
+    'date_jnum27' => '27',
134
+    'date_jnum28' => '28',
135
+    'date_jnum29' => '29',
136
+    'date_jnum3' => '3',
137
+    'date_jnum30' => '30',
138
+    'date_jnum31' => '31',
139
+    'date_jnum4' => '4',
140
+    'date_jnum5' => '5',
141
+    'date_jnum6' => '6',
142
+    'date_jnum7' => '7',
143
+    'date_jnum8' => '8',
144
+    'date_jnum9' => '9',
145
+    'date_jour_1' => 'domingo',
146
+    'date_jour_1_abbr' => 'dom.',
147
+    'date_jour_1_initiale' => 'd.',
148
+    'date_jour_2' => 'luns',
149
+    'date_jour_2_abbr' => 'lun.',
150
+    'date_jour_2_initiale' => 'l.',
151
+    'date_jour_3' => 'martes',
152
+    'date_jour_3_abbr' => 'mar.',
153
+    'date_jour_3_initiale' => 'm.',
154
+    'date_jour_4' => 'mércores',
155
+    'date_jour_4_abbr' => 'mer.',
156
+    'date_jour_4_initiale' => 'm.',
157
+    'date_jour_5' => 'xoves',
158
+    'date_jour_5_abbr' => 'xov.',
159
+    'date_jour_5_initiale' => 'x.',
160
+    'date_jour_6' => 'venres',
161
+    'date_jour_6_abbr' => 'ven.',
162
+    'date_jour_6_initiale' => 'v.',
163
+    'date_jour_7' => 'sábado',
164
+    'date_jour_7_abbr' => 'sáb.',
165
+    'date_jour_7_initiale' => 's.',
166
+    'date_jours' => 'días',
167
+    'date_minutes' => 'minutos',
168
+    'date_mois' => 'meses',
169
+    'date_mois_1' => 'xaneiro',
170
+    'date_mois_10' => 'outubro',
171
+    'date_mois_10_abbr' => 'out.',
172
+    'date_mois_11' => 'novembro',
173
+    'date_mois_11_abbr' => 'nov.',
174
+    'date_mois_12' => 'decembro',
175
+    'date_mois_12_abbr' => 'dec.',
176
+    'date_mois_1_abbr' => 'xan.',
177
+    'date_mois_2' => 'febreiro',
178
+    'date_mois_2_abbr' => 'feb.',
179
+    'date_mois_3' => 'marzo',
180
+    'date_mois_3_abbr' => 'marz.',
181
+    'date_mois_4' => 'abril',
182
+    'date_mois_4_abbr' => 'abr.',
183
+    'date_mois_5' => 'maio',
184
+    'date_mois_5_abbr' => 'mai',
185
+    'date_mois_6' => 'xuño',
186
+    'date_mois_6_abbr' => 'xuño',
187
+    'date_mois_7' => 'xullo',
188
+    'date_mois_7_abbr' => 'xullo',
189
+    'date_mois_8' => 'agosto',
190
+    'date_mois_8_abbr' => 'ago.',
191
+    'date_mois_9' => 'setembro',
192
+    'date_mois_9_abbr' => 'set.',
193
+    'date_saison_1' => 'inverno',
194
+    'date_saison_2' => 'primavera',
195
+    'date_saison_3' => 'verán',
196
+    'date_saison_4' => 'outono',
197
+    'date_secondes' => 'segundos',
198
+    'date_semaines' => 'semanas',
199
+    'date_un_mois' => 'mes',
200
+    'date_une_heure' => 'hora',
201
+    'date_une_minute' => 'minuto',
202
+    'date_une_seconde' => 'segundo',
203
+    'date_une_semaine' => 'semana',
204
+    'dirs_commencer' => ' para comezar realmente a instalación',
205
+    'dirs_preliminaire' => 'Preliminar: <b>Regular os permisos de acceso</b>',
206
+    'dirs_probleme_droits' => 'Problema de permisos de acceso',
207
+    'dirs_repertoires_absents' => '<p><b>Os directorios seguintes non foron atopados :</b></p><ul>@bad_dirs@.</ul>
208 208
   <p>É probable que iso se deba a un problema de uso de maiúsculas ou minúsculas.
209 209
   Verifique que as minúsculas e maiúsculas destes cartafoles concorden ben co que se amosa
210 210
  aquí abaixo; se non é ese o caso, renomee os cartafoles co seu programa de FTP de xeito que se corrixa o erro.</p>
211 211
   <p>Logo de facer este cambio, poderá ',
212
-	'dirs_repertoires_suivants' => '<p><b>Os cartafoles seguintes impiden o acceso con dereitos para escritura :</b></p><ul>@bad_dirs@.</ul>
212
+    'dirs_repertoires_suivants' => '<p><b>Os cartafoles seguintes impiden o acceso con dereitos para escritura :</b></p><ul>@bad_dirs@.</ul>
213 213
   <p>Para arranxalo, empregue o seu cliente de FTP e cambie os permisos de acceso de cada un
214 214
   deles. O procedemento está explicado polo miúdo na guía de instalación.</p>
215 215
   <p>Unha vez feito isto, poderá ',
216
-	'double_occurrence' => 'Dobre ocorrencia de @balise@',
216
+    'double_occurrence' => 'Dobre ocorrencia de @balise@',
217 217
 
218
-	// E
219
-	'en_cours' => 'en curso',
220
-	'envoi_via_le_site' => 'Envío vía o sitio web',
221
-	'erreur' => 'Erro',
222
-	'erreur_balise_non_fermee' => 'a última baliza non foi pechada :',
223
-	'erreur_texte' => 'erro(s)',
224
-	'etape' => 'Etapa',
218
+    // E
219
+    'en_cours' => 'en curso',
220
+    'envoi_via_le_site' => 'Envío vía o sitio web',
221
+    'erreur' => 'Erro',
222
+    'erreur_balise_non_fermee' => 'a última baliza non foi pechada :',
223
+    'erreur_texte' => 'erro(s)',
224
+    'etape' => 'Etapa',
225 225
 
226
-	// F
227
-	'fichier_introuvable' => 'O ficheiro @fichier@ non foi atopado', # MODIF
228
-	'form_auteur_confirmation' => 'Confirme o seu enderezo de correo',
229
-	'form_auteur_email_modifie' => 'Modificouse o seu enderezo de correo.',
230
-	'form_auteur_envoi_mail_confirmation' => 'Un correo electrónico de confirmación acaba de ser enviado a @email@. Debería visitar ese enderezo web mencionado no correo para validar o seu enderezo de correo.',
231
-	'form_auteur_mail_confirmation' => 'Ola,
226
+    // F
227
+    'fichier_introuvable' => 'O ficheiro @fichier@ non foi atopado', # MODIF
228
+    'form_auteur_confirmation' => 'Confirme o seu enderezo de correo',
229
+    'form_auteur_email_modifie' => 'Modificouse o seu enderezo de correo.',
230
+    'form_auteur_envoi_mail_confirmation' => 'Un correo electrónico de confirmación acaba de ser enviado a @email@. Debería visitar ese enderezo web mencionado no correo para validar o seu enderezo de correo.',
231
+    'form_auteur_mail_confirmation' => 'Ola,
232 232
 
233 233
 Vostede solicitou cambiar o seu enderezo de correo.
234 234
 Para confirmar o seu novo enderezo, cómpre que se conecta co
@@ -237,325 +237,325 @@  discard block
 block discarded – undo
237 237
 
238 238
     @url@
239 239
 ',
240
-	'form_deja_inscrit' => 'Xa está inscrito.',
241
-	'form_email_non_valide' => 'O seu enderezo de correo-e. non é válido.',
242
-	'form_forum_access_refuse' => 'Non tes acceso a este web.',
243
-	'form_forum_bonjour' => 'Ola, @nom@,',
244
-	'form_forum_email_deja_enregistre' => 'Este enderezo de correo xa está rexistrado, daquela pode empregar a súa chave de sempre.',
245
-	'form_forum_identifiant_mail' => 'Enviouselle a vostede o seu novo identificador por correo electrónico.',
246
-	'form_forum_identifiants' => 'Identificadores persoais',
247
-	'form_forum_indiquer_nom_email' => 'Indique aquí o seu nome e o seu enderezo de correo. Axiña recibirá o seu identificador persoal por correo electrónico.',
248
-	'form_forum_login' => 'login:',
249
-	'form_forum_message_auto' => '(esta é unha mensaxe automática)',
250
-	'form_forum_pass' => 'chave:',
251
-	'form_forum_probleme_mail' => 'Problema co correo: non se lle puido enviar o identificador.',
252
-	'form_forum_voici1' => 'Velaquí os seus datos identificadores para participar na vida
240
+    'form_deja_inscrit' => 'Xa está inscrito.',
241
+    'form_email_non_valide' => 'O seu enderezo de correo-e. non é válido.',
242
+    'form_forum_access_refuse' => 'Non tes acceso a este web.',
243
+    'form_forum_bonjour' => 'Ola, @nom@,',
244
+    'form_forum_email_deja_enregistre' => 'Este enderezo de correo xa está rexistrado, daquela pode empregar a súa chave de sempre.',
245
+    'form_forum_identifiant_mail' => 'Enviouselle a vostede o seu novo identificador por correo electrónico.',
246
+    'form_forum_identifiants' => 'Identificadores persoais',
247
+    'form_forum_indiquer_nom_email' => 'Indique aquí o seu nome e o seu enderezo de correo. Axiña recibirá o seu identificador persoal por correo electrónico.',
248
+    'form_forum_login' => 'login:',
249
+    'form_forum_message_auto' => '(esta é unha mensaxe automática)',
250
+    'form_forum_pass' => 'chave:',
251
+    'form_forum_probleme_mail' => 'Problema co correo: non se lle puido enviar o identificador.',
252
+    'form_forum_voici1' => 'Velaquí os seus datos identificadores para participar na vida
253 253
 do web "@nom_site_spip@" (@adresse_site@):',
254
-	'form_forum_voici2' => 'Estes son os datos que precisa para propor artigos en "@nom_site_spip@" (@adresse_login@):',
255
-	'form_indiquer_email' => 'Indique o seu enderezo de correo-e.',
256
-	'form_indiquer_nom' => 'Indica o teu nome.',
257
-	'form_indiquer_nom_site' => 'Indique o nome do seu web.',
258
-	'form_pet_deja_enregistre' => 'Este web xa foi rexistrado',
259
-	'form_pet_signature_pasprise' => 'A túa sinatura non foi tida en conta.',
260
-	'form_prop_confirmer_envoi' => 'Confirmar o envío',
261
-	'form_prop_description' => 'Descrición/comentario',
262
-	'form_prop_enregistre' => 'A súa proposta foi rexistrada, estará en liña en canto sexa
254
+    'form_forum_voici2' => 'Estes son os datos que precisa para propor artigos en "@nom_site_spip@" (@adresse_login@):',
255
+    'form_indiquer_email' => 'Indique o seu enderezo de correo-e.',
256
+    'form_indiquer_nom' => 'Indica o teu nome.',
257
+    'form_indiquer_nom_site' => 'Indique o nome do seu web.',
258
+    'form_pet_deja_enregistre' => 'Este web xa foi rexistrado',
259
+    'form_pet_signature_pasprise' => 'A túa sinatura non foi tida en conta.',
260
+    'form_prop_confirmer_envoi' => 'Confirmar o envío',
261
+    'form_prop_description' => 'Descrición/comentario',
262
+    'form_prop_enregistre' => 'A súa proposta foi rexistrada, estará en liña en canto sexa
263 263
   validada polo equipo de xestión deste web.',
264
-	'form_prop_envoyer' => 'Enviar unha mensaxe',
265
-	'form_prop_indiquer_email' => 'Indique un enderezo de correo-e. correcto',
266
-	'form_prop_indiquer_nom_site' => 'Indique o nome do web.',
267
-	'form_prop_indiquer_sujet' => 'Escrebe o asunto da mensaxe',
268
-	'form_prop_message_envoye' => 'Mensaxe enviada',
269
-	'form_prop_non_enregistre' => 'A súa proposta non foi rexistrada.',
270
-	'form_prop_sujet' => 'Asunto',
271
-	'form_prop_url_site' => 'Enderezo (URL) do web', # MODIF
272
-	'forum_non_inscrit' => 'Aínda non se rexistrou, ou o enderezo ou a chave son incorrectos.',
273
-	'forum_par_auteur' => 'por @auteur@',
274
-	'forum_titre_erreur' => 'Erro...',
264
+    'form_prop_envoyer' => 'Enviar unha mensaxe',
265
+    'form_prop_indiquer_email' => 'Indique un enderezo de correo-e. correcto',
266
+    'form_prop_indiquer_nom_site' => 'Indique o nome do web.',
267
+    'form_prop_indiquer_sujet' => 'Escrebe o asunto da mensaxe',
268
+    'form_prop_message_envoye' => 'Mensaxe enviada',
269
+    'form_prop_non_enregistre' => 'A súa proposta non foi rexistrada.',
270
+    'form_prop_sujet' => 'Asunto',
271
+    'form_prop_url_site' => 'Enderezo (URL) do web', # MODIF
272
+    'forum_non_inscrit' => 'Aínda non se rexistrou, ou o enderezo ou a chave son incorrectos.',
273
+    'forum_par_auteur' => 'por @auteur@',
274
+    'forum_titre_erreur' => 'Erro...',
275 275
 
276
-	// I
277
-	'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste web encóntrase no enderezo:',
278
-	'ical_texte_rss_articles2' => 'Pode tamén obter os ficheiros «backend» para os artigos de cada sección do web:',
279
-	'ical_texte_rss_breves' => 'Está dispoñible un ficheiro que contén as breves do web. Especificando un número de sección obterá unicamente as breves de tal sección.',
280
-	'icone_a_suivre' => 'Panel de control',
281
-	'icone_admin_site' => 'Xestión do web',
282
-	'icone_agenda' => 'Axenda',
283
-	'icone_aide_ligne' => 'Axuda en liña',
284
-	'icone_articles' => 'Artigos',
285
-	'icone_auteurs' => 'Equipo de redacción',
286
-	'icone_brouteur' => 'Navegación rápida',
287
-	'icone_configuration_site' => 'Configuración',
288
-	'icone_configurer_site' => 'Configurar o teu web',
289
-	'icone_creer_nouvel_auteur' => 'Crear un novo autor/a',
290
-	'icone_creer_rubrique' => 'Crear unha sección',
291
-	'icone_creer_sous_rubrique' => 'Crear unha subsección',
292
-	'icone_deconnecter' => 'Desconectarse',
293
-	'icone_discussions' => 'Discusións',
294
-	'icone_doc_rubrique' => 'Documento dos temas',
295
-	'icone_ecrire_article' => 'Escribir un novo artigo',
296
-	'icone_edition_site' => 'Edición',
297
-	'icone_gestion_langues' => 'Xestión das linguas',
298
-	'icone_informations_personnelles' => 'Información persoal',
299
-	'icone_interface_complet' => 'Interface completa',
300
-	'icone_interface_simple' => 'Interface sinxela',
301
-	'icone_maintenance_site' => 'Mantemento do web',
302
-	'icone_messagerie_personnelle' => 'Mensaxería persoal',
303
-	'icone_repartition_debut' => 'Mostrar distribución dende o principio',
304
-	'icone_rubriques' => 'Temas',
305
-	'icone_sauver_site' => 'Copia de seguridade do web',
306
-	'icone_site_entier' => 'Todo o web',
307
-	'icone_sites_references' => 'Webs referidos',
308
-	'icone_statistiques' => 'Estatísticas do web',
309
-	'icone_suivi_activite' => 'Seguir a vida do web',
310
-	'icone_suivi_actualite' => 'Evolución do web',
311
-	'icone_suivi_pettions' => 'Seguir/xestionar as solicitudes',
312
-	'icone_suivi_revisions' => 'Modificacións dos artigos',
313
-	'icone_supprimer_document' => 'Borrar este documento',
314
-	'icone_supprimer_image' => 'Borrar esta imaxe',
315
-	'icone_tous_articles' => 'Os teus artigos',
316
-	'icone_tous_auteur' => 'Todo o equipo de redacción',
317
-	'icone_tous_visiteur' => 'Todos os visitantes',
318
-	'icone_visiter_site' => 'Ver o web público',
319
-	'icone_voir_en_ligne' => 'Ver en liña',
320
-	'img_indisponible' => 'imaxe non dispoñíbel',
321
-	'impossible' => 'imposíbel',
322
-	'info_a_suivre' => 'PANEL DE CONTROL »',
323
-	'info_acces_interdit' => 'Acceso prohibido',
324
-	'info_acces_refuse' => 'Acceso rexeitado',
325
-	'info_action' => 'Acción: @action@',
326
-	'info_administrer_rubriques' => 'Podes administrar este tema e os seus apartados',
327
-	'info_adresse_non_indiquee' => 'Non indicou un enderezo de proba!',
328
-	'info_aide' => 'AXUDA:',
329
-	'info_ajouter_mot' => 'Engadir esta palabra',
330
-	'info_annonce' => 'ANUNCIO',
331
-	'info_annonces_generales' => 'Anuncios xerais :',
332
-	'info_article_propose' => 'Artigo proposto',
333
-	'info_article_publie' => 'Artigo publicado',
334
-	'info_article_redaction' => 'Artigo en proceso de redacción',
335
-	'info_article_refuse' => 'Artigo rexeitado',
336
-	'info_article_supprime' => 'Artigo eliminado',
337
-	'info_articles' => 'Artigos',
338
-	'info_articles_a_valider' => 'Os artigos por validar',
339
-	'info_articles_nb' => '@nb@ artigos',
340
-	'info_articles_proposes' => 'Artigos propostos',
341
-	'info_articles_un' => '1 artigo',
342
-	'info_auteurs_nombre' => 'autor(as/es):',
343
-	'info_authentification_ftp' => 'Autentificación (por FTP).',
344
-	'info_breves_2' => 'breves',
345
-	'info_breves_nb' => '@nb@ breves',
346
-	'info_breves_un' => '1 breve',
347
-	'info_connexion_refusee' => 'Conexión rexeitada',
348
-	'info_contact_developpeur' => 'Tes que contactar cun desenrolador.',
349
-	'info_contenance' => 'Este web contén:',
350
-	'info_contribution' => 'contribucións no foro', # MODIF
351
-	'info_copyright' => '@spip@ é un programa libre distribuído @lien_gpl@.',
352
-	'info_copyright_doc' => 'Para máis información, vaia a <a href="@spipnet@">http://www.spip.net/gl</a>.', # MODIF
353
-	'info_copyright_gpl' => 'con licenza GPL',
354
-	'info_cours_edition' => 'Os artigos en proceso de edición', # MODIF
355
-	'info_creer_repertoire' => 'Debe crear un ficheiro ou cartafol chamado :',
356
-	'info_creer_repertoire_2' => 'dentro do subcartafol <b>@repertoire@</b>, e logo:',
357
-	'info_creer_vignette' => 'creación automática da viñeta',
358
-	'info_deplier' => 'Despregar',
359
-	'info_descriptif_nombre' => 'descrición(s):',
360
-	'info_description' => 'Descrición:',
361
-	'info_description_2' => 'Descrición:',
362
-	'info_dimension' => 'Dimensións:',
363
-	'info_documents_nb' => '@nb@ documentos',
364
-	'info_documents_un' => '1 documento',
365
-	'info_ecire_message_prive' => 'Escribir unha mensaxe privada',
366
-	'info_email_invalide' => 'Enderezo de correo-e. incorrecto.',
367
-	'info_en_cours_validation' => 'Os seus artigos en proceso de redacción',
368
-	'info_en_ligne' => 'Agora en liña :',
369
-	'info_envoyer_message_prive' => 'enviar unha mensaxe privada a esta persoa',
370
-	'info_erreur_requete' => 'Erro na petición:',
371
-	'info_erreur_squelette2' => 'Ningún esqueleto <b>@fichier@</b> está dispoñible...',
372
-	'info_erreur_systeme' => 'Erro do sistema (errno @errsys@)',
373
-	'info_erreur_systeme2' => 'O disco duro pode ser que estea cheo, ou a base de datos danada.<br />
276
+    // I
277
+    'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste web encóntrase no enderezo:',
278
+    'ical_texte_rss_articles2' => 'Pode tamén obter os ficheiros «backend» para os artigos de cada sección do web:',
279
+    'ical_texte_rss_breves' => 'Está dispoñible un ficheiro que contén as breves do web. Especificando un número de sección obterá unicamente as breves de tal sección.',
280
+    'icone_a_suivre' => 'Panel de control',
281
+    'icone_admin_site' => 'Xestión do web',
282
+    'icone_agenda' => 'Axenda',
283
+    'icone_aide_ligne' => 'Axuda en liña',
284
+    'icone_articles' => 'Artigos',
285
+    'icone_auteurs' => 'Equipo de redacción',
286
+    'icone_brouteur' => 'Navegación rápida',
287
+    'icone_configuration_site' => 'Configuración',
288
+    'icone_configurer_site' => 'Configurar o teu web',
289
+    'icone_creer_nouvel_auteur' => 'Crear un novo autor/a',
290
+    'icone_creer_rubrique' => 'Crear unha sección',
291
+    'icone_creer_sous_rubrique' => 'Crear unha subsección',
292
+    'icone_deconnecter' => 'Desconectarse',
293
+    'icone_discussions' => 'Discusións',
294
+    'icone_doc_rubrique' => 'Documento dos temas',
295
+    'icone_ecrire_article' => 'Escribir un novo artigo',
296
+    'icone_edition_site' => 'Edición',
297
+    'icone_gestion_langues' => 'Xestión das linguas',
298
+    'icone_informations_personnelles' => 'Información persoal',
299
+    'icone_interface_complet' => 'Interface completa',
300
+    'icone_interface_simple' => 'Interface sinxela',
301
+    'icone_maintenance_site' => 'Mantemento do web',
302
+    'icone_messagerie_personnelle' => 'Mensaxería persoal',
303
+    'icone_repartition_debut' => 'Mostrar distribución dende o principio',
304
+    'icone_rubriques' => 'Temas',
305
+    'icone_sauver_site' => 'Copia de seguridade do web',
306
+    'icone_site_entier' => 'Todo o web',
307
+    'icone_sites_references' => 'Webs referidos',
308
+    'icone_statistiques' => 'Estatísticas do web',
309
+    'icone_suivi_activite' => 'Seguir a vida do web',
310
+    'icone_suivi_actualite' => 'Evolución do web',
311
+    'icone_suivi_pettions' => 'Seguir/xestionar as solicitudes',
312
+    'icone_suivi_revisions' => 'Modificacións dos artigos',
313
+    'icone_supprimer_document' => 'Borrar este documento',
314
+    'icone_supprimer_image' => 'Borrar esta imaxe',
315
+    'icone_tous_articles' => 'Os teus artigos',
316
+    'icone_tous_auteur' => 'Todo o equipo de redacción',
317
+    'icone_tous_visiteur' => 'Todos os visitantes',
318
+    'icone_visiter_site' => 'Ver o web público',
319
+    'icone_voir_en_ligne' => 'Ver en liña',
320
+    'img_indisponible' => 'imaxe non dispoñíbel',
321
+    'impossible' => 'imposíbel',
322
+    'info_a_suivre' => 'PANEL DE CONTROL »',
323
+    'info_acces_interdit' => 'Acceso prohibido',
324
+    'info_acces_refuse' => 'Acceso rexeitado',
325
+    'info_action' => 'Acción: @action@',
326
+    'info_administrer_rubriques' => 'Podes administrar este tema e os seus apartados',
327
+    'info_adresse_non_indiquee' => 'Non indicou un enderezo de proba!',
328
+    'info_aide' => 'AXUDA:',
329
+    'info_ajouter_mot' => 'Engadir esta palabra',
330
+    'info_annonce' => 'ANUNCIO',
331
+    'info_annonces_generales' => 'Anuncios xerais :',
332
+    'info_article_propose' => 'Artigo proposto',
333
+    'info_article_publie' => 'Artigo publicado',
334
+    'info_article_redaction' => 'Artigo en proceso de redacción',
335
+    'info_article_refuse' => 'Artigo rexeitado',
336
+    'info_article_supprime' => 'Artigo eliminado',
337
+    'info_articles' => 'Artigos',
338
+    'info_articles_a_valider' => 'Os artigos por validar',
339
+    'info_articles_nb' => '@nb@ artigos',
340
+    'info_articles_proposes' => 'Artigos propostos',
341
+    'info_articles_un' => '1 artigo',
342
+    'info_auteurs_nombre' => 'autor(as/es):',
343
+    'info_authentification_ftp' => 'Autentificación (por FTP).',
344
+    'info_breves_2' => 'breves',
345
+    'info_breves_nb' => '@nb@ breves',
346
+    'info_breves_un' => '1 breve',
347
+    'info_connexion_refusee' => 'Conexión rexeitada',
348
+    'info_contact_developpeur' => 'Tes que contactar cun desenrolador.',
349
+    'info_contenance' => 'Este web contén:',
350
+    'info_contribution' => 'contribucións no foro', # MODIF
351
+    'info_copyright' => '@spip@ é un programa libre distribuído @lien_gpl@.',
352
+    'info_copyright_doc' => 'Para máis información, vaia a <a href="@spipnet@">http://www.spip.net/gl</a>.', # MODIF
353
+    'info_copyright_gpl' => 'con licenza GPL',
354
+    'info_cours_edition' => 'Os artigos en proceso de edición', # MODIF
355
+    'info_creer_repertoire' => 'Debe crear un ficheiro ou cartafol chamado :',
356
+    'info_creer_repertoire_2' => 'dentro do subcartafol <b>@repertoire@</b>, e logo:',
357
+    'info_creer_vignette' => 'creación automática da viñeta',
358
+    'info_deplier' => 'Despregar',
359
+    'info_descriptif_nombre' => 'descrición(s):',
360
+    'info_description' => 'Descrición:',
361
+    'info_description_2' => 'Descrición:',
362
+    'info_dimension' => 'Dimensións:',
363
+    'info_documents_nb' => '@nb@ documentos',
364
+    'info_documents_un' => '1 documento',
365
+    'info_ecire_message_prive' => 'Escribir unha mensaxe privada',
366
+    'info_email_invalide' => 'Enderezo de correo-e. incorrecto.',
367
+    'info_en_cours_validation' => 'Os seus artigos en proceso de redacción',
368
+    'info_en_ligne' => 'Agora en liña :',
369
+    'info_envoyer_message_prive' => 'enviar unha mensaxe privada a esta persoa',
370
+    'info_erreur_requete' => 'Erro na petición:',
371
+    'info_erreur_squelette2' => 'Ningún esqueleto <b>@fichier@</b> está dispoñible...',
372
+    'info_erreur_systeme' => 'Erro do sistema (errno @errsys@)',
373
+    'info_erreur_systeme2' => 'O disco duro pode ser que estea cheo, ou a base de datos danada.<br />
374 374
 <span style="color:red;">Probe a <a href=\'@script@\'>reparar a base</a>, ou contacte co seu aloxador.</span>',
375
-	'info_fini' => 'Rematou!',
376
-	'info_format_image' => 'Formatos de imaxes que poden ser utilizados para crear as viñetas: @gd_formats@.',
377
-	'info_format_non_defini' => 'formato non definido',
378
-	'info_grand_ecran' => 'Pantalla grande',
379
-	'info_image_aide' => 'AXUDA',
380
-	'info_image_process_titre' => 'Método de produción das viñetas',
381
-	'info_impossible_lire_page' => '<b>Erro!</b> Foi imposible ler a páxina <tt><html>@test_proxy@</html></tt> a través do proxy <tt>',
382
-	'info_installation_systeme_publication' => 'Instalación do sistema de publicación...',
383
-	'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos no cartafol ou directorio @upload@.',
384
-	'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) os ficheiros no cartafol  /@upload@ para despois podelos seleccionar directamente aquí.',
385
-	'info_installer_images' => 'Podes instalar imaxes nos formatos PNG, JPEG e GIF.',
386
-	'info_installer_images_dossier' => 'Instalar imaxes no cartafol @upload@ para poder seleccionalas aquí.',
387
-	'info_interface_complete' => 'Interface completa',
388
-	'info_interface_simple' => 'Interface sinxela',
389
-	'info_joindre_document_article' => 'Podes engadir a este artigo documentos do tipo',
390
-	'info_joindre_document_rubrique' => 'Podes engadir neste tema documentos do tipo',
391
-	'info_joindre_documents_article' => 'Podes engadir ó teu artigo documentos do tipo:',
392
-	'info_l_article' => 'o artigo',
393
-	'info_la_breve' => 'a breve',
394
-	'info_la_rubrique' => 'o tema',
395
-	'info_langue_principale' => 'Idioma principal do web',
396
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
397
-	'info_les_auteurs_1' => 'por @les_auteurs@',
398
-	'info_logo_format_interdit' => 'Só están permitidos os logos nos seguintes formatos @formats@.',
399
-	'info_logo_max_poids' => 'Os logos deben obrigatoriamente ter menos de @maxi@ (este ficheiro ten @actuel@).',
400
-	'info_mail_fournisseur' => '[email protected]',
401
-	'info_message_2' => 'MENSAXE',
402
-	'info_message_supprime' => 'MENSAXE ELIMINADA',
403
-	'info_messages_nb' => '@nb@ mensaxes',
404
-	'info_messages_un' => '1 mensaxe',
405
-	'info_mise_en_ligne' => 'Data de posta en liña:',
406
-	'info_modification_parametres_securite' => 'modificacións dos parámetros de seguridade',
407
-	'info_mois_courant' => 'Neste mes:',
408
-	'info_mot_cle_ajoute' => 'A seguinte palabra-clave foi engadida a',
409
-	'info_multi_herit' => 'Lingua predeterminada',
410
-	'info_multi_langues_soulignees' => 'As <u>linguas subliñadas</u> benefícianse dunha tradución de todos os textos da interface. Se vostede selecciona estas linguas, haberá numerosos elementos do web público (datos, formularios)que serán automaticamente traducidos. Para as linguas non subliñadas, estes elementos aparecerán na lingua principal do web.', # MODIF
411
-	'info_multilinguisme' => 'Multilingüismo',
412
-	'info_nom_non_utilisateurs_connectes' => 'O seu nome non aparece na lista de persoas conectadas.',
413
-	'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista de persoas conectadas.',
414
-	'info_nombre_en_ligne' => 'Actualmente en liña:',
415
-	'info_non_resultat' => 'Non hai ningún resultado con "@cherche_mot@"',
416
-	'info_non_utilisation_messagerie' => 'Non está empregando a mensaxería interna deste web.',
417
-	'info_nouveau_message' => 'TES UNHA NOVA MENSAXE',
418
-	'info_nouveaux_messages' => 'TES @total_messages@ NOVAS MENSAXES',
419
-	'info_numero_abbreviation' => 'Núm. ',
420
-	'info_obligatoire' => 'Esta información é obrigada',
421
-	'info_pense_bete' => 'NOTA',
422
-	'info_petit_ecran' => 'Pantalla pequena',
423
-	'info_petition_close' => 'Solicitude pechada',
424
-	'info_pixels' => 'pixels',
425
-	'info_plusieurs_mots_trouves' => 'Foron atopadas varias palabras-clave para "@cherche_mot@":',
426
-	'info_portfolio_automatique' => 'Portafolio automático:',
427
-	'info_premier_resultat' => '[@debut_limit@ primeiros resultados de @total@]',
428
-	'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados de @total@]',
429
-	'info_propose_1' => '[@nom_site_spip@] Proposto: @titre@',
430
-	'info_propose_2' => 'Artigo proposto
375
+    'info_fini' => 'Rematou!',
376
+    'info_format_image' => 'Formatos de imaxes que poden ser utilizados para crear as viñetas: @gd_formats@.',
377
+    'info_format_non_defini' => 'formato non definido',
378
+    'info_grand_ecran' => 'Pantalla grande',
379
+    'info_image_aide' => 'AXUDA',
380
+    'info_image_process_titre' => 'Método de produción das viñetas',
381
+    'info_impossible_lire_page' => '<b>Erro!</b> Foi imposible ler a páxina <tt><html>@test_proxy@</html></tt> a través do proxy <tt>',
382
+    'info_installation_systeme_publication' => 'Instalación do sistema de publicación...',
383
+    'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos no cartafol ou directorio @upload@.',
384
+    'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) os ficheiros no cartafol  /@upload@ para despois podelos seleccionar directamente aquí.',
385
+    'info_installer_images' => 'Podes instalar imaxes nos formatos PNG, JPEG e GIF.',
386
+    'info_installer_images_dossier' => 'Instalar imaxes no cartafol @upload@ para poder seleccionalas aquí.',
387
+    'info_interface_complete' => 'Interface completa',
388
+    'info_interface_simple' => 'Interface sinxela',
389
+    'info_joindre_document_article' => 'Podes engadir a este artigo documentos do tipo',
390
+    'info_joindre_document_rubrique' => 'Podes engadir neste tema documentos do tipo',
391
+    'info_joindre_documents_article' => 'Podes engadir ó teu artigo documentos do tipo:',
392
+    'info_l_article' => 'o artigo',
393
+    'info_la_breve' => 'a breve',
394
+    'info_la_rubrique' => 'o tema',
395
+    'info_langue_principale' => 'Idioma principal do web',
396
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
397
+    'info_les_auteurs_1' => 'por @les_auteurs@',
398
+    'info_logo_format_interdit' => 'Só están permitidos os logos nos seguintes formatos @formats@.',
399
+    'info_logo_max_poids' => 'Os logos deben obrigatoriamente ter menos de @maxi@ (este ficheiro ten @actuel@).',
400
+    'info_mail_fournisseur' => '[email protected]',
401
+    'info_message_2' => 'MENSAXE',
402
+    'info_message_supprime' => 'MENSAXE ELIMINADA',
403
+    'info_messages_nb' => '@nb@ mensaxes',
404
+    'info_messages_un' => '1 mensaxe',
405
+    'info_mise_en_ligne' => 'Data de posta en liña:',
406
+    'info_modification_parametres_securite' => 'modificacións dos parámetros de seguridade',
407
+    'info_mois_courant' => 'Neste mes:',
408
+    'info_mot_cle_ajoute' => 'A seguinte palabra-clave foi engadida a',
409
+    'info_multi_herit' => 'Lingua predeterminada',
410
+    'info_multi_langues_soulignees' => 'As <u>linguas subliñadas</u> benefícianse dunha tradución de todos os textos da interface. Se vostede selecciona estas linguas, haberá numerosos elementos do web público (datos, formularios)que serán automaticamente traducidos. Para as linguas non subliñadas, estes elementos aparecerán na lingua principal do web.', # MODIF
411
+    'info_multilinguisme' => 'Multilingüismo',
412
+    'info_nom_non_utilisateurs_connectes' => 'O seu nome non aparece na lista de persoas conectadas.',
413
+    'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista de persoas conectadas.',
414
+    'info_nombre_en_ligne' => 'Actualmente en liña:',
415
+    'info_non_resultat' => 'Non hai ningún resultado con "@cherche_mot@"',
416
+    'info_non_utilisation_messagerie' => 'Non está empregando a mensaxería interna deste web.',
417
+    'info_nouveau_message' => 'TES UNHA NOVA MENSAXE',
418
+    'info_nouveaux_messages' => 'TES @total_messages@ NOVAS MENSAXES',
419
+    'info_numero_abbreviation' => 'Núm. ',
420
+    'info_obligatoire' => 'Esta información é obrigada',
421
+    'info_pense_bete' => 'NOTA',
422
+    'info_petit_ecran' => 'Pantalla pequena',
423
+    'info_petition_close' => 'Solicitude pechada',
424
+    'info_pixels' => 'pixels',
425
+    'info_plusieurs_mots_trouves' => 'Foron atopadas varias palabras-clave para "@cherche_mot@":',
426
+    'info_portfolio_automatique' => 'Portafolio automático:',
427
+    'info_premier_resultat' => '[@debut_limit@ primeiros resultados de @total@]',
428
+    'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados de @total@]',
429
+    'info_propose_1' => '[@nom_site_spip@] Proposto: @titre@',
430
+    'info_propose_2' => 'Artigo proposto
431 431
 ---------------',
432
-	'info_propose_3' => 'O artigo "@titre@" foi proposto para a súa publicación.',
433
-	'info_propose_4' => 'Consúlteo e achegue a súa opinión',
434
-	'info_propose_5' => 'no foro correspondente. Está dispoñible no enderezo : ',
435
-	'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
436
-	'info_publie_1' => '[@nom_site_spip@] PUBLICADO: @titre@',
437
-	'info_publie_2' => 'Artigo publicado
432
+    'info_propose_3' => 'O artigo "@titre@" foi proposto para a súa publicación.',
433
+    'info_propose_4' => 'Consúlteo e achegue a súa opinión',
434
+    'info_propose_5' => 'no foro correspondente. Está dispoñible no enderezo : ',
435
+    'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
436
+    'info_publie_1' => '[@nom_site_spip@] PUBLICADO: @titre@',
437
+    'info_publie_2' => 'Artigo publicado
438 438
 --------------',
439
-	'info_rechercher' => 'Buscar',
440
-	'info_rechercher_02' => 'Buscar:',
441
-	'info_remplacer_vignette' => 'Trocar a viñeta por defecto por un logo persoal:',
442
-	'info_rubriques_nb' => '@nb@ seccións',
443
-	'info_rubriques_un' => '1 seccións',
444
-	'info_sans_titre_2' => 'sen título',
445
-	'info_selectionner_fichier' => 'Pode seleccionar un ficheiro do cartafol @upload@',
446
-	'info_selectionner_fichier_2' => 'Seleccionar un ficheiro:',
447
-	'info_sites_nb' => '@nb@ webs',
448
-	'info_sites_un' => '1 web',
449
-	'info_supprimer_vignette' => 'suprimir a viñeta',
450
-	'info_symbole_bleu' => 'O símbolo <b>azul</b> indica unha <b>nota</b>: ou sexa, unha mensaxe para o seu uso persoal.',
451
-	'info_symbole_jaune' => 'O símbolo <b>amarelo</b> indica un <b>anuncio para todo o equipo de redacción</b> : modificable polo equipo de xestión, e visible por toda a redacción.',
452
-	'info_symbole_vert' => 'O símbolo <b>verde</b> indica as <b>mensaxes intercambiadas con outros usuarios</b> do web.',
453
-	'info_telecharger_nouveau_logo' => 'Cargar un novo logo:',
454
-	'info_telecharger_ordinateur' => 'Cargar dende a súa computadora:',
455
-	'info_tous_resultats_enregistres' => '[todos os resultados foron rexistrados]',
456
-	'info_tout_afficher' => 'Amosar todo',
457
-	'info_travaux_texte' => 'Este web non está aínda configurado. Volva máis adiante...',
458
-	'info_travaux_titre' => 'Web en construción',
459
-	'info_trop_resultat' => 'Resultados de máis para "@cherche_mot@" ; por favor, afine a súa procura.',
460
-	'info_utilisation_messagerie_interne' => 'Estás empregando a mensaxería interna deste web.',
461
-	'info_valider_lien' => 'validar esta ligazón',
462
-	'info_verifier_image' => ', verifique que as imaxes foron transferidas correctamente.',
463
-	'info_vignette_defaut' => 'Viñeta predeterminada',
464
-	'info_vignette_personnalisee' => 'Viñeta personalizada',
465
-	'info_visite' => 'visita:',
466
-	'info_vos_rendez_vous' => 'As túas citas pendentes',
467
-	'infos_vos_pense_bete' => 'As súas notas',
439
+    'info_rechercher' => 'Buscar',
440
+    'info_rechercher_02' => 'Buscar:',
441
+    'info_remplacer_vignette' => 'Trocar a viñeta por defecto por un logo persoal:',
442
+    'info_rubriques_nb' => '@nb@ seccións',
443
+    'info_rubriques_un' => '1 seccións',
444
+    'info_sans_titre_2' => 'sen título',
445
+    'info_selectionner_fichier' => 'Pode seleccionar un ficheiro do cartafol @upload@',
446
+    'info_selectionner_fichier_2' => 'Seleccionar un ficheiro:',
447
+    'info_sites_nb' => '@nb@ webs',
448
+    'info_sites_un' => '1 web',
449
+    'info_supprimer_vignette' => 'suprimir a viñeta',
450
+    'info_symbole_bleu' => 'O símbolo <b>azul</b> indica unha <b>nota</b>: ou sexa, unha mensaxe para o seu uso persoal.',
451
+    'info_symbole_jaune' => 'O símbolo <b>amarelo</b> indica un <b>anuncio para todo o equipo de redacción</b> : modificable polo equipo de xestión, e visible por toda a redacción.',
452
+    'info_symbole_vert' => 'O símbolo <b>verde</b> indica as <b>mensaxes intercambiadas con outros usuarios</b> do web.',
453
+    'info_telecharger_nouveau_logo' => 'Cargar un novo logo:',
454
+    'info_telecharger_ordinateur' => 'Cargar dende a súa computadora:',
455
+    'info_tous_resultats_enregistres' => '[todos os resultados foron rexistrados]',
456
+    'info_tout_afficher' => 'Amosar todo',
457
+    'info_travaux_texte' => 'Este web non está aínda configurado. Volva máis adiante...',
458
+    'info_travaux_titre' => 'Web en construción',
459
+    'info_trop_resultat' => 'Resultados de máis para "@cherche_mot@" ; por favor, afine a súa procura.',
460
+    'info_utilisation_messagerie_interne' => 'Estás empregando a mensaxería interna deste web.',
461
+    'info_valider_lien' => 'validar esta ligazón',
462
+    'info_verifier_image' => ', verifique que as imaxes foron transferidas correctamente.',
463
+    'info_vignette_defaut' => 'Viñeta predeterminada',
464
+    'info_vignette_personnalisee' => 'Viñeta personalizada',
465
+    'info_visite' => 'visita:',
466
+    'info_vos_rendez_vous' => 'As túas citas pendentes',
467
+    'infos_vos_pense_bete' => 'As súas notas',
468 468
 
469
-	// L
470
-	'lien_afficher_icones_seuls' => 'Amosar só as iconas',
471
-	'lien_afficher_texte_icones' => 'Amosar as iconas e o texto',
472
-	'lien_afficher_texte_seul' => 'Amosar só o texto',
473
-	'lien_liberer' => 'liberar',
474
-	'lien_liberer_tous' => 'Liberalos todos',
475
-	'lien_nouvea_pense_bete' => 'NOVA NOTA',
476
-	'lien_nouveau_message' => 'NOVA MENSAXE',
477
-	'lien_nouvelle_annonce' => 'NOVO ANUNCIO',
478
-	'lien_petitions' => 'SOLICITUDE',
479
-	'lien_popularite' => 'popularidade : @popularite@%',
480
-	'lien_racine_site' => 'RAÍZ DO WEB',
481
-	'lien_reessayer' => 'reintentar',
482
-	'lien_repondre_message' => 'Responder a esta mensaxe',
483
-	'lien_supprimer' => 'Suprimir',
484
-	'lien_tout_afficher' => 'Amosar todo',
485
-	'lien_visite_site' => 'visitar este web',
486
-	'lien_visites' => '@visites@ visitas',
487
-	'lien_voir_auteur' => 'Ver est@ autor/a',
488
-	'ligne' => 'Liña',
489
-	'login' => 'Conexión',
490
-	'login_acces_prive' => 'acceso ao espazo privado',
491
-	'login_autre_identifiant' => 'conectarse con outro identificador',
492
-	'login_cookie_accepte' => 'Axuste o seu navegador para que as acepte (cando menos para este web).',
493
-	'login_cookie_oblige' => 'Para indentificarse dun xeito seguro neste webr, ten que aceptar as cookies.',
494
-	'login_deconnexion_ok' => 'Desconexión realizada.',
495
-	'login_erreur_pass' => 'Erro na chave.',
496
-	'login_espace_prive' => 'Espazo privado',
497
-	'login_identifiant_inconnu' => 'O identificador « @login@ » é descoñecido.',
498
-	'login_login' => 'Login:',
499
-	'login_login2' => 'Login (identificador de conexión ao web):', # MODIF
500
-	'login_login_pass_incorrect' => '(Login ou chave incorrectos.)',
501
-	'login_motpasseoublie' => 'esqueceu a chave?',
502
-	'login_non_securise' => 'Atención, este formulario non é seguro.
469
+    // L
470
+    'lien_afficher_icones_seuls' => 'Amosar só as iconas',
471
+    'lien_afficher_texte_icones' => 'Amosar as iconas e o texto',
472
+    'lien_afficher_texte_seul' => 'Amosar só o texto',
473
+    'lien_liberer' => 'liberar',
474
+    'lien_liberer_tous' => 'Liberalos todos',
475
+    'lien_nouvea_pense_bete' => 'NOVA NOTA',
476
+    'lien_nouveau_message' => 'NOVA MENSAXE',
477
+    'lien_nouvelle_annonce' => 'NOVO ANUNCIO',
478
+    'lien_petitions' => 'SOLICITUDE',
479
+    'lien_popularite' => 'popularidade : @popularite@%',
480
+    'lien_racine_site' => 'RAÍZ DO WEB',
481
+    'lien_reessayer' => 'reintentar',
482
+    'lien_repondre_message' => 'Responder a esta mensaxe',
483
+    'lien_supprimer' => 'Suprimir',
484
+    'lien_tout_afficher' => 'Amosar todo',
485
+    'lien_visite_site' => 'visitar este web',
486
+    'lien_visites' => '@visites@ visitas',
487
+    'lien_voir_auteur' => 'Ver est@ autor/a',
488
+    'ligne' => 'Liña',
489
+    'login' => 'Conexión',
490
+    'login_acces_prive' => 'acceso ao espazo privado',
491
+    'login_autre_identifiant' => 'conectarse con outro identificador',
492
+    'login_cookie_accepte' => 'Axuste o seu navegador para que as acepte (cando menos para este web).',
493
+    'login_cookie_oblige' => 'Para indentificarse dun xeito seguro neste webr, ten que aceptar as cookies.',
494
+    'login_deconnexion_ok' => 'Desconexión realizada.',
495
+    'login_erreur_pass' => 'Erro na chave.',
496
+    'login_espace_prive' => 'Espazo privado',
497
+    'login_identifiant_inconnu' => 'O identificador « @login@ » é descoñecido.',
498
+    'login_login' => 'Login:',
499
+    'login_login2' => 'Login (identificador de conexión ao web):', # MODIF
500
+    'login_login_pass_incorrect' => '(Login ou chave incorrectos.)',
501
+    'login_motpasseoublie' => 'esqueceu a chave?',
502
+    'login_non_securise' => 'Atención, este formulario non é seguro.
503 503
   Se non quere que a súa chave poida ser interceptada
504 504
   na rede, active o Javascript no seu navegador e',
505
-	'login_nouvelle_tentative' => 'Nova tentativa',
506
-	'login_par_ici' => 'Vostede está xa rexistrado... por aquí...',
507
-	'login_pass2' => 'Chave :',
508
-	'login_preferez_refuser' => '<b>Se prefire non usar as cookies</b>, ten outro método de conexión (menos seguro) á súa disposición:',
509
-	'login_recharger' => 'recargar a páxina',
510
-	'login_rester_identifie' => 'Permanecer identificado algúns días', # MODIF
511
-	'login_retour_public' => 'Volver ao web público',
512
-	'login_retour_site' => 'Volver ao web público',
513
-	'login_retoursitepublic' => 'volver ao web público',
514
-	'login_securise' => 'Inicio de sesión securizado',
515
-	'login_sinscrire' => 'Inscribirse', # MODIF
516
-	'login_test_navigateur' => 'proba navegador/reconexión',
517
-	'login_verifiez_navigateur' => '(De todos os xeitos, comprobe que o seu navegador non memorizou a súa chave...)',
505
+    'login_nouvelle_tentative' => 'Nova tentativa',
506
+    'login_par_ici' => 'Vostede está xa rexistrado... por aquí...',
507
+    'login_pass2' => 'Chave :',
508
+    'login_preferez_refuser' => '<b>Se prefire non usar as cookies</b>, ten outro método de conexión (menos seguro) á súa disposición:',
509
+    'login_recharger' => 'recargar a páxina',
510
+    'login_rester_identifie' => 'Permanecer identificado algúns días', # MODIF
511
+    'login_retour_public' => 'Volver ao web público',
512
+    'login_retour_site' => 'Volver ao web público',
513
+    'login_retoursitepublic' => 'volver ao web público',
514
+    'login_securise' => 'Inicio de sesión securizado',
515
+    'login_sinscrire' => 'Inscribirse', # MODIF
516
+    'login_test_navigateur' => 'proba navegador/reconexión',
517
+    'login_verifiez_navigateur' => '(De todos os xeitos, comprobe que o seu navegador non memorizou a súa chave...)',
518 518
 
519
-	// M
520
-	'masquer_colonne' => 'Ocultar esta columna',
521
-	'masquer_trad' => 'ocultar as traducións',
522
-	'module_fichiers_langues' => 'Ficheiros de lingua',
519
+    // M
520
+    'masquer_colonne' => 'Ocultar esta columna',
521
+    'masquer_trad' => 'ocultar as traducións',
522
+    'module_fichiers_langues' => 'Ficheiros de lingua',
523 523
 
524
-	// N
525
-	'navigateur_pas_redirige' => 'Se o seu navegador non é redirixido, prema aquí para continuar.',
526
-	'numero' => 'Número',
524
+    // N
525
+    'navigateur_pas_redirige' => 'Se o seu navegador non é redirixido, prema aquí para continuar.',
526
+    'numero' => 'Número',
527 527
 
528
-	// O
529
-	'occurence' => 'Ocorrencia',
530
-	'onglet_affacer_base' => 'Eliminar a base',
531
-	'onglet_auteur' => 'A persoa',
532
-	'onglet_contenu_site' => 'Contido do web',
533
-	'onglet_evolution_visite_mod' => 'Evolución',
534
-	'onglet_fonctions_avances' => 'Funcións avanzadas',
535
-	'onglet_informations_personnelles' => 'Informacións persoais',
536
-	'onglet_interactivite' => 'Interactividade',
537
-	'onglet_messagerie' => 'Mensaxería',
538
-	'onglet_repartition_rubrique' => 'Distribución por seccións',
539
-	'onglet_save_restaur_base' => 'Gardar/restaurar a base',
540
-	'onglet_vider_cache' => 'Baleirar a memoria caché',
528
+    // O
529
+    'occurence' => 'Ocorrencia',
530
+    'onglet_affacer_base' => 'Eliminar a base',
531
+    'onglet_auteur' => 'A persoa',
532
+    'onglet_contenu_site' => 'Contido do web',
533
+    'onglet_evolution_visite_mod' => 'Evolución',
534
+    'onglet_fonctions_avances' => 'Funcións avanzadas',
535
+    'onglet_informations_personnelles' => 'Informacións persoais',
536
+    'onglet_interactivite' => 'Interactividade',
537
+    'onglet_messagerie' => 'Mensaxería',
538
+    'onglet_repartition_rubrique' => 'Distribución por seccións',
539
+    'onglet_save_restaur_base' => 'Gardar/restaurar a base',
540
+    'onglet_vider_cache' => 'Baleirar a memoria caché',
541 541
 
542
-	// P
543
-	'pass_choix_pass' => 'Elixa súa nova chave:',
544
-	'pass_erreur' => 'Erro',
545
-	'pass_erreur_acces_refuse' => '<b>Erro:</b> xa non ten acceso a este web.',
546
-	'pass_erreur_code_inconnu' => '<b>Erro:</b> este código non se corresponde con ninguén con acceso a este web.',
547
-	'pass_erreur_non_enregistre' => '<b>Erro:</b> o enderezo <tt>@email_oubli@</tt> non foi rexistrado neste web.',
548
-	'pass_erreur_non_valide' => '<b>Erro:</b> o correo-e. <tt>@email_oubli@</tt> non é válido!',
549
-	'pass_erreur_probleme_technique' => '<b>Erro:</b> debido a un problema técnico, a mensaxe de correo non puido ser enviada.',
550
-	'pass_espace_prive_bla' => 'O espazo privado deste web está aberto ás
542
+    // P
543
+    'pass_choix_pass' => 'Elixa súa nova chave:',
544
+    'pass_erreur' => 'Erro',
545
+    'pass_erreur_acces_refuse' => '<b>Erro:</b> xa non ten acceso a este web.',
546
+    'pass_erreur_code_inconnu' => '<b>Erro:</b> este código non se corresponde con ninguén con acceso a este web.',
547
+    'pass_erreur_non_enregistre' => '<b>Erro:</b> o enderezo <tt>@email_oubli@</tt> non foi rexistrado neste web.',
548
+    'pass_erreur_non_valide' => '<b>Erro:</b> o correo-e. <tt>@email_oubli@</tt> non é válido!',
549
+    'pass_erreur_probleme_technique' => '<b>Erro:</b> debido a un problema técnico, a mensaxe de correo non puido ser enviada.',
550
+    'pass_espace_prive_bla' => 'O espazo privado deste web está aberto ás
551 551
   visitas, logo de se rexistrar. Unha vez que se rexistre,
552 552
   poderá consultar os artigos en proceso de redacción,
553 553
   propor novos artigos e participar en todos os foros.',
554
-	'pass_forum_bla' => 'Solicitou participar nun foro reservado para os visitantes rexistrados.',
555
-	'pass_indiquez_cidessous' => 'Indique aquí embaixo o enderezo do correo co que se
554
+    'pass_forum_bla' => 'Solicitou participar nun foro reservado para os visitantes rexistrados.',
555
+    'pass_indiquez_cidessous' => 'Indique aquí embaixo o enderezo do correo co que se
556 556
   rexistrara no seu momento. Recibirá un correo indicándolle os pasos a seguir para
557 557
   recuperar o seu acceso.',
558
-	'pass_mail_passcookie' => '(esta é unha mensaxe automática)
558
+    'pass_mail_passcookie' => '(esta é unha mensaxe automática)
559 559
 Para recuperar o seu acceso a
560 560
 @nom_site_spip@ (@adresse_site@)
561 561
 
@@ -568,135 +568,135 @@  discard block
 block discarded – undo
568 568
 e reconectar co web.
569 569
 
570 570
 ',
571
-	'pass_mot_oublie' => 'Chave esquecida',
572
-	'pass_nouveau_enregistre' => 'A súa nova chave foi rexistrada.',
573
-	'pass_nouveau_pass' => 'Nova chave',
574
-	'pass_ok' => 'ben',
575
-	'pass_oubli_mot' => 'Chave esquecida',
576
-	'pass_quitter_fenetre' => 'Pechar esta xanela',
577
-	'pass_rappel_login' => 'Lembra: o teu identificador (login) é « @login@ «.',
578
-	'pass_recevoir_mail' => 'Recibirás un correo indicándote os pasos a seguir para recuperar o teu acceso.', # MODIF
579
-	'pass_retour_public' => 'Volver ao web público',
580
-	'pass_rien_a_faire_ici' => 'Non hai nada que facer aquí.',
581
-	'pass_vousinscrire' => 'Inscríbase neste web',
582
-	'precedent' => 'anterior',
583
-	'previsualisation' => 'Previsualización',
584
-	'previsualiser' => 'Previsualizar',
571
+    'pass_mot_oublie' => 'Chave esquecida',
572
+    'pass_nouveau_enregistre' => 'A súa nova chave foi rexistrada.',
573
+    'pass_nouveau_pass' => 'Nova chave',
574
+    'pass_ok' => 'ben',
575
+    'pass_oubli_mot' => 'Chave esquecida',
576
+    'pass_quitter_fenetre' => 'Pechar esta xanela',
577
+    'pass_rappel_login' => 'Lembra: o teu identificador (login) é « @login@ «.',
578
+    'pass_recevoir_mail' => 'Recibirás un correo indicándote os pasos a seguir para recuperar o teu acceso.', # MODIF
579
+    'pass_retour_public' => 'Volver ao web público',
580
+    'pass_rien_a_faire_ici' => 'Non hai nada que facer aquí.',
581
+    'pass_vousinscrire' => 'Inscríbase neste web',
582
+    'precedent' => 'anterior',
583
+    'previsualisation' => 'Previsualización',
584
+    'previsualiser' => 'Previsualizar',
585 585
 
586
-	// R
587
-	'retour' => 'Volver',
586
+    // R
587
+    'retour' => 'Volver',
588 588
 
589
-	// S
590
-	'spip_conforme_dtd' => 'SPIP considera este documento conforme co seu DOCTYPE :',
591
-	'squelette' => 'esqueleto',
592
-	'squelette_inclus_ligne' => 'esqueleto incluído, liña',
593
-	'squelette_ligne' => 'esquelto, liña',
594
-	'stats_visites_et_popularite' => '@visites@ visitas; popularidade: @popularite@',
595
-	'suivant' => 'seguinte',
589
+    // S
590
+    'spip_conforme_dtd' => 'SPIP considera este documento conforme co seu DOCTYPE :',
591
+    'squelette' => 'esqueleto',
592
+    'squelette_inclus_ligne' => 'esqueleto incluído, liña',
593
+    'squelette_ligne' => 'esquelto, liña',
594
+    'stats_visites_et_popularite' => '@visites@ visitas; popularidade: @popularite@',
595
+    'suivant' => 'seguinte',
596 596
 
597
-	// T
598
-	'taille_ko' => '@taille@ KB',
599
-	'taille_mo' => '@taille@ MB',
600
-	'taille_octets' => '@taille@ bytes',
601
-	'taille_octets_bi' => '@taille@ bytes',
602
-	'texte_actualite_site_1' => 'Cando xa estea familiarizado/a coa interface, poderá premer sobre «',
603
-	'texte_actualite_site_2' => 'interface completa',
604
-	'texte_actualite_site_3' => '» para obter máis posibilidades.',
605
-	'texte_creation_automatique_vignette' => 'A creación automática de viñetas de previsualización está activada. Se emprega este formulario para subir ao servidor imaxes no(s) formato(s) @gd_formats@, irán acompañadas dunha viñeta cun tamaño máximo de @taille_preview@ píxels.',
606
-	'texte_documents_associes' => 'Os seguintes documentos están vencellados ao artigo,
597
+    // T
598
+    'taille_ko' => '@taille@ KB',
599
+    'taille_mo' => '@taille@ MB',
600
+    'taille_octets' => '@taille@ bytes',
601
+    'taille_octets_bi' => '@taille@ bytes',
602
+    'texte_actualite_site_1' => 'Cando xa estea familiarizado/a coa interface, poderá premer sobre «',
603
+    'texte_actualite_site_2' => 'interface completa',
604
+    'texte_actualite_site_3' => '» para obter máis posibilidades.',
605
+    'texte_creation_automatique_vignette' => 'A creación automática de viñetas de previsualización está activada. Se emprega este formulario para subir ao servidor imaxes no(s) formato(s) @gd_formats@, irán acompañadas dunha viñeta cun tamaño máximo de @taille_preview@ píxels.',
606
+    'texte_documents_associes' => 'Os seguintes documentos están vencellados ao artigo,
607 607
   mais non foron inseridos directamente. Dependendo do formato da páxina no web público,
608 608
   poderán aparecer en forma de documentos anexos.',
609
-	'texte_erreur_mise_niveau_base' => 'Hai un erro na base de datos tras a actualización.
609
+    'texte_erreur_mise_niveau_base' => 'Hai un erro na base de datos tras a actualización.
610 610
   A imaxe <b>@fichier@</b> non foi engadida ao (artigo @id_article@).
611 611
   Tome nota deste aviso, reintente a actualización, 
612 612
   e finalmente verifique que as imaxes aparecen sempre
613 613
   nos artigos.',
614
-	'texte_erreur_visiteur' => 'Vostede tentou de acceder ao espazo privado cun identificador que non llo permite',
615
-	'texte_inc_auth_1' => 'Identificouse co
614
+    'texte_erreur_visiteur' => 'Vostede tentou de acceder ao espazo privado cun identificador que non llo permite',
615
+    'texte_inc_auth_1' => 'Identificouse co
616 616
   identificador <b>@auth_login@</b>, mais este non existe na base de datos.
617 617
   Probe',
618
-	'texte_inc_auth_2' => 'reconectar',
619
-	'texte_inc_auth_3' => ', despois de reiniciar o seu navegador.',
620
-	'texte_inc_config' => 'As modificacións que faga nestas páxinas influirán notábelmente no
618
+    'texte_inc_auth_2' => 'reconectar',
619
+    'texte_inc_auth_3' => ', despois de reiniciar o seu navegador.',
620
+    'texte_inc_config' => 'As modificacións que faga nestas páxinas influirán notábelmente no
621 621
   funcionamento do web. Recoméndaselle non as modificar namentres que non estea 
622 622
   un pouco ao tanto do funcionamento do sistema SPIP.
623 623
   <br /><br /><b>En xeral, é moi recomendábel que estas páxinas sexan
624 624
   xestionadas polo/a webmáster principal do web.</b>',
625
-	'texte_inc_meta_1' => 'O sistema encontrou un erro tras a escritura do ficheiro <code>@fichier@</code>. Revíseo co perfil de administrador/a do web.',
626
-	'texte_inc_meta_2' => 'Comprobar os permisos de escritura',
627
-	'texte_inc_meta_3' => 'no cartafol <code>@repertoire@</code>.',
628
-	'texte_statut_en_cours_redaction' => 'en proceso de redacción',
629
-	'texte_statut_poubelle' => 'no lixo',
630
-	'texte_statut_propose_evaluation' => 'proposto para avaliación',
631
-	'texte_statut_publie' => 'publicado en liña',
632
-	'texte_statut_refuse' => 'rexeitado',
633
-	'titre_ajouter_mot_cle' => 'ENGADIR UNHA PALABRA-CLAVE:',
634
-	'titre_cadre_raccourcis' => 'ATALLOS:',
635
-	'titre_changer_couleur_interface' => 'Trocar a cor da interface',
636
-	'titre_image_admin_article' => 'Podes administrar este artigo',
637
-	'titre_image_administrateur' => 'Xestión',
638
-	'titre_image_aide' => 'Axuda sobre este elemento',
639
-	'titre_image_auteur_supprime' => 'Autor/a suprimido',
640
-	'titre_image_redacteur' => 'Redactor/a sen acceso',
641
-	'titre_image_redacteur_02' => 'Redactor/a',
642
-	'titre_image_visiteur' => 'Visitante',
643
-	'titre_joindre_document' => 'ANEXAR UN DOCUMENTO',
644
-	'titre_mots_cles' => 'PALABRAS-CLAVE',
645
-	'titre_probleme_technique' => 'Atención: un problema técnico (servidor SQL) impide o acceso a esta parte do web. Grazas pola súa comprensión.',
646
-	'titre_publier_document' => 'PUBLICAR UN DOCUMENTO NESTE TEMA',
647
-	'titre_signatures_attente' => 'Sinaturas en espera de validación',
648
-	'titre_signatures_confirmees' => 'Sinaturas confirmadas',
649
-	'titre_statistiques' => 'Estatísticas do web',
650
-	'titre_titre_document' => 'Título do documento:',
651
-	'todo' => 'próximos',
652
-	'trad_reference' => '(referencia de traducions)',
625
+    'texte_inc_meta_1' => 'O sistema encontrou un erro tras a escritura do ficheiro <code>@fichier@</code>. Revíseo co perfil de administrador/a do web.',
626
+    'texte_inc_meta_2' => 'Comprobar os permisos de escritura',
627
+    'texte_inc_meta_3' => 'no cartafol <code>@repertoire@</code>.',
628
+    'texte_statut_en_cours_redaction' => 'en proceso de redacción',
629
+    'texte_statut_poubelle' => 'no lixo',
630
+    'texte_statut_propose_evaluation' => 'proposto para avaliación',
631
+    'texte_statut_publie' => 'publicado en liña',
632
+    'texte_statut_refuse' => 'rexeitado',
633
+    'titre_ajouter_mot_cle' => 'ENGADIR UNHA PALABRA-CLAVE:',
634
+    'titre_cadre_raccourcis' => 'ATALLOS:',
635
+    'titre_changer_couleur_interface' => 'Trocar a cor da interface',
636
+    'titre_image_admin_article' => 'Podes administrar este artigo',
637
+    'titre_image_administrateur' => 'Xestión',
638
+    'titre_image_aide' => 'Axuda sobre este elemento',
639
+    'titre_image_auteur_supprime' => 'Autor/a suprimido',
640
+    'titre_image_redacteur' => 'Redactor/a sen acceso',
641
+    'titre_image_redacteur_02' => 'Redactor/a',
642
+    'titre_image_visiteur' => 'Visitante',
643
+    'titre_joindre_document' => 'ANEXAR UN DOCUMENTO',
644
+    'titre_mots_cles' => 'PALABRAS-CLAVE',
645
+    'titre_probleme_technique' => 'Atención: un problema técnico (servidor SQL) impide o acceso a esta parte do web. Grazas pola súa comprensión.',
646
+    'titre_publier_document' => 'PUBLICAR UN DOCUMENTO NESTE TEMA',
647
+    'titre_signatures_attente' => 'Sinaturas en espera de validación',
648
+    'titre_signatures_confirmees' => 'Sinaturas confirmadas',
649
+    'titre_statistiques' => 'Estatísticas do web',
650
+    'titre_titre_document' => 'Título do documento:',
651
+    'todo' => 'próximos',
652
+    'trad_reference' => '(referencia de traducions)',
653 653
 
654
-	// Z
655
-	'zbug_balise_b_aval' => ' : baliza B en aval',
656
-	'zbug_balise_inexistante' => 'A baliza @balise@ está mal declarada para @from@',
657
-	'zbug_balise_sans_argument' => 'Falta o argumento na baliza @balise@',
658
-	'zbug_boucle' => 'bucle',
659
-	'zbug_boucle_recursive_undef' => 'Bucle recursivo non definido: @nom@',
660
-	'zbug_calcul' => 'cálculo',
661
-	'zbug_champ_hors_boucle' => 'Campo @champ@ fóra de bucle',
662
-	'zbug_champ_hors_motif' => 'Campo @champ@ fóra dun contexto @motif@',
663
-	'zbug_code' => 'código',
664
-	'zbug_critere_inconnu' => 'Criterio descoñecido @critere@',
665
-	'zbug_distant_interdit' => 'Base externa prohibida',
666
-	'zbug_doublon_table_sans_cle_primaire' => 'Doublons sobre unha táboa sen clave primaria atómica',
667
-	'zbug_doublon_table_sans_index' => 'Doublons nunha táboa sen index',
668
-	'zbug_erreur_boucle_double' => 'Dobre definición do boucle @id@',
669
-	'zbug_erreur_boucle_fermant' => 'Falta o cerre do bucle @id@',
670
-	'zbug_erreur_boucle_syntaxe' => 'Sintaxe de bucle incorrecta',
671
-	'zbug_erreur_compilation' => 'Erro de compilación',
672
-	'zbug_erreur_execution_page' => 'Erro de execución',
673
-	'zbug_erreur_filtre' => 'Filtro @filtre@ non definido',
674
-	'zbug_erreur_meme_parent' => 'O criterio {meme_parent} non é aplicábel máis que aos bucles (FORUMS) ou (RUBRIQUES)',
675
-	'zbug_erreur_squelette' => 'Erro(s) no esqueleto',
676
-	'zbug_hors_compilation' => 'Deixar compilación',
677
-	'zbug_info_erreur_squelette' => 'Erro no web',
678
-	'zbug_inversion_ordre_inexistant' => 'Inversión dunha orde inexistente',
679
-	'zbug_pagination_sans_critere' => 'A baliza #PAGINATION está sen criterio {pagination} ou está empregada nun bucle recursivo',
680
-	'zbug_parametres_inclus_incorrects' => 'Parámetro de inclusión incorrecto: @param@',
681
-	'zbug_profile' => 'Tempo de cálculo : @time@',
682
-	'zbug_resultat' => 'resultado',
683
-	'zbug_serveur_indefini' => 'Servidor SQL non definido',
684
-	'zbug_statistiques' => 'Estatísticas de consultas SQL ordenadas por duración',
685
-	'zbug_table_inconnue' => 'Táboa SQL « @table@ » descoñecida',
686
-	'zxml_connus_attributs' => 'atributos coñecidos',
687
-	'zxml_de' => 'de',
688
-	'zxml_inconnu_attribut' => 'atributo descoñecido',
689
-	'zxml_inconnu_balise' => 'baliza descoñecida',
690
-	'zxml_inconnu_entite' => 'entidade descoñecida',
691
-	'zxml_inconnu_id' => 'ID descoñecida',
692
-	'zxml_mais_de' => 'mais de',
693
-	'zxml_non_conforme' => 'non é conforme co motivo',
694
-	'zxml_non_fils' => 'non é un fío de',
695
-	'zxml_nonvide_balise' => 'a baliza non está baleira',
696
-	'zxml_obligatoire_attribut' => 'atributo obrigatorio mais ausente en',
697
-	'zxml_succession_fils_incorrecte' => 'sucesión de fíos incorrecta',
698
-	'zxml_survoler' => 'sobrevoar para ver os correctos',
699
-	'zxml_valeur_attribut' => 'valor do atributo',
700
-	'zxml_vide_balise' => 'baliza baleira',
701
-	'zxml_vu' => 'vista previa'
654
+    // Z
655
+    'zbug_balise_b_aval' => ' : baliza B en aval',
656
+    'zbug_balise_inexistante' => 'A baliza @balise@ está mal declarada para @from@',
657
+    'zbug_balise_sans_argument' => 'Falta o argumento na baliza @balise@',
658
+    'zbug_boucle' => 'bucle',
659
+    'zbug_boucle_recursive_undef' => 'Bucle recursivo non definido: @nom@',
660
+    'zbug_calcul' => 'cálculo',
661
+    'zbug_champ_hors_boucle' => 'Campo @champ@ fóra de bucle',
662
+    'zbug_champ_hors_motif' => 'Campo @champ@ fóra dun contexto @motif@',
663
+    'zbug_code' => 'código',
664
+    'zbug_critere_inconnu' => 'Criterio descoñecido @critere@',
665
+    'zbug_distant_interdit' => 'Base externa prohibida',
666
+    'zbug_doublon_table_sans_cle_primaire' => 'Doublons sobre unha táboa sen clave primaria atómica',
667
+    'zbug_doublon_table_sans_index' => 'Doublons nunha táboa sen index',
668
+    'zbug_erreur_boucle_double' => 'Dobre definición do boucle @id@',
669
+    'zbug_erreur_boucle_fermant' => 'Falta o cerre do bucle @id@',
670
+    'zbug_erreur_boucle_syntaxe' => 'Sintaxe de bucle incorrecta',
671
+    'zbug_erreur_compilation' => 'Erro de compilación',
672
+    'zbug_erreur_execution_page' => 'Erro de execución',
673
+    'zbug_erreur_filtre' => 'Filtro @filtre@ non definido',
674
+    'zbug_erreur_meme_parent' => 'O criterio {meme_parent} non é aplicábel máis que aos bucles (FORUMS) ou (RUBRIQUES)',
675
+    'zbug_erreur_squelette' => 'Erro(s) no esqueleto',
676
+    'zbug_hors_compilation' => 'Deixar compilación',
677
+    'zbug_info_erreur_squelette' => 'Erro no web',
678
+    'zbug_inversion_ordre_inexistant' => 'Inversión dunha orde inexistente',
679
+    'zbug_pagination_sans_critere' => 'A baliza #PAGINATION está sen criterio {pagination} ou está empregada nun bucle recursivo',
680
+    'zbug_parametres_inclus_incorrects' => 'Parámetro de inclusión incorrecto: @param@',
681
+    'zbug_profile' => 'Tempo de cálculo : @time@',
682
+    'zbug_resultat' => 'resultado',
683
+    'zbug_serveur_indefini' => 'Servidor SQL non definido',
684
+    'zbug_statistiques' => 'Estatísticas de consultas SQL ordenadas por duración',
685
+    'zbug_table_inconnue' => 'Táboa SQL « @table@ » descoñecida',
686
+    'zxml_connus_attributs' => 'atributos coñecidos',
687
+    'zxml_de' => 'de',
688
+    'zxml_inconnu_attribut' => 'atributo descoñecido',
689
+    'zxml_inconnu_balise' => 'baliza descoñecida',
690
+    'zxml_inconnu_entite' => 'entidade descoñecida',
691
+    'zxml_inconnu_id' => 'ID descoñecida',
692
+    'zxml_mais_de' => 'mais de',
693
+    'zxml_non_conforme' => 'non é conforme co motivo',
694
+    'zxml_non_fils' => 'non é un fío de',
695
+    'zxml_nonvide_balise' => 'a baliza non está baleira',
696
+    'zxml_obligatoire_attribut' => 'atributo obrigatorio mais ausente en',
697
+    'zxml_succession_fils_incorrecte' => 'sucesión de fíos incorrecta',
698
+    'zxml_survoler' => 'sobrevoar para ver os correctos',
699
+    'zxml_valeur_attribut' => 'valor do atributo',
700
+    'zxml_vide_balise' => 'baliza baleira',
701
+    'zxml_vu' => 'vista previa'
702 702
 );
Please login to merge, or discard this patch.
ecrire/lang/spip_cpf.php 1 patch
Indentation   +550 added lines, -550 removed lines patch added patch discarded remove patch
@@ -4,198 +4,198 @@  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' => 'Artoun si lintèrfas grafik konplé',
14
-	'access_mode_texte' => 'Afis lintèrfas tèks sinp',
15
-	'admin_debug' => 'debug',
16
-	'admin_modifier_article' => 'Sanz lartik-la',
17
-	'admin_modifier_auteur' => 'Sanz linformasyon lotèr',
18
-	'admin_modifier_breve' => 'Sanz tit-nouvèl-la',
19
-	'admin_modifier_mot' => 'Sanz molaklé-la',
20
-	'admin_modifier_rubrique' => 'Sanz rubrik-la',
21
-	'admin_recalculer' => 'Arkalkil pazwèb-la',
22
-	'afficher_trad' => 'Afich’ bann tradiksyon',
23
-	'alerte_maj_impossible' => '<b>Tansyon !</b> Larnouvèlman labazdodné SQL zizka lo vèrsyon @version@ lé pa posib, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.', # MODIF
24
-	'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifié par ailleurs. La valeur actuelle est :', # MODIF
25
-	'analyse_xml' => 'Analiz XML',
26
-	'annuler' => 'Anil’',
27
-	'antispam_champ_vide' => 'Lés karo-la vide :',
28
-	'articles_recents' => 'Bann zartik li lé nouvo',
29
-	'avis_archive_incorrect' => 'Lo fisyé arsiv lé pwinn inn fisyé SPIP',
30
-	'avis_archive_invalide' => 'Lo fisyé arsiv i giny pa marsé',
31
-	'avis_attention' => 'TANSYON PANGAR !',
32
-	'avis_champ_incorrect_type_objet' => 'Non d’karo-la lé fo @name@ pou inn sizé lo tip-la minm : @type@',
33
-	'avis_colonne_inexistante' => 'Nana pwinn kolonn-la : @col@ ',
34
-	'avis_erreur' => 'Kanard : gèt anba.',
35
-	'avis_erreur_connexion' => 'Astèr néna inn kanard èk lakostaz.
12
+    // A
13
+    'access_interface_graphique' => 'Artoun si lintèrfas grafik konplé',
14
+    'access_mode_texte' => 'Afis lintèrfas tèks sinp',
15
+    'admin_debug' => 'debug',
16
+    'admin_modifier_article' => 'Sanz lartik-la',
17
+    'admin_modifier_auteur' => 'Sanz linformasyon lotèr',
18
+    'admin_modifier_breve' => 'Sanz tit-nouvèl-la',
19
+    'admin_modifier_mot' => 'Sanz molaklé-la',
20
+    'admin_modifier_rubrique' => 'Sanz rubrik-la',
21
+    'admin_recalculer' => 'Arkalkil pazwèb-la',
22
+    'afficher_trad' => 'Afich’ bann tradiksyon',
23
+    'alerte_maj_impossible' => '<b>Tansyon !</b> Larnouvèlman labazdodné SQL zizka lo vèrsyon @version@ lé pa posib, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.', # MODIF
24
+    'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifié par ailleurs. La valeur actuelle est :', # MODIF
25
+    'analyse_xml' => 'Analiz XML',
26
+    'annuler' => 'Anil’',
27
+    'antispam_champ_vide' => 'Lés karo-la vide :',
28
+    'articles_recents' => 'Bann zartik li lé nouvo',
29
+    'avis_archive_incorrect' => 'Lo fisyé arsiv lé pwinn inn fisyé SPIP',
30
+    'avis_archive_invalide' => 'Lo fisyé arsiv i giny pa marsé',
31
+    'avis_attention' => 'TANSYON PANGAR !',
32
+    'avis_champ_incorrect_type_objet' => 'Non d’karo-la lé fo @name@ pou inn sizé lo tip-la minm : @type@',
33
+    'avis_colonne_inexistante' => 'Nana pwinn kolonn-la : @col@ ',
34
+    'avis_erreur' => 'Kanard : gèt anba.',
35
+    'avis_erreur_connexion' => 'Astèr néna inn kanard èk lakostaz.
36 36
 
37 37
 ',
38
-	'avis_erreur_cookie' => 'Néna in larlik èk lo gatomakro (kouki)',
39
-	'avis_erreur_fonction_contexte' => 'Astèr néna inn kanard dann program-la. Fonksyon-la, ou dwa pa apèl ali dann kontèks-la.
38
+    'avis_erreur_cookie' => 'Néna in larlik èk lo gatomakro (kouki)',
39
+    'avis_erreur_fonction_contexte' => 'Astèr néna inn kanard dann program-la. Fonksyon-la, ou dwa pa apèl ali dann kontèks-la.
40 40
 
41 41
 ', # MODIF
42
-	'avis_erreur_mysql' => 'Néna inn kanard SQL', # MODIF
43
-	'avis_erreur_sauvegarde' => 'Astèr néna inn kanard èk la sovgard (@type@ @id_objet@) !',
44
-	'avis_erreur_visiteur' => 'Kanard ék laksé privé',
42
+    'avis_erreur_mysql' => 'Néna inn kanard SQL', # MODIF
43
+    'avis_erreur_sauvegarde' => 'Astèr néna inn kanard èk la sovgard (@type@ @id_objet@) !',
44
+    'avis_erreur_visiteur' => 'Kanard ék laksé privé',
45 45
 
46
-	// B
47
-	'barre_a_accent_grave' => 'Pou mèt in A èk son laksan grav an mazizkil',
48
-	'barre_aide' => 'Pou ansèrv bann rédiyon-limprimri andan laprézantasyon dout paz',
49
-	'barre_e_accent_aigu' => 'Pou mè in E èk son laksan égi an mazizkil',
50
-	'barre_eo' => 'Pou mèt in E andan O',
51
-	'barre_eo_maj' => 'Pou mèt in E andan O an mazizkil',
52
-	'barre_euro' => 'Mèt lo sinbol €',
53
-	'barre_gras' => 'Pou ékri {{an gro}}',
54
-	'barre_guillemets' => 'Pou mèt bann « giymé fransé »',
55
-	'barre_guillemets_simples' => 'Pou mè bann „giymé“',
56
-	'barre_intertitre' => 'Mèt sa-la kom in {{{lintèrtitr}}}',
57
-	'barre_italic' => 'Mèt sa-la an {litalik}',
58
-	'barre_lien' => 'Mèt sa-la kom in [gatir wèb->http://...]',
59
-	'barre_lien_input' => 'Mèrsi  indil ladrès out gatir wèb (kom in ladrès http://www.monsite/com ou sinpman èk lo niméro in lartik sit-la minm.',
60
-	'barre_note' => 'Po sanzé an [[not anba lapaz]]',
61
-	'barre_paragraphe' => 'Kré in paragraf',
62
-	'barre_quote' => '<quote>Sit inn modékri</quote>',
63
-	'bouton_changer' => 'Sanz',
64
-	'bouton_chercher' => 'Rod',
65
-	'bouton_choisir' => 'Swazi',
66
-	'bouton_download' => 'Trapé', # MODIF
67
-	'bouton_enregistrer' => 'Anrozistré',
68
-	'bouton_radio_desactiver_messagerie_interne' => 'Dégrèn lakazmodékri',
69
-	'bouton_radio_envoi_annonces' => 'Anvwa bann zanons léditoryal. ',
70
-	'bouton_radio_non_envoi_annonces' => 'Anpès anvwayé bann zanons ',
71
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Anpès anvwayé lalist bann nouvèlté',
72
-	'bouton_recharger_page' => 'rosarz lapazwèb-la ',
73
-	'bouton_telecharger' => 'Télésarz',
74
-	'bouton_upload' => 'Télésarz', # MODIF
75
-	'bouton_valider' => 'Konfirm',
46
+    // B
47
+    'barre_a_accent_grave' => 'Pou mèt in A èk son laksan grav an mazizkil',
48
+    'barre_aide' => 'Pou ansèrv bann rédiyon-limprimri andan laprézantasyon dout paz',
49
+    'barre_e_accent_aigu' => 'Pou mè in E èk son laksan égi an mazizkil',
50
+    'barre_eo' => 'Pou mèt in E andan O',
51
+    'barre_eo_maj' => 'Pou mèt in E andan O an mazizkil',
52
+    'barre_euro' => 'Mèt lo sinbol €',
53
+    'barre_gras' => 'Pou ékri {{an gro}}',
54
+    'barre_guillemets' => 'Pou mèt bann « giymé fransé »',
55
+    'barre_guillemets_simples' => 'Pou mè bann „giymé“',
56
+    'barre_intertitre' => 'Mèt sa-la kom in {{{lintèrtitr}}}',
57
+    'barre_italic' => 'Mèt sa-la an {litalik}',
58
+    'barre_lien' => 'Mèt sa-la kom in [gatir wèb->http://...]',
59
+    'barre_lien_input' => 'Mèrsi  indil ladrès out gatir wèb (kom in ladrès http://www.monsite/com ou sinpman èk lo niméro in lartik sit-la minm.',
60
+    'barre_note' => 'Po sanzé an [[not anba lapaz]]',
61
+    'barre_paragraphe' => 'Kré in paragraf',
62
+    'barre_quote' => '<quote>Sit inn modékri</quote>',
63
+    'bouton_changer' => 'Sanz',
64
+    'bouton_chercher' => 'Rod',
65
+    'bouton_choisir' => 'Swazi',
66
+    'bouton_download' => 'Trapé', # MODIF
67
+    'bouton_enregistrer' => 'Anrozistré',
68
+    'bouton_radio_desactiver_messagerie_interne' => 'Dégrèn lakazmodékri',
69
+    'bouton_radio_envoi_annonces' => 'Anvwa bann zanons léditoryal. ',
70
+    'bouton_radio_non_envoi_annonces' => 'Anpès anvwayé bann zanons ',
71
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Anpès anvwayé lalist bann nouvèlté',
72
+    'bouton_recharger_page' => 'rosarz lapazwèb-la ',
73
+    'bouton_telecharger' => 'Télésarz',
74
+    'bouton_upload' => 'Télésarz', # MODIF
75
+    'bouton_valider' => 'Konfirm',
76 76
 
77
-	// C
78
-	'cal_apresmidi' => 'aprémidi',
79
-	'cal_jour_entier' => 'jou konplé',
80
-	'cal_matin' => 'matin',
81
-	'cal_par_jour' => 'kalandrye pa jou',
82
-	'cal_par_mois' => 'kalandrye pa mwa',
83
-	'cal_par_semaine' => 'kalandrye pa semèn',
84
-	'choix_couleur_interface' => 'Koulèr',
85
-	'choix_interface' => 'soizi lintèrfas',
86
-	'colonne' => 'Kolonn',
87
-	'confirm_changer_statut' => 'Pangar, ou la domann po sanz lo statu zéléman-la. Lé byin sertin y vé sanz a li ?',
88
-	'correcte' => 'korèk',
77
+    // C
78
+    'cal_apresmidi' => 'aprémidi',
79
+    'cal_jour_entier' => 'jou konplé',
80
+    'cal_matin' => 'matin',
81
+    'cal_par_jour' => 'kalandrye pa jou',
82
+    'cal_par_mois' => 'kalandrye pa mwa',
83
+    'cal_par_semaine' => 'kalandrye pa semèn',
84
+    'choix_couleur_interface' => 'Koulèr',
85
+    'choix_interface' => 'soizi lintèrfas',
86
+    'colonne' => 'Kolonn',
87
+    'confirm_changer_statut' => 'Pangar, ou la domann po sanz lo statu zéléman-la. Lé byin sertin y vé sanz a li ?',
88
+    'correcte' => 'korèk',
89 89
 
90
-	// D
91
-	'date_aujourdhui' => 'zordi',
92
-	'date_avant_jc' => 'avan J.C.',
93
-	'date_dans' => 'dann @delai@',
94
-	'date_de_mois_1' => '@j@ @nommois@',
95
-	'date_de_mois_10' => '@j@ @nommois@',
96
-	'date_de_mois_11' => '@j@ @nommois@',
97
-	'date_de_mois_12' => '@j@ @nommois@',
98
-	'date_de_mois_2' => '@j@ @nommois@',
99
-	'date_de_mois_3' => '@j@ @nommois@',
100
-	'date_de_mois_4' => '@j@ @nommois@',
101
-	'date_de_mois_5' => '@j@ @nommois@',
102
-	'date_de_mois_6' => '@j@ @nommois@',
103
-	'date_de_mois_7' => '@j@ @nommois@',
104
-	'date_de_mois_8' => '@j@ @nommois@',
105
-	'date_de_mois_9' => '@j@ @nommois@',
106
-	'date_demain' => 'domin',
107
-	'date_fmt_heures_minutes' => '@h@èr@m@min',
108
-	'date_fmt_jour' => '@nomjour@ @jour@',
109
-	'date_fmt_jour_heure' => '@jour@ a @heure@',
110
-	'date_fmt_jour_mois' => '@jour@ @nommois@',
111
-	'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
112
-	'date_fmt_mois_annee' => '@nommois@ @annee@',
113
-	'date_fmt_nomjour' => '@nomjour@ @date@',
114
-	'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
115
-	'date_heures' => 'èr',
116
-	'date_hier' => 'yèr',
117
-	'date_il_y_a' => 'néna @delai@',
118
-	'date_jnum1' => '1',
119
-	'date_jnum10' => '10',
120
-	'date_jnum11' => '11',
121
-	'date_jnum12' => '12',
122
-	'date_jnum13' => '13',
123
-	'date_jnum14' => '14',
124
-	'date_jnum15' => '15',
125
-	'date_jnum16' => '16',
126
-	'date_jnum17' => '17',
127
-	'date_jnum18' => '18',
128
-	'date_jnum19' => '19',
129
-	'date_jnum2' => '2',
130
-	'date_jnum20' => '20',
131
-	'date_jnum21' => '21',
132
-	'date_jnum22' => '22',
133
-	'date_jnum23' => '23',
134
-	'date_jnum24' => '24',
135
-	'date_jnum25' => '25',
136
-	'date_jnum26' => '26',
137
-	'date_jnum27' => '27',
138
-	'date_jnum28' => '28',
139
-	'date_jnum29' => '29',
140
-	'date_jnum3' => '3',
141
-	'date_jnum30' => '30',
142
-	'date_jnum31' => '31',
143
-	'date_jnum4' => '4',
144
-	'date_jnum5' => '5',
145
-	'date_jnum6' => '6',
146
-	'date_jnum7' => '7',
147
-	'date_jnum8' => '8',
148
-	'date_jnum9' => '9',
149
-	'date_jour_1' => 'dimans',
150
-	'date_jour_1_abbr' => 'dim.',
151
-	'date_jour_1_initiale' => 'd.',
152
-	'date_jour_2' => 'lindi',
153
-	'date_jour_2_abbr' => 'lin.',
154
-	'date_jour_2_initiale' => 'l.',
155
-	'date_jour_3' => 'mardi',
156
-	'date_jour_3_abbr' => 'mar.',
157
-	'date_jour_3_initiale' => 'm.',
158
-	'date_jour_4' => 'mèrkrodi',
159
-	'date_jour_4_abbr' => 'mèr.',
160
-	'date_jour_4_initiale' => 'm.',
161
-	'date_jour_5' => 'zedi',
162
-	'date_jour_5_abbr' => 'ze.',
163
-	'date_jour_5_initiale' => 'z.',
164
-	'date_jour_6' => 'vandrodi',
165
-	'date_jour_6_abbr' => 'van.',
166
-	'date_jour_6_initiale' => 'v.',
167
-	'date_jour_7' => 'samdi',
168
-	'date_jour_7_abbr' => 'sam.',
169
-	'date_jour_7_initiale' => 's.',
170
-	'date_jours' => 'bann zor',
171
-	'date_minutes' => 'minite',
172
-	'date_mois' => 'mwa',
173
-	'date_mois_1' => 'zanvié',
174
-	'date_mois_10' => 'octob',
175
-	'date_mois_11' => 'novanm',
176
-	'date_mois_12' => 'désanm',
177
-	'date_mois_2' => 'févrié',
178
-	'date_mois_3' => 'mars',
179
-	'date_mois_4' => 'avril',
180
-	'date_mois_5' => 'mé',
181
-	'date_mois_6' => 'zwin',
182
-	'date_mois_7' => 'zwiyé',
183
-	'date_mois_8' => 'out',
184
-	'date_mois_9' => 'séptanm',
185
-	'date_saison_1' => 'livèrnaz an Frans - débu la grandsézon la Réinyon  ',
186
-	'date_saison_2' => 'printan fransé - find la grandsézon /débud séson sèk la Réinyon',
187
-	'date_saison_3' => 'été fransé - sézon sèk la Réinyon',
188
-	'date_saison_4' => 'otonn an Frans - find sézon sèk / débu dla grandsézon la Réinyon',
189
-	'date_semaines' => 'semèn',
190
-	'dirs_commencer' => 'pou komans fransvérité linstalasyon ',
191
-	'dirs_preliminaire' => 'Dabor : <b> Règ out bann drwa-laksé</b>',
192
-	'dirs_probleme_droits' => 'Astèr, néna inn larlik èk out bann drwa-laksé',
193
-	'dirs_repertoires_absents' => '<b>Lé pa posib giny bann répèrtwar-la : <ul>@bad_dirs@.</ul> </b>
90
+    // D
91
+    'date_aujourdhui' => 'zordi',
92
+    'date_avant_jc' => 'avan J.C.',
93
+    'date_dans' => 'dann @delai@',
94
+    'date_de_mois_1' => '@j@ @nommois@',
95
+    'date_de_mois_10' => '@j@ @nommois@',
96
+    'date_de_mois_11' => '@j@ @nommois@',
97
+    'date_de_mois_12' => '@j@ @nommois@',
98
+    'date_de_mois_2' => '@j@ @nommois@',
99
+    'date_de_mois_3' => '@j@ @nommois@',
100
+    'date_de_mois_4' => '@j@ @nommois@',
101
+    'date_de_mois_5' => '@j@ @nommois@',
102
+    'date_de_mois_6' => '@j@ @nommois@',
103
+    'date_de_mois_7' => '@j@ @nommois@',
104
+    'date_de_mois_8' => '@j@ @nommois@',
105
+    'date_de_mois_9' => '@j@ @nommois@',
106
+    'date_demain' => 'domin',
107
+    'date_fmt_heures_minutes' => '@h@èr@m@min',
108
+    'date_fmt_jour' => '@nomjour@ @jour@',
109
+    'date_fmt_jour_heure' => '@jour@ a @heure@',
110
+    'date_fmt_jour_mois' => '@jour@ @nommois@',
111
+    'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@',
112
+    'date_fmt_mois_annee' => '@nommois@ @annee@',
113
+    'date_fmt_nomjour' => '@nomjour@ @date@',
114
+    'date_fmt_nomjour_date' => 'lo @nomjour@ @date@',
115
+    'date_heures' => 'èr',
116
+    'date_hier' => 'yèr',
117
+    'date_il_y_a' => 'néna @delai@',
118
+    'date_jnum1' => '1',
119
+    'date_jnum10' => '10',
120
+    'date_jnum11' => '11',
121
+    'date_jnum12' => '12',
122
+    'date_jnum13' => '13',
123
+    'date_jnum14' => '14',
124
+    'date_jnum15' => '15',
125
+    'date_jnum16' => '16',
126
+    'date_jnum17' => '17',
127
+    'date_jnum18' => '18',
128
+    'date_jnum19' => '19',
129
+    'date_jnum2' => '2',
130
+    'date_jnum20' => '20',
131
+    'date_jnum21' => '21',
132
+    'date_jnum22' => '22',
133
+    'date_jnum23' => '23',
134
+    'date_jnum24' => '24',
135
+    'date_jnum25' => '25',
136
+    'date_jnum26' => '26',
137
+    'date_jnum27' => '27',
138
+    'date_jnum28' => '28',
139
+    'date_jnum29' => '29',
140
+    'date_jnum3' => '3',
141
+    'date_jnum30' => '30',
142
+    'date_jnum31' => '31',
143
+    'date_jnum4' => '4',
144
+    'date_jnum5' => '5',
145
+    'date_jnum6' => '6',
146
+    'date_jnum7' => '7',
147
+    'date_jnum8' => '8',
148
+    'date_jnum9' => '9',
149
+    'date_jour_1' => 'dimans',
150
+    'date_jour_1_abbr' => 'dim.',
151
+    'date_jour_1_initiale' => 'd.',
152
+    'date_jour_2' => 'lindi',
153
+    'date_jour_2_abbr' => 'lin.',
154
+    'date_jour_2_initiale' => 'l.',
155
+    'date_jour_3' => 'mardi',
156
+    'date_jour_3_abbr' => 'mar.',
157
+    'date_jour_3_initiale' => 'm.',
158
+    'date_jour_4' => 'mèrkrodi',
159
+    'date_jour_4_abbr' => 'mèr.',
160
+    'date_jour_4_initiale' => 'm.',
161
+    'date_jour_5' => 'zedi',
162
+    'date_jour_5_abbr' => 'ze.',
163
+    'date_jour_5_initiale' => 'z.',
164
+    'date_jour_6' => 'vandrodi',
165
+    'date_jour_6_abbr' => 'van.',
166
+    'date_jour_6_initiale' => 'v.',
167
+    'date_jour_7' => 'samdi',
168
+    'date_jour_7_abbr' => 'sam.',
169
+    'date_jour_7_initiale' => 's.',
170
+    'date_jours' => 'bann zor',
171
+    'date_minutes' => 'minite',
172
+    'date_mois' => 'mwa',
173
+    'date_mois_1' => 'zanvié',
174
+    'date_mois_10' => 'octob',
175
+    'date_mois_11' => 'novanm',
176
+    'date_mois_12' => 'désanm',
177
+    'date_mois_2' => 'févrié',
178
+    'date_mois_3' => 'mars',
179
+    'date_mois_4' => 'avril',
180
+    'date_mois_5' => 'mé',
181
+    'date_mois_6' => 'zwin',
182
+    'date_mois_7' => 'zwiyé',
183
+    'date_mois_8' => 'out',
184
+    'date_mois_9' => 'séptanm',
185
+    'date_saison_1' => 'livèrnaz an Frans - débu la grandsézon la Réinyon  ',
186
+    'date_saison_2' => 'printan fransé - find la grandsézon /débud séson sèk la Réinyon',
187
+    'date_saison_3' => 'été fransé - sézon sèk la Réinyon',
188
+    'date_saison_4' => 'otonn an Frans - find sézon sèk / débu dla grandsézon la Réinyon',
189
+    'date_semaines' => 'semèn',
190
+    'dirs_commencer' => 'pou komans fransvérité linstalasyon ',
191
+    'dirs_preliminaire' => 'Dabor : <b> Règ out bann drwa-laksé</b>',
192
+    'dirs_probleme_droits' => 'Astèr, néna inn larlik èk out bann drwa-laksé',
193
+    'dirs_repertoires_absents' => '<b>Lé pa posib giny bann répèrtwar-la : <ul>@bad_dirs@.</ul> </b>
194 194
   <p>Ni pans néna inn larlik èk lékritir bann lèt maziskil o miniskil
195 195
   Ogad byin néna okinn diskord ant bann zot maziskil o miniskil andann bann répèrtwar é sak lé afisé
196 196
   anlèr ; si ou trouv i lé pa parèy, ardonn inn ot non bann répèrtwar-la sanm out lozisyèl FTP. Komsa lo larlik i sra pou aranzé.
197 197
   <p>Kank ou lora fini ou sra kav ', # MODIF
198
-	'dirs_repertoires_suivants' => '<b>Bann répertwar-la lé pa ouvèr pou léktritir : <ul>@bad_dirs@.</ul> </b>
198
+    'dirs_repertoires_suivants' => '<b>Bann répertwar-la lé pa ouvèr pou léktritir : <ul>@bad_dirs@.</ul> </b>
199 199
 
200 200
 
201 201
 <p> Anserv out kliyan FTP, pou règ bann drwa-lakostaz sir sakin
@@ -205,312 +205,312 @@  discard block
 block discarded – undo
205 205
 
206 206
 
207 207
 <p>Kank ou lora fini,i sra kav', # MODIF
208
-	'double_occurrence' => 'Dé lokirans', # MODIF
208
+    'double_occurrence' => 'Dé lokirans', # MODIF
209 209
 
210
-	// E
211
-	'envoi_via_le_site' => 'Envwa samn lo sit',
212
-	'erreur' => 'Kanard',
213
-	'erreur_balise_non_fermee' => 'dernyé baliz lé pa fermé :',
214
-	'erreur_texte' => 'kanard(s)',
210
+    // E
211
+    'envoi_via_le_site' => 'Envwa samn lo sit',
212
+    'erreur' => 'Kanard',
213
+    'erreur_balise_non_fermee' => 'dernyé baliz lé pa fermé :',
214
+    'erreur_texte' => 'kanard(s)',
215 215
 
216
-	// F
217
-	'fichier_introuvable' => 'Fisyé-la @fichier@ ni pa kav trouv ali', # MODIF
218
-	'form_deja_inscrit' => 'Ou lé déza inskri.',
219
-	'form_email_non_valide' => 'Out ladrès imèl la pa marsé.',
220
-	'form_forum_access_refuse' => 'Ou néna plid drwa pou akost dann sitwèb-la.',
221
-	'form_forum_bonjour' => 'Oté @nom@,,',
222
-	'form_forum_email_deja_enregistre' => 'Ladrès imèl-la lé déza anrozistré : ou  pé anserv modpas sa-minm sak nana labitid.',
223
-	'form_forum_identifiant_mail' => 'Inn nouvo kod-lidentité la finn dèt anvwayé dann out kazimèl.',
224
-	'form_forum_identifiants' => 'Out bann kod-lidantité',
225
-	'form_forum_indiquer_nom_email' => 'Mèt isi out non èk ladrès imèl. out kod-lidantité li sava ariv talèr dann out kazimèl.',
226
-	'form_forum_login' => 'Nondkod :',
227
-	'form_forum_message_auto' => '(sa lé inn modékri otomatik)',
228
-	'form_forum_pass' => 'modpas :',
229
-	'form_forum_probleme_mail' => 'Astèr, nana inn larlik èk out imèl : lo kod-lidantité i giny pa èt anvwayé.',
230
-	'form_forum_voici1' => 'Ala out bann kod-lidantité pou mèt ansanm ek vi lo sit"@nom_site_spip@" (@adresse_site@) :',
231
-	'form_forum_voici2' => 'Ala out bann kod-lidantité pou ou i propoz bann zartik si lo sitwèb "@nom_site_spip@" (@adresse_login@) :',
232
-	'form_indiquer_email' => 'Mersi inskri out ladrès imèl.',
233
-	'form_indiquer_nom' => 'Mersi mèt isi out non.',
234
-	'form_indiquer_nom_site' => 'Mersi mèt isi lo non out sitwèb.',
235
-	'form_pet_deja_enregistre' => 'Sitwèb-la lé déza anrozistré',
236
-	'form_pet_signature_pasprise' => 'Lé pa posib antyen pa out sinyatir.',
237
-	'form_prop_confirmer_envoi' => 'Konfirm lanvwa',
238
-	'form_prop_description' => 'Kosa i lé/arkont son lavi',
239
-	'form_prop_enregistre' => 'Out kontribusyon lé byen arivé. Li sra disponib an liyn apré lakonfirmasyon inndé responsab lo sit.',
240
-	'form_prop_envoyer' => 'Anvwa inn modékri',
241
-	'form_prop_indiquer_email' => 'Mersi mèt inn ladrès imèl sak i mars',
242
-	'form_prop_indiquer_nom_site' => 'Mersi mèt tèrla lo non lo sitwèb',
243
-	'form_prop_indiquer_sujet' => 'Mersi indik inn sizé',
244
-	'form_prop_message_envoye' => 'Out modékri la finn dèt anvwayé',
245
-	'form_prop_non_enregistre' => 'Out kontribusyion lé pa anrozistré',
246
-	'form_prop_sujet' => 'Sizé',
247
-	'form_prop_url_site' => 'Ladrès (URL) lo sitwèb', # MODIF
248
-	'forum_non_inscrit' => 'Ou lé pa inskri, kiswa out ladrès, kiswa out modpas nana kanardé.',
249
-	'forum_par_auteur' => 'sanm @auteur@',
250
-	'forum_titre_erreur' => 'Kanard...',
216
+    // F
217
+    'fichier_introuvable' => 'Fisyé-la @fichier@ ni pa kav trouv ali', # MODIF
218
+    'form_deja_inscrit' => 'Ou lé déza inskri.',
219
+    'form_email_non_valide' => 'Out ladrès imèl la pa marsé.',
220
+    'form_forum_access_refuse' => 'Ou néna plid drwa pou akost dann sitwèb-la.',
221
+    'form_forum_bonjour' => 'Oté @nom@,,',
222
+    'form_forum_email_deja_enregistre' => 'Ladrès imèl-la lé déza anrozistré : ou  pé anserv modpas sa-minm sak nana labitid.',
223
+    'form_forum_identifiant_mail' => 'Inn nouvo kod-lidentité la finn dèt anvwayé dann out kazimèl.',
224
+    'form_forum_identifiants' => 'Out bann kod-lidantité',
225
+    'form_forum_indiquer_nom_email' => 'Mèt isi out non èk ladrès imèl. out kod-lidantité li sava ariv talèr dann out kazimèl.',
226
+    'form_forum_login' => 'Nondkod :',
227
+    'form_forum_message_auto' => '(sa lé inn modékri otomatik)',
228
+    'form_forum_pass' => 'modpas :',
229
+    'form_forum_probleme_mail' => 'Astèr, nana inn larlik èk out imèl : lo kod-lidantité i giny pa èt anvwayé.',
230
+    'form_forum_voici1' => 'Ala out bann kod-lidantité pou mèt ansanm ek vi lo sit"@nom_site_spip@" (@adresse_site@) :',
231
+    'form_forum_voici2' => 'Ala out bann kod-lidantité pou ou i propoz bann zartik si lo sitwèb "@nom_site_spip@" (@adresse_login@) :',
232
+    'form_indiquer_email' => 'Mersi inskri out ladrès imèl.',
233
+    'form_indiquer_nom' => 'Mersi mèt isi out non.',
234
+    'form_indiquer_nom_site' => 'Mersi mèt isi lo non out sitwèb.',
235
+    'form_pet_deja_enregistre' => 'Sitwèb-la lé déza anrozistré',
236
+    'form_pet_signature_pasprise' => 'Lé pa posib antyen pa out sinyatir.',
237
+    'form_prop_confirmer_envoi' => 'Konfirm lanvwa',
238
+    'form_prop_description' => 'Kosa i lé/arkont son lavi',
239
+    'form_prop_enregistre' => 'Out kontribusyon lé byen arivé. Li sra disponib an liyn apré lakonfirmasyon inndé responsab lo sit.',
240
+    'form_prop_envoyer' => 'Anvwa inn modékri',
241
+    'form_prop_indiquer_email' => 'Mersi mèt inn ladrès imèl sak i mars',
242
+    'form_prop_indiquer_nom_site' => 'Mersi mèt tèrla lo non lo sitwèb',
243
+    'form_prop_indiquer_sujet' => 'Mersi indik inn sizé',
244
+    'form_prop_message_envoye' => 'Out modékri la finn dèt anvwayé',
245
+    'form_prop_non_enregistre' => 'Out kontribusyion lé pa anrozistré',
246
+    'form_prop_sujet' => 'Sizé',
247
+    'form_prop_url_site' => 'Ladrès (URL) lo sitwèb', # MODIF
248
+    'forum_non_inscrit' => 'Ou lé pa inskri, kiswa out ladrès, kiswa out modpas nana kanardé.',
249
+    'forum_par_auteur' => 'sanm @auteur@',
250
+    'forum_titre_erreur' => 'Kanard...',
251 251
 
252
-	// I
253
-	'ical_texte_rss_articles' => 'Lo fisyé « backend » pou bann zartik lo sit-la, zot i va trouv ali si ladrès-la :',
254
-	'ical_texte_rss_articles2' => 'Ou pé osi giny bann fisyé « backend » pou tout bann zartik andan ban ribrik si lo sit-la :',
255
-	'ical_texte_rss_breves' => 'Néna in ot fisyé pou bann tite-nouvèl i sort andan lo sit. Si ou présiz lo niméro laribrik-la, i sava giny sèlman bann tite-nouvèl néna anda lo ribrik-la.',
256
-	'icone_a_suivre' => 'Pou swiv',
257
-	'icone_admin_site' => 'Kolonaz lo sitwèb',
258
-	'icone_agenda' => 'Lajinda',
259
-	'icone_aide_ligne' => 'Koudmin-wèb',
260
-	'icone_articles' => 'Bann zartik',
261
-	'icone_auteurs' => 'Bann lotèr',
262
-	'icone_brouteur' => 'Bat-karé dégazé',
263
-	'icone_configuration_site' => 'Konfigir lo sit',
264
-	'icone_configurer_site' => 'Konfigir out sitwèb',
265
-	'icone_creer_nouvel_auteur' => 'Kré in nouvo lotèr ',
266
-	'icone_creer_rubrique' => 'Kré inn rubrik',
267
-	'icone_creer_sous_rubrique' => 'Kré inn sourubrik ',
268
-	'icone_deconnecter' => 'Défalk',
269
-	'icone_discussions' => 'Bann kozman',
270
-	'icone_doc_rubrique' => 'Bann dokiman dann bann rubrik',
271
-	'icone_ecrire_article' => 'Ékri inn nouvo lartik',
272
-	'icone_edition_site' => 'Lédisyon lo sitwèb',
273
-	'icone_gestion_langues' => 'Po zéré bann lang',
274
-	'icone_informations_personnelles' => 'Ladi Lafé',
275
-	'icone_interface_complet' => 'Lintèrfas konplé',
276
-	'icone_interface_simple' => 'Lintèrfas sinp',
277
-	'icone_maintenance_site' => 'Lantrotyen lo sitwèb',
278
-	'icone_messagerie_personnelle' => 'Out kazmodékri',
279
-	'icone_repartition_debut' => 'Armontr kouk sa lé partazé dopi lorizin',
280
-	'icone_rubriques' => 'Bann rubrik',
281
-	'icone_sauver_site' => 'Sovgard lo sitwèb',
282
-	'icone_site_entier' => 'Tout sitwèb sa minm',
283
-	'icone_sites_references' => 'Inndé sitwèb référansé',
284
-	'icone_statistiques' => 'Bann sifklé lo sitwèb',
285
-	'icone_suivi_activite' => 'Po swiv lo vi lo sit',
286
-	'icone_suivi_actualite' => 'Lévolisyon lo sit',
287
-	'icone_suivi_pettions' => 'Swiv/aranz filsinyatir',
288
-	'icone_suivi_revisions' => 'Bann sanzman do bann zartik',
289
-	'icone_supprimer_document' => 'Dégrèn dokiman-la',
290
-	'icone_supprimer_image' => 'Dégrèn limaz-la',
291
-	'icone_tous_articles' => 'Tout bann zartik aou',
292
-	'icone_tous_auteur' => 'Tout bann lotèr',
293
-	'icone_visiter_site' => 'Bat-karé ', # MODIF
294
-	'icone_voir_en_ligne' => 'Vwar an liyn',
295
-	'img_indisponible' => 'zimaj-la lé pa posib giny ali',
296
-	'impossible' => 'pa posib',
297
-	'info_a_suivre' => 'POU SWIV »',
298
-	'info_acces_interdit' => 'Ou néna pwinn permisyon akost lapazwèb-la.',
299
-	'info_acces_refuse' => 'Lakostaz lapazwèb lé afronté',
300
-	'info_action' => 'Azisman : @action@',
301
-	'info_administrer_rubriques' => 'Ou pé zèr larubrik-la èk son bann sourubrik',
302
-	'info_adresse_non_indiquee' => 'Ou néna pwin mi ladrès sak i vé test astèr !',
303
-	'info_aide' => 'KOUDMIN :',
304
-	'info_ajouter_mot' => 'Azout lo mo',
305
-	'info_annonce' => 'ZANONS',
306
-	'info_annonces_generales' => 'Zanons a tout moun :',
307
-	'info_article_propose' => 'Lartik lé propozé',
308
-	'info_article_publie' => 'Lartik lé publiyé',
309
-	'info_article_redaction' => 'Lartik antrin lékritir ',
310
-	'info_article_refuse' => 'Lartik lé afronté',
311
-	'info_article_supprime' => 'Lartik lé dégréné',
312
-	'info_articles' => 'Bann zartik',
313
-	'info_articles_a_valider' => 'Bann zartik pou konfirmé',
314
-	'info_articles_proposes' => 'Bann zartik sak lé propozé',
315
-	'info_auteurs_nombre' => '(bann) lotèr :',
316
-	'info_authentification_ftp' => 'Lotantificasyon (èk FTP).',
317
-	'info_breves_2' => 'bann tit-nouvèl',
318
-	'info_connexion_refusee' => 'Lakostaz lé arfizé',
319
-	'info_contact_developpeur' => 'Mersi kontak inn dévlopèr.',
320
-	'info_contenance' => 'Dann sit-la nana :',
321
-	'info_contribution' => 'bann kontribusyon dann forom', # MODIF
322
-	'info_copyright' => '@spip@ lé inn lozisyel lib sak lé doné @lien_gpl@.',
323
-	'info_copyright_doc' => 'Pou plid zinformasyon anon vizit lo sit <a href="@spipnet@">http://www.spip.net/cpf</a>.', # MODIF
324
-	'info_copyright_gpl' => 'sou lisans GPL',
325
-	'info_cours_edition' => 'Out bann zartik lé apré lédisyon', # MODIF
326
-	'info_creer_repertoire' => 'Mersi kré inn fisyé o inn répertwar èk non-la :',
327
-	'info_creer_repertoire_2' => 'andann lo sou-répertwar <b>@repertoire@</b>, é aprè :',
328
-	'info_creer_vignette' => 'pou kréy inn tite-limaz otomatikman',
329
-	'info_deplier' => 'Dépliy',
330
-	'info_descriptif_nombre' => 'Bann zafèr sak i kontyin :',
331
-	'info_description' => 'Kosa ou va trouv isi :',
332
-	'info_description_2' => 'Kosa ou va trouv isi :',
333
-	'info_dimension' => 'Dimansyon :',
334
-	'info_ecire_message_prive' => 'Pou kré inn modékri privé',
335
-	'info_email_invalide' => 'Out ladrès imèl lé pa bon.',
336
-	'info_en_cours_validation' => 'Out bann zartik-la lé apré lékritir',
337
-	'info_en_ligne' => 'An liyn astèr :',
338
-	'info_envoyer_message_prive' => 'Anvwa inn modékri privé pou lotèr-la',
339
-	'info_erreur_requete' => 'Kanard dann rokèt-la :',
340
-	'info_erreur_squelette2' => 'Néna pa okin léskélèt <b>@fichier@</b> sat lé disponib...',
341
-	'info_erreur_systeme' => 'Kanar sistèm (errno @errsys@)',
342
-	'info_erreur_systeme2' => 'Lo diksodir li sré byin po èt komplètman ragoulé o labazdodné lé gaté<br />
252
+    // I
253
+    'ical_texte_rss_articles' => 'Lo fisyé « backend » pou bann zartik lo sit-la, zot i va trouv ali si ladrès-la :',
254
+    'ical_texte_rss_articles2' => 'Ou pé osi giny bann fisyé « backend » pou tout bann zartik andan ban ribrik si lo sit-la :',
255
+    'ical_texte_rss_breves' => 'Néna in ot fisyé pou bann tite-nouvèl i sort andan lo sit. Si ou présiz lo niméro laribrik-la, i sava giny sèlman bann tite-nouvèl néna anda lo ribrik-la.',
256
+    'icone_a_suivre' => 'Pou swiv',
257
+    'icone_admin_site' => 'Kolonaz lo sitwèb',
258
+    'icone_agenda' => 'Lajinda',
259
+    'icone_aide_ligne' => 'Koudmin-wèb',
260
+    'icone_articles' => 'Bann zartik',
261
+    'icone_auteurs' => 'Bann lotèr',
262
+    'icone_brouteur' => 'Bat-karé dégazé',
263
+    'icone_configuration_site' => 'Konfigir lo sit',
264
+    'icone_configurer_site' => 'Konfigir out sitwèb',
265
+    'icone_creer_nouvel_auteur' => 'Kré in nouvo lotèr ',
266
+    'icone_creer_rubrique' => 'Kré inn rubrik',
267
+    'icone_creer_sous_rubrique' => 'Kré inn sourubrik ',
268
+    'icone_deconnecter' => 'Défalk',
269
+    'icone_discussions' => 'Bann kozman',
270
+    'icone_doc_rubrique' => 'Bann dokiman dann bann rubrik',
271
+    'icone_ecrire_article' => 'Ékri inn nouvo lartik',
272
+    'icone_edition_site' => 'Lédisyon lo sitwèb',
273
+    'icone_gestion_langues' => 'Po zéré bann lang',
274
+    'icone_informations_personnelles' => 'Ladi Lafé',
275
+    'icone_interface_complet' => 'Lintèrfas konplé',
276
+    'icone_interface_simple' => 'Lintèrfas sinp',
277
+    'icone_maintenance_site' => 'Lantrotyen lo sitwèb',
278
+    'icone_messagerie_personnelle' => 'Out kazmodékri',
279
+    'icone_repartition_debut' => 'Armontr kouk sa lé partazé dopi lorizin',
280
+    'icone_rubriques' => 'Bann rubrik',
281
+    'icone_sauver_site' => 'Sovgard lo sitwèb',
282
+    'icone_site_entier' => 'Tout sitwèb sa minm',
283
+    'icone_sites_references' => 'Inndé sitwèb référansé',
284
+    'icone_statistiques' => 'Bann sifklé lo sitwèb',
285
+    'icone_suivi_activite' => 'Po swiv lo vi lo sit',
286
+    'icone_suivi_actualite' => 'Lévolisyon lo sit',
287
+    'icone_suivi_pettions' => 'Swiv/aranz filsinyatir',
288
+    'icone_suivi_revisions' => 'Bann sanzman do bann zartik',
289
+    'icone_supprimer_document' => 'Dégrèn dokiman-la',
290
+    'icone_supprimer_image' => 'Dégrèn limaz-la',
291
+    'icone_tous_articles' => 'Tout bann zartik aou',
292
+    'icone_tous_auteur' => 'Tout bann lotèr',
293
+    'icone_visiter_site' => 'Bat-karé ', # MODIF
294
+    'icone_voir_en_ligne' => 'Vwar an liyn',
295
+    'img_indisponible' => 'zimaj-la lé pa posib giny ali',
296
+    'impossible' => 'pa posib',
297
+    'info_a_suivre' => 'POU SWIV »',
298
+    'info_acces_interdit' => 'Ou néna pwinn permisyon akost lapazwèb-la.',
299
+    'info_acces_refuse' => 'Lakostaz lapazwèb lé afronté',
300
+    'info_action' => 'Azisman : @action@',
301
+    'info_administrer_rubriques' => 'Ou pé zèr larubrik-la èk son bann sourubrik',
302
+    'info_adresse_non_indiquee' => 'Ou néna pwin mi ladrès sak i vé test astèr !',
303
+    'info_aide' => 'KOUDMIN :',
304
+    'info_ajouter_mot' => 'Azout lo mo',
305
+    'info_annonce' => 'ZANONS',
306
+    'info_annonces_generales' => 'Zanons a tout moun :',
307
+    'info_article_propose' => 'Lartik lé propozé',
308
+    'info_article_publie' => 'Lartik lé publiyé',
309
+    'info_article_redaction' => 'Lartik antrin lékritir ',
310
+    'info_article_refuse' => 'Lartik lé afronté',
311
+    'info_article_supprime' => 'Lartik lé dégréné',
312
+    'info_articles' => 'Bann zartik',
313
+    'info_articles_a_valider' => 'Bann zartik pou konfirmé',
314
+    'info_articles_proposes' => 'Bann zartik sak lé propozé',
315
+    'info_auteurs_nombre' => '(bann) lotèr :',
316
+    'info_authentification_ftp' => 'Lotantificasyon (èk FTP).',
317
+    'info_breves_2' => 'bann tit-nouvèl',
318
+    'info_connexion_refusee' => 'Lakostaz lé arfizé',
319
+    'info_contact_developpeur' => 'Mersi kontak inn dévlopèr.',
320
+    'info_contenance' => 'Dann sit-la nana :',
321
+    'info_contribution' => 'bann kontribusyon dann forom', # MODIF
322
+    'info_copyright' => '@spip@ lé inn lozisyel lib sak lé doné @lien_gpl@.',
323
+    'info_copyright_doc' => 'Pou plid zinformasyon anon vizit lo sit <a href="@spipnet@">http://www.spip.net/cpf</a>.', # MODIF
324
+    'info_copyright_gpl' => 'sou lisans GPL',
325
+    'info_cours_edition' => 'Out bann zartik lé apré lédisyon', # MODIF
326
+    'info_creer_repertoire' => 'Mersi kré inn fisyé o inn répertwar èk non-la :',
327
+    'info_creer_repertoire_2' => 'andann lo sou-répertwar <b>@repertoire@</b>, é aprè :',
328
+    'info_creer_vignette' => 'pou kréy inn tite-limaz otomatikman',
329
+    'info_deplier' => 'Dépliy',
330
+    'info_descriptif_nombre' => 'Bann zafèr sak i kontyin :',
331
+    'info_description' => 'Kosa ou va trouv isi :',
332
+    'info_description_2' => 'Kosa ou va trouv isi :',
333
+    'info_dimension' => 'Dimansyon :',
334
+    'info_ecire_message_prive' => 'Pou kré inn modékri privé',
335
+    'info_email_invalide' => 'Out ladrès imèl lé pa bon.',
336
+    'info_en_cours_validation' => 'Out bann zartik-la lé apré lékritir',
337
+    'info_en_ligne' => 'An liyn astèr :',
338
+    'info_envoyer_message_prive' => 'Anvwa inn modékri privé pou lotèr-la',
339
+    'info_erreur_requete' => 'Kanard dann rokèt-la :',
340
+    'info_erreur_squelette2' => 'Néna pa okin léskélèt <b>@fichier@</b> sat lé disponib...',
341
+    'info_erreur_systeme' => 'Kanar sistèm (errno @errsys@)',
342
+    'info_erreur_systeme2' => 'Lo diksodir li sré byin po èt komplètman ragoulé o labazdodné lé gaté<br />
343 343
 <span style="color:red;">Anon esayé <a href=\'@script@\'>aranzé labaz</a>, ou kontakté out lébèrzèr.</span>', # MODIF
344
-	'info_fini' => 'Astèr sa lè fini !',
345
-	'info_format_image' => 'Bann tay-zimaz ou pé itilizé pou kré out bann vinyèt : @gd_formats@.',
346
-	'info_format_non_defini' => 'forma-la lé pa kadré',
347
-	'info_grand_ecran' => 'Gran lékran',
348
-	'info_image_aide' => 'KOUDMIN',
349
-	'info_image_process_titre' => 'Koman ou pé kré bann tit-zimaz',
350
-	'info_impossible_lire_page' => '<b>Kanard !</b> Lé inposib lir pazwèb-la <tt><html>@test_proxy@</html></tt> èk lo proksi <tt>', # MODIF
351
-	'info_installation_systeme_publication' => 'Pou fé zwé (instal) lo sistèm lapiblikasyon...',
352
-	'info_installer_documents' => 'Ou pé fè zwé otomatikman tout bann dokiman sak lé prézan dann fisyé @upload@.',
353
-	'info_installer_ftp' => 'Kom komandèr, ou pé instal (èk FTP) bann fisyé dann dosyé @upload@ pou answuit swazi banna tèrla dirèkman.',
354
-	'info_installer_images' => 'Ou pé fèr zwé bann zimaz èk lo forma JPEG, GIF é minm PNG.',
355
-	'info_installer_images_dossier' => 'Instal bann zimaz dann dosyé @upload@ pou swazi azot answit, tèrla dirèkman.',
356
-	'info_interface_complete' => 'Lintèrfas konplé',
357
-	'info_interface_simple' => 'Lintèrfas sinp',
358
-	'info_joindre_document_article' => 'Dann zartik-la, ou pé zwinn inndé dokiman kom',
359
-	'info_joindre_document_rubrique' => 'Dann rubrik-la ou pé azout inndé dokiman kom',
360
-	'info_joindre_documents_article' => 'Dann out zartik ou pé zwinn inndé dokiman kom :',
361
-	'info_l_article' => 'lartik',
362
-	'info_la_breve' => 'la tit-nouvèl',
363
-	'info_la_rubrique' => 'rubrik',
364
-	'info_langue_principale' => 'Lang prinsipal lo sitwèb',
365
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bann piksèl',
366
-	'info_les_auteurs_1' => 'èk @les_auteurs@',
367
-	'info_logo_format_interdit' => 'Lé posib mèt sèlman bann logo dann bann forma @formats@.',
368
-	'info_logo_max_poids' => 'Fok out bann logo nena in pwa andsou @maxi@ (fichyé la li fé @actuel@).',
369
-	'info_mail_fournisseur' => 'out@fournisèr.com',
370
-	'info_message_2' => 'MODEKRI',
371
-	'info_message_supprime' => 'MODÉKRI SUPRIMÉ',
372
-	'info_mise_en_ligne' => 'Dat pou mèt an liyn :',
373
-	'info_modification_parametres_securite' => 'bann sanzman bann paramèt lasékirité',
374
-	'info_mois_courant' => 'Dann kouran lo mwa :',
375
-	'info_mot_cle_ajoute' => 'Molaklé-la la finn dèt azouté dann',
376
-	'info_multi_herit' => 'Lang laribrik anlèr',
377
-	'info_multi_langues_soulignees' => 'Bann <u>lang soulinyé </u> lé sat néna in traidksyonkomplé po tout bann tèks lintérfas SPIP. Si ou swazi bann lang-la, néna in bon péd zéléman lo sit piblik (ladat, bann formilèr) sak i aparé tradwi otomatikman. Ek tout bann lang sat lé pa soulinyé, bann zéléamn-la i aparé samn lo lang prinsipal lo sit.', # MODIF
378
-	'info_multilinguisme' => 'Miltilingwis',
379
-	'info_nom_non_utilisateurs_connectes' => 'Out non lé pa visib dann fil bann zitilizatèr an liyn.',
380
-	'info_nom_utilisateurs_connectes' => 'Out non lé vizib dann list bann zitilizatèr an liyn.',
381
-	'info_nombre_en_ligne' => 'Astèr lé an liyn :',
382
-	'info_non_resultat' => 'Nana pwinn rézilta pou "@cherche_mot@"',
383
-	'info_non_utilisation_messagerie' => 'Astèr i ansèrv pa lakazmodékri lo sitwèb.',
384
-	'info_nouveau_message' => 'OU NA INN NOUVO MODÉKRI',
385
-	'info_nouveaux_messages' => 'OU NÈNA @total_messages@ BANN MODÉKRI',
386
-	'info_numero_abbreviation' => 'N° ',
387
-	'info_pense_bete' => 'GARDANTÈT',
388
-	'info_petit_ecran' => 'Tit ékran',
389
-	'info_pixels' => 'bann piksèl',
390
-	'info_plusieurs_mots_trouves' => 'Nana plizièr bann molaklé pou "@cherche_mot@" :',
391
-	'info_portfolio_automatique' => 'Livzimaz otomatik :',
392
-	'info_premier_resultat' => '[@debut_limit@ bann promyé rézilta si @total@]',
393
-	'info_premier_resultat_sur' => '[@debut_limit@ bann promyé rézilta si @total@]',
394
-	'info_propose_1' => '[@nom_site_spip@] i propoz aou : @titre@',
395
-	'info_propose_2' => 'Lartik-la lé propozé
344
+    'info_fini' => 'Astèr sa lè fini !',
345
+    'info_format_image' => 'Bann tay-zimaz ou pé itilizé pou kré out bann vinyèt : @gd_formats@.',
346
+    'info_format_non_defini' => 'forma-la lé pa kadré',
347
+    'info_grand_ecran' => 'Gran lékran',
348
+    'info_image_aide' => 'KOUDMIN',
349
+    'info_image_process_titre' => 'Koman ou pé kré bann tit-zimaz',
350
+    'info_impossible_lire_page' => '<b>Kanard !</b> Lé inposib lir pazwèb-la <tt><html>@test_proxy@</html></tt> èk lo proksi <tt>', # MODIF
351
+    'info_installation_systeme_publication' => 'Pou fé zwé (instal) lo sistèm lapiblikasyon...',
352
+    'info_installer_documents' => 'Ou pé fè zwé otomatikman tout bann dokiman sak lé prézan dann fisyé @upload@.',
353
+    'info_installer_ftp' => 'Kom komandèr, ou pé instal (èk FTP) bann fisyé dann dosyé @upload@ pou answuit swazi banna tèrla dirèkman.',
354
+    'info_installer_images' => 'Ou pé fèr zwé bann zimaz èk lo forma JPEG, GIF é minm PNG.',
355
+    'info_installer_images_dossier' => 'Instal bann zimaz dann dosyé @upload@ pou swazi azot answit, tèrla dirèkman.',
356
+    'info_interface_complete' => 'Lintèrfas konplé',
357
+    'info_interface_simple' => 'Lintèrfas sinp',
358
+    'info_joindre_document_article' => 'Dann zartik-la, ou pé zwinn inndé dokiman kom',
359
+    'info_joindre_document_rubrique' => 'Dann rubrik-la ou pé azout inndé dokiman kom',
360
+    'info_joindre_documents_article' => 'Dann out zartik ou pé zwinn inndé dokiman kom :',
361
+    'info_l_article' => 'lartik',
362
+    'info_la_breve' => 'la tit-nouvèl',
363
+    'info_la_rubrique' => 'rubrik',
364
+    'info_langue_principale' => 'Lang prinsipal lo sitwèb',
365
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bann piksèl',
366
+    'info_les_auteurs_1' => 'èk @les_auteurs@',
367
+    'info_logo_format_interdit' => 'Lé posib mèt sèlman bann logo dann bann forma @formats@.',
368
+    'info_logo_max_poids' => 'Fok out bann logo nena in pwa andsou @maxi@ (fichyé la li fé @actuel@).',
369
+    'info_mail_fournisseur' => 'out@fournisèr.com',
370
+    'info_message_2' => 'MODEKRI',
371
+    'info_message_supprime' => 'MODÉKRI SUPRIMÉ',
372
+    'info_mise_en_ligne' => 'Dat pou mèt an liyn :',
373
+    'info_modification_parametres_securite' => 'bann sanzman bann paramèt lasékirité',
374
+    'info_mois_courant' => 'Dann kouran lo mwa :',
375
+    'info_mot_cle_ajoute' => 'Molaklé-la la finn dèt azouté dann',
376
+    'info_multi_herit' => 'Lang laribrik anlèr',
377
+    'info_multi_langues_soulignees' => 'Bann <u>lang soulinyé </u> lé sat néna in traidksyonkomplé po tout bann tèks lintérfas SPIP. Si ou swazi bann lang-la, néna in bon péd zéléman lo sit piblik (ladat, bann formilèr) sak i aparé tradwi otomatikman. Ek tout bann lang sat lé pa soulinyé, bann zéléamn-la i aparé samn lo lang prinsipal lo sit.', # MODIF
378
+    'info_multilinguisme' => 'Miltilingwis',
379
+    'info_nom_non_utilisateurs_connectes' => 'Out non lé pa visib dann fil bann zitilizatèr an liyn.',
380
+    'info_nom_utilisateurs_connectes' => 'Out non lé vizib dann list bann zitilizatèr an liyn.',
381
+    'info_nombre_en_ligne' => 'Astèr lé an liyn :',
382
+    'info_non_resultat' => 'Nana pwinn rézilta pou "@cherche_mot@"',
383
+    'info_non_utilisation_messagerie' => 'Astèr i ansèrv pa lakazmodékri lo sitwèb.',
384
+    'info_nouveau_message' => 'OU NA INN NOUVO MODÉKRI',
385
+    'info_nouveaux_messages' => 'OU NÈNA @total_messages@ BANN MODÉKRI',
386
+    'info_numero_abbreviation' => 'N° ',
387
+    'info_pense_bete' => 'GARDANTÈT',
388
+    'info_petit_ecran' => 'Tit ékran',
389
+    'info_pixels' => 'bann piksèl',
390
+    'info_plusieurs_mots_trouves' => 'Nana plizièr bann molaklé pou "@cherche_mot@" :',
391
+    'info_portfolio_automatique' => 'Livzimaz otomatik :',
392
+    'info_premier_resultat' => '[@debut_limit@ bann promyé rézilta si @total@]',
393
+    'info_premier_resultat_sur' => '[@debut_limit@ bann promyé rézilta si @total@]',
394
+    'info_propose_1' => '[@nom_site_spip@] i propoz aou : @titre@',
395
+    'info_propose_2' => 'Lartik-la lé propozé
396 396
 ---------------',
397
-	'info_propose_3' => 'Lartik-la, "@titre@", lé propozé pou lapiblikasyon.',
398
-	'info_propose_4' => 'Anon zot lir ali è donn zot manyèr dvwar',
399
-	'info_propose_5' => 'dann forom sak i bord ali. Ou va trouv ali si ladrès-la :',
400
-	'info_publie_01' => 'Lartik "@titre@" la finn dèt konfirmé sanm @connect_nom@.',
401
-	'info_publie_1' => '[@nom_site_spip@] I PUBLIY : @titre@',
402
-	'info_publie_2' => 'Lartik-la lé pibliyé
397
+    'info_propose_3' => 'Lartik-la, "@titre@", lé propozé pou lapiblikasyon.',
398
+    'info_propose_4' => 'Anon zot lir ali è donn zot manyèr dvwar',
399
+    'info_propose_5' => 'dann forom sak i bord ali. Ou va trouv ali si ladrès-la :',
400
+    'info_publie_01' => 'Lartik "@titre@" la finn dèt konfirmé sanm @connect_nom@.',
401
+    'info_publie_1' => '[@nom_site_spip@] I PUBLIY : @titre@',
402
+    'info_publie_2' => 'Lartik-la lé pibliyé
403 403
 ---------',
404
-	'info_rechercher' => 'Rod',
405
-	'info_rechercher_02' => 'Rod :',
406
-	'info_remplacer_vignette' => 'Sanz lavinyèt sanswa kont out prop logo :',
407
-	'info_sans_titre_2' => 'néna pwinn titr',
408
-	'info_selectionner_fichier' => 'Ou i pé swazi in fisyé dann dosyé @upload@',
409
-	'info_selectionner_fichier_2' => 'Swazi inn fisyé :',
410
-	'info_supprimer_vignette' => 'dégrèn vinyèt-la',
411
-	'info_symbole_bleu' => 'Lo sinbol <b>blé</b> li mark <b>inn gardantèt</b> : inn modékri pour out prop lisaz.', # MODIF
412
-	'info_symbole_jaune' => 'Lo sinbol <b>zon</b> li mark <b>inn zanons pou tout bann lotèr</b> : banna i pé vwar ali an liyn ; bann komandèr i pé sanz ali.', # MODIF
413
-	'info_symbole_vert' => 'Lo sinbol <b>vèr</b> i mark <b>bann modékri èk dot bann zitilizatèr</b> lo sitwèb.', # MODIF
414
-	'info_telecharger_nouveau_logo' => 'Télésarz inn nouvo logo :',
415
-	'info_telecharger_ordinateur' => 'Télésarz dopwi out prop lordinatèr :',
416
-	'info_tous_resultats_enregistres' => '[tout bann rézilta la finn dèt anroziztré]',
417
-	'info_tout_afficher' => 'Afis tout',
418
-	'info_travaux_texte' => 'Si lo sit-la lé pa konfigiré, arvyin inn pé pli tar...',
419
-	'info_travaux_titre' => 'Sit-la lé apré travay bèrlok  ou pètèt travay santyé...lé pa finn ankor astèr... ',
420
-	'info_trop_resultat' => 'Nana tro bann rézilta pou "@cherche_mot@" ; mersi kadr myé lo rodaz.',
421
-	'info_utilisation_messagerie_interne' => 'Ou ansèrv lakazmodékri lo sitwèb.',
422
-	'info_valider_lien' => 'konfirm gatir-la',
423
-	'info_verifier_image' => ', mersi gèt ankor out bann zimaz la finn dèt sarzé korèkman sir lo servèr.',
424
-	'info_vignette_defaut' => 'Vinyèt sanswa',
425
-	'info_vignette_personnalisee' => 'Out prop vinyèt',
426
-	'info_visite' => 'vizit :',
427
-	'info_vos_rendez_vous' => 'Out bann prosin randévou',
428
-	'infos_vos_pense_bete' => 'Out bann gardantèt', # MODIF
404
+    'info_rechercher' => 'Rod',
405
+    'info_rechercher_02' => 'Rod :',
406
+    'info_remplacer_vignette' => 'Sanz lavinyèt sanswa kont out prop logo :',
407
+    'info_sans_titre_2' => 'néna pwinn titr',
408
+    'info_selectionner_fichier' => 'Ou i pé swazi in fisyé dann dosyé @upload@',
409
+    'info_selectionner_fichier_2' => 'Swazi inn fisyé :',
410
+    'info_supprimer_vignette' => 'dégrèn vinyèt-la',
411
+    'info_symbole_bleu' => 'Lo sinbol <b>blé</b> li mark <b>inn gardantèt</b> : inn modékri pour out prop lisaz.', # MODIF
412
+    'info_symbole_jaune' => 'Lo sinbol <b>zon</b> li mark <b>inn zanons pou tout bann lotèr</b> : banna i pé vwar ali an liyn ; bann komandèr i pé sanz ali.', # MODIF
413
+    'info_symbole_vert' => 'Lo sinbol <b>vèr</b> i mark <b>bann modékri èk dot bann zitilizatèr</b> lo sitwèb.', # MODIF
414
+    'info_telecharger_nouveau_logo' => 'Télésarz inn nouvo logo :',
415
+    'info_telecharger_ordinateur' => 'Télésarz dopwi out prop lordinatèr :',
416
+    'info_tous_resultats_enregistres' => '[tout bann rézilta la finn dèt anroziztré]',
417
+    'info_tout_afficher' => 'Afis tout',
418
+    'info_travaux_texte' => 'Si lo sit-la lé pa konfigiré, arvyin inn pé pli tar...',
419
+    'info_travaux_titre' => 'Sit-la lé apré travay bèrlok  ou pètèt travay santyé...lé pa finn ankor astèr... ',
420
+    'info_trop_resultat' => 'Nana tro bann rézilta pou "@cherche_mot@" ; mersi kadr myé lo rodaz.',
421
+    'info_utilisation_messagerie_interne' => 'Ou ansèrv lakazmodékri lo sitwèb.',
422
+    'info_valider_lien' => 'konfirm gatir-la',
423
+    'info_verifier_image' => ', mersi gèt ankor out bann zimaz la finn dèt sarzé korèkman sir lo servèr.',
424
+    'info_vignette_defaut' => 'Vinyèt sanswa',
425
+    'info_vignette_personnalisee' => 'Out prop vinyèt',
426
+    'info_visite' => 'vizit :',
427
+    'info_vos_rendez_vous' => 'Out bann prosin randévou',
428
+    'infos_vos_pense_bete' => 'Out bann gardantèt', # MODIF
429 429
 
430
-	// L
431
-	'lien_afficher_icones_seuls' => 'Afis sèlman bann zikon',
432
-	'lien_afficher_texte_icones' => 'Afis bann zikon èk lo tèks',
433
-	'lien_afficher_texte_seul' => 'Afis sèlman lo tèks',
434
-	'lien_liberer' => 'Maronn',
435
-	'lien_liberer_tous' => 'maronn tout bann zartik-la', # MODIF
436
-	'lien_nouvea_pense_bete' => 'NOUVO GARDANTÈT',
437
-	'lien_nouveau_message' => 'NOUVO MODÉKRI',
438
-	'lien_nouvelle_annonce' => 'NOUVEL ZANONS',
439
-	'lien_petitions' => 'FILSINYATIR',
440
-	'lien_popularite' => 'Koman lé populèr : @popularite@%',
441
-	'lien_racine_site' => 'RASIN LO SITWÈB',
442
-	'lien_reessayer' => 'ésèy ankor',
443
-	'lien_repondre_message' => 'Réponn modékri-la',
444
-	'lien_supprimer' => 'dégrèn',
445
-	'lien_tout_afficher' => 'Afis tout',
446
-	'lien_visite_site' => 'vizit lo sit-la',
447
-	'lien_visites' => '@visites@ bann vizit',
448
-	'lien_voir_auteur' => 'Gèt lotèr-la',
449
-	'login_acces_prive' => 'laksé pou léspas privé',
450
-	'login_autre_identifiant' => 'Akost lo sit èk inn nouvèl nondkod',
451
-	'login_cookie_accepte' => 'Mersi règl a zot navigatèr pou li asèpt azot (mwindreman pou sitwèb-la).',
452
-	'login_cookie_oblige' => 'Pou inn lidantifikasyon sir si lo sit, ou dwa asépté bann gatomakro.',
453
-	'login_deconnexion_ok' => 'Out défalkaz la finn marsé.',
454
-	'login_erreur_pass' => 'Kanard èk lo modpas.',
455
-	'login_espace_prive' => 'Léspas privé',
456
-	'login_identifiant_inconnu' => 'Lo nondkod « @login@ » li lé pa konu.',
457
-	'login_login' => 'Nondkod :',
458
-	'login_login2' => 'Nondkod (lidantifian pou lakostaz lo sitwèb) :', # MODIF
459
-	'login_login_pass_incorrect' => '(Out nondkod ou modpas lé pa korèk.)',
460
-	'login_motpasseoublie' => 'Ou la oubliyé out modpas ?',
461
-	'login_non_securise' => 'Tansyon pangar, formulèr-la lé pa sékirizé.
430
+    // L
431
+    'lien_afficher_icones_seuls' => 'Afis sèlman bann zikon',
432
+    'lien_afficher_texte_icones' => 'Afis bann zikon èk lo tèks',
433
+    'lien_afficher_texte_seul' => 'Afis sèlman lo tèks',
434
+    'lien_liberer' => 'Maronn',
435
+    'lien_liberer_tous' => 'maronn tout bann zartik-la', # MODIF
436
+    'lien_nouvea_pense_bete' => 'NOUVO GARDANTÈT',
437
+    'lien_nouveau_message' => 'NOUVO MODÉKRI',
438
+    'lien_nouvelle_annonce' => 'NOUVEL ZANONS',
439
+    'lien_petitions' => 'FILSINYATIR',
440
+    'lien_popularite' => 'Koman lé populèr : @popularite@%',
441
+    'lien_racine_site' => 'RASIN LO SITWÈB',
442
+    'lien_reessayer' => 'ésèy ankor',
443
+    'lien_repondre_message' => 'Réponn modékri-la',
444
+    'lien_supprimer' => 'dégrèn',
445
+    'lien_tout_afficher' => 'Afis tout',
446
+    'lien_visite_site' => 'vizit lo sit-la',
447
+    'lien_visites' => '@visites@ bann vizit',
448
+    'lien_voir_auteur' => 'Gèt lotèr-la',
449
+    'login_acces_prive' => 'laksé pou léspas privé',
450
+    'login_autre_identifiant' => 'Akost lo sit èk inn nouvèl nondkod',
451
+    'login_cookie_accepte' => 'Mersi règl a zot navigatèr pou li asèpt azot (mwindreman pou sitwèb-la).',
452
+    'login_cookie_oblige' => 'Pou inn lidantifikasyon sir si lo sit, ou dwa asépté bann gatomakro.',
453
+    'login_deconnexion_ok' => 'Out défalkaz la finn marsé.',
454
+    'login_erreur_pass' => 'Kanard èk lo modpas.',
455
+    'login_espace_prive' => 'Léspas privé',
456
+    'login_identifiant_inconnu' => 'Lo nondkod « @login@ » li lé pa konu.',
457
+    'login_login' => 'Nondkod :',
458
+    'login_login2' => 'Nondkod (lidantifian pou lakostaz lo sitwèb) :', # MODIF
459
+    'login_login_pass_incorrect' => '(Out nondkod ou modpas lé pa korèk.)',
460
+    'login_motpasseoublie' => 'Ou la oubliyé out modpas ?',
461
+    'login_non_securise' => 'Tansyon pangar, formulèr-la lé pa sékirizé.
462 462
 Si ou vé pa person i atrap out modpass si lo rézo
463 463
 mersi fé zwé lo Javascript 
464 464
 dann out navigatèr é',
465
-	'login_nouvelle_tentative' => 'Nouvèl ésé',
466
-	'login_par_ici' => 'Ou lé anroziztré... dann kwin-la...',
467
-	'login_pass2' => 'Modpas :',
468
-	'login_preferez_refuser' => '<b>Si ou préfèr afront bann gatomakro</b>,nana inn ot sistèm lakostaz (mwin sir) sak ou pé anserv :',
469
-	'login_recharger' => 'rosarz pazwèb-la',
470
-	'login_rester_identifie' => 'Po inn lidantifikasyon i dir plisyèr zor', # MODIF
471
-	'login_retour_public' => 'Artourn sir figirwèb',
472
-	'login_retour_site' => 'Artourn sir figirwèb',
473
-	'login_retoursitepublic' => 'artourn sir figirwèb',
474
-	'login_sinscrire' => 'inskri aou', # MODIF
475
-	'login_test_navigateur' => 'test navigatèr/nouvo lakostaz',
476
-	'login_verifiez_navigateur' => '(Somansa gét byin out navigatèr la pa gardantèt out modpass...)',
465
+    'login_nouvelle_tentative' => 'Nouvèl ésé',
466
+    'login_par_ici' => 'Ou lé anroziztré... dann kwin-la...',
467
+    'login_pass2' => 'Modpas :',
468
+    'login_preferez_refuser' => '<b>Si ou préfèr afront bann gatomakro</b>,nana inn ot sistèm lakostaz (mwin sir) sak ou pé anserv :',
469
+    'login_recharger' => 'rosarz pazwèb-la',
470
+    'login_rester_identifie' => 'Po inn lidantifikasyon i dir plisyèr zor', # MODIF
471
+    'login_retour_public' => 'Artourn sir figirwèb',
472
+    'login_retour_site' => 'Artourn sir figirwèb',
473
+    'login_retoursitepublic' => 'artourn sir figirwèb',
474
+    'login_sinscrire' => 'inskri aou', # MODIF
475
+    'login_test_navigateur' => 'test navigatèr/nouvo lakostaz',
476
+    'login_verifiez_navigateur' => '(Somansa gét byin out navigatèr la pa gardantèt out modpass...)',
477 477
 
478
-	// M
479
-	'module_fichiers_langues' => 'Bann fisyé lang',
478
+    // M
479
+    'module_fichiers_langues' => 'Bann fisyé lang',
480 480
 
481
-	// N
482
-	'navigateur_pas_redirige' => 'Si out navigatèr lé pa rotourné, apiy tèrla pou kontinyé.',
481
+    // N
482
+    'navigateur_pas_redirige' => 'Si out navigatèr lé pa rotourné, apiy tèrla pou kontinyé.',
483 483
 
484
-	// O
485
-	'onglet_affacer_base' => 'Dégrèn labazdodné',
486
-	'onglet_auteur' => 'Lotèr',
487
-	'onglet_contenu_site' => 'Sak lo sit i kontyin',
488
-	'onglet_evolution_visite_mod' => 'Sanzman',
489
-	'onglet_fonctions_avances' => 'Bann fonksyon présiz',
490
-	'onglet_informations_personnelles' => 'Bann zinformasyon lotèr',
491
-	'onglet_interactivite' => 'Kozantrozot',
492
-	'onglet_messagerie' => 'Kazmodékri',
493
-	'onglet_repartition_rubrique' => 'Partaz sanm rubrik',
494
-	'onglet_save_restaur_base' => 'Sovgard/rosarz léta labaz',
495
-	'onglet_vider_cache' => 'Dévid lo kas',
484
+    // O
485
+    'onglet_affacer_base' => 'Dégrèn labazdodné',
486
+    'onglet_auteur' => 'Lotèr',
487
+    'onglet_contenu_site' => 'Sak lo sit i kontyin',
488
+    'onglet_evolution_visite_mod' => 'Sanzman',
489
+    'onglet_fonctions_avances' => 'Bann fonksyon présiz',
490
+    'onglet_informations_personnelles' => 'Bann zinformasyon lotèr',
491
+    'onglet_interactivite' => 'Kozantrozot',
492
+    'onglet_messagerie' => 'Kazmodékri',
493
+    'onglet_repartition_rubrique' => 'Partaz sanm rubrik',
494
+    'onglet_save_restaur_base' => 'Sovgard/rosarz léta labaz',
495
+    'onglet_vider_cache' => 'Dévid lo kas',
496 496
 
497
-	// P
498
-	'pass_choix_pass' => 'Mersi swazi out nouvo modpas :',
499
-	'pass_erreur' => 'Kanard',
500
-	'pass_erreur_acces_refuse' => '<b>Kanard :</b> out nana pli laksé sir lo sit-la.',
501
-	'pass_erreur_code_inconnu' => '<b>Kanard :</b> lo kod-la i korespon pa pou okin lotèr anroziztré si lo sit.',
502
-	'pass_erreur_non_enregistre' => '<b>Kanard :</b> ladrès-la <tt>@email_oubli@</tt> li lé pli anroziztré si lo sit-la.',
503
-	'pass_erreur_non_valide' => '<b>Kanard : /b> limèl-la <tt>@email_oubli@</tt> lé pa bon !',
504
-	'pass_erreur_probleme_technique' => '<b>Kanard :</b> akoz inn larlik tèknik, lé pa posib astèr anvwayé limèl-la.',
505
-	'pass_espace_prive_bla' => 'Léspas privé lo sit-la lé ouvèr pou tout
497
+    // P
498
+    'pass_choix_pass' => 'Mersi swazi out nouvo modpas :',
499
+    'pass_erreur' => 'Kanard',
500
+    'pass_erreur_acces_refuse' => '<b>Kanard :</b> out nana pli laksé sir lo sit-la.',
501
+    'pass_erreur_code_inconnu' => '<b>Kanard :</b> lo kod-la i korespon pa pou okin lotèr anroziztré si lo sit.',
502
+    'pass_erreur_non_enregistre' => '<b>Kanard :</b> ladrès-la <tt>@email_oubli@</tt> li lé pli anroziztré si lo sit-la.',
503
+    'pass_erreur_non_valide' => '<b>Kanard : /b> limèl-la <tt>@email_oubli@</tt> lé pa bon !',
504
+    'pass_erreur_probleme_technique' => '<b>Kanard :</b> akoz inn larlik tèknik, lé pa posib astèr anvwayé limèl-la.',
505
+    'pass_espace_prive_bla' => 'Léspas privé lo sit-la lé ouvèr pou tout
506 506
 bann vizitèr, aprè linskrisyon. Kank ou lé anroziztré,
507 507
 i pé konsilt oubyinsa propoz bann zartik.I pé osi
508 508
 mèt ansanm èk bann dalon dan tout bann forom.',
509
-	'pass_forum_bla' => 'Ou la domand mèt out grindsèl dann forom
509
+    'pass_forum_bla' => 'Ou la domand mèt out grindsèl dann forom
510 510
 sak lé rézèrvé pou bann vizitèr anrozistré.',
511
-	'pass_indiquez_cidessous' => 'Mèt isi ladrès imèl ou la déza anservi pou anroziztr aou. Aprésa, ou sava
511
+    'pass_indiquez_cidessous' => 'Mèt isi ladrès imèl ou la déza anservi pou anroziztr aou. Aprésa, ou sava
512 512
 giny inn limèl : li indik aou lamanyir pou rékupèr out laksé.',
513
-	'pass_mail_passcookie' => '(Sa lé in modékri otomatik)
513
+    'pass_mail_passcookie' => '(Sa lé in modékri otomatik)
514 514
 Pour ou i pé artrouv out laksé si lo sitwèb
515 515
 @nom_site_spip@ (@adresse_site@)
516 516
 
@@ -520,104 +520,104 @@  discard block
 block discarded – undo
520 520
 Aprésa, ou i poura mèt in nouvo modpas
521 521
  pou rakost lo sitwèb.
522 522
 ',
523
-	'pass_mot_oublie' => 'Modpas oubliyé',
524
-	'pass_nouveau_enregistre' => 'Out nouvo modpas la fin dèt anroziztré.',
525
-	'pass_nouveau_pass' => 'Nouvo modpas',
526
-	'pass_ok' => 'Dakor',
527
-	'pass_oubli_mot' => 'Modpas oublyé',
528
-	'pass_quitter_fenetre' => 'Défalk finèt-la',
529
-	'pass_rappel_login' => 'Rapèl aou : out lidantifyan (nondkod) lé « @login@ ».',
530
-	'pass_recevoir_mail' => 'Ou sava giny inn limèl sak i indik aou kouk sa i pé artrouv out laksé sir lo sit.', # MODIF
531
-	'pass_retour_public' => 'Artourn sir figirwèb',
532
-	'pass_rien_a_faire_ici' => 'Nana ryinn a fèr isi.',
533
-	'pass_vousinscrire' => 'Inskri aou sir lo sit',
534
-	'precedent' => 'dovan',
535
-	'previsualisation' => 'Po vwar avann komsi lé an liny',
536
-	'previsualiser' => 'Po vwar avan',
523
+    'pass_mot_oublie' => 'Modpas oubliyé',
524
+    'pass_nouveau_enregistre' => 'Out nouvo modpas la fin dèt anroziztré.',
525
+    'pass_nouveau_pass' => 'Nouvo modpas',
526
+    'pass_ok' => 'Dakor',
527
+    'pass_oubli_mot' => 'Modpas oublyé',
528
+    'pass_quitter_fenetre' => 'Défalk finèt-la',
529
+    'pass_rappel_login' => 'Rapèl aou : out lidantifyan (nondkod) lé « @login@ ».',
530
+    'pass_recevoir_mail' => 'Ou sava giny inn limèl sak i indik aou kouk sa i pé artrouv out laksé sir lo sit.', # MODIF
531
+    'pass_retour_public' => 'Artourn sir figirwèb',
532
+    'pass_rien_a_faire_ici' => 'Nana ryinn a fèr isi.',
533
+    'pass_vousinscrire' => 'Inskri aou sir lo sit',
534
+    'precedent' => 'dovan',
535
+    'previsualisation' => 'Po vwar avann komsi lé an liny',
536
+    'previsualiser' => 'Po vwar avan',
537 537
 
538
-	// S
539
-	'squelette' => 'léskelèt',
540
-	'squelette_inclus_ligne' => 'leskélèt dodan, liny',
541
-	'squelette_ligne' => 'léskelèt, liny',
542
-	'stats_visites_et_popularite' => '@visites@ vizit ; popularité : @popularite@',
543
-	'suivant' => 'dèryèr',
538
+    // S
539
+    'squelette' => 'léskelèt',
540
+    'squelette_inclus_ligne' => 'leskélèt dodan, liny',
541
+    'squelette_ligne' => 'léskelèt, liny',
542
+    'stats_visites_et_popularite' => '@visites@ vizit ; popularité : @popularite@',
543
+    'suivant' => 'dèryèr',
544 544
 
545
-	// T
546
-	'taille_ko' => '@taille@ ko',
547
-	'taille_mo' => '@taille@ Mo',
548
-	'taille_octets' => '@taille@ bann zokté',
549
-	'taille_octets_bi' => '@taille@ bann zokté',
550
-	'texte_actualite_site_1' => 'Kank ou sra pli zabityé èk lo figirwèb, i poura klik sir « ',
551
-	'texte_actualite_site_2' => 'lintèrfas konplé',
552
-	'texte_actualite_site_3' => ' » pour giny plid posibilité.',
553
-	'texte_creation_automatique_vignette' => 'Lakréasyon otomatik pou bann vinyèt avwar-avan, lé an mars si lo sit-la. Si ou linstal bann zimaz dann (bann) tay  @gd_formats@, dopwi formulèr-la, zimaz-la i sra prézanté èk inn vinyèt pa pli grank @taille_preview@ bann piksèl oplis.',
554
-	'texte_documents_associes' => 'Bann dokiman-la lé mi èk lartik-la,
545
+    // T
546
+    'taille_ko' => '@taille@ ko',
547
+    'taille_mo' => '@taille@ Mo',
548
+    'taille_octets' => '@taille@ bann zokté',
549
+    'taille_octets_bi' => '@taille@ bann zokté',
550
+    'texte_actualite_site_1' => 'Kank ou sra pli zabityé èk lo figirwèb, i poura klik sir « ',
551
+    'texte_actualite_site_2' => 'lintèrfas konplé',
552
+    'texte_actualite_site_3' => ' » pour giny plid posibilité.',
553
+    'texte_creation_automatique_vignette' => 'Lakréasyon otomatik pou bann vinyèt avwar-avan, lé an mars si lo sit-la. Si ou linstal bann zimaz dann (bann) tay  @gd_formats@, dopwi formulèr-la, zimaz-la i sra prézanté èk inn vinyèt pa pli grank @taille_preview@ bann piksèl oplis.',
554
+    'texte_documents_associes' => 'Bann dokiman-la lé mi èk lartik-la,
555 555
 mé zot lé pa plasé dann kor-minm lartik-la. Sélon lamanyir ou sava mèt an paz lo sit piblik,
556 556
 zot i sra pou aparèt kom bann dokiman zwinn.',
557
-	'texte_erreur_mise_niveau_base' => 'Kanard do bazdodné dann tan larmizanivo .
557
+    'texte_erreur_mise_niveau_base' => 'Kanard do bazdodné dann tan larmizanivo .
558 558
 Limaz <b>@fichier@</b> la pa pasé dann (article @id_article@).
559 559
 Gard byin an tèt référans-la, ésèy inn ot fwa inn larmizanivo, é véy byin sak bann zimaz i aparé touzour dann bann zartik.', # MODIF
560
-	'texte_inc_auth_1' => 'Ou lé konu sir lo sit èk lo
560
+    'texte_inc_auth_1' => 'Ou lé konu sir lo sit èk lo
561 561
  nondkod <b>@auth_login@</b>, mé li lé pa/pli prézan astèr dann labaz. 
562 562
 Esèy', # MODIF
563
-	'texte_inc_auth_2' => 'rakost inn ot fwa',
564
-	'texte_inc_auth_3' => 'apré ou la petèt sort èk ardémar out
563
+    'texte_inc_auth_2' => 'rakost inn ot fwa',
564
+    'texte_inc_auth_3' => 'apré ou la petèt sort èk ardémar out
565 565
 navigatèr.',
566
-	'texte_inc_config' => 'Bann sanzman sir bann paz-la na inn léfé importan sir lamanyir
566
+    'texte_inc_config' => 'Bann sanzman sir bann paz-la na inn léfé importan sir lamanyir
567 567
 out sit i mars. Ni konsèy aou pa tous a ryin si ou lé pa fransvérité byin abityé èk lo sistèm SPIP.
568 568
 
569 569
  <br /><br /><b>É minm, ni konséy
570 570
 aou lès lazéstyon do bann paz-la pou lo wèbmèt prinsipal.</b>', # MODIF
571
-	'texte_inc_meta_1' => 'Sistèm-la la finn trové inn larlik èk lékritir lo fisyé <code>@fichier@</code>.  Mersi, kom komandèr lo sit,',
572
-	'texte_inc_meta_2' => 'vérifyé bann drwa lékritir',
573
-	'texte_inc_meta_3' => 'dann répertwar <code>@repertoire@</code>.',
574
-	'texte_statut_en_cours_redaction' => 'apré lékritir',
575
-	'texte_statut_poubelle' => 'dann korbèy',
576
-	'texte_statut_propose_evaluation' => 'propozé pou zot zizman',
577
-	'texte_statut_publie' => 'pibliyé an liyn',
578
-	'texte_statut_refuse' => 'arfizé',
579
-	'titre_ajouter_mot_cle' => 'AZOUT INN MOLAKLÉ :',
580
-	'titre_cadre_raccourcis' => 'BANN RÉDIYON :',
581
-	'titre_changer_couleur_interface' => 'Sanz lakoulèr lintèrfas',
582
-	'titre_image_admin_article' => 'Ou pé zèr lartik-la',
583
-	'titre_image_administrateur' => 'Komandèr',
584
-	'titre_image_aide' => 'Koudmin sir léléman-la',
585
-	'titre_image_auteur_supprime' => 'Lotèr lé dégréné',
586
-	'titre_image_redacteur' => 'Lotèr san laksé',
587
-	'titre_image_redacteur_02' => 'Lotèr',
588
-	'titre_image_visiteur' => 'Vizitèr',
589
-	'titre_joindre_document' => 'POU ZWIND INN DOKIMAN',
590
-	'titre_mots_cles' => 'BANN MOLAKLÉ',
591
-	'titre_probleme_technique' => 'Pangar : inn larlik tèknik (servèr SQL) i défann permisyon lakostaz dan landrwa la. Éskiz anou.', # MODIF
592
-	'titre_publier_document' => 'PUBLIY INN DOKIMAN DANN RUBRIK-LA',
593
-	'titre_statistiques' => 'Sifklé lo sitwèb',
594
-	'titre_titre_document' => 'Lo non dokiman-la :',
595
-	'trad_reference' => '(Lartik-péi de référans)', # MODIF
571
+    'texte_inc_meta_1' => 'Sistèm-la la finn trové inn larlik èk lékritir lo fisyé <code>@fichier@</code>.  Mersi, kom komandèr lo sit,',
572
+    'texte_inc_meta_2' => 'vérifyé bann drwa lékritir',
573
+    'texte_inc_meta_3' => 'dann répertwar <code>@repertoire@</code>.',
574
+    'texte_statut_en_cours_redaction' => 'apré lékritir',
575
+    'texte_statut_poubelle' => 'dann korbèy',
576
+    'texte_statut_propose_evaluation' => 'propozé pou zot zizman',
577
+    'texte_statut_publie' => 'pibliyé an liyn',
578
+    'texte_statut_refuse' => 'arfizé',
579
+    'titre_ajouter_mot_cle' => 'AZOUT INN MOLAKLÉ :',
580
+    'titre_cadre_raccourcis' => 'BANN RÉDIYON :',
581
+    'titre_changer_couleur_interface' => 'Sanz lakoulèr lintèrfas',
582
+    'titre_image_admin_article' => 'Ou pé zèr lartik-la',
583
+    'titre_image_administrateur' => 'Komandèr',
584
+    'titre_image_aide' => 'Koudmin sir léléman-la',
585
+    'titre_image_auteur_supprime' => 'Lotèr lé dégréné',
586
+    'titre_image_redacteur' => 'Lotèr san laksé',
587
+    'titre_image_redacteur_02' => 'Lotèr',
588
+    'titre_image_visiteur' => 'Vizitèr',
589
+    'titre_joindre_document' => 'POU ZWIND INN DOKIMAN',
590
+    'titre_mots_cles' => 'BANN MOLAKLÉ',
591
+    'titre_probleme_technique' => 'Pangar : inn larlik tèknik (servèr SQL) i défann permisyon lakostaz dan landrwa la. Éskiz anou.', # MODIF
592
+    'titre_publier_document' => 'PUBLIY INN DOKIMAN DANN RUBRIK-LA',
593
+    'titre_statistiques' => 'Sifklé lo sitwèb',
594
+    'titre_titre_document' => 'Lo non dokiman-la :',
595
+    'trad_reference' => '(Lartik-péi de référans)', # MODIF
596 596
 
597
-	// Z
598
-	'zbug_balise_b_aval' => ' : baliz B anlèr',
599
-	'zbug_balise_inexistante' => 'erreur @from@ : la balise #@balise@ n’existe pas', # MODIF
600
-	'zbug_boucle' => 'boukl',
601
-	'zbug_boucle_recursive_undef' => 'boukl rékirsiv-la lé pa défini', # MODIF
602
-	'zbug_champ_hors_boucle' => 'lo chan @champ@ lé andéor in boukl',
603
-	'zbug_champ_hors_motif' => 'Lo chan @champ@ lé an déor in boukl-motif @motif@', # MODIF
604
-	'zbug_code' => 'kod',
605
-	'zbug_critere_inconnu' => 'kritèr-la lé pa konu @critere@', # MODIF
606
-	'zbug_distant_interdit' => 'déor interdi', # MODIF
607
-	'zbug_doublon_table_sans_cle_primaire' => 'doublons sur une table sans clef primaire atomique', # MODIF
608
-	'zbug_doublon_table_sans_index' => 'doublons sur une table sans index', # MODIF
609
-	'zbug_erreur_boucle_double' => 'BOUCLE@id@ : néna dé définisyon', # MODIF
610
-	'zbug_erreur_boucle_fermant' => 'BOUCLE@id@ : néna in "tag" sat i mank po tak in boukl.', # MODIF
611
-	'zbug_erreur_boucle_syntaxe' => 'Sintask lo boukl-là lé pa korèk', # MODIF
612
-	'zbug_erreur_execution_page' => 'néna in larlik pou léxékisyon paj-la', # MODIF
613
-	'zbug_erreur_filtre' => 'Néna in kanar andan lo filt <b>« @filtre@ »</b> sat lé pa défini', # MODIF
614
-	'zbug_erreur_meme_parent' => '{meme_parent} li aplik sèlman pou bann boukl (FORUMS) ou (RUBRIQUES)', # MODIF
615
-	'zbug_erreur_squelette' => 'néna (bann) larlik andan léskélèt',
616
-	'zbug_info_erreur_squelette' => 'Kanar sir lo sit',
617
-	'zbug_inversion_ordre_inexistant' => 'lord existan lé inversè', # MODIF
618
-	'zbug_pagination_sans_critere' => '#PAGINATION sans critère {pagination} ou employé dans une boucle recursive', # MODIF
619
-	'zbug_parametres_inclus_incorrects' => 'Bann paramèt pou linklizyon lé pa korèk', # MODIF
620
-	'zbug_resultat' => 'rézilta',
621
-	'zbug_serveur_indefini' => 'servèr SQL la lé pa défini', # MODIF
622
-	'zbug_table_inconnue' => 'Lo tab SQL « @table@ »  la , li lé pa konu'
597
+    // Z
598
+    'zbug_balise_b_aval' => ' : baliz B anlèr',
599
+    'zbug_balise_inexistante' => 'erreur @from@ : la balise #@balise@ n’existe pas', # MODIF
600
+    'zbug_boucle' => 'boukl',
601
+    'zbug_boucle_recursive_undef' => 'boukl rékirsiv-la lé pa défini', # MODIF
602
+    'zbug_champ_hors_boucle' => 'lo chan @champ@ lé andéor in boukl',
603
+    'zbug_champ_hors_motif' => 'Lo chan @champ@ lé an déor in boukl-motif @motif@', # MODIF
604
+    'zbug_code' => 'kod',
605
+    'zbug_critere_inconnu' => 'kritèr-la lé pa konu @critere@', # MODIF
606
+    'zbug_distant_interdit' => 'déor interdi', # MODIF
607
+    'zbug_doublon_table_sans_cle_primaire' => 'doublons sur une table sans clef primaire atomique', # MODIF
608
+    'zbug_doublon_table_sans_index' => 'doublons sur une table sans index', # MODIF
609
+    'zbug_erreur_boucle_double' => 'BOUCLE@id@ : néna dé définisyon', # MODIF
610
+    'zbug_erreur_boucle_fermant' => 'BOUCLE@id@ : néna in "tag" sat i mank po tak in boukl.', # MODIF
611
+    'zbug_erreur_boucle_syntaxe' => 'Sintask lo boukl-là lé pa korèk', # MODIF
612
+    'zbug_erreur_execution_page' => 'néna in larlik pou léxékisyon paj-la', # MODIF
613
+    'zbug_erreur_filtre' => 'Néna in kanar andan lo filt <b>« @filtre@ »</b> sat lé pa défini', # MODIF
614
+    'zbug_erreur_meme_parent' => '{meme_parent} li aplik sèlman pou bann boukl (FORUMS) ou (RUBRIQUES)', # MODIF
615
+    'zbug_erreur_squelette' => 'néna (bann) larlik andan léskélèt',
616
+    'zbug_info_erreur_squelette' => 'Kanar sir lo sit',
617
+    'zbug_inversion_ordre_inexistant' => 'lord existan lé inversè', # MODIF
618
+    'zbug_pagination_sans_critere' => '#PAGINATION sans critère {pagination} ou employé dans une boucle recursive', # MODIF
619
+    'zbug_parametres_inclus_incorrects' => 'Bann paramèt pou linklizyon lé pa korèk', # MODIF
620
+    'zbug_resultat' => 'rézilta',
621
+    'zbug_serveur_indefini' => 'servèr SQL la lé pa défini', # MODIF
622
+    'zbug_table_inconnue' => 'Lo tab SQL « @table@ »  la , li lé pa konu'
623 623
 );
Please login to merge, or discard this patch.
ecrire/lang/spip_pt.php 1 patch
Indentation   +644 added lines, -644 removed lines patch added patch discarded remove patch
@@ -4,571 +4,571 @@  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 à interface gráfica completa',
14
-	'access_mode_texte' => 'Exibir a interface textual simplificada',
15
-	'admin_debug' => 'debug',
16
-	'admin_modifier_article' => 'Modificar este artigo',
17
-	'admin_modifier_auteur' => 'Modificar este autor',
18
-	'admin_modifier_breve' => 'Modificar esta notícia',
19
-	'admin_modifier_mot' => 'Modificar esta palavra-chave',
20
-	'admin_modifier_rubrique' => 'Modificar esta rubrica',
21
-	'admin_recalculer' => 'Recompor esta página',
22
-	'afficher_calendrier' => 'Exibir o calendário',
23
-	'afficher_trad' => 'exibir as traduções',
24
-	'alerte_maj_impossible' => '<b>Alerta !</b> A actualização da base de dados SQL para a versão @version@ é impossível, talvez por causa de um problema de permissão de modificação na base de dados. Por favor contacte o seu serviço de hospedagem.',
25
-	'alerte_modif_info_concourante' => 'ATTENÇÃO : Esta informação já foi modificada noutro menu. O valor actual é :',
26
-	'analyse_xml' => 'Análise XML',
27
-	'annuler' => 'Cancelar',
28
-	'antispam_champ_vide' => 'Por favor deixe este campo vazio :',
29
-	'articles_recents' => 'Artigos mais recentes',
30
-	'avis_archive_incorrect' => 'o ficheiro arquivo não é um ficheiro SPIP',
31
-	'avis_archive_invalide' => 'o ficheiro arquivo não é válido ',
32
-	'avis_attention' => ' ATENÇÂO!',
33
-	'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para objecto de tipo @type@',
34
-	'avis_colonne_inexistante' => 'A coluna  @col@ não existe',
35
-	'avis_erreur' => 'Erro: ver mais abaixo',
36
-	'avis_erreur_connexion' => 'Erro de ligação ',
37
-	'avis_erreur_cookie' => 'problema de cookie',
38
-	'avis_erreur_fonction_contexte' => 'Erro de programação. Não se pode chamar esta função neste contexto.',
39
-	'avis_erreur_mysql' => 'Erro SQL',
40
-	'avis_erreur_sauvegarde' => 'Erro na cópia de segurança  (@type@ @id_objet@) !',
41
-	'avis_erreur_visiteur' => 'Problema de acesso à área privada',
12
+    // A
13
+    'access_interface_graphique' => 'Voltar à interface gráfica completa',
14
+    'access_mode_texte' => 'Exibir a interface textual simplificada',
15
+    'admin_debug' => 'debug',
16
+    'admin_modifier_article' => 'Modificar este artigo',
17
+    'admin_modifier_auteur' => 'Modificar este autor',
18
+    'admin_modifier_breve' => 'Modificar esta notícia',
19
+    'admin_modifier_mot' => 'Modificar esta palavra-chave',
20
+    'admin_modifier_rubrique' => 'Modificar esta rubrica',
21
+    'admin_recalculer' => 'Recompor esta página',
22
+    'afficher_calendrier' => 'Exibir o calendário',
23
+    'afficher_trad' => 'exibir as traduções',
24
+    'alerte_maj_impossible' => '<b>Alerta !</b> A actualização da base de dados SQL para a versão @version@ é impossível, talvez por causa de um problema de permissão de modificação na base de dados. Por favor contacte o seu serviço de hospedagem.',
25
+    'alerte_modif_info_concourante' => 'ATTENÇÃO : Esta informação já foi modificada noutro menu. O valor actual é :',
26
+    'analyse_xml' => 'Análise XML',
27
+    'annuler' => 'Cancelar',
28
+    'antispam_champ_vide' => 'Por favor deixe este campo vazio :',
29
+    'articles_recents' => 'Artigos mais recentes',
30
+    'avis_archive_incorrect' => 'o ficheiro arquivo não é um ficheiro SPIP',
31
+    'avis_archive_invalide' => 'o ficheiro arquivo não é válido ',
32
+    'avis_attention' => ' ATENÇÂO!',
33
+    'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para objecto de tipo @type@',
34
+    'avis_colonne_inexistante' => 'A coluna  @col@ não existe',
35
+    'avis_erreur' => 'Erro: ver mais abaixo',
36
+    'avis_erreur_connexion' => 'Erro de ligação ',
37
+    'avis_erreur_cookie' => 'problema de cookie',
38
+    'avis_erreur_fonction_contexte' => 'Erro de programação. Não se pode chamar esta função neste contexto.',
39
+    'avis_erreur_mysql' => 'Erro SQL',
40
+    'avis_erreur_sauvegarde' => 'Erro na cópia de segurança  (@type@ @id_objet@) !',
41
+    'avis_erreur_visiteur' => 'Problema de acesso à área privada',
42 42
 
43
-	// B
44
-	'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
45
-	'barre_aide' => 'Utilize as abreviaturas tipográficas para enriquecer a sua paginação.',
46
-	'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo ',
47
-	'barre_eo' => 'Inserir um E no O',
48
-	'barre_eo_maj' => 'Inserir um E no O maiúsculo',
49
-	'barre_euro' => 'Inserir o símbolo €',
50
-	'barre_gras' => '  Escrever em {{negro}}',
51
-	'barre_guillemets' => 'Colocar entre "aspas" ',
52
-	'barre_guillemets_simples' => 'Colocar entre ’aspas simples’',
53
-	'barre_intertitre' => 'Transfomar em  {{{intertítulo}}} ',
54
-	'barre_italic' => 'Pôr em itálico ',
55
-	'barre_lien' => 'Transformar em [ligação hipertexto->http://...]',
56
-	'barre_lien_input' => 'Por favor indique o endereço da sua ligação (pode indicar um endereço Web sob a forma  http://www.monsite/com ou simplesmente indicar o número de um artigo deste sítio.) ',
57
-	'barre_note' => 'Transformar em  [[Nota de rodapé ]]',
58
-	'barre_paragraphe' => 'Criar um parágrafo',
59
-	'barre_quote' => '<quote>Citar uma  mensagem</quote>',
60
-	'bouton_changer' => 'Modificar',
61
-	'bouton_chercher' => 'Procurar',
62
-	'bouton_choisir' => 'Seleccionar',
63
-	'bouton_deplacer' => 'Mover',
64
-	'bouton_download' => 'Download',
65
-	'bouton_enregistrer' => 'Guardar',
66
-	'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a caixa de correio interno',
67
-	'bouton_radio_envoi_annonces' => 'Enviar os anúncios editoriais',
68
-	'bouton_radio_non_envoi_annonces' => 'Não enviar anúncios',
69
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista das novidades',
70
-	'bouton_recharger_page' => 'recarregar esta página',
71
-	'bouton_telecharger' => 'Carregar',
72
-	'bouton_upload' => 'Carregar',
73
-	'bouton_valider' => 'Submeter',
43
+    // B
44
+    'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
45
+    'barre_aide' => 'Utilize as abreviaturas tipográficas para enriquecer a sua paginação.',
46
+    'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo ',
47
+    'barre_eo' => 'Inserir um E no O',
48
+    'barre_eo_maj' => 'Inserir um E no O maiúsculo',
49
+    'barre_euro' => 'Inserir o símbolo €',
50
+    'barre_gras' => '  Escrever em {{negro}}',
51
+    'barre_guillemets' => 'Colocar entre "aspas" ',
52
+    'barre_guillemets_simples' => 'Colocar entre ’aspas simples’',
53
+    'barre_intertitre' => 'Transfomar em  {{{intertítulo}}} ',
54
+    'barre_italic' => 'Pôr em itálico ',
55
+    'barre_lien' => 'Transformar em [ligação hipertexto->http://...]',
56
+    'barre_lien_input' => 'Por favor indique o endereço da sua ligação (pode indicar um endereço Web sob a forma  http://www.monsite/com ou simplesmente indicar o número de um artigo deste sítio.) ',
57
+    'barre_note' => 'Transformar em  [[Nota de rodapé ]]',
58
+    'barre_paragraphe' => 'Criar um parágrafo',
59
+    'barre_quote' => '<quote>Citar uma  mensagem</quote>',
60
+    'bouton_changer' => 'Modificar',
61
+    'bouton_chercher' => 'Procurar',
62
+    'bouton_choisir' => 'Seleccionar',
63
+    'bouton_deplacer' => 'Mover',
64
+    'bouton_download' => 'Download',
65
+    'bouton_enregistrer' => 'Guardar',
66
+    'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a caixa de correio interno',
67
+    'bouton_radio_envoi_annonces' => 'Enviar os anúncios editoriais',
68
+    'bouton_radio_non_envoi_annonces' => 'Não enviar anúncios',
69
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista das novidades',
70
+    'bouton_recharger_page' => 'recarregar esta página',
71
+    'bouton_telecharger' => 'Carregar',
72
+    'bouton_upload' => 'Carregar',
73
+    'bouton_valider' => 'Submeter',
74 74
 
75
-	// C
76
-	'cal_apresmidi' => 'tarde',
77
-	'cal_jour_entier' => 'dia todo',
78
-	'cal_matin' => 'manhã',
79
-	'cal_par_jour' => 'calendário por dia',
80
-	'cal_par_mois' => 'calendário por mês',
81
-	'cal_par_semaine' => 'calendário por semana',
82
-	'choix_couleur_interface' => 'cor',
83
-	'choix_interface' => 'escolha da interface',
84
-	'colonne' => 'Coluna',
85
-	'confirm_changer_statut' => 'Atenção, solicitou a alteração do estatuto deste elemento. Deseja continuar?',
86
-	'correcte' => 'correcto',
75
+    // C
76
+    'cal_apresmidi' => 'tarde',
77
+    'cal_jour_entier' => 'dia todo',
78
+    'cal_matin' => 'manhã',
79
+    'cal_par_jour' => 'calendário por dia',
80
+    'cal_par_mois' => 'calendário por mês',
81
+    'cal_par_semaine' => 'calendário por semana',
82
+    'choix_couleur_interface' => 'cor',
83
+    'choix_interface' => 'escolha da interface',
84
+    'colonne' => 'Coluna',
85
+    'confirm_changer_statut' => 'Atenção, solicitou a alteração do estatuto deste elemento. Deseja continuar?',
86
+    'correcte' => 'correcto',
87 87
 
88
-	// D
89
-	'date_aujourdhui' => 'hoje',
90
-	'date_avant_jc' => 'a. J.C.',
91
-	'date_dans' => 'entre @delai@',
92
-	'date_de_mois_1' => '@j@ de @nommois@',
93
-	'date_de_mois_10' => '@j@ de @nommois@',
94
-	'date_de_mois_11' => '@j@ de @nommois@',
95
-	'date_de_mois_12' => '@j@ de @nommois@',
96
-	'date_de_mois_2' => '@j@ de @nommois@',
97
-	'date_de_mois_3' => '@j@ de @nommois@',
98
-	'date_de_mois_4' => '@j@ de @nommois@',
99
-	'date_de_mois_5' => '@j@ de @nommois@',
100
-	'date_de_mois_6' => '@j@ de @nommois@',
101
-	'date_de_mois_7' => '@j@ de @nommois@',
102
-	'date_de_mois_8' => '@j@ de @nommois@',
103
-	'date_de_mois_9' => '@j@ de @nommois@',
104
-	'date_demain' => 'amanhã',
105
-	'date_fmt_heures_minutes' => '@h@h@m@min',
106
-	'date_fmt_heures_minutes_court' => '@h@:@m@',
107
-	'date_fmt_jour' => '@nomjour@ @jour@',
108
-	'date_fmt_jour_heure' => '@jour@ a @heure@',
109
-	'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ a @heure_fin@', # MODIF
110
-	'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@', # MODIF
111
-	'date_fmt_jour_mois' => '@jour@ de @nommois@',
112
-	'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
113
-	'date_fmt_mois_annee' => '@nommois@ de @annee@',
114
-	'date_fmt_nomjour' => '@nomjour@ @date@',
115
-	'date_fmt_nomjour_date' => ' @nomjour@ @date@',
116
-	'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
117
-	'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
118
-	'date_fmt_periode_from' => 'De',
119
-	'date_fmt_periode_to' => 'a',
120
-	'date_heures' => 'horas',
121
-	'date_hier' => 'ontem',
122
-	'date_il_y_a' => 'há @delai@',
123
-	'date_jnum1' => '1',
124
-	'date_jnum10' => '10',
125
-	'date_jnum11' => '11',
126
-	'date_jnum12' => '12',
127
-	'date_jnum13' => '13',
128
-	'date_jnum14' => '14',
129
-	'date_jnum15' => '15',
130
-	'date_jnum16' => '16',
131
-	'date_jnum17' => '17',
132
-	'date_jnum18' => '18',
133
-	'date_jnum19' => '19',
134
-	'date_jnum2' => '2',
135
-	'date_jnum20' => '20',
136
-	'date_jnum21' => '21',
137
-	'date_jnum22' => '22',
138
-	'date_jnum23' => '23',
139
-	'date_jnum24' => '24',
140
-	'date_jnum25' => '25',
141
-	'date_jnum26' => '26',
142
-	'date_jnum27' => '27',
143
-	'date_jnum28' => '28',
144
-	'date_jnum29' => '29',
145
-	'date_jnum3' => '3',
146
-	'date_jnum30' => '30',
147
-	'date_jnum31' => '31',
148
-	'date_jnum4' => '4',
149
-	'date_jnum5' => '5',
150
-	'date_jnum6' => '6',
151
-	'date_jnum7' => '7',
152
-	'date_jnum8' => '8',
153
-	'date_jnum9' => '9',
154
-	'date_jour_1' => 'domingo',
155
-	'date_jour_1_abbr' => 'Dom.',
156
-	'date_jour_1_initiale' => 'D.',
157
-	'date_jour_2' => 'segunda-feira',
158
-	'date_jour_2_abbr' => 'Seg.',
159
-	'date_jour_2_initiale' => 'S.',
160
-	'date_jour_3' => 'terça-feira',
161
-	'date_jour_3_abbr' => 'Ter.',
162
-	'date_jour_3_initiale' => 'T.',
163
-	'date_jour_4' => 'quarta-feira',
164
-	'date_jour_4_abbr' => 'Qua.',
165
-	'date_jour_4_initiale' => 'Q.',
166
-	'date_jour_5' => 'quinta-feira',
167
-	'date_jour_5_abbr' => 'Qui.',
168
-	'date_jour_5_initiale' => 'Q.',
169
-	'date_jour_6' => 'sexta-feira',
170
-	'date_jour_6_abbr' => 'Sex.',
171
-	'date_jour_6_initiale' => 'S.',
172
-	'date_jour_7' => 'sábado',
173
-	'date_jour_7_abbr' => 'Sab.',
174
-	'date_jour_7_initiale' => 'S.',
175
-	'date_jours' => 'dias',
176
-	'date_minutes' => 'minutos',
177
-	'date_mois' => 'meses',
178
-	'date_mois_1' => 'Janeiro',
179
-	'date_mois_10' => 'Outubro',
180
-	'date_mois_10_abbr' => 'Out.',
181
-	'date_mois_11' => 'Novembro',
182
-	'date_mois_11_abbr' => 'Nov.',
183
-	'date_mois_12' => 'Dezembro',
184
-	'date_mois_12_abbr' => 'Dez.',
185
-	'date_mois_1_abbr' => 'Jan.',
186
-	'date_mois_2' => 'Fevereiro',
187
-	'date_mois_2_abbr' => 'Feb.',
188
-	'date_mois_3' => 'Março',
189
-	'date_mois_3_abbr' => 'Mar',
190
-	'date_mois_4' => 'Abril',
191
-	'date_mois_4_abbr' => 'Abr.',
192
-	'date_mois_5' => 'Maio',
193
-	'date_mois_5_abbr' => 'Mai',
194
-	'date_mois_6' => 'Junho',
195
-	'date_mois_6_abbr' => 'Jun',
196
-	'date_mois_7' => 'Julho',
197
-	'date_mois_7_abbr' => 'Jul',
198
-	'date_mois_8' => 'Agosto',
199
-	'date_mois_8_abbr' => 'Ago',
200
-	'date_mois_9' => 'Setembro',
201
-	'date_mois_9_abbr' => 'Set',
202
-	'date_saison_1' => 'inverno',
203
-	'date_saison_2' => 'primavera',
204
-	'date_saison_3' => 'verão',
205
-	'date_saison_4' => 'outono',
206
-	'date_secondes' => 'segundos',
207
-	'date_semaines' => 'semanas',
208
-	'date_un_mois' => 'mês',
209
-	'date_une_heure' => 'hora',
210
-	'date_une_minute' => 'minuto',
211
-	'date_une_seconde' => 'segundo',
212
-	'date_une_semaine' => 'semana',
213
-	'dirs_commencer' => 'a fim de começar realmente a instalação',
214
-	'dirs_preliminaire' => 'Preliminar : <b>Configurar os direitos de acesso</b>',
215
-	'dirs_probleme_droits' => 'Problema de direitos de acesso',
216
-	'dirs_repertoires_absents' => '<b>Os seguintes directórios não foram encontrados : <ul>@bad_dirs@.</ul> </b>
88
+    // D
89
+    'date_aujourdhui' => 'hoje',
90
+    'date_avant_jc' => 'a. J.C.',
91
+    'date_dans' => 'entre @delai@',
92
+    'date_de_mois_1' => '@j@ de @nommois@',
93
+    'date_de_mois_10' => '@j@ de @nommois@',
94
+    'date_de_mois_11' => '@j@ de @nommois@',
95
+    'date_de_mois_12' => '@j@ de @nommois@',
96
+    'date_de_mois_2' => '@j@ de @nommois@',
97
+    'date_de_mois_3' => '@j@ de @nommois@',
98
+    'date_de_mois_4' => '@j@ de @nommois@',
99
+    'date_de_mois_5' => '@j@ de @nommois@',
100
+    'date_de_mois_6' => '@j@ de @nommois@',
101
+    'date_de_mois_7' => '@j@ de @nommois@',
102
+    'date_de_mois_8' => '@j@ de @nommois@',
103
+    'date_de_mois_9' => '@j@ de @nommois@',
104
+    'date_demain' => 'amanhã',
105
+    'date_fmt_heures_minutes' => '@h@h@m@min',
106
+    'date_fmt_heures_minutes_court' => '@h@:@m@',
107
+    'date_fmt_jour' => '@nomjour@ @jour@',
108
+    'date_fmt_jour_heure' => '@jour@ a @heure@',
109
+    'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ a @heure_fin@', # MODIF
110
+    'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@', # MODIF
111
+    'date_fmt_jour_mois' => '@jour@ de @nommois@',
112
+    'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
113
+    'date_fmt_mois_annee' => '@nommois@ de @annee@',
114
+    'date_fmt_nomjour' => '@nomjour@ @date@',
115
+    'date_fmt_nomjour_date' => ' @nomjour@ @date@',
116
+    'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
117
+    'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
118
+    'date_fmt_periode_from' => 'De',
119
+    'date_fmt_periode_to' => 'a',
120
+    'date_heures' => 'horas',
121
+    'date_hier' => 'ontem',
122
+    'date_il_y_a' => 'há @delai@',
123
+    'date_jnum1' => '1',
124
+    'date_jnum10' => '10',
125
+    'date_jnum11' => '11',
126
+    'date_jnum12' => '12',
127
+    'date_jnum13' => '13',
128
+    'date_jnum14' => '14',
129
+    'date_jnum15' => '15',
130
+    'date_jnum16' => '16',
131
+    'date_jnum17' => '17',
132
+    'date_jnum18' => '18',
133
+    'date_jnum19' => '19',
134
+    'date_jnum2' => '2',
135
+    'date_jnum20' => '20',
136
+    'date_jnum21' => '21',
137
+    'date_jnum22' => '22',
138
+    'date_jnum23' => '23',
139
+    'date_jnum24' => '24',
140
+    'date_jnum25' => '25',
141
+    'date_jnum26' => '26',
142
+    'date_jnum27' => '27',
143
+    'date_jnum28' => '28',
144
+    'date_jnum29' => '29',
145
+    'date_jnum3' => '3',
146
+    'date_jnum30' => '30',
147
+    'date_jnum31' => '31',
148
+    'date_jnum4' => '4',
149
+    'date_jnum5' => '5',
150
+    'date_jnum6' => '6',
151
+    'date_jnum7' => '7',
152
+    'date_jnum8' => '8',
153
+    'date_jnum9' => '9',
154
+    'date_jour_1' => 'domingo',
155
+    'date_jour_1_abbr' => 'Dom.',
156
+    'date_jour_1_initiale' => 'D.',
157
+    'date_jour_2' => 'segunda-feira',
158
+    'date_jour_2_abbr' => 'Seg.',
159
+    'date_jour_2_initiale' => 'S.',
160
+    'date_jour_3' => 'terça-feira',
161
+    'date_jour_3_abbr' => 'Ter.',
162
+    'date_jour_3_initiale' => 'T.',
163
+    'date_jour_4' => 'quarta-feira',
164
+    'date_jour_4_abbr' => 'Qua.',
165
+    'date_jour_4_initiale' => 'Q.',
166
+    'date_jour_5' => 'quinta-feira',
167
+    'date_jour_5_abbr' => 'Qui.',
168
+    'date_jour_5_initiale' => 'Q.',
169
+    'date_jour_6' => 'sexta-feira',
170
+    'date_jour_6_abbr' => 'Sex.',
171
+    'date_jour_6_initiale' => 'S.',
172
+    'date_jour_7' => 'sábado',
173
+    'date_jour_7_abbr' => 'Sab.',
174
+    'date_jour_7_initiale' => 'S.',
175
+    'date_jours' => 'dias',
176
+    'date_minutes' => 'minutos',
177
+    'date_mois' => 'meses',
178
+    'date_mois_1' => 'Janeiro',
179
+    'date_mois_10' => 'Outubro',
180
+    'date_mois_10_abbr' => 'Out.',
181
+    'date_mois_11' => 'Novembro',
182
+    'date_mois_11_abbr' => 'Nov.',
183
+    'date_mois_12' => 'Dezembro',
184
+    'date_mois_12_abbr' => 'Dez.',
185
+    'date_mois_1_abbr' => 'Jan.',
186
+    'date_mois_2' => 'Fevereiro',
187
+    'date_mois_2_abbr' => 'Feb.',
188
+    'date_mois_3' => 'Março',
189
+    'date_mois_3_abbr' => 'Mar',
190
+    'date_mois_4' => 'Abril',
191
+    'date_mois_4_abbr' => 'Abr.',
192
+    'date_mois_5' => 'Maio',
193
+    'date_mois_5_abbr' => 'Mai',
194
+    'date_mois_6' => 'Junho',
195
+    'date_mois_6_abbr' => 'Jun',
196
+    'date_mois_7' => 'Julho',
197
+    'date_mois_7_abbr' => 'Jul',
198
+    'date_mois_8' => 'Agosto',
199
+    'date_mois_8_abbr' => 'Ago',
200
+    'date_mois_9' => 'Setembro',
201
+    'date_mois_9_abbr' => 'Set',
202
+    'date_saison_1' => 'inverno',
203
+    'date_saison_2' => 'primavera',
204
+    'date_saison_3' => 'verão',
205
+    'date_saison_4' => 'outono',
206
+    'date_secondes' => 'segundos',
207
+    'date_semaines' => 'semanas',
208
+    'date_un_mois' => 'mês',
209
+    'date_une_heure' => 'hora',
210
+    'date_une_minute' => 'minuto',
211
+    'date_une_seconde' => 'segundo',
212
+    'date_une_semaine' => 'semana',
213
+    'dirs_commencer' => 'a fim de começar realmente a instalação',
214
+    'dirs_preliminaire' => 'Preliminar : <b>Configurar os direitos de acesso</b>',
215
+    'dirs_probleme_droits' => 'Problema de direitos de acesso',
216
+    'dirs_repertoires_absents' => '<b>Os seguintes directórios não foram encontrados : <ul>@bad_dirs@.</ul> </b>
217 217
   <p>É provável que resulte de um problema de má colocação de maiúsculas ou minúsculas.
218 218
   Verifique que as minúsculas e maiúsculas destes directórios concordam com o que está exibido
219 219
  acima; se não for o caso, renomeie os repertórios com o seu software FTP de modo a corrigir o erro.
220 220
   <p>Terminada esta operação, poderá</p>',
221
-	'dirs_repertoires_suivants' => '<b>Os seguintes directórios não estão acessíveis para escrita: <ul>@bad_dirs@.</ul> </b>
221
+    'dirs_repertoires_suivants' => '<b>Os seguintes directórios não estão acessíveis para escrita: <ul>@bad_dirs@.</ul> </b>
222 222
   <p>Para corrigir, utilize o seu programa de FTP para configurar os direitos de acesso de cada um
223 223
   destes directórios. O procedimento está explicado em detalhe no manual de instalação.
224 224
   <p>Uma vez efectuada esta alteração, poderá',
225
-	'double_occurrence' => 'Dupla ocorrência de @balise@',
225
+    'double_occurrence' => 'Dupla ocorrência de @balise@',
226 226
 
227
-	// E
228
-	'en_cours' => 'em curso',
229
-	'envoi_via_le_site' => 'Envio pelo sítio',
230
-	'erreur' => 'Erro',
231
-	'erreur_balise_non_fermee' => 'última tag não fechada :',
232
-	'erreur_technique_ajaxform' => 'Ooops. Uum erro inesperado impediu o formulário de ser enviado. Por favor tente novamente.',
233
-	'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu o registo correcto do campo @champs@.',
234
-	'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu o registo.',
235
-	'erreur_texte' => 'erro(s)',
236
-	'etape' => 'Etapa',
227
+    // E
228
+    'en_cours' => 'em curso',
229
+    'envoi_via_le_site' => 'Envio pelo sítio',
230
+    'erreur' => 'Erro',
231
+    'erreur_balise_non_fermee' => 'última tag não fechada :',
232
+    'erreur_technique_ajaxform' => 'Ooops. Uum erro inesperado impediu o formulário de ser enviado. Por favor tente novamente.',
233
+    'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu o registo correcto do campo @champs@.',
234
+    'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu o registo.',
235
+    'erreur_texte' => 'erro(s)',
236
+    'etape' => 'Etapa',
237 237
 
238
-	// F
239
-	'fichier_introuvable' => 'Ficheiro @fichier@ não localizado', # MODIF
240
-	'form_auteur_confirmation' => 'Confirme o seu endereço e-mail',
241
-	'form_auteur_email_modifie' => 'O seu endereço e-mail foi alterado.',
242
-	'form_auteur_envoi_mail_confirmation' => 'Um e-mail de confirmação foi enviado para @email@. Para validar o seu endereço de e-mail, deve abrir o endereço Web mencionado na mensagem.',
243
-	'form_auteur_mail_confirmation' => 'Olá,
238
+    // F
239
+    'fichier_introuvable' => 'Ficheiro @fichier@ não localizado', # MODIF
240
+    'form_auteur_confirmation' => 'Confirme o seu endereço e-mail',
241
+    'form_auteur_email_modifie' => 'O seu endereço e-mail foi alterado.',
242
+    'form_auteur_envoi_mail_confirmation' => 'Um e-mail de confirmação foi enviado para @email@. Para validar o seu endereço de e-mail, deve abrir o endereço Web mencionado na mensagem.',
243
+    'form_auteur_mail_confirmation' => 'Olá,
244 244
 
245 245
 Pediu para alterar o seu endereço e-mail. Para confirmar o seu novo endereço, precisa de se conectar ao endereço abaixo (caso contrário, o seu pedido será ignorado) :
246 246
 
247 247
     @url@
248 248
 ',
249
-	'form_deja_inscrit' => 'Já está inscrito.',
250
-	'form_email_non_valide' => 'O seu endereço email não é válido',
251
-	'form_forum_access_refuse' => 'Você já não tem acesso a este sítio',
252
-	'form_forum_bonjour' => 'Bom dia @nom@,',
253
-	'form_forum_confirmer_email' => 'Para confirmar o seu endereço e-maill, abra esta ligação : @url_confirm@',
254
-	'form_forum_email_deja_enregistre' => 'Este endereço e-mail já está registado,pode portanto utilizar a sua palavra-passe habitual',
255
-	'form_forum_identifiant_mail' => 'O seu novo identificador acabou de lhe ser enviado por email.',
256
-	'form_forum_identifiants' => 'Identificadores pessoais',
257
-	'form_forum_indiquer_nom_email' => 'Indicar aqui o seu nome e o seu endereço email. O seu identificador pessoal ser-lhe-á enviado rapidamente por correio electrónico.',
258
-	'form_forum_login' => 'login:',
259
-	'form_forum_message_auto' => '(esta é uma mensagem automática)',
260
-	'form_forum_pass' => 'palavra-passe',
261
-	'form_forum_probleme_mail' => 'Problema de mail :o identificador não pôde ser enviado',
262
-	'form_forum_voici1' => 'Aqui estão os seus dados para poder aceder ao sítio Internet do  "@nom_site_spip@" (@adresse_site@):',
263
-	'form_forum_voici2' => 'Eis os seus identificadores para propor artigos no
249
+    'form_deja_inscrit' => 'Já está inscrito.',
250
+    'form_email_non_valide' => 'O seu endereço email não é válido',
251
+    'form_forum_access_refuse' => 'Você já não tem acesso a este sítio',
252
+    'form_forum_bonjour' => 'Bom dia @nom@,',
253
+    'form_forum_confirmer_email' => 'Para confirmar o seu endereço e-maill, abra esta ligação : @url_confirm@',
254
+    'form_forum_email_deja_enregistre' => 'Este endereço e-mail já está registado,pode portanto utilizar a sua palavra-passe habitual',
255
+    'form_forum_identifiant_mail' => 'O seu novo identificador acabou de lhe ser enviado por email.',
256
+    'form_forum_identifiants' => 'Identificadores pessoais',
257
+    'form_forum_indiquer_nom_email' => 'Indicar aqui o seu nome e o seu endereço email. O seu identificador pessoal ser-lhe-á enviado rapidamente por correio electrónico.',
258
+    'form_forum_login' => 'login:',
259
+    'form_forum_message_auto' => '(esta é uma mensagem automática)',
260
+    'form_forum_pass' => 'palavra-passe',
261
+    'form_forum_probleme_mail' => 'Problema de mail :o identificador não pôde ser enviado',
262
+    'form_forum_voici1' => 'Aqui estão os seus dados para poder aceder ao sítio Internet do  "@nom_site_spip@" (@adresse_site@):',
263
+    'form_forum_voici2' => 'Eis os seus identificadores para propor artigos no
264 264
  sítio "@nom_site_spip@" (@adresse_login@):',
265
-	'form_indiquer_email' => 'Por favor indique o seu endereço email.',
266
-	'form_indiquer_nom' => 'Por favor indique o seu nome.',
267
-	'form_indiquer_nom_site' => 'Por favor indique o nome do seu sítio.',
268
-	'form_pet_deja_enregistre' => 'Este sítio já está registado',
269
-	'form_pet_signature_pasprise' => 'A sua assinatura não está tomada em conta.',
270
-	'form_prop_confirmer_envoi' => 'Confirmar o envio',
271
-	'form_prop_description' => 'Descrição/comentário',
272
-	'form_prop_enregistre' => 'A sua proposta foi registada. Aparecerá online após a validação pelos responsáveis deste sítio.',
273
-	'form_prop_envoyer' => 'Enviar uma mensagem',
274
-	'form_prop_indiquer_email' => 'Por favor indique um endereço email válido',
275
-	'form_prop_indiquer_nom_site' => 'Por favor indique o nome do sítio.',
276
-	'form_prop_indiquer_sujet' => 'Por favor indique um tema',
277
-	'form_prop_message_envoye' => 'Mensagem enviada',
278
-	'form_prop_non_enregistre' => 'A sua proposta não foi registada.',
279
-	'form_prop_sujet' => 'Tema',
280
-	'form_prop_url_site' => 'Endereço (URL) do sítio',
281
-	'forum_non_inscrit' => 'Não está inscrito, ou o endereço ou a palavra-passe estão errados.',
282
-	'forum_par_auteur' => 'por @auteur@',
283
-	'forum_titre_erreur' => 'Erro...',
265
+    'form_indiquer_email' => 'Por favor indique o seu endereço email.',
266
+    'form_indiquer_nom' => 'Por favor indique o seu nome.',
267
+    'form_indiquer_nom_site' => 'Por favor indique o nome do seu sítio.',
268
+    'form_pet_deja_enregistre' => 'Este sítio já está registado',
269
+    'form_pet_signature_pasprise' => 'A sua assinatura não está tomada em conta.',
270
+    'form_prop_confirmer_envoi' => 'Confirmar o envio',
271
+    'form_prop_description' => 'Descrição/comentário',
272
+    'form_prop_enregistre' => 'A sua proposta foi registada. Aparecerá online após a validação pelos responsáveis deste sítio.',
273
+    'form_prop_envoyer' => 'Enviar uma mensagem',
274
+    'form_prop_indiquer_email' => 'Por favor indique um endereço email válido',
275
+    'form_prop_indiquer_nom_site' => 'Por favor indique o nome do sítio.',
276
+    'form_prop_indiquer_sujet' => 'Por favor indique um tema',
277
+    'form_prop_message_envoye' => 'Mensagem enviada',
278
+    'form_prop_non_enregistre' => 'A sua proposta não foi registada.',
279
+    'form_prop_sujet' => 'Tema',
280
+    'form_prop_url_site' => 'Endereço (URL) do sítio',
281
+    'forum_non_inscrit' => 'Não está inscrito, ou o endereço ou a palavra-passe estão errados.',
282
+    'forum_par_auteur' => 'por @auteur@',
283
+    'forum_titre_erreur' => 'Erro...',
284 284
 
285
-	// I
286
-	'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste sítio encontra-se neste endereço:',
287
-	'ical_texte_rss_articles2' => 'Pode igualmente obter os ficheiros «backend» para os artigos de cada rubrica do sítio:',
288
-	'ical_texte_rss_breves' => 'Existe também um ficheiro contendo notícias do sítio. Especificando um número de rubrica, obterá unicamente as notícias dessa rubrica.',
289
-	'icone_a_suivre' => 'Continua',
290
-	'icone_admin_site' => 'Administração do sítio',
291
-	'icone_agenda' => 'Agenda e correio',
292
-	'icone_aide_ligne' => 'Ajuda',
293
-	'icone_articles' => 'Artigos',
294
-	'icone_auteurs' => 'Autores',
295
-	'icone_brouteur' => 'Navegação rápida',
296
-	'icone_configuration_site' => 'Configuração',
297
-	'icone_configurer_site' => 'Configurar o seu sítio',
298
-	'icone_creer_nouvel_auteur' => 'Criar um novo autor',
299
-	'icone_creer_rubrique' => 'Criar uma rubrica',
300
-	'icone_creer_sous_rubrique' => 'Criar uma sub-rubrica',
301
-	'icone_deconnecter' => 'Sair',
302
-	'icone_discussions' => 'Discussões',
303
-	'icone_doc_rubrique' => 'Documentos das rubricas',
304
-	'icone_ecrire_article' => 'Escrever um novo artigo',
305
-	'icone_edition_site' => 'Edição',
306
-	'icone_gestion_langues' => 'Opções de idiomas',
307
-	'icone_informations_personnelles' => 'Informações pessoais',
308
-	'icone_interface_complet' => 'interface completa',
309
-	'icone_interface_simple' => 'Interface simplificada',
310
-	'icone_maintenance_site' => 'Manutenção do sítio',
311
-	'icone_messagerie_personnelle' => 'Mensagens privadas',
312
-	'icone_repartition_debut' => 'Exibir a distribuição desde o início',
313
-	'icone_rubriques' => 'Rubricas',
314
-	'icone_sauver_site' => 'Cópia de segurança do sítio',
315
-	'icone_site_entier' => 'Todo o sítio',
316
-	'icone_sites_references' => 'Sítios referenciados',
317
-	'icone_statistiques' => 'Estatísticas do sítio',
318
-	'icone_suivi_activite' => 'Acompanhar a actividade do sítio',
319
-	'icone_suivi_actualite' => 'Evolução do sítio',
320
-	'icone_suivi_pettions' => 'Seguir/gerir os abaixo-assinados',
321
-	'icone_suivi_revisions' => 'Modificações dos artigos',
322
-	'icone_supprimer_document' => 'Suprimir este documento',
323
-	'icone_supprimer_image' => 'Suprimir esta imagem',
324
-	'icone_tous_articles' => 'Todos os seus artigos',
325
-	'icone_tous_auteur' => 'Todos os autores',
326
-	'icone_tous_visiteur' => 'Todos os visitantes',
327
-	'icone_visiter_site' => 'Visitar o sítio público',
328
-	'icone_voir_en_ligne' => 'Ver online',
329
-	'img_indisponible' => 'imagem indisponível',
330
-	'impossible' => 'impossível',
331
-	'info_a_suivre' => 'A SEGUIR »',
332
-	'info_acces_interdit' => 'Acesso proibido',
333
-	'info_acces_refuse' => 'Acesso recusado',
334
-	'info_action' => 'Acção : @action@',
335
-	'info_administrer_rubriques' => 'Pode administrar esta rubrica e as suas sub-rubricas',
336
-	'info_adresse_non_indiquee' => 'Não indicou endereço a testar !',
337
-	'info_aide' => 'AJUDA',
338
-	'info_ajouter_mot' => 'Acrescentar esta palavra',
339
-	'info_annonce' => 'ANÚNCIO',
340
-	'info_annonces_generales' => 'Anúncios gerais :',
341
-	'info_article_propose' => 'Artigo proposto',
342
-	'info_article_publie' => 'Artigo publicado',
343
-	'info_article_redaction' => 'Artigo em curso de redacção',
344
-	'info_article_refuse' => 'Artigo recusado',
345
-	'info_article_supprime' => 'Artigo suprimido',
346
-	'info_articles' => 'Artigos',
347
-	'info_articles_a_valider' => 'Os artigos a validar',
348
-	'info_articles_nb' => '@nb@ artigos',
349
-	'info_articles_proposes' => 'Artigos propostos',
350
-	'info_articles_un' => '1 artigo',
351
-	'info_auteurs_nombre' => 'autor(es) :',
352
-	'info_authentification_ftp' => 'Autenticação (por FTP)',
353
-	'info_breves_2' => 'notícias',
354
-	'info_breves_nb' => '@nb@ notícias',
355
-	'info_breves_un' => '1 notícia',
356
-	'info_connexion_refusee' => 'Ligação recusada',
357
-	'info_contact_developpeur' => 'Por favor contacte um programador',
358
-	'info_contenance' => 'Este sítio contém:',
359
-	'info_contribution' => 'contribuições de fórum',
360
-	'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
361
-	'info_copyright_doc' => 'Para mais informações, visite o sítio <a href="@spipnet@">@spipnet_affiche@</a',
362
-	'info_copyright_gpl' => 'sob licença GPL',
363
-	'info_cours_edition' => 'Os seus artigos em curso de redacção', # MODIF
364
-	'info_creer_repertoire' => 'Por favor crie um ficheiro ou um directório chamado :',
365
-	'info_creer_repertoire_2' => 'dentro do sub-directório <b>@repertoire@</b>, depois :',
366
-	'info_creer_vignette' => 'criação automática de miniatura',
367
-	'info_creerdansrubrique_non_autorise' => 'Não tem direitos suficientes para criar conteúdo nesta rubrica.',
368
-	'info_deplier' => 'Desenvolver',
369
-	'info_descriptif_nombre' => 'descritivo(s) :',
370
-	'info_description' => 'Descrição :',
371
-	'info_description_2' => 'Descrição :',
372
-	'info_dimension' => 'Dimensões :',
373
-	'info_documents_nb' => '@nb@ documentos',
374
-	'info_documents_un' => '1 documento',
375
-	'info_ecire_message_prive' => 'Escrever uma mensagem privada',
376
-	'info_email_invalide' => 'Endereço email inválido.',
377
-	'info_en_cours_validation' => 'Os seus artigos em curso de redação',
378
-	'info_en_ligne' => 'Actualmente online:',
379
-	'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
380
-	'info_erreur_requete' => 'Erro no pedido :',
381
-	'info_erreur_squelette2' => 'Modelo <b>@fichier@</b> não disponível...',
382
-	'info_erreur_systeme' => 'Erro de Sistema (errno @errsys@)',
383
-	'info_erreur_systeme2' => 'O disco rígido poderá estar cheio, ou a base de dados danificada.<br />
285
+    // I
286
+    'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste sítio encontra-se neste endereço:',
287
+    'ical_texte_rss_articles2' => 'Pode igualmente obter os ficheiros «backend» para os artigos de cada rubrica do sítio:',
288
+    'ical_texte_rss_breves' => 'Existe também um ficheiro contendo notícias do sítio. Especificando um número de rubrica, obterá unicamente as notícias dessa rubrica.',
289
+    'icone_a_suivre' => 'Continua',
290
+    'icone_admin_site' => 'Administração do sítio',
291
+    'icone_agenda' => 'Agenda e correio',
292
+    'icone_aide_ligne' => 'Ajuda',
293
+    'icone_articles' => 'Artigos',
294
+    'icone_auteurs' => 'Autores',
295
+    'icone_brouteur' => 'Navegação rápida',
296
+    'icone_configuration_site' => 'Configuração',
297
+    'icone_configurer_site' => 'Configurar o seu sítio',
298
+    'icone_creer_nouvel_auteur' => 'Criar um novo autor',
299
+    'icone_creer_rubrique' => 'Criar uma rubrica',
300
+    'icone_creer_sous_rubrique' => 'Criar uma sub-rubrica',
301
+    'icone_deconnecter' => 'Sair',
302
+    'icone_discussions' => 'Discussões',
303
+    'icone_doc_rubrique' => 'Documentos das rubricas',
304
+    'icone_ecrire_article' => 'Escrever um novo artigo',
305
+    'icone_edition_site' => 'Edição',
306
+    'icone_gestion_langues' => 'Opções de idiomas',
307
+    'icone_informations_personnelles' => 'Informações pessoais',
308
+    'icone_interface_complet' => 'interface completa',
309
+    'icone_interface_simple' => 'Interface simplificada',
310
+    'icone_maintenance_site' => 'Manutenção do sítio',
311
+    'icone_messagerie_personnelle' => 'Mensagens privadas',
312
+    'icone_repartition_debut' => 'Exibir a distribuição desde o início',
313
+    'icone_rubriques' => 'Rubricas',
314
+    'icone_sauver_site' => 'Cópia de segurança do sítio',
315
+    'icone_site_entier' => 'Todo o sítio',
316
+    'icone_sites_references' => 'Sítios referenciados',
317
+    'icone_statistiques' => 'Estatísticas do sítio',
318
+    'icone_suivi_activite' => 'Acompanhar a actividade do sítio',
319
+    'icone_suivi_actualite' => 'Evolução do sítio',
320
+    'icone_suivi_pettions' => 'Seguir/gerir os abaixo-assinados',
321
+    'icone_suivi_revisions' => 'Modificações dos artigos',
322
+    'icone_supprimer_document' => 'Suprimir este documento',
323
+    'icone_supprimer_image' => 'Suprimir esta imagem',
324
+    'icone_tous_articles' => 'Todos os seus artigos',
325
+    'icone_tous_auteur' => 'Todos os autores',
326
+    'icone_tous_visiteur' => 'Todos os visitantes',
327
+    'icone_visiter_site' => 'Visitar o sítio público',
328
+    'icone_voir_en_ligne' => 'Ver online',
329
+    'img_indisponible' => 'imagem indisponível',
330
+    'impossible' => 'impossível',
331
+    'info_a_suivre' => 'A SEGUIR »',
332
+    'info_acces_interdit' => 'Acesso proibido',
333
+    'info_acces_refuse' => 'Acesso recusado',
334
+    'info_action' => 'Acção : @action@',
335
+    'info_administrer_rubriques' => 'Pode administrar esta rubrica e as suas sub-rubricas',
336
+    'info_adresse_non_indiquee' => 'Não indicou endereço a testar !',
337
+    'info_aide' => 'AJUDA',
338
+    'info_ajouter_mot' => 'Acrescentar esta palavra',
339
+    'info_annonce' => 'ANÚNCIO',
340
+    'info_annonces_generales' => 'Anúncios gerais :',
341
+    'info_article_propose' => 'Artigo proposto',
342
+    'info_article_publie' => 'Artigo publicado',
343
+    'info_article_redaction' => 'Artigo em curso de redacção',
344
+    'info_article_refuse' => 'Artigo recusado',
345
+    'info_article_supprime' => 'Artigo suprimido',
346
+    'info_articles' => 'Artigos',
347
+    'info_articles_a_valider' => 'Os artigos a validar',
348
+    'info_articles_nb' => '@nb@ artigos',
349
+    'info_articles_proposes' => 'Artigos propostos',
350
+    'info_articles_un' => '1 artigo',
351
+    'info_auteurs_nombre' => 'autor(es) :',
352
+    'info_authentification_ftp' => 'Autenticação (por FTP)',
353
+    'info_breves_2' => 'notícias',
354
+    'info_breves_nb' => '@nb@ notícias',
355
+    'info_breves_un' => '1 notícia',
356
+    'info_connexion_refusee' => 'Ligação recusada',
357
+    'info_contact_developpeur' => 'Por favor contacte um programador',
358
+    'info_contenance' => 'Este sítio contém:',
359
+    'info_contribution' => 'contribuições de fórum',
360
+    'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
361
+    'info_copyright_doc' => 'Para mais informações, visite o sítio <a href="@spipnet@">@spipnet_affiche@</a',
362
+    'info_copyright_gpl' => 'sob licença GPL',
363
+    'info_cours_edition' => 'Os seus artigos em curso de redacção', # MODIF
364
+    'info_creer_repertoire' => 'Por favor crie um ficheiro ou um directório chamado :',
365
+    'info_creer_repertoire_2' => 'dentro do sub-directório <b>@repertoire@</b>, depois :',
366
+    'info_creer_vignette' => 'criação automática de miniatura',
367
+    'info_creerdansrubrique_non_autorise' => 'Não tem direitos suficientes para criar conteúdo nesta rubrica.',
368
+    'info_deplier' => 'Desenvolver',
369
+    'info_descriptif_nombre' => 'descritivo(s) :',
370
+    'info_description' => 'Descrição :',
371
+    'info_description_2' => 'Descrição :',
372
+    'info_dimension' => 'Dimensões :',
373
+    'info_documents_nb' => '@nb@ documentos',
374
+    'info_documents_un' => '1 documento',
375
+    'info_ecire_message_prive' => 'Escrever uma mensagem privada',
376
+    'info_email_invalide' => 'Endereço email inválido.',
377
+    'info_en_cours_validation' => 'Os seus artigos em curso de redação',
378
+    'info_en_ligne' => 'Actualmente online:',
379
+    'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
380
+    'info_erreur_requete' => 'Erro no pedido :',
381
+    'info_erreur_squelette2' => 'Modelo <b>@fichier@</b> não disponível...',
382
+    'info_erreur_systeme' => 'Erro de Sistema (errno @errsys@)',
383
+    'info_erreur_systeme2' => 'O disco rígido poderá estar cheio, ou a base de dados danificada.<br />
384 384
 <span style="color:red;">Tente <a href=\'@script@\'>reparar a base de dados </a>, ou contacte o seu fornecedor de internet.</span>',
385
-	'info_fini' => 'Terminou !',
386
-	'info_format_image' => 'Formatos de imagens que podem ser utilizadas para criar vinhetas : @gd_formats@.',
387
-	'info_format_non_defini' => 'formato não definido',
388
-	'info_grand_ecran' => 'Ecrã total',
389
-	'info_image_aide' => 'AJUDA',
390
-	'info_image_process_titre' => 'Como criar miniaturas',
391
-	'info_impossible_lire_page' => '<b>Erro !</b> Impossível ler a página<tt><html>@test_proxy@</html></tt> através do proxy <tt>',
392
-	'info_installation_systeme_publication' => 'Instalação do sistema de publicação',
393
-	'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos na pasta @upload@.',
394
-	'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) ficheiros na pasta @upload@ para depois seleccioná-los directamente aqui.',
395
-	'info_installer_images' => 'Pode instalar imagens nos formatos JPEG, GIF e PNG.',
396
-	'info_installer_images_dossier' => 'Instalar imagens na pasta @upload@ para poder seleccioná-los aqui.',
397
-	'info_interface_complete' => 'Interface completa',
398
-	'info_interface_simple' => 'Interface simplificada',
399
-	'info_joindre_document_article' => 'Pode juntar a este artigo documentos de tipo',
400
-	'info_joindre_document_rubrique' => 'Pode acrescentar a esta rubrica documentos de tipo',
401
-	'info_joindre_documents_article' => 'Pode juntar ao seu artigo documentos de tipo :',
402
-	'info_l_article' => 'o artigo',
403
-	'info_la_breve' => 'a notícia',
404
-	'info_la_rubrique' => 'a rubrica',
405
-	'info_langue_principale' => 'Idioma principal do sítio',
406
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
407
-	'info_les_auteurs_1' => 'por @les_auteurs@',
408
-	'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
409
-	'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
410
-	'info_mail_fournisseur' => 'você@seucorreio.com',
411
-	'info_message_2' => 'MENSAGEM',
412
-	'info_message_supprime' => 'MENSAGEM ELIMINADA',
413
-	'info_messages_nb' => '@nb@ mensagens',
414
-	'info_messages_un' => '1 mensagem',
415
-	'info_mise_en_ligne' => 'Data de colocação online :',
416
-	'info_modification_parametres_securite' => 'modificação dos parâmetros de segurança',
417
-	'info_mois_courant' => 'Durante o mês :',
418
-	'info_mot_cle_ajoute' => 'A seguinte palavra-chave foi acrescentada a',
419
-	'info_multi_herit' => 'Idioma por defeito',
420
-	'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhadas</u> beneficiam de uma tradução de todos os textos da interface. Se seleccionar esses idiomas, muitos elementos do sítio público (datas, formulários) serão automaticamente traduzidos. Para os idiomas não sublinhadas, esses elementos aparecerão no idioma principal do sítio.',
421
-	'info_multilinguisme' => 'Multilinguismo',
422
-	'info_nom_non_utilisateurs_connectes' => 'O seu nome não aparece na lista dos utilizadores ligados.',
423
-	'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista dos utilizadores ligados.',
424
-	'info_nombre_en_ligne' => 'Actualmente online :',
425
-	'info_non_resultat' => 'Nenhum resultado para "@cherche_mot@"',
426
-	'info_non_utilisation_messagerie' => 'Não utiliza o correio interno deste sítio.',
427
-	'info_nouveau_message' => 'TEM UMA NOVA MENSAGEM',
428
-	'info_nouveaux_messages' => 'TEM @total_messages@ NOVAS MENSAGENS',
429
-	'info_numero_abbreviation' => '<N° >',
430
-	'info_obligatoire' => 'Esta informação é obrigatória',
431
-	'info_pense_bete' => 'MEMORANDO',
432
-	'info_petit_ecran' => 'Ecrã Pequeno',
433
-	'info_petition_close' => 'Petição encerrada',
434
-	'info_pixels' => 'pixels',
435
-	'info_plusieurs_mots_trouves' => 'Muitas palavras-chave encontradas para "@cherche_mot@":',
436
-	'info_portfolio_automatique' => 'Portfolio automático :',
437
-	'info_premier_resultat' => '[@debut_limit@ primeiros resultados em @total@]',
438
-	'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados em @total@]',
439
-	'info_propose_1' => '[@nom_site_spip@] Proposto : @titre@',
440
-	'info_propose_2' => 'Artigos propostos
385
+    'info_fini' => 'Terminou !',
386
+    'info_format_image' => 'Formatos de imagens que podem ser utilizadas para criar vinhetas : @gd_formats@.',
387
+    'info_format_non_defini' => 'formato não definido',
388
+    'info_grand_ecran' => 'Ecrã total',
389
+    'info_image_aide' => 'AJUDA',
390
+    'info_image_process_titre' => 'Como criar miniaturas',
391
+    'info_impossible_lire_page' => '<b>Erro !</b> Impossível ler a página<tt><html>@test_proxy@</html></tt> através do proxy <tt>',
392
+    'info_installation_systeme_publication' => 'Instalação do sistema de publicação',
393
+    'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos na pasta @upload@.',
394
+    'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) ficheiros na pasta @upload@ para depois seleccioná-los directamente aqui.',
395
+    'info_installer_images' => 'Pode instalar imagens nos formatos JPEG, GIF e PNG.',
396
+    'info_installer_images_dossier' => 'Instalar imagens na pasta @upload@ para poder seleccioná-los aqui.',
397
+    'info_interface_complete' => 'Interface completa',
398
+    'info_interface_simple' => 'Interface simplificada',
399
+    'info_joindre_document_article' => 'Pode juntar a este artigo documentos de tipo',
400
+    'info_joindre_document_rubrique' => 'Pode acrescentar a esta rubrica documentos de tipo',
401
+    'info_joindre_documents_article' => 'Pode juntar ao seu artigo documentos de tipo :',
402
+    'info_l_article' => 'o artigo',
403
+    'info_la_breve' => 'a notícia',
404
+    'info_la_rubrique' => 'a rubrica',
405
+    'info_langue_principale' => 'Idioma principal do sítio',
406
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
407
+    'info_les_auteurs_1' => 'por @les_auteurs@',
408
+    'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
409
+    'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
410
+    'info_mail_fournisseur' => 'você@seucorreio.com',
411
+    'info_message_2' => 'MENSAGEM',
412
+    'info_message_supprime' => 'MENSAGEM ELIMINADA',
413
+    'info_messages_nb' => '@nb@ mensagens',
414
+    'info_messages_un' => '1 mensagem',
415
+    'info_mise_en_ligne' => 'Data de colocação online :',
416
+    'info_modification_parametres_securite' => 'modificação dos parâmetros de segurança',
417
+    'info_mois_courant' => 'Durante o mês :',
418
+    'info_mot_cle_ajoute' => 'A seguinte palavra-chave foi acrescentada a',
419
+    'info_multi_herit' => 'Idioma por defeito',
420
+    'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhadas</u> beneficiam de uma tradução de todos os textos da interface. Se seleccionar esses idiomas, muitos elementos do sítio público (datas, formulários) serão automaticamente traduzidos. Para os idiomas não sublinhadas, esses elementos aparecerão no idioma principal do sítio.',
421
+    'info_multilinguisme' => 'Multilinguismo',
422
+    'info_nom_non_utilisateurs_connectes' => 'O seu nome não aparece na lista dos utilizadores ligados.',
423
+    'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista dos utilizadores ligados.',
424
+    'info_nombre_en_ligne' => 'Actualmente online :',
425
+    'info_non_resultat' => 'Nenhum resultado para "@cherche_mot@"',
426
+    'info_non_utilisation_messagerie' => 'Não utiliza o correio interno deste sítio.',
427
+    'info_nouveau_message' => 'TEM UMA NOVA MENSAGEM',
428
+    'info_nouveaux_messages' => 'TEM @total_messages@ NOVAS MENSAGENS',
429
+    'info_numero_abbreviation' => '<N° >',
430
+    'info_obligatoire' => 'Esta informação é obrigatória',
431
+    'info_pense_bete' => 'MEMORANDO',
432
+    'info_petit_ecran' => 'Ecrã Pequeno',
433
+    'info_petition_close' => 'Petição encerrada',
434
+    'info_pixels' => 'pixels',
435
+    'info_plusieurs_mots_trouves' => 'Muitas palavras-chave encontradas para "@cherche_mot@":',
436
+    'info_portfolio_automatique' => 'Portfolio automático :',
437
+    'info_premier_resultat' => '[@debut_limit@ primeiros resultados em @total@]',
438
+    'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados em @total@]',
439
+    'info_propose_1' => '[@nom_site_spip@] Proposto : @titre@',
440
+    'info_propose_2' => 'Artigos propostos
441 441
 ----------------',
442
-	'info_propose_3' => 'O artigo "@titre@" é proposto para publicação.',
443
-	'info_propose_4' => 'Está convidado a vir consultá-lo e a dar a sua opinião',
444
-	'info_propose_5' => 'no fórum que lhe está ligado. Está disponível no endereço:',
445
-	'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
446
-	'info_publie_1' => '[@nom_site_spip@] PUBLICADO : @titre@',
447
-	'info_publie_2' => 'Artigo publicado
442
+    'info_propose_3' => 'O artigo "@titre@" é proposto para publicação.',
443
+    'info_propose_4' => 'Está convidado a vir consultá-lo e a dar a sua opinião',
444
+    'info_propose_5' => 'no fórum que lhe está ligado. Está disponível no endereço:',
445
+    'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
446
+    'info_publie_1' => '[@nom_site_spip@] PUBLICADO : @titre@',
447
+    'info_publie_2' => 'Artigo publicado
448 448
 --------------',
449
-	'info_rechercher' => 'Procurar',
450
-	'info_rechercher_02' => 'Procurar :',
451
-	'info_remplacer_vignette' => 'Substituir a miniatura por defeito por um logotipo personalizado :',
452
-	'info_rubriques_nb' => '@nb@ rubricas',
453
-	'info_rubriques_un' => '1 rubrica',
454
-	'info_sans_titre_2' => 'sem título',
455
-	'info_selectionner_fichier' => 'Pode seleccionar um ficheiro da pasta @upload@',
456
-	'info_selectionner_fichier_2' => 'Seleccionar um ficheiro :',
457
-	'info_sites_nb' => '@nb@ sítios',
458
-	'info_sites_un' => '1 sítio',
459
-	'info_supprimer_vignette' => 'suprimir a miniatura',
460
-	'info_symbole_bleu' => 'O símbolo <b>azul</b> indica um<b>memorando </b>: isto é uma mensagem para o seu uso pessoal.',
461
-	'info_symbole_jaune' => 'O símbolo<b>amarelo</b> indica um <b>anúncio a todos os redactores</b> : modificável por todos os administradores, e visível por todos os redactores.',
462
-	'info_symbole_vert' => 'O símbolo<b>verde</b> indica as <b>mensagens trocadas com outros utilizadores</b> do sítio.',
463
-	'info_telecharger_nouveau_logo' => 'Telecarregar um novo logotipo :',
464
-	'info_telecharger_ordinateur' => 'Telecarregar do seu computador :',
465
-	'info_tous_resultats_enregistres' => '[todos os  resultados estão registados]',
466
-	'info_tout_afficher' => 'Exibir tudo',
467
-	'info_travaux_texte' => 'Este sítio ainda não está configurado. Volte mais tarde...',
468
-	'info_travaux_titre' => 'Sítio em construção',
469
-	'info_trop_resultat' => 'Demasiado resultados para "@cherche_mot@". Por favor afine a pesquisa.',
470
-	'info_utilisation_messagerie_interne' => 'Você utiliza o correio interno deste sítio.',
471
-	'info_valider_lien' => 'validar esta ligação',
472
-	'info_verifier_image' => ', Por favor verifique se as suas imagens foram transferidas correctamente.',
473
-	'info_vignette_defaut' => 'Miniatura por defeito',
474
-	'info_vignette_personnalisee' => 'Miniatura personalizada',
475
-	'info_visite' => 'visita :',
476
-	'info_vos_rendez_vous' => 'Os seus futuros encontros',
477
-	'infos_vos_pense_bete' => 'Os seus memorandos',
449
+    'info_rechercher' => 'Procurar',
450
+    'info_rechercher_02' => 'Procurar :',
451
+    'info_remplacer_vignette' => 'Substituir a miniatura por defeito por um logotipo personalizado :',
452
+    'info_rubriques_nb' => '@nb@ rubricas',
453
+    'info_rubriques_un' => '1 rubrica',
454
+    'info_sans_titre_2' => 'sem título',
455
+    'info_selectionner_fichier' => 'Pode seleccionar um ficheiro da pasta @upload@',
456
+    'info_selectionner_fichier_2' => 'Seleccionar um ficheiro :',
457
+    'info_sites_nb' => '@nb@ sítios',
458
+    'info_sites_un' => '1 sítio',
459
+    'info_supprimer_vignette' => 'suprimir a miniatura',
460
+    'info_symbole_bleu' => 'O símbolo <b>azul</b> indica um<b>memorando </b>: isto é uma mensagem para o seu uso pessoal.',
461
+    'info_symbole_jaune' => 'O símbolo<b>amarelo</b> indica um <b>anúncio a todos os redactores</b> : modificável por todos os administradores, e visível por todos os redactores.',
462
+    'info_symbole_vert' => 'O símbolo<b>verde</b> indica as <b>mensagens trocadas com outros utilizadores</b> do sítio.',
463
+    'info_telecharger_nouveau_logo' => 'Telecarregar um novo logotipo :',
464
+    'info_telecharger_ordinateur' => 'Telecarregar do seu computador :',
465
+    'info_tous_resultats_enregistres' => '[todos os  resultados estão registados]',
466
+    'info_tout_afficher' => 'Exibir tudo',
467
+    'info_travaux_texte' => 'Este sítio ainda não está configurado. Volte mais tarde...',
468
+    'info_travaux_titre' => 'Sítio em construção',
469
+    'info_trop_resultat' => 'Demasiado resultados para "@cherche_mot@". Por favor afine a pesquisa.',
470
+    'info_utilisation_messagerie_interne' => 'Você utiliza o correio interno deste sítio.',
471
+    'info_valider_lien' => 'validar esta ligação',
472
+    'info_verifier_image' => ', Por favor verifique se as suas imagens foram transferidas correctamente.',
473
+    'info_vignette_defaut' => 'Miniatura por defeito',
474
+    'info_vignette_personnalisee' => 'Miniatura personalizada',
475
+    'info_visite' => 'visita :',
476
+    'info_vos_rendez_vous' => 'Os seus futuros encontros',
477
+    'infos_vos_pense_bete' => 'Os seus memorandos',
478 478
 
479
-	// L
480
-	'label_ajout_id_rapide' => 'Adição rápida',
481
-	'label_poids_fichier' => 'Dimensões',
482
-	'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
483
-	'lien_afficher_texte_icones' => 'Exibir ícones e o texto',
484
-	'lien_afficher_texte_seul' => 'Exibir apenas o texto',
485
-	'lien_liberer' => 'desbloquear',
486
-	'lien_liberer_tous' => 'desbloquear estes artigos',
487
-	'lien_nouvea_pense_bete' => 'NOVO MEMORANDO',
488
-	'lien_nouveau_message' => 'NOVA MENSAGEM',
489
-	'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
490
-	'lien_petitions' => 'PETIÇÃO',
491
-	'lien_popularite' => 'popularidade : @popularite@%',
492
-	'lien_racine_site' => 'RAIZ DO SÍTIO',
493
-	'lien_reessayer' => 'tentar de novo',
494
-	'lien_repondre_message' => 'Responder a esta mensagem',
495
-	'lien_supprimer' => 'eliminar',
496
-	'lien_tout_afficher' => 'Exibir tudo',
497
-	'lien_visite_site' => 'visitar este sítio',
498
-	'lien_visites' => '@visites@ visitas',
499
-	'lien_voir_auteur' => 'Ver este autor',
500
-	'ligne' => 'Linha',
501
-	'login' => 'Ligação',
502
-	'login_acces_prive' => 'acesso ao espaço privado',
503
-	'login_autre_identifiant' => 'ligar-se sob um outro identificador',
504
-	'login_cookie_accepte' => 'Por favor configure o seu navegador para que os aceite (pelo menos para este sítio).',
505
-	'login_cookie_oblige' => 'Para se identificar de maneira segura neste sítio, deve aceitar os cookies.',
506
-	'login_deconnexion_ok' => 'Ligação terminada.',
507
-	'login_erreur_pass' => 'Erro de palavra-passe',
508
-	'login_espace_prive' => 'área privada',
509
-	'login_identifiant_inconnu' => 'O identificador « @login@ » é desconhecido.',
510
-	'login_login' => 'Login :',
511
-	'login_login2' => 'Login ou endereço de e-mail :',
512
-	'login_login_pass_incorrect' => '(Login ou palavra-passe incorrecta.)',
513
-	'login_motpasseoublie' => 'palavra - passe esquecida ?',
514
-	'login_non_securise' => 'Atenção, este formulário não é seguro.
479
+    // L
480
+    'label_ajout_id_rapide' => 'Adição rápida',
481
+    'label_poids_fichier' => 'Dimensões',
482
+    'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
483
+    'lien_afficher_texte_icones' => 'Exibir ícones e o texto',
484
+    'lien_afficher_texte_seul' => 'Exibir apenas o texto',
485
+    'lien_liberer' => 'desbloquear',
486
+    'lien_liberer_tous' => 'desbloquear estes artigos',
487
+    'lien_nouvea_pense_bete' => 'NOVO MEMORANDO',
488
+    'lien_nouveau_message' => 'NOVA MENSAGEM',
489
+    'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
490
+    'lien_petitions' => 'PETIÇÃO',
491
+    'lien_popularite' => 'popularidade : @popularite@%',
492
+    'lien_racine_site' => 'RAIZ DO SÍTIO',
493
+    'lien_reessayer' => 'tentar de novo',
494
+    'lien_repondre_message' => 'Responder a esta mensagem',
495
+    'lien_supprimer' => 'eliminar',
496
+    'lien_tout_afficher' => 'Exibir tudo',
497
+    'lien_visite_site' => 'visitar este sítio',
498
+    'lien_visites' => '@visites@ visitas',
499
+    'lien_voir_auteur' => 'Ver este autor',
500
+    'ligne' => 'Linha',
501
+    'login' => 'Ligação',
502
+    'login_acces_prive' => 'acesso ao espaço privado',
503
+    'login_autre_identifiant' => 'ligar-se sob um outro identificador',
504
+    'login_cookie_accepte' => 'Por favor configure o seu navegador para que os aceite (pelo menos para este sítio).',
505
+    'login_cookie_oblige' => 'Para se identificar de maneira segura neste sítio, deve aceitar os cookies.',
506
+    'login_deconnexion_ok' => 'Ligação terminada.',
507
+    'login_erreur_pass' => 'Erro de palavra-passe',
508
+    'login_espace_prive' => 'área privada',
509
+    'login_identifiant_inconnu' => 'O identificador « @login@ » é desconhecido.',
510
+    'login_login' => 'Login :',
511
+    'login_login2' => 'Login ou endereço de e-mail :',
512
+    'login_login_pass_incorrect' => '(Login ou palavra-passe incorrecta.)',
513
+    'login_motpasseoublie' => 'palavra - passe esquecida ?',
514
+    'login_non_securise' => 'Atenção, este formulário não é seguro.
515 515
  Se não quiser que a sua palavra-passe seja
516 516
  interceptada na rede, por favor active Javascript
517 517
  no seu navegador e',
518
-	'login_nouvelle_tentative' => 'Nova tentativa',
519
-	'login_par_ici' => 'Você está registado... por aqui....',
520
-	'login_pass2' => 'Palavra-passe :',
521
-	'login_preferez_refuser' => '<b>Se prefere recusar os cookies</b>, um outro método de ligação (menos seguro) está à sua disposição',
522
-	'login_recharger' => 'carregar de novo esta página ',
523
-	'login_rester_identifie' => 'Permanecer identificado durante alguns dias ', # MODIF
524
-	'login_retour_public' => 'Regresso ao sítio público',
525
-	'login_retour_site' => 'Regresso ao sítio público',
526
-	'login_retoursitepublic' => 'Regresso ao sítio público',
527
-	'login_securise' => 'Login seguro',
528
-	'login_sinscrire' => 'inscrever-se', # MODIF
529
-	'login_test_navigateur' => 'teste navegação/nova ligação',
530
-	'login_verifiez_navigateur' => '(Verifique, porém, que o seu navegador não memorizou a sua palavra-passe...)',
518
+    'login_nouvelle_tentative' => 'Nova tentativa',
519
+    'login_par_ici' => 'Você está registado... por aqui....',
520
+    'login_pass2' => 'Palavra-passe :',
521
+    'login_preferez_refuser' => '<b>Se prefere recusar os cookies</b>, um outro método de ligação (menos seguro) está à sua disposição',
522
+    'login_recharger' => 'carregar de novo esta página ',
523
+    'login_rester_identifie' => 'Permanecer identificado durante alguns dias ', # MODIF
524
+    'login_retour_public' => 'Regresso ao sítio público',
525
+    'login_retour_site' => 'Regresso ao sítio público',
526
+    'login_retoursitepublic' => 'Regresso ao sítio público',
527
+    'login_securise' => 'Login seguro',
528
+    'login_sinscrire' => 'inscrever-se', # MODIF
529
+    'login_test_navigateur' => 'teste navegação/nova ligação',
530
+    'login_verifiez_navigateur' => '(Verifique, porém, que o seu navegador não memorizou a sua palavra-passe...)',
531 531
 
532
-	// M
533
-	'masquer_colonne' => 'Ocultar esta coluna',
534
-	'masquer_trad' => 'ocultar as traduções',
535
-	'module_fichiers_langues' => 'Ficheiros de idioma',
532
+    // M
533
+    'masquer_colonne' => 'Ocultar esta coluna',
534
+    'masquer_trad' => 'ocultar as traduções',
535
+    'module_fichiers_langues' => 'Ficheiros de idioma',
536 536
 
537
-	// N
538
-	'navigateur_pas_redirige' => 'Se o seu navegador não está redireccionado, clique aqui para continuar.',
539
-	'numero' => 'Número',
537
+    // N
538
+    'navigateur_pas_redirige' => 'Se o seu navegador não está redireccionado, clique aqui para continuar.',
539
+    'numero' => 'Número',
540 540
 
541
-	// O
542
-	'occurence' => 'Ocorrência',
543
-	'onglet_affacer_base' => 'Apagar a base de dados',
544
-	'onglet_auteur' => 'O autor',
545
-	'onglet_contenu_site' => 'Conteúdo do sítio',
546
-	'onglet_evolution_visite_mod' => 'Evolução',
547
-	'onglet_fonctions_avances' => 'Funções avançadas',
548
-	'onglet_informations_personnelles' => 'Informações pessoais',
549
-	'onglet_interactivite' => 'Interactividade',
550
-	'onglet_messagerie' => 'Correio',
551
-	'onglet_repartition_rubrique' => 'Distribuição das rubricas',
552
-	'onglet_save_restaur_base' => 'Guardar uma cópia/restaurar a base',
553
-	'onglet_vider_cache' => 'Esvaziar a cache',
541
+    // O
542
+    'occurence' => 'Ocorrência',
543
+    'onglet_affacer_base' => 'Apagar a base de dados',
544
+    'onglet_auteur' => 'O autor',
545
+    'onglet_contenu_site' => 'Conteúdo do sítio',
546
+    'onglet_evolution_visite_mod' => 'Evolução',
547
+    'onglet_fonctions_avances' => 'Funções avançadas',
548
+    'onglet_informations_personnelles' => 'Informações pessoais',
549
+    'onglet_interactivite' => 'Interactividade',
550
+    'onglet_messagerie' => 'Correio',
551
+    'onglet_repartition_rubrique' => 'Distribuição das rubricas',
552
+    'onglet_save_restaur_base' => 'Guardar uma cópia/restaurar a base',
553
+    'onglet_vider_cache' => 'Esvaziar a cache',
554 554
 
555
-	// P
556
-	'pass_choix_pass' => 'Por favor escolha a sua nova palavra-passe',
557
-	'pass_erreur' => 'Erro',
558
-	'pass_erreur_acces_refuse' => '<b>Erro :</b> já não tem acesso a este sítio.',
559
-	'pass_erreur_code_inconnu' => '<b>Erro :</b> este código não corresponde a nenhum dos visitantes com acesso a este sítio.',
560
-	'pass_erreur_non_enregistre' => '<b>Erro :</b> o endereço <tt>@email_oubli@</tt> não está registado neste sítio. ',
561
-	'pass_erreur_non_valide' => '<b>Erro :</b> este email <tt>@email_oubli@</tt> não é válido !  ',
562
-	'pass_erreur_probleme_technique' => '<b>Erro :</b> por causa de um problema técnico, o email não pôde ser enviado.',
563
-	'pass_espace_prive_bla' => 'O espaço privado deste sítio está aberto aos
555
+    // P
556
+    'pass_choix_pass' => 'Por favor escolha a sua nova palavra-passe',
557
+    'pass_erreur' => 'Erro',
558
+    'pass_erreur_acces_refuse' => '<b>Erro :</b> já não tem acesso a este sítio.',
559
+    'pass_erreur_code_inconnu' => '<b>Erro :</b> este código não corresponde a nenhum dos visitantes com acesso a este sítio.',
560
+    'pass_erreur_non_enregistre' => '<b>Erro :</b> o endereço <tt>@email_oubli@</tt> não está registado neste sítio. ',
561
+    'pass_erreur_non_valide' => '<b>Erro :</b> este email <tt>@email_oubli@</tt> não é válido !  ',
562
+    'pass_erreur_probleme_technique' => '<b>Erro :</b> por causa de um problema técnico, o email não pôde ser enviado.',
563
+    'pass_espace_prive_bla' => 'O espaço privado deste sítio está aberto aos
564 564
  visitantes, após inscrição. Uma vez registado poderá consultar os artigos em curso de redacção,
565 565
 propor artigos e participar em todos os fóruns.',
566
-	'pass_forum_bla' => 'Pediu para intervir num fórum
566
+    'pass_forum_bla' => 'Pediu para intervir num fórum
567 567
  reservado aos visitadores registados.',
568
-	'pass_indiquez_cidessous' => 'Indique abaixo o endereço email sob o qual se registou. Receberá
568
+    'pass_indiquez_cidessous' => 'Indique abaixo o endereço email sob o qual se registou. Receberá
569 569
  um mail que indicará o procedimento a seguir para
570 570
         recuperar o seu acesso.',
571
-	'pass_mail_passcookie' => '(esta é uma mensagem automática)
571
+    'pass_mail_passcookie' => '(esta é uma mensagem automática)
572 572
 Para recuperar o seu acesso ao sítio
573 573
 @nom_site_spip@ (@adresse_site@)
574 574
 
@@ -578,137 +578,137 @@  discard block
 block discarded – undo
578 578
 
579 579
 Poderá então introduzir uma nova palavra-passe e reconectar-se ao sítio.
580 580
 ',
581
-	'pass_mot_oublie' => 'Palavra-passe esquecida',
582
-	'pass_nouveau_enregistre' => 'A sua nova palavra-passe foi registada',
583
-	'pass_nouveau_pass' => 'Nova palavra-passe',
584
-	'pass_ok' => 'OK',
585
-	'pass_oubli_mot' => 'Palavra-passe esquecida',
586
-	'pass_procedure_changer' => 'Para alterar a sua palavra-passe, temos primeiro de verificar a sua identidade. Por favor escreva o endereço e-mail associado a esta conta.', # MODIF
587
-	'pass_quitter_fenetre' => 'Fechar esta janela',
588
-	'pass_rappel_login' => 'Recorde : o seu identificador (login) é « @login@ ».',
589
-	'pass_recevoir_mail' => 'Vai receber um email que indica como recuperar o seu acesso ao sítio.', # MODIF
590
-	'pass_retour_public' => 'Regresso ao sítio público',
591
-	'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
592
-	'pass_vousinscrire' => 'Inscrever-se neste sítio',
593
-	'precedent' => 'anterior',
594
-	'previsualisation' => 'Visualização',
595
-	'previsualiser' => 'Pré-visualizar',
581
+    'pass_mot_oublie' => 'Palavra-passe esquecida',
582
+    'pass_nouveau_enregistre' => 'A sua nova palavra-passe foi registada',
583
+    'pass_nouveau_pass' => 'Nova palavra-passe',
584
+    'pass_ok' => 'OK',
585
+    'pass_oubli_mot' => 'Palavra-passe esquecida',
586
+    'pass_procedure_changer' => 'Para alterar a sua palavra-passe, temos primeiro de verificar a sua identidade. Por favor escreva o endereço e-mail associado a esta conta.', # MODIF
587
+    'pass_quitter_fenetre' => 'Fechar esta janela',
588
+    'pass_rappel_login' => 'Recorde : o seu identificador (login) é « @login@ ».',
589
+    'pass_recevoir_mail' => 'Vai receber um email que indica como recuperar o seu acesso ao sítio.', # MODIF
590
+    'pass_retour_public' => 'Regresso ao sítio público',
591
+    'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
592
+    'pass_vousinscrire' => 'Inscrever-se neste sítio',
593
+    'precedent' => 'anterior',
594
+    'previsualisation' => 'Visualização',
595
+    'previsualiser' => 'Pré-visualizar',
596 596
 
597
-	// R
598
-	'retour' => 'Retroceder',
597
+    // R
598
+    'retour' => 'Retroceder',
599 599
 
600
-	// S
601
-	'spip_conforme_dtd' => 'SPIP considera esta página em conforme com o seu DOCTYPE :',
602
-	'squelette' => 'modelo',
603
-	'squelette_inclus_ligne' => 'modelo incluído, linha',
604
-	'squelette_ligne' => 'modelo, linha',
605
-	'stats_visites_et_popularite' => '@visites@ visitas ; popularidade : @popularite@',
606
-	'suivant' => 'seguinte',
600
+    // S
601
+    'spip_conforme_dtd' => 'SPIP considera esta página em conforme com o seu DOCTYPE :',
602
+    'squelette' => 'modelo',
603
+    'squelette_inclus_ligne' => 'modelo incluído, linha',
604
+    'squelette_ligne' => 'modelo, linha',
605
+    'stats_visites_et_popularite' => '@visites@ visitas ; popularidade : @popularite@',
606
+    'suivant' => 'seguinte',
607 607
 
608
-	// T
609
-	'taille_go' => '@taille@ Gb',
610
-	'taille_ko' => '@taille@ kb',
611
-	'taille_mo' => '@taille@ Mb',
612
-	'taille_octets' => ' @taille@ bytes',
613
-	'taille_octets_bi' => ' @taille@ bytes',
614
-	'texte_actualite_site_1' => 'Quando estiver familiarizado(a) com a interface, poderá clicar em «',
615
-	'texte_actualite_site_2' => 'interface completa',
616
-	'texte_actualite_site_3' => '» para abrir mais possibilidades.',
617
-	'texte_creation_automatique_vignette' => 'A criação automática de miniaturas de pré-visualização está activada neste sítio. Se instalar a partir deste formulário imagens de formato(s) @gd_formats@, serão acompanhadas de uma miniatura de um tamanho máximo de @taille_preview@ pixels.',
618
-	'texte_documents_associes' => 'Os documentos seguintes estão associados ao artigo,
608
+    // T
609
+    'taille_go' => '@taille@ Gb',
610
+    'taille_ko' => '@taille@ kb',
611
+    'taille_mo' => '@taille@ Mb',
612
+    'taille_octets' => ' @taille@ bytes',
613
+    'taille_octets_bi' => ' @taille@ bytes',
614
+    'texte_actualite_site_1' => 'Quando estiver familiarizado(a) com a interface, poderá clicar em «',
615
+    'texte_actualite_site_2' => 'interface completa',
616
+    'texte_actualite_site_3' => '» para abrir mais possibilidades.',
617
+    'texte_creation_automatique_vignette' => 'A criação automática de miniaturas de pré-visualização está activada neste sítio. Se instalar a partir deste formulário imagens de formato(s) @gd_formats@, serão acompanhadas de uma miniatura de um tamanho máximo de @taille_preview@ pixels.',
618
+    'texte_documents_associes' => 'Os documentos seguintes estão associados ao artigo,
619 619
   mas não foram directamente
620 620
  inseridos nele. Conforme a paginação do sítio público,
621 621
   poderão aparecer sob forma de documentos anexados.',
622
-	'texte_erreur_mise_niveau_base' => 'Erro de base de dados por ocasião do nivelamento.
622
+    'texte_erreur_mise_niveau_base' => 'Erro de base de dados por ocasião do nivelamento.
623 623
    A imagem <b>@fichier@</b> não passou (artigo @id_article@).
624 624
   Note bem esta referência, volte a tentar o nivelamento, e verifique se as imagens aparecem sempre nos artigos.',
625
-	'texte_erreur_visiteur' => 'Tentou aceder à área privada usando um login não autorizado.',
626
-	'texte_inc_auth_1' => 'Você está identificado sob o
625
+    'texte_erreur_visiteur' => 'Tentou aceder à área privada usando um login não autorizado.',
626
+    'texte_inc_auth_1' => 'Você está identificado sob o
627 627
    login <b>@auth_login@</b>, mas este já/ não existe na base de dados.
628 628
  Tente',
629
-	'texte_inc_auth_2' => 'refazer a ligação',
630
-	'texte_inc_auth_3' => ', depois de eventualmente ter fechado e
629
+    'texte_inc_auth_2' => 'refazer a ligação',
630
+    'texte_inc_auth_3' => ', depois de eventualmente ter fechado e
631 631
  voltado a abrir o seu navegador.',
632
-	'texte_inc_config' => 'As modificações efectuadas nestas páginas influenciam muito o
632
+    'texte_inc_config' => 'As modificações efectuadas nestas páginas influenciam muito o
633 633
  funcionamento do seu sítio. Recomendamos que não intervenha enquanto não estiver familiarizado com o funcionamento do sistema SPIP. <br /><br /><b> Em
634 634
  geral, é fortemente recomendado
635 635
  deixar a responsabilidade dessas páginas ao webmaster principal do seu sítio. <b>',
636
-	'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do sítio, por favor,',
637
-	'texte_inc_meta_2' => 'verificar as permissões de escrita',
638
-	'texte_inc_meta_3' => 'no directório <code>@repertoire@</code>.',
639
-	'texte_statut_en_cours_redaction' => 'em curso de redacção',
640
-	'texte_statut_poubelle' => 'para o caixote de lixo',
641
-	'texte_statut_propose_evaluation' => 'proposto para avaliação',
642
-	'texte_statut_publie' => 'publicado online',
643
-	'texte_statut_refuse' => 'recusado',
644
-	'titre_ajouter_mot_cle' => 'ACRESCENTAR UMA PALAVRA-CHAVE',
645
-	'titre_cadre_raccourcis' => 'ATALHOS :',
646
-	'titre_changer_couleur_interface' => 'Mudar a cor da interface',
647
-	'titre_image_admin_article' => 'Pode administrar este artigo',
648
-	'titre_image_administrateur' => 'Administrador',
649
-	'titre_image_aide' => 'Ajuda sobre este elemento',
650
-	'titre_image_auteur_supprime' => 'Autor eliminado',
651
-	'titre_image_redacteur' => 'Redactor sem acesso',
652
-	'titre_image_redacteur_02' => 'Redactor',
653
-	'titre_image_selecteur' => 'Exibir a lista',
654
-	'titre_image_visiteur' => 'Visitante',
655
-	'titre_joindre_document' => 'ANEXAR UM DOCUMENTO',
656
-	'titre_mots_cles' => 'PALAVRAS-CHAVE',
657
-	'titre_probleme_technique' => 'Atenção : um problema técnico (servidor SQL) impede o acesso a esta parte do sítio. Obrigado pela sua compreensão.',
658
-	'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA RUBRICA',
659
-	'titre_signatures_attente' => 'Assinaturas aguardando validação',
660
-	'titre_signatures_confirmees' => 'Assinaturas confirmadas',
661
-	'titre_statistiques' => 'Estatísticas do sítio',
662
-	'titre_titre_document' => 'Título do documento :',
663
-	'todo' => 'a caminho',
664
-	'trad_reference' => '(referência para as traduções)',
636
+    'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do sítio, por favor,',
637
+    'texte_inc_meta_2' => 'verificar as permissões de escrita',
638
+    'texte_inc_meta_3' => 'no directório <code>@repertoire@</code>.',
639
+    'texte_statut_en_cours_redaction' => 'em curso de redacção',
640
+    'texte_statut_poubelle' => 'para o caixote de lixo',
641
+    'texte_statut_propose_evaluation' => 'proposto para avaliação',
642
+    'texte_statut_publie' => 'publicado online',
643
+    'texte_statut_refuse' => 'recusado',
644
+    'titre_ajouter_mot_cle' => 'ACRESCENTAR UMA PALAVRA-CHAVE',
645
+    'titre_cadre_raccourcis' => 'ATALHOS :',
646
+    'titre_changer_couleur_interface' => 'Mudar a cor da interface',
647
+    'titre_image_admin_article' => 'Pode administrar este artigo',
648
+    'titre_image_administrateur' => 'Administrador',
649
+    'titre_image_aide' => 'Ajuda sobre este elemento',
650
+    'titre_image_auteur_supprime' => 'Autor eliminado',
651
+    'titre_image_redacteur' => 'Redactor sem acesso',
652
+    'titre_image_redacteur_02' => 'Redactor',
653
+    'titre_image_selecteur' => 'Exibir a lista',
654
+    'titre_image_visiteur' => 'Visitante',
655
+    'titre_joindre_document' => 'ANEXAR UM DOCUMENTO',
656
+    'titre_mots_cles' => 'PALAVRAS-CHAVE',
657
+    'titre_probleme_technique' => 'Atenção : um problema técnico (servidor SQL) impede o acesso a esta parte do sítio. Obrigado pela sua compreensão.',
658
+    'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA RUBRICA',
659
+    'titre_signatures_attente' => 'Assinaturas aguardando validação',
660
+    'titre_signatures_confirmees' => 'Assinaturas confirmadas',
661
+    'titre_statistiques' => 'Estatísticas do sítio',
662
+    'titre_titre_document' => 'Título do documento :',
663
+    'todo' => 'a caminho',
664
+    'trad_reference' => '(referência para as traduções)',
665 665
 
666
-	// Z
667
-	'zbug_balise_b_aval' => ': tag B colocada demasiado tarde no laço infinito',
668
-	'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
669
-	'zbug_balise_sans_argument' => 'Argumento em falta na tag @balise@',
670
-	'zbug_boucle' => 'laço infinito',
671
-	'zbug_boucle_recursive_undef' => 'laço recursivo não definido @nom@',
672
-	'zbug_calcul' => 'cálculo',
673
-	'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço infinito',
674
-	'zbug_champ_hors_motif' => 'Campo @champ@ fora de contexto @motif@',
675
-	'zbug_code' => 'código',
676
-	'zbug_critere_inconnu' => 'critério desconhecido @critere@ ',
677
-	'zbug_distant_interdit' => 'Dados externos interditos',
678
-	'zbug_doublon_table_sans_cle_primaire' => 'Entradas duplas numa tabela que não tem uma chave primária simples',
679
-	'zbug_doublon_table_sans_index' => 'Entradas duplas numa tabela sem índice',
680
-	'zbug_erreur_boucle_double' => 'laço @id@: Dupla definição ',
681
-	'zbug_erreur_boucle_fermant' => 'laço @id@: tag final em falta   ',
682
-	'zbug_erreur_boucle_syntaxe' => 'Laço com sintaxe incorrecta @id@',
683
-	'zbug_erreur_compilation' => 'Erro de compilação',
684
-	'zbug_erreur_execution_page' => 'erro de execução da página',
685
-	'zbug_erreur_filtre' => 'Erro : filtro indefinido @filtre@ ',
686
-	'zbug_erreur_meme_parent' => '{meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
687
-	'zbug_erreur_squelette' => 'Erro(s) no modelo',
688
-	'zbug_hors_compilation' => 'Não compilado',
689
-	'zbug_info_erreur_squelette' => 'Erro no sítio',
690
-	'zbug_inversion_ordre_inexistant' => 'inversão de uma ordem inexistente',
691
-	'zbug_pagination_sans_critere' => '#PAGINAÇÃO sem critério {paginação} ou usada num laço recursivo',
692
-	'zbug_parametres_inclus_incorrects' => 'Parâmetros de inclusão incorrectos: @param@',
693
-	'zbug_profile' => 'Cálculo de tempo : @time@',
694
-	'zbug_resultat' => 'resultado',
695
-	'zbug_serveur_indefini' => 'Sevidor SQL não definido',
696
-	'zbug_statistiques' => 'Estatísticas das consulta SQL classificadas por duração',
697
-	'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
698
-	'zxml_connus_attributs' => 'attributos conhecidos',
699
-	'zxml_de' => 'de',
700
-	'zxml_inconnu_attribut' => 'atributo desconhecido',
701
-	'zxml_inconnu_balise' => 'tag desconhecida',
702
-	'zxml_inconnu_entite' => 'entidade desconhecida',
703
-	'zxml_inconnu_id' => 'ID desconhecido',
704
-	'zxml_mais_de' => 'mas de',
705
-	'zxml_non_conforme' => 'não está de acordo com o princípio',
706
-	'zxml_non_fils' => 'não é um filho de ',
707
-	'zxml_nonvide_balise' => 'a tag não está vazia',
708
-	'zxml_obligatoire_attribut' => 'atributo obrigatório está em falta',
709
-	'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorrecta',
710
-	'zxml_survoler' => 'para visualizar os correctos, mover o rato por cima',
711
-	'zxml_valeur_attribut' => 'valor do atributo',
712
-	'zxml_vide_balise' => 'tag vazia',
713
-	'zxml_vu' => 'visualizado antes'
666
+    // Z
667
+    'zbug_balise_b_aval' => ': tag B colocada demasiado tarde no laço infinito',
668
+    'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
669
+    'zbug_balise_sans_argument' => 'Argumento em falta na tag @balise@',
670
+    'zbug_boucle' => 'laço infinito',
671
+    'zbug_boucle_recursive_undef' => 'laço recursivo não definido @nom@',
672
+    'zbug_calcul' => 'cálculo',
673
+    'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço infinito',
674
+    'zbug_champ_hors_motif' => 'Campo @champ@ fora de contexto @motif@',
675
+    'zbug_code' => 'código',
676
+    'zbug_critere_inconnu' => 'critério desconhecido @critere@ ',
677
+    'zbug_distant_interdit' => 'Dados externos interditos',
678
+    'zbug_doublon_table_sans_cle_primaire' => 'Entradas duplas numa tabela que não tem uma chave primária simples',
679
+    'zbug_doublon_table_sans_index' => 'Entradas duplas numa tabela sem índice',
680
+    'zbug_erreur_boucle_double' => 'laço @id@: Dupla definição ',
681
+    'zbug_erreur_boucle_fermant' => 'laço @id@: tag final em falta   ',
682
+    'zbug_erreur_boucle_syntaxe' => 'Laço com sintaxe incorrecta @id@',
683
+    'zbug_erreur_compilation' => 'Erro de compilação',
684
+    'zbug_erreur_execution_page' => 'erro de execução da página',
685
+    'zbug_erreur_filtre' => 'Erro : filtro indefinido @filtre@ ',
686
+    'zbug_erreur_meme_parent' => '{meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
687
+    'zbug_erreur_squelette' => 'Erro(s) no modelo',
688
+    'zbug_hors_compilation' => 'Não compilado',
689
+    'zbug_info_erreur_squelette' => 'Erro no sítio',
690
+    'zbug_inversion_ordre_inexistant' => 'inversão de uma ordem inexistente',
691
+    'zbug_pagination_sans_critere' => '#PAGINAÇÃO sem critério {paginação} ou usada num laço recursivo',
692
+    'zbug_parametres_inclus_incorrects' => 'Parâmetros de inclusão incorrectos: @param@',
693
+    'zbug_profile' => 'Cálculo de tempo : @time@',
694
+    'zbug_resultat' => 'resultado',
695
+    'zbug_serveur_indefini' => 'Sevidor SQL não definido',
696
+    'zbug_statistiques' => 'Estatísticas das consulta SQL classificadas por duração',
697
+    'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
698
+    'zxml_connus_attributs' => 'attributos conhecidos',
699
+    'zxml_de' => 'de',
700
+    'zxml_inconnu_attribut' => 'atributo desconhecido',
701
+    'zxml_inconnu_balise' => 'tag desconhecida',
702
+    'zxml_inconnu_entite' => 'entidade desconhecida',
703
+    'zxml_inconnu_id' => 'ID desconhecido',
704
+    'zxml_mais_de' => 'mas de',
705
+    'zxml_non_conforme' => 'não está de acordo com o princípio',
706
+    'zxml_non_fils' => 'não é um filho de ',
707
+    'zxml_nonvide_balise' => 'a tag não está vazia',
708
+    'zxml_obligatoire_attribut' => 'atributo obrigatório está em falta',
709
+    'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorrecta',
710
+    'zxml_survoler' => 'para visualizar os correctos, mover o rato por cima',
711
+    'zxml_valeur_attribut' => 'valor do atributo',
712
+    'zxml_vide_balise' => 'tag vazia',
713
+    'zxml_vu' => 'visualizado antes'
714 714
 );
Please login to merge, or discard this patch.
ecrire/inc/filtres_ecrire.php 1 patch
Indentation   +362 added lines, -362 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Filtres
17 17
  */
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/filtres_boites');
@@ -41,25 +41,25 @@  discard block
 block discarded – undo
41 41
  */
42 42
 function parametres_css_prive() {
43 43
 
44
-	$args = [];
45
-	$args['v'] = $GLOBALS['spip_version_code'];
46
-	$args['p'] = substr(md5($GLOBALS['meta']['plugin']), 0, 4);
47
-	$args['themes'] = implode(',', lister_themes_prives());
48
-	$args['ltr'] = $GLOBALS['spip_lang_left'];
49
-	// un md5 des menus : si un menu change il faut maj la css
50
-	$args['md5b'] = (function_exists('md5_boutons_plugins') ? md5_boutons_plugins() : '');
44
+    $args = [];
45
+    $args['v'] = $GLOBALS['spip_version_code'];
46
+    $args['p'] = substr(md5($GLOBALS['meta']['plugin']), 0, 4);
47
+    $args['themes'] = implode(',', lister_themes_prives());
48
+    $args['ltr'] = $GLOBALS['spip_lang_left'];
49
+    // un md5 des menus : si un menu change il faut maj la css
50
+    $args['md5b'] = (function_exists('md5_boutons_plugins') ? md5_boutons_plugins() : '');
51 51
 
52
-	$c = $GLOBALS['visiteur_session']['prefs']['couleur'] ?? 2;
52
+    $c = $GLOBALS['visiteur_session']['prefs']['couleur'] ?? 2;
53 53
 
54
-	$couleurs = charger_fonction('couleurs', 'inc');
55
-	parse_str($couleurs($c), $c);
56
-	$args = array_merge($args, $c);
54
+    $couleurs = charger_fonction('couleurs', 'inc');
55
+    parse_str($couleurs($c), $c);
56
+    $args = array_merge($args, $c);
57 57
 
58
-	if (_request('var_mode') == 'recalcul' or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul')) {
59
-		$args['var_mode'] = 'recalcul';
60
-	}
58
+    if (_request('var_mode') == 'recalcul' or (defined('_VAR_MODE') and _VAR_MODE == 'recalcul')) {
59
+        $args['var_mode'] = 'recalcul';
60
+    }
61 61
 
62
-	return http_build_query($args);
62
+    return http_build_query($args);
63 63
 }
64 64
 
65 65
 
@@ -82,95 +82,95 @@  discard block
 block discarded – undo
82 82
  * @return string
83 83
  */
84 84
 function chercher_rubrique(
85
-	$titre,
86
-	$id_objet,
87
-	$id_parent,
88
-	$objet,
89
-	$id_secteur,
90
-	$restreint,
91
-	$actionable = false,
92
-	$retour_sans_cadre = false
85
+    $titre,
86
+    $id_objet,
87
+    $id_parent,
88
+    $objet,
89
+    $id_secteur,
90
+    $restreint,
91
+    $actionable = false,
92
+    $retour_sans_cadre = false
93 93
 ) {
94 94
 
95
-	include_spip('inc/autoriser');
96
-	if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) {
97
-		return '';
98
-	}
99
-	if (!sql_countsel('spip_rubriques')) {
100
-		return '';
101
-	}
102
-	$chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
103
-	$form = $chercher_rubrique($id_parent, $objet, $restreint, ($objet == 'rubrique') ? $id_objet : 0);
104
-
105
-	if ($id_parent == 0) {
106
-		$logo = 'racine-24.png';
107
-	} elseif ($id_secteur == $id_parent) {
108
-		$logo = 'secteur-24.png';
109
-	} else {
110
-		$logo = 'rubrique-24.png';
111
-	}
112
-
113
-	$confirm = '';
114
-	if ($objet == 'rubrique') {
115
-		// FIXME: Migration plus adapté vers le plugin Brèves ?
116
-		// si c'est une rubrique-secteur contenant des breves, demander la
117
-		// confirmation du deplacement
118
-		if (
119
-			sql_table_exists('spip_breves')
120
-			and ($contient_breves = sql_countsel('spip_breves', 'id_rubrique=' . intval($id_objet)))
121
-			and ($contient_breves > 0)
122
-		) {
123
-			// FIXME: utiliser singulier_ou_pluriel, migrer dans plugin Brèves
124
-			$scb = ($contient_breves > 1 ? 's' : '');
125
-			$scb = _T(
126
-				'avis_deplacement_rubrique',
127
-				[
128
-					'contient_breves' => $contient_breves,
129
-					'scb' => $scb
130
-				]
131
-			);
132
-			$confirm .= "\n<div class='confirmer_deplacement verdana2'>"
133
-				. "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>"
134
-				. $scb .
135
-				"</label></div></div>\n";
136
-		} else {
137
-			$confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n";
138
-		}
139
-	}
140
-	$form .= $confirm;
141
-	if ($actionable) {
142
-		if (strpos($form, '<select') !== false) {
143
-			$form .= "<div style='text-align: " . $GLOBALS['spip_lang_right'] . ";'>"
144
-				. '<input class="fondo submit btn" type="submit" value="' . _T('bouton_choisir') . '"/>'
145
-				. '</div>';
146
-		}
147
-		$form = "<input type='hidden' name='editer_$objet' value='oui' />\n" . $form;
148
-		if ($action = charger_fonction("editer_$objet", 'action', true)) {
149
-			$form = generer_action_auteur(
150
-				"editer_$objet",
151
-				$id_objet,
152
-				self(),
153
-				$form,
154
-				" method='post' class='submit_plongeur'"
155
-			);
156
-		} else {
157
-			$form = generer_action_auteur(
158
-				'editer_objet',
159
-				"$objet/$id_objet",
160
-				self(),
161
-				$form,
162
-				" method='post' class='submit_plongeur'"
163
-			);
164
-		}
165
-	}
166
-
167
-	if ($retour_sans_cadre) {
168
-		return $form;
169
-	}
170
-
171
-	include_spip('inc/presentation');
172
-
173
-	return debut_cadre_couleur($logo, true, '', $titre) . $form . fin_cadre_couleur();
95
+    include_spip('inc/autoriser');
96
+    if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) {
97
+        return '';
98
+    }
99
+    if (!sql_countsel('spip_rubriques')) {
100
+        return '';
101
+    }
102
+    $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc');
103
+    $form = $chercher_rubrique($id_parent, $objet, $restreint, ($objet == 'rubrique') ? $id_objet : 0);
104
+
105
+    if ($id_parent == 0) {
106
+        $logo = 'racine-24.png';
107
+    } elseif ($id_secteur == $id_parent) {
108
+        $logo = 'secteur-24.png';
109
+    } else {
110
+        $logo = 'rubrique-24.png';
111
+    }
112
+
113
+    $confirm = '';
114
+    if ($objet == 'rubrique') {
115
+        // FIXME: Migration plus adapté vers le plugin Brèves ?
116
+        // si c'est une rubrique-secteur contenant des breves, demander la
117
+        // confirmation du deplacement
118
+        if (
119
+            sql_table_exists('spip_breves')
120
+            and ($contient_breves = sql_countsel('spip_breves', 'id_rubrique=' . intval($id_objet)))
121
+            and ($contient_breves > 0)
122
+        ) {
123
+            // FIXME: utiliser singulier_ou_pluriel, migrer dans plugin Brèves
124
+            $scb = ($contient_breves > 1 ? 's' : '');
125
+            $scb = _T(
126
+                'avis_deplacement_rubrique',
127
+                [
128
+                    'contient_breves' => $contient_breves,
129
+                    'scb' => $scb
130
+                ]
131
+            );
132
+            $confirm .= "\n<div class='confirmer_deplacement verdana2'>"
133
+                . "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>"
134
+                . $scb .
135
+                "</label></div></div>\n";
136
+        } else {
137
+            $confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n";
138
+        }
139
+    }
140
+    $form .= $confirm;
141
+    if ($actionable) {
142
+        if (strpos($form, '<select') !== false) {
143
+            $form .= "<div style='text-align: " . $GLOBALS['spip_lang_right'] . ";'>"
144
+                . '<input class="fondo submit btn" type="submit" value="' . _T('bouton_choisir') . '"/>'
145
+                . '</div>';
146
+        }
147
+        $form = "<input type='hidden' name='editer_$objet' value='oui' />\n" . $form;
148
+        if ($action = charger_fonction("editer_$objet", 'action', true)) {
149
+            $form = generer_action_auteur(
150
+                "editer_$objet",
151
+                $id_objet,
152
+                self(),
153
+                $form,
154
+                " method='post' class='submit_plongeur'"
155
+            );
156
+        } else {
157
+            $form = generer_action_auteur(
158
+                'editer_objet',
159
+                "$objet/$id_objet",
160
+                self(),
161
+                $form,
162
+                " method='post' class='submit_plongeur'"
163
+            );
164
+        }
165
+    }
166
+
167
+    if ($retour_sans_cadre) {
168
+        return $form;
169
+    }
170
+
171
+    include_spip('inc/presentation');
172
+
173
+    return debut_cadre_couleur($logo, true, '', $titre) . $form . fin_cadre_couleur();
174 174
 }
175 175
 
176 176
 
@@ -184,24 +184,24 @@  discard block
 block discarded – undo
184 184
  * @return bool
185 185
  */
186 186
 function avoir_visiteurs($past = false, $accepter = true) {
187
-	if ($GLOBALS['meta']['forums_publics'] == 'abo') {
188
-		return true;
189
-	}
190
-	if ($accepter and $GLOBALS['meta']['accepter_visiteurs'] <> 'non') {
191
-		return true;
192
-	}
193
-	if (sql_countsel('spip_articles', "accepter_forum='abo'")) {
194
-		return true;
195
-	}
196
-	if (!$past) {
197
-		return false;
198
-	}
199
-
200
-	return sql_countsel(
201
-		'spip_auteurs',
202
-		"statut NOT IN ('0minirezo','1comite', '5poubelle')
187
+    if ($GLOBALS['meta']['forums_publics'] == 'abo') {
188
+        return true;
189
+    }
190
+    if ($accepter and $GLOBALS['meta']['accepter_visiteurs'] <> 'non') {
191
+        return true;
192
+    }
193
+    if (sql_countsel('spip_articles', "accepter_forum='abo'")) {
194
+        return true;
195
+    }
196
+    if (!$past) {
197
+        return false;
198
+    }
199
+
200
+    return sql_countsel(
201
+        'spip_auteurs',
202
+        "statut NOT IN ('0minirezo','1comite', '5poubelle')
203 203
 	                    AND (statut<>'nouveau' OR prefs NOT IN ('0minirezo','1comite', '5poubelle'))"
204
-	);
204
+    );
205 205
 }
206 206
 
207 207
 /**
@@ -217,18 +217,18 @@  discard block
 block discarded – undo
217 217
  * @return array
218 218
  */
219 219
 function statuts_articles_visibles($statut_auteur) {
220
-	static $auth = [];
221
-	if (!isset($auth[$statut_auteur])) {
222
-		$auth[$statut_auteur] = [];
223
-		$statuts = array_column(sql_allfetsel('distinct statut', 'spip_articles'), 'statut');
224
-		foreach ($statuts as $s) {
225
-			if (autoriser('voir', 'article', 0, ['statut' => $statut_auteur], ['statut' => $s])) {
226
-				$auth[$statut_auteur][] = $s;
227
-			}
228
-		}
229
-	}
230
-
231
-	return $auth[$statut_auteur];
220
+    static $auth = [];
221
+    if (!isset($auth[$statut_auteur])) {
222
+        $auth[$statut_auteur] = [];
223
+        $statuts = array_column(sql_allfetsel('distinct statut', 'spip_articles'), 'statut');
224
+        foreach ($statuts as $s) {
225
+            if (autoriser('voir', 'article', 0, ['statut' => $statut_auteur], ['statut' => $s])) {
226
+                $auth[$statut_auteur][] = $s;
227
+            }
228
+        }
229
+    }
230
+
231
+    return $auth[$statut_auteur];
232 232
 }
233 233
 
234 234
 /**
@@ -242,38 +242,38 @@  discard block
 block discarded – undo
242 242
  * @return string
243 243
  */
244 244
 function traduire_statut_auteur($statut, $attente = '') {
245
-	$plus = '';
246
-	if ($statut == 'nouveau') {
247
-		if ($attente) {
248
-			$statut = $attente;
249
-			$plus = ' (' . _T('info_statut_auteur_a_confirmer') . ')';
250
-		} else {
251
-			return _T('info_statut_auteur_a_confirmer');
252
-		}
253
-	}
254
-
255
-	$recom = [
256
-		'info_administrateurs' => _T('item_administrateur_2'),
257
-		'info_redacteurs' => _T('intem_redacteur'),
258
-		'info_visiteurs' => _T('item_visiteur'),
259
-		'5poubelle' => _T('texte_statut_poubelle'), // bouh
260
-	];
261
-	if (isset($recom[$statut])) {
262
-		return $recom[$statut] . $plus;
263
-	}
264
-
265
-	// retrouver directement par le statut sinon
266
-	if ($t = array_search($statut, $GLOBALS['liste_des_statuts'])) {
267
-		if (isset($recom[$t])) {
268
-			return $recom[$t] . $plus;
269
-		}
270
-
271
-		return _T($t) . $plus;
272
-	}
273
-
274
-	// si on a pas reussi a le traduire, retournons la chaine telle quelle
275
-	// c'est toujours plus informatif que rien du tout
276
-	return $statut;
245
+    $plus = '';
246
+    if ($statut == 'nouveau') {
247
+        if ($attente) {
248
+            $statut = $attente;
249
+            $plus = ' (' . _T('info_statut_auteur_a_confirmer') . ')';
250
+        } else {
251
+            return _T('info_statut_auteur_a_confirmer');
252
+        }
253
+    }
254
+
255
+    $recom = [
256
+        'info_administrateurs' => _T('item_administrateur_2'),
257
+        'info_redacteurs' => _T('intem_redacteur'),
258
+        'info_visiteurs' => _T('item_visiteur'),
259
+        '5poubelle' => _T('texte_statut_poubelle'), // bouh
260
+    ];
261
+    if (isset($recom[$statut])) {
262
+        return $recom[$statut] . $plus;
263
+    }
264
+
265
+    // retrouver directement par le statut sinon
266
+    if ($t = array_search($statut, $GLOBALS['liste_des_statuts'])) {
267
+        if (isset($recom[$t])) {
268
+            return $recom[$t] . $plus;
269
+        }
270
+
271
+        return _T($t) . $plus;
272
+    }
273
+
274
+    // si on a pas reussi a le traduire, retournons la chaine telle quelle
275
+    // c'est toujours plus informatif que rien du tout
276
+    return $statut;
277 277
 }
278 278
 
279 279
 /**
@@ -284,29 +284,29 @@  discard block
 block discarded – undo
284 284
  * @return string
285 285
  */
286 286
 function afficher_qui_edite($id_objet, $objet): string {
287
-	static $qui = [];
288
-	if (isset($qui[$objet][$id_objet])) {
289
-		return $qui[$objet][$id_objet];
290
-	}
291
-
292
-	include_spip('inc/config');
293
-	if (lire_config('articles_modif', 'non') === 'non') {
294
-		return $qui[$objet][$id_objet] = '';
295
-	}
296
-
297
-	include_spip('inc/drapeau_edition');
298
-	$modif = mention_qui_edite($id_objet, $objet);
299
-	if (!$modif) {
300
-		return $qui[$objet][$id_objet] = '';
301
-	}
302
-
303
-	include_spip('base/objets');
304
-	$infos = lister_tables_objets_sql(table_objet_sql($objet));
305
-	if (isset($infos['texte_signale_edition'])) {
306
-		return $qui[$objet][$id_objet] = _T($infos['texte_signale_edition'], $modif);
307
-	}
308
-
309
-	return $qui[$objet][$id_objet] = _T('info_qui_edite', $modif);
287
+    static $qui = [];
288
+    if (isset($qui[$objet][$id_objet])) {
289
+        return $qui[$objet][$id_objet];
290
+    }
291
+
292
+    include_spip('inc/config');
293
+    if (lire_config('articles_modif', 'non') === 'non') {
294
+        return $qui[$objet][$id_objet] = '';
295
+    }
296
+
297
+    include_spip('inc/drapeau_edition');
298
+    $modif = mention_qui_edite($id_objet, $objet);
299
+    if (!$modif) {
300
+        return $qui[$objet][$id_objet] = '';
301
+    }
302
+
303
+    include_spip('base/objets');
304
+    $infos = lister_tables_objets_sql(table_objet_sql($objet));
305
+    if (isset($infos['texte_signale_edition'])) {
306
+        return $qui[$objet][$id_objet] = _T($infos['texte_signale_edition'], $modif);
307
+    }
308
+
309
+    return $qui[$objet][$id_objet] = _T('info_qui_edite', $modif);
310 310
 }
311 311
 
312 312
 /**
@@ -324,53 +324,53 @@  discard block
 block discarded – undo
324 324
  * @return array
325 325
  */
326 326
 function auteurs_lister_statuts($quoi = 'tous', $en_base = true): array {
327
-	if (!defined('AUTEURS_MIN_REDAC')) {
328
-		define('AUTEURS_MIN_REDAC', '0minirezo,1comite,5poubelle');
329
-	}
330
-
331
-	switch ($quoi) {
332
-		case 'redacteurs':
333
-			$statut = AUTEURS_MIN_REDAC;
334
-			$statut = explode(',', $statut);
335
-			if ($en_base) {
336
-				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
337
-				$retire = array_diff($statut, $check);
338
-				$statut = array_diff($statut, $retire);
339
-			}
340
-
341
-			return array_unique($statut);
342
-
343
-		case 'visiteurs':
344
-			$statut = [];
345
-			$exclus = AUTEURS_MIN_REDAC;
346
-			$exclus = explode(',', $exclus);
347
-			if (!$en_base) {
348
-				// prendre aussi les statuts de la table des status qui ne sont pas dans le define
349
-				$statut = array_diff(array_values($GLOBALS['liste_des_statuts']), $exclus);
350
-			}
351
-			$s_complement = array_column(
352
-				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')),
353
-				'statut'
354
-			);
355
-
356
-			return array_unique(array_merge($statut, $s_complement));
357
-
358
-		default:
359
-		case 'tous':
360
-			$statut = array_values($GLOBALS['liste_des_statuts']);
361
-			$s_complement = array_column(
362
-				sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')),
363
-				'statut'
364
-			);
365
-			$statut = array_merge($statut, $s_complement);
366
-			if ($en_base) {
367
-				$check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
368
-				$retire = array_diff($statut, $check);
369
-				$statut = array_diff($statut, $retire);
370
-			}
371
-
372
-			return array_unique($statut);
373
-	}
327
+    if (!defined('AUTEURS_MIN_REDAC')) {
328
+        define('AUTEURS_MIN_REDAC', '0minirezo,1comite,5poubelle');
329
+    }
330
+
331
+    switch ($quoi) {
332
+        case 'redacteurs':
333
+            $statut = AUTEURS_MIN_REDAC;
334
+            $statut = explode(',', $statut);
335
+            if ($en_base) {
336
+                $check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
337
+                $retire = array_diff($statut, $check);
338
+                $statut = array_diff($statut, $retire);
339
+            }
340
+
341
+            return array_unique($statut);
342
+
343
+        case 'visiteurs':
344
+            $statut = [];
345
+            $exclus = AUTEURS_MIN_REDAC;
346
+            $exclus = explode(',', $exclus);
347
+            if (!$en_base) {
348
+                // prendre aussi les statuts de la table des status qui ne sont pas dans le define
349
+                $statut = array_diff(array_values($GLOBALS['liste_des_statuts']), $exclus);
350
+            }
351
+            $s_complement = array_column(
352
+                sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $exclus, 'NOT')),
353
+                'statut'
354
+            );
355
+
356
+            return array_unique(array_merge($statut, $s_complement));
357
+
358
+        default:
359
+        case 'tous':
360
+            $statut = array_values($GLOBALS['liste_des_statuts']);
361
+            $s_complement = array_column(
362
+                sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut, 'NOT')),
363
+                'statut'
364
+            );
365
+            $statut = array_merge($statut, $s_complement);
366
+            if ($en_base) {
367
+                $check = array_column(sql_allfetsel('DISTINCT statut', 'spip_auteurs', sql_in('statut', $statut)), 'statut');
368
+                $retire = array_diff($statut, $check);
369
+                $statut = array_diff($statut, $retire);
370
+            }
371
+
372
+            return array_unique($statut);
373
+    }
374 374
 }
375 375
 
376 376
 /**
@@ -386,28 +386,28 @@  discard block
 block discarded – undo
386 386
  */
387 387
 function trouver_rubrique_creer_objet($id_rubrique, $objet) {
388 388
 
389
-	if (!$id_rubrique and defined('_CHOIX_RUBRIQUE_PAR_DEFAUT') and _CHOIX_RUBRIQUE_PAR_DEFAUT) {
390
-		$in = !(is_countable($GLOBALS['connect_id_rubrique']) ? count($GLOBALS['connect_id_rubrique']) : 0)
391
-			? ''
392
-			: (' AND ' . sql_in('id_rubrique', $GLOBALS['connect_id_rubrique']));
393
-
394
-		// on tente d'abord l'ecriture a la racine dans le cas des rubriques uniquement
395
-		if ($objet == 'rubrique') {
396
-			$id_rubrique = 0;
397
-		} else {
398
-			$id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', "id_parent=0$in", '', 'id_rubrique DESC', 1);
399
-		}
400
-
401
-		if (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique)) {
402
-			// manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
403
-			$res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0');
404
-			while (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique) && $row_rub = sql_fetch($res)) {
405
-				$id_rubrique = $row_rub['id_rubrique'];
406
-			}
407
-		}
408
-	}
409
-
410
-	return $id_rubrique;
389
+    if (!$id_rubrique and defined('_CHOIX_RUBRIQUE_PAR_DEFAUT') and _CHOIX_RUBRIQUE_PAR_DEFAUT) {
390
+        $in = !(is_countable($GLOBALS['connect_id_rubrique']) ? count($GLOBALS['connect_id_rubrique']) : 0)
391
+            ? ''
392
+            : (' AND ' . sql_in('id_rubrique', $GLOBALS['connect_id_rubrique']));
393
+
394
+        // on tente d'abord l'ecriture a la racine dans le cas des rubriques uniquement
395
+        if ($objet == 'rubrique') {
396
+            $id_rubrique = 0;
397
+        } else {
398
+            $id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', "id_parent=0$in", '', 'id_rubrique DESC', 1);
399
+        }
400
+
401
+        if (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique)) {
402
+            // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises
403
+            $res = sql_select('id_rubrique', 'spip_rubriques', 'id_parent=0');
404
+            while (!autoriser("creer{$objet}dans", 'rubrique', $id_rubrique) && $row_rub = sql_fetch($res)) {
405
+                $id_rubrique = $row_rub['id_rubrique'];
406
+            }
407
+        }
408
+    }
409
+
410
+    return $id_rubrique;
411 411
 }
412 412
 
413 413
 /**
@@ -418,12 +418,12 @@  discard block
 block discarded – undo
418 418
  * @return string
419 419
  */
420 420
 function lien_article_virtuel($virtuel) {
421
-	include_spip('inc/lien');
422
-	if (!$virtuel = virtuel_redirige($virtuel)) {
423
-		return '';
424
-	}
421
+    include_spip('inc/lien');
422
+    if (!$virtuel = virtuel_redirige($virtuel)) {
423
+        return '';
424
+    }
425 425
 
426
-	return propre('[->' . $virtuel . ']');
426
+    return propre('[->' . $virtuel . ']');
427 427
 }
428 428
 
429 429
 
@@ -446,11 +446,11 @@  discard block
 block discarded – undo
446 446
  * @filtre
447 447
  */
448 448
 function bouton_spip_rss($op, $args = [], $lang = '', $title = 'RSS') {
449
-	include_spip('inc/acces');
450
-	$clic = http_img_pack('rss-16.png', 'RSS', '', $title);
449
+    include_spip('inc/acces');
450
+    $clic = http_img_pack('rss-16.png', 'RSS', '', $title);
451 451
 
452
-	$url = generer_url_api_low_sec('transmettre', 'rss', $op, '', http_build_query($args), false, true);
453
-	return "<a style='float: " . $GLOBALS['spip_lang_right'] . ";' href='$url'>$clic</a>";
452
+    $url = generer_url_api_low_sec('transmettre', 'rss', $op, '', http_build_query($args), false, true);
453
+    return "<a style='float: " . $GLOBALS['spip_lang_right'] . ";' href='$url'>$clic</a>";
454 454
 }
455 455
 
456 456
 
@@ -462,76 +462,76 @@  discard block
 block discarded – undo
462 462
  */
463 463
 function alertes_auteur($id_auteur): string {
464 464
 
465
-	$alertes = [];
466
-
467
-	if (
468
-		isset($GLOBALS['meta']['message_crash_tables'])
469
-		and autoriser('detruire', null, null, $id_auteur)
470
-	) {
471
-		include_spip('genie/maintenance');
472
-		if ($msg = message_crash_tables()) {
473
-			$alertes[] = $msg;
474
-		}
475
-	}
476
-
477
-	if (
478
-		isset($GLOBALS['meta']['message_crash_plugins'])
479
-		and $GLOBALS['meta']['message_crash_plugins']
480
-		and autoriser('configurer', '_plugins', null, $id_auteur)
481
-		and is_array($msg = unserialize($GLOBALS['meta']['message_crash_plugins']))
482
-	) {
483
-		$msg = implode(', ', array_map('joli_repertoire', array_keys($msg)));
484
-		$alertes[] = _T('plugins_erreur', ['plugins' => $msg]);
485
-	}
486
-
487
-	$a = $GLOBALS['meta']['message_alertes_auteurs'] ?? '';
488
-	if (
489
-		$a
490
-		and is_array($a = unserialize($a))
491
-		and count($a)
492
-	) {
493
-		$update = false;
494
-		if (isset($a[$GLOBALS['visiteur_session']['statut']])) {
495
-			$alertes = array_merge($alertes, $a[$GLOBALS['visiteur_session']['statut']]);
496
-			unset($a[$GLOBALS['visiteur_session']['statut']]);
497
-			$update = true;
498
-		}
499
-		if (isset($a[''])) {
500
-			$alertes = array_merge($alertes, $a['']);
501
-			unset($a['']);
502
-			$update = true;
503
-		}
504
-		if ($update) {
505
-			ecrire_meta('message_alertes_auteurs', serialize($a));
506
-		}
507
-	}
508
-
509
-	if (
510
-		isset($GLOBALS['meta']['plugin_erreur_activation'])
511
-		and autoriser('configurer', '_plugins', null, $id_auteur)
512
-	) {
513
-		include_spip('inc/plugin');
514
-		$alertes[] = plugin_donne_erreurs();
515
-	}
516
-
517
-	$alertes = pipeline(
518
-		'alertes_auteur',
519
-		[
520
-			'args' => [
521
-				'id_auteur' => $id_auteur,
522
-				'exec' => _request('exec'),
523
-			],
524
-			'data' => $alertes
525
-		]
526
-	);
527
-
528
-	if ($alertes = array_filter($alertes)) {
529
-		return "<div class='wrap-messages-alertes'><div class='messages-alertes'>" .
530
-		join(' | ', $alertes)
531
-		. '</div></div>';
532
-	}
533
-
534
-	return '';
465
+    $alertes = [];
466
+
467
+    if (
468
+        isset($GLOBALS['meta']['message_crash_tables'])
469
+        and autoriser('detruire', null, null, $id_auteur)
470
+    ) {
471
+        include_spip('genie/maintenance');
472
+        if ($msg = message_crash_tables()) {
473
+            $alertes[] = $msg;
474
+        }
475
+    }
476
+
477
+    if (
478
+        isset($GLOBALS['meta']['message_crash_plugins'])
479
+        and $GLOBALS['meta']['message_crash_plugins']
480
+        and autoriser('configurer', '_plugins', null, $id_auteur)
481
+        and is_array($msg = unserialize($GLOBALS['meta']['message_crash_plugins']))
482
+    ) {
483
+        $msg = implode(', ', array_map('joli_repertoire', array_keys($msg)));
484
+        $alertes[] = _T('plugins_erreur', ['plugins' => $msg]);
485
+    }
486
+
487
+    $a = $GLOBALS['meta']['message_alertes_auteurs'] ?? '';
488
+    if (
489
+        $a
490
+        and is_array($a = unserialize($a))
491
+        and count($a)
492
+    ) {
493
+        $update = false;
494
+        if (isset($a[$GLOBALS['visiteur_session']['statut']])) {
495
+            $alertes = array_merge($alertes, $a[$GLOBALS['visiteur_session']['statut']]);
496
+            unset($a[$GLOBALS['visiteur_session']['statut']]);
497
+            $update = true;
498
+        }
499
+        if (isset($a[''])) {
500
+            $alertes = array_merge($alertes, $a['']);
501
+            unset($a['']);
502
+            $update = true;
503
+        }
504
+        if ($update) {
505
+            ecrire_meta('message_alertes_auteurs', serialize($a));
506
+        }
507
+    }
508
+
509
+    if (
510
+        isset($GLOBALS['meta']['plugin_erreur_activation'])
511
+        and autoriser('configurer', '_plugins', null, $id_auteur)
512
+    ) {
513
+        include_spip('inc/plugin');
514
+        $alertes[] = plugin_donne_erreurs();
515
+    }
516
+
517
+    $alertes = pipeline(
518
+        'alertes_auteur',
519
+        [
520
+            'args' => [
521
+                'id_auteur' => $id_auteur,
522
+                'exec' => _request('exec'),
523
+            ],
524
+            'data' => $alertes
525
+        ]
526
+    );
527
+
528
+    if ($alertes = array_filter($alertes)) {
529
+        return "<div class='wrap-messages-alertes'><div class='messages-alertes'>" .
530
+        join(' | ', $alertes)
531
+        . '</div></div>';
532
+    }
533
+
534
+    return '';
535 535
 }
536 536
 
537 537
 /**
@@ -541,9 +541,9 @@  discard block
 block discarded – undo
541 541
  * @return string
542 542
  */
543 543
 function filtre_afficher_enfant_rub_dist($id_rubrique) {
544
-	include_spip('inc/presenter_enfants');
544
+    include_spip('inc/presenter_enfants');
545 545
 
546
-	return afficher_enfant_rub(intval($id_rubrique));
546
+    return afficher_enfant_rub(intval($id_rubrique));
547 547
 }
548 548
 
549 549
 /**
@@ -561,15 +561,15 @@  discard block
 block discarded – undo
561 561
  * @return string
562 562
  */
563 563
 function afficher_plus_info($lien, $titre = '+', $titre_lien = '') {
564
-	$titre = attribut_html($titre);
565
-	$icone = "\n<a href='$lien' title='$titre' class='plus_info'>" .
566
-		http_img_pack('information-16.png', $titre) . '</a>';
567
-
568
-	if (!$titre_lien) {
569
-		return $icone;
570
-	} else {
571
-		return $icone . "\n<a href='$lien'>$titre_lien</a>";
572
-	}
564
+    $titre = attribut_html($titre);
565
+    $icone = "\n<a href='$lien' title='$titre' class='plus_info'>" .
566
+        http_img_pack('information-16.png', $titre) . '</a>';
567
+
568
+    if (!$titre_lien) {
569
+        return $icone;
570
+    } else {
571
+        return $icone . "\n<a href='$lien'>$titre_lien</a>";
572
+    }
573 573
 }
574 574
 
575 575
 
@@ -588,20 +588,20 @@  discard block
 block discarded – undo
588 588
  * @return array
589 589
  */
590 590
 function lister_objets_lies($objet_source, $objet, $id_objet, $objet_lien) {
591
-	$res = lister_objets_liens($objet_source, $objet, $id_objet, $objet_lien);
592
-	if (!(is_countable($res) ? count($res) : 0)) {
593
-		return [];
594
-	}
595
-	$r = reset($res);
596
-	$colonne_id = ($objet_source == $objet_lien ? id_table_objet($objet_source) : 'id_objet');
597
-	if (isset($r['rang_lien'])) {
598
-		$l = array_column($res, 'rang_lien', $colonne_id);
599
-		asort($l);
600
-		$l = array_keys($l);
601
-	} else {
602
-		// Si les liens qu'on cherche sont ceux de la table de lien, l'info est dans la clé de l'objet
603
-		// Sinon c'est dans "id_objet"
604
-		$l = array_column($res, $colonne_id);
605
-	}
606
-	return $l;
591
+    $res = lister_objets_liens($objet_source, $objet, $id_objet, $objet_lien);
592
+    if (!(is_countable($res) ? count($res) : 0)) {
593
+        return [];
594
+    }
595
+    $r = reset($res);
596
+    $colonne_id = ($objet_source == $objet_lien ? id_table_objet($objet_source) : 'id_objet');
597
+    if (isset($r['rang_lien'])) {
598
+        $l = array_column($res, 'rang_lien', $colonne_id);
599
+        asort($l);
600
+        $l = array_keys($l);
601
+    } else {
602
+        // Si les liens qu'on cherche sont ceux de la table de lien, l'info est dans la clé de l'objet
603
+        // Sinon c'est dans "id_objet"
604
+        $l = array_column($res, $colonne_id);
605
+    }
606
+    return $l;
607 607
 }
Please login to merge, or discard this patch.
ecrire/inc/utils.php 1 patch
Indentation   +2269 added lines, -2270 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
 
@@ -48,71 +48,71 @@  discard block
 block discarded – undo
48 48
  *     Nom de la fonction, ou false.
49 49
  */
50 50
 function charger_fonction($nom, $dossier = 'exec', $continue = false) {
51
-	static $echecs = [];
52
-
53
-	if (strlen($dossier) and substr($dossier, -1) != '/') {
54
-		$dossier .= '/';
55
-	}
56
-	$f = str_replace('/', '_', $dossier) . $nom;
57
-
58
-	if (function_exists($f)) {
59
-		return $f;
60
-	}
61
-	if (function_exists($g = $f . '_dist')) {
62
-		return $g;
63
-	}
64
-
65
-	if (isset($echecs[$f])) {
66
-		return $echecs[$f];
67
-	}
68
-	// Sinon charger le fichier de declaration si plausible
69
-
70
-	if (!preg_match(',^\w+$,', $f)) {
71
-		if ($continue) {
72
-			return false;
73
-		} //appel interne, on passe
74
-		include_spip('inc/minipres');
75
-		echo minipres();
76
-		exit;
77
-	}
78
-
79
-	// passer en minuscules (cf les balises de formulaires)
80
-	// et inclure le fichier
81
-	if (
82
-		!$inc = include_spip($dossier . ($d = strtolower($nom)))
83
-		// si le fichier truc/machin/nom.php n'existe pas,
84
-		// la fonction peut etre definie dans truc/machin.php qui regroupe plusieurs petites fonctions
85
-		and strlen(dirname($dossier)) and dirname($dossier) != '.'
86
-	) {
87
-		include_spip(substr($dossier, 0, -1));
88
-	}
89
-	if (function_exists($f)) {
90
-		return $f;
91
-	}
92
-	if (function_exists($g)) {
93
-		return $g;
94
-	}
95
-
96
-	if ($continue) {
97
-		return $echecs[$f] = false;
98
-	}
99
-
100
-	// Echec : message d'erreur
101
-	spip_log("fonction $nom ($f ou $g) indisponible" .
102
-		($inc ? '' : " (fichier $d absent de $dossier)"));
103
-
104
-	include_spip('inc/minipres');
105
-	echo minipres(
106
-		_T('forum_titre_erreur'),
107
-		$inc ?
108
-			_T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($f) . '</code>'])
109
-			. '<br />'
110
-			. _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($g) . '</code>'])
111
-			:
112
-			_T('fichier_introuvable', ['fichier' => '<code>' . spip_htmlentities($d) . '</code>']),
113
-		['all_inline' => true,'status' => 404]
114
-	);
115
-	exit;
51
+    static $echecs = [];
52
+
53
+    if (strlen($dossier) and substr($dossier, -1) != '/') {
54
+        $dossier .= '/';
55
+    }
56
+    $f = str_replace('/', '_', $dossier) . $nom;
57
+
58
+    if (function_exists($f)) {
59
+        return $f;
60
+    }
61
+    if (function_exists($g = $f . '_dist')) {
62
+        return $g;
63
+    }
64
+
65
+    if (isset($echecs[$f])) {
66
+        return $echecs[$f];
67
+    }
68
+    // Sinon charger le fichier de declaration si plausible
69
+
70
+    if (!preg_match(',^\w+$,', $f)) {
71
+        if ($continue) {
72
+            return false;
73
+        } //appel interne, on passe
74
+        include_spip('inc/minipres');
75
+        echo minipres();
76
+        exit;
77
+    }
78
+
79
+    // passer en minuscules (cf les balises de formulaires)
80
+    // et inclure le fichier
81
+    if (
82
+        !$inc = include_spip($dossier . ($d = strtolower($nom)))
83
+        // si le fichier truc/machin/nom.php n'existe pas,
84
+        // la fonction peut etre definie dans truc/machin.php qui regroupe plusieurs petites fonctions
85
+        and strlen(dirname($dossier)) and dirname($dossier) != '.'
86
+    ) {
87
+        include_spip(substr($dossier, 0, -1));
88
+    }
89
+    if (function_exists($f)) {
90
+        return $f;
91
+    }
92
+    if (function_exists($g)) {
93
+        return $g;
94
+    }
95
+
96
+    if ($continue) {
97
+        return $echecs[$f] = false;
98
+    }
99
+
100
+    // Echec : message d'erreur
101
+    spip_log("fonction $nom ($f ou $g) indisponible" .
102
+        ($inc ? '' : " (fichier $d absent de $dossier)"));
103
+
104
+    include_spip('inc/minipres');
105
+    echo minipres(
106
+        _T('forum_titre_erreur'),
107
+        $inc ?
108
+            _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($f) . '</code>'])
109
+            . '<br />'
110
+            . _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($g) . '</code>'])
111
+            :
112
+            _T('fichier_introuvable', ['fichier' => '<code>' . spip_htmlentities($d) . '</code>']),
113
+        ['all_inline' => true,'status' => 404]
114
+    );
115
+    exit;
116 116
 }
117 117
 
118 118
 /**
@@ -122,17 +122,17 @@  discard block
 block discarded – undo
122 122
  * @return bool
123 123
  */
124 124
 function include_once_check($file) {
125
-	if (file_exists($file)) {
126
-		include_once $file;
125
+    if (file_exists($file)) {
126
+        include_once $file;
127 127
 
128
-		return true;
129
-	}
130
-	$crash = (isset($GLOBALS['meta']['message_crash_plugins']) ? unserialize($GLOBALS['meta']['message_crash_plugins']) : '');
131
-	$crash = ($crash ?: []);
132
-	$crash[$file] = true;
133
-	ecrire_meta('message_crash_plugins', serialize($crash));
128
+        return true;
129
+    }
130
+    $crash = (isset($GLOBALS['meta']['message_crash_plugins']) ? unserialize($GLOBALS['meta']['message_crash_plugins']) : '');
131
+    $crash = ($crash ?: []);
132
+    $crash[$file] = true;
133
+    ecrire_meta('message_crash_plugins', serialize($crash));
134 134
 
135
-	return false;
135
+    return false;
136 136
 }
137 137
 
138 138
 
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
  *     - string : chemin du fichier trouvé
157 157
  **/
158 158
 function include_spip($f, $include = true) {
159
-	return find_in_path($f . '.php', '', $include);
159
+    return find_in_path($f . '.php', '', $include);
160 160
 }
161 161
 
162 162
 /**
@@ -176,7 +176,7 @@  discard block
 block discarded – undo
176 176
  *     - string : chemin du fichier trouvé
177 177
  **/
178 178
 function require_spip($f) {
179
-	return find_in_path($f . '.php', '', 'required');
179
+    return find_in_path($f . '.php', '', 'required');
180 180
 }
181 181
 
182 182
 
@@ -185,27 +185,27 @@  discard block
 block discarded – undo
185 185
  * quand on a besoin dans le PHP de filtres/fonctions qui y sont definis
186 186
  */
187 187
 function include_fichiers_fonctions() {
188
-	static $done = false;
189
-	if (!$done) {
190
-		include_spip('inc/lang');
191
-
192
-		// NB: mes_fonctions peut initialiser $dossier_squelettes (old-style)
193
-		// donc il faut l'inclure "en globals"
194
-		if ($f = find_in_path('mes_fonctions.php')) {
195
-			global $dossier_squelettes;
196
-			include_once(_ROOT_CWD . $f);
197
-		}
198
-
199
-		if (@is_readable(_CACHE_PLUGINS_FCT)) {
200
-			// chargement optimise precompile
201
-			include_once(_CACHE_PLUGINS_FCT);
202
-		}
203
-		if (test_espace_prive()) {
204
-			include_spip('inc/filtres_ecrire');
205
-		}
206
-		include_spip('public/fonctions'); // charger les fichiers fonctions associes aux criteres, balises..
207
-		$done = true;
208
-	}
188
+    static $done = false;
189
+    if (!$done) {
190
+        include_spip('inc/lang');
191
+
192
+        // NB: mes_fonctions peut initialiser $dossier_squelettes (old-style)
193
+        // donc il faut l'inclure "en globals"
194
+        if ($f = find_in_path('mes_fonctions.php')) {
195
+            global $dossier_squelettes;
196
+            include_once(_ROOT_CWD . $f);
197
+        }
198
+
199
+        if (@is_readable(_CACHE_PLUGINS_FCT)) {
200
+            // chargement optimise precompile
201
+            include_once(_CACHE_PLUGINS_FCT);
202
+        }
203
+        if (test_espace_prive()) {
204
+            include_spip('inc/filtres_ecrire');
205
+        }
206
+        include_spip('public/fonctions'); // charger les fichiers fonctions associes aux criteres, balises..
207
+        $done = true;
208
+    }
209 209
 }
210 210
 
211 211
 /**
@@ -231,23 +231,23 @@  discard block
 block discarded – undo
231 231
  *     Les paramètres du pipeline modifiés
232 232
  **/
233 233
 function minipipe($fonc, &$val) {
234
-	// fonction
235
-	if (function_exists($fonc)) {
236
-		$val = $fonc($val);
237
-	} // Class::Methode
238
-	else {
239
-		if (
240
-			preg_match('/^(\w*)::(\w*)$/S', $fonc, $regs)
241
-			and $methode = [$regs[1], $regs[2]]
242
-			and is_callable($methode)
243
-		) {
244
-			$val = $methode($val);
245
-		} else {
246
-			spip_log("Erreur - '$fonc' non definie !");
247
-		}
248
-	}
249
-
250
-	return $val;
234
+    // fonction
235
+    if (function_exists($fonc)) {
236
+        $val = $fonc($val);
237
+    } // Class::Methode
238
+    else {
239
+        if (
240
+            preg_match('/^(\w*)::(\w*)$/S', $fonc, $regs)
241
+            and $methode = [$regs[1], $regs[2]]
242
+            and is_callable($methode)
243
+        ) {
244
+            $val = $methode($val);
245
+        } else {
246
+            spip_log("Erreur - '$fonc' non definie !");
247
+        }
248
+    }
249
+
250
+    return $val;
251 251
 }
252 252
 
253 253
 /**
@@ -278,46 +278,46 @@  discard block
 block discarded – undo
278 278
  *     Résultat
279 279
  */
280 280
 function pipeline($action, $val = null) {
281
-	static $charger;
282
-
283
-	// chargement initial des fonctions mises en cache, ou generation du cache
284
-	if (!$charger) {
285
-		if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
286
-			include_spip('inc/plugin');
287
-			// generer les fichiers php precompiles
288
-			// de chargement des plugins et des pipelines
289
-			actualise_plugins_actifs();
290
-			if (!($ok = @is_readable($charger))) {
291
-				spip_log("fichier $charger pas cree");
292
-			}
293
-		}
294
-
295
-		if ($ok) {
296
-			include_once $charger;
297
-		}
298
-	}
299
-
300
-	// appliquer notre fonction si elle existe
301
-	$fonc = 'execute_pipeline_' . strtolower($action);
302
-	if (function_exists($fonc)) {
303
-		$val = $fonc($val);
304
-	} // plantage ?
305
-	else {
306
-		spip_log("fonction $fonc absente : pipeline desactive", _LOG_ERREUR);
307
-	}
308
-
309
-	// si le flux est une table avec 2 cle args&data
310
-	// on ne ressort du pipe que les donnees dans 'data'
311
-	// array_key_exists pour php 4.1.0
312
-	if (
313
-		is_array($val)
314
-		and count($val) == 2
315
-		and (array_key_exists('data', $val))
316
-	) {
317
-		$val = $val['data'];
318
-	}
319
-
320
-	return $val;
281
+    static $charger;
282
+
283
+    // chargement initial des fonctions mises en cache, ou generation du cache
284
+    if (!$charger) {
285
+        if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
286
+            include_spip('inc/plugin');
287
+            // generer les fichiers php precompiles
288
+            // de chargement des plugins et des pipelines
289
+            actualise_plugins_actifs();
290
+            if (!($ok = @is_readable($charger))) {
291
+                spip_log("fichier $charger pas cree");
292
+            }
293
+        }
294
+
295
+        if ($ok) {
296
+            include_once $charger;
297
+        }
298
+    }
299
+
300
+    // appliquer notre fonction si elle existe
301
+    $fonc = 'execute_pipeline_' . strtolower($action);
302
+    if (function_exists($fonc)) {
303
+        $val = $fonc($val);
304
+    } // plantage ?
305
+    else {
306
+        spip_log("fonction $fonc absente : pipeline desactive", _LOG_ERREUR);
307
+    }
308
+
309
+    // si le flux est une table avec 2 cle args&data
310
+    // on ne ressort du pipe que les donnees dans 'data'
311
+    // array_key_exists pour php 4.1.0
312
+    if (
313
+        is_array($val)
314
+        and count($val) == 2
315
+        and (array_key_exists('data', $val))
316
+    ) {
317
+        $val = $val['data'];
318
+    }
319
+
320
+    return $val;
321 321
 }
322 322
 
323 323
 /**
@@ -361,38 +361,38 @@  discard block
 block discarded – undo
361 361
  *     paramètre est planté pour cause de compatibilité ascendante.
362 362
  */
363 363
 function spip_log($message = null, $name = null) {
364
-	static $pre = [];
365
-	static $log;
366
-	preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string)$name, $regs);
367
-	if (!isset($regs[1]) or !$logname = $regs[1]) {
368
-		$logname = null;
369
-	}
370
-	if (!isset($regs[2])) {
371
-		$niveau = _LOG_INFO;
372
-	}
373
-	else {
374
-		$niveau = intval($regs[2]);
375
-	}
376
-
377
-	if ($niveau <= (defined('_LOG_FILTRE_GRAVITE') ? _LOG_FILTRE_GRAVITE : _LOG_INFO_IMPORTANTE)) {
378
-		if (!$pre) {
379
-			$pre = [
380
-				_LOG_HS => 'HS:',
381
-				_LOG_ALERTE_ROUGE => 'ALERTE:',
382
-				_LOG_CRITIQUE => 'CRITIQUE:',
383
-				_LOG_ERREUR => 'ERREUR:',
384
-				_LOG_AVERTISSEMENT => 'WARNING:',
385
-				_LOG_INFO_IMPORTANTE => '!INFO:',
386
-				_LOG_INFO => 'info:',
387
-				_LOG_DEBUG => 'debug:'
388
-			];
389
-			$log = charger_fonction('log', 'inc');
390
-		}
391
-		if (!is_string($message)) {
392
-			$message = print_r($message, true);
393
-		}
394
-		$log($pre[$niveau] . ' ' . $message, $logname);
395
-	}
364
+    static $pre = [];
365
+    static $log;
366
+    preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string)$name, $regs);
367
+    if (!isset($regs[1]) or !$logname = $regs[1]) {
368
+        $logname = null;
369
+    }
370
+    if (!isset($regs[2])) {
371
+        $niveau = _LOG_INFO;
372
+    }
373
+    else {
374
+        $niveau = intval($regs[2]);
375
+    }
376
+
377
+    if ($niveau <= (defined('_LOG_FILTRE_GRAVITE') ? _LOG_FILTRE_GRAVITE : _LOG_INFO_IMPORTANTE)) {
378
+        if (!$pre) {
379
+            $pre = [
380
+                _LOG_HS => 'HS:',
381
+                _LOG_ALERTE_ROUGE => 'ALERTE:',
382
+                _LOG_CRITIQUE => 'CRITIQUE:',
383
+                _LOG_ERREUR => 'ERREUR:',
384
+                _LOG_AVERTISSEMENT => 'WARNING:',
385
+                _LOG_INFO_IMPORTANTE => '!INFO:',
386
+                _LOG_INFO => 'info:',
387
+                _LOG_DEBUG => 'debug:'
388
+            ];
389
+            $log = charger_fonction('log', 'inc');
390
+        }
391
+        if (!is_string($message)) {
392
+            $message = print_r($message, true);
393
+        }
394
+        $log($pre[$niveau] . ' ' . $message, $logname);
395
+    }
396 396
 }
397 397
 
398 398
 /**
@@ -403,8 +403,8 @@  discard block
 block discarded – undo
403 403
  * @param array $opt Tableau d'options
404 404
  **/
405 405
 function journal($phrase, $opt = []) {
406
-	$journal = charger_fonction('journal', 'inc');
407
-	$journal($phrase, $opt);
406
+    $journal = charger_fonction('journal', 'inc');
407
+    $journal($phrase, $opt);
408 408
 }
409 409
 
410 410
 
@@ -423,37 +423,37 @@  discard block
 block discarded – undo
423 423
  **/
424 424
 function _request($var, $c = false) {
425 425
 
426
-	if (is_array($c)) {
427
-		return $c[$var] ?? null;
428
-	}
429
-
430
-	if (isset($_GET[$var])) {
431
-		$a = $_GET[$var];
432
-	} elseif (isset($_POST[$var])) {
433
-		$a = $_POST[$var];
434
-	} else {
435
-		return null;
436
-	}
437
-
438
-	// Si on est en ajax et en POST tout a ete encode
439
-	// via encodeURIComponent, il faut donc repasser
440
-	// dans le charset local...
441
-	if (
442
-		defined('_AJAX')
443
-		and _AJAX
444
-		and isset($GLOBALS['meta']['charset'])
445
-		and $GLOBALS['meta']['charset'] != 'utf-8'
446
-		and is_string($a)
447
-		// check rapide mais pas fiable
448
-		and preg_match(',[\x80-\xFF],', $a)
449
-		// check fiable
450
-		and include_spip('inc/charsets')
451
-		and is_utf8($a)
452
-	) {
453
-		return importer_charset($a, 'utf-8');
454
-	}
455
-
456
-	return $a;
426
+    if (is_array($c)) {
427
+        return $c[$var] ?? null;
428
+    }
429
+
430
+    if (isset($_GET[$var])) {
431
+        $a = $_GET[$var];
432
+    } elseif (isset($_POST[$var])) {
433
+        $a = $_POST[$var];
434
+    } else {
435
+        return null;
436
+    }
437
+
438
+    // Si on est en ajax et en POST tout a ete encode
439
+    // via encodeURIComponent, il faut donc repasser
440
+    // dans le charset local...
441
+    if (
442
+        defined('_AJAX')
443
+        and _AJAX
444
+        and isset($GLOBALS['meta']['charset'])
445
+        and $GLOBALS['meta']['charset'] != 'utf-8'
446
+        and is_string($a)
447
+        // check rapide mais pas fiable
448
+        and preg_match(',[\x80-\xFF],', $a)
449
+        // check fiable
450
+        and include_spip('inc/charsets')
451
+        and is_utf8($a)
452
+    ) {
453
+        return importer_charset($a, 'utf-8');
454
+    }
455
+
456
+    return $a;
457 457
 }
458 458
 
459 459
 
@@ -471,22 +471,22 @@  discard block
 block discarded – undo
471 471
  *     - false sinon
472 472
  **/
473 473
 function set_request($var, $val = null, $c = false) {
474
-	if (is_array($c)) {
475
-		unset($c[$var]);
476
-		if ($val !== null) {
477
-			$c[$var] = $val;
478
-		}
474
+    if (is_array($c)) {
475
+        unset($c[$var]);
476
+        if ($val !== null) {
477
+            $c[$var] = $val;
478
+        }
479 479
 
480
-		return $c;
481
-	}
480
+        return $c;
481
+    }
482 482
 
483
-	unset($_GET[$var]);
484
-	unset($_POST[$var]);
485
-	if ($val !== null) {
486
-		$_GET[$var] = $val;
487
-	}
483
+    unset($_GET[$var]);
484
+    unset($_POST[$var]);
485
+    if ($val !== null) {
486
+        $_GET[$var] = $val;
487
+    }
488 488
 
489
-	return false; # n'affecte pas $c
489
+    return false; # n'affecte pas $c
490 490
 }
491 491
 
492 492
 /**
@@ -506,25 +506,25 @@  discard block
 block discarded – undo
506 506
  * @return array|mixed|string
507 507
  */
508 508
 function spip_sanitize_from_request($value, $key, $sanitize_function = 'entites_html') {
509
-	if (is_array($value)) {
510
-		if ($key == '*') {
511
-			$key = array_keys($value);
512
-		}
513
-		if (!is_array($key)) {
514
-			$key = [$key];
515
-		}
516
-		foreach ($key as $k) {
517
-			if (!empty($value[$k])) {
518
-				$value[$k] = spip_sanitize_from_request($value[$k], $k, $sanitize_function);
519
-			}
520
-		}
521
-		return $value;
522
-	}
523
-	// si la valeur vient des GET ou POST on la sanitize
524
-	if (!empty($value) and $value == _request($key)) {
525
-		$value = $sanitize_function($value);
526
-	}
527
-	return $value;
509
+    if (is_array($value)) {
510
+        if ($key == '*') {
511
+            $key = array_keys($value);
512
+        }
513
+        if (!is_array($key)) {
514
+            $key = [$key];
515
+        }
516
+        foreach ($key as $k) {
517
+            if (!empty($value[$k])) {
518
+                $value[$k] = spip_sanitize_from_request($value[$k], $k, $sanitize_function);
519
+            }
520
+        }
521
+        return $value;
522
+    }
523
+    // si la valeur vient des GET ou POST on la sanitize
524
+    if (!empty($value) and $value == _request($key)) {
525
+        $value = $sanitize_function($value);
526
+    }
527
+    return $value;
528 528
 }
529 529
 
530 530
 /**
@@ -532,23 +532,22 @@  discard block
 block discarded – undo
532 532
  *
533 533
  * On est sur le web, on exclut certains protocoles,
534 534
  * notamment 'file://', 'php://' et d'autres…
535
-
536 535
  * @param string $url
537 536
  * @return bool
538 537
  */
539 538
 function tester_url_absolue($url) {
540
-	$url = trim($url ?? '');
541
-	if ($url && preg_match(';^([a-z]{3,7}:)?//;Uims', $url, $m)) {
542
-		if (
543
-			isset($m[1])
544
-			and $p = strtolower(rtrim($m[1], ':'))
545
-			and in_array($p, ['file', 'php', 'zlib', 'glob', 'phar', 'ssh2', 'rar', 'ogg', 'expect', 'zip'])
546
-		) {
547
-			return false;
548
-		}
549
-		return true;
550
-	}
551
-	return false;
539
+    $url = trim($url ?? '');
540
+    if ($url && preg_match(';^([a-z]{3,7}:)?//;Uims', $url, $m)) {
541
+        if (
542
+            isset($m[1])
543
+            and $p = strtolower(rtrim($m[1], ':'))
544
+            and in_array($p, ['file', 'php', 'zlib', 'glob', 'phar', 'ssh2', 'rar', 'ogg', 'expect', 'zip'])
545
+        ) {
546
+            return false;
547
+        }
548
+        return true;
549
+    }
550
+    return false;
552 551
 }
553 552
 
554 553
 /**
@@ -570,100 +569,100 @@  discard block
 block discarded – undo
570 569
  * @return string URL
571 570
  */
572 571
 function parametre_url($url, $c, $v = null, $sep = '&amp;') {
573
-	// requete erronnee : plusieurs variable dans $c et aucun $v
574
-	if (strpos($c, '|') !== false and is_null($v)) {
575
-		return null;
576
-	}
577
-
578
-	// lever l'#ancre
579
-	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
580
-		$url = $r[1];
581
-		$ancre = $r[2];
582
-	} else {
583
-		$ancre = '';
584
-	}
585
-
586
-	// eclater
587
-	$url = preg_split(',[?]|&amp;|&,', $url);
588
-
589
-	// recuperer la base
590
-	$a = array_shift($url);
591
-	if (!$a) {
592
-		$a = './';
593
-	}
594
-
595
-	// preparer la regexp de maniere securisee
596
-	$regexp = explode('|', $c);
597
-	foreach ($regexp as $r => $e) {
598
-		$regexp[$r] = str_replace('[]', '\[\]', preg_replace(',[^\w\d\[\]-],', '', $e));
599
-	}
600
-	$regexp = ',^(' . implode('|', $regexp) . '[[]?[]]?)(=.*)?$,';
601
-	$ajouts = array_flip(explode('|', $c));
602
-	$u = is_array($v) ? $v : rawurlencode((string) $v);
603
-	$testv = (is_array($v) ? count($v) : strlen((string) $v));
604
-	$v_read = null;
605
-	// lire les variables et agir
606
-	foreach ($url as $n => $val) {
607
-		if (preg_match($regexp, urldecode($val), $r)) {
608
-			$r = array_pad($r, 3, null);
609
-			if ($v === null) {
610
-				// c'est un tableau, on memorise les valeurs
611
-				if (substr($r[1], -2) == '[]') {
612
-					if (!$v_read) {
613
-						$v_read = [];
614
-					}
615
-					$v_read[] = $r[2] ? substr($r[2], 1) : '';
616
-				} // c'est un scalaire, on retourne direct
617
-				else {
618
-					return $r[2] ? substr($r[2], 1) : '';
619
-				}
620
-			} // suppression
621
-			elseif (!$testv) {
622
-				unset($url[$n]);
623
-			}
624
-			// Ajout. Pour une variable, remplacer au meme endroit,
625
-			// pour un tableau ce sera fait dans la prochaine boucle
626
-			elseif (substr($r[1], -2) != '[]') {
627
-				$url[$n] = $r[1] . '=' . $u;
628
-				unset($ajouts[$r[1]]);
629
-			}
630
-			// Pour les tableaux on laisse tomber les valeurs de
631
-			// départ, on remplira à l'étape suivante
632
-			else {
633
-				unset($url[$n]);
634
-			}
635
-		}
636
-	}
637
-
638
-	// traiter les parametres pas encore trouves
639
-	if (
640
-		$v === null
641
-		and $args = func_get_args()
642
-		and count($args) == 2
643
-	) {
644
-		return $v_read; // rien trouve ou un tableau
645
-	} elseif ($testv) {
646
-		foreach ($ajouts as $k => $n) {
647
-			if (!is_array($v)) {
648
-				$url[] = $k . '=' . $u;
649
-			} else {
650
-				$id = (substr($k, -2) == '[]') ? $k : ($k . '[]');
651
-				foreach ($v as $w) {
652
-					$url[] = $id . '=' . (is_array($w) ? 'Array' : rawurlencode($w));
653
-				}
654
-			}
655
-		}
656
-	}
657
-
658
-	// eliminer les vides
659
-	$url = array_filter($url);
660
-
661
-	// recomposer l'adresse
662
-	if ($url) {
663
-		$a .= '?' . join($sep, $url);
664
-	}
665
-
666
-	return $a . $ancre;
572
+    // requete erronnee : plusieurs variable dans $c et aucun $v
573
+    if (strpos($c, '|') !== false and is_null($v)) {
574
+        return null;
575
+    }
576
+
577
+    // lever l'#ancre
578
+    if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
579
+        $url = $r[1];
580
+        $ancre = $r[2];
581
+    } else {
582
+        $ancre = '';
583
+    }
584
+
585
+    // eclater
586
+    $url = preg_split(',[?]|&amp;|&,', $url);
587
+
588
+    // recuperer la base
589
+    $a = array_shift($url);
590
+    if (!$a) {
591
+        $a = './';
592
+    }
593
+
594
+    // preparer la regexp de maniere securisee
595
+    $regexp = explode('|', $c);
596
+    foreach ($regexp as $r => $e) {
597
+        $regexp[$r] = str_replace('[]', '\[\]', preg_replace(',[^\w\d\[\]-],', '', $e));
598
+    }
599
+    $regexp = ',^(' . implode('|', $regexp) . '[[]?[]]?)(=.*)?$,';
600
+    $ajouts = array_flip(explode('|', $c));
601
+    $u = is_array($v) ? $v : rawurlencode((string) $v);
602
+    $testv = (is_array($v) ? count($v) : strlen((string) $v));
603
+    $v_read = null;
604
+    // lire les variables et agir
605
+    foreach ($url as $n => $val) {
606
+        if (preg_match($regexp, urldecode($val), $r)) {
607
+            $r = array_pad($r, 3, null);
608
+            if ($v === null) {
609
+                // c'est un tableau, on memorise les valeurs
610
+                if (substr($r[1], -2) == '[]') {
611
+                    if (!$v_read) {
612
+                        $v_read = [];
613
+                    }
614
+                    $v_read[] = $r[2] ? substr($r[2], 1) : '';
615
+                } // c'est un scalaire, on retourne direct
616
+                else {
617
+                    return $r[2] ? substr($r[2], 1) : '';
618
+                }
619
+            } // suppression
620
+            elseif (!$testv) {
621
+                unset($url[$n]);
622
+            }
623
+            // Ajout. Pour une variable, remplacer au meme endroit,
624
+            // pour un tableau ce sera fait dans la prochaine boucle
625
+            elseif (substr($r[1], -2) != '[]') {
626
+                $url[$n] = $r[1] . '=' . $u;
627
+                unset($ajouts[$r[1]]);
628
+            }
629
+            // Pour les tableaux on laisse tomber les valeurs de
630
+            // départ, on remplira à l'étape suivante
631
+            else {
632
+                unset($url[$n]);
633
+            }
634
+        }
635
+    }
636
+
637
+    // traiter les parametres pas encore trouves
638
+    if (
639
+        $v === null
640
+        and $args = func_get_args()
641
+        and count($args) == 2
642
+    ) {
643
+        return $v_read; // rien trouve ou un tableau
644
+    } elseif ($testv) {
645
+        foreach ($ajouts as $k => $n) {
646
+            if (!is_array($v)) {
647
+                $url[] = $k . '=' . $u;
648
+            } else {
649
+                $id = (substr($k, -2) == '[]') ? $k : ($k . '[]');
650
+                foreach ($v as $w) {
651
+                    $url[] = $id . '=' . (is_array($w) ? 'Array' : rawurlencode($w));
652
+                }
653
+            }
654
+        }
655
+    }
656
+
657
+    // eliminer les vides
658
+    $url = array_filter($url);
659
+
660
+    // recomposer l'adresse
661
+    if ($url) {
662
+        $a .= '?' . join($sep, $url);
663
+    }
664
+
665
+    return $a . $ancre;
667 666
 }
668 667
 
669 668
 /**
@@ -678,22 +677,22 @@  discard block
 block discarded – undo
678 677
  * @uses translitteration()
679 678
  */
680 679
 function ancre_url(string $url, ?string $ancre = ''): string {
681
-	$ancre ??= '';
682
-	// lever l'#ancre
683
-	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
684
-		$url = $r[1];
685
-	}
686
-	if (preg_match('/[^-_a-zA-Z0-9]+/S', $ancre)) {
687
-		if (!function_exists('translitteration')) {
688
-			include_spip('inc/charsets');
689
-		}
690
-		$ancre = preg_replace(
691
-			['/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'],
692
-			['', '-'],
693
-			translitteration($ancre)
694
-		);
695
-	}
696
-	return $url . (strlen($ancre) ? '#' . $ancre : '');
680
+    $ancre ??= '';
681
+    // lever l'#ancre
682
+    if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
683
+        $url = $r[1];
684
+    }
685
+    if (preg_match('/[^-_a-zA-Z0-9]+/S', $ancre)) {
686
+        if (!function_exists('translitteration')) {
687
+            include_spip('inc/charsets');
688
+        }
689
+        $ancre = preg_replace(
690
+            ['/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'],
691
+            ['', '-'],
692
+            translitteration($ancre)
693
+        );
694
+    }
695
+    return $url . (strlen($ancre) ? '#' . $ancre : '');
697 696
 }
698 697
 
699 698
 /**
@@ -703,16 +702,16 @@  discard block
 block discarded – undo
703 702
  * @return string
704 703
  */
705 704
 function nettoyer_uri($reset = null) {
706
-	static $done = false;
707
-	static $propre = '';
708
-	if (!is_null($reset)) {
709
-		return $propre = $reset;
710
-	}
711
-	if ($done) {
712
-		return $propre;
713
-	}
714
-	$done = true;
715
-	return $propre = nettoyer_uri_var($GLOBALS['REQUEST_URI']);
705
+    static $done = false;
706
+    static $propre = '';
707
+    if (!is_null($reset)) {
708
+        return $propre = $reset;
709
+    }
710
+    if ($done) {
711
+        return $propre;
712
+    }
713
+    $done = true;
714
+    return $propre = nettoyer_uri_var($GLOBALS['REQUEST_URI']);
716 715
 }
717 716
 
718 717
 /**
@@ -724,16 +723,16 @@  discard block
 block discarded – undo
724 723
  * @return string
725 724
  */
726 725
 function nettoyer_uri_var($request_uri) {
727
-	$uri1 = $request_uri;
728
-	do {
729
-		$uri = $uri1;
730
-		$uri1 = preg_replace(
731
-			',([?&])(var_[^=&]*|PHPSESSID|fbclid|utm_[^=&]*)=[^&]*(&|$),i',
732
-			'\1',
733
-			$uri
734
-		);
735
-	} while ($uri <> $uri1);
736
-	return preg_replace(',[?&]$,', '', $uri1);
726
+    $uri1 = $request_uri;
727
+    do {
728
+        $uri = $uri1;
729
+        $uri1 = preg_replace(
730
+            ',([?&])(var_[^=&]*|PHPSESSID|fbclid|utm_[^=&]*)=[^&]*(&|$),i',
731
+            '\1',
732
+            $uri
733
+        );
734
+    } while ($uri <> $uri1);
735
+    return preg_replace(',[?&]$,', '', $uri1);
737 736
 }
738 737
 
739 738
 
@@ -747,48 +746,48 @@  discard block
 block discarded – undo
747 746
  *    URL vers soi-même
748 747
  **/
749 748
 function self($amp = '&amp;', $root = false) {
750
-	$url = nettoyer_uri();
751
-	if (
752
-		!$root
753
-		and (
754
-			// si pas de profondeur on peut tronquer
755
-			$GLOBALS['profondeur_url'] < (_DIR_RESTREINT ? 1 : 2)
756
-			// sinon c'est OK si _SET_HTML_BASE a ete force a false
757
-			or (defined('_SET_HTML_BASE') and !_SET_HTML_BASE))
758
-	) {
759
-		$url = preg_replace(',^[^?]*/,', '', $url);
760
-	}
761
-	// ajouter le cas echeant les variables _POST['id_...']
762
-	foreach ($_POST as $v => $c) {
763
-		if (substr($v, 0, 3) == 'id_') {
764
-			$url = parametre_url($url, $v, $c, '&');
765
-		}
766
-	}
767
-
768
-	// supprimer les variables sans interet
769
-	if (test_espace_prive()) {
770
-		$url = preg_replace(',([?&])('
771
-			. 'lang|show_docs|'
772
-			. 'changer_lang|var_lang|action)=[^&]*,i', '\1', $url);
773
-		$url = preg_replace(',([?&])[&]+,', '\1', $url);
774
-		$url = preg_replace(',[&]$,', '\1', $url);
775
-	}
776
-
777
-	// eviter les hacks
778
-	include_spip('inc/filtres_mini');
779
-	$url = spip_htmlspecialchars($url);
780
-
781
-	$url = str_replace(["'", '"', '<', '[', ']', ':'], ['%27', '%22', '%3C', '%5B', '%5D', '%3A'], $url);
782
-
783
-	// &amp; ?
784
-	if ($amp != '&amp;') {
785
-		$url = str_replace('&amp;', $amp, $url);
786
-	}
787
-
788
-	// Si ca demarre par ? ou vide, donner './'
789
-	$url = preg_replace(',^([?].*)?$,', './\1', $url);
790
-
791
-	return $url;
749
+    $url = nettoyer_uri();
750
+    if (
751
+        !$root
752
+        and (
753
+            // si pas de profondeur on peut tronquer
754
+            $GLOBALS['profondeur_url'] < (_DIR_RESTREINT ? 1 : 2)
755
+            // sinon c'est OK si _SET_HTML_BASE a ete force a false
756
+            or (defined('_SET_HTML_BASE') and !_SET_HTML_BASE))
757
+    ) {
758
+        $url = preg_replace(',^[^?]*/,', '', $url);
759
+    }
760
+    // ajouter le cas echeant les variables _POST['id_...']
761
+    foreach ($_POST as $v => $c) {
762
+        if (substr($v, 0, 3) == 'id_') {
763
+            $url = parametre_url($url, $v, $c, '&');
764
+        }
765
+    }
766
+
767
+    // supprimer les variables sans interet
768
+    if (test_espace_prive()) {
769
+        $url = preg_replace(',([?&])('
770
+            . 'lang|show_docs|'
771
+            . 'changer_lang|var_lang|action)=[^&]*,i', '\1', $url);
772
+        $url = preg_replace(',([?&])[&]+,', '\1', $url);
773
+        $url = preg_replace(',[&]$,', '\1', $url);
774
+    }
775
+
776
+    // eviter les hacks
777
+    include_spip('inc/filtres_mini');
778
+    $url = spip_htmlspecialchars($url);
779
+
780
+    $url = str_replace(["'", '"', '<', '[', ']', ':'], ['%27', '%22', '%3C', '%5B', '%5D', '%3A'], $url);
781
+
782
+    // &amp; ?
783
+    if ($amp != '&amp;') {
784
+        $url = str_replace('&amp;', $amp, $url);
785
+    }
786
+
787
+    // Si ca demarre par ? ou vide, donner './'
788
+    $url = preg_replace(',^([?].*)?$,', './\1', $url);
789
+
790
+    return $url;
792 791
 }
793 792
 
794 793
 
@@ -799,7 +798,7 @@  discard block
 block discarded – undo
799 798
  *     true si c'est le cas, false sinon.
800 799
  */
801 800
 function test_espace_prive() {
802
-	return defined('_ESPACE_PRIVE') ? _ESPACE_PRIVE : false;
801
+    return defined('_ESPACE_PRIVE') ? _ESPACE_PRIVE : false;
803 802
 }
804 803
 
805 804
 /**
@@ -809,7 +808,7 @@  discard block
 block discarded – undo
809 808
  * @return bool
810 809
  */
811 810
 function test_plugin_actif($plugin) {
812
-	return ($plugin and defined('_DIR_PLUGIN_' . strtoupper($plugin))) ? true : false;
811
+    return ($plugin and defined('_DIR_PLUGIN_' . strtoupper($plugin))) ? true : false;
813 812
 }
814 813
 
815 814
 /**
@@ -840,52 +839,52 @@  discard block
 block discarded – undo
840 839
  *     texte
841 840
  */
842 841
 function _T($texte, $args = [], $options = []) {
843
-	static $traduire = false;
844
-	$o = ['class' => '', 'force' => true, 'sanitize' => true];
845
-	if ($options) {
846
-		// support de l'ancien argument $class
847
-		if (is_string($options)) {
848
-			$options = ['class' => $options];
849
-		}
850
-		$o = array_merge($o, $options);
851
-	}
852
-
853
-	if (!$traduire) {
854
-		$traduire = charger_fonction('traduire', 'inc');
855
-		include_spip('inc/lang');
856
-	}
857
-
858
-	// On peut passer explicitement la langue dans le tableau
859
-	// On utilise le même nom de variable que la globale
860
-	if (isset($args['spip_lang'])) {
861
-		$lang = $args['spip_lang'];
862
-		// On l'enleve pour ne pas le passer au remplacement
863
-		unset($args['spip_lang']);
864
-	} // Sinon on prend la langue du contexte
865
-	else {
866
-		$lang = $GLOBALS['spip_lang'];
867
-	}
868
-	$text = $traduire($texte, $lang);
869
-
870
-	if ($text === null || !strlen($text)) {
871
-		if (!$o['force']) {
872
-			return '';
873
-		}
874
-
875
-		$text = $texte;
876
-
877
-		// pour les chaines non traduites, assurer un service minimum
878
-		if (!$GLOBALS['test_i18n'] and (_request('var_mode') != 'traduction')) {
879
-			$n = strpos($text, ':');
880
-			if ($n !== false) {
881
-				$text = substr($text, $n + 1);
882
-			}
883
-			$text = str_replace('_', ' ', $text);
884
-		}
885
-		$o['class'] = null;
886
-	}
887
-
888
-	return _L($text, $args, $o);
842
+    static $traduire = false;
843
+    $o = ['class' => '', 'force' => true, 'sanitize' => true];
844
+    if ($options) {
845
+        // support de l'ancien argument $class
846
+        if (is_string($options)) {
847
+            $options = ['class' => $options];
848
+        }
849
+        $o = array_merge($o, $options);
850
+    }
851
+
852
+    if (!$traduire) {
853
+        $traduire = charger_fonction('traduire', 'inc');
854
+        include_spip('inc/lang');
855
+    }
856
+
857
+    // On peut passer explicitement la langue dans le tableau
858
+    // On utilise le même nom de variable que la globale
859
+    if (isset($args['spip_lang'])) {
860
+        $lang = $args['spip_lang'];
861
+        // On l'enleve pour ne pas le passer au remplacement
862
+        unset($args['spip_lang']);
863
+    } // Sinon on prend la langue du contexte
864
+    else {
865
+        $lang = $GLOBALS['spip_lang'];
866
+    }
867
+    $text = $traduire($texte, $lang);
868
+
869
+    if ($text === null || !strlen($text)) {
870
+        if (!$o['force']) {
871
+            return '';
872
+        }
873
+
874
+        $text = $texte;
875
+
876
+        // pour les chaines non traduites, assurer un service minimum
877
+        if (!$GLOBALS['test_i18n'] and (_request('var_mode') != 'traduction')) {
878
+            $n = strpos($text, ':');
879
+            if ($n !== false) {
880
+                $text = substr($text, $n + 1);
881
+            }
882
+            $text = str_replace('_', ' ', $text);
883
+        }
884
+        $o['class'] = null;
885
+    }
886
+
887
+    return _L($text, $args, $o);
889 888
 }
890 889
 
891 890
 
@@ -912,53 +911,53 @@  discard block
 block discarded – undo
912 911
  *     texte
913 912
  */
914 913
 function _L($text, $args = [], $options = []) {
915
-	$f = $text;
916
-	$defaut_options = [
917
-		'class' => null,
918
-		'sanitize' => true,
919
-	];
920
-	// support de l'ancien argument $class
921
-	if ($options and is_string($options)) {
922
-		$options = ['class' => $options];
923
-	}
924
-	if (is_array($options)) {
925
-		$options += $defaut_options;
926
-	} else {
927
-		$options = $defaut_options;
928
-	}
929
-
930
-	if (is_array($args) and count($args)) {
931
-		if (!function_exists('interdire_scripts')) {
932
-			include_spip('inc/texte');
933
-		}
934
-		if (!function_exists('echapper_html_suspect')) {
935
-			include_spip('inc/texte_mini');
936
-		}
937
-		foreach ($args as $name => $value) {
938
-			if (strpos($text, (string) "@$name@") !== false) {
939
-				if ($options['sanitize']) {
940
-					$value = echapper_html_suspect($value);
941
-					$value = interdire_scripts($value, -1);
942
-				}
943
-				if (!empty($options['class'])) {
944
-					$value = "<span class='" . $options['class'] . "'>$value</span>";
945
-				}
946
-				$text = str_replace("@$name@", $value, $text);
947
-				unset($args[$name]);
948
-			}
949
-		}
950
-		// Si des variables n'ont pas ete inserees, le signaler
951
-		// (chaines de langues pas a jour)
952
-		if ($args) {
953
-			spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)), _LOG_DEBUG);
954
-		}
955
-	}
956
-
957
-	if (($GLOBALS['test_i18n'] or (_request('var_mode') == 'traduction')) and is_null($options['class'])) {
958
-		return "<span class='debug-traduction-erreur'>$text</span>";
959
-	} else {
960
-		return $text;
961
-	}
914
+    $f = $text;
915
+    $defaut_options = [
916
+        'class' => null,
917
+        'sanitize' => true,
918
+    ];
919
+    // support de l'ancien argument $class
920
+    if ($options and is_string($options)) {
921
+        $options = ['class' => $options];
922
+    }
923
+    if (is_array($options)) {
924
+        $options += $defaut_options;
925
+    } else {
926
+        $options = $defaut_options;
927
+    }
928
+
929
+    if (is_array($args) and count($args)) {
930
+        if (!function_exists('interdire_scripts')) {
931
+            include_spip('inc/texte');
932
+        }
933
+        if (!function_exists('echapper_html_suspect')) {
934
+            include_spip('inc/texte_mini');
935
+        }
936
+        foreach ($args as $name => $value) {
937
+            if (strpos($text, (string) "@$name@") !== false) {
938
+                if ($options['sanitize']) {
939
+                    $value = echapper_html_suspect($value);
940
+                    $value = interdire_scripts($value, -1);
941
+                }
942
+                if (!empty($options['class'])) {
943
+                    $value = "<span class='" . $options['class'] . "'>$value</span>";
944
+                }
945
+                $text = str_replace("@$name@", $value, $text);
946
+                unset($args[$name]);
947
+            }
948
+        }
949
+        // Si des variables n'ont pas ete inserees, le signaler
950
+        // (chaines de langues pas a jour)
951
+        if ($args) {
952
+            spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)), _LOG_DEBUG);
953
+        }
954
+    }
955
+
956
+    if (($GLOBALS['test_i18n'] or (_request('var_mode') == 'traduction')) and is_null($options['class'])) {
957
+        return "<span class='debug-traduction-erreur'>$text</span>";
958
+    } else {
959
+        return $text;
960
+    }
962 961
 }
963 962
 
964 963
 
@@ -972,13 +971,13 @@  discard block
 block discarded – undo
972 971
  * @return string
973 972
  */
974 973
 function joli_repertoire($rep) {
975
-	$a = substr($rep, 0, 1);
976
-	if ($a <> '.' and $a <> '/') {
977
-		$rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS) . $rep;
978
-	}
979
-	$rep = preg_replace(',(^\.\.\/),', '', $rep);
974
+    $a = substr($rep, 0, 1);
975
+    if ($a <> '.' and $a <> '/') {
976
+        $rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS) . $rep;
977
+    }
978
+    $rep = preg_replace(',(^\.\.\/),', '', $rep);
980 979
 
981
-	return $rep;
980
+    return $rep;
982 981
 }
983 982
 
984 983
 
@@ -1003,54 +1002,54 @@  discard block
 block discarded – undo
1003 1002
  * @return float|int|string|void
1004 1003
  */
1005 1004
 function spip_timer($t = 'rien', $raw = false) {
1006
-	static $time;
1007
-	$a = time();
1008
-	$b = microtime();
1009
-	// microtime peut contenir les microsecondes et le temps
1010
-	$b = explode(' ', $b);
1011
-	if (count($b) == 2) {
1012
-		$a = end($b);
1013
-	} // plus precis !
1014
-	$b = reset($b);
1015
-	if (!isset($time[$t])) {
1016
-		$time[$t] = $a + $b;
1017
-	} else {
1018
-		$p = ($a + $b - $time[$t]) * 1000;
1019
-		unset($time[$t]);
1005
+    static $time;
1006
+    $a = time();
1007
+    $b = microtime();
1008
+    // microtime peut contenir les microsecondes et le temps
1009
+    $b = explode(' ', $b);
1010
+    if (count($b) == 2) {
1011
+        $a = end($b);
1012
+    } // plus precis !
1013
+    $b = reset($b);
1014
+    if (!isset($time[$t])) {
1015
+        $time[$t] = $a + $b;
1016
+    } else {
1017
+        $p = ($a + $b - $time[$t]) * 1000;
1018
+        unset($time[$t]);
1020 1019
 #			echo "'$p'";exit;
1021
-		if ($raw) {
1022
-			return $p;
1023
-		}
1024
-		if ($p < 1000) {
1025
-			$s = '';
1026
-		} else {
1027
-			$s = sprintf('%d ', $x = floor($p / 1000));
1028
-			$p -= ($x * 1000);
1029
-		}
1020
+        if ($raw) {
1021
+            return $p;
1022
+        }
1023
+        if ($p < 1000) {
1024
+            $s = '';
1025
+        } else {
1026
+            $s = sprintf('%d ', $x = floor($p / 1000));
1027
+            $p -= ($x * 1000);
1028
+        }
1030 1029
 
1031
-		return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1032
-	}
1030
+        return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1031
+    }
1033 1032
 }
1034 1033
 
1035 1034
 
1036 1035
 // Renvoie False si un fichier n'est pas plus vieux que $duree secondes,
1037 1036
 // sinon renvoie True et le date sauf si ca n'est pas souhaite
1038 1037
 function spip_touch($fichier, $duree = 0, $touch = true) {
1039
-	if ($duree) {
1040
-		clearstatcache();
1041
-		if ((@$f = filemtime($fichier)) and ($f >= time() - $duree)) {
1042
-			return false;
1043
-		}
1044
-	}
1045
-	if ($touch !== false) {
1046
-		if (!@touch($fichier)) {
1047
-			spip_unlink($fichier);
1048
-			@touch($fichier);
1049
-		};
1050
-		@chmod($fichier, _SPIP_CHMOD & ~0111);
1051
-	}
1038
+    if ($duree) {
1039
+        clearstatcache();
1040
+        if ((@$f = filemtime($fichier)) and ($f >= time() - $duree)) {
1041
+            return false;
1042
+        }
1043
+    }
1044
+    if ($touch !== false) {
1045
+        if (!@touch($fichier)) {
1046
+            spip_unlink($fichier);
1047
+            @touch($fichier);
1048
+        };
1049
+        @chmod($fichier, _SPIP_CHMOD & ~0111);
1050
+    }
1052 1051
 
1053
-	return true;
1052
+    return true;
1054 1053
 }
1055 1054
 
1056 1055
 
@@ -1061,11 +1060,11 @@  discard block
 block discarded – undo
1061 1060
  * @uses cron()
1062 1061
  **/
1063 1062
 function action_cron() {
1064
-	include_spip('inc/headers');
1065
-	http_response_code(204); // No Content
1066
-	header('Connection: close');
1067
-	define('_DIRECT_CRON_FORCE', true);
1068
-	cron();
1063
+    include_spip('inc/headers');
1064
+    http_response_code(204); // No Content
1065
+    header('Connection: close');
1066
+    define('_DIRECT_CRON_FORCE', true);
1067
+    cron();
1069 1068
 }
1070 1069
 
1071 1070
 /**
@@ -1081,26 +1080,26 @@  discard block
 block discarded – undo
1081 1080
  *     True si la tache a pu être effectuée
1082 1081
  */
1083 1082
 function cron($taches = [], $taches_old = []) {
1084
-	// si pas en mode cron force, laisser tomber.
1085
-	if (!defined('_DIRECT_CRON_FORCE')) {
1086
-		return false;
1087
-	}
1088
-	if (!is_array($taches)) {
1089
-		$taches = $taches_old;
1090
-	} // compat anciens appels
1091
-	// si taches a inserer en base et base inaccessible, laisser tomber
1092
-	// sinon on ne verifie pas la connexion tout de suite, car si ca se trouve
1093
-	// queue_sleep_time_to_next_job() dira qu'il n'y a rien a faire
1094
-	// et on evite d'ouvrir une connexion pour rien (utilisation de _DIRECT_CRON_FORCE dans mes_options.php)
1095
-	if ($taches and count($taches) and !spip_connect()) {
1096
-		return false;
1097
-	}
1098
-	spip_log('cron !', 'jq' . _LOG_DEBUG);
1099
-	if ($genie = charger_fonction('genie', 'inc', true)) {
1100
-		return $genie($taches);
1101
-	}
1102
-
1103
-	return false;
1083
+    // si pas en mode cron force, laisser tomber.
1084
+    if (!defined('_DIRECT_CRON_FORCE')) {
1085
+        return false;
1086
+    }
1087
+    if (!is_array($taches)) {
1088
+        $taches = $taches_old;
1089
+    } // compat anciens appels
1090
+    // si taches a inserer en base et base inaccessible, laisser tomber
1091
+    // sinon on ne verifie pas la connexion tout de suite, car si ca se trouve
1092
+    // queue_sleep_time_to_next_job() dira qu'il n'y a rien a faire
1093
+    // et on evite d'ouvrir une connexion pour rien (utilisation de _DIRECT_CRON_FORCE dans mes_options.php)
1094
+    if ($taches and count($taches) and !spip_connect()) {
1095
+        return false;
1096
+    }
1097
+    spip_log('cron !', 'jq' . _LOG_DEBUG);
1098
+    if ($genie = charger_fonction('genie', 'inc', true)) {
1099
+        return $genie($taches);
1100
+    }
1101
+
1102
+    return false;
1104 1103
 }
1105 1104
 
1106 1105
 /**
@@ -1132,17 +1131,17 @@  discard block
 block discarded – undo
1132 1131
  *     Le numéro de travail ajouté ou `0` si aucun travail n’a été ajouté.
1133 1132
  */
1134 1133
 function job_queue_add(
1135
-	$function,
1136
-	$description,
1137
-	$arguments = [],
1138
-	$file = '',
1139
-	$no_duplicate = false,
1140
-	$time = 0,
1141
-	$priority = 0
1134
+    $function,
1135
+    $description,
1136
+    $arguments = [],
1137
+    $file = '',
1138
+    $no_duplicate = false,
1139
+    $time = 0,
1140
+    $priority = 0
1142 1141
 ) {
1143
-	include_spip('inc/queue');
1142
+    include_spip('inc/queue');
1144 1143
 
1145
-	return queue_add_job($function, $description, $arguments, $file, $no_duplicate, $time, $priority);
1144
+    return queue_add_job($function, $description, $arguments, $file, $no_duplicate, $time, $priority);
1146 1145
 }
1147 1146
 
1148 1147
 /**
@@ -1153,9 +1152,9 @@  discard block
 block discarded – undo
1153 1152
  * @return bool
1154 1153
  */
1155 1154
 function job_queue_remove($id_job) {
1156
-	include_spip('inc/queue');
1155
+    include_spip('inc/queue');
1157 1156
 
1158
-	return queue_remove_job($id_job);
1157
+    return queue_remove_job($id_job);
1159 1158
 }
1160 1159
 
1161 1160
 /**
@@ -1168,9 +1167,9 @@  discard block
 block discarded – undo
1168 1167
  *     or an array of simple array to link multiples objet in one time
1169 1168
  */
1170 1169
 function job_queue_link($id_job, $objets) {
1171
-	include_spip('inc/queue');
1170
+    include_spip('inc/queue');
1172 1171
 
1173
-	return queue_link_job($id_job, $objets);
1172
+    return queue_link_job($id_job, $objets);
1174 1173
 }
1175 1174
 
1176 1175
 
@@ -1190,36 +1189,36 @@  discard block
 block discarded – undo
1190 1189
  *  - `null` si la queue n'est pas encore initialisée
1191 1190
  */
1192 1191
 function queue_sleep_time_to_next_job($force = null) {
1193
-	static $queue_next_job_time = -1;
1194
-	if ($force === true) {
1195
-		$queue_next_job_time = -1;
1196
-	} elseif ($force) {
1197
-		$queue_next_job_time = $force;
1198
-	}
1199
-
1200
-	if ($queue_next_job_time == -1) {
1201
-		if (!defined('_JQ_NEXT_JOB_TIME_FILENAME')) {
1202
-			define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP . 'job_queue_next.txt');
1203
-		}
1204
-		// utiliser un cache memoire si dispo
1205
-		if (function_exists('cache_get') and defined('_MEMOIZE_MEMORY') and _MEMOIZE_MEMORY) {
1206
-			$queue_next_job_time = cache_get(_JQ_NEXT_JOB_TIME_FILENAME);
1207
-		} else {
1208
-			$queue_next_job_time = null;
1209
-			if (lire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, $contenu)) {
1210
-				$queue_next_job_time = intval($contenu);
1211
-			}
1212
-		}
1213
-	}
1214
-
1215
-	if (is_null($queue_next_job_time)) {
1216
-		return null;
1217
-	}
1218
-	if (!$_SERVER['REQUEST_TIME']) {
1219
-		$_SERVER['REQUEST_TIME'] = time();
1220
-	}
1221
-
1222
-	return $queue_next_job_time - $_SERVER['REQUEST_TIME'];
1192
+    static $queue_next_job_time = -1;
1193
+    if ($force === true) {
1194
+        $queue_next_job_time = -1;
1195
+    } elseif ($force) {
1196
+        $queue_next_job_time = $force;
1197
+    }
1198
+
1199
+    if ($queue_next_job_time == -1) {
1200
+        if (!defined('_JQ_NEXT_JOB_TIME_FILENAME')) {
1201
+            define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP . 'job_queue_next.txt');
1202
+        }
1203
+        // utiliser un cache memoire si dispo
1204
+        if (function_exists('cache_get') and defined('_MEMOIZE_MEMORY') and _MEMOIZE_MEMORY) {
1205
+            $queue_next_job_time = cache_get(_JQ_NEXT_JOB_TIME_FILENAME);
1206
+        } else {
1207
+            $queue_next_job_time = null;
1208
+            if (lire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, $contenu)) {
1209
+                $queue_next_job_time = intval($contenu);
1210
+            }
1211
+        }
1212
+    }
1213
+
1214
+    if (is_null($queue_next_job_time)) {
1215
+        return null;
1216
+    }
1217
+    if (!$_SERVER['REQUEST_TIME']) {
1218
+        $_SERVER['REQUEST_TIME'] = time();
1219
+    }
1220
+
1221
+    return $queue_next_job_time - $_SERVER['REQUEST_TIME'];
1223 1222
 }
1224 1223
 
1225 1224
 
@@ -1231,11 +1230,11 @@  discard block
 block discarded – undo
1231 1230
  * @return string
1232 1231
  */
1233 1232
 function quote_amp($u) {
1234
-	return preg_replace(
1235
-		'/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,6};)/i',
1236
-		'&amp;',
1237
-		$u
1238
-	);
1233
+    return preg_replace(
1234
+        '/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,6};)/i',
1235
+        '&amp;',
1236
+        $u
1237
+    );
1239 1238
 }
1240 1239
 
1241 1240
 
@@ -1258,27 +1257,27 @@  discard block
 block discarded – undo
1258 1257
  *     Balise HTML `<script>` et son contenu
1259 1258
  **/
1260 1259
 function http_script($script, $src = '', $noscript = '') {
1261
-	static $done = [];
1260
+    static $done = [];
1262 1261
 
1263
-	if ($src && !isset($done[$src])) {
1264
-		$done[$src] = true;
1265
-		$src = find_in_path($src, _JAVASCRIPT);
1266
-		$src = " src='$src'";
1267
-	} else {
1268
-		$src = '';
1269
-	}
1270
-	if ($script) {
1271
-		$script = ("/*<![CDATA[*/\n" .
1272
-			preg_replace(',</([^>]*)>,', '<\/\1>', $script) .
1273
-			'/*]]>*/');
1274
-	}
1275
-	if ($noscript) {
1276
-		$noscript = "<noscript>\n\t$noscript\n</noscript>\n";
1277
-	}
1262
+    if ($src && !isset($done[$src])) {
1263
+        $done[$src] = true;
1264
+        $src = find_in_path($src, _JAVASCRIPT);
1265
+        $src = " src='$src'";
1266
+    } else {
1267
+        $src = '';
1268
+    }
1269
+    if ($script) {
1270
+        $script = ("/*<![CDATA[*/\n" .
1271
+            preg_replace(',</([^>]*)>,', '<\/\1>', $script) .
1272
+            '/*]]>*/');
1273
+    }
1274
+    if ($noscript) {
1275
+        $noscript = "<noscript>\n\t$noscript\n</noscript>\n";
1276
+    }
1278 1277
 
1279
-	return ($src or $script or $noscript)
1280
-		? "<script type='text/javascript'$src>$script</script>$noscript"
1281
-		: '';
1278
+    return ($src or $script or $noscript)
1279
+        ? "<script type='text/javascript'$src>$script</script>$noscript"
1280
+        : '';
1282 1281
 }
1283 1282
 
1284 1283
 
@@ -1313,7 +1312,7 @@  discard block
 block discarded – undo
1313 1312
  *     texte échappé
1314 1313
  **/
1315 1314
 function texte_script(string $texte): string {
1316
-	return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte));
1315
+    return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte));
1317 1316
 }
1318 1317
 
1319 1318
 
@@ -1350,68 +1349,68 @@  discard block
 block discarded – undo
1350 1349
  *     Liste des chemins, par ordre de priorité.
1351 1350
  **/
1352 1351
 function _chemin($dir_path = null) {
1353
-	static $path_base = null;
1354
-	static $path_full = null;
1355
-	if ($path_base == null) {
1356
-		// Chemin standard depuis l'espace public
1357
-		$path = defined('_SPIP_PATH') ? _SPIP_PATH :
1358
-			_DIR_RACINE . ':' .
1359
-			_DIR_RACINE . 'squelettes-dist/:' .
1360
-			_DIR_RACINE . 'prive/:' .
1361
-			_DIR_RESTREINT;
1362
-		// Ajouter squelettes/
1363
-		if (@is_dir(_DIR_RACINE . 'squelettes')) {
1364
-			$path = _DIR_RACINE . 'squelettes/:' . $path;
1365
-		}
1366
-		foreach (explode(':', $path) as $dir) {
1367
-			if (strlen($dir) and substr($dir, -1) != '/') {
1368
-				$dir .= '/';
1369
-			}
1370
-			$path_base[] = $dir;
1371
-		}
1372
-		$path_full = $path_base;
1373
-		// Et le(s) dossier(s) des squelettes nommes
1374
-		if (strlen($GLOBALS['dossier_squelettes'])) {
1375
-			foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1376
-				array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
1377
-			}
1378
-		}
1379
-		$GLOBALS['path_sig'] = md5(serialize($path_full));
1380
-	}
1381
-	if ($dir_path === null) {
1382
-		return $path_full;
1383
-	}
1384
-
1385
-	if (is_array($dir_path) or strlen($dir_path)) {
1386
-		$tete = '';
1387
-		if (reset($path_base) == _DIR_RACINE . 'squelettes/') {
1388
-			$tete = array_shift($path_base);
1389
-		}
1390
-		$dirs = (is_array($dir_path) ? $dir_path : explode(':', $dir_path));
1391
-		$dirs = array_reverse($dirs);
1392
-		foreach ($dirs as $dir_path) {
1393
-			if (substr($dir_path, -1) != '/') {
1394
-				$dir_path .= '/';
1395
-			}
1396
-			if (!in_array($dir_path, $path_base)) {
1397
-				array_unshift($path_base, $dir_path);
1398
-			}
1399
-		}
1400
-		if (strlen($tete)) {
1401
-			array_unshift($path_base, $tete);
1402
-		}
1403
-	}
1404
-	$path_full = $path_base;
1405
-	// Et le(s) dossier(s) des squelettes nommes
1406
-	if (strlen($GLOBALS['dossier_squelettes'])) {
1407
-		foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1408
-			array_unshift($path_full, ((isset($d[0]) and $d[0] == '/') ? '' : _DIR_RACINE) . $d . '/');
1409
-		}
1410
-	}
1411
-
1412
-	$GLOBALS['path_sig'] = md5(serialize($path_full));
1413
-
1414
-	return $path_full;
1352
+    static $path_base = null;
1353
+    static $path_full = null;
1354
+    if ($path_base == null) {
1355
+        // Chemin standard depuis l'espace public
1356
+        $path = defined('_SPIP_PATH') ? _SPIP_PATH :
1357
+            _DIR_RACINE . ':' .
1358
+            _DIR_RACINE . 'squelettes-dist/:' .
1359
+            _DIR_RACINE . 'prive/:' .
1360
+            _DIR_RESTREINT;
1361
+        // Ajouter squelettes/
1362
+        if (@is_dir(_DIR_RACINE . 'squelettes')) {
1363
+            $path = _DIR_RACINE . 'squelettes/:' . $path;
1364
+        }
1365
+        foreach (explode(':', $path) as $dir) {
1366
+            if (strlen($dir) and substr($dir, -1) != '/') {
1367
+                $dir .= '/';
1368
+            }
1369
+            $path_base[] = $dir;
1370
+        }
1371
+        $path_full = $path_base;
1372
+        // Et le(s) dossier(s) des squelettes nommes
1373
+        if (strlen($GLOBALS['dossier_squelettes'])) {
1374
+            foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1375
+                array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
1376
+            }
1377
+        }
1378
+        $GLOBALS['path_sig'] = md5(serialize($path_full));
1379
+    }
1380
+    if ($dir_path === null) {
1381
+        return $path_full;
1382
+    }
1383
+
1384
+    if (is_array($dir_path) or strlen($dir_path)) {
1385
+        $tete = '';
1386
+        if (reset($path_base) == _DIR_RACINE . 'squelettes/') {
1387
+            $tete = array_shift($path_base);
1388
+        }
1389
+        $dirs = (is_array($dir_path) ? $dir_path : explode(':', $dir_path));
1390
+        $dirs = array_reverse($dirs);
1391
+        foreach ($dirs as $dir_path) {
1392
+            if (substr($dir_path, -1) != '/') {
1393
+                $dir_path .= '/';
1394
+            }
1395
+            if (!in_array($dir_path, $path_base)) {
1396
+                array_unshift($path_base, $dir_path);
1397
+            }
1398
+        }
1399
+        if (strlen($tete)) {
1400
+            array_unshift($path_base, $tete);
1401
+        }
1402
+    }
1403
+    $path_full = $path_base;
1404
+    // Et le(s) dossier(s) des squelettes nommes
1405
+    if (strlen($GLOBALS['dossier_squelettes'])) {
1406
+        foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1407
+            array_unshift($path_full, ((isset($d[0]) and $d[0] == '/') ? '' : _DIR_RACINE) . $d . '/');
1408
+        }
1409
+    }
1410
+
1411
+    $GLOBALS['path_sig'] = md5(serialize($path_full));
1412
+
1413
+    return $path_full;
1415 1414
 }
1416 1415
 
1417 1416
 /**
@@ -1424,17 +1423,17 @@  discard block
 block discarded – undo
1424 1423
  * @return array Liste de chemins
1425 1424
  **/
1426 1425
 function creer_chemin() {
1427
-	$path_a = _chemin();
1428
-	static $c = '';
1426
+    $path_a = _chemin();
1427
+    static $c = '';
1429 1428
 
1430
-	// on calcule le chemin si le dossier skel a change
1431
-	if ($c != $GLOBALS['dossier_squelettes']) {
1432
-		// assurer le non plantage lors de la montee de version :
1433
-		$c = $GLOBALS['dossier_squelettes'];
1434
-		$path_a = _chemin(''); // forcer un recalcul du chemin
1435
-	}
1429
+    // on calcule le chemin si le dossier skel a change
1430
+    if ($c != $GLOBALS['dossier_squelettes']) {
1431
+        // assurer le non plantage lors de la montee de version :
1432
+        $c = $GLOBALS['dossier_squelettes'];
1433
+        $path_a = _chemin(''); // forcer un recalcul du chemin
1434
+    }
1436 1435
 
1437
-	return $path_a;
1436
+    return $path_a;
1438 1437
 }
1439 1438
 
1440 1439
 
@@ -1446,61 +1445,61 @@  discard block
 block discarded – undo
1446 1445
  * @return string[] Nom des thèmes.
1447 1446
  */
1448 1447
 function lister_themes_prives(): array {
1449
-	static $themes = null;
1450
-	if (is_null($themes)) {
1451
-		// si pas encore definie
1452
-		if (!defined('_SPIP_THEME_PRIVE')) {
1453
-			define('_SPIP_THEME_PRIVE', 'spip');
1454
-		}
1455
-		$themes = [_SPIP_THEME_PRIVE];
1456
-		// Lors d'une installation neuve, prefs n'est pas definie ; sinon, c'est un tableau sérialisé
1457
-		// FIXME: Aussitôt après une demande d'inscription, $prefs vaut une chaine statut_tmp;
1458
-		$prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
1459
-		if (is_string($prefs) and (stripos($prefs, 'a:') === 0)) {
1460
-			$prefs = unserialize($prefs);
1461
-		} else {
1462
-			$prefs = [];
1463
-		}
1464
-
1465
-		$theme = $prefs['theme'] ?? $GLOBALS['theme_prive_defaut'] ?? null;
1466
-		if ($theme and $theme !== _SPIP_THEME_PRIVE) {
1467
-			// placer le theme choisi en tete
1468
-			array_unshift($themes, $theme);
1469
-		}
1470
-	}
1471
-
1472
-	return $themes;
1448
+    static $themes = null;
1449
+    if (is_null($themes)) {
1450
+        // si pas encore definie
1451
+        if (!defined('_SPIP_THEME_PRIVE')) {
1452
+            define('_SPIP_THEME_PRIVE', 'spip');
1453
+        }
1454
+        $themes = [_SPIP_THEME_PRIVE];
1455
+        // Lors d'une installation neuve, prefs n'est pas definie ; sinon, c'est un tableau sérialisé
1456
+        // FIXME: Aussitôt après une demande d'inscription, $prefs vaut une chaine statut_tmp;
1457
+        $prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
1458
+        if (is_string($prefs) and (stripos($prefs, 'a:') === 0)) {
1459
+            $prefs = unserialize($prefs);
1460
+        } else {
1461
+            $prefs = [];
1462
+        }
1463
+
1464
+        $theme = $prefs['theme'] ?? $GLOBALS['theme_prive_defaut'] ?? null;
1465
+        if ($theme and $theme !== _SPIP_THEME_PRIVE) {
1466
+            // placer le theme choisi en tete
1467
+            array_unshift($themes, $theme);
1468
+        }
1469
+    }
1470
+
1471
+    return $themes;
1473 1472
 }
1474 1473
 
1475 1474
 function find_in_theme($file, $subdir = '', $include = false) {
1476
-	static $themefiles = [];
1477
-	if (isset($themefiles["$subdir$file"])) {
1478
-		return $themefiles["$subdir$file"];
1479
-	}
1480
-	// on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png
1481
-	// si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png
1482
-	if (
1483
-		preg_match(',-(\d+)[.](png|gif|svg)$,', $file, $m)
1484
-		and $file_svg_generique = substr($file, 0, -strlen($m[0])) . '-xx.svg'
1485
-		and $f = find_in_theme("$file_svg_generique")
1486
-	) {
1487
-		if ($fsize = substr($f, 0, -6) . $m[1] . '.svg' and file_exists($fsize)) {
1488
-			return $themefiles["$subdir$file"] = $fsize;
1489
-		}
1490
-		else {
1491
-			return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1492
-		}
1493
-	}
1494
-
1495
-	$themes = lister_themes_prives();
1496
-	foreach ($themes as $theme) {
1497
-		if ($f = find_in_path($file, "prive/themes/$theme/$subdir", $include)) {
1498
-			return $themefiles["$subdir$file"] = $f;
1499
-		}
1500
-	}
1501
-	spip_log("$file introuvable dans le theme prive " . reset($themes), 'theme');
1502
-
1503
-	return $themefiles["$subdir$file"] = '';
1475
+    static $themefiles = [];
1476
+    if (isset($themefiles["$subdir$file"])) {
1477
+        return $themefiles["$subdir$file"];
1478
+    }
1479
+    // on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png
1480
+    // si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png
1481
+    if (
1482
+        preg_match(',-(\d+)[.](png|gif|svg)$,', $file, $m)
1483
+        and $file_svg_generique = substr($file, 0, -strlen($m[0])) . '-xx.svg'
1484
+        and $f = find_in_theme("$file_svg_generique")
1485
+    ) {
1486
+        if ($fsize = substr($f, 0, -6) . $m[1] . '.svg' and file_exists($fsize)) {
1487
+            return $themefiles["$subdir$file"] = $fsize;
1488
+        }
1489
+        else {
1490
+            return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1491
+        }
1492
+    }
1493
+
1494
+    $themes = lister_themes_prives();
1495
+    foreach ($themes as $theme) {
1496
+        if ($f = find_in_path($file, "prive/themes/$theme/$subdir", $include)) {
1497
+            return $themefiles["$subdir$file"] = $f;
1498
+        }
1499
+    }
1500
+    spip_log("$file introuvable dans le theme prive " . reset($themes), 'theme');
1501
+
1502
+    return $themefiles["$subdir$file"] = '';
1504 1503
 }
1505 1504
 
1506 1505
 
@@ -1524,31 +1523,31 @@  discard block
 block discarded – undo
1524 1523
  *     sinon chaîne vide.
1525 1524
  **/
1526 1525
 function chemin_image($icone) {
1527
-	static $icone_renommer;
1528
-	if ($p = strpos($icone, '?')) {
1529
-		$icone = substr($icone, 0, $p);
1530
-	}
1531
-	// gerer le cas d'un double appel en evitant de refaire le travail inutilement
1532
-	if (strpos($icone, '/') !== false and file_exists($icone)) {
1533
-		return $icone;
1534
-	}
1535
-
1536
-	// si c'est un nom d'image complet (article-24.png) essayer de le renvoyer direct
1537
-	if (preg_match(',[.](png|gif|jpg|webp|svg)$,', $icone) and $f = find_in_theme("images/$icone")) {
1538
-		return $f;
1539
-	}
1540
-	// sinon passer par le module de renommage
1541
-	if (is_null($icone_renommer)) {
1542
-		$icone_renommer = charger_fonction('icone_renommer', 'inc', true);
1543
-	}
1544
-	if ($icone_renommer) {
1545
-		[$icone, $fonction] = $icone_renommer($icone, '');
1546
-		if (file_exists($icone)) {
1547
-			return $icone;
1548
-		}
1549
-	}
1550
-
1551
-	return find_in_path($icone, _NOM_IMG_PACK);
1526
+    static $icone_renommer;
1527
+    if ($p = strpos($icone, '?')) {
1528
+        $icone = substr($icone, 0, $p);
1529
+    }
1530
+    // gerer le cas d'un double appel en evitant de refaire le travail inutilement
1531
+    if (strpos($icone, '/') !== false and file_exists($icone)) {
1532
+        return $icone;
1533
+    }
1534
+
1535
+    // si c'est un nom d'image complet (article-24.png) essayer de le renvoyer direct
1536
+    if (preg_match(',[.](png|gif|jpg|webp|svg)$,', $icone) and $f = find_in_theme("images/$icone")) {
1537
+        return $f;
1538
+    }
1539
+    // sinon passer par le module de renommage
1540
+    if (is_null($icone_renommer)) {
1541
+        $icone_renommer = charger_fonction('icone_renommer', 'inc', true);
1542
+    }
1543
+    if ($icone_renommer) {
1544
+        [$icone, $fonction] = $icone_renommer($icone, '');
1545
+        if (file_exists($icone)) {
1546
+            return $icone;
1547
+        }
1548
+    }
1549
+
1550
+    return find_in_path($icone, _NOM_IMG_PACK);
1552 1551
 }
1553 1552
 
1554 1553
 //
@@ -1586,128 +1585,128 @@  discard block
 block discarded – undo
1586 1585
  *     - false : fichier introuvable
1587 1586
  **/
1588 1587
 function find_in_path($file, $dirname = '', $include = false) {
1589
-	static $dirs = [];
1590
-	static $inc = []; # cf https://git.spip.net/spip/spip/commit/42e4e028e38c839121efaee84308d08aee307eec
1591
-	static $c = '';
1592
-
1593
-	if (!$file and !strlen($file)) {
1594
-		return false;
1595
-	}
1596
-
1597
-	// on calcule le chemin si le dossier skel a change
1598
-	if ($c != $GLOBALS['dossier_squelettes']) {
1599
-		// assurer le non plantage lors de la montee de version :
1600
-		$c = $GLOBALS['dossier_squelettes'];
1601
-		creer_chemin(); // forcer un recalcul du chemin et la mise a jour de path_sig
1602
-	}
1603
-
1604
-	if (isset($GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])) {
1605
-		if (!$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file]) {
1606
-			return false;
1607
-		}
1608
-		if ($include and !isset($inc[$dirname][$file])) {
1609
-			include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1610
-			$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1611
-		}
1612
-
1613
-		return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1614
-	}
1615
-
1616
-	$a = strrpos($file, '/');
1617
-	if ($a !== false) {
1618
-		$dirname .= substr($file, 0, ++$a);
1619
-		$file = substr($file, $a);
1620
-	}
1621
-
1622
-	foreach (creer_chemin() as $dir) {
1623
-		if (!isset($dirs[$a = $dir . $dirname])) {
1624
-			$dirs[$a] = (is_dir(_ROOT_CWD . $a) || !$a);
1625
-		}
1626
-		if ($dirs[$a]) {
1627
-			if (file_exists(_ROOT_CWD . ($a .= $file))) {
1628
-				if ($include and !isset($inc[$dirname][$file])) {
1629
-					include_once _ROOT_CWD . $a;
1630
-					$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1631
-				}
1632
-				if (!defined('_SAUVER_CHEMIN')) {
1633
-					// si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1634
-					if (is_null($GLOBALS['path_files'])) {
1635
-						return $a;
1636
-					}
1637
-					define('_SAUVER_CHEMIN', true);
1638
-				}
1639
-
1640
-				return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
1641
-			}
1642
-		}
1643
-	}
1644
-
1645
-	if ($include) {
1646
-		spip_log("include_spip $dirname$file non trouve");
1647
-		if ($include === 'required') {
1648
-			echo '<pre>',
1649
-			'<strong>Erreur Fatale</strong><br />';
1650
-			if (function_exists('debug_print_backtrace')) {
1651
-				debug_print_backtrace();
1652
-			}
1653
-			echo '</pre>';
1654
-			die("Erreur interne: ne peut inclure $dirname$file");
1655
-		}
1656
-	}
1657
-
1658
-	if (!defined('_SAUVER_CHEMIN')) {
1659
-		// si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1660
-		if (is_null($GLOBALS['path_files'])) {
1661
-			return false;
1662
-		}
1663
-		define('_SAUVER_CHEMIN', true);
1664
-	}
1665
-
1666
-	return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
1588
+    static $dirs = [];
1589
+    static $inc = []; # cf https://git.spip.net/spip/spip/commit/42e4e028e38c839121efaee84308d08aee307eec
1590
+    static $c = '';
1591
+
1592
+    if (!$file and !strlen($file)) {
1593
+        return false;
1594
+    }
1595
+
1596
+    // on calcule le chemin si le dossier skel a change
1597
+    if ($c != $GLOBALS['dossier_squelettes']) {
1598
+        // assurer le non plantage lors de la montee de version :
1599
+        $c = $GLOBALS['dossier_squelettes'];
1600
+        creer_chemin(); // forcer un recalcul du chemin et la mise a jour de path_sig
1601
+    }
1602
+
1603
+    if (isset($GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])) {
1604
+        if (!$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file]) {
1605
+            return false;
1606
+        }
1607
+        if ($include and !isset($inc[$dirname][$file])) {
1608
+            include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1609
+            $inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1610
+        }
1611
+
1612
+        return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1613
+    }
1614
+
1615
+    $a = strrpos($file, '/');
1616
+    if ($a !== false) {
1617
+        $dirname .= substr($file, 0, ++$a);
1618
+        $file = substr($file, $a);
1619
+    }
1620
+
1621
+    foreach (creer_chemin() as $dir) {
1622
+        if (!isset($dirs[$a = $dir . $dirname])) {
1623
+            $dirs[$a] = (is_dir(_ROOT_CWD . $a) || !$a);
1624
+        }
1625
+        if ($dirs[$a]) {
1626
+            if (file_exists(_ROOT_CWD . ($a .= $file))) {
1627
+                if ($include and !isset($inc[$dirname][$file])) {
1628
+                    include_once _ROOT_CWD . $a;
1629
+                    $inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1630
+                }
1631
+                if (!defined('_SAUVER_CHEMIN')) {
1632
+                    // si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1633
+                    if (is_null($GLOBALS['path_files'])) {
1634
+                        return $a;
1635
+                    }
1636
+                    define('_SAUVER_CHEMIN', true);
1637
+                }
1638
+
1639
+                return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
1640
+            }
1641
+        }
1642
+    }
1643
+
1644
+    if ($include) {
1645
+        spip_log("include_spip $dirname$file non trouve");
1646
+        if ($include === 'required') {
1647
+            echo '<pre>',
1648
+            '<strong>Erreur Fatale</strong><br />';
1649
+            if (function_exists('debug_print_backtrace')) {
1650
+                debug_print_backtrace();
1651
+            }
1652
+            echo '</pre>';
1653
+            die("Erreur interne: ne peut inclure $dirname$file");
1654
+        }
1655
+    }
1656
+
1657
+    if (!defined('_SAUVER_CHEMIN')) {
1658
+        // si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1659
+        if (is_null($GLOBALS['path_files'])) {
1660
+            return false;
1661
+        }
1662
+        define('_SAUVER_CHEMIN', true);
1663
+    }
1664
+
1665
+    return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
1667 1666
 }
1668 1667
 
1669 1668
 function clear_path_cache() {
1670
-	$GLOBALS['path_files'] = [];
1671
-	spip_unlink(_CACHE_CHEMIN);
1669
+    $GLOBALS['path_files'] = [];
1670
+    spip_unlink(_CACHE_CHEMIN);
1672 1671
 }
1673 1672
 
1674 1673
 function load_path_cache() {
1675
-	// charger le path des plugins
1676
-	if (@is_readable(_CACHE_PLUGINS_PATH)) {
1677
-		include_once(_CACHE_PLUGINS_PATH);
1678
-	}
1679
-	$GLOBALS['path_files'] = [];
1680
-	// si le visiteur est admin,
1681
-	// on ne recharge pas le cache pour forcer sa mise a jour
1682
-	if (
1683
-		// la session n'est pas encore chargee a ce moment, on ne peut donc pas s'y fier
1684
-		//AND (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']!='0minirezo')
1685
-		// utiliser le cookie est un pis aller qui marche 'en general'
1686
-		// on blinde par un second test au moment de la lecture de la session
1687
-		// !isset($_COOKIE[$GLOBALS['cookie_prefix'].'_admin'])
1688
-		// et en ignorant ce cache en cas de recalcul explicite
1689
-		!_request('var_mode')
1690
-	) {
1691
-		// on essaye de lire directement sans verrou pour aller plus vite
1692
-		if ($contenu = spip_file_get_contents(_CACHE_CHEMIN)) {
1693
-			// mais si semble corrompu on relit avec un verrou
1694
-			if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1695
-				lire_fichier(_CACHE_CHEMIN, $contenu);
1696
-				if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1697
-					$GLOBALS['path_files'] = [];
1698
-				}
1699
-			}
1700
-		}
1701
-	}
1674
+    // charger le path des plugins
1675
+    if (@is_readable(_CACHE_PLUGINS_PATH)) {
1676
+        include_once(_CACHE_PLUGINS_PATH);
1677
+    }
1678
+    $GLOBALS['path_files'] = [];
1679
+    // si le visiteur est admin,
1680
+    // on ne recharge pas le cache pour forcer sa mise a jour
1681
+    if (
1682
+        // la session n'est pas encore chargee a ce moment, on ne peut donc pas s'y fier
1683
+        //AND (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']!='0minirezo')
1684
+        // utiliser le cookie est un pis aller qui marche 'en general'
1685
+        // on blinde par un second test au moment de la lecture de la session
1686
+        // !isset($_COOKIE[$GLOBALS['cookie_prefix'].'_admin'])
1687
+        // et en ignorant ce cache en cas de recalcul explicite
1688
+        !_request('var_mode')
1689
+    ) {
1690
+        // on essaye de lire directement sans verrou pour aller plus vite
1691
+        if ($contenu = spip_file_get_contents(_CACHE_CHEMIN)) {
1692
+            // mais si semble corrompu on relit avec un verrou
1693
+            if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1694
+                lire_fichier(_CACHE_CHEMIN, $contenu);
1695
+                if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1696
+                    $GLOBALS['path_files'] = [];
1697
+                }
1698
+            }
1699
+        }
1700
+    }
1702 1701
 }
1703 1702
 
1704 1703
 function save_path_cache() {
1705
-	if (
1706
-		defined('_SAUVER_CHEMIN')
1707
-		and _SAUVER_CHEMIN
1708
-	) {
1709
-		ecrire_fichier(_CACHE_CHEMIN, serialize($GLOBALS['path_files']));
1710
-	}
1704
+    if (
1705
+        defined('_SAUVER_CHEMIN')
1706
+        and _SAUVER_CHEMIN
1707
+    ) {
1708
+        ecrire_fichier(_CACHE_CHEMIN, serialize($GLOBALS['path_files']));
1709
+    }
1711 1710
 }
1712 1711
 
1713 1712
 
@@ -1727,33 +1726,33 @@  discard block
 block discarded – undo
1727 1726
  * @return array
1728 1727
  */
1729 1728
 function find_all_in_path($dir, $pattern, $recurs = false) {
1730
-	$liste_fichiers = [];
1731
-	$maxfiles = 10000;
1732
-
1733
-	// cas borderline si dans mes_options on appelle redirige_par_entete qui utilise _T et charge un fichier de langue
1734
-	// on a pas encore inclus flock.php
1735
-	if (!function_exists('preg_files')) {
1736
-		include_once _ROOT_RESTREINT . 'inc/flock.php';
1737
-	}
1738
-
1739
-	// Parcourir le chemin
1740
-	foreach (creer_chemin() as $d) {
1741
-		$f = $d . $dir;
1742
-		if (@is_dir($f)) {
1743
-			$liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
1744
-			foreach ($liste as $chemin) {
1745
-				$nom = basename($chemin);
1746
-				// ne prendre que les fichiers pas deja trouves
1747
-				// car find_in_path prend le premier qu'il trouve,
1748
-				// les autres sont donc masques
1749
-				if (!isset($liste_fichiers[$nom])) {
1750
-					$liste_fichiers[$nom] = $chemin;
1751
-				}
1752
-			}
1753
-		}
1754
-	}
1755
-
1756
-	return $liste_fichiers;
1729
+    $liste_fichiers = [];
1730
+    $maxfiles = 10000;
1731
+
1732
+    // cas borderline si dans mes_options on appelle redirige_par_entete qui utilise _T et charge un fichier de langue
1733
+    // on a pas encore inclus flock.php
1734
+    if (!function_exists('preg_files')) {
1735
+        include_once _ROOT_RESTREINT . 'inc/flock.php';
1736
+    }
1737
+
1738
+    // Parcourir le chemin
1739
+    foreach (creer_chemin() as $d) {
1740
+        $f = $d . $dir;
1741
+        if (@is_dir($f)) {
1742
+            $liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
1743
+            foreach ($liste as $chemin) {
1744
+                $nom = basename($chemin);
1745
+                // ne prendre que les fichiers pas deja trouves
1746
+                // car find_in_path prend le premier qu'il trouve,
1747
+                // les autres sont donc masques
1748
+                if (!isset($liste_fichiers[$nom])) {
1749
+                    $liste_fichiers[$nom] = $chemin;
1750
+                }
1751
+            }
1752
+        }
1753
+    }
1754
+
1755
+    return $liste_fichiers;
1757 1756
 }
1758 1757
 
1759 1758
 /**
@@ -1765,17 +1764,17 @@  discard block
 block discarded – undo
1765 1764
  * @return bool
1766 1765
  */
1767 1766
 function autoriser_sans_cookie($nom, $strict = false) {
1768
-	static $autsanscookie = ['install', 'base_repair'];
1767
+    static $autsanscookie = ['install', 'base_repair'];
1769 1768
 
1770
-	if (in_array($nom, $autsanscookie)) {
1771
-		if (test_espace_prive()) {
1772
-			include_spip('base/connect_sql');
1773
-			if (!$strict or !spip_connect()) {
1774
-				return true;
1775
-			}
1776
-		}
1777
-	}
1778
-	return false;
1769
+    if (in_array($nom, $autsanscookie)) {
1770
+        if (test_espace_prive()) {
1771
+            include_spip('base/connect_sql');
1772
+            if (!$strict or !spip_connect()) {
1773
+                return true;
1774
+            }
1775
+        }
1776
+    }
1777
+    return false;
1779 1778
 }
1780 1779
 
1781 1780
 /**
@@ -1785,60 +1784,60 @@  discard block
 block discarded – undo
1785 1784
  * @return string
1786 1785
  */
1787 1786
 function charger_fonction_url(string $quoi, string $type = '') {
1788
-	if ($type === 'defaut') {
1789
-		$objet = objet_type($quoi);
1790
-		if (
1791
-			$f = charger_fonction('generer_' . $objet . '_url', 'urls', true)
1792
-			// deprecated
1793
-			or $f = charger_fonction('generer_url_' . $objet, 'urls', true)
1794
-		) {
1795
-			return $f;
1796
-		}
1797
-		return '';
1798
-	}
1799
-
1800
-	$url_type = $type;
1801
-	if (!$url_type) {
1802
-		$url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
1803
-	}
1804
-
1805
-	// inclure le module d'url
1806
-	include_spip('urls/' . $url_type);
1807
-
1808
-	switch ($quoi) {
1809
-		case 'page':
1810
-			if (
1811
-				 function_exists($f = "urls_{$url_type}_generer_url_page")
1812
-				or function_exists($f .= '_dist')
1813
-				// ou une fonction custom utilisateur independante du type d'url
1814
-				or function_exists($f = 'generer_url_page')
1815
-				or function_exists($f .= '_dist')
1816
-			) {
1817
-				return $f;
1818
-			}
1819
-			// pas de compat ancienne version ici, c'est une nouvelle feature
1820
-			return '';
1821
-		case 'objet':
1822
-		case 'decoder':
1823
-		default:
1824
-			$fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url');
1825
-			if (
1826
-				function_exists($f = "urls_{$url_type}_{$fquoi}")
1827
-				or function_exists($f .= '_dist')
1828
-			) {
1829
-				return $f;
1830
-			}
1831
-			// est-ce qu'on a une ancienne fonction urls_xxx_dist() ?
1832
-			// c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout
1833
-			if ($f = charger_fonction($url_type, 'urls', true)) {
1834
-				return $f;
1835
-			}
1836
-			// sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement
1837
-			if (!$type and $url_type !== 'page') {
1838
-				return charger_fonction_url($quoi, 'page');
1839
-			}
1840
-			return '';
1841
-	}
1787
+    if ($type === 'defaut') {
1788
+        $objet = objet_type($quoi);
1789
+        if (
1790
+            $f = charger_fonction('generer_' . $objet . '_url', 'urls', true)
1791
+            // deprecated
1792
+            or $f = charger_fonction('generer_url_' . $objet, 'urls', true)
1793
+        ) {
1794
+            return $f;
1795
+        }
1796
+        return '';
1797
+    }
1798
+
1799
+    $url_type = $type;
1800
+    if (!$url_type) {
1801
+        $url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
1802
+    }
1803
+
1804
+    // inclure le module d'url
1805
+    include_spip('urls/' . $url_type);
1806
+
1807
+    switch ($quoi) {
1808
+        case 'page':
1809
+            if (
1810
+                    function_exists($f = "urls_{$url_type}_generer_url_page")
1811
+                or function_exists($f .= '_dist')
1812
+                // ou une fonction custom utilisateur independante du type d'url
1813
+                or function_exists($f = 'generer_url_page')
1814
+                or function_exists($f .= '_dist')
1815
+            ) {
1816
+                return $f;
1817
+            }
1818
+            // pas de compat ancienne version ici, c'est une nouvelle feature
1819
+            return '';
1820
+        case 'objet':
1821
+        case 'decoder':
1822
+        default:
1823
+            $fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url');
1824
+            if (
1825
+                function_exists($f = "urls_{$url_type}_{$fquoi}")
1826
+                or function_exists($f .= '_dist')
1827
+            ) {
1828
+                return $f;
1829
+            }
1830
+            // est-ce qu'on a une ancienne fonction urls_xxx_dist() ?
1831
+            // c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout
1832
+            if ($f = charger_fonction($url_type, 'urls', true)) {
1833
+                return $f;
1834
+            }
1835
+            // sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement
1836
+            if (!$type and $url_type !== 'page') {
1837
+                return charger_fonction_url($quoi, 'page');
1838
+            }
1839
+            return '';
1840
+    }
1842 1841
 }
1843 1842
 
1844 1843
 
@@ -1864,48 +1863,48 @@  discard block
 block discarded – undo
1864 1863
  *   url codee ou fonction de decodage
1865 1864
  */
1866 1865
 function generer_objet_url($id, string $entite, string $args = '', string $ancre = '', ?bool $public = null, string $type = '', string $connect = ''): string {
1867
-	if ($public === null) {
1868
-		$public = !test_espace_prive();
1869
-	}
1870
-	$id = intval($id);
1871
-	$entite = objet_type($entite); // cas particulier d'appels sur objet/id_objet...
1872
-
1873
-	if (!$public) {
1874
-		if (!$entite) {
1875
-			return '';
1876
-		}
1877
-		if (!function_exists('generer_objet_url_ecrire')) {
1878
-			include_spip('inc/urls');
1879
-		}
1880
-		$res = generer_objet_url_ecrire($id, $entite, $args, $ancre, false, $connect);
1881
-	} else {
1882
-		$f = charger_fonction_url('objet', $type ?? '');
1883
-
1884
-		// @deprecated si $entite='', on veut la fonction de passage URL ==> id
1885
-		// @see charger_fonction_url
1886
-		if (!$entite) {
1887
-			return $f;
1888
-		}
1889
-
1890
-		// mais d'abord il faut tester le cas des urls sur une
1891
-		// base distante
1892
-		if (
1893
-			$connect
1894
-			and $g = charger_fonction('connect', 'urls', true)
1895
-		) {
1896
-			$f = $g;
1897
-		}
1898
-
1899
-		$res = $f(intval($id), $entite, $args ?: '', $ancre ?: '', $connect);
1900
-	}
1901
-	if ($res) {
1902
-		return $res;
1903
-	}
1904
-
1905
-	// On a ete gentil mais la ....
1906
-	spip_log("generer_objet_url: entite $entite ($f) inconnue $type $public $connect", _LOG_ERREUR);
1907
-
1908
-	return '';
1866
+    if ($public === null) {
1867
+        $public = !test_espace_prive();
1868
+    }
1869
+    $id = intval($id);
1870
+    $entite = objet_type($entite); // cas particulier d'appels sur objet/id_objet...
1871
+
1872
+    if (!$public) {
1873
+        if (!$entite) {
1874
+            return '';
1875
+        }
1876
+        if (!function_exists('generer_objet_url_ecrire')) {
1877
+            include_spip('inc/urls');
1878
+        }
1879
+        $res = generer_objet_url_ecrire($id, $entite, $args, $ancre, false, $connect);
1880
+    } else {
1881
+        $f = charger_fonction_url('objet', $type ?? '');
1882
+
1883
+        // @deprecated si $entite='', on veut la fonction de passage URL ==> id
1884
+        // @see charger_fonction_url
1885
+        if (!$entite) {
1886
+            return $f;
1887
+        }
1888
+
1889
+        // mais d'abord il faut tester le cas des urls sur une
1890
+        // base distante
1891
+        if (
1892
+            $connect
1893
+            and $g = charger_fonction('connect', 'urls', true)
1894
+        ) {
1895
+            $f = $g;
1896
+        }
1897
+
1898
+        $res = $f(intval($id), $entite, $args ?: '', $ancre ?: '', $connect);
1899
+    }
1900
+    if ($res) {
1901
+        return $res;
1902
+    }
1903
+
1904
+    // On a ete gentil mais la ....
1905
+    spip_log("generer_objet_url: entite $entite ($f) inconnue $type $public $connect", _LOG_ERREUR);
1906
+
1907
+    return '';
1909 1908
 }
1910 1909
 
1911 1910
 /**
@@ -1913,10 +1912,10 @@  discard block
 block discarded – undo
1913 1912
  * @see generer_objet_url
1914 1913
  */
1915 1914
 function generer_url_entite($id = 0, $entite = '', $args = '', $ancre = '', $public = null, $type = null) {
1916
-	if ($public and is_string($public)) {
1917
-		return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', true, $type ?? '', $public);
1918
-	}
1919
-	return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', $public, $type ?? '');
1915
+    if ($public and is_string($public)) {
1916
+        return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', true, $type ?? '', $public);
1917
+    }
1918
+    return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', $public, $type ?? '');
1920 1919
 }
1921 1920
 
1922 1921
 /**
@@ -1928,19 +1927,19 @@  discard block
 block discarded – undo
1928 1927
  * @return string
1929 1928
  */
1930 1929
 function generer_objet_url_ecrire_edit($id, string $entite, string $args = '', string $ancre = ''): string {
1931
-	$id = intval($id);
1932
-	$exec = objet_info($entite, 'url_edit');
1933
-	$url = generer_url_ecrire($exec, $args);
1934
-	if (intval($id)) {
1935
-		$url = parametre_url($url, id_table_objet($entite), $id);
1936
-	} else {
1937
-		$url = parametre_url($url, 'new', 'oui');
1938
-	}
1939
-	if ($ancre) {
1940
-		$url = ancre_url($url, $ancre);
1941
-	}
1930
+    $id = intval($id);
1931
+    $exec = objet_info($entite, 'url_edit');
1932
+    $url = generer_url_ecrire($exec, $args);
1933
+    if (intval($id)) {
1934
+        $url = parametre_url($url, id_table_objet($entite), $id);
1935
+    } else {
1936
+        $url = parametre_url($url, 'new', 'oui');
1937
+    }
1938
+    if ($ancre) {
1939
+        $url = ancre_url($url, $ancre);
1940
+    }
1942 1941
 
1943
-	return $url;
1942
+    return $url;
1944 1943
 }
1945 1944
 
1946 1945
 /**
@@ -1948,18 +1947,18 @@  discard block
 block discarded – undo
1948 1947
  * @see generer_objet_url_ecrire_edit
1949 1948
  */
1950 1949
 function generer_url_ecrire_entite_edit($id, $entite, $args = '', $ancre = '') {
1951
-	return generer_objet_url_ecrire_edit(intval($id), $entite, $args, $ancre);
1950
+    return generer_objet_url_ecrire_edit(intval($id), $entite, $args, $ancre);
1952 1951
 }
1953 1952
 
1954 1953
 
1955 1954
 function urls_connect_dist($i, &$entite, $args = '', $ancre = '', $public = null) {
1956
-	include_spip('base/connect_sql');
1957
-	$id_type = id_table_objet($entite, $public);
1955
+    include_spip('base/connect_sql');
1956
+    $id_type = id_table_objet($entite, $public);
1958 1957
 
1959
-	return _DIR_RACINE . get_spip_script('./')
1960
-	. '?' . _SPIP_PAGE . "=$entite&$id_type=$i&connect=$public"
1961
-	. (!$args ? '' : "&$args")
1962
-	. (!$ancre ? '' : "#$ancre");
1958
+    return _DIR_RACINE . get_spip_script('./')
1959
+    . '?' . _SPIP_PAGE . "=$entite&$id_type=$i&connect=$public"
1960
+    . (!$args ? '' : "&$args")
1961
+    . (!$ancre ? '' : "#$ancre");
1963 1962
 }
1964 1963
 
1965 1964
 
@@ -1970,18 +1969,18 @@  discard block
 block discarded – undo
1970 1969
  * @return string
1971 1970
  */
1972 1971
 function urlencode_1738($url) {
1973
-	if (preg_match(',[^\x00-\x7E],sS', $url)) {
1974
-		$uri = '';
1975
-		for ($i = 0; $i < strlen($url); $i++) {
1976
-			if (ord($a = $url[$i]) > 127) {
1977
-				$a = rawurlencode($a);
1978
-			}
1979
-			$uri .= $a;
1980
-		}
1981
-		$url = $uri;
1982
-	}
1972
+    if (preg_match(',[^\x00-\x7E],sS', $url)) {
1973
+        $uri = '';
1974
+        for ($i = 0; $i < strlen($url); $i++) {
1975
+            if (ord($a = $url[$i]) > 127) {
1976
+                $a = rawurlencode($a);
1977
+            }
1978
+            $uri .= $a;
1979
+        }
1980
+        $url = $uri;
1981
+    }
1983 1982
 
1984
-	return quote_amp($url);
1983
+    return quote_amp($url);
1985 1984
 }
1986 1985
 
1987 1986
 /**
@@ -1997,14 +1996,14 @@  discard block
 block discarded – undo
1997 1996
  * @return string
1998 1997
  */
1999 1998
 function generer_objet_url_absolue($id = 0, string $entite = '', string $args = '', string $ancre = '', ?bool $public = null, string $type = '', string $connect = ''): string {
2000
-	$id = intval($id);
2001
-	$h = generer_objet_url($id, $entite, $args, $ancre, $public, $type, $connect);
2002
-	if (!preg_match(',^\w+:,', $h)) {
2003
-		include_spip('inc/filtres_mini');
2004
-		$h = url_absolue($h);
2005
-	}
1999
+    $id = intval($id);
2000
+    $h = generer_objet_url($id, $entite, $args, $ancre, $public, $type, $connect);
2001
+    if (!preg_match(',^\w+:,', $h)) {
2002
+        include_spip('inc/filtres_mini');
2003
+        $h = url_absolue($h);
2004
+    }
2006 2005
 
2007
-	return $h;
2006
+    return $h;
2008 2007
 }
2009 2008
 
2010 2009
 /**
@@ -2012,7 +2011,7 @@  discard block
 block discarded – undo
2012 2011
  * @see  generer_objet_url_absolue
2013 2012
  */
2014 2013
 function generer_url_entite_absolue($id = 0, $entite = '', $args = '', $ancre = '', $connect = null) {
2015
-	return generer_objet_url_absolue(intval($id), $entite, $args, $ancre, true, '', $connect ?? '');
2014
+    return generer_objet_url_absolue(intval($id), $entite, $args, $ancre, true, '', $connect ?? '');
2016 2015
 }
2017 2016
 
2018 2017
 
@@ -2028,11 +2027,11 @@  discard block
 block discarded – undo
2028 2027
  *     true si la valeur est considérée active ; false sinon.
2029 2028
  **/
2030 2029
 function test_valeur_serveur($truc) {
2031
-	if (!$truc) {
2032
-		return false;
2033
-	}
2030
+    if (!$truc) {
2031
+        return false;
2032
+    }
2034 2033
 
2035
-	return (strtolower($truc) !== 'off');
2034
+    return (strtolower($truc) !== 'off');
2036 2035
 }
2037 2036
 
2038 2037
 //
@@ -2060,89 +2059,89 @@  discard block
 block discarded – undo
2060 2059
  */
2061 2060
 function url_de_base($profondeur = null) {
2062 2061
 
2063
-	static $url = [];
2064
-	if (is_array($profondeur)) {
2065
-		return $url = $profondeur;
2066
-	}
2067
-	if ($profondeur === false) {
2068
-		return $url;
2069
-	}
2070
-
2071
-	if (is_null($profondeur)) {
2072
-		$profondeur = $GLOBALS['profondeur_url'] ?? (_DIR_RESTREINT ? 0 : 1);
2073
-	}
2074
-
2075
-	if (isset($url[$profondeur])) {
2076
-		return $url[$profondeur];
2077
-	}
2078
-
2079
-	$http = 'http';
2080
-
2081
-	if (
2082
-		isset($_SERVER['SCRIPT_URI'])
2083
-		and substr($_SERVER['SCRIPT_URI'], 0, 5) == 'https'
2084
-	) {
2085
-		$http = 'https';
2086
-	} elseif (
2087
-		isset($_SERVER['HTTPS'])
2088
-		and test_valeur_serveur($_SERVER['HTTPS'])
2089
-	) {
2090
-		$http = 'https';
2091
-	}
2092
-
2093
-	// note : HTTP_HOST contient le :port si necessaire
2094
-	if ($host = $_SERVER['HTTP_HOST'] ?? null) {
2095
-		// Filtrer $host pour proteger d'attaques d'entete HTTP
2096
-		$host = (filter_var($host, FILTER_SANITIZE_URL) ?: null);
2097
-	}
2098
-
2099
-	// si on n'a pas trouvé d'hôte du tout, en dernier recours on utilise adresse_site comme fallback
2100
-	if (is_null($host) and isset($GLOBALS['meta']['adresse_site'])) {
2101
-		$host = $GLOBALS['meta']['adresse_site'];
2102
-		if ($scheme = parse_url($host, PHP_URL_SCHEME)) {
2103
-			$http = $scheme;
2104
-			$host = str_replace("{$scheme}://", '', $host);
2105
-		}
2106
-	}
2107
-	if (
2108
-		isset($_SERVER['SERVER_PORT'])
2109
-		and $port = $_SERVER['SERVER_PORT']
2110
-		and strpos($host, ':') == false
2111
-	) {
2112
-		if (!defined('_PORT_HTTP_STANDARD')) {
2113
-			define('_PORT_HTTP_STANDARD', '80');
2114
-		}
2115
-		if (!defined('_PORT_HTTPS_STANDARD')) {
2116
-			define('_PORT_HTTPS_STANDARD', '443');
2117
-		}
2118
-		if ($http == 'http' and !in_array($port, explode(',', _PORT_HTTP_STANDARD))) {
2119
-			$host .= ":$port";
2120
-		}
2121
-		if ($http == 'https' and !in_array($port, explode(',', _PORT_HTTPS_STANDARD))) {
2122
-			$host .= ":$port";
2123
-		}
2124
-	}
2125
-
2126
-	if (!$GLOBALS['REQUEST_URI']) {
2127
-		if (isset($_SERVER['REQUEST_URI'])) {
2128
-			$GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2129
-		} else {
2130
-			$GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2131
-			if (
2132
-				!empty($_SERVER['QUERY_STRING'])
2133
-				and !strpos($_SERVER['REQUEST_URI'], '?')
2134
-			) {
2135
-				$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2136
-			}
2137
-		}
2138
-	}
2139
-
2140
-	// Et nettoyer l'url
2141
-	$GLOBALS['REQUEST_URI'] = (filter_var($GLOBALS['REQUEST_URI'], FILTER_SANITIZE_URL) ?: '');
2142
-
2143
-	$url[$profondeur] = url_de_($http, $host, $GLOBALS['REQUEST_URI'], $profondeur);
2144
-
2145
-	return $url[$profondeur];
2062
+    static $url = [];
2063
+    if (is_array($profondeur)) {
2064
+        return $url = $profondeur;
2065
+    }
2066
+    if ($profondeur === false) {
2067
+        return $url;
2068
+    }
2069
+
2070
+    if (is_null($profondeur)) {
2071
+        $profondeur = $GLOBALS['profondeur_url'] ?? (_DIR_RESTREINT ? 0 : 1);
2072
+    }
2073
+
2074
+    if (isset($url[$profondeur])) {
2075
+        return $url[$profondeur];
2076
+    }
2077
+
2078
+    $http = 'http';
2079
+
2080
+    if (
2081
+        isset($_SERVER['SCRIPT_URI'])
2082
+        and substr($_SERVER['SCRIPT_URI'], 0, 5) == 'https'
2083
+    ) {
2084
+        $http = 'https';
2085
+    } elseif (
2086
+        isset($_SERVER['HTTPS'])
2087
+        and test_valeur_serveur($_SERVER['HTTPS'])
2088
+    ) {
2089
+        $http = 'https';
2090
+    }
2091
+
2092
+    // note : HTTP_HOST contient le :port si necessaire
2093
+    if ($host = $_SERVER['HTTP_HOST'] ?? null) {
2094
+        // Filtrer $host pour proteger d'attaques d'entete HTTP
2095
+        $host = (filter_var($host, FILTER_SANITIZE_URL) ?: null);
2096
+    }
2097
+
2098
+    // si on n'a pas trouvé d'hôte du tout, en dernier recours on utilise adresse_site comme fallback
2099
+    if (is_null($host) and isset($GLOBALS['meta']['adresse_site'])) {
2100
+        $host = $GLOBALS['meta']['adresse_site'];
2101
+        if ($scheme = parse_url($host, PHP_URL_SCHEME)) {
2102
+            $http = $scheme;
2103
+            $host = str_replace("{$scheme}://", '', $host);
2104
+        }
2105
+    }
2106
+    if (
2107
+        isset($_SERVER['SERVER_PORT'])
2108
+        and $port = $_SERVER['SERVER_PORT']
2109
+        and strpos($host, ':') == false
2110
+    ) {
2111
+        if (!defined('_PORT_HTTP_STANDARD')) {
2112
+            define('_PORT_HTTP_STANDARD', '80');
2113
+        }
2114
+        if (!defined('_PORT_HTTPS_STANDARD')) {
2115
+            define('_PORT_HTTPS_STANDARD', '443');
2116
+        }
2117
+        if ($http == 'http' and !in_array($port, explode(',', _PORT_HTTP_STANDARD))) {
2118
+            $host .= ":$port";
2119
+        }
2120
+        if ($http == 'https' and !in_array($port, explode(',', _PORT_HTTPS_STANDARD))) {
2121
+            $host .= ":$port";
2122
+        }
2123
+    }
2124
+
2125
+    if (!$GLOBALS['REQUEST_URI']) {
2126
+        if (isset($_SERVER['REQUEST_URI'])) {
2127
+            $GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2128
+        } else {
2129
+            $GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2130
+            if (
2131
+                !empty($_SERVER['QUERY_STRING'])
2132
+                and !strpos($_SERVER['REQUEST_URI'], '?')
2133
+            ) {
2134
+                $GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2135
+            }
2136
+        }
2137
+    }
2138
+
2139
+    // Et nettoyer l'url
2140
+    $GLOBALS['REQUEST_URI'] = (filter_var($GLOBALS['REQUEST_URI'], FILTER_SANITIZE_URL) ?: '');
2141
+
2142
+    $url[$profondeur] = url_de_($http, $host, $GLOBALS['REQUEST_URI'], $profondeur);
2143
+
2144
+    return $url[$profondeur];
2146 2145
 }
2147 2146
 
2148 2147
 /**
@@ -2155,26 +2154,26 @@  discard block
 block discarded – undo
2155 2154
  * @return string
2156 2155
  */
2157 2156
 function url_de_($http, $host, $request, $prof = 0) {
2158
-	$prof = max($prof, 0);
2157
+    $prof = max($prof, 0);
2159 2158
 
2160
-	$myself = ltrim($request, '/');
2161
-	# supprimer la chaine de GET
2162
-	[$myself] = explode('?', $myself);
2163
-	// vieux mode HTTP qui envoie après le nom de la methode l'URL compléte
2164
-	// protocole, "://", nom du serveur avant le path dans _SERVER["REQUEST_URI"]
2165
-	if (strpos($myself, '://') !== false) {
2166
-		$myself = explode('://', $myself);
2167
-		array_shift($myself);
2168
-		$myself = implode('://', $myself);
2169
-		$myself = explode('/', $myself);
2170
-		array_shift($myself);
2171
-		$myself = implode('/', $myself);
2172
-	}
2173
-	$url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)) . '/';
2159
+    $myself = ltrim($request, '/');
2160
+    # supprimer la chaine de GET
2161
+    [$myself] = explode('?', $myself);
2162
+    // vieux mode HTTP qui envoie après le nom de la methode l'URL compléte
2163
+    // protocole, "://", nom du serveur avant le path dans _SERVER["REQUEST_URI"]
2164
+    if (strpos($myself, '://') !== false) {
2165
+        $myself = explode('://', $myself);
2166
+        array_shift($myself);
2167
+        $myself = implode('://', $myself);
2168
+        $myself = explode('/', $myself);
2169
+        array_shift($myself);
2170
+        $myself = implode('/', $myself);
2171
+    }
2172
+    $url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)) . '/';
2174 2173
 
2175
-	$url = $http . '://' . rtrim($host, '/') . '/' . ltrim($url, '/');
2174
+    $url = $http . '://' . rtrim($host, '/') . '/' . ltrim($url, '/');
2176 2175
 
2177
-	return $url;
2176
+    return $url;
2178 2177
 }
2179 2178
 
2180 2179
 
@@ -2209,26 +2208,26 @@  discard block
 block discarded – undo
2209 2208
  * @return string URL
2210 2209
  **/
2211 2210
 function generer_url_ecrire(?string $script = '', $args = '', $no_entities = false, $rel = false) {
2212
-	$script ??= '';
2213
-	if (!$rel) {
2214
-		$rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT;
2215
-	} else {
2216
-		if (!is_string($rel)) {
2217
-			$rel = _DIR_RESTREINT ?: './' . _SPIP_ECRIRE_SCRIPT;
2218
-		}
2219
-	}
2220
-
2221
-	[$script, $ancre] = array_pad(explode('#', $script), 2, null);
2222
-	if ($script and ($script <> 'accueil' or $rel)) {
2223
-		$args = "?exec=$script" . (!$args ? '' : "&$args");
2224
-	} elseif ($args) {
2225
-		$args = "?$args";
2226
-	}
2227
-	if ($ancre) {
2228
-		$args .= "#$ancre";
2229
-	}
2230
-
2231
-	return $rel . ($no_entities ? $args : str_replace('&', '&amp;', $args));
2211
+    $script ??= '';
2212
+    if (!$rel) {
2213
+        $rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT;
2214
+    } else {
2215
+        if (!is_string($rel)) {
2216
+            $rel = _DIR_RESTREINT ?: './' . _SPIP_ECRIRE_SCRIPT;
2217
+        }
2218
+    }
2219
+
2220
+    [$script, $ancre] = array_pad(explode('#', $script), 2, null);
2221
+    if ($script and ($script <> 'accueil' or $rel)) {
2222
+        $args = "?exec=$script" . (!$args ? '' : "&$args");
2223
+    } elseif ($args) {
2224
+        $args = "?$args";
2225
+    }
2226
+    if ($ancre) {
2227
+        $args .= "#$ancre";
2228
+    }
2229
+
2230
+    return $rel . ($no_entities ? $args : str_replace('&', '&amp;', $args));
2232 2231
 }
2233 2232
 
2234 2233
 //
@@ -2250,15 +2249,15 @@  discard block
 block discarded – undo
2250 2249
  *     Nom du fichier (constante _SPIP_SCRIPT), sinon nom par défaut
2251 2250
  **/
2252 2251
 function get_spip_script($default = '') {
2253
-	if (!defined('_SPIP_SCRIPT')) {
2254
-		return 'spip.php';
2255
-	}
2256
-	# cas define('_SPIP_SCRIPT', '');
2257
-	if (_SPIP_SCRIPT) {
2258
-		return _SPIP_SCRIPT;
2259
-	} else {
2260
-		return $default;
2261
-	}
2252
+    if (!defined('_SPIP_SCRIPT')) {
2253
+        return 'spip.php';
2254
+    }
2255
+    # cas define('_SPIP_SCRIPT', '');
2256
+    if (_SPIP_SCRIPT) {
2257
+        return _SPIP_SCRIPT;
2258
+    } else {
2259
+        return $default;
2260
+    }
2262 2261
 }
2263 2262
 
2264 2263
 /**
@@ -2287,45 +2286,45 @@  discard block
 block discarded – undo
2287 2286
  * @return string URL
2288 2287
  **/
2289 2288
 function generer_url_public($script = '', $args = '', $no_entities = false, $rel = true, $action = '') {
2290
-	// si le script est une action (spip_pass, spip_inscription),
2291
-	// standardiser vers la nouvelle API
2292
-
2293
-	if (is_array($args)) {
2294
-		$args = http_build_query($args);
2295
-	}
2296
-
2297
-	$url = '';
2298
-	if ($f = charger_fonction_url('page')) {
2299
-		$url = $f($script, $args);
2300
-		if ($url and !$rel) {
2301
-			include_spip('inc/filtres_mini');
2302
-			$url = url_absolue($url);
2303
-		}
2304
-	}
2305
-	if (!$url) {
2306
-		if (!$action) {
2307
-			$action = get_spip_script();
2308
-		}
2309
-		if ($script) {
2310
-			$action = parametre_url($action, _SPIP_PAGE, $script, '&');
2311
-		}
2312
-		if ($args) {
2313
-			$action .= (strpos($action, '?') !== false ? '&' : '?') . $args;
2314
-		}
2315
-		// ne pas generer une url avec /./?page= en cas d'url absolue et de _SPIP_SCRIPT vide
2316
-		$url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/') . preg_replace(',^/[.]/,', '/', "/$action"));
2317
-	}
2318
-
2319
-	if (!$no_entities) {
2320
-		$url = quote_amp($url);
2321
-	}
2322
-
2323
-	return $url;
2289
+    // si le script est une action (spip_pass, spip_inscription),
2290
+    // standardiser vers la nouvelle API
2291
+
2292
+    if (is_array($args)) {
2293
+        $args = http_build_query($args);
2294
+    }
2295
+
2296
+    $url = '';
2297
+    if ($f = charger_fonction_url('page')) {
2298
+        $url = $f($script, $args);
2299
+        if ($url and !$rel) {
2300
+            include_spip('inc/filtres_mini');
2301
+            $url = url_absolue($url);
2302
+        }
2303
+    }
2304
+    if (!$url) {
2305
+        if (!$action) {
2306
+            $action = get_spip_script();
2307
+        }
2308
+        if ($script) {
2309
+            $action = parametre_url($action, _SPIP_PAGE, $script, '&');
2310
+        }
2311
+        if ($args) {
2312
+            $action .= (strpos($action, '?') !== false ? '&' : '?') . $args;
2313
+        }
2314
+        // ne pas generer une url avec /./?page= en cas d'url absolue et de _SPIP_SCRIPT vide
2315
+        $url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/') . preg_replace(',^/[.]/,', '/', "/$action"));
2316
+    }
2317
+
2318
+    if (!$no_entities) {
2319
+        $url = quote_amp($url);
2320
+    }
2321
+
2322
+    return $url;
2324 2323
 }
2325 2324
 
2326 2325
 function generer_url_prive($script, $args = '', $no_entities = false) {
2327 2326
 
2328
-	return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS . 'prive.php');
2327
+    return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS . 'prive.php');
2329 2328
 }
2330 2329
 
2331 2330
 // Pour les formulaires en methode POST,
@@ -2350,19 +2349,19 @@  discard block
 block discarded – undo
2350 2349
  **/
2351 2350
 function generer_form_ecrire($script, $corps, $atts = '', $submit = '') {
2352 2351
 
2353
-	$script1 = explode('&', $script);
2354
-	$script1 = reset($script1);
2352
+    $script1 = explode('&', $script);
2353
+    $script1 = reset($script1);
2355 2354
 
2356
-	return "<form action='"
2357
-	. ($script ? generer_url_ecrire($script) : '')
2358
-	. "' "
2359
-	. ($atts ?: " method='post'")
2360
-	. "><div>\n"
2361
-	. "<input type='hidden' name='exec' value='$script1' />"
2362
-	. $corps
2363
-	. (!$submit ? '' :
2364
-		("<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><input class='fondo submit btn' type='submit' value=\"" . entites_html($submit) . '" /></div>'))
2365
-	. "</div></form>\n";
2355
+    return "<form action='"
2356
+    . ($script ? generer_url_ecrire($script) : '')
2357
+    . "' "
2358
+    . ($atts ?: " method='post'")
2359
+    . "><div>\n"
2360
+    . "<input type='hidden' name='exec' value='$script1' />"
2361
+    . $corps
2362
+    . (!$submit ? '' :
2363
+        ("<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><input class='fondo submit btn' type='submit' value=\"" . entites_html($submit) . '" /></div>'))
2364
+    . "</div></form>\n";
2366 2365
 }
2367 2366
 
2368 2367
 /**
@@ -2379,22 +2378,22 @@  discard block
 block discarded – undo
2379 2378
  * @return string
2380 2379
  */
2381 2380
 function generer_form_action($script, $corps, $atts = '', $public = false) {
2382
-	// si l'on est dans l'espace prive, on garde dans l'url
2383
-	// l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2384
-	// ou non de proceder a l'authentification (cas typique de l'install par exemple)
2385
-	$h = (_DIR_RACINE and !$public)
2386
-		? generer_url_ecrire(_request('exec'))
2387
-		: generer_url_public();
2381
+    // si l'on est dans l'espace prive, on garde dans l'url
2382
+    // l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2383
+    // ou non de proceder a l'authentification (cas typique de l'install par exemple)
2384
+    $h = (_DIR_RACINE and !$public)
2385
+        ? generer_url_ecrire(_request('exec'))
2386
+        : generer_url_public();
2388 2387
 
2389
-	return "\n<form action='" .
2390
-	$h .
2391
-	"'" .
2392
-	$atts .
2393
-	">\n" .
2394
-	'<div>' .
2395
-	"\n<input type='hidden' name='action' value='$script' />" .
2396
-	$corps .
2397
-	'</div></form>';
2388
+    return "\n<form action='" .
2389
+    $h .
2390
+    "'" .
2391
+    $atts .
2392
+    ">\n" .
2393
+    '<div>' .
2394
+    "\n<input type='hidden' name='action' value='$script' />" .
2395
+    $corps .
2396
+    '</div></form>';
2398 2397
 }
2399 2398
 
2400 2399
 /**
@@ -2413,22 +2412,22 @@  discard block
 block discarded – undo
2413 2412
  *     URL
2414 2413
  */
2415 2414
 function generer_url_action($script, $args = '', $no_entities = false, $public = false) {
2416
-	// si l'on est dans l'espace prive, on garde dans l'url
2417
-	// l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2418
-	// ou non de proceder a l'authentification (cas typique de l'install par exemple)
2419
-	$url = (_DIR_RACINE and !$public)
2420
-		? generer_url_ecrire(_request('exec'))
2421
-		: generer_url_public('', '', false, false);
2422
-	$url = parametre_url($url, 'action', $script);
2423
-	if ($args) {
2424
-		$url .= quote_amp('&' . $args);
2425
-	}
2415
+    // si l'on est dans l'espace prive, on garde dans l'url
2416
+    // l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2417
+    // ou non de proceder a l'authentification (cas typique de l'install par exemple)
2418
+    $url = (_DIR_RACINE and !$public)
2419
+        ? generer_url_ecrire(_request('exec'))
2420
+        : generer_url_public('', '', false, false);
2421
+    $url = parametre_url($url, 'action', $script);
2422
+    if ($args) {
2423
+        $url .= quote_amp('&' . $args);
2424
+    }
2426 2425
 
2427
-	if ($no_entities) {
2428
-		$url = str_replace('&amp;', '&', $url);
2429
-	}
2426
+    if ($no_entities) {
2427
+        $url = str_replace('&amp;', '&', $url);
2428
+    }
2430 2429
 
2431
-	return $url;
2430
+    return $url;
2432 2431
 }
2433 2432
 
2434 2433
 
@@ -2447,23 +2446,23 @@  discard block
 block discarded – undo
2447 2446
  *     URL
2448 2447
  */
2449 2448
 function generer_url_api(string $script, string $path, string $args, bool $no_entities = false, ?bool $public = null) {
2450
-	if (is_null($public)) {
2451
-		$public = (_DIR_RACINE ? false : '');
2452
-	}
2453
-	if (substr($script, -4) !== '.api') {
2454
-		$script .= '.api';
2455
-	}
2456
-	$url =
2457
-		(($public ? _DIR_RACINE : _DIR_RESTREINT) ?: './')
2458
-	. $script . '/'
2459
-	. ($path ? trim($path, '/') : '')
2460
-	. ($args ? '?' . quote_amp($args) : '');
2449
+    if (is_null($public)) {
2450
+        $public = (_DIR_RACINE ? false : '');
2451
+    }
2452
+    if (substr($script, -4) !== '.api') {
2453
+        $script .= '.api';
2454
+    }
2455
+    $url =
2456
+        (($public ? _DIR_RACINE : _DIR_RESTREINT) ?: './')
2457
+    . $script . '/'
2458
+    . ($path ? trim($path, '/') : '')
2459
+    . ($args ? '?' . quote_amp($args) : '');
2461 2460
 
2462
-	if ($no_entities) {
2463
-		$url = str_replace('&amp;', '&', $url);
2464
-	}
2461
+    if ($no_entities) {
2462
+        $url = str_replace('&amp;', '&', $url);
2463
+    }
2465 2464
 
2466
-	return $url;
2465
+    return $url;
2467 2466
 }
2468 2467
 
2469 2468
 
@@ -2476,8 +2475,8 @@  discard block
 block discarded – undo
2476 2475
  * @param string $ta Répertoire temporaire accessible
2477 2476
  */
2478 2477
 function spip_initialisation($pi = null, $pa = null, $ti = null, $ta = null) {
2479
-	spip_initialisation_core($pi, $pa, $ti, $ta);
2480
-	spip_initialisation_suite();
2478
+    spip_initialisation_core($pi, $pa, $ti, $ta);
2479
+    spip_initialisation_suite();
2481 2480
 }
2482 2481
 
2483 2482
 /**
@@ -2497,315 +2496,315 @@  discard block
 block discarded – undo
2497 2496
  * @param string $ta Répertoire temporaire accessible
2498 2497
  */
2499 2498
 function spip_initialisation_core($pi = null, $pa = null, $ti = null, $ta = null) {
2500
-	static $too_late = 0;
2501
-	if ($too_late++) {
2502
-		return;
2503
-	}
2504
-
2505
-	// Declaration des repertoires
2506
-
2507
-	// le nom du repertoire plugins/ activables/desactivables
2508
-	if (!defined('_DIR_PLUGINS')) {
2509
-		define('_DIR_PLUGINS', _DIR_RACINE . 'plugins/');
2510
-	}
2511
-
2512
-	// le nom du repertoire des extensions/ permanentes du core, toujours actives
2513
-	if (!defined('_DIR_PLUGINS_DIST')) {
2514
-		define('_DIR_PLUGINS_DIST', _DIR_RACINE . 'plugins-dist/');
2515
-	}
2516
-
2517
-	// le nom du repertoire des librairies
2518
-	if (!defined('_DIR_LIB')) {
2519
-		define('_DIR_LIB', _DIR_RACINE . 'lib/');
2520
-	}
2521
-
2522
-	// répertoire des libs via Composer
2523
-	if (!defined('_DIR_VENDOR')) {
2524
-		define('_DIR_VENDOR', _DIR_RACINE . 'vendor/');
2525
-	}
2526
-
2527
-	if (!defined('_DIR_IMG')) {
2528
-		define('_DIR_IMG', $pa);
2529
-	}
2530
-	if (!defined('_DIR_LOGOS')) {
2531
-		define('_DIR_LOGOS', $pa);
2532
-	}
2533
-	if (!defined('_DIR_IMG_ICONES')) {
2534
-		define('_DIR_IMG_ICONES', _DIR_LOGOS . 'icones/');
2535
-	}
2536
-
2537
-	if (!defined('_DIR_DUMP')) {
2538
-		define('_DIR_DUMP', $ti . 'dump/');
2539
-	}
2540
-	if (!defined('_DIR_SESSIONS')) {
2541
-		define('_DIR_SESSIONS', $ti . 'sessions/');
2542
-	}
2543
-	if (!defined('_DIR_TRANSFERT')) {
2544
-		define('_DIR_TRANSFERT', $ti . 'upload/');
2545
-	}
2546
-	if (!defined('_DIR_CACHE')) {
2547
-		define('_DIR_CACHE', $ti . 'cache/');
2548
-	}
2549
-	if (!defined('_DIR_CACHE_XML')) {
2550
-		define('_DIR_CACHE_XML', _DIR_CACHE . 'xml/');
2551
-	}
2552
-	if (!defined('_DIR_SKELS')) {
2553
-		define('_DIR_SKELS', _DIR_CACHE . 'skel/');
2554
-	}
2555
-	if (!defined('_DIR_AIDE')) {
2556
-		define('_DIR_AIDE', _DIR_CACHE . 'aide/');
2557
-	}
2558
-	if (!defined('_DIR_TMP')) {
2559
-		define('_DIR_TMP', $ti);
2560
-	}
2561
-
2562
-	if (!defined('_DIR_VAR')) {
2563
-		define('_DIR_VAR', $ta);
2564
-	}
2565
-
2566
-	if (!defined('_DIR_ETC')) {
2567
-		define('_DIR_ETC', $pi);
2568
-	}
2569
-	if (!defined('_DIR_CONNECT')) {
2570
-		define('_DIR_CONNECT', $pi);
2571
-	}
2572
-	if (!defined('_DIR_CHMOD')) {
2573
-		define('_DIR_CHMOD', $pi);
2574
-	}
2575
-
2576
-	if (!isset($GLOBALS['test_dirs'])) {
2577
-		// Pas $pi car il est bon de le mettre hors ecriture apres intstall
2578
-		// il sera rajoute automatiquement si besoin a l'etape 2 de l'install
2579
-	$GLOBALS['test_dirs'] = [$pa, $ti, $ta];
2580
-	}
2581
-
2582
-	// Declaration des fichiers
2583
-
2584
-	if (!defined('_CACHE_PLUGINS_PATH')) {
2585
-		define('_CACHE_PLUGINS_PATH', _DIR_CACHE . 'charger_plugins_chemins.php');
2586
-	}
2587
-	if (!defined('_CACHE_PLUGINS_OPT')) {
2588
-		define('_CACHE_PLUGINS_OPT', _DIR_CACHE . 'charger_plugins_options.php');
2589
-	}
2590
-	if (!defined('_CACHE_PLUGINS_FCT')) {
2591
-		define('_CACHE_PLUGINS_FCT', _DIR_CACHE . 'charger_plugins_fonctions.php');
2592
-	}
2593
-	if (!defined('_CACHE_PIPELINES')) {
2594
-		define('_CACHE_PIPELINES', _DIR_CACHE . 'charger_pipelines.php');
2595
-	}
2596
-	if (!defined('_CACHE_CHEMIN')) {
2597
-		define('_CACHE_CHEMIN', _DIR_CACHE . 'chemin.txt');
2598
-	}
2599
-
2600
-	# attention .php obligatoire pour ecrire_fichier_securise
2601
-	if (!defined('_FILE_META')) {
2602
-		define('_FILE_META', $ti . 'meta_cache.php');
2603
-	}
2604
-	if (!defined('_DIR_LOG')) {
2605
-		define('_DIR_LOG', _DIR_TMP . 'log/');
2606
-	}
2607
-	if (!defined('_FILE_LOG')) {
2608
-		define('_FILE_LOG', 'spip');
2609
-	}
2610
-	if (!defined('_FILE_LOG_SUFFIX')) {
2611
-		define('_FILE_LOG_SUFFIX', '.log');
2612
-	}
2613
-
2614
-	// Le fichier de connexion a la base de donnees
2615
-	// tient compte des anciennes versions (inc_connect...)
2616
-	if (!defined('_FILE_CONNECT_INS')) {
2617
-		define('_FILE_CONNECT_INS', 'connect');
2618
-	}
2619
-	if (!defined('_FILE_CONNECT')) {
2620
-		define(
2621
-			'_FILE_CONNECT',
2622
-			(@is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f
2623
-			: (@is_readable($f = _DIR_RESTREINT . 'inc_connect.php') ? $f
2624
-			: false))
2625
-		);
2626
-	}
2627
-
2628
-	// Le fichier de reglages des droits
2629
-	if (!defined('_FILE_CHMOD_INS')) {
2630
-		define('_FILE_CHMOD_INS', 'chmod');
2631
-	}
2632
-	if (!defined('_FILE_CHMOD')) {
2633
-		define(
2634
-			'_FILE_CHMOD',
2635
-			(@is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f
2636
-			: false)
2637
-		);
2638
-	}
2639
-
2640
-	if (!defined('_FILE_LDAP')) {
2641
-		define('_FILE_LDAP', 'ldap.php');
2642
-	}
2643
-
2644
-	if (!defined('_FILE_TMP_SUFFIX')) {
2645
-		define('_FILE_TMP_SUFFIX', '.tmp.php');
2646
-	}
2647
-	if (!defined('_FILE_CONNECT_TMP')) {
2648
-		define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
2649
-	}
2650
-	if (!defined('_FILE_CHMOD_TMP')) {
2651
-		define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
2652
-	}
2653
-
2654
-	// Definition des droits d'acces en ecriture
2655
-	if (!defined('_SPIP_CHMOD') and _FILE_CHMOD) {
2656
-		include_once _FILE_CHMOD;
2657
-	}
2658
-
2659
-	// Se mefier des fichiers mal remplis!
2660
-	if (!defined('_SPIP_CHMOD')) {
2661
-		define('_SPIP_CHMOD', 0777);
2662
-	}
2663
-
2664
-	if (!defined('_DEFAULT_CHARSET')) {
2665
-		/** Le charset par défaut lors de l'installation */
2666
-		define('_DEFAULT_CHARSET', 'utf-8');
2667
-	}
2668
-	if (!defined('_ROOT_PLUGINS')) {
2669
-		define('_ROOT_PLUGINS', _ROOT_RACINE . 'plugins/');
2670
-	}
2671
-	if (!defined('_ROOT_PLUGINS_DIST')) {
2672
-		define('_ROOT_PLUGINS_DIST', _ROOT_RACINE . 'plugins-dist/');
2673
-	}
2674
-	if (!defined('_ROOT_PLUGINS_SUPPL') && defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
2675
-		define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2676
-	}
2677
-
2678
-	// La taille des Log
2679
-	if (!defined('_MAX_LOG')) {
2680
-		define('_MAX_LOG', 100);
2681
-	}
2682
-
2683
-	// Sommes-nous dans l'empire du Mal ?
2684
-	// (ou sous le signe du Pingouin, ascendant GNU ?)
2685
-	if (isset($_SERVER['SERVER_SOFTWARE']) and str_contains($_SERVER['SERVER_SOFTWARE'], '(Win')) {
2686
-		if (!defined('_OS_SERVEUR')) {
2687
-			define('_OS_SERVEUR', 'windows');
2688
-		}
2689
-		if (!defined('_SPIP_LOCK_MODE')) {
2690
-			define('_SPIP_LOCK_MODE', 1);
2691
-		} // utiliser le flock php
2692
-	} else {
2693
-		if (!defined('_OS_SERVEUR')) {
2694
-			define('_OS_SERVEUR', '');
2695
-		}
2696
-		if (!defined('_SPIP_LOCK_MODE')) {
2697
-			define('_SPIP_LOCK_MODE', 1);
2698
-		} // utiliser le flock php
2699
-		#if (!defined('_SPIP_LOCK_MODE')) define('_SPIP_LOCK_MODE',2); // utiliser le nfslock de spip mais link() est tres souvent interdite
2700
-	}
2701
-
2702
-	// Langue par defaut
2703
-	if (!defined('_LANGUE_PAR_DEFAUT')) {
2704
-		define('_LANGUE_PAR_DEFAUT', 'fr');
2705
-	}
2706
-
2707
-	//
2708
-	// Module de lecture/ecriture/suppression de fichiers utilisant flock()
2709
-	// (non surchargeable en l'etat ; attention si on utilise include_spip()
2710
-	// pour le rendre surchargeable, on va provoquer un reecriture
2711
-	// systematique du noyau ou une baisse de perfs => a etudier)
2712
-	include_once _ROOT_RESTREINT . 'inc/flock.php';
2713
-
2714
-	// charger tout de suite le path et son cache
2715
-	load_path_cache();
2716
-
2717
-	// *********** traiter les variables ************
2718
-
2719
-	//
2720
-	// Securite
2721
-	//
2722
-
2723
-	// Ne pas se faire manger par un bug php qui accepte ?GLOBALS[truc]=toto
2724
-	if (isset($_REQUEST['GLOBALS'])) {
2725
-		die();
2726
-	}
2727
-	// nettoyer les magic quotes \' et les caracteres nuls %00
2728
-	spip_desinfecte($_GET);
2729
-	spip_desinfecte($_POST);
2730
-	spip_desinfecte($_COOKIE);
2731
-	spip_desinfecte($_REQUEST);
2732
-
2733
-	// appliquer le cookie_prefix
2734
-	if ($GLOBALS['cookie_prefix'] != 'spip') {
2735
-		include_spip('inc/cookie');
2736
-		recuperer_cookies_spip($GLOBALS['cookie_prefix']);
2737
-	}
2738
-
2739
-	// Compatibilite avec serveurs ne fournissant pas $REQUEST_URI
2740
-	if (isset($_SERVER['REQUEST_URI'])) {
2741
-		$GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2742
-	} else {
2743
-		$GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2744
-		if (
2745
-			!empty($_SERVER['QUERY_STRING'])
2746
-			and !strpos($_SERVER['REQUEST_URI'], '?')
2747
-		) {
2748
-			$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2749
-		}
2750
-	}
2751
-
2752
-	// Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
2753
-	if (!defined('_RENOUVELLE_ALEA')) {
2754
-		define('_RENOUVELLE_ALEA', 12 * 3600);
2755
-	}
2756
-	if (!defined('_DUREE_COOKIE_ADMIN')) {
2757
-		define('_DUREE_COOKIE_ADMIN', 14 * 24 * 3600);
2758
-	}
2759
-
2760
-	// charger les meta si possible et renouveller l'alea au besoin
2761
-	// charge aussi effacer_meta et ecrire_meta
2762
-	$inc_meta = charger_fonction('meta', 'inc');
2763
-	$inc_meta();
2764
-
2765
-	// nombre de repertoires depuis la racine
2766
-	// on compare a l'adresse de spip.php : $_SERVER["SCRIPT_NAME"]
2767
-	// ou a defaut celle donnee en meta ; (mais si celle-ci est fausse
2768
-	// le calcul est faux)
2769
-	if (!_DIR_RESTREINT) {
2770
-		$GLOBALS['profondeur_url'] = 1;
2771
-	} else {
2772
-		$uri = isset($_SERVER['REQUEST_URI']) ? explode('?', $_SERVER['REQUEST_URI']) : '';
2773
-		$uri_ref = $_SERVER['SCRIPT_NAME'];
2774
-		if (
2775
-			!$uri_ref
2776
-			// si on est appele avec un autre ti, on est sans doute en mutu
2777
-			// si jamais c'est de la mutu avec sous rep, on est perdu si on se fie
2778
-			// a spip.php qui est a la racine du spip, et vue qu'on sait pas se reperer
2779
-			// s'en remettre a l'adresse du site. alea jacta est.
2780
-			or $ti !== _NOM_TEMPORAIRES_INACCESSIBLES
2781
-		) {
2782
-			if (isset($GLOBALS['meta']['adresse_site'])) {
2783
-				$uri_ref = parse_url($GLOBALS['meta']['adresse_site']);
2784
-				$uri_ref = ($uri_ref['path'] ?? '') . '/';
2785
-			} else {
2786
-				$uri_ref = '';
2787
-			}
2788
-		}
2789
-		if (!$uri or !$uri_ref) {
2790
-			$GLOBALS['profondeur_url'] = 0;
2791
-		} else {
2792
-			$GLOBALS['profondeur_url'] = max(
2793
-				0,
2794
-				substr_count($uri[0], '/')
2795
-				- substr_count($uri_ref, '/')
2796
-			);
2797
-		}
2798
-	}
2799
-	// s'il y a un cookie ou PHP_AUTH, initialiser visiteur_session
2800
-	if (_FILE_CONNECT) {
2801
-		if (
2802
-			verifier_visiteur() == '0minirezo'
2803
-			// si c'est un admin sans cookie admin, il faut ignorer le cache chemin !
2804
-			and !isset($_COOKIE['spip_admin'])
2805
-		) {
2806
-			clear_path_cache();
2807
-		}
2808
-	}
2499
+    static $too_late = 0;
2500
+    if ($too_late++) {
2501
+        return;
2502
+    }
2503
+
2504
+    // Declaration des repertoires
2505
+
2506
+    // le nom du repertoire plugins/ activables/desactivables
2507
+    if (!defined('_DIR_PLUGINS')) {
2508
+        define('_DIR_PLUGINS', _DIR_RACINE . 'plugins/');
2509
+    }
2510
+
2511
+    // le nom du repertoire des extensions/ permanentes du core, toujours actives
2512
+    if (!defined('_DIR_PLUGINS_DIST')) {
2513
+        define('_DIR_PLUGINS_DIST', _DIR_RACINE . 'plugins-dist/');
2514
+    }
2515
+
2516
+    // le nom du repertoire des librairies
2517
+    if (!defined('_DIR_LIB')) {
2518
+        define('_DIR_LIB', _DIR_RACINE . 'lib/');
2519
+    }
2520
+
2521
+    // répertoire des libs via Composer
2522
+    if (!defined('_DIR_VENDOR')) {
2523
+        define('_DIR_VENDOR', _DIR_RACINE . 'vendor/');
2524
+    }
2525
+
2526
+    if (!defined('_DIR_IMG')) {
2527
+        define('_DIR_IMG', $pa);
2528
+    }
2529
+    if (!defined('_DIR_LOGOS')) {
2530
+        define('_DIR_LOGOS', $pa);
2531
+    }
2532
+    if (!defined('_DIR_IMG_ICONES')) {
2533
+        define('_DIR_IMG_ICONES', _DIR_LOGOS . 'icones/');
2534
+    }
2535
+
2536
+    if (!defined('_DIR_DUMP')) {
2537
+        define('_DIR_DUMP', $ti . 'dump/');
2538
+    }
2539
+    if (!defined('_DIR_SESSIONS')) {
2540
+        define('_DIR_SESSIONS', $ti . 'sessions/');
2541
+    }
2542
+    if (!defined('_DIR_TRANSFERT')) {
2543
+        define('_DIR_TRANSFERT', $ti . 'upload/');
2544
+    }
2545
+    if (!defined('_DIR_CACHE')) {
2546
+        define('_DIR_CACHE', $ti . 'cache/');
2547
+    }
2548
+    if (!defined('_DIR_CACHE_XML')) {
2549
+        define('_DIR_CACHE_XML', _DIR_CACHE . 'xml/');
2550
+    }
2551
+    if (!defined('_DIR_SKELS')) {
2552
+        define('_DIR_SKELS', _DIR_CACHE . 'skel/');
2553
+    }
2554
+    if (!defined('_DIR_AIDE')) {
2555
+        define('_DIR_AIDE', _DIR_CACHE . 'aide/');
2556
+    }
2557
+    if (!defined('_DIR_TMP')) {
2558
+        define('_DIR_TMP', $ti);
2559
+    }
2560
+
2561
+    if (!defined('_DIR_VAR')) {
2562
+        define('_DIR_VAR', $ta);
2563
+    }
2564
+
2565
+    if (!defined('_DIR_ETC')) {
2566
+        define('_DIR_ETC', $pi);
2567
+    }
2568
+    if (!defined('_DIR_CONNECT')) {
2569
+        define('_DIR_CONNECT', $pi);
2570
+    }
2571
+    if (!defined('_DIR_CHMOD')) {
2572
+        define('_DIR_CHMOD', $pi);
2573
+    }
2574
+
2575
+    if (!isset($GLOBALS['test_dirs'])) {
2576
+        // Pas $pi car il est bon de le mettre hors ecriture apres intstall
2577
+        // il sera rajoute automatiquement si besoin a l'etape 2 de l'install
2578
+    $GLOBALS['test_dirs'] = [$pa, $ti, $ta];
2579
+    }
2580
+
2581
+    // Declaration des fichiers
2582
+
2583
+    if (!defined('_CACHE_PLUGINS_PATH')) {
2584
+        define('_CACHE_PLUGINS_PATH', _DIR_CACHE . 'charger_plugins_chemins.php');
2585
+    }
2586
+    if (!defined('_CACHE_PLUGINS_OPT')) {
2587
+        define('_CACHE_PLUGINS_OPT', _DIR_CACHE . 'charger_plugins_options.php');
2588
+    }
2589
+    if (!defined('_CACHE_PLUGINS_FCT')) {
2590
+        define('_CACHE_PLUGINS_FCT', _DIR_CACHE . 'charger_plugins_fonctions.php');
2591
+    }
2592
+    if (!defined('_CACHE_PIPELINES')) {
2593
+        define('_CACHE_PIPELINES', _DIR_CACHE . 'charger_pipelines.php');
2594
+    }
2595
+    if (!defined('_CACHE_CHEMIN')) {
2596
+        define('_CACHE_CHEMIN', _DIR_CACHE . 'chemin.txt');
2597
+    }
2598
+
2599
+    # attention .php obligatoire pour ecrire_fichier_securise
2600
+    if (!defined('_FILE_META')) {
2601
+        define('_FILE_META', $ti . 'meta_cache.php');
2602
+    }
2603
+    if (!defined('_DIR_LOG')) {
2604
+        define('_DIR_LOG', _DIR_TMP . 'log/');
2605
+    }
2606
+    if (!defined('_FILE_LOG')) {
2607
+        define('_FILE_LOG', 'spip');
2608
+    }
2609
+    if (!defined('_FILE_LOG_SUFFIX')) {
2610
+        define('_FILE_LOG_SUFFIX', '.log');
2611
+    }
2612
+
2613
+    // Le fichier de connexion a la base de donnees
2614
+    // tient compte des anciennes versions (inc_connect...)
2615
+    if (!defined('_FILE_CONNECT_INS')) {
2616
+        define('_FILE_CONNECT_INS', 'connect');
2617
+    }
2618
+    if (!defined('_FILE_CONNECT')) {
2619
+        define(
2620
+            '_FILE_CONNECT',
2621
+            (@is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f
2622
+            : (@is_readable($f = _DIR_RESTREINT . 'inc_connect.php') ? $f
2623
+            : false))
2624
+        );
2625
+    }
2626
+
2627
+    // Le fichier de reglages des droits
2628
+    if (!defined('_FILE_CHMOD_INS')) {
2629
+        define('_FILE_CHMOD_INS', 'chmod');
2630
+    }
2631
+    if (!defined('_FILE_CHMOD')) {
2632
+        define(
2633
+            '_FILE_CHMOD',
2634
+            (@is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f
2635
+            : false)
2636
+        );
2637
+    }
2638
+
2639
+    if (!defined('_FILE_LDAP')) {
2640
+        define('_FILE_LDAP', 'ldap.php');
2641
+    }
2642
+
2643
+    if (!defined('_FILE_TMP_SUFFIX')) {
2644
+        define('_FILE_TMP_SUFFIX', '.tmp.php');
2645
+    }
2646
+    if (!defined('_FILE_CONNECT_TMP')) {
2647
+        define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
2648
+    }
2649
+    if (!defined('_FILE_CHMOD_TMP')) {
2650
+        define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
2651
+    }
2652
+
2653
+    // Definition des droits d'acces en ecriture
2654
+    if (!defined('_SPIP_CHMOD') and _FILE_CHMOD) {
2655
+        include_once _FILE_CHMOD;
2656
+    }
2657
+
2658
+    // Se mefier des fichiers mal remplis!
2659
+    if (!defined('_SPIP_CHMOD')) {
2660
+        define('_SPIP_CHMOD', 0777);
2661
+    }
2662
+
2663
+    if (!defined('_DEFAULT_CHARSET')) {
2664
+        /** Le charset par défaut lors de l'installation */
2665
+        define('_DEFAULT_CHARSET', 'utf-8');
2666
+    }
2667
+    if (!defined('_ROOT_PLUGINS')) {
2668
+        define('_ROOT_PLUGINS', _ROOT_RACINE . 'plugins/');
2669
+    }
2670
+    if (!defined('_ROOT_PLUGINS_DIST')) {
2671
+        define('_ROOT_PLUGINS_DIST', _ROOT_RACINE . 'plugins-dist/');
2672
+    }
2673
+    if (!defined('_ROOT_PLUGINS_SUPPL') && defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
2674
+        define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2675
+    }
2676
+
2677
+    // La taille des Log
2678
+    if (!defined('_MAX_LOG')) {
2679
+        define('_MAX_LOG', 100);
2680
+    }
2681
+
2682
+    // Sommes-nous dans l'empire du Mal ?
2683
+    // (ou sous le signe du Pingouin, ascendant GNU ?)
2684
+    if (isset($_SERVER['SERVER_SOFTWARE']) and str_contains($_SERVER['SERVER_SOFTWARE'], '(Win')) {
2685
+        if (!defined('_OS_SERVEUR')) {
2686
+            define('_OS_SERVEUR', 'windows');
2687
+        }
2688
+        if (!defined('_SPIP_LOCK_MODE')) {
2689
+            define('_SPIP_LOCK_MODE', 1);
2690
+        } // utiliser le flock php
2691
+    } else {
2692
+        if (!defined('_OS_SERVEUR')) {
2693
+            define('_OS_SERVEUR', '');
2694
+        }
2695
+        if (!defined('_SPIP_LOCK_MODE')) {
2696
+            define('_SPIP_LOCK_MODE', 1);
2697
+        } // utiliser le flock php
2698
+        #if (!defined('_SPIP_LOCK_MODE')) define('_SPIP_LOCK_MODE',2); // utiliser le nfslock de spip mais link() est tres souvent interdite
2699
+    }
2700
+
2701
+    // Langue par defaut
2702
+    if (!defined('_LANGUE_PAR_DEFAUT')) {
2703
+        define('_LANGUE_PAR_DEFAUT', 'fr');
2704
+    }
2705
+
2706
+    //
2707
+    // Module de lecture/ecriture/suppression de fichiers utilisant flock()
2708
+    // (non surchargeable en l'etat ; attention si on utilise include_spip()
2709
+    // pour le rendre surchargeable, on va provoquer un reecriture
2710
+    // systematique du noyau ou une baisse de perfs => a etudier)
2711
+    include_once _ROOT_RESTREINT . 'inc/flock.php';
2712
+
2713
+    // charger tout de suite le path et son cache
2714
+    load_path_cache();
2715
+
2716
+    // *********** traiter les variables ************
2717
+
2718
+    //
2719
+    // Securite
2720
+    //
2721
+
2722
+    // Ne pas se faire manger par un bug php qui accepte ?GLOBALS[truc]=toto
2723
+    if (isset($_REQUEST['GLOBALS'])) {
2724
+        die();
2725
+    }
2726
+    // nettoyer les magic quotes \' et les caracteres nuls %00
2727
+    spip_desinfecte($_GET);
2728
+    spip_desinfecte($_POST);
2729
+    spip_desinfecte($_COOKIE);
2730
+    spip_desinfecte($_REQUEST);
2731
+
2732
+    // appliquer le cookie_prefix
2733
+    if ($GLOBALS['cookie_prefix'] != 'spip') {
2734
+        include_spip('inc/cookie');
2735
+        recuperer_cookies_spip($GLOBALS['cookie_prefix']);
2736
+    }
2737
+
2738
+    // Compatibilite avec serveurs ne fournissant pas $REQUEST_URI
2739
+    if (isset($_SERVER['REQUEST_URI'])) {
2740
+        $GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2741
+    } else {
2742
+        $GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2743
+        if (
2744
+            !empty($_SERVER['QUERY_STRING'])
2745
+            and !strpos($_SERVER['REQUEST_URI'], '?')
2746
+        ) {
2747
+            $GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2748
+        }
2749
+    }
2750
+
2751
+    // Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
2752
+    if (!defined('_RENOUVELLE_ALEA')) {
2753
+        define('_RENOUVELLE_ALEA', 12 * 3600);
2754
+    }
2755
+    if (!defined('_DUREE_COOKIE_ADMIN')) {
2756
+        define('_DUREE_COOKIE_ADMIN', 14 * 24 * 3600);
2757
+    }
2758
+
2759
+    // charger les meta si possible et renouveller l'alea au besoin
2760
+    // charge aussi effacer_meta et ecrire_meta
2761
+    $inc_meta = charger_fonction('meta', 'inc');
2762
+    $inc_meta();
2763
+
2764
+    // nombre de repertoires depuis la racine
2765
+    // on compare a l'adresse de spip.php : $_SERVER["SCRIPT_NAME"]
2766
+    // ou a defaut celle donnee en meta ; (mais si celle-ci est fausse
2767
+    // le calcul est faux)
2768
+    if (!_DIR_RESTREINT) {
2769
+        $GLOBALS['profondeur_url'] = 1;
2770
+    } else {
2771
+        $uri = isset($_SERVER['REQUEST_URI']) ? explode('?', $_SERVER['REQUEST_URI']) : '';
2772
+        $uri_ref = $_SERVER['SCRIPT_NAME'];
2773
+        if (
2774
+            !$uri_ref
2775
+            // si on est appele avec un autre ti, on est sans doute en mutu
2776
+            // si jamais c'est de la mutu avec sous rep, on est perdu si on se fie
2777
+            // a spip.php qui est a la racine du spip, et vue qu'on sait pas se reperer
2778
+            // s'en remettre a l'adresse du site. alea jacta est.
2779
+            or $ti !== _NOM_TEMPORAIRES_INACCESSIBLES
2780
+        ) {
2781
+            if (isset($GLOBALS['meta']['adresse_site'])) {
2782
+                $uri_ref = parse_url($GLOBALS['meta']['adresse_site']);
2783
+                $uri_ref = ($uri_ref['path'] ?? '') . '/';
2784
+            } else {
2785
+                $uri_ref = '';
2786
+            }
2787
+        }
2788
+        if (!$uri or !$uri_ref) {
2789
+            $GLOBALS['profondeur_url'] = 0;
2790
+        } else {
2791
+            $GLOBALS['profondeur_url'] = max(
2792
+                0,
2793
+                substr_count($uri[0], '/')
2794
+                - substr_count($uri_ref, '/')
2795
+            );
2796
+        }
2797
+    }
2798
+    // s'il y a un cookie ou PHP_AUTH, initialiser visiteur_session
2799
+    if (_FILE_CONNECT) {
2800
+        if (
2801
+            verifier_visiteur() == '0minirezo'
2802
+            // si c'est un admin sans cookie admin, il faut ignorer le cache chemin !
2803
+            and !isset($_COOKIE['spip_admin'])
2804
+        ) {
2805
+            clear_path_cache();
2806
+        }
2807
+    }
2809 2808
 }
2810 2809
 
2811 2810
 /**
@@ -2814,157 +2813,157 @@  discard block
 block discarded – undo
2814 2813
  *
2815 2814
  */
2816 2815
 function spip_initialisation_suite() {
2817
-	static $too_late = 0;
2818
-	if ($too_late++) {
2819
-		return;
2820
-	}
2821
-
2822
-	// taille mini des login
2823
-	if (!defined('_LOGIN_TROP_COURT')) {
2824
-		define('_LOGIN_TROP_COURT', 4);
2825
-	}
2826
-
2827
-	// la taille maxi des logos (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2828
-	#if (!defined('_LOGO_MAX_SIZE')) define('_LOGO_MAX_SIZE', 0); # poids en ko
2829
-	#if (!defined('_LOGO_MAX_WIDTH')) define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
2830
-	#if (!defined('_LOGO_MAX_HEIGHT')) define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels
2831
-
2832
-	// la taille maxi des images (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2833
-	#if (!defined('_DOC_MAX_SIZE')) define('_DOC_MAX_SIZE', 0); # poids en ko
2834
-	#if (!defined('_IMG_MAX_SIZE')) define('_IMG_MAX_SIZE', 0); # poids en ko
2835
-	#if (!defined('_IMG_MAX_WIDTH')) define('_IMG_MAX_WIDTH', 0); # largeur en pixels
2836
-	#if (!defined('_IMG_MAX_HEIGHT')) define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels
2837
-
2838
-	if (!defined('_PASS_LONGUEUR_MINI')) {
2839
-		define('_PASS_LONGUEUR_MINI', 6);
2840
-	}
2841
-
2842
-	// largeur maximale des images dans l'administration
2843
-	if (!defined('_IMG_ADMIN_MAX_WIDTH')) {
2844
-		define('_IMG_ADMIN_MAX_WIDTH', 768);
2845
-	}
2846
-
2847
-	// Qualite des images calculees automatiquement. C'est un nombre entre 0 et 100, meme pour imagick (on ramene a 0..1 par la suite)
2848
-	if (!defined('_IMG_QUALITE')) {
2849
-		define('_IMG_QUALITE', 85);
2850
-	} # valeur par defaut
2851
-	if (!defined('_IMG_GD_QUALITE')) {
2852
-		define('_IMG_GD_QUALITE', _IMG_QUALITE);
2853
-	} # surcharge pour la lib GD
2854
-	if (!defined('_IMG_CONVERT_QUALITE')) {
2855
-		define('_IMG_CONVERT_QUALITE', _IMG_QUALITE);
2856
-	} # surcharge pour imagick en ligne de commande
2857
-	// Historiquement la valeur pour imagick semble differente. Si ca n'est pas necessaire, il serait preferable de garder _IMG_QUALITE
2858
-	if (!defined('_IMG_IMAGICK_QUALITE')) {
2859
-		define('_IMG_IMAGICK_QUALITE', 75);
2860
-	} # surcharge pour imagick en PHP
2861
-
2862
-	if (!defined('_COPIE_LOCALE_MAX_SIZE')) {
2863
-		define('_COPIE_LOCALE_MAX_SIZE', 33_554_432);
2864
-	} // poids en octet
2865
-
2866
-	// qq chaines standard
2867
-	if (!defined('_ACCESS_FILE_NAME')) {
2868
-		define('_ACCESS_FILE_NAME', '.htaccess');
2869
-	}
2870
-	if (!defined('_AUTH_USER_FILE')) {
2871
-		define('_AUTH_USER_FILE', '.htpasswd');
2872
-	}
2873
-	if (!defined('_SPIP_DUMP')) {
2874
-		define('_SPIP_DUMP', 'dump@nom_site@@[email protected]');
2875
-	}
2876
-	if (!defined('_CACHE_RUBRIQUES')) {
2877
-		/** Fichier cache pour le navigateur de rubrique du bandeau */
2878
-		define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
2879
-	}
2880
-	if (!defined('_CACHE_RUBRIQUES_MAX')) {
2881
-		/** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
2882
-		define('_CACHE_RUBRIQUES_MAX', 500);
2883
-	}
2884
-
2885
-	if (!defined('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR')) {
2886
-		/**
2887
-		 * Basculer les contextes ajax en fichier si la longueur d’url est trop grande
2888
-		 * @var int Nombre de caractères */
2889
-		define('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR', 2000);
2890
-	}
2891
-
2892
-	if (!defined('_EXTENSION_SQUELETTES')) {
2893
-		define('_EXTENSION_SQUELETTES', 'html');
2894
-	}
2895
-
2896
-	if (!defined('_DOCTYPE_ECRIRE')) {
2897
-		/** Définit le doctype de l’espace privé */
2898
-		define('_DOCTYPE_ECRIRE', "<!DOCTYPE html>\n");
2899
-	}
2900
-	if (!defined('_DOCTYPE_AIDE')) {
2901
-		/** Définit le doctype de l’aide en ligne */
2902
-		define(
2903
-			'_DOCTYPE_AIDE',
2904
-			"<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"
2905
-		);
2906
-	}
2907
-
2908
-	if (!defined('_SPIP_SCRIPT')) {
2909
-		/** L'adresse de base du site ; on peut mettre '' si la racine est gerée par
2910
-		 * le script de l'espace public, alias index.php */
2911
-		define('_SPIP_SCRIPT', 'spip.php');
2912
-	}
2913
-	if (!defined('_SPIP_PAGE')) {
2914
-		/** Argument page, personalisable en cas de conflit avec un autre script */
2915
-		define('_SPIP_PAGE', 'page');
2916
-	}
2917
-
2918
-	// le script de l'espace prive
2919
-	// Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes:
2920
-	// les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
2921
-	// meme pb sur thttpd cf. https://forum.spip.net/fr_184153.html
2922
-	if (!defined('_SPIP_ECRIRE_SCRIPT')) {
2923
-		if (!empty($_SERVER['SERVER_SOFTWARE']) and preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE'])) {
2924
-			define('_SPIP_ECRIRE_SCRIPT', 'index.php');
2925
-		} else {
2926
-			define('_SPIP_ECRIRE_SCRIPT', '');
2927
-		}
2928
-	}
2929
-
2930
-
2931
-	if (!defined('_SPIP_AJAX')) {
2932
-		define('_SPIP_AJAX', ((!isset($_COOKIE['spip_accepte_ajax']))
2933
-			? 1
2934
-			: (($_COOKIE['spip_accepte_ajax'] != -1) ? 1 : 0)));
2935
-	}
2936
-
2937
-	// La requete est-elle en ajax ?
2938
-	if (!defined('_AJAX')) {
2939
-		define(
2940
-			'_AJAX',
2941
-			(isset($_SERVER['HTTP_X_REQUESTED_WITH']) # ajax jQuery
2942
-				or !empty($_REQUEST['var_ajax_redir']) # redirection 302 apres ajax jQuery
2943
-				or !empty($_REQUEST['var_ajaxcharset']) # compat ascendante pour plugins
2944
-				or !empty($_REQUEST['var_ajax']) # forms ajax & inclure ajax de spip
2945
-			)
2946
-			and empty($_REQUEST['var_noajax']) # horrible exception, car c'est pas parce que la requete est ajax jquery qu'il faut tuer tous les formulaires ajax qu'elle contient
2947
-		);
2948
-	}
2949
-
2950
-	# nombre de pixels maxi pour calcul de la vignette avec gd
2951
-	# au dela de 5500000 on considere que php n'est pas limite en memoire pour cette operation
2952
-	# les configurations limitees en memoire ont un seuil plutot vers 1MPixel
2953
-	if (!defined('_IMG_GD_MAX_PIXELS')) {
2954
-		define(
2955
-			'_IMG_GD_MAX_PIXELS',
2956
-			(isset($GLOBALS['meta']['max_taille_vignettes']) and $GLOBALS['meta']['max_taille_vignettes'])
2957
-			? $GLOBALS['meta']['max_taille_vignettes']
2958
-			: 0
2959
-		);
2960
-	}
2961
-
2962
-	// Protocoles a normaliser dans les chaines de langues
2963
-	if (!defined('_PROTOCOLES_STD')) {
2964
-		define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal');
2965
-	}
2966
-
2967
-	init_var_mode();
2816
+    static $too_late = 0;
2817
+    if ($too_late++) {
2818
+        return;
2819
+    }
2820
+
2821
+    // taille mini des login
2822
+    if (!defined('_LOGIN_TROP_COURT')) {
2823
+        define('_LOGIN_TROP_COURT', 4);
2824
+    }
2825
+
2826
+    // la taille maxi des logos (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2827
+    #if (!defined('_LOGO_MAX_SIZE')) define('_LOGO_MAX_SIZE', 0); # poids en ko
2828
+    #if (!defined('_LOGO_MAX_WIDTH')) define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
2829
+    #if (!defined('_LOGO_MAX_HEIGHT')) define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels
2830
+
2831
+    // la taille maxi des images (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2832
+    #if (!defined('_DOC_MAX_SIZE')) define('_DOC_MAX_SIZE', 0); # poids en ko
2833
+    #if (!defined('_IMG_MAX_SIZE')) define('_IMG_MAX_SIZE', 0); # poids en ko
2834
+    #if (!defined('_IMG_MAX_WIDTH')) define('_IMG_MAX_WIDTH', 0); # largeur en pixels
2835
+    #if (!defined('_IMG_MAX_HEIGHT')) define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels
2836
+
2837
+    if (!defined('_PASS_LONGUEUR_MINI')) {
2838
+        define('_PASS_LONGUEUR_MINI', 6);
2839
+    }
2840
+
2841
+    // largeur maximale des images dans l'administration
2842
+    if (!defined('_IMG_ADMIN_MAX_WIDTH')) {
2843
+        define('_IMG_ADMIN_MAX_WIDTH', 768);
2844
+    }
2845
+
2846
+    // Qualite des images calculees automatiquement. C'est un nombre entre 0 et 100, meme pour imagick (on ramene a 0..1 par la suite)
2847
+    if (!defined('_IMG_QUALITE')) {
2848
+        define('_IMG_QUALITE', 85);
2849
+    } # valeur par defaut
2850
+    if (!defined('_IMG_GD_QUALITE')) {
2851
+        define('_IMG_GD_QUALITE', _IMG_QUALITE);
2852
+    } # surcharge pour la lib GD
2853
+    if (!defined('_IMG_CONVERT_QUALITE')) {
2854
+        define('_IMG_CONVERT_QUALITE', _IMG_QUALITE);
2855
+    } # surcharge pour imagick en ligne de commande
2856
+    // Historiquement la valeur pour imagick semble differente. Si ca n'est pas necessaire, il serait preferable de garder _IMG_QUALITE
2857
+    if (!defined('_IMG_IMAGICK_QUALITE')) {
2858
+        define('_IMG_IMAGICK_QUALITE', 75);
2859
+    } # surcharge pour imagick en PHP
2860
+
2861
+    if (!defined('_COPIE_LOCALE_MAX_SIZE')) {
2862
+        define('_COPIE_LOCALE_MAX_SIZE', 33_554_432);
2863
+    } // poids en octet
2864
+
2865
+    // qq chaines standard
2866
+    if (!defined('_ACCESS_FILE_NAME')) {
2867
+        define('_ACCESS_FILE_NAME', '.htaccess');
2868
+    }
2869
+    if (!defined('_AUTH_USER_FILE')) {
2870
+        define('_AUTH_USER_FILE', '.htpasswd');
2871
+    }
2872
+    if (!defined('_SPIP_DUMP')) {
2873
+        define('_SPIP_DUMP', 'dump@nom_site@@[email protected]');
2874
+    }
2875
+    if (!defined('_CACHE_RUBRIQUES')) {
2876
+        /** Fichier cache pour le navigateur de rubrique du bandeau */
2877
+        define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
2878
+    }
2879
+    if (!defined('_CACHE_RUBRIQUES_MAX')) {
2880
+        /** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
2881
+        define('_CACHE_RUBRIQUES_MAX', 500);
2882
+    }
2883
+
2884
+    if (!defined('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR')) {
2885
+        /**
2886
+         * Basculer les contextes ajax en fichier si la longueur d’url est trop grande
2887
+         * @var int Nombre de caractères */
2888
+        define('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR', 2000);
2889
+    }
2890
+
2891
+    if (!defined('_EXTENSION_SQUELETTES')) {
2892
+        define('_EXTENSION_SQUELETTES', 'html');
2893
+    }
2894
+
2895
+    if (!defined('_DOCTYPE_ECRIRE')) {
2896
+        /** Définit le doctype de l’espace privé */
2897
+        define('_DOCTYPE_ECRIRE', "<!DOCTYPE html>\n");
2898
+    }
2899
+    if (!defined('_DOCTYPE_AIDE')) {
2900
+        /** Définit le doctype de l’aide en ligne */
2901
+        define(
2902
+            '_DOCTYPE_AIDE',
2903
+            "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"
2904
+        );
2905
+    }
2906
+
2907
+    if (!defined('_SPIP_SCRIPT')) {
2908
+        /** L'adresse de base du site ; on peut mettre '' si la racine est gerée par
2909
+         * le script de l'espace public, alias index.php */
2910
+        define('_SPIP_SCRIPT', 'spip.php');
2911
+    }
2912
+    if (!defined('_SPIP_PAGE')) {
2913
+        /** Argument page, personalisable en cas de conflit avec un autre script */
2914
+        define('_SPIP_PAGE', 'page');
2915
+    }
2916
+
2917
+    // le script de l'espace prive
2918
+    // Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes:
2919
+    // les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
2920
+    // meme pb sur thttpd cf. https://forum.spip.net/fr_184153.html
2921
+    if (!defined('_SPIP_ECRIRE_SCRIPT')) {
2922
+        if (!empty($_SERVER['SERVER_SOFTWARE']) and preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE'])) {
2923
+            define('_SPIP_ECRIRE_SCRIPT', 'index.php');
2924
+        } else {
2925
+            define('_SPIP_ECRIRE_SCRIPT', '');
2926
+        }
2927
+    }
2928
+
2929
+
2930
+    if (!defined('_SPIP_AJAX')) {
2931
+        define('_SPIP_AJAX', ((!isset($_COOKIE['spip_accepte_ajax']))
2932
+            ? 1
2933
+            : (($_COOKIE['spip_accepte_ajax'] != -1) ? 1 : 0)));
2934
+    }
2935
+
2936
+    // La requete est-elle en ajax ?
2937
+    if (!defined('_AJAX')) {
2938
+        define(
2939
+            '_AJAX',
2940
+            (isset($_SERVER['HTTP_X_REQUESTED_WITH']) # ajax jQuery
2941
+                or !empty($_REQUEST['var_ajax_redir']) # redirection 302 apres ajax jQuery
2942
+                or !empty($_REQUEST['var_ajaxcharset']) # compat ascendante pour plugins
2943
+                or !empty($_REQUEST['var_ajax']) # forms ajax & inclure ajax de spip
2944
+            )
2945
+            and empty($_REQUEST['var_noajax']) # horrible exception, car c'est pas parce que la requete est ajax jquery qu'il faut tuer tous les formulaires ajax qu'elle contient
2946
+        );
2947
+    }
2948
+
2949
+    # nombre de pixels maxi pour calcul de la vignette avec gd
2950
+    # au dela de 5500000 on considere que php n'est pas limite en memoire pour cette operation
2951
+    # les configurations limitees en memoire ont un seuil plutot vers 1MPixel
2952
+    if (!defined('_IMG_GD_MAX_PIXELS')) {
2953
+        define(
2954
+            '_IMG_GD_MAX_PIXELS',
2955
+            (isset($GLOBALS['meta']['max_taille_vignettes']) and $GLOBALS['meta']['max_taille_vignettes'])
2956
+            ? $GLOBALS['meta']['max_taille_vignettes']
2957
+            : 0
2958
+        );
2959
+    }
2960
+
2961
+    // Protocoles a normaliser dans les chaines de langues
2962
+    if (!defined('_PROTOCOLES_STD')) {
2963
+        define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal');
2964
+    }
2965
+
2966
+    init_var_mode();
2968 2967
 }
2969 2968
 
2970 2969
 /**
@@ -2998,136 +2997,136 @@  discard block
 block discarded – undo
2998 2997
  * `   var_mode` (calcul ou recalcul).
2999 2998
  */
3000 2999
 function init_var_mode() {
3001
-	static $done = false;
3002
-	if (!$done) {
3003
-		if (isset($_GET['var_mode'])) {
3004
-			$var_mode = explode(',', $_GET['var_mode']);
3005
-			// tout le monde peut calcul/recalcul
3006
-			if (!defined('_VAR_MODE')) {
3007
-				if (in_array('recalcul', $var_mode)) {
3008
-					define('_VAR_MODE', 'recalcul');
3009
-				} elseif (in_array('calcul', $var_mode)) {
3010
-					define('_VAR_MODE', 'calcul');
3011
-				}
3012
-			}
3013
-			$var_mode = array_diff($var_mode, ['calcul', 'recalcul']);
3014
-			if ($var_mode) {
3015
-				include_spip('inc/autoriser');
3016
-				// autoriser preview si preview seulement, et sinon autoriser debug
3017
-				if (
3018
-					autoriser(
3019
-						($_GET['var_mode'] == 'preview')
3020
-						? 'previsualiser'
3021
-						: 'debug'
3022
-					)
3023
-				) {
3024
-					if (in_array('traduction', $var_mode)) {
3025
-						// forcer le calcul pour passer dans traduire
3026
-						if (!defined('_VAR_MODE')) {
3027
-							define('_VAR_MODE', 'calcul');
3028
-						}
3029
-						// et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages
3030
-						if (!defined('_VAR_NOCACHE')) {
3031
-							define('_VAR_NOCACHE', true);
3032
-						}
3033
-						$var_mode = array_diff($var_mode, ['traduction']);
3034
-					}
3035
-					if (in_array('preview', $var_mode)) {
3036
-						// basculer sur les criteres de preview dans les boucles
3037
-						if (!defined('_VAR_PREVIEW')) {
3038
-							define('_VAR_PREVIEW', true);
3039
-						}
3040
-						// forcer le calcul
3041
-						if (!defined('_VAR_MODE')) {
3042
-							define('_VAR_MODE', 'calcul');
3043
-						}
3044
-						// et ne pas enregistrer de cache
3045
-						if (!defined('_VAR_NOCACHE')) {
3046
-							define('_VAR_NOCACHE', true);
3047
-						}
3048
-						$var_mode = array_diff($var_mode, ['preview']);
3049
-					}
3050
-					if (in_array('inclure', $var_mode)) {
3051
-						// forcer le compilo et ignorer les caches existants
3052
-						if (!defined('_VAR_MODE')) {
3053
-							define('_VAR_MODE', 'calcul');
3054
-						}
3055
-						if (!defined('_VAR_INCLURE')) {
3056
-							define('_VAR_INCLURE', true);
3057
-						}
3058
-						// et ne pas enregistrer de cache
3059
-						if (!defined('_VAR_NOCACHE')) {
3060
-							define('_VAR_NOCACHE', true);
3061
-						}
3062
-						$var_mode = array_diff($var_mode, ['inclure']);
3063
-					}
3064
-					if (in_array('urls', $var_mode)) {
3065
-						// forcer le compilo et ignorer les caches existants
3066
-						if (!defined('_VAR_MODE')) {
3067
-							define('_VAR_MODE', 'calcul');
3068
-						}
3069
-						if (!defined('_VAR_URLS')) {
3070
-							define('_VAR_URLS', true);
3071
-						}
3072
-						$var_mode = array_diff($var_mode, ['urls']);
3073
-					}
3074
-					if (in_array('images', $var_mode)) {
3075
-						// forcer le compilo et ignorer les caches existants
3076
-						if (!defined('_VAR_MODE')) {
3077
-							define('_VAR_MODE', 'calcul');
3078
-						}
3079
-						// indiquer qu'on doit recalculer les images
3080
-						if (!defined('_VAR_IMAGES')) {
3081
-							define('_VAR_IMAGES', true);
3082
-						}
3083
-						$var_mode = array_diff($var_mode, ['images']);
3084
-					}
3085
-					if (in_array('debug', $var_mode)) {
3086
-						if (!defined('_VAR_MODE')) {
3087
-							define('_VAR_MODE', 'debug');
3088
-						}
3089
-						// et ne pas enregistrer de cache
3090
-						if (!defined('_VAR_NOCACHE')) {
3091
-							define('_VAR_NOCACHE', true);
3092
-						}
3093
-						$var_mode = array_diff($var_mode, ['debug']);
3094
-					}
3095
-					if (count($var_mode) and !defined('_VAR_MODE')) {
3096
-						define('_VAR_MODE', reset($var_mode));
3097
-					}
3098
-					if (isset($GLOBALS['visiteur_session']['nom'])) {
3099
-						spip_log($GLOBALS['visiteur_session']['nom']
3100
-							. ' ' . _VAR_MODE);
3101
-					}
3102
-				} // pas autorise ?
3103
-				else {
3104
-					// si on n'est pas connecte on se redirige, si on est pas en cli et pas deja en train de se loger
3105
-					if (
3106
-						!$GLOBALS['visiteur_session']
3107
-						and !empty($_SERVER['HTTP_HOST'])
3108
-						and !empty($_SERVER['REQUEST_METHOD'])
3109
-						and $_SERVER['REQUEST_METHOD'] === 'GET'
3110
-					) {
3111
-						$self = self('&', true);
3112
-						if (strpos($self, 'page=login') === false) {
3113
-							include_spip('inc/headers');
3114
-							$redirect = parametre_url(self('&', true), 'var_mode', $_GET['var_mode'], '&');
3115
-							redirige_par_entete(generer_url_public('login', 'url=' . rawurlencode($redirect), true));
3116
-						}
3117
-					}
3118
-					// sinon tant pis
3119
-				}
3120
-			}
3121
-		}
3122
-		if (!defined('_VAR_MODE')) {
3123
-			/**
3124
-			 * Indique le mode de calcul ou d'affichage de la page.
3125
-			 * @see init_var_mode()
3126
-			 */
3127
-			define('_VAR_MODE', false);
3128
-		}
3129
-		$done = true;
3130
-	}
3000
+    static $done = false;
3001
+    if (!$done) {
3002
+        if (isset($_GET['var_mode'])) {
3003
+            $var_mode = explode(',', $_GET['var_mode']);
3004
+            // tout le monde peut calcul/recalcul
3005
+            if (!defined('_VAR_MODE')) {
3006
+                if (in_array('recalcul', $var_mode)) {
3007
+                    define('_VAR_MODE', 'recalcul');
3008
+                } elseif (in_array('calcul', $var_mode)) {
3009
+                    define('_VAR_MODE', 'calcul');
3010
+                }
3011
+            }
3012
+            $var_mode = array_diff($var_mode, ['calcul', 'recalcul']);
3013
+            if ($var_mode) {
3014
+                include_spip('inc/autoriser');
3015
+                // autoriser preview si preview seulement, et sinon autoriser debug
3016
+                if (
3017
+                    autoriser(
3018
+                        ($_GET['var_mode'] == 'preview')
3019
+                        ? 'previsualiser'
3020
+                        : 'debug'
3021
+                    )
3022
+                ) {
3023
+                    if (in_array('traduction', $var_mode)) {
3024
+                        // forcer le calcul pour passer dans traduire
3025
+                        if (!defined('_VAR_MODE')) {
3026
+                            define('_VAR_MODE', 'calcul');
3027
+                        }
3028
+                        // et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages
3029
+                        if (!defined('_VAR_NOCACHE')) {
3030
+                            define('_VAR_NOCACHE', true);
3031
+                        }
3032
+                        $var_mode = array_diff($var_mode, ['traduction']);
3033
+                    }
3034
+                    if (in_array('preview', $var_mode)) {
3035
+                        // basculer sur les criteres de preview dans les boucles
3036
+                        if (!defined('_VAR_PREVIEW')) {
3037
+                            define('_VAR_PREVIEW', true);
3038
+                        }
3039
+                        // forcer le calcul
3040
+                        if (!defined('_VAR_MODE')) {
3041
+                            define('_VAR_MODE', 'calcul');
3042
+                        }
3043
+                        // et ne pas enregistrer de cache
3044
+                        if (!defined('_VAR_NOCACHE')) {
3045
+                            define('_VAR_NOCACHE', true);
3046
+                        }
3047
+                        $var_mode = array_diff($var_mode, ['preview']);
3048
+                    }
3049
+                    if (in_array('inclure', $var_mode)) {
3050
+                        // forcer le compilo et ignorer les caches existants
3051
+                        if (!defined('_VAR_MODE')) {
3052
+                            define('_VAR_MODE', 'calcul');
3053
+                        }
3054
+                        if (!defined('_VAR_INCLURE')) {
3055
+                            define('_VAR_INCLURE', true);
3056
+                        }
3057
+                        // et ne pas enregistrer de cache
3058
+                        if (!defined('_VAR_NOCACHE')) {
3059
+                            define('_VAR_NOCACHE', true);
3060
+                        }
3061
+                        $var_mode = array_diff($var_mode, ['inclure']);
3062
+                    }
3063
+                    if (in_array('urls', $var_mode)) {
3064
+                        // forcer le compilo et ignorer les caches existants
3065
+                        if (!defined('_VAR_MODE')) {
3066
+                            define('_VAR_MODE', 'calcul');
3067
+                        }
3068
+                        if (!defined('_VAR_URLS')) {
3069
+                            define('_VAR_URLS', true);
3070
+                        }
3071
+                        $var_mode = array_diff($var_mode, ['urls']);
3072
+                    }
3073
+                    if (in_array('images', $var_mode)) {
3074
+                        // forcer le compilo et ignorer les caches existants
3075
+                        if (!defined('_VAR_MODE')) {
3076
+                            define('_VAR_MODE', 'calcul');
3077
+                        }
3078
+                        // indiquer qu'on doit recalculer les images
3079
+                        if (!defined('_VAR_IMAGES')) {
3080
+                            define('_VAR_IMAGES', true);
3081
+                        }
3082
+                        $var_mode = array_diff($var_mode, ['images']);
3083
+                    }
3084
+                    if (in_array('debug', $var_mode)) {
3085
+                        if (!defined('_VAR_MODE')) {
3086
+                            define('_VAR_MODE', 'debug');
3087
+                        }
3088
+                        // et ne pas enregistrer de cache
3089
+                        if (!defined('_VAR_NOCACHE')) {
3090
+                            define('_VAR_NOCACHE', true);
3091
+                        }
3092
+                        $var_mode = array_diff($var_mode, ['debug']);
3093
+                    }
3094
+                    if (count($var_mode) and !defined('_VAR_MODE')) {
3095
+                        define('_VAR_MODE', reset($var_mode));
3096
+                    }
3097
+                    if (isset($GLOBALS['visiteur_session']['nom'])) {
3098
+                        spip_log($GLOBALS['visiteur_session']['nom']
3099
+                            . ' ' . _VAR_MODE);
3100
+                    }
3101
+                } // pas autorise ?
3102
+                else {
3103
+                    // si on n'est pas connecte on se redirige, si on est pas en cli et pas deja en train de se loger
3104
+                    if (
3105
+                        !$GLOBALS['visiteur_session']
3106
+                        and !empty($_SERVER['HTTP_HOST'])
3107
+                        and !empty($_SERVER['REQUEST_METHOD'])
3108
+                        and $_SERVER['REQUEST_METHOD'] === 'GET'
3109
+                    ) {
3110
+                        $self = self('&', true);
3111
+                        if (strpos($self, 'page=login') === false) {
3112
+                            include_spip('inc/headers');
3113
+                            $redirect = parametre_url(self('&', true), 'var_mode', $_GET['var_mode'], '&');
3114
+                            redirige_par_entete(generer_url_public('login', 'url=' . rawurlencode($redirect), true));
3115
+                        }
3116
+                    }
3117
+                    // sinon tant pis
3118
+                }
3119
+            }
3120
+        }
3121
+        if (!defined('_VAR_MODE')) {
3122
+            /**
3123
+             * Indique le mode de calcul ou d'affichage de la page.
3124
+             * @see init_var_mode()
3125
+             */
3126
+            define('_VAR_MODE', false);
3127
+        }
3128
+        $done = true;
3129
+    }
3131 3130
 }
3132 3131
 
3133 3132
 /**
@@ -3139,16 +3138,16 @@  discard block
 block discarded – undo
3139 3138
  * @param bool $deep = true : appliquer récursivement
3140 3139
 **/
3141 3140
 function spip_desinfecte(&$t, $deep = true) {
3142
-	foreach ($t as $key => $val) {
3143
-		if (is_string($t[$key])) {
3144
-			$t[$key] = str_replace(chr(0), '-', $t[$key]);
3145
-		} // traiter aussi les "texte_plus" de article_edit
3146
-		else {
3147
-			if ($deep and is_array($t[$key]) and $key !== 'GLOBALS') {
3148
-				spip_desinfecte($t[$key], $deep);
3149
-			}
3150
-		}
3151
-	}
3141
+    foreach ($t as $key => $val) {
3142
+        if (is_string($t[$key])) {
3143
+            $t[$key] = str_replace(chr(0), '-', $t[$key]);
3144
+        } // traiter aussi les "texte_plus" de article_edit
3145
+        else {
3146
+            if ($deep and is_array($t[$key]) and $key !== 'GLOBALS') {
3147
+                spip_desinfecte($t[$key], $deep);
3148
+            }
3149
+        }
3150
+    }
3152 3151
 }
3153 3152
 
3154 3153
 /**
@@ -3161,64 +3160,64 @@  discard block
 block discarded – undo
3161 3160
  * @return string|0|false
3162 3161
 **/
3163 3162
 function verifier_visiteur() {
3164
-	@spip_initialisation_core(
3165
-		(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
3166
-		(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
3167
-		(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
3168
-		(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
3169
-	);
3170
-
3171
-	// Demarrer une session NON AUTHENTIFIEE si on donne son nom
3172
-	// dans un formulaire sans login (ex: #FORMULAIRE_FORUM)
3173
-	// Attention on separe bien session_nom et nom, pour eviter
3174
-	// les melanges entre donnees SQL et variables plus aleatoires
3175
-	$variables_session = ['session_nom', 'session_email'];
3176
-	foreach ($variables_session as $var) {
3177
-		if (_request($var) !== null) {
3178
-			$init = true;
3179
-			break;
3180
-		}
3181
-	}
3182
-	if (isset($init)) {
3183
-		#@spip_initialisation_suite();
3184
-		$session = charger_fonction('session', 'inc');
3185
-		$session();
3186
-		include_spip('inc/texte');
3187
-		foreach ($variables_session as $var) {
3188
-			if (($a = _request($var)) !== null) {
3189
-				$GLOBALS['visiteur_session'][$var] = safehtml($a);
3190
-			}
3191
-		}
3192
-		if (!isset($GLOBALS['visiteur_session']['id_auteur'])) {
3193
-			$GLOBALS['visiteur_session']['id_auteur'] = 0;
3194
-		}
3195
-		$session($GLOBALS['visiteur_session']);
3196
-
3197
-		return 0;
3198
-	}
3199
-
3200
-	$h = (isset($_SERVER['PHP_AUTH_USER']) and !$GLOBALS['ignore_auth_http']);
3201
-	if ($h or isset($_COOKIE['spip_session']) or isset($_COOKIE[$GLOBALS['cookie_prefix'] . '_session'])) {
3202
-		$session = charger_fonction('session', 'inc');
3203
-		if ($session()) {
3204
-			return $GLOBALS['visiteur_session']['statut'];
3205
-		}
3206
-		if ($h and isset($_SERVER['PHP_AUTH_PW'])) {
3207
-			include_spip('inc/auth');
3208
-			$h = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
3209
-		}
3210
-		if ($h) {
3211
-			$GLOBALS['visiteur_session'] = $h;
3212
-
3213
-			return $GLOBALS['visiteur_session']['statut'];
3214
-		}
3215
-	}
3216
-
3217
-	// au moins son navigateur nous dit la langue preferee de cet inconnu
3218
-	include_spip('inc/lang');
3219
-	utiliser_langue_visiteur();
3220
-
3221
-	return false;
3163
+    @spip_initialisation_core(
3164
+        (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
3165
+        (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
3166
+        (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
3167
+        (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
3168
+    );
3169
+
3170
+    // Demarrer une session NON AUTHENTIFIEE si on donne son nom
3171
+    // dans un formulaire sans login (ex: #FORMULAIRE_FORUM)
3172
+    // Attention on separe bien session_nom et nom, pour eviter
3173
+    // les melanges entre donnees SQL et variables plus aleatoires
3174
+    $variables_session = ['session_nom', 'session_email'];
3175
+    foreach ($variables_session as $var) {
3176
+        if (_request($var) !== null) {
3177
+            $init = true;
3178
+            break;
3179
+        }
3180
+    }
3181
+    if (isset($init)) {
3182
+        #@spip_initialisation_suite();
3183
+        $session = charger_fonction('session', 'inc');
3184
+        $session();
3185
+        include_spip('inc/texte');
3186
+        foreach ($variables_session as $var) {
3187
+            if (($a = _request($var)) !== null) {
3188
+                $GLOBALS['visiteur_session'][$var] = safehtml($a);
3189
+            }
3190
+        }
3191
+        if (!isset($GLOBALS['visiteur_session']['id_auteur'])) {
3192
+            $GLOBALS['visiteur_session']['id_auteur'] = 0;
3193
+        }
3194
+        $session($GLOBALS['visiteur_session']);
3195
+
3196
+        return 0;
3197
+    }
3198
+
3199
+    $h = (isset($_SERVER['PHP_AUTH_USER']) and !$GLOBALS['ignore_auth_http']);
3200
+    if ($h or isset($_COOKIE['spip_session']) or isset($_COOKIE[$GLOBALS['cookie_prefix'] . '_session'])) {
3201
+        $session = charger_fonction('session', 'inc');
3202
+        if ($session()) {
3203
+            return $GLOBALS['visiteur_session']['statut'];
3204
+        }
3205
+        if ($h and isset($_SERVER['PHP_AUTH_PW'])) {
3206
+            include_spip('inc/auth');
3207
+            $h = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
3208
+        }
3209
+        if ($h) {
3210
+            $GLOBALS['visiteur_session'] = $h;
3211
+
3212
+            return $GLOBALS['visiteur_session']['statut'];
3213
+        }
3214
+    }
3215
+
3216
+    // au moins son navigateur nous dit la langue preferee de cet inconnu
3217
+    include_spip('inc/lang');
3218
+    utiliser_langue_visiteur();
3219
+
3220
+    return false;
3222 3221
 }
3223 3222
 
3224 3223
 
@@ -3241,21 +3240,21 @@  discard block
 block discarded – undo
3241 3240
  *     - string Langue utilisée.
3242 3241
  **/
3243 3242
 function lang_select($lang = null) {
3244
-	static $pile_langues = [];
3245
-	if (!function_exists('changer_langue')) {
3246
-		include_spip('inc/lang');
3247
-	}
3248
-	if ($lang === null) {
3249
-		$lang = array_pop($pile_langues);
3250
-	} else {
3251
-		array_push($pile_langues, $GLOBALS['spip_lang']);
3252
-	}
3253
-	if (isset($GLOBALS['spip_lang']) and $lang == $GLOBALS['spip_lang']) {
3254
-		return $lang;
3255
-	}
3256
-	changer_langue($lang);
3243
+    static $pile_langues = [];
3244
+    if (!function_exists('changer_langue')) {
3245
+        include_spip('inc/lang');
3246
+    }
3247
+    if ($lang === null) {
3248
+        $lang = array_pop($pile_langues);
3249
+    } else {
3250
+        array_push($pile_langues, $GLOBALS['spip_lang']);
3251
+    }
3252
+    if (isset($GLOBALS['spip_lang']) and $lang == $GLOBALS['spip_lang']) {
3253
+        return $lang;
3254
+    }
3255
+    changer_langue($lang);
3257 3256
 
3258
-	return $lang;
3257
+    return $lang;
3259 3258
 }
3260 3259
 
3261 3260
 /**
@@ -3272,20 +3271,20 @@  discard block
 block discarded – undo
3272 3271
  *     Identifiant de la session
3273 3272
  **/
3274 3273
 function spip_session($force = false) {
3275
-	static $session;
3276
-	if ($force or !isset($session)) {
3277
-		$s = pipeline(
3278
-			'definir_session',
3279
-			$GLOBALS['visiteur_session']
3280
-				? serialize($GLOBALS['visiteur_session'])
3281
-				. '_' . @$_COOKIE['spip_session']
3282
-				: ''
3283
-		);
3284
-		$session = $s ? substr(md5($s), 0, 8) : '';
3285
-	}
3274
+    static $session;
3275
+    if ($force or !isset($session)) {
3276
+        $s = pipeline(
3277
+            'definir_session',
3278
+            $GLOBALS['visiteur_session']
3279
+                ? serialize($GLOBALS['visiteur_session'])
3280
+                . '_' . @$_COOKIE['spip_session']
3281
+                : ''
3282
+        );
3283
+        $session = $s ? substr(md5($s), 0, 8) : '';
3284
+    }
3286 3285
 
3287
-	#spip_log('session: '.$session);
3288
-	return $session;
3286
+    #spip_log('session: '.$session);
3287
+    return $session;
3289 3288
 }
3290 3289
 
3291 3290
 
@@ -3304,9 +3303,9 @@  discard block
 block discarded – undo
3304 3303
  *    Lien sur une icone d'aide
3305 3304
  **/
3306 3305
 function aider($aide = '', $distante = false) {
3307
-	$aider = charger_fonction('aide', 'inc', true);
3306
+    $aider = charger_fonction('aide', 'inc', true);
3308 3307
 
3309
-	return $aider ? $aider($aide, '', [], $distante) : '';
3308
+    return $aider ? $aider($aide, '', [], $distante) : '';
3310 3309
 }
3311 3310
 
3312 3311
 /**
@@ -3316,35 +3315,35 @@  discard block
 block discarded – undo
3316 3315
  */
3317 3316
 function exec_info_dist() {
3318 3317
 
3319
-	include_spip('inc/autoriser');
3320
-	if (autoriser('phpinfos')) {
3321
-		$cookies_masques = ['spip_session', 'PHPSESSID'];
3322
-		$cookies_backup = [];
3323
-		$server_backup = ['HTTP_COOKIE' => $_SERVER['HTTP_COOKIE'] ?? []];
3324
-		$env_backup = ['HTTP_COOKIE' => $_ENV['HTTP_COOKIE'] ?? []];
3325
-		$mask = '******************************';
3326
-		foreach ($cookies_masques as $k) {
3327
-			if (!empty($_COOKIE[$k])) {
3328
-				$cookies_backup[$k] = $_COOKIE[$k];
3329
-				$_SERVER['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3330
-				$_ENV['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3331
-				$_COOKIE[$k] = $mask;
3332
-			}
3333
-		}
3334
-		phpinfo();
3335
-		foreach ($cookies_backup as $k => $v) {
3336
-			$_COOKIE[$k] = $v;
3337
-		}
3338
-		foreach ($server_backup as $k => $v) {
3339
-			$_SERVER[$k] = $v;
3340
-		}
3341
-		foreach ($env_backup as $k => $v) {
3342
-			$_ENV[$k] = $v;
3343
-		}
3344
-	} else {
3345
-		include_spip('inc/filtres');
3346
-		sinon_interdire_acces();
3347
-	}
3318
+    include_spip('inc/autoriser');
3319
+    if (autoriser('phpinfos')) {
3320
+        $cookies_masques = ['spip_session', 'PHPSESSID'];
3321
+        $cookies_backup = [];
3322
+        $server_backup = ['HTTP_COOKIE' => $_SERVER['HTTP_COOKIE'] ?? []];
3323
+        $env_backup = ['HTTP_COOKIE' => $_ENV['HTTP_COOKIE'] ?? []];
3324
+        $mask = '******************************';
3325
+        foreach ($cookies_masques as $k) {
3326
+            if (!empty($_COOKIE[$k])) {
3327
+                $cookies_backup[$k] = $_COOKIE[$k];
3328
+                $_SERVER['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3329
+                $_ENV['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3330
+                $_COOKIE[$k] = $mask;
3331
+            }
3332
+        }
3333
+        phpinfo();
3334
+        foreach ($cookies_backup as $k => $v) {
3335
+            $_COOKIE[$k] = $v;
3336
+        }
3337
+        foreach ($server_backup as $k => $v) {
3338
+            $_SERVER[$k] = $v;
3339
+        }
3340
+        foreach ($env_backup as $k => $v) {
3341
+            $_ENV[$k] = $v;
3342
+        }
3343
+    } else {
3344
+        include_spip('inc/filtres');
3345
+        sinon_interdire_acces();
3346
+    }
3348 3347
 }
3349 3348
 
3350 3349
 /**
@@ -3364,13 +3363,13 @@  discard block
 block discarded – undo
3364 3363
  *     - string si $message à false.
3365 3364
  **/
3366 3365
 function erreur_squelette($message = '', $lieu = '') {
3367
-	$debusquer = charger_fonction('debusquer', 'public');
3368
-	if (is_array($lieu)) {
3369
-		include_spip('public/compiler');
3370
-		$lieu = reconstruire_contexte_compil($lieu);
3371
-	}
3366
+    $debusquer = charger_fonction('debusquer', 'public');
3367
+    if (is_array($lieu)) {
3368
+        include_spip('public/compiler');
3369
+        $lieu = reconstruire_contexte_compil($lieu);
3370
+    }
3372 3371
 
3373
-	return $debusquer($message, $lieu);
3372
+    return $debusquer($message, $lieu);
3374 3373
 }
3375 3374
 
3376 3375
 /**
@@ -3407,108 +3406,108 @@  discard block
 block discarded – undo
3407 3406
  *     - ou tableau d'information sur le squelette.
3408 3407
  */
3409 3408
 function recuperer_fond($fond, $contexte = [], $options = [], string $connect = '') {
3410
-	if (!function_exists('evaluer_fond')) {
3411
-		include_spip('public/assembler');
3412
-	}
3413
-	// assurer la compat avec l'ancienne syntaxe
3414
-	// (trim etait le 3eme argument, par defaut a true)
3415
-	if (!is_array($options)) {
3416
-		$options = ['trim' => $options];
3417
-	}
3418
-	if (!isset($options['trim'])) {
3419
-		$options['trim'] = true;
3420
-	}
3421
-
3422
-	if (isset($contexte['connect'])) {
3423
-		$connect = $contexte['connect'];
3424
-		unset($contexte['connect']);
3425
-	}
3426
-
3427
-	$texte = '';
3428
-	$pages = [];
3429
-	$lang_select = '';
3430
-	if (!isset($options['etoile']) or !$options['etoile']) {
3431
-		// Si on a inclus sans fixer le critere de lang, on prend la langue courante
3432
-		if (!isset($contexte['lang'])) {
3433
-			$contexte['lang'] = $GLOBALS['spip_lang'];
3434
-		}
3435
-
3436
-		if ($contexte['lang'] != $GLOBALS['meta']['langue_site']) {
3437
-			$lang_select = lang_select($contexte['lang']);
3438
-		}
3439
-	}
3440
-
3441
-	if (!isset($GLOBALS['_INC_PUBLIC'])) {
3442
-		$GLOBALS['_INC_PUBLIC'] = 0;
3443
-	}
3444
-
3445
-	$GLOBALS['_INC_PUBLIC']++;
3446
-
3447
-	// fix #4235
3448
-	$cache_utilise_session_appelant	= ($GLOBALS['cache_utilise_session'] ?? null);
3449
-
3450
-
3451
-	foreach (is_array($fond) ? $fond : [$fond] as $f) {
3452
-		unset($GLOBALS['cache_utilise_session']);	// fix #4235
3453
-
3454
-		$page = evaluer_fond($f, $contexte, $connect);
3455
-		if ($page === '') {
3456
-			$c = $options['compil'] ?? '';
3457
-			$a = ['fichier' => $f];
3458
-			$erreur = _T('info_erreur_squelette2', $a); // squelette introuvable
3459
-			erreur_squelette($erreur, $c);
3460
-			// eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
3461
-			$page = ['texte' => '', 'erreur' => $erreur];
3462
-		}
3463
-
3464
-		$page = pipeline('recuperer_fond', [
3465
-			'args' => ['fond' => $f, 'contexte' => $contexte, 'options' => $options, 'connect' => $connect],
3466
-			'data' => $page
3467
-		]);
3468
-		if (isset($options['ajax']) and $options['ajax']) {
3469
-			if (!function_exists('encoder_contexte_ajax')) {
3470
-				include_spip('inc/filtres');
3471
-			}
3472
-			$page['texte'] = encoder_contexte_ajax(
3473
-				array_merge(
3474
-					$contexte,
3475
-					['fond' => $f],
3476
-					($connect ? ['connect' => $connect] : [])
3477
-				),
3478
-				'',
3479
-				$page['texte'],
3480
-				$options['ajax']
3481
-			);
3482
-		}
3483
-
3484
-		if (isset($options['raw']) and $options['raw']) {
3485
-			$pages[] = $page;
3486
-		} else {
3487
-			$texte .= $options['trim'] ? rtrim($page['texte'] ?? '') : $page['texte'];
3488
-		}
3489
-
3490
-		// contamination de la session appelante, pour les inclusions statiques
3491
-		if (isset($page['invalideurs']['session'])) {
3492
-			$cache_utilise_session_appelant = $page['invalideurs']['session'];
3493
-		}
3494
-	}
3495
-
3496
-	// restaurer le sessionnement du contexte appelant,
3497
-	// éventuellement contaminé si on vient de récupérer une inclusion statique sessionnée
3498
-	if (isset($cache_utilise_session_appelant)) {
3499
-		$GLOBALS['cache_utilise_session'] = $cache_utilise_session_appelant;
3500
-	}
3501
-
3502
-	$GLOBALS['_INC_PUBLIC']--;
3503
-
3504
-	if ($lang_select) {
3505
-		lang_select();
3506
-	}
3507
-	if (isset($options['raw']) and $options['raw']) {
3508
-		return is_array($fond) ? $pages : reset($pages);
3509
-	} else {
3510
-		return $options['trim'] ? ltrim($texte) : $texte;
3511
-	}
3409
+    if (!function_exists('evaluer_fond')) {
3410
+        include_spip('public/assembler');
3411
+    }
3412
+    // assurer la compat avec l'ancienne syntaxe
3413
+    // (trim etait le 3eme argument, par defaut a true)
3414
+    if (!is_array($options)) {
3415
+        $options = ['trim' => $options];
3416
+    }
3417
+    if (!isset($options['trim'])) {
3418
+        $options['trim'] = true;
3419
+    }
3420
+
3421
+    if (isset($contexte['connect'])) {
3422
+        $connect = $contexte['connect'];
3423
+        unset($contexte['connect']);
3424
+    }
3425
+
3426
+    $texte = '';
3427
+    $pages = [];
3428
+    $lang_select = '';
3429
+    if (!isset($options['etoile']) or !$options['etoile']) {
3430
+        // Si on a inclus sans fixer le critere de lang, on prend la langue courante
3431
+        if (!isset($contexte['lang'])) {
3432
+            $contexte['lang'] = $GLOBALS['spip_lang'];
3433
+        }
3434
+
3435
+        if ($contexte['lang'] != $GLOBALS['meta']['langue_site']) {
3436
+            $lang_select = lang_select($contexte['lang']);
3437
+        }
3438
+    }
3439
+
3440
+    if (!isset($GLOBALS['_INC_PUBLIC'])) {
3441
+        $GLOBALS['_INC_PUBLIC'] = 0;
3442
+    }
3443
+
3444
+    $GLOBALS['_INC_PUBLIC']++;
3445
+
3446
+    // fix #4235
3447
+    $cache_utilise_session_appelant	= ($GLOBALS['cache_utilise_session'] ?? null);
3448
+
3449
+
3450
+    foreach (is_array($fond) ? $fond : [$fond] as $f) {
3451
+        unset($GLOBALS['cache_utilise_session']);	// fix #4235
3452
+
3453
+        $page = evaluer_fond($f, $contexte, $connect);
3454
+        if ($page === '') {
3455
+            $c = $options['compil'] ?? '';
3456
+            $a = ['fichier' => $f];
3457
+            $erreur = _T('info_erreur_squelette2', $a); // squelette introuvable
3458
+            erreur_squelette($erreur, $c);
3459
+            // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
3460
+            $page = ['texte' => '', 'erreur' => $erreur];
3461
+        }
3462
+
3463
+        $page = pipeline('recuperer_fond', [
3464
+            'args' => ['fond' => $f, 'contexte' => $contexte, 'options' => $options, 'connect' => $connect],
3465
+            'data' => $page
3466
+        ]);
3467
+        if (isset($options['ajax']) and $options['ajax']) {
3468
+            if (!function_exists('encoder_contexte_ajax')) {
3469
+                include_spip('inc/filtres');
3470
+            }
3471
+            $page['texte'] = encoder_contexte_ajax(
3472
+                array_merge(
3473
+                    $contexte,
3474
+                    ['fond' => $f],
3475
+                    ($connect ? ['connect' => $connect] : [])
3476
+                ),
3477
+                '',
3478
+                $page['texte'],
3479
+                $options['ajax']
3480
+            );
3481
+        }
3482
+
3483
+        if (isset($options['raw']) and $options['raw']) {
3484
+            $pages[] = $page;
3485
+        } else {
3486
+            $texte .= $options['trim'] ? rtrim($page['texte'] ?? '') : $page['texte'];
3487
+        }
3488
+
3489
+        // contamination de la session appelante, pour les inclusions statiques
3490
+        if (isset($page['invalideurs']['session'])) {
3491
+            $cache_utilise_session_appelant = $page['invalideurs']['session'];
3492
+        }
3493
+    }
3494
+
3495
+    // restaurer le sessionnement du contexte appelant,
3496
+    // éventuellement contaminé si on vient de récupérer une inclusion statique sessionnée
3497
+    if (isset($cache_utilise_session_appelant)) {
3498
+        $GLOBALS['cache_utilise_session'] = $cache_utilise_session_appelant;
3499
+    }
3500
+
3501
+    $GLOBALS['_INC_PUBLIC']--;
3502
+
3503
+    if ($lang_select) {
3504
+        lang_select();
3505
+    }
3506
+    if (isset($options['raw']) and $options['raw']) {
3507
+        return is_array($fond) ? $pages : reset($pages);
3508
+    } else {
3509
+        return $options['trim'] ? ltrim($texte) : $texte;
3510
+    }
3512 3511
 }
3513 3512
 
3514 3513
 /**
@@ -3518,7 +3517,7 @@  discard block
 block discarded – undo
3518 3517
  * @return string
3519 3518
  */
3520 3519
 function trouve_modele($nom) {
3521
-	return trouver_fond($nom, 'modeles/');
3520
+    return trouver_fond($nom, 'modeles/');
3522 3521
 }
3523 3522
 
3524 3523
 /**
@@ -3534,21 +3533,21 @@  discard block
 block discarded – undo
3534 3533
  * @return array|string
3535 3534
  */
3536 3535
 function trouver_fond($nom, $dir = '', $pathinfo = false) {
3537
-	$f = find_in_path($nom . '.' . _EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/') . '/' : '');
3538
-	if (!$pathinfo) {
3539
-		return $f;
3540
-	}
3541
-	// renvoyer un tableau detaille si $pathinfo==true
3542
-	$p = pathinfo($f);
3543
-	if (!isset($p['extension']) or !$p['extension']) {
3544
-		$p['extension'] = _EXTENSION_SQUELETTES;
3545
-	}
3546
-	if (!isset($p['extension']) or !$p['filename']) {
3547
-		$p['filename'] = ($p['basename'] ? substr($p['basename'], 0, -strlen($p['extension']) - 1) : '');
3548
-	}
3549
-	$p['fond'] = ($f ? substr($f, 0, -strlen($p['extension']) - 1) : '');
3536
+    $f = find_in_path($nom . '.' . _EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/') . '/' : '');
3537
+    if (!$pathinfo) {
3538
+        return $f;
3539
+    }
3540
+    // renvoyer un tableau detaille si $pathinfo==true
3541
+    $p = pathinfo($f);
3542
+    if (!isset($p['extension']) or !$p['extension']) {
3543
+        $p['extension'] = _EXTENSION_SQUELETTES;
3544
+    }
3545
+    if (!isset($p['extension']) or !$p['filename']) {
3546
+        $p['filename'] = ($p['basename'] ? substr($p['basename'], 0, -strlen($p['extension']) - 1) : '');
3547
+    }
3548
+    $p['fond'] = ($f ? substr($f, 0, -strlen($p['extension']) - 1) : '');
3550 3549
 
3551
-	return $p;
3550
+    return $p;
3552 3551
 }
3553 3552
 
3554 3553
 /**
@@ -3568,21 +3567,21 @@  discard block
 block discarded – undo
3568 3567
  *     Nom de l'exec, sinon chaîne vide.
3569 3568
  **/
3570 3569
 function tester_url_ecrire($nom) {
3571
-	static $exec = [];
3572
-	if (isset($exec[$nom])) {
3573
-		return $exec[$nom];
3574
-	}
3575
-	// tester si c'est une page en squelette
3576
-	if (trouver_fond($nom, 'prive/squelettes/contenu/')) {
3577
-		return $exec[$nom] = 'fond';
3578
-	} // echafaudage d'un fond !
3579
-	elseif (include_spip('public/styliser_par_z') and z_echafaudable($nom)) {
3580
-		return $exec[$nom] = 'fond';
3581
-	}
3582
-	// attention, il ne faut pas inclure l'exec ici
3583
-	// car sinon #URL_ECRIRE provoque des inclusions
3584
-	// et des define intrusifs potentiels
3585
-	return $exec[$nom] = ((find_in_path("{$nom}.php", 'exec/') or charger_fonction($nom, 'exec', true)) ? $nom : '');
3570
+    static $exec = [];
3571
+    if (isset($exec[$nom])) {
3572
+        return $exec[$nom];
3573
+    }
3574
+    // tester si c'est une page en squelette
3575
+    if (trouver_fond($nom, 'prive/squelettes/contenu/')) {
3576
+        return $exec[$nom] = 'fond';
3577
+    } // echafaudage d'un fond !
3578
+    elseif (include_spip('public/styliser_par_z') and z_echafaudable($nom)) {
3579
+        return $exec[$nom] = 'fond';
3580
+    }
3581
+    // attention, il ne faut pas inclure l'exec ici
3582
+    // car sinon #URL_ECRIRE provoque des inclusions
3583
+    // et des define intrusifs potentiels
3584
+    return $exec[$nom] = ((find_in_path("{$nom}.php", 'exec/') or charger_fonction($nom, 'exec', true)) ? $nom : '');
3586 3585
 }
3587 3586
 
3588 3587
 /**
@@ -3592,8 +3591,8 @@  discard block
 block discarded – undo
3592 3591
  *     true si la constante _VERSION_HTML n'est pas définie ou égale à html5
3593 3592
  **/
3594 3593
 function html5_permis() {
3595
-	return (!defined('_VERSION_HTML')
3596
-		or _VERSION_HTML !== 'html4');
3594
+    return (!defined('_VERSION_HTML')
3595
+        or _VERSION_HTML !== 'html4');
3597 3596
 }
3598 3597
 
3599 3598
 /**
@@ -3603,30 +3602,30 @@  discard block
 block discarded – undo
3603 3602
  * @return array
3604 3603
  */
3605 3604
 function formats_image_acceptables($gd = null, $svg_allowed = true) {
3606
-	$formats = null;
3607
-	if (!is_null($gd)) {
3608
-		$config = ($gd ? 'gd_formats' : 'formats_graphiques');
3609
-		if (isset($GLOBALS['meta'][$config])) {
3610
-			$formats = $GLOBALS['meta'][$config];
3611
-			$formats = explode(',', $formats);
3612
-			$formats = array_filter($formats);
3613
-			$formats = array_map('trim', $formats);
3614
-		}
3615
-	}
3616
-	if (is_null($formats)) {
3617
-		include_spip('inc/filtres_images_lib_mini');
3618
-		$formats = _image_extensions_acceptees_en_entree();
3619
-	}
3620
-
3621
-	if ($svg_allowed) {
3622
-		if (!in_array('svg', $formats)) {
3623
-			$formats[] = 'svg';
3624
-		}
3625
-	}
3626
-	else {
3627
-		$formats = array_diff($formats, ['svg']);
3628
-	}
3629
-	return $formats;
3605
+    $formats = null;
3606
+    if (!is_null($gd)) {
3607
+        $config = ($gd ? 'gd_formats' : 'formats_graphiques');
3608
+        if (isset($GLOBALS['meta'][$config])) {
3609
+            $formats = $GLOBALS['meta'][$config];
3610
+            $formats = explode(',', $formats);
3611
+            $formats = array_filter($formats);
3612
+            $formats = array_map('trim', $formats);
3613
+        }
3614
+    }
3615
+    if (is_null($formats)) {
3616
+        include_spip('inc/filtres_images_lib_mini');
3617
+        $formats = _image_extensions_acceptees_en_entree();
3618
+    }
3619
+
3620
+    if ($svg_allowed) {
3621
+        if (!in_array('svg', $formats)) {
3622
+            $formats[] = 'svg';
3623
+        }
3624
+    }
3625
+    else {
3626
+        $formats = array_diff($formats, ['svg']);
3627
+    }
3628
+    return $formats;
3630 3629
 }
3631 3630
 
3632 3631
 /**
@@ -3635,20 +3634,20 @@  discard block
 block discarded – undo
3635 3634
  * @return array|bool
3636 3635
  */
3637 3636
 function spip_getimagesize($fichier) {
3638
-	if (!$imagesize = @getimagesize($fichier)) {
3639
-		include_spip('inc/svg');
3640
-		if ($attrs = svg_lire_attributs($fichier)) {
3641
-			[$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs);
3642
-			$imagesize = [
3643
-				$width,
3644
-				$height,
3645
-				IMAGETYPE_SVG,
3646
-				"width=\"{$width}\" height=\"{$height}\"",
3647
-				'mime' => 'image/svg+xml'
3648
-			];
3649
-		}
3650
-	}
3651
-	return $imagesize;
3637
+    if (!$imagesize = @getimagesize($fichier)) {
3638
+        include_spip('inc/svg');
3639
+        if ($attrs = svg_lire_attributs($fichier)) {
3640
+            [$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs);
3641
+            $imagesize = [
3642
+                $width,
3643
+                $height,
3644
+                IMAGETYPE_SVG,
3645
+                "width=\"{$width}\" height=\"{$height}\"",
3646
+                'mime' => 'image/svg+xml'
3647
+            ];
3648
+        }
3649
+    }
3650
+    return $imagesize;
3652 3651
 }
3653 3652
 
3654 3653
 /**
@@ -3662,19 +3661,19 @@  discard block
 block discarded – undo
3662 3661
  * @param string $statut
3663 3662
  */
3664 3663
 function avertir_auteurs($nom, $message, $statut = '') {
3665
-	$alertes = $GLOBALS['meta']['message_alertes_auteurs'];
3666
-	if (
3667
-		!$alertes
3668
-		or !is_array($alertes = unserialize($alertes))
3669
-	) {
3670
-		$alertes = [];
3671
-	}
3664
+    $alertes = $GLOBALS['meta']['message_alertes_auteurs'];
3665
+    if (
3666
+        !$alertes
3667
+        or !is_array($alertes = unserialize($alertes))
3668
+    ) {
3669
+        $alertes = [];
3670
+    }
3672 3671
 
3673
-	if (!isset($alertes[$statut])) {
3674
-		$alertes[$statut] = [];
3675
-	}
3676
-	$alertes[$statut][$nom] = $message;
3677
-	ecrire_meta('message_alertes_auteurs', serialize($alertes));
3672
+    if (!isset($alertes[$statut])) {
3673
+        $alertes[$statut] = [];
3674
+    }
3675
+    $alertes[$statut][$nom] = $message;
3676
+    ecrire_meta('message_alertes_auteurs', serialize($alertes));
3678 3677
 }
3679 3678
 
3680 3679
 /**
@@ -3688,10 +3687,10 @@  discard block
 block discarded – undo
3688 3687
  * @return string|string[]
3689 3688
  */
3690 3689
 function spip_sanitize_classname($classes) {
3691
-	if (is_array($classes)) {
3692
-		return array_map('spip_sanitize_classname', $classes);
3693
-	}
3694
-	return preg_replace('/[^ 0-9a-z_\-+@]/i', '', $classes);
3690
+    if (is_array($classes)) {
3691
+        return array_map('spip_sanitize_classname', $classes);
3692
+    }
3693
+    return preg_replace('/[^ 0-9a-z_\-+@]/i', '', $classes);
3695 3694
 }
3696 3695
 
3697 3696
 
@@ -3716,32 +3715,32 @@  discard block
 block discarded – undo
3716 3715
  *    Avec operateur : bool.
3717 3716
  **/
3718 3717
 function spip_version_compare($v1, $v2, $op = null) {
3719
-	$v1 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v1));
3720
-	$v2 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v2));
3721
-	$v1 = str_replace('rc', 'RC', $v1); // certaines versions de PHP ne comprennent RC qu'en majuscule
3722
-	$v2 = str_replace('rc', 'RC', $v2); // certaines versions de PHP ne comprennent RC qu'en majuscule
3723
-
3724
-	$v1 = explode('.', $v1);
3725
-	$v2 = explode('.', $v2);
3726
-	// $v1 est toujours une version, donc sans etoile
3727
-	while (count($v1) < count($v2)) {
3728
-		$v1[] = '0';
3729
-	}
3730
-
3731
-	// $v2 peut etre une borne, donc accepte l'etoile
3732
-	$etoile = false;
3733
-	foreach ($v1 as $k => $v) {
3734
-		if (!isset($v2[$k])) {
3735
-			$v2[] = ($etoile and (is_numeric($v) or $v == 'pl' or $v == 'p')) ? $v : '0';
3736
-		} else {
3737
-			if ($v2[$k] == '*') {
3738
-				$etoile = true;
3739
-				$v2[$k] = $v;
3740
-			}
3741
-		}
3742
-	}
3743
-	$v1 = implode('.', $v1);
3744
-	$v2 = implode('.', $v2);
3745
-
3746
-	return $op ? version_compare($v1, $v2, $op) : version_compare($v1, $v2);
3718
+    $v1 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v1));
3719
+    $v2 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v2));
3720
+    $v1 = str_replace('rc', 'RC', $v1); // certaines versions de PHP ne comprennent RC qu'en majuscule
3721
+    $v2 = str_replace('rc', 'RC', $v2); // certaines versions de PHP ne comprennent RC qu'en majuscule
3722
+
3723
+    $v1 = explode('.', $v1);
3724
+    $v2 = explode('.', $v2);
3725
+    // $v1 est toujours une version, donc sans etoile
3726
+    while (count($v1) < count($v2)) {
3727
+        $v1[] = '0';
3728
+    }
3729
+
3730
+    // $v2 peut etre une borne, donc accepte l'etoile
3731
+    $etoile = false;
3732
+    foreach ($v1 as $k => $v) {
3733
+        if (!isset($v2[$k])) {
3734
+            $v2[] = ($etoile and (is_numeric($v) or $v == 'pl' or $v == 'p')) ? $v : '0';
3735
+        } else {
3736
+            if ($v2[$k] == '*') {
3737
+                $etoile = true;
3738
+                $v2[$k] = $v;
3739
+            }
3740
+        }
3741
+    }
3742
+    $v1 = implode('.', $v1);
3743
+    $v2 = implode('.', $v2);
3744
+
3745
+    return $op ? version_compare($v1, $v2, $op) : version_compare($v1, $v2);
3747 3746
 }
Please login to merge, or discard this patch.
ecrire/action/editer_article.php 1 patch
Indentation   +371 added lines, -371 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
 /**
@@ -39,36 +39,36 @@  discard block
 block discarded – undo
39 39
  *     Liste (identifiant de l'article, texte d'erreur éventuel)
40 40
  */
41 41
 function action_editer_article_dist($arg = null) {
42
-	include_spip('inc/autoriser');
43
-	$err = '';
44
-	if (is_null($arg)) {
45
-		$securiser_action = charger_fonction('securiser_action', 'inc');
46
-		$arg = $securiser_action();
47
-	}
48
-
49
-	// si id_article n'est pas un nombre, c'est une creation
50
-	// mais on verifie qu'on a toutes les donnees qu'il faut.
51
-	if (!$id_article = intval($arg)) {
52
-		$id_parent = _request('id_parent');
53
-		if (!$id_parent) {
54
-			$err = _L("creation interdite d'un article sans rubrique");
55
-		} elseif (!autoriser('creerarticledans', 'rubrique', $id_parent)) {
56
-			$err = _T('info_creerdansrubrique_non_autorise');
57
-		} else {
58
-			$id_article = article_inserer($id_parent);
59
-		}
60
-	}
61
-
62
-	// Enregistre l'envoi dans la BD
63
-	if ($id_article > 0) {
64
-		$err = article_modifier($id_article);
65
-	}
66
-
67
-	if ($err) {
68
-		spip_log("echec editeur article: $err", _LOG_ERREUR);
69
-	}
70
-
71
-	return [$id_article, $err];
42
+    include_spip('inc/autoriser');
43
+    $err = '';
44
+    if (is_null($arg)) {
45
+        $securiser_action = charger_fonction('securiser_action', 'inc');
46
+        $arg = $securiser_action();
47
+    }
48
+
49
+    // si id_article n'est pas un nombre, c'est une creation
50
+    // mais on verifie qu'on a toutes les donnees qu'il faut.
51
+    if (!$id_article = intval($arg)) {
52
+        $id_parent = _request('id_parent');
53
+        if (!$id_parent) {
54
+            $err = _L("creation interdite d'un article sans rubrique");
55
+        } elseif (!autoriser('creerarticledans', 'rubrique', $id_parent)) {
56
+            $err = _T('info_creerdansrubrique_non_autorise');
57
+        } else {
58
+            $id_article = article_inserer($id_parent);
59
+        }
60
+    }
61
+
62
+    // Enregistre l'envoi dans la BD
63
+    if ($id_article > 0) {
64
+        $err = article_modifier($id_article);
65
+    }
66
+
67
+    if ($err) {
68
+        spip_log("echec editeur article: $err", _LOG_ERREUR);
69
+    }
70
+
71
+    return [$id_article, $err];
72 72
 }
73 73
 
74 74
 /**
@@ -90,50 +90,50 @@  discard block
 block discarded – undo
90 90
  */
91 91
 function article_modifier($id_article, $set = null) {
92 92
 
93
-	// unifier $texte en cas de texte trop long
94
-	trop_longs_articles();
95
-
96
-	include_spip('inc/modifier');
97
-	include_spip('inc/filtres');
98
-	$c = collecter_requests(
99
-		// include list
100
-		objet_info('article', 'champs_editables'),
101
-		// exclude list
102
-		['date', 'statut', 'id_parent'],
103
-		// donnees eventuellement fournies
104
-		$set
105
-	);
106
-
107
-	// Si l'article est publie, invalider les caches et demander sa reindexation
108
-	$t = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id_article));
109
-	$invalideur = $indexation = false;
110
-	if ($t == 'publie') {
111
-		$invalideur = "id='article/$id_article'";
112
-		$indexation = true;
113
-	}
114
-
115
-	if (
116
-		$err = objet_modifier_champs(
117
-			'article',
118
-			$id_article,
119
-			[
120
-			'data' => $set,
121
-			'nonvide' => ['titre' => _T('info_nouvel_article') . ' ' . _T('info_numero_abbreviation') . $id_article],
122
-			'invalideur' => $invalideur,
123
-			'indexation' => $indexation,
124
-			'date_modif' => 'date_modif' // champ a mettre a date('Y-m-d H:i:s') s'il y a modif
125
-			],
126
-			$c
127
-		)
128
-	) {
129
-		return $err;
130
-	}
131
-
132
-	// Modification de statut, changement de rubrique ?
133
-	$c = collecter_requests(['date', 'statut', 'id_parent'], [], $set);
134
-	$err = article_instituer($id_article, $c);
135
-
136
-	return $err;
93
+    // unifier $texte en cas de texte trop long
94
+    trop_longs_articles();
95
+
96
+    include_spip('inc/modifier');
97
+    include_spip('inc/filtres');
98
+    $c = collecter_requests(
99
+        // include list
100
+        objet_info('article', 'champs_editables'),
101
+        // exclude list
102
+        ['date', 'statut', 'id_parent'],
103
+        // donnees eventuellement fournies
104
+        $set
105
+    );
106
+
107
+    // Si l'article est publie, invalider les caches et demander sa reindexation
108
+    $t = sql_getfetsel('statut', 'spip_articles', 'id_article=' . intval($id_article));
109
+    $invalideur = $indexation = false;
110
+    if ($t == 'publie') {
111
+        $invalideur = "id='article/$id_article'";
112
+        $indexation = true;
113
+    }
114
+
115
+    if (
116
+        $err = objet_modifier_champs(
117
+            'article',
118
+            $id_article,
119
+            [
120
+            'data' => $set,
121
+            'nonvide' => ['titre' => _T('info_nouvel_article') . ' ' . _T('info_numero_abbreviation') . $id_article],
122
+            'invalideur' => $invalideur,
123
+            'indexation' => $indexation,
124
+            'date_modif' => 'date_modif' // champ a mettre a date('Y-m-d H:i:s') s'il y a modif
125
+            ],
126
+            $c
127
+        )
128
+    ) {
129
+        return $err;
130
+    }
131
+
132
+    // Modification de statut, changement de rubrique ?
133
+    $c = collecter_requests(['date', 'statut', 'id_parent'], [], $set);
134
+    $err = article_instituer($id_article, $c);
135
+
136
+    return $err;
137 137
 }
138 138
 
139 139
 /**
@@ -169,120 +169,120 @@  discard block
 block discarded – undo
169 169
  */
170 170
 function article_inserer($id_rubrique, $set = null) {
171 171
 
172
-	// Si id_rubrique vaut 0 ou n'est pas definie, creer l'article
173
-	// dans la premiere rubrique racine
174
-	if (!$id_rubrique = intval($id_rubrique)) {
175
-		$row = sql_fetsel('id_rubrique, id_secteur, lang', 'spip_rubriques', 'id_parent=0', '', '0+titre,titre', '1');
176
-		$id_rubrique = $row['id_rubrique'];
177
-	} else {
178
-		$row = sql_fetsel('lang, id_secteur', 'spip_rubriques', "id_rubrique=$id_rubrique");
179
-	}
180
-
181
-	// eviter $id_secteur = NULL (erreur sqlite) si la requete precedente echoue
182
-	// cas de id_rubrique = -1 par exemple avec plugin "pages"
183
-	$id_secteur = $row['id_secteur'] ?? 0;
184
-	$lang_rub = $row['lang'] ?? '';
185
-
186
-	$lang = '';
187
-	$choisie = 'non';
188
-	// La langue a la creation : si les liens de traduction sont autorises
189
-	// dans les rubriques, on essaie avec la langue de l'auteur,
190
-	// ou a defaut celle de la rubrique
191
-	// Sinon c'est la langue de la rubrique qui est choisie + heritee
192
-	if (
193
-		!empty($GLOBALS['meta']['multi_objets']) and in_array(
194
-			'spip_articles',
195
-			explode(',', $GLOBALS['meta']['multi_objets'])
196
-		)
197
-	) {
198
-		lang_select($GLOBALS['visiteur_session']['lang']);
199
-		if (
200
-			in_array(
201
-				$GLOBALS['spip_lang'],
202
-				explode(',', $GLOBALS['meta']['langues_multilingue'])
203
-			)
204
-		) {
205
-			$lang = $GLOBALS['spip_lang'];
206
-			$choisie = 'oui';
207
-		}
208
-	}
209
-
210
-	if (!$lang) {
211
-		$choisie = 'non';
212
-		$lang = $lang_rub ?: $GLOBALS['meta']['langue_site'];
213
-	}
214
-
215
-	$champs = [
216
-		'id_rubrique' => $id_rubrique,
217
-		'id_secteur' => $id_secteur,
218
-		'statut' => 'prepa',
219
-		'date' => date('Y-m-d H:i:s'),
220
-		'lang' => $lang,
221
-		'langue_choisie' => $choisie
222
-	];
223
-
224
-	if ($set) {
225
-		$champs = array_merge($champs, $set);
226
-	}
227
-
228
-	// Envoyer aux plugins
229
-	$champs = pipeline(
230
-		'pre_insertion',
231
-		[
232
-			'args' => [
233
-				'table' => 'spip_articles',
234
-			],
235
-			'data' => $champs
236
-		]
237
-	);
238
-
239
-	$id_article = sql_insertq('spip_articles', $champs);
240
-
241
-	// controler si le serveur n'a pas renvoye une erreur
242
-	if ($id_article > 0) {
243
-		$id_auteur = ((is_null(_request('id_auteur')) and isset($GLOBALS['visiteur_session']['id_auteur'])) ?
244
-			$GLOBALS['visiteur_session']['id_auteur']
245
-			: _request('id_auteur'));
246
-		if ($id_auteur) {
247
-			include_spip('action/editer_auteur');
248
-			auteur_associer($id_auteur, ['article' => $id_article]);
249
-		}
250
-	}
251
-
252
-	pipeline(
253
-		'post_insertion',
254
-		[
255
-			'args' => [
256
-				'table' => 'spip_articles',
257
-				'id_objet' => $id_article
258
-			],
259
-			'data' => $champs
260
-		]
261
-	);
172
+    // Si id_rubrique vaut 0 ou n'est pas definie, creer l'article
173
+    // dans la premiere rubrique racine
174
+    if (!$id_rubrique = intval($id_rubrique)) {
175
+        $row = sql_fetsel('id_rubrique, id_secteur, lang', 'spip_rubriques', 'id_parent=0', '', '0+titre,titre', '1');
176
+        $id_rubrique = $row['id_rubrique'];
177
+    } else {
178
+        $row = sql_fetsel('lang, id_secteur', 'spip_rubriques', "id_rubrique=$id_rubrique");
179
+    }
180
+
181
+    // eviter $id_secteur = NULL (erreur sqlite) si la requete precedente echoue
182
+    // cas de id_rubrique = -1 par exemple avec plugin "pages"
183
+    $id_secteur = $row['id_secteur'] ?? 0;
184
+    $lang_rub = $row['lang'] ?? '';
185
+
186
+    $lang = '';
187
+    $choisie = 'non';
188
+    // La langue a la creation : si les liens de traduction sont autorises
189
+    // dans les rubriques, on essaie avec la langue de l'auteur,
190
+    // ou a defaut celle de la rubrique
191
+    // Sinon c'est la langue de la rubrique qui est choisie + heritee
192
+    if (
193
+        !empty($GLOBALS['meta']['multi_objets']) and in_array(
194
+            'spip_articles',
195
+            explode(',', $GLOBALS['meta']['multi_objets'])
196
+        )
197
+    ) {
198
+        lang_select($GLOBALS['visiteur_session']['lang']);
199
+        if (
200
+            in_array(
201
+                $GLOBALS['spip_lang'],
202
+                explode(',', $GLOBALS['meta']['langues_multilingue'])
203
+            )
204
+        ) {
205
+            $lang = $GLOBALS['spip_lang'];
206
+            $choisie = 'oui';
207
+        }
208
+    }
209
+
210
+    if (!$lang) {
211
+        $choisie = 'non';
212
+        $lang = $lang_rub ?: $GLOBALS['meta']['langue_site'];
213
+    }
214
+
215
+    $champs = [
216
+        'id_rubrique' => $id_rubrique,
217
+        'id_secteur' => $id_secteur,
218
+        'statut' => 'prepa',
219
+        'date' => date('Y-m-d H:i:s'),
220
+        'lang' => $lang,
221
+        'langue_choisie' => $choisie
222
+    ];
223
+
224
+    if ($set) {
225
+        $champs = array_merge($champs, $set);
226
+    }
227
+
228
+    // Envoyer aux plugins
229
+    $champs = pipeline(
230
+        'pre_insertion',
231
+        [
232
+            'args' => [
233
+                'table' => 'spip_articles',
234
+            ],
235
+            'data' => $champs
236
+        ]
237
+    );
238
+
239
+    $id_article = sql_insertq('spip_articles', $champs);
240
+
241
+    // controler si le serveur n'a pas renvoye une erreur
242
+    if ($id_article > 0) {
243
+        $id_auteur = ((is_null(_request('id_auteur')) and isset($GLOBALS['visiteur_session']['id_auteur'])) ?
244
+            $GLOBALS['visiteur_session']['id_auteur']
245
+            : _request('id_auteur'));
246
+        if ($id_auteur) {
247
+            include_spip('action/editer_auteur');
248
+            auteur_associer($id_auteur, ['article' => $id_article]);
249
+        }
250
+    }
251
+
252
+    pipeline(
253
+        'post_insertion',
254
+        [
255
+            'args' => [
256
+                'table' => 'spip_articles',
257
+                'id_objet' => $id_article
258
+            ],
259
+            'data' => $champs
260
+        ]
261
+    );
262 262
 	
263
-	// Appeler une notification
264
-	if ($notifications = charger_fonction('notifications', 'inc')) {
265
-		$notifications(
266
-			'article_inserer',
267
-			$id_article,
268
-			[
269
-				'id_parent' => $id_rubrique,
270
-				'champs' => $champs,
271
-			]
272
-		);
273
-		$notifications(
274
-			'objet_inserer',
275
-			$id_article,
276
-			[
277
-				'objet' => 'article',
278
-				'id_objet' => $id_article,
279
-				'id_parent' => $id_rubrique,
280
-				'champs' => $champs,
281
-			]
282
-		);
283
-	}
284
-
285
-	return $id_article;
263
+    // Appeler une notification
264
+    if ($notifications = charger_fonction('notifications', 'inc')) {
265
+        $notifications(
266
+            'article_inserer',
267
+            $id_article,
268
+            [
269
+                'id_parent' => $id_rubrique,
270
+                'champs' => $champs,
271
+            ]
272
+        );
273
+        $notifications(
274
+            'objet_inserer',
275
+            $id_article,
276
+            [
277
+                'objet' => 'article',
278
+                'id_objet' => $id_article,
279
+                'id_parent' => $id_rubrique,
280
+                'champs' => $champs,
281
+            ]
282
+        );
283
+    }
284
+
285
+    return $id_article;
286 286
 }
287 287
 
288 288
 
@@ -310,153 +310,153 @@  discard block
 block discarded – undo
310 310
  */
311 311
 function article_instituer($id_article, $c, $calcul_rub = true) {
312 312
 
313
-	include_spip('inc/autoriser');
314
-	include_spip('inc/rubriques');
315
-	include_spip('inc/modifier');
316
-
317
-	$row = sql_fetsel('statut, date, id_rubrique', 'spip_articles', "id_article=$id_article");
318
-	$id_rubrique = $row['id_rubrique'];
319
-	$statut_ancien = $statut = $row['statut'];
320
-	$date_ancienne = $date = $row['date'];
321
-	$champs = [];
322
-
323
-	$d = $c['date'] ?? null;
324
-	$s = $c['statut'] ?? $statut;
325
-
326
-	// cf autorisations dans inc/instituer_article
327
-	if ($s != $statut or ($d and $d != $date)) {
328
-		if (autoriser('publierdans', 'rubrique', $id_rubrique)) {
329
-			$statut = $champs['statut'] = $s;
330
-		} elseif (autoriser('modifier', 'article', $id_article) and $s != 'publie') {
331
-			$statut = $champs['statut'] = $s;
332
-		} else {
333
-			spip_log("editer_article $id_article refus " . join(' ', $c));
334
-		}
335
-
336
-		// En cas de publication, fixer la date a "maintenant"
337
-		// sauf si $c commande autre chose
338
-		// ou si l'article est deja date dans le futur
339
-		// En cas de proposition d'un article (mais pas depublication), idem
340
-		if (
341
-			$champs['statut'] == 'publie'
342
-			or ($champs['statut'] == 'prop' and ($d or !in_array($statut_ancien, ['publie', 'prop'])))
343
-		) {
344
-			if ($d or strtotime($d = $date) > time()) {
345
-				$champs['date'] = $date = $d;
346
-			} else {
347
-				$champs['date'] = $date = date('Y-m-d H:i:s');
348
-			}
349
-		}
350
-	}
351
-
352
-	// Verifier que la rubrique demandee existe et est differente
353
-	// de la rubrique actuelle
354
-	if (
355
-		isset($c['id_parent'])
356
-		and $id_parent = $c['id_parent']
357
-		and $id_parent != $id_rubrique
358
-		and (sql_fetsel('1', 'spip_rubriques', 'id_rubrique=' . intval($id_parent)))
359
-	) {
360
-		$champs['id_rubrique'] = $id_parent;
361
-
362
-		// si l'article etait publie
363
-		// et que le demandeur n'est pas admin de la rubrique de destination
364
-		// repasser l'article en statut 'propose'.
365
-		if (
366
-			$statut == 'publie'
367
-			and !autoriser('publierdans', 'rubrique', $id_parent)
368
-		) {
369
-			$champs['statut'] = 'prop';
370
-		}
371
-	}
372
-
373
-	// Envoyer aux plugins
374
-	$champs = pipeline(
375
-		'pre_edition',
376
-		[
377
-			'args' => [
378
-				'table' => 'spip_articles',
379
-				'id_objet' => $id_article,
380
-				'action' => 'instituer',
381
-				'statut_ancien' => $statut_ancien,
382
-				'date_ancienne' => $date_ancienne,
383
-			],
384
-			'data' => $champs
385
-		]
386
-	);
387
-
388
-	if (!(is_countable($champs) ? count($champs) : 0)) {
389
-		return '';
390
-	}
391
-
392
-	// Envoyer les modifs.
393
-	editer_article_heritage($id_article, $id_rubrique, $statut_ancien, $champs, $calcul_rub);
394
-
395
-	// Invalider les caches
396
-	include_spip('inc/invalideur');
397
-	suivre_invalideur("id='article/$id_article'");
398
-
399
-	if ($date) {
400
-		$t = strtotime($date);
401
-		$p = @$GLOBALS['meta']['date_prochain_postdate'];
402
-		if ($t > time() and (!$p or ($t < $p))) {
403
-			ecrire_meta('date_prochain_postdate', $t);
404
-		}
405
-	}
406
-
407
-	// Pipeline
408
-	pipeline(
409
-		'post_edition',
410
-		[
411
-			'args' => [
412
-				'table' => 'spip_articles',
413
-				'id_objet' => $id_article,
414
-				'action' => 'instituer',
415
-				'statut_ancien' => $statut_ancien,
416
-				'date_ancienne' => $date_ancienne,
417
-			],
418
-			'data' => $champs
419
-		]
420
-	);
421
-
422
-	// Notifications
423
-	if ($notifications = charger_fonction('notifications', 'inc')) {
424
-		$notifications(
425
-			'article_instituer',
426
-			$id_article,
427
-			[
428
-				'statut' => $statut,
429
-				'statut_ancien' => $statut_ancien,
430
-				'date' => $date,
431
-				'date_ancienne' => $date_ancienne,
432
-				'id_parent_ancien' => $id_rubrique,
433
-				'champs' => $champs,
434
-			]
435
-		);
436
-		$notifications(
437
-			'objet_instituer',
438
-			$id_article,
439
-			[
440
-				'objet' => 'article',
441
-				'id_objet' => $id_article,
442
-				'statut' => $statut,
443
-				'statut_ancien' => $statut_ancien,
444
-				'date' => $date,
445
-				'date_ancienne' => $date_ancienne,
446
-				'id_parent_ancien' => $id_rubrique,
447
-				'champs' => $champs,
448
-			]
449
-		);
313
+    include_spip('inc/autoriser');
314
+    include_spip('inc/rubriques');
315
+    include_spip('inc/modifier');
316
+
317
+    $row = sql_fetsel('statut, date, id_rubrique', 'spip_articles', "id_article=$id_article");
318
+    $id_rubrique = $row['id_rubrique'];
319
+    $statut_ancien = $statut = $row['statut'];
320
+    $date_ancienne = $date = $row['date'];
321
+    $champs = [];
322
+
323
+    $d = $c['date'] ?? null;
324
+    $s = $c['statut'] ?? $statut;
325
+
326
+    // cf autorisations dans inc/instituer_article
327
+    if ($s != $statut or ($d and $d != $date)) {
328
+        if (autoriser('publierdans', 'rubrique', $id_rubrique)) {
329
+            $statut = $champs['statut'] = $s;
330
+        } elseif (autoriser('modifier', 'article', $id_article) and $s != 'publie') {
331
+            $statut = $champs['statut'] = $s;
332
+        } else {
333
+            spip_log("editer_article $id_article refus " . join(' ', $c));
334
+        }
335
+
336
+        // En cas de publication, fixer la date a "maintenant"
337
+        // sauf si $c commande autre chose
338
+        // ou si l'article est deja date dans le futur
339
+        // En cas de proposition d'un article (mais pas depublication), idem
340
+        if (
341
+            $champs['statut'] == 'publie'
342
+            or ($champs['statut'] == 'prop' and ($d or !in_array($statut_ancien, ['publie', 'prop'])))
343
+        ) {
344
+            if ($d or strtotime($d = $date) > time()) {
345
+                $champs['date'] = $date = $d;
346
+            } else {
347
+                $champs['date'] = $date = date('Y-m-d H:i:s');
348
+            }
349
+        }
350
+    }
351
+
352
+    // Verifier que la rubrique demandee existe et est differente
353
+    // de la rubrique actuelle
354
+    if (
355
+        isset($c['id_parent'])
356
+        and $id_parent = $c['id_parent']
357
+        and $id_parent != $id_rubrique
358
+        and (sql_fetsel('1', 'spip_rubriques', 'id_rubrique=' . intval($id_parent)))
359
+    ) {
360
+        $champs['id_rubrique'] = $id_parent;
361
+
362
+        // si l'article etait publie
363
+        // et que le demandeur n'est pas admin de la rubrique de destination
364
+        // repasser l'article en statut 'propose'.
365
+        if (
366
+            $statut == 'publie'
367
+            and !autoriser('publierdans', 'rubrique', $id_parent)
368
+        ) {
369
+            $champs['statut'] = 'prop';
370
+        }
371
+    }
372
+
373
+    // Envoyer aux plugins
374
+    $champs = pipeline(
375
+        'pre_edition',
376
+        [
377
+            'args' => [
378
+                'table' => 'spip_articles',
379
+                'id_objet' => $id_article,
380
+                'action' => 'instituer',
381
+                'statut_ancien' => $statut_ancien,
382
+                'date_ancienne' => $date_ancienne,
383
+            ],
384
+            'data' => $champs
385
+        ]
386
+    );
387
+
388
+    if (!(is_countable($champs) ? count($champs) : 0)) {
389
+        return '';
390
+    }
391
+
392
+    // Envoyer les modifs.
393
+    editer_article_heritage($id_article, $id_rubrique, $statut_ancien, $champs, $calcul_rub);
394
+
395
+    // Invalider les caches
396
+    include_spip('inc/invalideur');
397
+    suivre_invalideur("id='article/$id_article'");
398
+
399
+    if ($date) {
400
+        $t = strtotime($date);
401
+        $p = @$GLOBALS['meta']['date_prochain_postdate'];
402
+        if ($t > time() and (!$p or ($t < $p))) {
403
+            ecrire_meta('date_prochain_postdate', $t);
404
+        }
405
+    }
406
+
407
+    // Pipeline
408
+    pipeline(
409
+        'post_edition',
410
+        [
411
+            'args' => [
412
+                'table' => 'spip_articles',
413
+                'id_objet' => $id_article,
414
+                'action' => 'instituer',
415
+                'statut_ancien' => $statut_ancien,
416
+                'date_ancienne' => $date_ancienne,
417
+            ],
418
+            'data' => $champs
419
+        ]
420
+    );
421
+
422
+    // Notifications
423
+    if ($notifications = charger_fonction('notifications', 'inc')) {
424
+        $notifications(
425
+            'article_instituer',
426
+            $id_article,
427
+            [
428
+                'statut' => $statut,
429
+                'statut_ancien' => $statut_ancien,
430
+                'date' => $date,
431
+                'date_ancienne' => $date_ancienne,
432
+                'id_parent_ancien' => $id_rubrique,
433
+                'champs' => $champs,
434
+            ]
435
+        );
436
+        $notifications(
437
+            'objet_instituer',
438
+            $id_article,
439
+            [
440
+                'objet' => 'article',
441
+                'id_objet' => $id_article,
442
+                'statut' => $statut,
443
+                'statut_ancien' => $statut_ancien,
444
+                'date' => $date,
445
+                'date_ancienne' => $date_ancienne,
446
+                'id_parent_ancien' => $id_rubrique,
447
+                'champs' => $champs,
448
+            ]
449
+        );
450 450
 		
451
-		// Rétro-compat
452
-		$notifications(
453
-			'instituerarticle',
454
-			$id_article,
455
-			['statut' => $statut, 'statut_ancien' => $statut_ancien, 'date' => $date, 'date_ancienne' => $date_ancienne]
456
-		);
457
-	}
458
-
459
-	return ''; // pas d'erreur
451
+        // Rétro-compat
452
+        $notifications(
453
+            'instituerarticle',
454
+            $id_article,
455
+            ['statut' => $statut, 'statut_ancien' => $statut_ancien, 'date' => $date, 'date_ancienne' => $date_ancienne]
456
+        );
457
+    }
458
+
459
+    return ''; // pas d'erreur
460 460
 }
461 461
 
462 462
 /**
@@ -481,37 +481,37 @@  discard block
 block discarded – undo
481 481
  */
482 482
 function editer_article_heritage($id_article, $id_rubrique, $statut, $champs, $cond = true) {
483 483
 
484
-	// Si on deplace l'article
485
-	//  changer aussi son secteur et sa langue (si heritee)
486
-	if (isset($champs['id_rubrique'])) {
487
-		$row_rub = sql_fetsel('id_secteur, lang', 'spip_rubriques', 'id_rubrique=' . sql_quote($champs['id_rubrique']));
488
-
489
-		$langue = $row_rub['lang'];
490
-		$champs['id_secteur'] = $row_rub['id_secteur'];
491
-		if (
492
-			sql_fetsel(
493
-				'1',
494
-				'spip_articles',
495
-				'id_article=' . intval($id_article) . " AND langue_choisie<>'oui' AND lang<>" . sql_quote($langue)
496
-			)
497
-		) {
498
-			$champs['lang'] = $langue;
499
-		}
500
-	}
501
-
502
-	if (!$champs) {
503
-		return;
504
-	}
505
-
506
-	sql_updateq('spip_articles', $champs, 'id_article=' . intval($id_article));
507
-
508
-	// Changer le statut des rubriques concernees
509
-
510
-	if ($cond) {
511
-		include_spip('inc/rubriques');
512
-		$postdate = ($GLOBALS['meta']['post_dates'] == 'non' and isset($champs['date']) and (strtotime($champs['date']) < time())) ? $champs['date'] : false;
513
-		calculer_rubriques_if($id_rubrique, $champs, ['statut_ancien' => $statut], $postdate);
514
-	}
484
+    // Si on deplace l'article
485
+    //  changer aussi son secteur et sa langue (si heritee)
486
+    if (isset($champs['id_rubrique'])) {
487
+        $row_rub = sql_fetsel('id_secteur, lang', 'spip_rubriques', 'id_rubrique=' . sql_quote($champs['id_rubrique']));
488
+
489
+        $langue = $row_rub['lang'];
490
+        $champs['id_secteur'] = $row_rub['id_secteur'];
491
+        if (
492
+            sql_fetsel(
493
+                '1',
494
+                'spip_articles',
495
+                'id_article=' . intval($id_article) . " AND langue_choisie<>'oui' AND lang<>" . sql_quote($langue)
496
+            )
497
+        ) {
498
+            $champs['lang'] = $langue;
499
+        }
500
+    }
501
+
502
+    if (!$champs) {
503
+        return;
504
+    }
505
+
506
+    sql_updateq('spip_articles', $champs, 'id_article=' . intval($id_article));
507
+
508
+    // Changer le statut des rubriques concernees
509
+
510
+    if ($cond) {
511
+        include_spip('inc/rubriques');
512
+        $postdate = ($GLOBALS['meta']['post_dates'] == 'non' and isset($champs['date']) and (strtotime($champs['date']) < time())) ? $champs['date'] : false;
513
+        calculer_rubriques_if($id_rubrique, $champs, ['statut_ancien' => $statut], $postdate);
514
+    }
515 515
 }
516 516
 
517 517
 /**
@@ -520,10 +520,10 @@  discard block
 block discarded – undo
520 520
  * @return void
521 521
  */
522 522
 function trop_longs_articles() {
523
-	if (is_array($plus = _request('texte_plus'))) {
524
-		foreach ($plus as $n => $t) {
525
-			$plus[$n] = preg_replace(",<!--SPIP-->[\n\r]*,", '', $t);
526
-		}
527
-		set_request('texte', join('', $plus) . _request('texte'));
528
-	}
523
+    if (is_array($plus = _request('texte_plus'))) {
524
+        foreach ($plus as $n => $t) {
525
+            $plus[$n] = preg_replace(",<!--SPIP-->[\n\r]*,", '', $t);
526
+        }
527
+        set_request('texte', join('', $plus) . _request('texte'));
528
+    }
529 529
 }
Please login to merge, or discard this patch.
ecrire/action/editer_rubrique.php 1 patch
Indentation   +216 added lines, -216 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Rubriques\Edition
17 17
  */
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/rubriques');
@@ -38,34 +38,34 @@  discard block
 block discarded – undo
38 38
  */
39 39
 function action_editer_rubrique_dist($arg = null) {
40 40
 
41
-	if (is_null($arg)) {
42
-		$securiser_action = charger_fonction('securiser_action', 'inc');
43
-		$arg = $securiser_action();
44
-	}
45
-
46
-	if (!$id_rubrique = intval($arg)) {
47
-		if ($arg != 'oui') {
48
-			include_spip('inc/headers');
49
-			redirige_url_ecrire();
50
-		}
51
-		$id_rubrique = rubrique_inserer(_request('id_parent'));
52
-	}
53
-
54
-	$err = rubrique_modifier($id_rubrique);
55
-
56
-	if (_request('redirect')) {
57
-		$redirect = parametre_url(
58
-			urldecode(_request('redirect')),
59
-			'id_rubrique',
60
-			$id_rubrique,
61
-			'&'
62
-		);
63
-
64
-		include_spip('inc/headers');
65
-		redirige_par_entete($redirect);
66
-	}
67
-
68
-	return [$id_rubrique, $err];
41
+    if (is_null($arg)) {
42
+        $securiser_action = charger_fonction('securiser_action', 'inc');
43
+        $arg = $securiser_action();
44
+    }
45
+
46
+    if (!$id_rubrique = intval($arg)) {
47
+        if ($arg != 'oui') {
48
+            include_spip('inc/headers');
49
+            redirige_url_ecrire();
50
+        }
51
+        $id_rubrique = rubrique_inserer(_request('id_parent'));
52
+    }
53
+
54
+    $err = rubrique_modifier($id_rubrique);
55
+
56
+    if (_request('redirect')) {
57
+        $redirect = parametre_url(
58
+            urldecode(_request('redirect')),
59
+            'id_rubrique',
60
+            $id_rubrique,
61
+            '&'
62
+        );
63
+
64
+        include_spip('inc/headers');
65
+        redirige_par_entete($redirect);
66
+    }
67
+
68
+    return [$id_rubrique, $err];
69 69
 }
70 70
 
71 71
 
@@ -80,64 +80,64 @@  discard block
 block discarded – undo
80 80
  *     Identifiant de la rubrique crée
81 81
  */
82 82
 function rubrique_inserer($id_parent, $set = null) {
83
-	$champs = [
84
-		'titre' => _T('item_nouvelle_rubrique'),
85
-		'id_parent' => intval($id_parent),
86
-		'statut' => 'prepa'
87
-	];
88
-
89
-	if ($set) {
90
-		$champs = array_merge($champs, $set);
91
-	}
92
-
93
-	// Envoyer aux plugins
94
-	$champs = pipeline(
95
-		'pre_insertion',
96
-		[
97
-			'args' => [
98
-				'table' => 'spip_rubriques',
99
-			],
100
-			'data' => $champs
101
-		]
102
-	);
103
-
104
-	$id_rubrique = sql_insertq('spip_rubriques', $champs);
105
-	pipeline(
106
-		'post_insertion',
107
-		[
108
-			'args' => [
109
-				'table' => 'spip_rubriques',
110
-				'id_objet' => $id_rubrique
111
-			],
112
-			'data' => $champs
113
-		]
114
-	);
115
-	propager_les_secteurs();
116
-	calculer_langues_rubriques();
117
-
118
-	// Appeler une notification
119
-	if ($notifications = charger_fonction('notifications', 'inc')) {
120
-		$notifications(
121
-			'rubrique_inserer',
122
-			$id_rubrique,
123
-			[
124
-				'id_parent' => $id_parent,
125
-				'champs' => $champs,
126
-			]
127
-		);
128
-		$notifications(
129
-			'objet_inserer',
130
-			$id_rubrique,
131
-			[
132
-				'objet' => 'rubrique',
133
-				'id_objet' => $id_rubrique,
134
-				'id_parent' => $id_parent,
135
-				'champs' => $champs,
136
-			]
137
-		);
138
-	}
83
+    $champs = [
84
+        'titre' => _T('item_nouvelle_rubrique'),
85
+        'id_parent' => intval($id_parent),
86
+        'statut' => 'prepa'
87
+    ];
88
+
89
+    if ($set) {
90
+        $champs = array_merge($champs, $set);
91
+    }
92
+
93
+    // Envoyer aux plugins
94
+    $champs = pipeline(
95
+        'pre_insertion',
96
+        [
97
+            'args' => [
98
+                'table' => 'spip_rubriques',
99
+            ],
100
+            'data' => $champs
101
+        ]
102
+    );
103
+
104
+    $id_rubrique = sql_insertq('spip_rubriques', $champs);
105
+    pipeline(
106
+        'post_insertion',
107
+        [
108
+            'args' => [
109
+                'table' => 'spip_rubriques',
110
+                'id_objet' => $id_rubrique
111
+            ],
112
+            'data' => $champs
113
+        ]
114
+    );
115
+    propager_les_secteurs();
116
+    calculer_langues_rubriques();
117
+
118
+    // Appeler une notification
119
+    if ($notifications = charger_fonction('notifications', 'inc')) {
120
+        $notifications(
121
+            'rubrique_inserer',
122
+            $id_rubrique,
123
+            [
124
+                'id_parent' => $id_parent,
125
+                'champs' => $champs,
126
+            ]
127
+        );
128
+        $notifications(
129
+            'objet_inserer',
130
+            $id_rubrique,
131
+            [
132
+                'objet' => 'rubrique',
133
+                'id_objet' => $id_rubrique,
134
+                'id_parent' => $id_parent,
135
+                'champs' => $champs,
136
+            ]
137
+        );
138
+    }
139 139
 	
140
-	return $id_rubrique;
140
+    return $id_rubrique;
141 141
 }
142 142
 
143 143
 /**
@@ -153,46 +153,46 @@  discard block
 block discarded – undo
153 153
  *     - chaîne : texte d'un message d'erreur
154 154
  */
155 155
 function rubrique_modifier($id_rubrique, $set = null) {
156
-	include_spip('inc/autoriser');
157
-	include_spip('inc/filtres');
158
-
159
-	include_spip('inc/modifier');
160
-	$c = collecter_requests(
161
-		// include list
162
-		objet_info('rubrique', 'champs_editables'),
163
-		// exclude list
164
-		['id_parent', 'confirme_deplace'],
165
-		// donnees eventuellement fournies
166
-		$set
167
-	);
168
-
169
-	if (
170
-		$err = objet_modifier_champs(
171
-			'rubrique',
172
-			$id_rubrique,
173
-			[
174
-			'data' => $set,
175
-			'nonvide' => ['titre' => _T('titre_nouvelle_rubrique') . ' ' . _T('info_numero_abbreviation') . $id_rubrique]
176
-			],
177
-			$c
178
-		)
179
-	) {
180
-		return $err;
181
-	}
182
-
183
-	$c = collecter_requests(['id_parent', 'confirme_deplace'], [], $set);
184
-	// Deplacer la rubrique
185
-	if (isset($c['id_parent'])) {
186
-		$err = rubrique_instituer($id_rubrique, $c);
187
-	}
188
-
189
-	// invalider les caches marques de cette rubrique
190
-	include_spip('inc/invalideur');
191
-	suivre_invalideur("id='rubrique/$id_rubrique'");
192
-	// et celui de menu_rubriques
193
-	effacer_meta('date_calcul_rubriques');
194
-
195
-	return $err;
156
+    include_spip('inc/autoriser');
157
+    include_spip('inc/filtres');
158
+
159
+    include_spip('inc/modifier');
160
+    $c = collecter_requests(
161
+        // include list
162
+        objet_info('rubrique', 'champs_editables'),
163
+        // exclude list
164
+        ['id_parent', 'confirme_deplace'],
165
+        // donnees eventuellement fournies
166
+        $set
167
+    );
168
+
169
+    if (
170
+        $err = objet_modifier_champs(
171
+            'rubrique',
172
+            $id_rubrique,
173
+            [
174
+            'data' => $set,
175
+            'nonvide' => ['titre' => _T('titre_nouvelle_rubrique') . ' ' . _T('info_numero_abbreviation') . $id_rubrique]
176
+            ],
177
+            $c
178
+        )
179
+    ) {
180
+        return $err;
181
+    }
182
+
183
+    $c = collecter_requests(['id_parent', 'confirme_deplace'], [], $set);
184
+    // Deplacer la rubrique
185
+    if (isset($c['id_parent'])) {
186
+        $err = rubrique_instituer($id_rubrique, $c);
187
+    }
188
+
189
+    // invalider les caches marques de cette rubrique
190
+    include_spip('inc/invalideur');
191
+    suivre_invalideur("id='rubrique/$id_rubrique'");
192
+    // et celui de menu_rubriques
193
+    effacer_meta('date_calcul_rubriques');
194
+
195
+    return $err;
196 196
 }
197 197
 
198 198
 /**
@@ -215,29 +215,29 @@  discard block
 block discarded – undo
215 215
  *     false si la confirmation du déplacement n'est pas présente
216 216
  */
217 217
 function editer_rubrique_breves($id_rubrique, $id_parent, $c = []) {
218
-	if (!sql_table_exists('spip_breves')) {
219
-		return true;
220
-	}
221
-
222
-	if (!sql_countsel('spip_breves', "id_rubrique=$id_rubrique")) {
223
-		return true;
224
-	}
225
-
226
-	if (empty($c['confirme_deplace']) or $c['confirme_deplace'] != 'oui') {
227
-		return false;
228
-	}
229
-
230
-	if (
231
-		$id_secteur = sql_getfetsel(
232
-			'id_secteur',
233
-			'spip_rubriques',
234
-			"id_rubrique=$id_parent"
235
-		)
236
-	) {
237
-		sql_updateq('spip_breves', ['id_rubrique' => $id_secteur], "id_rubrique=$id_rubrique");
238
-	}
239
-
240
-	return true;
218
+    if (!sql_table_exists('spip_breves')) {
219
+        return true;
220
+    }
221
+
222
+    if (!sql_countsel('spip_breves', "id_rubrique=$id_rubrique")) {
223
+        return true;
224
+    }
225
+
226
+    if (empty($c['confirme_deplace']) or $c['confirme_deplace'] != 'oui') {
227
+        return false;
228
+    }
229
+
230
+    if (
231
+        $id_secteur = sql_getfetsel(
232
+            'id_secteur',
233
+            'spip_rubriques',
234
+            "id_rubrique=$id_parent"
235
+        )
236
+    ) {
237
+        sql_updateq('spip_breves', ['id_rubrique' => $id_secteur], "id_rubrique=$id_rubrique");
238
+    }
239
+
240
+    return true;
241 241
 }
242 242
 
243 243
 
@@ -259,72 +259,72 @@  discard block
 block discarded – undo
259 259
  *     Chaîne : texte du message d'erreur
260 260
  */
261 261
 function rubrique_instituer($id_rubrique, $c) {
262
-	// traitement de la rubrique parente
263
-	// interdiction de deplacer vers ou a partir d'une rubrique
264
-	// qu'on n'administre pas.
265
-
266
-	if (null !== ($id_parent = $c['id_parent'])) {
267
-		$id_parent = intval($id_parent);
268
-		$filles = calcul_branche_in($id_rubrique);
269
-		if (strpos(",$id_parent,", (string) ",$filles,") !== false) {
270
-			spip_log("La rubrique $id_rubrique ne peut etre fille de sa descendante $id_parent");
271
-		} else {
272
-			$s = sql_fetsel('id_parent, statut', 'spip_rubriques', "id_rubrique=$id_rubrique");
273
-			$old_parent = $s['id_parent'];
274
-
275
-			if (
276
-				!($id_parent != $old_parent
277
-				and autoriser('publierdans', 'rubrique', $id_parent)
278
-				and autoriser('creerrubriquedans', 'rubrique', $id_parent)
279
-				and autoriser('publierdans', 'rubrique', $old_parent)
280
-				)
281
-			) {
282
-				if ($s['statut'] != 'prepa') {
283
-					spip_log("deplacement de $id_rubrique vers $id_parent refuse a " . $GLOBALS['visiteur_session']['id_auteur'] . ' ' . $GLOBALS['visiteur_session']['statut']);
284
-				}
285
-			} elseif (editer_rubrique_breves($id_rubrique, $id_parent, $c)) {
286
-				$statut_ancien = $s['statut'];
287
-				sql_updateq('spip_rubriques', ['id_parent' => $id_parent], "id_rubrique=$id_rubrique");
288
-
289
-
290
-				propager_les_secteurs();
291
-
292
-				// Deplacement d'une rubrique publiee ==> chgt general de leur statut
293
-				if ($statut_ancien == 'publie') {
294
-					calculer_rubriques_if($old_parent, ['id_rubrique' => $id_parent], ['statut_ancien' => $statut_ancien]);
295
-				}
296
-				// Creation ou deplacement d'une rubrique non publiee
297
-				// invalider le cache de leur menu
298
-				elseif (!$statut_ancien || $old_parent != $id_parent) {
299
-					effacer_meta('date_calcul_rubriques');
300
-				}
301
-
302
-				calculer_langues_rubriques();
262
+    // traitement de la rubrique parente
263
+    // interdiction de deplacer vers ou a partir d'une rubrique
264
+    // qu'on n'administre pas.
265
+
266
+    if (null !== ($id_parent = $c['id_parent'])) {
267
+        $id_parent = intval($id_parent);
268
+        $filles = calcul_branche_in($id_rubrique);
269
+        if (strpos(",$id_parent,", (string) ",$filles,") !== false) {
270
+            spip_log("La rubrique $id_rubrique ne peut etre fille de sa descendante $id_parent");
271
+        } else {
272
+            $s = sql_fetsel('id_parent, statut', 'spip_rubriques', "id_rubrique=$id_rubrique");
273
+            $old_parent = $s['id_parent'];
274
+
275
+            if (
276
+                !($id_parent != $old_parent
277
+                and autoriser('publierdans', 'rubrique', $id_parent)
278
+                and autoriser('creerrubriquedans', 'rubrique', $id_parent)
279
+                and autoriser('publierdans', 'rubrique', $old_parent)
280
+                )
281
+            ) {
282
+                if ($s['statut'] != 'prepa') {
283
+                    spip_log("deplacement de $id_rubrique vers $id_parent refuse a " . $GLOBALS['visiteur_session']['id_auteur'] . ' ' . $GLOBALS['visiteur_session']['statut']);
284
+                }
285
+            } elseif (editer_rubrique_breves($id_rubrique, $id_parent, $c)) {
286
+                $statut_ancien = $s['statut'];
287
+                sql_updateq('spip_rubriques', ['id_parent' => $id_parent], "id_rubrique=$id_rubrique");
288
+
289
+
290
+                propager_les_secteurs();
291
+
292
+                // Deplacement d'une rubrique publiee ==> chgt general de leur statut
293
+                if ($statut_ancien == 'publie') {
294
+                    calculer_rubriques_if($old_parent, ['id_rubrique' => $id_parent], ['statut_ancien' => $statut_ancien]);
295
+                }
296
+                // Creation ou deplacement d'une rubrique non publiee
297
+                // invalider le cache de leur menu
298
+                elseif (!$statut_ancien || $old_parent != $id_parent) {
299
+                    effacer_meta('date_calcul_rubriques');
300
+                }
301
+
302
+                calculer_langues_rubriques();
303 303
 				
304
-				// Appeler une notification
305
-				if ($notifications = charger_fonction('notifications', 'inc')) {
306
-					$notifications(
307
-						'rubrique_instituer',
308
-						$id_rubrique,
309
-						[
310
-							'statut_ancien' => $statut_ancien,
311
-							'id_parent_ancien' => $old_parent,
312
-						]
313
-					);
314
-					$notifications(
315
-						'objet_instituer',
316
-						$id_rubrique,
317
-						[
318
-							'objet' => 'rubrique',
319
-							'id_objet' => $id_rubrique,
320
-							'statut_ancien' => $statut_ancien,
321
-							'id_parent_ancien' => $old_parent,
322
-						]
323
-					);
324
-				}
325
-			}
326
-		}
327
-	}
328
-
329
-	return ''; // pas d'erreur
304
+                // Appeler une notification
305
+                if ($notifications = charger_fonction('notifications', 'inc')) {
306
+                    $notifications(
307
+                        'rubrique_instituer',
308
+                        $id_rubrique,
309
+                        [
310
+                            'statut_ancien' => $statut_ancien,
311
+                            'id_parent_ancien' => $old_parent,
312
+                        ]
313
+                    );
314
+                    $notifications(
315
+                        'objet_instituer',
316
+                        $id_rubrique,
317
+                        [
318
+                            'objet' => 'rubrique',
319
+                            'id_objet' => $id_rubrique,
320
+                            'statut_ancien' => $statut_ancien,
321
+                            'id_parent_ancien' => $old_parent,
322
+                        ]
323
+                    );
324
+                }
325
+            }
326
+        }
327
+    }
328
+
329
+    return ''; // pas d'erreur
330 330
 }
Please login to merge, or discard this patch.
ecrire/action/editer_auteur.php 1 patch
Indentation   +318 added lines, -318 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
 /**
@@ -37,41 +37,41 @@  discard block
 block discarded – undo
37 37
  */
38 38
 function action_editer_auteur_dist($arg = null) {
39 39
 
40
-	if (is_null($arg)) {
41
-		$securiser_action = charger_fonction('securiser_action', 'inc');
42
-		$arg = $securiser_action();
43
-	}
44
-
45
-
46
-	// si id_auteur n'est pas un nombre, c'est une creation
47
-	if (!$id_auteur = intval($arg)) {
48
-		if (($id_auteur = auteur_inserer()) > 0) {
49
-			# cf. GROS HACK
50
-			# recuperer l'eventuel logo charge avant la creation
51
-			# ils ont un id = 0-id_auteur de la session
52
-			$id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
53
-			$chercher_logo = charger_fonction('chercher_logo', 'inc');
54
-			foreach (['on', 'off'] as $type) {
55
-				if ($logo = $chercher_logo($id_hack, 'id_auteur', $type)) {
56
-					if ($logo = reset($logo)) {
57
-						rename($logo, str_replace($id_hack, $id_auteur, $logo));
58
-					}
59
-				}
60
-			}
61
-		}
62
-	}
63
-
64
-	// Enregistre l'envoi dans la BD
65
-	$err = '';
66
-	if ($id_auteur > 0) {
67
-		$err = auteur_modifier($id_auteur);
68
-	}
69
-
70
-	if ($err) {
71
-		spip_log("echec editeur auteur: $err", _LOG_ERREUR);
72
-	}
73
-
74
-	return [$id_auteur, $err];
40
+    if (is_null($arg)) {
41
+        $securiser_action = charger_fonction('securiser_action', 'inc');
42
+        $arg = $securiser_action();
43
+    }
44
+
45
+
46
+    // si id_auteur n'est pas un nombre, c'est une creation
47
+    if (!$id_auteur = intval($arg)) {
48
+        if (($id_auteur = auteur_inserer()) > 0) {
49
+            # cf. GROS HACK
50
+            # recuperer l'eventuel logo charge avant la creation
51
+            # ils ont un id = 0-id_auteur de la session
52
+            $id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
53
+            $chercher_logo = charger_fonction('chercher_logo', 'inc');
54
+            foreach (['on', 'off'] as $type) {
55
+                if ($logo = $chercher_logo($id_hack, 'id_auteur', $type)) {
56
+                    if ($logo = reset($logo)) {
57
+                        rename($logo, str_replace($id_hack, $id_auteur, $logo));
58
+                    }
59
+                }
60
+            }
61
+        }
62
+    }
63
+
64
+    // Enregistre l'envoi dans la BD
65
+    $err = '';
66
+    if ($id_auteur > 0) {
67
+        $err = auteur_modifier($id_auteur);
68
+    }
69
+
70
+    if ($err) {
71
+        spip_log("echec editeur auteur: $err", _LOG_ERREUR);
72
+    }
73
+
74
+    return [$id_auteur, $err];
75 75
 }
76 76
 
77 77
 /**
@@ -88,64 +88,64 @@  discard block
 block discarded – undo
88 88
  */
89 89
 function auteur_inserer($source = null, $set = null) {
90 90
 
91
-	// Ce qu'on va demander comme modifications
92
-	$champs = [];
93
-	$champs['source'] = $source ?: 'spip';
94
-
95
-	$champs['login'] = '';
96
-	$champs['statut'] = '5poubelle';  // inutilisable tant qu'il n'a pas ete renseigne et institue
97
-	$champs['webmestre'] = 'non';
98
-	if (empty($champs['imessage'])) {
99
-		$champs['imessage'] = 'oui';
100
-	}
101
-
102
-	if ($set) {
103
-		$champs = array_merge($champs, $set);
104
-	}
105
-
106
-	// Envoyer aux plugins
107
-	$champs = pipeline(
108
-		'pre_insertion',
109
-		[
110
-			'args' => [
111
-				'table' => 'spip_auteurs',
112
-			],
113
-			'data' => $champs
114
-		]
115
-	);
116
-	$id_auteur = sql_insertq('spip_auteurs', $champs);
117
-	pipeline(
118
-		'post_insertion',
119
-		[
120
-			'args' => [
121
-				'table' => 'spip_auteurs',
122
-				'id_objet' => $id_auteur
123
-			],
124
-			'data' => $champs
125
-		]
126
-	);
91
+    // Ce qu'on va demander comme modifications
92
+    $champs = [];
93
+    $champs['source'] = $source ?: 'spip';
94
+
95
+    $champs['login'] = '';
96
+    $champs['statut'] = '5poubelle';  // inutilisable tant qu'il n'a pas ete renseigne et institue
97
+    $champs['webmestre'] = 'non';
98
+    if (empty($champs['imessage'])) {
99
+        $champs['imessage'] = 'oui';
100
+    }
101
+
102
+    if ($set) {
103
+        $champs = array_merge($champs, $set);
104
+    }
105
+
106
+    // Envoyer aux plugins
107
+    $champs = pipeline(
108
+        'pre_insertion',
109
+        [
110
+            'args' => [
111
+                'table' => 'spip_auteurs',
112
+            ],
113
+            'data' => $champs
114
+        ]
115
+    );
116
+    $id_auteur = sql_insertq('spip_auteurs', $champs);
117
+    pipeline(
118
+        'post_insertion',
119
+        [
120
+            'args' => [
121
+                'table' => 'spip_auteurs',
122
+                'id_objet' => $id_auteur
123
+            ],
124
+            'data' => $champs
125
+        ]
126
+    );
127 127
 	
128
-	// Appeler une notification
129
-	if ($notifications = charger_fonction('notifications', 'inc')) {
130
-		$notifications(
131
-			'auteur_inserer',
132
-			$id_auteur,
133
-			[
134
-				'champs' => $champs,
135
-			]
136
-		);
137
-		$notifications(
138
-			'objet_inserer',
139
-			$id_auteur,
140
-			[
141
-				'objet' => 'auteur',
142
-				'id_objet' => $id_auteur,
143
-				'champs' => $champs,
144
-			]
145
-		);
146
-	}
147
-
148
-	return $id_auteur;
128
+    // Appeler une notification
129
+    if ($notifications = charger_fonction('notifications', 'inc')) {
130
+        $notifications(
131
+            'auteur_inserer',
132
+            $id_auteur,
133
+            [
134
+                'champs' => $champs,
135
+            ]
136
+        );
137
+        $notifications(
138
+            'objet_inserer',
139
+            $id_auteur,
140
+            [
141
+                'objet' => 'auteur',
142
+                'id_objet' => $id_auteur,
143
+                'champs' => $champs,
144
+            ]
145
+        );
146
+    }
147
+
148
+    return $id_auteur;
149 149
 }
150 150
 
151 151
 
@@ -170,70 +170,70 @@  discard block
 block discarded – undo
170 170
  */
171 171
 function auteur_modifier($id_auteur, $set = null, $force_update = false) {
172 172
 
173
-	include_spip('inc/modifier');
174
-	include_spip('inc/filtres');
175
-	$c = collecter_requests(
176
-		// include list
177
-		objet_info('auteur', 'champs_editables'),
178
-		// exclude list
179
-		$force_update ? [] : ['webmestre', 'pass', 'login'],
180
-		// donnees eventuellement fournies
181
-		$set
182
-	);
183
-
184
-	if (
185
-		$err = objet_modifier_champs(
186
-			'auteur',
187
-			$id_auteur,
188
-			[
189
-			'data' => $set,
190
-			'nonvide' => ['nom' => _T('ecrire:item_nouvel_auteur')]
191
-			],
192
-			$c
193
-		)
194
-	) {
195
-		return $err;
196
-	}
197
-	$session = $c;
198
-
199
-	$err = '';
200
-	if (!$force_update) {
201
-		// Modification de statut, changement de rubrique ?
202
-		$c = collecter_requests(
203
-		// include list
204
-			[
205
-				'statut',
206
-				'new_login',
207
-				'new_pass',
208
-				'login',
209
-				'pass',
210
-				'webmestre',
211
-				'restreintes',
212
-				'id_parent'
213
-			],
214
-			// exclude list
215
-			[],
216
-			// donnees eventuellement fournies
217
-			$set
218
-		);
219
-		if (isset($c['new_login']) and !isset($c['login'])) {
220
-			$c['login'] = $c['new_login'];
221
-		}
222
-		if (isset($c['new_pass']) and !isset($c['pass'])) {
223
-			$c['pass'] = $c['new_pass'];
224
-		}
225
-		$err = auteur_instituer($id_auteur, $c);
226
-		$session = array_merge($session, $c);
227
-	}
228
-
229
-	// .. mettre a jour les sessions de cet auteur
230
-	include_spip('inc/session');
231
-	$session['id_auteur'] = $id_auteur;
232
-	unset($session['new_login']);
233
-	unset($session['new_pass']);
234
-	actualiser_sessions($session);
235
-
236
-	return $err;
173
+    include_spip('inc/modifier');
174
+    include_spip('inc/filtres');
175
+    $c = collecter_requests(
176
+        // include list
177
+        objet_info('auteur', 'champs_editables'),
178
+        // exclude list
179
+        $force_update ? [] : ['webmestre', 'pass', 'login'],
180
+        // donnees eventuellement fournies
181
+        $set
182
+    );
183
+
184
+    if (
185
+        $err = objet_modifier_champs(
186
+            'auteur',
187
+            $id_auteur,
188
+            [
189
+            'data' => $set,
190
+            'nonvide' => ['nom' => _T('ecrire:item_nouvel_auteur')]
191
+            ],
192
+            $c
193
+        )
194
+    ) {
195
+        return $err;
196
+    }
197
+    $session = $c;
198
+
199
+    $err = '';
200
+    if (!$force_update) {
201
+        // Modification de statut, changement de rubrique ?
202
+        $c = collecter_requests(
203
+        // include list
204
+            [
205
+                'statut',
206
+                'new_login',
207
+                'new_pass',
208
+                'login',
209
+                'pass',
210
+                'webmestre',
211
+                'restreintes',
212
+                'id_parent'
213
+            ],
214
+            // exclude list
215
+            [],
216
+            // donnees eventuellement fournies
217
+            $set
218
+        );
219
+        if (isset($c['new_login']) and !isset($c['login'])) {
220
+            $c['login'] = $c['new_login'];
221
+        }
222
+        if (isset($c['new_pass']) and !isset($c['pass'])) {
223
+            $c['pass'] = $c['new_pass'];
224
+        }
225
+        $err = auteur_instituer($id_auteur, $c);
226
+        $session = array_merge($session, $c);
227
+    }
228
+
229
+    // .. mettre a jour les sessions de cet auteur
230
+    include_spip('inc/session');
231
+    $session['id_auteur'] = $id_auteur;
232
+    unset($session['new_login']);
233
+    unset($session['new_pass']);
234
+    actualiser_sessions($session);
235
+
236
+    return $err;
237 237
 }
238 238
 
239 239
 /**
@@ -254,9 +254,9 @@  discard block
 block discarded – undo
254 254
  * @return string
255 255
  */
256 256
 function auteur_associer($id_auteur, $objets, $qualif = null) {
257
-	include_spip('action/editer_liens');
257
+    include_spip('action/editer_liens');
258 258
 
259
-	return objet_associer(['auteur' => $id_auteur], $objets, $qualif);
259
+    return objet_associer(['auteur' => $id_auteur], $objets, $qualif);
260 260
 }
261 261
 
262 262
 /**
@@ -275,9 +275,9 @@  discard block
 block discarded – undo
275 275
  * @return string
276 276
  */
277 277
 function auteur_dissocier($id_auteur, $objets) {
278
-	include_spip('action/editer_liens');
278
+    include_spip('action/editer_liens');
279 279
 
280
-	return objet_dissocier(['auteur' => $id_auteur], $objets);
280
+    return objet_dissocier(['auteur' => $id_auteur], $objets);
281 281
 }
282 282
 
283 283
 /**
@@ -298,9 +298,9 @@  discard block
 block discarded – undo
298 298
  * @return bool|int
299 299
  */
300 300
 function auteur_qualifier($id_auteur, $objets, $qualif) {
301
-	include_spip('action/editer_liens');
301
+    include_spip('action/editer_liens');
302 302
 
303
-	return objet_qualifier_liens(['auteur' => $id_auteur], $objets, $qualif);
303
+    return objet_qualifier_liens(['auteur' => $id_auteur], $objets, $qualif);
304 304
 }
305 305
 
306 306
 
@@ -319,160 +319,160 @@  discard block
 block discarded – undo
319 319
  * @return bool|string
320 320
  */
321 321
 function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
322
-	if (!$id_auteur = intval($id_auteur)) {
323
-		return false;
324
-	}
325
-	$erreurs = []; // contiendra les differentes erreurs a traduire par _T()
326
-	$champs = [];
327
-
328
-	// les memoriser pour les faire passer dans le pipeline pre_edition
329
-	if (isset($c['login']) and strlen($c['login'])) {
330
-		$champs['login'] = $c['login'];
331
-	}
332
-	if (isset($c['pass']) and strlen($c['pass'])) {
333
-		$champs['pass'] = $c['pass'];
334
-	}
335
-
336
-	$statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
337
-
338
-	if (
339
-		isset($c['statut'])
340
-		and (autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']]))
341
-	) {
342
-		$statut = $champs['statut'] = $c['statut'];
343
-	}
344
-
345
-	// Restreindre avant de declarer l'auteur
346
-	// (section critique sur les droits)
347
-	if (isset($c['id_parent']) and $c['id_parent']) {
348
-		if (is_array($c['restreintes'])) {
349
-			$c['restreintes'][] = $c['id_parent'];
350
-		} else {
351
-			$c['restreintes'] = [$c['id_parent']];
352
-		}
353
-	}
354
-
355
-	if (
356
-		isset($c['webmestre'])
357
-		and ($force_webmestre or autoriser('modifier', 'auteur', $id_auteur, null, ['webmestre' => '?']))
358
-	) {
359
-		$champs['webmestre'] = $c['webmestre'] == 'oui' ? 'oui' : 'non';
360
-	}
361
-
362
-	// si statut change et n'est pas 0minirezo, on force webmestre a non
363
-	if (isset($c['statut']) and $c['statut'] !== '0minirezo') {
364
-		$champs['webmestre'] = $c['webmestre'] = 'non';
365
-	}
366
-
367
-	// Envoyer aux plugins
368
-	$champs = pipeline(
369
-		'pre_edition',
370
-		[
371
-			'args' => [
372
-				'table' => 'spip_auteurs',
373
-				'id_objet' => $id_auteur,
374
-				'action' => 'instituer',
375
-				'statut_ancien' => $statut_ancien,
376
-			],
377
-			'data' => $champs
378
-		]
379
-	);
380
-
381
-	if (
382
-		isset($c['restreintes']) and is_array($c['restreintes'])
383
-		and autoriser('modifier', 'auteur', $id_auteur, null, ['restreint' => $c['restreintes']])
384
-	) {
385
-		$rubriques = array_map('intval', $c['restreintes']);
386
-		$rubriques = array_unique($rubriques);
387
-		$rubriques = array_diff($rubriques, [0]);
388
-		auteur_dissocier($id_auteur, ['rubrique' => '*']);
389
-		auteur_associer($id_auteur, ['rubrique' => $rubriques]);
390
-	}
391
-
392
-	$flag_ecrire_acces = false;
393
-	// commencer par traiter les cas particuliers des logins et pass
394
-	// avant les autres ecritures en base
395
-	if (isset($champs['login']) or isset($champs['pass'])) {
396
-		$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
397
-		include_spip('inc/auth');
398
-		if (isset($champs['login']) and strlen($champs['login'])) {
399
-			if (!auth_modifier_login($auth_methode, $champs['login'], $id_auteur)) {
400
-				$erreurs[] = 'ecrire:impossible_modifier_login_auteur';
401
-			}
402
-		}
403
-		if (isset($champs['pass']) and strlen($champs['pass'])) {
404
-			$champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
405
-			if (!auth_modifier_pass($auth_methode, $champs['login'], $champs['pass'], $id_auteur)) {
406
-				$erreurs[] = 'ecrire:impossible_modifier_pass_auteur';
407
-			}
408
-		}
409
-		unset($champs['login']);
410
-		unset($champs['pass']);
411
-		$flag_ecrire_acces = true;
412
-	}
413
-
414
-	if (!(is_countable($champs) ? count($champs) : 0)) {
415
-		return implode(' ', array_map('_T', $erreurs));
416
-	}
417
-	sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
418
-
419
-	// .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
420
-	if (
421
-		$flag_ecrire_acces
422
-		or isset($champs['statut'])
423
-	) {
424
-		include_spip('inc/acces');
425
-		ecrire_acces();
426
-	}
427
-
428
-	// Invalider les caches
429
-	include_spip('inc/invalideur');
430
-	suivre_invalideur("id='auteur/$id_auteur'");
431
-
432
-	// Pipeline
433
-	pipeline(
434
-		'post_edition',
435
-		[
436
-			'args' => [
437
-				'table' => 'spip_auteurs',
438
-				'id_objet' => $id_auteur,
439
-				'action' => 'instituer',
440
-				'statut_ancien' => $statut_ancien,
441
-			],
442
-			'data' => $champs
443
-		]
444
-	);
445
-
446
-	// Notifications
447
-	if ($notifications = charger_fonction('notifications', 'inc')) {
448
-		$notifications(
449
-			'auteur_instituer',
450
-			$id_auteur,
451
-			[
452
-				'statut' => $statut,
453
-				'statut_ancien' => $statut_ancien,
454
-				'champs' => $champs,
455
-			]
456
-		);
457
-		$notifications(
458
-			'objet_instituer',
459
-			$id_auteur,
460
-			[
461
-				'objet' => 'auteur',
462
-				'id_objet' => $id_auteur,
463
-				'statut' => $statut,
464
-				'statut_ancien' => $statut_ancien,
465
-				'champs' => $champs,
466
-			]
467
-		);
322
+    if (!$id_auteur = intval($id_auteur)) {
323
+        return false;
324
+    }
325
+    $erreurs = []; // contiendra les differentes erreurs a traduire par _T()
326
+    $champs = [];
327
+
328
+    // les memoriser pour les faire passer dans le pipeline pre_edition
329
+    if (isset($c['login']) and strlen($c['login'])) {
330
+        $champs['login'] = $c['login'];
331
+    }
332
+    if (isset($c['pass']) and strlen($c['pass'])) {
333
+        $champs['pass'] = $c['pass'];
334
+    }
335
+
336
+    $statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
337
+
338
+    if (
339
+        isset($c['statut'])
340
+        and (autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']]))
341
+    ) {
342
+        $statut = $champs['statut'] = $c['statut'];
343
+    }
344
+
345
+    // Restreindre avant de declarer l'auteur
346
+    // (section critique sur les droits)
347
+    if (isset($c['id_parent']) and $c['id_parent']) {
348
+        if (is_array($c['restreintes'])) {
349
+            $c['restreintes'][] = $c['id_parent'];
350
+        } else {
351
+            $c['restreintes'] = [$c['id_parent']];
352
+        }
353
+    }
354
+
355
+    if (
356
+        isset($c['webmestre'])
357
+        and ($force_webmestre or autoriser('modifier', 'auteur', $id_auteur, null, ['webmestre' => '?']))
358
+    ) {
359
+        $champs['webmestre'] = $c['webmestre'] == 'oui' ? 'oui' : 'non';
360
+    }
361
+
362
+    // si statut change et n'est pas 0minirezo, on force webmestre a non
363
+    if (isset($c['statut']) and $c['statut'] !== '0minirezo') {
364
+        $champs['webmestre'] = $c['webmestre'] = 'non';
365
+    }
366
+
367
+    // Envoyer aux plugins
368
+    $champs = pipeline(
369
+        'pre_edition',
370
+        [
371
+            'args' => [
372
+                'table' => 'spip_auteurs',
373
+                'id_objet' => $id_auteur,
374
+                'action' => 'instituer',
375
+                'statut_ancien' => $statut_ancien,
376
+            ],
377
+            'data' => $champs
378
+        ]
379
+    );
380
+
381
+    if (
382
+        isset($c['restreintes']) and is_array($c['restreintes'])
383
+        and autoriser('modifier', 'auteur', $id_auteur, null, ['restreint' => $c['restreintes']])
384
+    ) {
385
+        $rubriques = array_map('intval', $c['restreintes']);
386
+        $rubriques = array_unique($rubriques);
387
+        $rubriques = array_diff($rubriques, [0]);
388
+        auteur_dissocier($id_auteur, ['rubrique' => '*']);
389
+        auteur_associer($id_auteur, ['rubrique' => $rubriques]);
390
+    }
391
+
392
+    $flag_ecrire_acces = false;
393
+    // commencer par traiter les cas particuliers des logins et pass
394
+    // avant les autres ecritures en base
395
+    if (isset($champs['login']) or isset($champs['pass'])) {
396
+        $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
397
+        include_spip('inc/auth');
398
+        if (isset($champs['login']) and strlen($champs['login'])) {
399
+            if (!auth_modifier_login($auth_methode, $champs['login'], $id_auteur)) {
400
+                $erreurs[] = 'ecrire:impossible_modifier_login_auteur';
401
+            }
402
+        }
403
+        if (isset($champs['pass']) and strlen($champs['pass'])) {
404
+            $champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur));
405
+            if (!auth_modifier_pass($auth_methode, $champs['login'], $champs['pass'], $id_auteur)) {
406
+                $erreurs[] = 'ecrire:impossible_modifier_pass_auteur';
407
+            }
408
+        }
409
+        unset($champs['login']);
410
+        unset($champs['pass']);
411
+        $flag_ecrire_acces = true;
412
+    }
413
+
414
+    if (!(is_countable($champs) ? count($champs) : 0)) {
415
+        return implode(' ', array_map('_T', $erreurs));
416
+    }
417
+    sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
418
+
419
+    // .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
420
+    if (
421
+        $flag_ecrire_acces
422
+        or isset($champs['statut'])
423
+    ) {
424
+        include_spip('inc/acces');
425
+        ecrire_acces();
426
+    }
427
+
428
+    // Invalider les caches
429
+    include_spip('inc/invalideur');
430
+    suivre_invalideur("id='auteur/$id_auteur'");
431
+
432
+    // Pipeline
433
+    pipeline(
434
+        'post_edition',
435
+        [
436
+            'args' => [
437
+                'table' => 'spip_auteurs',
438
+                'id_objet' => $id_auteur,
439
+                'action' => 'instituer',
440
+                'statut_ancien' => $statut_ancien,
441
+            ],
442
+            'data' => $champs
443
+        ]
444
+    );
445
+
446
+    // Notifications
447
+    if ($notifications = charger_fonction('notifications', 'inc')) {
448
+        $notifications(
449
+            'auteur_instituer',
450
+            $id_auteur,
451
+            [
452
+                'statut' => $statut,
453
+                'statut_ancien' => $statut_ancien,
454
+                'champs' => $champs,
455
+            ]
456
+        );
457
+        $notifications(
458
+            'objet_instituer',
459
+            $id_auteur,
460
+            [
461
+                'objet' => 'auteur',
462
+                'id_objet' => $id_auteur,
463
+                'statut' => $statut,
464
+                'statut_ancien' => $statut_ancien,
465
+                'champs' => $champs,
466
+            ]
467
+        );
468 468
 		
469
-		// Rétro-compat
470
-		$notifications(
471
-			'instituerauteur',
472
-			$id_auteur,
473
-			['statut' => $statut, 'statut_ancien' => $statut_ancien]
474
-		);
475
-	}
476
-
477
-	return implode(' ', array_map('_T', $erreurs));
469
+        // Rétro-compat
470
+        $notifications(
471
+            'instituerauteur',
472
+            $id_auteur,
473
+            ['statut' => $statut, 'statut_ancien' => $statut_ancien]
474
+        );
475
+    }
476
+
477
+    return implode(' ', array_map('_T', $erreurs));
478 478
 }
Please login to merge, or discard this patch.