Completed
Push — master ( 3caaa9...7e8601 )
by cam
01:42
created
ecrire/lang/ecrire_fr_fem.php 1 patch
Indentation   +836 added lines, -836 removed lines patch added patch discarded remove patch
@@ -4,436 +4,436 @@  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
-	'activer_plugin' => 'Activer le plugin',
14
-	'affichage' => 'Affichage',
15
-	'aide_non_disponible' => 'Cette partie de l’aide en ligne n’est pas encore disponible dans cette langue.',
16
-	'annuler_recherche' => 'Annuler la recherche',
17
-	'auteur' => 'Autrice :',
18
-	'avis_acces_interdit' => 'Accès interdit.',
19
-	'avis_acces_interdit_prive' => 'Vous n’avez pas le droit d’accéder à la page <b>@exec@</b>.',
20
-	'avis_article_modifie' => 'Attention, @nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes',
21
-	'avis_aucun_resultat' => 'Aucun résultat.',
22
-	'avis_base_inaccessible' => 'Impossible de se connecter à la base de données @base@.',
23
-	'avis_chemin_invalide_1' => 'Le chemin que vous avez choisi',
24
-	'avis_chemin_invalide_2' => 'ne semble pas valide. Veuillez retourner à la page précédente et vérifier les informations fournies.',
25
-	'avis_connexion_echec_1' => 'La connexion  à la base de données a échoué.',
26
-	'avis_connexion_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
27
-	'avis_connexion_echec_3' => '<b>N.B.</b> Sur de nombreux serveurs, vous devez <b>demander</b> l’activation de votre accès à la base de données avant de pouvoir l’utiliser. Si vous ne pouvez vous connecter, vérifiez que vous avez effectué cette démarche.',
28
-	'avis_connexion_erreur_creer_base' => 'La base de données n’a pas pu être créée.',
29
-	'avis_connexion_erreur_nom_base' => 'Le nom de la base ne peut contenir que des lettres, des chiffres et des tirets',
30
-	'avis_connexion_ldap_echec_1' => 'La connexion au serveur LDAP a échoué.',
31
-	'avis_connexion_ldap_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
32
-	'avis_connexion_ldap_echec_3' => 'Alternativement, n’utilisez pas le support LDAP pour importer des utilisatrices.',
33
-	'avis_deplacement_rubrique' => 'Attention ! Cette rubrique contient @contient_breves@ brève@scb@ : si vous la déplacez, veuillez cocher cette case de confirmation.',
34
-	'avis_erreur_connexion_mysql' => 'Erreur de connexion SQL',
35
-	'avis_espace_interdit' => '<b>Espace interdit</b> <div>SPIP est déjà installé.</div>',
36
-	'avis_lecture_noms_bases_1' => 'Le programme d’installation n’a pas pu lire les noms des bases de données installées.',
37
-	'avis_lecture_noms_bases_2' => 'Soit aucune base n’est disponible, soit la fonction permettant de lister les bases a été désactivée
12
+    // A
13
+    'activer_plugin' => 'Activer le plugin',
14
+    'affichage' => 'Affichage',
15
+    'aide_non_disponible' => 'Cette partie de l’aide en ligne n’est pas encore disponible dans cette langue.',
16
+    'annuler_recherche' => 'Annuler la recherche',
17
+    'auteur' => 'Autrice :',
18
+    'avis_acces_interdit' => 'Accès interdit.',
19
+    'avis_acces_interdit_prive' => 'Vous n’avez pas le droit d’accéder à la page <b>@exec@</b>.',
20
+    'avis_article_modifie' => 'Attention, @nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes',
21
+    'avis_aucun_resultat' => 'Aucun résultat.',
22
+    'avis_base_inaccessible' => 'Impossible de se connecter à la base de données @base@.',
23
+    'avis_chemin_invalide_1' => 'Le chemin que vous avez choisi',
24
+    'avis_chemin_invalide_2' => 'ne semble pas valide. Veuillez retourner à la page précédente et vérifier les informations fournies.',
25
+    'avis_connexion_echec_1' => 'La connexion  à la base de données a échoué.',
26
+    'avis_connexion_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
27
+    'avis_connexion_echec_3' => '<b>N.B.</b> Sur de nombreux serveurs, vous devez <b>demander</b> l’activation de votre accès à la base de données avant de pouvoir l’utiliser. Si vous ne pouvez vous connecter, vérifiez que vous avez effectué cette démarche.',
28
+    'avis_connexion_erreur_creer_base' => 'La base de données n’a pas pu être créée.',
29
+    'avis_connexion_erreur_nom_base' => 'Le nom de la base ne peut contenir que des lettres, des chiffres et des tirets',
30
+    'avis_connexion_ldap_echec_1' => 'La connexion au serveur LDAP a échoué.',
31
+    'avis_connexion_ldap_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
32
+    'avis_connexion_ldap_echec_3' => 'Alternativement, n’utilisez pas le support LDAP pour importer des utilisatrices.',
33
+    'avis_deplacement_rubrique' => 'Attention ! Cette rubrique contient @contient_breves@ brève@scb@ : si vous la déplacez, veuillez cocher cette case de confirmation.',
34
+    'avis_erreur_connexion_mysql' => 'Erreur de connexion SQL',
35
+    'avis_espace_interdit' => '<b>Espace interdit</b> <div>SPIP est déjà installé.</div>',
36
+    'avis_lecture_noms_bases_1' => 'Le programme d’installation n’a pas pu lire les noms des bases de données installées.',
37
+    'avis_lecture_noms_bases_2' => 'Soit aucune base n’est disponible, soit la fonction permettant de lister les bases a été désactivée
38 38
 		pour des raisons de sécurité (ce qui est le cas chez de nombreux hébergeurs).',
39
-	'avis_lecture_noms_bases_3' => 'Dans la seconde alternative, il est probable qu’une base portant votre nom de login soit utilisable :',
40
-	'avis_non_acces_page' => 'Vous n’avez pas accès à cette page.',
41
-	'avis_operation_echec' => 'L’opération a échoué.',
42
-	'avis_operation_impossible' => 'Opération impossible',
43
-	'avis_suppression_base' => 'ATTENTION, la suppression des données est irréversible',
39
+    'avis_lecture_noms_bases_3' => 'Dans la seconde alternative, il est probable qu’une base portant votre nom de login soit utilisable :',
40
+    'avis_non_acces_page' => 'Vous n’avez pas accès à cette page.',
41
+    'avis_operation_echec' => 'L’opération a échoué.',
42
+    'avis_operation_impossible' => 'Opération impossible',
43
+    'avis_suppression_base' => 'ATTENTION, la suppression des données est irréversible',
44 44
 
45
-	// B
46
-	'bouton_acces_ldap' => 'Ajouter l’accès à LDAP',
47
-	'bouton_ajouter' => 'Ajouter',
48
-	'bouton_annuler' => 'Annuler',
49
-	'bouton_cache_activer' => 'Réactiver le cache',
50
-	'bouton_cache_desactiver' => 'Désactiver temporairement le cache',
51
-	'bouton_demande_publication' => 'Demander la publication de cet article',
52
-	'bouton_desactive_tout' => 'Tout désactiver',
53
-	'bouton_desinstaller' => 'Désinstaller',
54
-	'bouton_effacer_tout' => 'Effacer TOUT',
55
-	'bouton_envoyer_message' => 'Message définitif : envoyer',
56
-	'bouton_fermer' => 'Fermer',
57
-	'bouton_mettre_a_jour_base' => 'Mettre à jour la base de données',
58
-	'bouton_modifier' => 'Modifier',
59
-	'bouton_radio_afficher' => 'Afficher',
60
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apparaître dans la liste des rédactrices connectées',
61
-	'bouton_radio_envoi_annonces_adresse' => 'Envoyer les annonces à l’adresse :',
62
-	'bouton_radio_envoi_liste_nouveautes' => 'Envoyer la liste des nouveautés',
63
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne pas apparaître dans la liste des rédactrices',
64
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Ne pas envoyer d’annonces éditoriales',
65
-	'bouton_redirection' => 'REDIRECTION',
66
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Réinitialiser aux valeurs par défaut',
67
-	'bouton_relancer_inscription' => 'Relancer l’inscription',
68
-	'bouton_relancer_inscriptions' => 'Relancer les inscriptions',
69
-	'bouton_relancer_installation' => 'Relancer l’installation',
70
-	'bouton_reset_password' => 'Générer un nouveau mot de passe et l’envoyer par email',
71
-	'bouton_suivant' => 'Suivant',
72
-	'bouton_tenter_recuperation' => 'Tenter une réparation',
73
-	'bouton_test_proxy' => 'Essayer le proxy',
74
-	'bouton_vider_cache' => 'Vider le cache',
45
+    // B
46
+    'bouton_acces_ldap' => 'Ajouter l’accès à LDAP',
47
+    'bouton_ajouter' => 'Ajouter',
48
+    'bouton_annuler' => 'Annuler',
49
+    'bouton_cache_activer' => 'Réactiver le cache',
50
+    'bouton_cache_desactiver' => 'Désactiver temporairement le cache',
51
+    'bouton_demande_publication' => 'Demander la publication de cet article',
52
+    'bouton_desactive_tout' => 'Tout désactiver',
53
+    'bouton_desinstaller' => 'Désinstaller',
54
+    'bouton_effacer_tout' => 'Effacer TOUT',
55
+    'bouton_envoyer_message' => 'Message définitif : envoyer',
56
+    'bouton_fermer' => 'Fermer',
57
+    'bouton_mettre_a_jour_base' => 'Mettre à jour la base de données',
58
+    'bouton_modifier' => 'Modifier',
59
+    'bouton_radio_afficher' => 'Afficher',
60
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apparaître dans la liste des rédactrices connectées',
61
+    'bouton_radio_envoi_annonces_adresse' => 'Envoyer les annonces à l’adresse :',
62
+    'bouton_radio_envoi_liste_nouveautes' => 'Envoyer la liste des nouveautés',
63
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne pas apparaître dans la liste des rédactrices',
64
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Ne pas envoyer d’annonces éditoriales',
65
+    'bouton_redirection' => 'REDIRECTION',
66
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Réinitialiser aux valeurs par défaut',
67
+    'bouton_relancer_inscription' => 'Relancer l’inscription',
68
+    'bouton_relancer_inscriptions' => 'Relancer les inscriptions',
69
+    'bouton_relancer_installation' => 'Relancer l’installation',
70
+    'bouton_reset_password' => 'Générer un nouveau mot de passe et l’envoyer par email',
71
+    'bouton_suivant' => 'Suivant',
72
+    'bouton_tenter_recuperation' => 'Tenter une réparation',
73
+    'bouton_test_proxy' => 'Essayer le proxy',
74
+    'bouton_vider_cache' => 'Vider le cache',
75 75
 
76
-	// C
77
-	'cache_modifiable_webmestre' => 'Ce paramètre est modifiable par la webmestre du site.',
78
-	'calendrier_synchro' => 'Si vous utilisez un logiciel d’agenda compatible <b>iCal</b>, vous pouvez le synchroniser avec les informations de ce site.',
79
-	'config_activer_champs' => 'Activer les champs suivants',
80
-	'config_choix_base_sup' => 'indiquer une base sur ce serveur',
81
-	'config_erreur_base_sup' => 'SPIP n’a pas accès à la liste des bases accessibles',
82
-	'config_info_base_sup' => 'Si vous avez d’autres bases de données à interroger à travers SPIP, avec son serveur SQL ou avec un autre, le formulaire ci-dessous, vous permet de les déclarer. Si vous laissez certains champs vides, les identifiants de connexion à la base principale seront utilisés.',
83
-	'config_info_base_sup_disponibles' => 'Bases supplémentaires déjà interrogeables :',
84
-	'config_info_enregistree' => 'La nouvelle configuration a été enregistrée',
85
-	'config_info_logos' => 'Chaque élément du site peut avoir un logo, ainsi qu’un « logo de survol »',
86
-	'config_info_logos_utiliser' => 'Utiliser les logos',
87
-	'config_info_logos_utiliser_non' => 'Ne pas utiliser les logos',
88
-	'config_info_logos_utiliser_survol' => 'Utiliser les logos de survol',
89
-	'config_info_logos_utiliser_survol_non' => 'Ne pas utiliser les logos de survol',
90
-	'config_info_redirection' => 'En activant cette option, vous pourrez créer des articles virtuels, simples références d’articles publiés sur d’autres sites ou hors de SPIP.',
91
-	'config_redirection' => 'Articles virtuels',
92
-	'config_titre_base_sup' => 'Déclaration d’une base supplémentaire',
93
-	'config_titre_base_sup_choix' => 'Choisissez une base supplémentaire',
94
-	'connexion_ldap' => 'Connexion :',
95
-	'creer_et_associer_un_auteur' => 'Créer et associer une autrice',
76
+    // C
77
+    'cache_modifiable_webmestre' => 'Ce paramètre est modifiable par la webmestre du site.',
78
+    'calendrier_synchro' => 'Si vous utilisez un logiciel d’agenda compatible <b>iCal</b>, vous pouvez le synchroniser avec les informations de ce site.',
79
+    'config_activer_champs' => 'Activer les champs suivants',
80
+    'config_choix_base_sup' => 'indiquer une base sur ce serveur',
81
+    'config_erreur_base_sup' => 'SPIP n’a pas accès à la liste des bases accessibles',
82
+    'config_info_base_sup' => 'Si vous avez d’autres bases de données à interroger à travers SPIP, avec son serveur SQL ou avec un autre, le formulaire ci-dessous, vous permet de les déclarer. Si vous laissez certains champs vides, les identifiants de connexion à la base principale seront utilisés.',
83
+    'config_info_base_sup_disponibles' => 'Bases supplémentaires déjà interrogeables :',
84
+    'config_info_enregistree' => 'La nouvelle configuration a été enregistrée',
85
+    'config_info_logos' => 'Chaque élément du site peut avoir un logo, ainsi qu’un « logo de survol »',
86
+    'config_info_logos_utiliser' => 'Utiliser les logos',
87
+    'config_info_logos_utiliser_non' => 'Ne pas utiliser les logos',
88
+    'config_info_logos_utiliser_survol' => 'Utiliser les logos de survol',
89
+    'config_info_logos_utiliser_survol_non' => 'Ne pas utiliser les logos de survol',
90
+    'config_info_redirection' => 'En activant cette option, vous pourrez créer des articles virtuels, simples références d’articles publiés sur d’autres sites ou hors de SPIP.',
91
+    'config_redirection' => 'Articles virtuels',
92
+    'config_titre_base_sup' => 'Déclaration d’une base supplémentaire',
93
+    'config_titre_base_sup_choix' => 'Choisissez une base supplémentaire',
94
+    'connexion_ldap' => 'Connexion :',
95
+    'creer_et_associer_un_auteur' => 'Créer et associer une autrice',
96 96
 
97
-	// D
98
-	'date_mot_heures' => 'heures',
97
+    // D
98
+    'date_mot_heures' => 'heures',
99 99
 
100
-	// E
101
-	'ecran_connexion_couleur_principale' => 'Couleur principale',
102
-	'ecran_connexion_image_fond' => 'Image de fond',
103
-	'ecran_connexion_image_fond_explication' => 'Utiliser une image (format JPEG, 1920x1080 pixels)',
104
-	'ecran_connexion_image_revenir_couleur_defaut' => 'Revenir à la couleur par défaut',
105
-	'ecran_connexion_titre' => 'Écran de connexion',
106
-	'ecran_securite' => ' + écran de sécurité @version@',
107
-	'email' => 'email',
108
-	'email_2' => 'email :',
109
-	'en_savoir_plus' => 'En savoir plus',
110
-	'entree_adresse_annuaire' => 'Adresse de l’annuaire',
111
-	'entree_adresse_email' => 'Votre adresse email',
112
-	'entree_adresse_email_2' => 'Adresse email',
113
-	'entree_base_donnee_1' => 'Adresse de la base de données',
114
-	'entree_base_donnee_2' => '(Souvent cette adresse correspond à celle de votre site, parfois elle correspond à la mention « localhost », parfois elle est laissée totalement vide.)',
115
-	'entree_biographie' => 'Courte biographie en quelques mots.',
116
-	'entree_chemin_acces' => '<b>Entrer</b> le chemin d’accès :',
117
-	'entree_cle_pgp' => 'Votre clé PGP',
118
-	'entree_cle_pgp_2' => 'Clé PGP',
119
-	'entree_contenu_rubrique' => '(Contenu de la rubrique en quelques mots.)',
120
-	'entree_identifiants_connexion' => 'Vos identifiants de connexion...',
121
-	'entree_identifiants_connexion_2' => 'Identifiants de connexion',
122
-	'entree_informations_connexion_ldap' => 'Veuillez entrer dans ce formulaire les informations de connexion à votre annuaire LDAP.
100
+    // E
101
+    'ecran_connexion_couleur_principale' => 'Couleur principale',
102
+    'ecran_connexion_image_fond' => 'Image de fond',
103
+    'ecran_connexion_image_fond_explication' => 'Utiliser une image (format JPEG, 1920x1080 pixels)',
104
+    'ecran_connexion_image_revenir_couleur_defaut' => 'Revenir à la couleur par défaut',
105
+    'ecran_connexion_titre' => 'Écran de connexion',
106
+    'ecran_securite' => ' + écran de sécurité @version@',
107
+    'email' => 'email',
108
+    'email_2' => 'email :',
109
+    'en_savoir_plus' => 'En savoir plus',
110
+    'entree_adresse_annuaire' => 'Adresse de l’annuaire',
111
+    'entree_adresse_email' => 'Votre adresse email',
112
+    'entree_adresse_email_2' => 'Adresse email',
113
+    'entree_base_donnee_1' => 'Adresse de la base de données',
114
+    'entree_base_donnee_2' => '(Souvent cette adresse correspond à celle de votre site, parfois elle correspond à la mention « localhost », parfois elle est laissée totalement vide.)',
115
+    'entree_biographie' => 'Courte biographie en quelques mots.',
116
+    'entree_chemin_acces' => '<b>Entrer</b> le chemin d’accès :',
117
+    'entree_cle_pgp' => 'Votre clé PGP',
118
+    'entree_cle_pgp_2' => 'Clé PGP',
119
+    'entree_contenu_rubrique' => '(Contenu de la rubrique en quelques mots.)',
120
+    'entree_identifiants_connexion' => 'Vos identifiants de connexion...',
121
+    'entree_identifiants_connexion_2' => 'Identifiants de connexion',
122
+    'entree_informations_connexion_ldap' => 'Veuillez entrer dans ce formulaire les informations de connexion à votre annuaire LDAP.
123 123
 	Ces informations doivent pouvoir vous être fournies par l’administratrice du système,
124 124
 	ou du réseau.',
125
-	'entree_infos_perso' => 'Qui êtes-vous ?',
126
-	'entree_infos_perso_2' => 'Qui est l’autrice ?',
127
-	'entree_interieur_rubrique' => 'À l’intérieur de la rubrique :',
128
-	'entree_liens_sites' => '<b>Lien hypertexte</b> (référence, site à visiter...)',
129
-	'entree_login' => 'Votre login',
130
-	'entree_login_connexion_1' => 'Le login de connexion',
131
-	'entree_login_connexion_2' => '(Correspond parfois à votre login d’accès au FTP ; parfois laissé vide)',
132
-	'entree_mot_passe' => 'Votre mot de passe',
133
-	'entree_mot_passe_1' => 'Le mot de passe de connexion',
134
-	'entree_mot_passe_2' => '(Correspond parfois à votre mot de passe pour le FTP ; parfois laissé vide)',
135
-	'entree_nom_fichier' => 'Veuillez entrer le nom du fichier @texte_compresse@ :',
136
-	'entree_nom_pseudo' => 'Votre nom ou votre pseudo',
137
-	'entree_nom_pseudo_1' => '(Votre nom ou votre pseudo)',
138
-	'entree_nom_pseudo_2' => 'Nom ou pseudo',
139
-	'entree_nom_site' => 'Le nom de votre site',
140
-	'entree_nom_site_2' => 'Nom du site de l’autrice',
141
-	'entree_nouveau_passe' => 'Nouveau mot de passe',
142
-	'entree_passe_ldap' => 'Mot de passe',
143
-	'entree_port_annuaire' => 'Le numéro de port de l’annuaire',
144
-	'entree_signature' => 'Signature',
145
-	'entree_titre_obligatoire' => '<b>Titre</b> [Obligatoire]<br />',
146
-	'entree_url' => 'L’adresse (URL) de votre site',
147
-	'entree_url_2' => 'Adresse (URL) du site',
148
-	'erreur_connect_deja_existant' => 'Un serveur existe déjà avec ce nom',
149
-	'erreur_contenu_suspect' => 'Texte échappé',
150
-	'erreur_email_deja_existant' => 'Cette adresse email est déjà enregistrée.',
151
-	'erreur_nom_connect_incorrect' => 'Ce nom de serveur n’est pas autorisé',
152
-	'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ manquant dans la balise @balise@.',
153
-	'erreur_plugin_desinstalation_echouee' => 'La désinstallation du plugin a échoué. Vous pouvez néanmoins le désactiver.',
154
-	'erreur_plugin_fichier_absent' => 'Fichier absent',
155
-	'erreur_plugin_fichier_def_absent' => 'Fichier de définition absent',
156
-	'erreur_plugin_nom_fonction_interdit' => 'Nom de fonction interdit',
157
-	'erreur_plugin_nom_manquant' => 'Nom du plugin manquant',
158
-	'erreur_plugin_prefix_manquant' => 'Espace de nommage du plugin non défini',
159
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; manquant dans le fichier de définition',
160
-	'erreur_plugin_version_manquant' => 'Version du plugin manquante',
161
-	'erreur_type_fichier' => 'Type de fichier incorrect',
125
+    'entree_infos_perso' => 'Qui êtes-vous ?',
126
+    'entree_infos_perso_2' => 'Qui est l’autrice ?',
127
+    'entree_interieur_rubrique' => 'À l’intérieur de la rubrique :',
128
+    'entree_liens_sites' => '<b>Lien hypertexte</b> (référence, site à visiter...)',
129
+    'entree_login' => 'Votre login',
130
+    'entree_login_connexion_1' => 'Le login de connexion',
131
+    'entree_login_connexion_2' => '(Correspond parfois à votre login d’accès au FTP ; parfois laissé vide)',
132
+    'entree_mot_passe' => 'Votre mot de passe',
133
+    'entree_mot_passe_1' => 'Le mot de passe de connexion',
134
+    'entree_mot_passe_2' => '(Correspond parfois à votre mot de passe pour le FTP ; parfois laissé vide)',
135
+    'entree_nom_fichier' => 'Veuillez entrer le nom du fichier @texte_compresse@ :',
136
+    'entree_nom_pseudo' => 'Votre nom ou votre pseudo',
137
+    'entree_nom_pseudo_1' => '(Votre nom ou votre pseudo)',
138
+    'entree_nom_pseudo_2' => 'Nom ou pseudo',
139
+    'entree_nom_site' => 'Le nom de votre site',
140
+    'entree_nom_site_2' => 'Nom du site de l’autrice',
141
+    'entree_nouveau_passe' => 'Nouveau mot de passe',
142
+    'entree_passe_ldap' => 'Mot de passe',
143
+    'entree_port_annuaire' => 'Le numéro de port de l’annuaire',
144
+    'entree_signature' => 'Signature',
145
+    'entree_titre_obligatoire' => '<b>Titre</b> [Obligatoire]<br />',
146
+    'entree_url' => 'L’adresse (URL) de votre site',
147
+    'entree_url_2' => 'Adresse (URL) du site',
148
+    'erreur_connect_deja_existant' => 'Un serveur existe déjà avec ce nom',
149
+    'erreur_contenu_suspect' => 'Texte échappé',
150
+    'erreur_email_deja_existant' => 'Cette adresse email est déjà enregistrée.',
151
+    'erreur_nom_connect_incorrect' => 'Ce nom de serveur n’est pas autorisé',
152
+    'erreur_plugin_attribut_balise_manquant' => 'Attribut @attribut@ manquant dans la balise @balise@.',
153
+    'erreur_plugin_desinstalation_echouee' => 'La désinstallation du plugin a échoué. Vous pouvez néanmoins le désactiver.',
154
+    'erreur_plugin_fichier_absent' => 'Fichier absent',
155
+    'erreur_plugin_fichier_def_absent' => 'Fichier de définition absent',
156
+    'erreur_plugin_nom_fonction_interdit' => 'Nom de fonction interdit',
157
+    'erreur_plugin_nom_manquant' => 'Nom du plugin manquant',
158
+    'erreur_plugin_prefix_manquant' => 'Espace de nommage du plugin non défini',
159
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; manquant dans le fichier de définition',
160
+    'erreur_plugin_version_manquant' => 'Version du plugin manquante',
161
+    'erreur_type_fichier' => 'Type de fichier incorrect',
162 162
 
163
-	// H
164
-	'htaccess_a_simuler' => 'Avertissement : la configuration de votre serveur HTTP ne tient pas compte des fichiers @htaccess@. Pour pouvoir assurer une bonne sécurité, il faut que vous modifiiez cette configuration sur ce point, ou bien que les constantes @constantes@ (définissables dans le fichier mes_options.php) aient comme valeur des répertoires en dehors de @document_root@.',
165
-	'htaccess_inoperant' => 'htaccess inopérant',
163
+    // H
164
+    'htaccess_a_simuler' => 'Avertissement : la configuration de votre serveur HTTP ne tient pas compte des fichiers @htaccess@. Pour pouvoir assurer une bonne sécurité, il faut que vous modifiiez cette configuration sur ce point, ou bien que les constantes @constantes@ (définissables dans le fichier mes_options.php) aient comme valeur des répertoires en dehors de @document_root@.',
165
+    'htaccess_inoperant' => 'htaccess inopérant',
166 166
 
167
-	// I
168
-	'ical_info1' => 'Cette page présente plusieurs méthodes pour rester en contact avec la vie de ce site.',
169
-	'ical_info2' => 'Pour plus de renseignements sur toutes ces techniques, n’hésitez pas à consulter <a href="@spipnet@">la documentation de SPIP</a>.',
170
-	'ical_info_calendrier' => 'Deux calendriers sont à votre disposition. Le premier est un plan du site annonçant tous les articles publiés. Le second contient les annonces éditoriales ainsi que vos derniers messages privés : il vous est réservé grâce à une clé personnelle, que vous pouvez modifier à tout moment en renouvelant votre mot de passe.',
171
-	'ical_methode_http' => 'Téléchargement',
172
-	'ical_methode_webcal' => 'Synchronisation (webcal://)',
173
-	'ical_texte_js' => 'Une ligne de javascript vous permet d’afficher très simplement, sur n’importe quel site vous appartenant, les articles récents publiés sur ce site.',
174
-	'ical_texte_prive' => 'Ce calendrier, à usage strictement personnel, vous informe de l’activité éditoriale privée de ce site (tâches et rendez-vous personnels, articles et brèves proposés...).',
175
-	'ical_texte_public' => 'Ce calendrier vous permet de suivre l’activité publique de ce site (articles et brèves publiés).',
176
-	'ical_texte_rss' => 'Vous pouvez syndiquer les nouveautés de ce site dans n’importe quel lecteur de fichiers au format XML/RSS (Rich Site Summary). C’est aussi le format qui permet à SPIP de lire les nouveautés publiées sur d’autres sites utilisant un format d’échange compatible (sites syndiqués).',
177
-	'ical_titre_js' => 'Javascript',
178
-	'ical_titre_mailing' => 'Mailing-list',
179
-	'ical_titre_rss' => 'Fichiers de syndication',
180
-	'icone_accueil' => 'Accueil',
181
-	'icone_activer_cookie' => 'Activer le cookie de correspondance',
182
-	'icone_activite' => 'Activité',
183
-	'icone_admin_plugin' => 'Gestion des plugins',
184
-	'icone_administration' => 'Maintenance',
185
-	'icone_afficher_auteurs' => 'Afficher les autrices',
186
-	'icone_afficher_visiteurs' => 'Afficher les visiteuses',
187
-	'icone_arret_discussion' => 'Ne plus participer à cette discussion',
188
-	'icone_calendrier' => 'Calendrier',
189
-	'icone_configuration' => 'Configuration',
190
-	'icone_creer_auteur' => 'Créer une nouvelle autrice et l’associer à cet article',
191
-	'icone_creer_mot_cle' => 'Créer un nouveau mot-clé et le lier à cet article',
192
-	'icone_creer_rubrique_2' => 'Créer une nouvelle rubrique',
193
-	'icone_developpement' => 'Développement',
194
-	'icone_edition' => 'Édition',
195
-	'icone_ma_langue' => 'Ma langue',
196
-	'icone_mes_infos' => 'Mes informations',
197
-	'icone_mes_preferences' => 'Mes préférences',
198
-	'icone_modifier_article' => 'Modifier cet article',
199
-	'icone_modifier_rubrique' => 'Modifier cette rubrique',
200
-	'icone_publication' => 'Publication',
201
-	'icone_relancer_signataire' => 'Relancer la signataire',
202
-	'icone_retour' => 'Retour',
203
-	'icone_retour_article' => 'Retour à l’article',
204
-	'icone_squelette' => 'Squelettes',
205
-	'icone_suivi_publication' => 'Suivi de la publication',
206
-	'icone_supprimer_cookie' => 'Supprimer le cookie de correspondance',
207
-	'icone_supprimer_rubrique' => 'Supprimer cette rubrique',
208
-	'icone_supprimer_signature' => 'Supprimer cette signature',
209
-	'icone_valider_signature' => 'Valider cette signature',
210
-	'image_administrer_rubrique' => 'Vous pouvez administrer cette rubrique',
211
-	'impossible_modifier_login_auteur' => 'Impossible de modifier le login.',
212
-	'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.',
213
-	'info_1_article' => '1 article',
214
-	'info_1_auteur' => '1 autrice',
215
-	'info_1_message' => '1 message',
216
-	'info_1_mot_cle' => '1 mot-clé',
217
-	'info_1_rubrique' => '1 rubrique',
218
-	'info_1_visiteur' => '1 visiteuse',
219
-	'info_activer_cookie' => 'Vous pouvez activer un <b>cookie de correspondance</b>, ce qui vous
167
+    // I
168
+    'ical_info1' => 'Cette page présente plusieurs méthodes pour rester en contact avec la vie de ce site.',
169
+    'ical_info2' => 'Pour plus de renseignements sur toutes ces techniques, n’hésitez pas à consulter <a href="@spipnet@">la documentation de SPIP</a>.',
170
+    'ical_info_calendrier' => 'Deux calendriers sont à votre disposition. Le premier est un plan du site annonçant tous les articles publiés. Le second contient les annonces éditoriales ainsi que vos derniers messages privés : il vous est réservé grâce à une clé personnelle, que vous pouvez modifier à tout moment en renouvelant votre mot de passe.',
171
+    'ical_methode_http' => 'Téléchargement',
172
+    'ical_methode_webcal' => 'Synchronisation (webcal://)',
173
+    'ical_texte_js' => 'Une ligne de javascript vous permet d’afficher très simplement, sur n’importe quel site vous appartenant, les articles récents publiés sur ce site.',
174
+    'ical_texte_prive' => 'Ce calendrier, à usage strictement personnel, vous informe de l’activité éditoriale privée de ce site (tâches et rendez-vous personnels, articles et brèves proposés...).',
175
+    'ical_texte_public' => 'Ce calendrier vous permet de suivre l’activité publique de ce site (articles et brèves publiés).',
176
+    'ical_texte_rss' => 'Vous pouvez syndiquer les nouveautés de ce site dans n’importe quel lecteur de fichiers au format XML/RSS (Rich Site Summary). C’est aussi le format qui permet à SPIP de lire les nouveautés publiées sur d’autres sites utilisant un format d’échange compatible (sites syndiqués).',
177
+    'ical_titre_js' => 'Javascript',
178
+    'ical_titre_mailing' => 'Mailing-list',
179
+    'ical_titre_rss' => 'Fichiers de syndication',
180
+    'icone_accueil' => 'Accueil',
181
+    'icone_activer_cookie' => 'Activer le cookie de correspondance',
182
+    'icone_activite' => 'Activité',
183
+    'icone_admin_plugin' => 'Gestion des plugins',
184
+    'icone_administration' => 'Maintenance',
185
+    'icone_afficher_auteurs' => 'Afficher les autrices',
186
+    'icone_afficher_visiteurs' => 'Afficher les visiteuses',
187
+    'icone_arret_discussion' => 'Ne plus participer à cette discussion',
188
+    'icone_calendrier' => 'Calendrier',
189
+    'icone_configuration' => 'Configuration',
190
+    'icone_creer_auteur' => 'Créer une nouvelle autrice et l’associer à cet article',
191
+    'icone_creer_mot_cle' => 'Créer un nouveau mot-clé et le lier à cet article',
192
+    'icone_creer_rubrique_2' => 'Créer une nouvelle rubrique',
193
+    'icone_developpement' => 'Développement',
194
+    'icone_edition' => 'Édition',
195
+    'icone_ma_langue' => 'Ma langue',
196
+    'icone_mes_infos' => 'Mes informations',
197
+    'icone_mes_preferences' => 'Mes préférences',
198
+    'icone_modifier_article' => 'Modifier cet article',
199
+    'icone_modifier_rubrique' => 'Modifier cette rubrique',
200
+    'icone_publication' => 'Publication',
201
+    'icone_relancer_signataire' => 'Relancer la signataire',
202
+    'icone_retour' => 'Retour',
203
+    'icone_retour_article' => 'Retour à l’article',
204
+    'icone_squelette' => 'Squelettes',
205
+    'icone_suivi_publication' => 'Suivi de la publication',
206
+    'icone_supprimer_cookie' => 'Supprimer le cookie de correspondance',
207
+    'icone_supprimer_rubrique' => 'Supprimer cette rubrique',
208
+    'icone_supprimer_signature' => 'Supprimer cette signature',
209
+    'icone_valider_signature' => 'Valider cette signature',
210
+    'image_administrer_rubrique' => 'Vous pouvez administrer cette rubrique',
211
+    'impossible_modifier_login_auteur' => 'Impossible de modifier le login.',
212
+    'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.',
213
+    'info_1_article' => '1 article',
214
+    'info_1_auteur' => '1 autrice',
215
+    'info_1_message' => '1 message',
216
+    'info_1_mot_cle' => '1 mot-clé',
217
+    'info_1_rubrique' => '1 rubrique',
218
+    'info_1_visiteur' => '1 visiteuse',
219
+    'info_activer_cookie' => 'Vous pouvez activer un <b>cookie de correspondance</b>, ce qui vous
220 220
 	permettra de passer facilement du site public au site privé.',
221
-	'info_activer_menu_developpement' => 'Afficher le menu Développement',
222
-	'info_admin_etre_webmestre' => 'Me donner les droits de webmestre',
223
-	'info_admin_je_suis_webmestre' => 'Je suis <b>webmestre</b>',
224
-	'info_admin_statuer_webmestre' => 'Donner à cette administratrice les droits de webmestre',
225
-	'info_admin_webmestre' => 'Cette administratrice est <b>webmestre</b>',
226
-	'info_administrateur' => 'Administratrice',
227
-	'info_administrateur_1' => 'Administratrice',
228
-	'info_administrateur_2' => 'du site (<i>utilisez avec précaution</i>)',
229
-	'info_administrateur_site_01' => 'Si vous êtes administratrice du site, veuillez',
230
-	'info_administrateur_site_02' => 'cliquer sur ce lien',
231
-	'info_administrateurs' => 'Administratrices',
232
-	'info_administrer_rubrique' => 'Vous pouvez administrer cette rubrique',
233
-	'info_adresse' => 'à l’adresse :',
234
-	'info_adresse_desinscription' => 'Adresse de désinscription :',
235
-	'info_adresse_url' => 'Adresse (URL) du site public',
236
-	'info_afficher_par_nb' => 'Afficher par',
237
-	'info_aide_en_ligne' => 'Aide en ligne SPIP',
238
-	'info_ajout_image' => 'Lorsque vous ajoutez des images en tant que documents joints à un article,
221
+    'info_activer_menu_developpement' => 'Afficher le menu Développement',
222
+    'info_admin_etre_webmestre' => 'Me donner les droits de webmestre',
223
+    'info_admin_je_suis_webmestre' => 'Je suis <b>webmestre</b>',
224
+    'info_admin_statuer_webmestre' => 'Donner à cette administratrice les droits de webmestre',
225
+    'info_admin_webmestre' => 'Cette administratrice est <b>webmestre</b>',
226
+    'info_administrateur' => 'Administratrice',
227
+    'info_administrateur_1' => 'Administratrice',
228
+    'info_administrateur_2' => 'du site (<i>utilisez avec précaution</i>)',
229
+    'info_administrateur_site_01' => 'Si vous êtes administratrice du site, veuillez',
230
+    'info_administrateur_site_02' => 'cliquer sur ce lien',
231
+    'info_administrateurs' => 'Administratrices',
232
+    'info_administrer_rubrique' => 'Vous pouvez administrer cette rubrique',
233
+    'info_adresse' => 'à l’adresse :',
234
+    'info_adresse_desinscription' => 'Adresse de désinscription :',
235
+    'info_adresse_url' => 'Adresse (URL) du site public',
236
+    'info_afficher_par_nb' => 'Afficher par',
237
+    'info_aide_en_ligne' => 'Aide en ligne SPIP',
238
+    'info_ajout_image' => 'Lorsque vous ajoutez des images en tant que documents joints à un article,
239 239
 		SPIP peut créer pour vous, automatiquement, des vignettes (miniatures) des
240 240
 		images insérées. Cela permet par exemple de créer
241 241
 		automatiquement une galerie ou un portfolio.',
242
-	'info_ajouter_rubrique' => 'Ajouter une autre rubrique à administrer :',
243
-	'info_annonce_nouveautes' => 'Annonce des nouveautés',
244
-	'info_article' => 'article',
245
-	'info_article_2' => 'articles',
246
-	'info_article_a_paraitre' => 'Les articles post-datés à paraître',
247
-	'info_articles_02' => 'articles',
248
-	'info_articles_2' => 'Articles',
249
-	'info_articles_auteur' => 'Les articles de cette autrice',
250
-	'info_articles_miens' => 'Mes articles',
251
-	'info_articles_tous' => 'Tous les articles',
252
-	'info_articles_trouves' => 'Articles trouvés',
253
-	'info_attente_validation' => 'Vos articles en attente de validation',
254
-	'info_aucun_article' => 'Aucun article',
255
-	'info_aucun_auteur' => 'Aucune autrice',
256
-	'info_aucun_message' => 'Aucun message',
257
-	'info_aucun_rubrique' => 'Aucune rubrique',
258
-	'info_aujourdhui' => 'aujourd’hui :',
259
-	'info_auteur_gere_rubriques' => 'Cette autrice gère les rubriques suivantes :',
260
-	'info_auteur_gere_toutes_rubriques' => 'Cette autrice gère <b>toutes les rubriques</b>',
261
-	'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>',
262
-	'info_auteurs' => 'Les autrices',
263
-	'info_auteurs_par_tri' => 'Autrices@partri@',
264
-	'info_auteurs_trouves' => 'Autrices trouvées',
265
-	'info_authentification_externe' => 'Authentification externe',
266
-	'info_avertissement' => 'Avertissement',
267
-	'info_barre_outils' => 'avec sa barre d’outils ?',
268
-	'info_base_installee' => 'La structure de votre base de données est installée.',
269
-	'info_bio' => 'Biographie',
270
-	'info_cache_desactive' => 'Le cache est temporairement désactivé.',
271
-	'info_chapeau' => 'Chapeau',
272
-	'info_chapeau_2' => 'Chapeau :',
273
-	'info_chemin_acces_1' => 'Options : <b>Chemin d’accès dans l’annuaire</b>',
274
-	'info_chemin_acces_2' => 'Vous devez désormais configurer le chemin d’accès aux informations dans l’annuaire. Cette information est indispensable pour lire les profils utilisatrices stockés dans l’annuaire.',
275
-	'info_chemin_acces_annuaire' => 'Options : <b>Chemin d’accès dans l’annuaire</b>',
276
-	'info_choix_base' => 'Troisième étape :',
277
-	'info_classement_1' => '<sup>er</sup> sur @liste@',
278
-	'info_classement_2' => '<sup>e</sup> sur @liste@',
279
-	'info_code_acces' => 'N’oubliez pas vos propres codes d’accès !',
280
-	'info_config_suivi' => 'Si cette adresse correspond à une mailing-list, vous pouvez indiquer ci-dessous l’adresse à laquelle les participantes au site peuvent s’inscrire. Cette adresse peut être une URL (par exemple la page d’inscription à la liste par le Web), ou une adresse email dotée d’un sujet spécifique (par exemple : <tt>@adresse_suivi@?subject=subscribe</tt>) :',
281
-	'info_config_suivi_explication' => 'Vous pouvez vous abonner à la mailing-list de ce site. Vous recevrez alors par courrier électronique les annonces d’articles et de brèves proposés à la publication.',
282
-	'info_confirmer_passe' => 'Confirmer ce nouveau mot de passe :',
283
-	'info_conflit_edition_avis_non_sauvegarde' => 'Attention, les champs suivants ont été modifiés par ailleurs. Vos modifications sur ces champs n’ont donc pas été enregistrées.',
284
-	'info_conflit_edition_differences' => 'Différences :',
285
-	'info_conflit_edition_version_enregistree' => 'La version enregistrée :',
286
-	'info_conflit_edition_votre_version' => 'Votre version :',
287
-	'info_connexion_base' => 'Essai de connexion à la base',
288
-	'info_connexion_base_donnee' => 'Connexion à votre base de données',
289
-	'info_connexion_ldap_ok' => '<b>La connexion LDAP a réussi.</b><p> Vous pouvez passer à l’étape suivante.</p>',
290
-	'info_connexion_mysql' => 'Votre connexion SQL',
291
-	'info_connexion_ok' => 'La connexion a réussi.',
292
-	'info_contact' => 'Contact',
293
-	'info_contenu_articles' => 'Contenu des articles',
294
-	'info_contributions' => 'Contributions',
295
-	'info_creation_paragraphe' => 'Pour créer des paragraphes, laissez simplement des lignes vides.',
296
-	'info_creation_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer au moins une rubrique.<br />',
297
-	'info_creation_tables' => 'Création des tables de la base',
298
-	'info_creer_base' => '<b>Créer</b> une nouvelle base de données :',
299
-	'info_dans_rubrique' => 'Dans la rubrique :',
300
-	'info_date_publication_anterieure' => 'Date de rédaction antérieure :',
301
-	'info_date_referencement' => 'DATE DE RÉFÉRENCEMENT DE CE SITE :',
302
-	'info_derniere_etape' => 'C’est terminé !',
303
-	'info_descriptif' => 'Descriptif :',
304
-	'info_desinstaller_plugin' => 'supprime les données et désactive le plugin',
305
-	'info_discussion_cours' => 'Discussions en cours',
306
-	'info_ecrire_article' => 'Avant de pouvoir écrire des articles, vous devez créer au moins une rubrique.',
307
-	'info_email_envoi' => 'Adresse email d’envoi (optionnel)',
308
-	'info_email_envoi_txt' => 'Indiquez ici l’adresse à utiliser pour envoyer les emails (à défaut, l’adresse destinataire sera utilisée comme adresse d’envoi) :',
309
-	'info_email_webmestre' => 'Adresse e-mail de la webmestre',
310
-	'info_envoi_email_automatique' => 'Envoi de mails automatique',
311
-	'info_envoyer_maintenant' => 'Envoyer maintenant',
312
-	'info_etape_suivante' => 'Passer à l’étape suivante',
313
-	'info_etape_suivante_1' => 'Vous pouvez passer à l’étape suivante.',
314
-	'info_etape_suivante_2' => 'Vous pouvez passer à l’étape suivante.',
315
-	'info_exceptions_proxy' => 'Exceptions pour le proxy',
316
-	'info_exportation_base' => 'exportation de la base vers @archive@',
317
-	'info_facilite_suivi_activite' => 'Afin de faciliter le suivi de l’activité
242
+    'info_ajouter_rubrique' => 'Ajouter une autre rubrique à administrer :',
243
+    'info_annonce_nouveautes' => 'Annonce des nouveautés',
244
+    'info_article' => 'article',
245
+    'info_article_2' => 'articles',
246
+    'info_article_a_paraitre' => 'Les articles post-datés à paraître',
247
+    'info_articles_02' => 'articles',
248
+    'info_articles_2' => 'Articles',
249
+    'info_articles_auteur' => 'Les articles de cette autrice',
250
+    'info_articles_miens' => 'Mes articles',
251
+    'info_articles_tous' => 'Tous les articles',
252
+    'info_articles_trouves' => 'Articles trouvés',
253
+    'info_attente_validation' => 'Vos articles en attente de validation',
254
+    'info_aucun_article' => 'Aucun article',
255
+    'info_aucun_auteur' => 'Aucune autrice',
256
+    'info_aucun_message' => 'Aucun message',
257
+    'info_aucun_rubrique' => 'Aucune rubrique',
258
+    'info_aujourdhui' => 'aujourd’hui :',
259
+    'info_auteur_gere_rubriques' => 'Cette autrice gère les rubriques suivantes :',
260
+    'info_auteur_gere_toutes_rubriques' => 'Cette autrice gère <b>toutes les rubriques</b>',
261
+    'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>',
262
+    'info_auteurs' => 'Les autrices',
263
+    'info_auteurs_par_tri' => 'Autrices@partri@',
264
+    'info_auteurs_trouves' => 'Autrices trouvées',
265
+    'info_authentification_externe' => 'Authentification externe',
266
+    'info_avertissement' => 'Avertissement',
267
+    'info_barre_outils' => 'avec sa barre d’outils ?',
268
+    'info_base_installee' => 'La structure de votre base de données est installée.',
269
+    'info_bio' => 'Biographie',
270
+    'info_cache_desactive' => 'Le cache est temporairement désactivé.',
271
+    'info_chapeau' => 'Chapeau',
272
+    'info_chapeau_2' => 'Chapeau :',
273
+    'info_chemin_acces_1' => 'Options : <b>Chemin d’accès dans l’annuaire</b>',
274
+    'info_chemin_acces_2' => 'Vous devez désormais configurer le chemin d’accès aux informations dans l’annuaire. Cette information est indispensable pour lire les profils utilisatrices stockés dans l’annuaire.',
275
+    'info_chemin_acces_annuaire' => 'Options : <b>Chemin d’accès dans l’annuaire</b>',
276
+    'info_choix_base' => 'Troisième étape :',
277
+    'info_classement_1' => '<sup>er</sup> sur @liste@',
278
+    'info_classement_2' => '<sup>e</sup> sur @liste@',
279
+    'info_code_acces' => 'N’oubliez pas vos propres codes d’accès !',
280
+    'info_config_suivi' => 'Si cette adresse correspond à une mailing-list, vous pouvez indiquer ci-dessous l’adresse à laquelle les participantes au site peuvent s’inscrire. Cette adresse peut être une URL (par exemple la page d’inscription à la liste par le Web), ou une adresse email dotée d’un sujet spécifique (par exemple : <tt>@adresse_suivi@?subject=subscribe</tt>) :',
281
+    'info_config_suivi_explication' => 'Vous pouvez vous abonner à la mailing-list de ce site. Vous recevrez alors par courrier électronique les annonces d’articles et de brèves proposés à la publication.',
282
+    'info_confirmer_passe' => 'Confirmer ce nouveau mot de passe :',
283
+    'info_conflit_edition_avis_non_sauvegarde' => 'Attention, les champs suivants ont été modifiés par ailleurs. Vos modifications sur ces champs n’ont donc pas été enregistrées.',
284
+    'info_conflit_edition_differences' => 'Différences :',
285
+    'info_conflit_edition_version_enregistree' => 'La version enregistrée :',
286
+    'info_conflit_edition_votre_version' => 'Votre version :',
287
+    'info_connexion_base' => 'Essai de connexion à la base',
288
+    'info_connexion_base_donnee' => 'Connexion à votre base de données',
289
+    'info_connexion_ldap_ok' => '<b>La connexion LDAP a réussi.</b><p> Vous pouvez passer à l’étape suivante.</p>',
290
+    'info_connexion_mysql' => 'Votre connexion SQL',
291
+    'info_connexion_ok' => 'La connexion a réussi.',
292
+    'info_contact' => 'Contact',
293
+    'info_contenu_articles' => 'Contenu des articles',
294
+    'info_contributions' => 'Contributions',
295
+    'info_creation_paragraphe' => 'Pour créer des paragraphes, laissez simplement des lignes vides.',
296
+    'info_creation_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer au moins une rubrique.<br />',
297
+    'info_creation_tables' => 'Création des tables de la base',
298
+    'info_creer_base' => '<b>Créer</b> une nouvelle base de données :',
299
+    'info_dans_rubrique' => 'Dans la rubrique :',
300
+    'info_date_publication_anterieure' => 'Date de rédaction antérieure :',
301
+    'info_date_referencement' => 'DATE DE RÉFÉRENCEMENT DE CE SITE :',
302
+    'info_derniere_etape' => 'C’est terminé !',
303
+    'info_descriptif' => 'Descriptif :',
304
+    'info_desinstaller_plugin' => 'supprime les données et désactive le plugin',
305
+    'info_discussion_cours' => 'Discussions en cours',
306
+    'info_ecrire_article' => 'Avant de pouvoir écrire des articles, vous devez créer au moins une rubrique.',
307
+    'info_email_envoi' => 'Adresse email d’envoi (optionnel)',
308
+    'info_email_envoi_txt' => 'Indiquez ici l’adresse à utiliser pour envoyer les emails (à défaut, l’adresse destinataire sera utilisée comme adresse d’envoi) :',
309
+    'info_email_webmestre' => 'Adresse e-mail de la webmestre',
310
+    'info_envoi_email_automatique' => 'Envoi de mails automatique',
311
+    'info_envoyer_maintenant' => 'Envoyer maintenant',
312
+    'info_etape_suivante' => 'Passer à l’étape suivante',
313
+    'info_etape_suivante_1' => 'Vous pouvez passer à l’étape suivante.',
314
+    'info_etape_suivante_2' => 'Vous pouvez passer à l’étape suivante.',
315
+    'info_exceptions_proxy' => 'Exceptions pour le proxy',
316
+    'info_exportation_base' => 'exportation de la base vers @archive@',
317
+    'info_facilite_suivi_activite' => 'Afin de faciliter le suivi de l’activité
318 318
 		éditoriale du site, SPIP peut faire parvenir par mail, par exemple
319 319
 		à une mailing-list des rédactrices, l’annonce des demandes de
320 320
 		publication et des validations d’articles.',
321
-	'info_fichiers_authent' => 'Fichiers d’authentification « .htpasswd »',
322
-	'info_forums_abo_invites' => 'Votre site comporte des forums sur abonnement ; les visiteuses sont donc invitées à s’enregistrer sur le site public.',
323
-	'info_gauche_admin_tech' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes
321
+    'info_fichiers_authent' => 'Fichiers d’authentification « .htpasswd »',
322
+    'info_forums_abo_invites' => 'Votre site comporte des forums sur abonnement ; les visiteuses sont donc invitées à s’enregistrer sur le site public.',
323
+    'info_gauche_admin_tech' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes
324 324
 fonctions de maintenance technique. Certaines d’entre elles donnent lieu à un processus d’authentification spécifique, qui
325 325
 exige d’avoir un accès FTP au site Web.</p>',
326
-	'info_gauche_admin_vider' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes
326
+    'info_gauche_admin_vider' => '<b>Cette page est uniquement accessible aux responsables du site.</b><p> Elle donne accès aux différentes
327 327
 fonctions de maintenance technique. Certaines d’entre elles donnent lieu à un processus d’authentification spécifique, qui
328 328
 exige d’avoir un accès FTP au site Web.</p>',
329
-	'info_gauche_auteurs' => 'Vous trouverez ici toutes les autrices du site.
329
+    'info_gauche_auteurs' => 'Vous trouverez ici toutes les autrices du site.
330 330
  Leur statut est indiqué par la couleur de leur icone (administratrice = vert ; rédactrice = jaune).',
331
-	'info_gauche_auteurs_exterieurs' => 'Les autrices extérieures, sans accès au site, sont indiquées par une icone bleue ;
331
+    'info_gauche_auteurs_exterieurs' => 'Les autrices extérieures, sans accès au site, sont indiquées par une icone bleue ;
332 332
 		les autrices effacées par une icone grise.',
333
-	'info_gauche_messagerie' => 'La messagerie vous permet d’échanger des messages entre rédactrices, de conserver des pense-bêtes (pour votre usage personnel) ou d’afficher des annonces sur la page d’accueil de l’espace privé (si vous êtes administratrice).',
334
-	'info_gauche_statistiques_referers' => 'Cette page présente la liste des <i>referers</i>, c’est-à-dire des sites contenant des liens menant vers votre propre site, uniquement pour hier et aujourd’hui ; cette liste est remise à zéro toutes les 24 heures.',
335
-	'info_gauche_visiteurs_enregistres' => 'Vous trouverez ici les visiteuses enregistrées
333
+    'info_gauche_messagerie' => 'La messagerie vous permet d’échanger des messages entre rédactrices, de conserver des pense-bêtes (pour votre usage personnel) ou d’afficher des annonces sur la page d’accueil de l’espace privé (si vous êtes administratrice).',
334
+    'info_gauche_statistiques_referers' => 'Cette page présente la liste des <i>referers</i>, c’est-à-dire des sites contenant des liens menant vers votre propre site, uniquement pour hier et aujourd’hui ; cette liste est remise à zéro toutes les 24 heures.',
335
+    'info_gauche_visiteurs_enregistres' => 'Vous trouverez ici les visiteuses enregistrées
336 336
 	dans l’espace public du site (forums sur abonnement).',
337
-	'info_generation_miniatures_images' => 'Génération de miniatures des images',
338
-	'info_gerer_trad_objets' => '@objets@ : gérer les liens de traduction',
339
-	'info_hebergeur_desactiver_envoi_email' => 'Certains hébergeurs désactivent l’envoi automatique de
337
+    'info_generation_miniatures_images' => 'Génération de miniatures des images',
338
+    'info_gerer_trad_objets' => '@objets@ : gérer les liens de traduction',
339
+    'info_hebergeur_desactiver_envoi_email' => 'Certains hébergeurs désactivent l’envoi automatique de
340 340
 		mails depuis leurs serveurs. Dans ce cas, les fonctionnalités suivantes
341 341
 		de SPIP ne fonctionneront pas.',
342
-	'info_hier' => 'hier :',
343
-	'info_identification_publique' => 'Votre identité publique...',
344
-	'info_image_process' => 'Veuillez sélectionner la meilleure méthode de fabrication des vignettes en cliquant sur l’image correspondante.',
345
-	'info_image_process2' => 'Si aucune image n’apparaît, alors le serveur qui héberge votre site n’a pas été configuré pour utiliser de tels outils. Si vous souhaitez utiliser ces fonctions, contactez la responsable technique et demandez les extensions « GD » ou « Imagick ».',
346
-	'info_images_auto' => 'Images calculées automatiquement',
347
-	'info_informations_personnelles' => 'Informations personnelles',
348
-	'info_inscription' => 'Inscription le',
349
-	'info_inscription_automatique' => 'Inscription automatique de nouvelles rédactrices',
350
-	'info_jeu_caractere' => 'Jeu de caractères du site',
351
-	'info_jours' => 'jours',
352
-	'info_laisser_champs_vides' => 'laisser ces champs vides)',
353
-	'info_langues' => 'Langues du site',
354
-	'info_ldap_ok' => 'L’authentification LDAP est installée.',
355
-	'info_lien_hypertexte' => 'Lien hypertexte :',
356
-	'info_liste_nouveautes_envoyee' => 'La liste des nouveautés a été envoyée',
357
-	'info_liste_redacteurs_connectes' => 'Liste des rédactrices connectées',
358
-	'info_login_existant' => 'Ce login existe déjà.',
359
-	'info_login_trop_court' => 'Login trop court.',
360
-	'info_login_trop_court_car_pluriel' => 'Le login doit contenir au moins @nb@ caractères.',
361
-	'info_logos' => 'Les logos',
362
-	'info_maximum' => 'maximum :',
363
-	'info_meme_rubrique' => 'Dans la même rubrique',
364
-	'info_message_en_redaction' => 'Vos messages en cours de rédaction',
365
-	'info_message_technique' => 'Message technique :',
366
-	'info_messagerie_interne' => 'Messagerie interne',
367
-	'info_mise_a_niveau_base' => 'mise à niveau de votre base SQL',
368
-	'info_mise_a_niveau_base_2' => '{{Attention !}} Vous avez installé une version
342
+    'info_hier' => 'hier :',
343
+    'info_identification_publique' => 'Votre identité publique...',
344
+    'info_image_process' => 'Veuillez sélectionner la meilleure méthode de fabrication des vignettes en cliquant sur l’image correspondante.',
345
+    'info_image_process2' => 'Si aucune image n’apparaît, alors le serveur qui héberge votre site n’a pas été configuré pour utiliser de tels outils. Si vous souhaitez utiliser ces fonctions, contactez la responsable technique et demandez les extensions « GD » ou « Imagick ».',
346
+    'info_images_auto' => 'Images calculées automatiquement',
347
+    'info_informations_personnelles' => 'Informations personnelles',
348
+    'info_inscription' => 'Inscription le',
349
+    'info_inscription_automatique' => 'Inscription automatique de nouvelles rédactrices',
350
+    'info_jeu_caractere' => 'Jeu de caractères du site',
351
+    'info_jours' => 'jours',
352
+    'info_laisser_champs_vides' => 'laisser ces champs vides)',
353
+    'info_langues' => 'Langues du site',
354
+    'info_ldap_ok' => 'L’authentification LDAP est installée.',
355
+    'info_lien_hypertexte' => 'Lien hypertexte :',
356
+    'info_liste_nouveautes_envoyee' => 'La liste des nouveautés a été envoyée',
357
+    'info_liste_redacteurs_connectes' => 'Liste des rédactrices connectées',
358
+    'info_login_existant' => 'Ce login existe déjà.',
359
+    'info_login_trop_court' => 'Login trop court.',
360
+    'info_login_trop_court_car_pluriel' => 'Le login doit contenir au moins @nb@ caractères.',
361
+    'info_logos' => 'Les logos',
362
+    'info_maximum' => 'maximum :',
363
+    'info_meme_rubrique' => 'Dans la même rubrique',
364
+    'info_message_en_redaction' => 'Vos messages en cours de rédaction',
365
+    'info_message_technique' => 'Message technique :',
366
+    'info_messagerie_interne' => 'Messagerie interne',
367
+    'info_mise_a_niveau_base' => 'mise à niveau de votre base SQL',
368
+    'info_mise_a_niveau_base_2' => '{{Attention !}} Vous avez installé une version
369 369
 		des fichiers SPIP {antérieure} à celle qui se trouvait
370 370
 		auparavant sur ce site : votre base de données risque d’être
371 371
 		perdue et votre site ne fonctionnera plus.<br />{{Réinstallez les
372 372
 		fichiers de SPIP.}}',
373
-	'info_modification_enregistree' => 'Votre modification a été enregistrée',
374
-	'info_modifier_auteur' => 'Modifier l’autrice :',
375
-	'info_modifier_rubrique' => 'Modifier la rubrique :',
376
-	'info_modifier_titre' => 'Modifier : @titre@',
377
-	'info_mon_site_spip' => 'Mon site SPIP',
378
-	'info_moyenne' => 'moyenne :',
379
-	'info_multi_cet_article' => 'Langue de cet article :',
380
-	'info_multi_langues_choisies' => 'Veuillez sélectionner ci-après les langues à disposition des rédactrices de votre site.
373
+    'info_modification_enregistree' => 'Votre modification a été enregistrée',
374
+    'info_modifier_auteur' => 'Modifier l’autrice :',
375
+    'info_modifier_rubrique' => 'Modifier la rubrique :',
376
+    'info_modifier_titre' => 'Modifier : @titre@',
377
+    'info_mon_site_spip' => 'Mon site SPIP',
378
+    'info_moyenne' => 'moyenne :',
379
+    'info_multi_cet_article' => 'Langue de cet article :',
380
+    'info_multi_langues_choisies' => 'Veuillez sélectionner ci-après les langues à disposition des rédactrices de votre site.
381 381
 		Les langues déjà utilisées dans votre site (affichées en premier) ne peuvent pas être désactivées.',
382
-	'info_multi_objets' => '@objets@ : activer le menu de langue',
383
-	'info_multi_secteurs' => '... seulement pour les rubriques situées à la racine ?',
384
-	'info_nb_articles' => '@nb@ articles',
385
-	'info_nb_auteurs' => '@nb@ autrices',
386
-	'info_nb_messages' => '@nb@ messages',
387
-	'info_nb_mots_cles' => '@nb@ mots-clés',
388
-	'info_nb_rubriques' => '@nb@ rubriques',
389
-	'info_nb_visiteurs' => '@nb@ visiteuses',
390
-	'info_nom' => 'Nom',
391
-	'info_nom_destinataire' => 'Nom de la destinataire',
392
-	'info_nom_pas_conforme' => 'les tags html ne sont pas autorisés',
393
-	'info_nom_site' => 'Nom de votre site',
394
-	'info_nombre_articles' => '@nb_articles@ articles,',
395
-	'info_nombre_rubriques' => '@nb_rubriques@ rubriques,',
396
-	'info_nombre_sites' => '@nb_sites@ sites,',
397
-	'info_non_deplacer' => 'Ne pas déplacer...',
398
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP peut envoyer, régulièrement, l’annonce des dernières nouveautés du site
382
+    'info_multi_objets' => '@objets@ : activer le menu de langue',
383
+    'info_multi_secteurs' => '... seulement pour les rubriques situées à la racine ?',
384
+    'info_nb_articles' => '@nb@ articles',
385
+    'info_nb_auteurs' => '@nb@ autrices',
386
+    'info_nb_messages' => '@nb@ messages',
387
+    'info_nb_mots_cles' => '@nb@ mots-clés',
388
+    'info_nb_rubriques' => '@nb@ rubriques',
389
+    'info_nb_visiteurs' => '@nb@ visiteuses',
390
+    'info_nom' => 'Nom',
391
+    'info_nom_destinataire' => 'Nom de la destinataire',
392
+    'info_nom_pas_conforme' => 'les tags html ne sont pas autorisés',
393
+    'info_nom_site' => 'Nom de votre site',
394
+    'info_nombre_articles' => '@nb_articles@ articles,',
395
+    'info_nombre_rubriques' => '@nb_rubriques@ rubriques,',
396
+    'info_nombre_sites' => '@nb_sites@ sites,',
397
+    'info_non_deplacer' => 'Ne pas déplacer...',
398
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP peut envoyer, régulièrement, l’annonce des dernières nouveautés du site
399 399
 		(articles et brèves récemment publiés).',
400
-	'info_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés',
401
-	'info_non_modifiable' => 'ne peut pas être modifié',
402
-	'info_non_suppression_mot_cle' => 'je ne veux pas supprimer ce mot-clé.',
403
-	'info_notes' => 'Notes',
404
-	'info_nouvel_article' => 'Nouvel article',
405
-	'info_nouvelle_traduction' => 'Nouvelle traduction :',
406
-	'info_numero_article' => 'ARTICLE NUMÉRO :',
407
-	'info_obligatoire_02' => '(obligatoire)',
408
-	'info_option_accepter_visiteurs' => 'Accepter l’inscription de visiteuses du site public',
409
-	'info_option_ne_pas_accepter_visiteurs' => 'Refuser l’inscription des visiteuses',
410
-	'info_options_avancees' => 'OPTIONS AVANCÉES',
411
-	'info_ou' => 'ou...',
412
-	'info_page_interdite' => 'Page interdite',
413
-	'info_par_nom' => 'par nom',
414
-	'info_par_nombre_article' => 'par nombre d’articles',
415
-	'info_par_statut' => 'par statut',
416
-	'info_par_tri' => '’(par @tri@)’',
417
-	'info_passe_trop_court' => 'Mot de passe trop court.',
418
-	'info_passe_trop_court_car_pluriel' => 'Le mot de passe doit contenir au moins @nb@ caractères.',
419
-	'info_passes_identiques' => 'Les deux mots de passe ne sont pas identiques.',
420
-	'info_plus_cinq_car' => 'plus de 5 caractères',
421
-	'info_plus_cinq_car_2' => '(Plus de 5 caractères)',
422
-	'info_plus_trois_car' => '(Plus de 3 caractères)',
423
-	'info_popularite' => 'popularité : @popularite@ ; visites : @visites@',
424
-	'info_post_scriptum' => 'Post-Scriptum',
425
-	'info_post_scriptum_2' => 'Post-scriptum :',
426
-	'info_pour' => 'pour',
427
-	'info_preview_texte' => 'Il est possible de prévisualiser le site comme si tous les articles et les brèves (ayant au moins le statut « proposé ») étaient publiés. Cette possibilité doit-elle être ouverte aux administratrices seulement, à toutes les rédactrices, ou à personne ?',
428
-	'info_procedez_par_etape' => 'procédez étape par étape',
429
-	'info_procedure_maj_version' => 'la procédure de mise à jour doit être lancée afin d’adapter
400
+    'info_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés',
401
+    'info_non_modifiable' => 'ne peut pas être modifié',
402
+    'info_non_suppression_mot_cle' => 'je ne veux pas supprimer ce mot-clé.',
403
+    'info_notes' => 'Notes',
404
+    'info_nouvel_article' => 'Nouvel article',
405
+    'info_nouvelle_traduction' => 'Nouvelle traduction :',
406
+    'info_numero_article' => 'ARTICLE NUMÉRO :',
407
+    'info_obligatoire_02' => '(obligatoire)',
408
+    'info_option_accepter_visiteurs' => 'Accepter l’inscription de visiteuses du site public',
409
+    'info_option_ne_pas_accepter_visiteurs' => 'Refuser l’inscription des visiteuses',
410
+    'info_options_avancees' => 'OPTIONS AVANCÉES',
411
+    'info_ou' => 'ou...',
412
+    'info_page_interdite' => 'Page interdite',
413
+    'info_par_nom' => 'par nom',
414
+    'info_par_nombre_article' => 'par nombre d’articles',
415
+    'info_par_statut' => 'par statut',
416
+    'info_par_tri' => '’(par @tri@)’',
417
+    'info_passe_trop_court' => 'Mot de passe trop court.',
418
+    'info_passe_trop_court_car_pluriel' => 'Le mot de passe doit contenir au moins @nb@ caractères.',
419
+    'info_passes_identiques' => 'Les deux mots de passe ne sont pas identiques.',
420
+    'info_plus_cinq_car' => 'plus de 5 caractères',
421
+    'info_plus_cinq_car_2' => '(Plus de 5 caractères)',
422
+    'info_plus_trois_car' => '(Plus de 3 caractères)',
423
+    'info_popularite' => 'popularité : @popularite@ ; visites : @visites@',
424
+    'info_post_scriptum' => 'Post-Scriptum',
425
+    'info_post_scriptum_2' => 'Post-scriptum :',
426
+    'info_pour' => 'pour',
427
+    'info_preview_texte' => 'Il est possible de prévisualiser le site comme si tous les articles et les brèves (ayant au moins le statut « proposé ») étaient publiés. Cette possibilité doit-elle être ouverte aux administratrices seulement, à toutes les rédactrices, ou à personne ?',
428
+    'info_procedez_par_etape' => 'procédez étape par étape',
429
+    'info_procedure_maj_version' => 'la procédure de mise à jour doit être lancée afin d’adapter
430 430
 	la base de données à la nouvelle version de SPIP.',
431
-	'info_proxy_ok' => 'Test du proxy réussi.',
432
-	'info_ps' => 'P.-S.',
433
-	'info_publier' => 'publier',
434
-	'info_publies' => 'Vos articles publiés en ligne',
435
-	'info_question_accepter_visiteurs' => 'Si les squelettes de votre site prévoient l’enregistrement de visiteuses sans accès à l’espace privé, veuillez activer l’option ci-dessous :',
436
-	'info_question_inscription_nouveaux_redacteurs' => 'Acceptez-vous les inscriptions de nouvelles rédactrices à
431
+    'info_proxy_ok' => 'Test du proxy réussi.',
432
+    'info_ps' => 'P.-S.',
433
+    'info_publier' => 'publier',
434
+    'info_publies' => 'Vos articles publiés en ligne',
435
+    'info_question_accepter_visiteurs' => 'Si les squelettes de votre site prévoient l’enregistrement de visiteuses sans accès à l’espace privé, veuillez activer l’option ci-dessous :',
436
+    'info_question_inscription_nouveaux_redacteurs' => 'Acceptez-vous les inscriptions de nouvelles rédactrices à
437 437
   partir du site public ? Si vous acceptez, les visiteuses pourront s’inscrire
438 438
   depuis un formulaire automatisé et accéderont alors à l’espace privé pour
439 439
   proposer leurs propres articles. <div class="notice">Lors de la phase d’inscription,
@@ -442,403 +442,403 @@  discard block
 block discarded – undo
442 442
   hébergeurs désactivent l’envoi de mails depuis leurs
443 443
   serveurs : dans ce cas, l’inscription automatique est
444 444
   impossible.</div>',
445
-	'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes',
446
-	'info_racine_site' => 'Racine du site',
447
-	'info_recharger_page' => 'Veuillez recharger cette page dans quelques instants.',
448
-	'info_recherche_auteur_zero' => 'Aucun résultat pour « @cherche_auteur@ ».',
449
-	'info_recommencer' => 'Veuillez recommencer.',
450
-	'info_redacteur_1' => 'Rédactrice',
451
-	'info_redacteur_2' => 'ayant accès à l’espace privé (<i>recommandé</i>)',
452
-	'info_redacteurs' => 'Rédactrices',
453
-	'info_redaction_en_cours' => 'EN COURS DE RÉDACTION',
454
-	'info_redirection' => 'Redirection',
455
-	'info_redirection_activee' => 'La redirection est activée.',
456
-	'info_redirection_boucle' => 'Vous essayez de rediriger l’article sur lui-même.',
457
-	'info_redirection_desactivee' => 'La redirection a été supprimée.',
458
-	'info_refuses' => 'Vos articles refusés',
459
-	'info_reglage_ldap' => 'Options : <b>Réglage de l’importation LDAP</b>',
460
-	'info_renvoi_article' => '<b>Redirection.</b> Cet article renvoie à la page :',
461
-	'info_reserve_admin' => 'Seuls les administratrices peuvent modifier cette adresse.',
462
-	'info_restreindre_rubrique' => 'Restreindre la gestion à la rubrique :',
463
-	'info_resultat_recherche' => 'Résultats de la recherche :',
464
-	'info_rubriques' => 'Rubriques',
465
-	'info_rubriques_02' => 'rubriques',
466
-	'info_rubriques_trouvees' => 'Rubriques trouvées',
467
-	'info_sans_titre' => 'Sans titre',
468
-	'info_selection_chemin_acces' => '<b>Sélectionnez</b> ci-après le chemin d’accès dans l’annuaire :',
469
-	'info_signatures' => 'signatures',
470
-	'info_site' => 'Site',
471
-	'info_site_2' => 'site :',
472
-	'info_site_min' => 'site',
473
-	'info_site_reference_2' => 'Site référencé',
474
-	'info_site_web' => 'Site Web :',
475
-	'info_sites' => 'sites',
476
-	'info_sites_lies_mot' => 'Les sites référencés liés à ce mot-clé',
477
-	'info_sites_proxy' => 'Utiliser un proxy',
478
-	'info_sites_trouves' => 'Sites trouvés',
479
-	'info_sous_titre' => 'Soustitre :',
480
-	'info_statut_administrateur' => 'Administratrice',
481
-	'info_statut_auteur' => 'Statut de cette autrice :',
482
-	'info_statut_auteur_2' => 'Je suis',
483
-	'info_statut_auteur_a_confirmer' => 'Inscription à confirmer',
484
-	'info_statut_auteur_autre' => 'Autre statut :',
485
-	'info_statut_redacteur' => 'Rédactrice',
486
-	'info_statut_utilisateurs_1' => 'Statut par défaut des utilisatrices importées',
487
-	'info_statut_utilisateurs_2' => 'Choisissez le statut qui est attribué aux personnes présentes dans l’annuaire LDAP lorsqu’elles se connectent pour la première fois. Vous pourrez par la suite modifier cette valeur pour chaque autrice au cas par cas.',
488
-	'info_suivi_activite' => 'Suivi de l’activité éditoriale',
489
-	'info_surtitre' => 'Surtitre :',
490
-	'info_syndication_integrale_1' => 'Votre site propose des fichiers de syndication (voir « <a href="@url@">@titre@</a> »).',
491
-	'info_syndication_integrale_2' => 'Souhaitez-vous transmettre les articles dans leur intégralité, ou ne diffuser qu’un résumé de quelques centaines de caractères ?',
492
-	'info_table_prefix' => 'Vous pouvez modifier le préfixe du nom des tables de données (ceci est indispensable lorsque l’on souhaite installer plusieurs sites dans la même base de données). Ce préfixe s’écrit en lettres minuscules, non accentuées, et sans espace.',
493
-	'info_taille_maximale_images' => 'SPIP va tester la taille maximale des images qu’il peut traiter (en millions de pixels).<br /> Les images plus grandes ne seront pas réduites.',
494
-	'info_taille_maximale_vignette' => 'Taille maximale des vignettes générées par le système :',
495
-	'info_terminer_installation' => 'Vous pouvez maintenant terminer la procédure d’installation standard.',
496
-	'info_texte' => 'Texte',
497
-	'info_texte_explicatif' => 'Texte explicatif',
498
-	'info_texte_long' => '(le texte est long : il apparaît donc en plusieurs parties qui seront recollées après validation.)',
499
-	'info_texte_message' => 'Texte de votre message',
500
-	'info_texte_message_02' => 'Texte du message',
501
-	'info_titre' => 'Titre :',
502
-	'info_total' => 'total :',
503
-	'info_tous_articles_en_redaction' => 'Tous les articles en cours de rédaction',
504
-	'info_tous_articles_presents' => 'Tous les articles publiés dans cette rubrique',
505
-	'info_tous_articles_refuses' => 'Tous les articles refusés',
506
-	'info_tous_les' => 'tous les :',
507
-	'info_tout_site' => 'Tout le site',
508
-	'info_tout_site2' => 'L’article n’a pas été traduit dans cette langue.',
509
-	'info_tout_site3' => 'L’article a été traduit dans cette langue, mais des modifications ont été apportées par la suite à l’article de référence. La traduction doit être mise à jour.',
510
-	'info_tout_site4' => 'L’article a été traduit dans cette langue, et la traduction est à jour.',
511
-	'info_tout_site5' => 'Article original.',
512
-	'info_tout_site6' => '<b>Attention :</b> seuls les articles originaux sont affichés.
445
+    'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes',
446
+    'info_racine_site' => 'Racine du site',
447
+    'info_recharger_page' => 'Veuillez recharger cette page dans quelques instants.',
448
+    'info_recherche_auteur_zero' => 'Aucun résultat pour « @cherche_auteur@ ».',
449
+    'info_recommencer' => 'Veuillez recommencer.',
450
+    'info_redacteur_1' => 'Rédactrice',
451
+    'info_redacteur_2' => 'ayant accès à l’espace privé (<i>recommandé</i>)',
452
+    'info_redacteurs' => 'Rédactrices',
453
+    'info_redaction_en_cours' => 'EN COURS DE RÉDACTION',
454
+    'info_redirection' => 'Redirection',
455
+    'info_redirection_activee' => 'La redirection est activée.',
456
+    'info_redirection_boucle' => 'Vous essayez de rediriger l’article sur lui-même.',
457
+    'info_redirection_desactivee' => 'La redirection a été supprimée.',
458
+    'info_refuses' => 'Vos articles refusés',
459
+    'info_reglage_ldap' => 'Options : <b>Réglage de l’importation LDAP</b>',
460
+    'info_renvoi_article' => '<b>Redirection.</b> Cet article renvoie à la page :',
461
+    'info_reserve_admin' => 'Seuls les administratrices peuvent modifier cette adresse.',
462
+    'info_restreindre_rubrique' => 'Restreindre la gestion à la rubrique :',
463
+    'info_resultat_recherche' => 'Résultats de la recherche :',
464
+    'info_rubriques' => 'Rubriques',
465
+    'info_rubriques_02' => 'rubriques',
466
+    'info_rubriques_trouvees' => 'Rubriques trouvées',
467
+    'info_sans_titre' => 'Sans titre',
468
+    'info_selection_chemin_acces' => '<b>Sélectionnez</b> ci-après le chemin d’accès dans l’annuaire :',
469
+    'info_signatures' => 'signatures',
470
+    'info_site' => 'Site',
471
+    'info_site_2' => 'site :',
472
+    'info_site_min' => 'site',
473
+    'info_site_reference_2' => 'Site référencé',
474
+    'info_site_web' => 'Site Web :',
475
+    'info_sites' => 'sites',
476
+    'info_sites_lies_mot' => 'Les sites référencés liés à ce mot-clé',
477
+    'info_sites_proxy' => 'Utiliser un proxy',
478
+    'info_sites_trouves' => 'Sites trouvés',
479
+    'info_sous_titre' => 'Soustitre :',
480
+    'info_statut_administrateur' => 'Administratrice',
481
+    'info_statut_auteur' => 'Statut de cette autrice :',
482
+    'info_statut_auteur_2' => 'Je suis',
483
+    'info_statut_auteur_a_confirmer' => 'Inscription à confirmer',
484
+    'info_statut_auteur_autre' => 'Autre statut :',
485
+    'info_statut_redacteur' => 'Rédactrice',
486
+    'info_statut_utilisateurs_1' => 'Statut par défaut des utilisatrices importées',
487
+    'info_statut_utilisateurs_2' => 'Choisissez le statut qui est attribué aux personnes présentes dans l’annuaire LDAP lorsqu’elles se connectent pour la première fois. Vous pourrez par la suite modifier cette valeur pour chaque autrice au cas par cas.',
488
+    'info_suivi_activite' => 'Suivi de l’activité éditoriale',
489
+    'info_surtitre' => 'Surtitre :',
490
+    'info_syndication_integrale_1' => 'Votre site propose des fichiers de syndication (voir « <a href="@url@">@titre@</a> »).',
491
+    'info_syndication_integrale_2' => 'Souhaitez-vous transmettre les articles dans leur intégralité, ou ne diffuser qu’un résumé de quelques centaines de caractères ?',
492
+    'info_table_prefix' => 'Vous pouvez modifier le préfixe du nom des tables de données (ceci est indispensable lorsque l’on souhaite installer plusieurs sites dans la même base de données). Ce préfixe s’écrit en lettres minuscules, non accentuées, et sans espace.',
493
+    'info_taille_maximale_images' => 'SPIP va tester la taille maximale des images qu’il peut traiter (en millions de pixels).<br /> Les images plus grandes ne seront pas réduites.',
494
+    'info_taille_maximale_vignette' => 'Taille maximale des vignettes générées par le système :',
495
+    'info_terminer_installation' => 'Vous pouvez maintenant terminer la procédure d’installation standard.',
496
+    'info_texte' => 'Texte',
497
+    'info_texte_explicatif' => 'Texte explicatif',
498
+    'info_texte_long' => '(le texte est long : il apparaît donc en plusieurs parties qui seront recollées après validation.)',
499
+    'info_texte_message' => 'Texte de votre message',
500
+    'info_texte_message_02' => 'Texte du message',
501
+    'info_titre' => 'Titre :',
502
+    'info_total' => 'total :',
503
+    'info_tous_articles_en_redaction' => 'Tous les articles en cours de rédaction',
504
+    'info_tous_articles_presents' => 'Tous les articles publiés dans cette rubrique',
505
+    'info_tous_articles_refuses' => 'Tous les articles refusés',
506
+    'info_tous_les' => 'tous les :',
507
+    'info_tout_site' => 'Tout le site',
508
+    'info_tout_site2' => 'L’article n’a pas été traduit dans cette langue.',
509
+    'info_tout_site3' => 'L’article a été traduit dans cette langue, mais des modifications ont été apportées par la suite à l’article de référence. La traduction doit être mise à jour.',
510
+    'info_tout_site4' => 'L’article a été traduit dans cette langue, et la traduction est à jour.',
511
+    'info_tout_site5' => 'Article original.',
512
+    'info_tout_site6' => '<b>Attention :</b> seuls les articles originaux sont affichés.
513 513
 Les traductions sont associées à l’original,
514 514
 dans une couleur qui indique leur état :',
515
-	'info_traductions' => 'Traductions',
516
-	'info_travail_colaboratif' => 'Travail collaboratif sur les articles',
517
-	'info_un_article' => 'un article,',
518
-	'info_un_site' => 'un site,',
519
-	'info_une_rubrique' => 'une rubrique,',
520
-	'info_une_rubrique_02' => '1 rubrique',
521
-	'info_url' => 'URL :',
522
-	'info_url_proxy' => 'URL du proxy',
523
-	'info_url_proxy_pas_conforme' => 'l’URL du proxy n’est pas valide.',
524
-	'info_url_site_pas_conforme' => 'l’URL du site n’est pas valide.',
525
-	'info_url_test_proxy' => 'URL de test',
526
-	'info_urlref' => 'Lien hypertexte :',
527
-	'info_utilisation_spip' => 'Vous pouvez maintenant commencer à utiliser le système de publication assistée...',
528
-	'info_visites_par_mois' => 'Affichage par mois :',
529
-	'info_visiteur_1' => 'Visiteuse',
530
-	'info_visiteur_2' => 'du site public',
531
-	'info_visiteurs' => 'Visiteuses',
532
-	'info_visiteurs_02' => 'Visiteuses du site public',
533
-	'info_webmestre_forces' => 'Les webmestres sont actuellement définies dans <tt>@file_options@</tt>.',
534
-	'install_adresse_base_hebergeur' => 'Adresse de la base de données attribuée par l’hébergeur',
535
-	'install_connect_ok' => 'La nouvelle base a bien été déclarée sous le nom de serveur @connect@.',
536
-	'install_echec_annonce' => 'L’installation va probablement échouer, ou aboutir à un site non fonctionnel...',
537
-	'install_extension_mbstring' => 'SPIP ne fonctionne pas avec :',
538
-	'install_extension_php_obligatoire' => 'SPIP exige l’extension php :',
539
-	'install_login_base_hebergeur' => 'Login de connexion attribué par l’hébergeur',
540
-	'install_nom_base_hebergeur' => 'Nom de la base attribué par l’hébergeur :',
541
-	'install_pas_table' => 'Base actuellement sans tables',
542
-	'install_pass_base_hebergeur' => 'Mot de passe de connexion attribué par l’hébergeur',
543
-	'install_php_version' => 'PHP version @version@ insuffisant (minimum = @minimum@)',
544
-	'install_select_langue' => 'Sélectionnez une langue puis cliquez sur le bouton « suivant » pour lancer la procédure d’installation.',
545
-	'install_select_type_db' => 'Indiquer le type de base de données :',
546
-	'install_select_type_mysql' => 'MySQL',
547
-	'install_select_type_pg' => 'PostgreSQL',
548
-	'install_select_type_sqlite2' => 'SQLite 2',
549
-	'install_select_type_sqlite3' => 'SQLite 3',
550
-	'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur',
551
-	'install_table_prefix_hebergeur' => 'Préfixe de table attribué par l’hébergeur :',
552
-	'install_tables_base' => 'Tables de la base',
553
-	'install_types_db_connus' => 'SPIP sait utiliser <b>MySQL</b> (le plus répandu) et <b>SQLite</b>.',
554
-	'install_types_db_connus_avertissement' => 'Le support de <b>PostgreSQL</b> est également proposé à titre experimental',
555
-	'instituer_erreur_statut_a_change' => 'Le statut a déjà été modifié',
556
-	'instituer_erreur_statut_non_autorise' => 'Vous ne pouvez pas choisir ce statut',
557
-	'intem_redacteur' => 'rédactrice',
558
-	'intitule_licence' => 'Licence',
559
-	'item_accepter_inscriptions' => 'Accepter les inscriptions',
560
-	'item_activer_messages_avertissement' => 'Activer les messages d’avertissement',
561
-	'item_administrateur_2' => 'administratrice',
562
-	'item_afficher_calendrier' => 'Afficher dans le calendrier',
563
-	'item_autoriser_syndication_integrale' => 'Diffuser l’intégralité des articles dans les fichiers de syndication',
564
-	'item_choix_administrateurs' => 'les administratrices',
565
-	'item_choix_generation_miniature' => 'Générer automatiquement les miniatures des images.',
566
-	'item_choix_non_generation_miniature' => 'Ne pas générer de miniatures des images.',
567
-	'item_choix_redacteurs' => 'les rédactrices',
568
-	'item_choix_visiteurs' => 'les visiteuses du site public',
569
-	'item_creer_fichiers_authent' => 'Créer les fichiers .htpasswd',
570
-	'item_login' => 'Login',
571
-	'item_messagerie_agenda' => 'Activer la messagerie et l’agenda',
572
-	'item_mots_cles_association_articles' => 'aux articles',
573
-	'item_mots_cles_association_rubriques' => 'aux rubriques',
574
-	'item_mots_cles_association_sites' => 'aux sites référencés ou syndiqués.',
575
-	'item_non' => 'Non',
576
-	'item_non_accepter_inscriptions' => 'Ne pas accepter les inscriptions',
577
-	'item_non_activer_messages_avertissement' => 'Pas de messages d’avertissement',
578
-	'item_non_afficher_calendrier' => 'Ne pas afficher dans le calendrier',
579
-	'item_non_autoriser_syndication_integrale' => 'Ne diffuser qu’un résumé',
580
-	'item_non_creer_fichiers_authent' => 'Ne pas créer ces fichiers',
581
-	'item_non_messagerie_agenda' => 'Désactiver la messagerie et l’agenda',
582
-	'item_non_publier_articles' => 'Ne pas publier les articles avant la date de publication fixée.',
583
-	'item_nouvel_auteur' => 'Nouvelle autrice',
584
-	'item_nouvelle_rubrique' => 'Nouvelle rubrique',
585
-	'item_oui' => 'Oui',
586
-	'item_publier_articles' => 'Publier les articles, quelle que soit leur date de publication.',
587
-	'item_reponse_article' => 'Réponse à l’article',
588
-	'item_visiteur' => 'visiteuse',
515
+    'info_traductions' => 'Traductions',
516
+    'info_travail_colaboratif' => 'Travail collaboratif sur les articles',
517
+    'info_un_article' => 'un article,',
518
+    'info_un_site' => 'un site,',
519
+    'info_une_rubrique' => 'une rubrique,',
520
+    'info_une_rubrique_02' => '1 rubrique',
521
+    'info_url' => 'URL :',
522
+    'info_url_proxy' => 'URL du proxy',
523
+    'info_url_proxy_pas_conforme' => 'l’URL du proxy n’est pas valide.',
524
+    'info_url_site_pas_conforme' => 'l’URL du site n’est pas valide.',
525
+    'info_url_test_proxy' => 'URL de test',
526
+    'info_urlref' => 'Lien hypertexte :',
527
+    'info_utilisation_spip' => 'Vous pouvez maintenant commencer à utiliser le système de publication assistée...',
528
+    'info_visites_par_mois' => 'Affichage par mois :',
529
+    'info_visiteur_1' => 'Visiteuse',
530
+    'info_visiteur_2' => 'du site public',
531
+    'info_visiteurs' => 'Visiteuses',
532
+    'info_visiteurs_02' => 'Visiteuses du site public',
533
+    'info_webmestre_forces' => 'Les webmestres sont actuellement définies dans <tt>@file_options@</tt>.',
534
+    'install_adresse_base_hebergeur' => 'Adresse de la base de données attribuée par l’hébergeur',
535
+    'install_connect_ok' => 'La nouvelle base a bien été déclarée sous le nom de serveur @connect@.',
536
+    'install_echec_annonce' => 'L’installation va probablement échouer, ou aboutir à un site non fonctionnel...',
537
+    'install_extension_mbstring' => 'SPIP ne fonctionne pas avec :',
538
+    'install_extension_php_obligatoire' => 'SPIP exige l’extension php :',
539
+    'install_login_base_hebergeur' => 'Login de connexion attribué par l’hébergeur',
540
+    'install_nom_base_hebergeur' => 'Nom de la base attribué par l’hébergeur :',
541
+    'install_pas_table' => 'Base actuellement sans tables',
542
+    'install_pass_base_hebergeur' => 'Mot de passe de connexion attribué par l’hébergeur',
543
+    'install_php_version' => 'PHP version @version@ insuffisant (minimum = @minimum@)',
544
+    'install_select_langue' => 'Sélectionnez une langue puis cliquez sur le bouton « suivant » pour lancer la procédure d’installation.',
545
+    'install_select_type_db' => 'Indiquer le type de base de données :',
546
+    'install_select_type_mysql' => 'MySQL',
547
+    'install_select_type_pg' => 'PostgreSQL',
548
+    'install_select_type_sqlite2' => 'SQLite 2',
549
+    'install_select_type_sqlite3' => 'SQLite 3',
550
+    'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur',
551
+    'install_table_prefix_hebergeur' => 'Préfixe de table attribué par l’hébergeur :',
552
+    'install_tables_base' => 'Tables de la base',
553
+    'install_types_db_connus' => 'SPIP sait utiliser <b>MySQL</b> (le plus répandu) et <b>SQLite</b>.',
554
+    'install_types_db_connus_avertissement' => 'Le support de <b>PostgreSQL</b> est également proposé à titre experimental',
555
+    'instituer_erreur_statut_a_change' => 'Le statut a déjà été modifié',
556
+    'instituer_erreur_statut_non_autorise' => 'Vous ne pouvez pas choisir ce statut',
557
+    'intem_redacteur' => 'rédactrice',
558
+    'intitule_licence' => 'Licence',
559
+    'item_accepter_inscriptions' => 'Accepter les inscriptions',
560
+    'item_activer_messages_avertissement' => 'Activer les messages d’avertissement',
561
+    'item_administrateur_2' => 'administratrice',
562
+    'item_afficher_calendrier' => 'Afficher dans le calendrier',
563
+    'item_autoriser_syndication_integrale' => 'Diffuser l’intégralité des articles dans les fichiers de syndication',
564
+    'item_choix_administrateurs' => 'les administratrices',
565
+    'item_choix_generation_miniature' => 'Générer automatiquement les miniatures des images.',
566
+    'item_choix_non_generation_miniature' => 'Ne pas générer de miniatures des images.',
567
+    'item_choix_redacteurs' => 'les rédactrices',
568
+    'item_choix_visiteurs' => 'les visiteuses du site public',
569
+    'item_creer_fichiers_authent' => 'Créer les fichiers .htpasswd',
570
+    'item_login' => 'Login',
571
+    'item_messagerie_agenda' => 'Activer la messagerie et l’agenda',
572
+    'item_mots_cles_association_articles' => 'aux articles',
573
+    'item_mots_cles_association_rubriques' => 'aux rubriques',
574
+    'item_mots_cles_association_sites' => 'aux sites référencés ou syndiqués.',
575
+    'item_non' => 'Non',
576
+    'item_non_accepter_inscriptions' => 'Ne pas accepter les inscriptions',
577
+    'item_non_activer_messages_avertissement' => 'Pas de messages d’avertissement',
578
+    'item_non_afficher_calendrier' => 'Ne pas afficher dans le calendrier',
579
+    'item_non_autoriser_syndication_integrale' => 'Ne diffuser qu’un résumé',
580
+    'item_non_creer_fichiers_authent' => 'Ne pas créer ces fichiers',
581
+    'item_non_messagerie_agenda' => 'Désactiver la messagerie et l’agenda',
582
+    'item_non_publier_articles' => 'Ne pas publier les articles avant la date de publication fixée.',
583
+    'item_nouvel_auteur' => 'Nouvelle autrice',
584
+    'item_nouvelle_rubrique' => 'Nouvelle rubrique',
585
+    'item_oui' => 'Oui',
586
+    'item_publier_articles' => 'Publier les articles, quelle que soit leur date de publication.',
587
+    'item_reponse_article' => 'Réponse à l’article',
588
+    'item_visiteur' => 'visiteuse',
589 589
 
590
-	// J
591
-	'jour_non_connu_nc' => 'n.c.',
590
+    // J
591
+    'jour_non_connu_nc' => 'n.c.',
592 592
 
593
-	// L
594
-	'label_bando_outils' => 'Barre d’outils',
595
-	'label_bando_outils_afficher' => 'Afficher les outils',
596
-	'label_bando_outils_masquer' => 'Masquer les outils',
597
-	'label_choix_langue' => 'Sélectionnez votre langue',
598
-	'label_nom_fichier_connect' => 'Indiquez le nom utilisé pour ce serveur',
599
-	'label_slogan_site' => 'Slogan du site',
600
-	'label_taille_ecran' => 'Largeur de l’écran',
601
-	'label_texte_et_icones_navigation' => 'Menu de navigation',
602
-	'label_texte_et_icones_page' => 'Affichage dans la page',
603
-	'ldap_correspondance' => 'héritage du champ @champ@',
604
-	'ldap_correspondance_1' => 'Héritage des champs LDAP',
605
-	'ldap_correspondance_2' => 'Pour chacun des champs SPIP suivants, indiquer le nom du champ LDAP correspondant. Laisser vide pour ne pas le remplir, séparer par des espaces ou des virgules pour essayer plusieurs champs LDAP.',
606
-	'lien_ajouter_auteur' => 'Ajouter cette autrice',
607
-	'lien_ajouter_une_rubrique' => 'Ajouter cette rubrique',
608
-	'lien_email' => 'email',
609
-	'lien_nom_site' => 'NOM DU SITE :',
610
-	'lien_rapide_contenu' => 'Aller au contenu',
611
-	'lien_rapide_navigation' => 'Aller à la navigation',
612
-	'lien_rapide_recherche' => 'Aller à la recherche',
613
-	'lien_retirer_auteur' => 'Retirer l’autrice',
614
-	'lien_retirer_rubrique' => 'Retirer la rubrique',
615
-	'lien_retirer_tous_auteurs' => 'Retirer toutes les autrices',
616
-	'lien_retirer_toutes_rubriques' => 'Retirer toutes les rubriques',
617
-	'lien_site' => 'site',
618
-	'lien_tout_decocher' => 'Tout décocher',
619
-	'lien_tout_deplier' => 'Tout déplier',
620
-	'lien_tout_replier' => 'Tout replier',
621
-	'lien_tout_supprimer' => 'Tout supprimer',
622
-	'lien_trier_nom' => 'Trier par nom',
623
-	'lien_trier_nombre_articles' => 'Trier par nombre d’articles',
624
-	'lien_trier_statut' => 'Trier par statut',
625
-	'lien_voir_en_ligne' => 'VOIR EN LIGNE :',
626
-	'logo_article' => 'Logo de l’article',
627
-	'logo_auteur' => 'Logo de l’autrice',
628
-	'logo_rubrique' => 'Logo de la rubrique',
629
-	'logo_site' => 'Logo de ce site',
630
-	'logo_standard_rubrique' => 'Logo standard des rubriques',
631
-	'logo_survol' => 'Logo pour survol',
593
+    // L
594
+    'label_bando_outils' => 'Barre d’outils',
595
+    'label_bando_outils_afficher' => 'Afficher les outils',
596
+    'label_bando_outils_masquer' => 'Masquer les outils',
597
+    'label_choix_langue' => 'Sélectionnez votre langue',
598
+    'label_nom_fichier_connect' => 'Indiquez le nom utilisé pour ce serveur',
599
+    'label_slogan_site' => 'Slogan du site',
600
+    'label_taille_ecran' => 'Largeur de l’écran',
601
+    'label_texte_et_icones_navigation' => 'Menu de navigation',
602
+    'label_texte_et_icones_page' => 'Affichage dans la page',
603
+    'ldap_correspondance' => 'héritage du champ @champ@',
604
+    'ldap_correspondance_1' => 'Héritage des champs LDAP',
605
+    'ldap_correspondance_2' => 'Pour chacun des champs SPIP suivants, indiquer le nom du champ LDAP correspondant. Laisser vide pour ne pas le remplir, séparer par des espaces ou des virgules pour essayer plusieurs champs LDAP.',
606
+    'lien_ajouter_auteur' => 'Ajouter cette autrice',
607
+    'lien_ajouter_une_rubrique' => 'Ajouter cette rubrique',
608
+    'lien_email' => 'email',
609
+    'lien_nom_site' => 'NOM DU SITE :',
610
+    'lien_rapide_contenu' => 'Aller au contenu',
611
+    'lien_rapide_navigation' => 'Aller à la navigation',
612
+    'lien_rapide_recherche' => 'Aller à la recherche',
613
+    'lien_retirer_auteur' => 'Retirer l’autrice',
614
+    'lien_retirer_rubrique' => 'Retirer la rubrique',
615
+    'lien_retirer_tous_auteurs' => 'Retirer toutes les autrices',
616
+    'lien_retirer_toutes_rubriques' => 'Retirer toutes les rubriques',
617
+    'lien_site' => 'site',
618
+    'lien_tout_decocher' => 'Tout décocher',
619
+    'lien_tout_deplier' => 'Tout déplier',
620
+    'lien_tout_replier' => 'Tout replier',
621
+    'lien_tout_supprimer' => 'Tout supprimer',
622
+    'lien_trier_nom' => 'Trier par nom',
623
+    'lien_trier_nombre_articles' => 'Trier par nombre d’articles',
624
+    'lien_trier_statut' => 'Trier par statut',
625
+    'lien_voir_en_ligne' => 'VOIR EN LIGNE :',
626
+    'logo_article' => 'Logo de l’article',
627
+    'logo_auteur' => 'Logo de l’autrice',
628
+    'logo_rubrique' => 'Logo de la rubrique',
629
+    'logo_site' => 'Logo de ce site',
630
+    'logo_standard_rubrique' => 'Logo standard des rubriques',
631
+    'logo_survol' => 'Logo pour survol',
632 632
 
633
-	// M
634
-	'menu_aide_installation_choix_base' => 'Choix de votre base',
635
-	'module_fichier_langue' => 'Fichier de langue',
636
-	'module_raccourci' => 'Raccourci',
637
-	'module_texte_affiche' => 'Texte affiché',
638
-	'module_texte_explicatif' => 'Vous pouvez insérer les raccourcis suivants dans les squelettes de votre site public. Ils seront automatiquement traduits dans les différentes langues pour lesquelles il existe un fichier de langue.',
639
-	'module_texte_traduction' => 'Le fichier de langue « @module@ » est disponible en :',
640
-	'mois_non_connu' => 'non connu',
633
+    // M
634
+    'menu_aide_installation_choix_base' => 'Choix de votre base',
635
+    'module_fichier_langue' => 'Fichier de langue',
636
+    'module_raccourci' => 'Raccourci',
637
+    'module_texte_affiche' => 'Texte affiché',
638
+    'module_texte_explicatif' => 'Vous pouvez insérer les raccourcis suivants dans les squelettes de votre site public. Ils seront automatiquement traduits dans les différentes langues pour lesquelles il existe un fichier de langue.',
639
+    'module_texte_traduction' => 'Le fichier de langue « @module@ » est disponible en :',
640
+    'mois_non_connu' => 'non connu',
641 641
 
642
-	// N
643
-	'nouvelle_version_spip' => 'La mise à jour @version@ de SPIP est disponible',
644
-	'nouvelle_version_spip_majeure' => 'Une nouvelle version SPIP @version@ est disponible',
642
+    // N
643
+    'nouvelle_version_spip' => 'La mise à jour @version@ de SPIP est disponible',
644
+    'nouvelle_version_spip_majeure' => 'Une nouvelle version SPIP @version@ est disponible',
645 645
 
646
-	// O
647
-	'onglet_contenu' => 'Contenu',
648
-	'onglet_declarer_une_autre_base' => 'Déclarer une autre base',
649
-	'onglet_discuter' => 'Discuter',
650
-	'onglet_interactivite' => 'Interactivité',
651
-	'onglet_proprietes' => 'Propriétés',
652
-	'onglet_repartition_actuelle' => 'actuellement',
653
-	'onglet_sous_rubriques' => 'Sous-rubriques',
646
+    // O
647
+    'onglet_contenu' => 'Contenu',
648
+    'onglet_declarer_une_autre_base' => 'Déclarer une autre base',
649
+    'onglet_discuter' => 'Discuter',
650
+    'onglet_interactivite' => 'Interactivité',
651
+    'onglet_proprietes' => 'Propriétés',
652
+    'onglet_repartition_actuelle' => 'actuellement',
653
+    'onglet_sous_rubriques' => 'Sous-rubriques',
654 654
 
655
-	// P
656
-	'page_pas_proxy' => 'Cette page ne doit pas passer par le proxy',
657
-	'pas_de_proxy_pour' => 'Au besoin, indiquez les machines ou domaines pour lesquels ce proxy ne doit pas s’appliquer (par exemple : @exemple@)',
658
-	'phpinfo' => 'Configuration PHP',
659
-	'plugin_charge_paquet' => 'Chargement du paquet @name@',
660
-	'plugin_charger' => 'Télécharger',
661
-	'plugin_erreur_charger' => 'erreur : impossible de charger @zip@',
662
-	'plugin_erreur_droit1' => 'Le répertoire <code>@dest@</code> n’est pas accessible en écriture.',
663
-	'plugin_erreur_droit2' => 'Veuillez vérifier les droits sur ce répertoire (et le créer le cas échéant), ou installer les fichiers par FTP.',
664
-	'plugin_erreur_zip' => 'échec pclzip : erreur @status@',
665
-	'plugin_etat_developpement' => 'en développement',
666
-	'plugin_etat_experimental' => 'expérimental',
667
-	'plugin_etat_stable' => 'stable',
668
-	'plugin_etat_test' => 'en test',
669
-	'plugin_impossible_activer' => 'Impossible d’activer le plugin @plugin@',
670
-	'plugin_info_automatique1' => 'Si vous souhaitez autoriser l’installation automatique des plugins, veuillez :',
671
-	'plugin_info_automatique1_lib' => 'Si vous souhaitez autoriser l’installation automatique de cette librairie, veuillez :',
672
-	'plugin_info_automatique2' => 'créer un répertoire <code>@rep@</code> ;',
673
-	'plugin_info_automatique3' => 'vérifier que le serveur est autorisé à écrire dans ce répertoire.',
674
-	'plugin_info_automatique_creer' => 'à créer à la racine du site.',
675
-	'plugin_info_automatique_exemples' => 'exemples :',
676
-	'plugin_info_automatique_ftp' => 'Vous pouvez installer des plugins, par FTP, dans le répertoire <tt>@rep@</tt>',
677
-	'plugin_info_automatique_lib' => 'Certains plugins demandent aussi à pouvoir télécharger des fichiers dans le répertoire <code>lib/</code>, à créer le cas échéant à la racine du site.',
678
-	'plugin_info_automatique_liste' => 'Vos listes de plugins :',
679
-	'plugin_info_automatique_liste_officielle' => 'les plugins officiels',
680
-	'plugin_info_automatique_liste_update' => 'Mettre à jour les listes',
681
-	'plugin_info_automatique_ou' => 'ou...',
682
-	'plugin_info_automatique_select' => 'Sélectionnez ci-dessous un plugin : SPIP le téléchargera et l’installera dans le répertoire <code>@rep@</code> ; si ce plugin existe déjà, il sera mis à jour.',
683
-	'plugin_info_credit' => 'Crédits',
684
-	'plugin_info_erreur_xml' => 'La déclaration de ce plugin est incorrecte',
685
-	'plugin_info_install_ok' => 'Installation réussie',
686
-	'plugin_info_necessite' => 'Nécessite :',
687
-	'plugin_info_non_compatible_spip' => 'Ce plugin n’est pas compatible avec cette version de SPIP',
688
-	'plugin_info_plugins_dist_1' => 'Les plugins ci-dessous sont chargés et activés dans le répertoire @plugins_dist@.',
689
-	'plugin_info_plugins_dist_2' => 'Ils ne sont pas désactivables.',
690
-	'plugin_info_telecharger' => 'à télécharger depuis @url@ et à installer dans @rep@',
691
-	'plugin_info_upgrade_ok' => 'Mise à jour réussie',
692
-	'plugin_librairies_installees' => 'Librairies installées',
693
-	'plugin_necessite_extension_php' => 'Nécessite l’extension PHP @plugin@ en version @version@.',
694
-	'plugin_necessite_extension_php_sans_version' => 'Nécessite l’extension PHP @plugin@',
695
-	'plugin_necessite_lib' => 'Ce plugin nécessite la librairie @lib@',
696
-	'plugin_necessite_php' => 'Nécessite @plugin@ en version @version@.',
697
-	'plugin_necessite_plugin' => 'Nécessite le plugin @plugin@ en version @version@ minimum.',
698
-	'plugin_necessite_plugin_sans_version' => 'Nécessite le plugin @plugin@',
699
-	'plugin_necessite_spip' => 'Nécessite SPIP en version @version@ minimum.',
700
-	'plugin_source' => 'source : ',
701
-	'plugin_titre_automatique' => 'Installation automatique',
702
-	'plugin_titre_automatique_ajouter' => 'Ajouter des plugins',
703
-	'plugin_titre_installation' => 'Installation du plugin @plugin@',
704
-	'plugin_titre_modifier' => 'Mes plugins',
705
-	'plugin_utilise_extension_php' => 'L’extension PHP @plugin@ doit être en version @version@.',
706
-	'plugin_utilise_php' => '@plugin@ doit être en version @version@.',
707
-	'plugin_utilise_plugin' => 'Le plugin @plugin@ doit être en version @version@.',
708
-	'plugin_zip_active' => 'Continuez pour l’activer',
709
-	'plugin_zip_adresse' => 'indiquez ci-dessous l’adresse d’un fichier zip de plugin à télécharger, ou encore l’adresse d’une liste de plugins.',
710
-	'plugin_zip_adresse_champ' => 'Adresse du plugin ou de la liste ',
711
-	'plugin_zip_content' => 'Il contient les fichiers suivants (@taille@),<br />prêts à installer dans le répertoire <code>@rep@</code>',
712
-	'plugin_zip_installe_finie' => 'Le fichier @zip@ a été décompacté et installé.',
713
-	'plugin_zip_installe_rep_finie' => 'Le fichier @zip@ a été décompacté et installé dans le répertoire @rep@',
714
-	'plugin_zip_installer' => 'Vous pouvez maintenant l’installer.',
715
-	'plugin_zip_telecharge' => 'Le fichier @zip@ a été téléchargé',
716
-	'plugins_actif_aucun' => 'Aucun plugin activé.',
717
-	'plugins_actif_un' => 'Un plugin activé.',
718
-	'plugins_actifs' => '@count@ plugins activés.',
719
-	'plugins_actifs_liste' => 'Actifs',
720
-	'plugins_compte' => '@count@ plugins',
721
-	'plugins_disponible_un' => 'Un plugin disponible.',
722
-	'plugins_disponibles' => '@count@ plugins disponibles.',
723
-	'plugins_erreur' => 'Erreur dans les plugins : @plugins@',
724
-	'plugins_liste' => 'Liste des plugins',
725
-	'plugins_liste_dist' => 'Plugins verrouillés',
726
-	'plugins_recents' => 'Plugins récents.',
727
-	'plugins_tous_liste' => 'Tous',
728
-	'plugins_vue_hierarchie' => 'Hiérarchie',
729
-	'plugins_vue_liste' => 'Liste',
730
-	'protocole_ldap' => 'Version du protocole :',
655
+    // P
656
+    'page_pas_proxy' => 'Cette page ne doit pas passer par le proxy',
657
+    'pas_de_proxy_pour' => 'Au besoin, indiquez les machines ou domaines pour lesquels ce proxy ne doit pas s’appliquer (par exemple : @exemple@)',
658
+    'phpinfo' => 'Configuration PHP',
659
+    'plugin_charge_paquet' => 'Chargement du paquet @name@',
660
+    'plugin_charger' => 'Télécharger',
661
+    'plugin_erreur_charger' => 'erreur : impossible de charger @zip@',
662
+    'plugin_erreur_droit1' => 'Le répertoire <code>@dest@</code> n’est pas accessible en écriture.',
663
+    'plugin_erreur_droit2' => 'Veuillez vérifier les droits sur ce répertoire (et le créer le cas échéant), ou installer les fichiers par FTP.',
664
+    'plugin_erreur_zip' => 'échec pclzip : erreur @status@',
665
+    'plugin_etat_developpement' => 'en développement',
666
+    'plugin_etat_experimental' => 'expérimental',
667
+    'plugin_etat_stable' => 'stable',
668
+    'plugin_etat_test' => 'en test',
669
+    'plugin_impossible_activer' => 'Impossible d’activer le plugin @plugin@',
670
+    'plugin_info_automatique1' => 'Si vous souhaitez autoriser l’installation automatique des plugins, veuillez :',
671
+    'plugin_info_automatique1_lib' => 'Si vous souhaitez autoriser l’installation automatique de cette librairie, veuillez :',
672
+    'plugin_info_automatique2' => 'créer un répertoire <code>@rep@</code> ;',
673
+    'plugin_info_automatique3' => 'vérifier que le serveur est autorisé à écrire dans ce répertoire.',
674
+    'plugin_info_automatique_creer' => 'à créer à la racine du site.',
675
+    'plugin_info_automatique_exemples' => 'exemples :',
676
+    'plugin_info_automatique_ftp' => 'Vous pouvez installer des plugins, par FTP, dans le répertoire <tt>@rep@</tt>',
677
+    'plugin_info_automatique_lib' => 'Certains plugins demandent aussi à pouvoir télécharger des fichiers dans le répertoire <code>lib/</code>, à créer le cas échéant à la racine du site.',
678
+    'plugin_info_automatique_liste' => 'Vos listes de plugins :',
679
+    'plugin_info_automatique_liste_officielle' => 'les plugins officiels',
680
+    'plugin_info_automatique_liste_update' => 'Mettre à jour les listes',
681
+    'plugin_info_automatique_ou' => 'ou...',
682
+    'plugin_info_automatique_select' => 'Sélectionnez ci-dessous un plugin : SPIP le téléchargera et l’installera dans le répertoire <code>@rep@</code> ; si ce plugin existe déjà, il sera mis à jour.',
683
+    'plugin_info_credit' => 'Crédits',
684
+    'plugin_info_erreur_xml' => 'La déclaration de ce plugin est incorrecte',
685
+    'plugin_info_install_ok' => 'Installation réussie',
686
+    'plugin_info_necessite' => 'Nécessite :',
687
+    'plugin_info_non_compatible_spip' => 'Ce plugin n’est pas compatible avec cette version de SPIP',
688
+    'plugin_info_plugins_dist_1' => 'Les plugins ci-dessous sont chargés et activés dans le répertoire @plugins_dist@.',
689
+    'plugin_info_plugins_dist_2' => 'Ils ne sont pas désactivables.',
690
+    'plugin_info_telecharger' => 'à télécharger depuis @url@ et à installer dans @rep@',
691
+    'plugin_info_upgrade_ok' => 'Mise à jour réussie',
692
+    'plugin_librairies_installees' => 'Librairies installées',
693
+    'plugin_necessite_extension_php' => 'Nécessite l’extension PHP @plugin@ en version @version@.',
694
+    'plugin_necessite_extension_php_sans_version' => 'Nécessite l’extension PHP @plugin@',
695
+    'plugin_necessite_lib' => 'Ce plugin nécessite la librairie @lib@',
696
+    'plugin_necessite_php' => 'Nécessite @plugin@ en version @version@.',
697
+    'plugin_necessite_plugin' => 'Nécessite le plugin @plugin@ en version @version@ minimum.',
698
+    'plugin_necessite_plugin_sans_version' => 'Nécessite le plugin @plugin@',
699
+    'plugin_necessite_spip' => 'Nécessite SPIP en version @version@ minimum.',
700
+    'plugin_source' => 'source : ',
701
+    'plugin_titre_automatique' => 'Installation automatique',
702
+    'plugin_titre_automatique_ajouter' => 'Ajouter des plugins',
703
+    'plugin_titre_installation' => 'Installation du plugin @plugin@',
704
+    'plugin_titre_modifier' => 'Mes plugins',
705
+    'plugin_utilise_extension_php' => 'L’extension PHP @plugin@ doit être en version @version@.',
706
+    'plugin_utilise_php' => '@plugin@ doit être en version @version@.',
707
+    'plugin_utilise_plugin' => 'Le plugin @plugin@ doit être en version @version@.',
708
+    'plugin_zip_active' => 'Continuez pour l’activer',
709
+    'plugin_zip_adresse' => 'indiquez ci-dessous l’adresse d’un fichier zip de plugin à télécharger, ou encore l’adresse d’une liste de plugins.',
710
+    'plugin_zip_adresse_champ' => 'Adresse du plugin ou de la liste ',
711
+    'plugin_zip_content' => 'Il contient les fichiers suivants (@taille@),<br />prêts à installer dans le répertoire <code>@rep@</code>',
712
+    'plugin_zip_installe_finie' => 'Le fichier @zip@ a été décompacté et installé.',
713
+    'plugin_zip_installe_rep_finie' => 'Le fichier @zip@ a été décompacté et installé dans le répertoire @rep@',
714
+    'plugin_zip_installer' => 'Vous pouvez maintenant l’installer.',
715
+    'plugin_zip_telecharge' => 'Le fichier @zip@ a été téléchargé',
716
+    'plugins_actif_aucun' => 'Aucun plugin activé.',
717
+    'plugins_actif_un' => 'Un plugin activé.',
718
+    'plugins_actifs' => '@count@ plugins activés.',
719
+    'plugins_actifs_liste' => 'Actifs',
720
+    'plugins_compte' => '@count@ plugins',
721
+    'plugins_disponible_un' => 'Un plugin disponible.',
722
+    'plugins_disponibles' => '@count@ plugins disponibles.',
723
+    'plugins_erreur' => 'Erreur dans les plugins : @plugins@',
724
+    'plugins_liste' => 'Liste des plugins',
725
+    'plugins_liste_dist' => 'Plugins verrouillés',
726
+    'plugins_recents' => 'Plugins récents.',
727
+    'plugins_tous_liste' => 'Tous',
728
+    'plugins_vue_hierarchie' => 'Hiérarchie',
729
+    'plugins_vue_liste' => 'Liste',
730
+    'protocole_ldap' => 'Version du protocole :',
731 731
 
732
-	// Q
733
-	'queue_executer_maintenant' => 'Exécuter maintenant',
734
-	'queue_info_purger' => 'Vous pouvez supprimer toutes les tâches de fond en attente et réinitialiser la liste avec les tâches périodiques',
735
-	'queue_nb_jobs_in_queue' => '@nb@ tâches en attente',
736
-	'queue_next_job_in_nb_sec' => 'Prochaine tâche dans @nb@ s',
737
-	'queue_no_job_in_queue' => 'Aucune tâche en attente',
738
-	'queue_one_job_in_queue' => '1 tâche en attente',
739
-	'queue_priorite_tache' => 'priorité',
740
-	'queue_purger_queue' => 'Réinitialiser la liste des tâches',
741
-	'queue_titre' => 'Tâches de fond',
732
+    // Q
733
+    'queue_executer_maintenant' => 'Exécuter maintenant',
734
+    'queue_info_purger' => 'Vous pouvez supprimer toutes les tâches de fond en attente et réinitialiser la liste avec les tâches périodiques',
735
+    'queue_nb_jobs_in_queue' => '@nb@ tâches en attente',
736
+    'queue_next_job_in_nb_sec' => 'Prochaine tâche dans @nb@ s',
737
+    'queue_no_job_in_queue' => 'Aucune tâche en attente',
738
+    'queue_one_job_in_queue' => '1 tâche en attente',
739
+    'queue_priorite_tache' => 'priorité',
740
+    'queue_purger_queue' => 'Réinitialiser la liste des tâches',
741
+    'queue_titre' => 'Tâches de fond',
742 742
 
743
-	// R
744
-	'repertoire_plugins' => 'Répertoire :',
745
-	'required' => '(obligatoire)',
743
+    // R
744
+    'repertoire_plugins' => 'Répertoire :',
745
+    'required' => '(obligatoire)',
746 746
 
747
-	// S
748
-	'sans_heure' => 'sans heure',
749
-	'statut_admin_restreint' => 'admin restreinte',
750
-	'statut_webmestre' => 'webmestre',
747
+    // S
748
+    'sans_heure' => 'sans heure',
749
+    'statut_admin_restreint' => 'admin restreinte',
750
+    'statut_webmestre' => 'webmestre',
751 751
 
752
-	// T
753
-	'tache_cron_asap' => 'Tâche CRON @function@ (ASAP)',
754
-	'tache_cron_secondes' => 'Tâche CRON @function@ (toutes les @nb@ s)',
755
-	'taille_cache_image' => 'Les images calculées automatiquement par SPIP (vignettes des documents, titres présentés sous forme graphique, fonctions mathématiques au format TeX...) occupent dans le répertoire @dir@ un total de @taille@.',
756
-	'taille_cache_infinie' => 'Ce site ne prévoit pas de limitation de taille du répertoire du cache.',
757
-	'taille_cache_maxi' => 'SPIP essaie de limiter la taille du répertoire du cache de ce site à environ <b>@octets@</b> de données.',
758
-	'taille_cache_moins_de' => 'La taille du cache est de moins de @octets@.',
759
-	'taille_cache_octets' => 'La taille du cache est actuellement de @octets@ environ.',
760
-	'taille_cache_vide' => 'Le cache est vide.',
761
-	'taille_repertoire_cache' => 'Taille du répertoire cache',
762
-	'text_article_propose_publication' => 'Article proposé pour la publication.',
763
-	'texte_acces_ldap_anonyme_1' => 'Certains serveurs LDAP n’acceptent aucun accès anonyme. Dans ce cas il faut spécifier un identifiant d’accès initial afin de pouvoir ensuite rechercher des informations dans l’annuaire. Dans la plupart des cas néanmoins, les champs suivants pourront être laissés vides.',
764
-	'texte_admin_effacer_01' => 'Cette commande efface <i>tout</i> le contenu de la base de données,
752
+    // T
753
+    'tache_cron_asap' => 'Tâche CRON @function@ (ASAP)',
754
+    'tache_cron_secondes' => 'Tâche CRON @function@ (toutes les @nb@ s)',
755
+    'taille_cache_image' => 'Les images calculées automatiquement par SPIP (vignettes des documents, titres présentés sous forme graphique, fonctions mathématiques au format TeX...) occupent dans le répertoire @dir@ un total de @taille@.',
756
+    'taille_cache_infinie' => 'Ce site ne prévoit pas de limitation de taille du répertoire du cache.',
757
+    'taille_cache_maxi' => 'SPIP essaie de limiter la taille du répertoire du cache de ce site à environ <b>@octets@</b> de données.',
758
+    'taille_cache_moins_de' => 'La taille du cache est de moins de @octets@.',
759
+    'taille_cache_octets' => 'La taille du cache est actuellement de @octets@ environ.',
760
+    'taille_cache_vide' => 'Le cache est vide.',
761
+    'taille_repertoire_cache' => 'Taille du répertoire cache',
762
+    'text_article_propose_publication' => 'Article proposé pour la publication.',
763
+    'texte_acces_ldap_anonyme_1' => 'Certains serveurs LDAP n’acceptent aucun accès anonyme. Dans ce cas il faut spécifier un identifiant d’accès initial afin de pouvoir ensuite rechercher des informations dans l’annuaire. Dans la plupart des cas néanmoins, les champs suivants pourront être laissés vides.',
764
+    'texte_admin_effacer_01' => 'Cette commande efface <i>tout</i> le contenu de la base de données,
765 765
 y compris <i>tous</i> les accès rédactrices et administratrices. Après l’avoir exécutée, vous devrez lancer la
766 766
 réinstallation de SPIP pour recréer une nouvelle base ainsi qu’un premier accès administratrice.',
767
-	'texte_adresse_annuaire_1' => '(Si votre annuaire est installé sur la même machine que ce site Web, il s’agit probablement de « localhost ».)',
768
-	'texte_ajout_auteur' => 'L’autrice suivante a été ajoutée à l’article :',
769
-	'texte_annuaire_ldap_1' => 'Si vous avez accès à un annuaire (LDAP), vous pouvez l’utiliser pour importer automatiquement des utilisatrices sous SPIP.',
770
-	'texte_article_statut' => 'Cet article est :',
771
-	'texte_article_virtuel' => 'Article virtuel',
772
-	'texte_article_virtuel_reference' => '<b>Article virtuel :</b> article référencé dans votre site SPIP, mais redirigé vers une autre URL. Pour supprimer la redirection, effacez l’URL ci-dessus.',
773
-	'texte_aucun_resultat_auteur' => 'Aucun résultat pour "@cherche_auteur@"',
774
-	'texte_auteur_messagerie' => 'Ce site peut vous indiquer en permanence la liste des rédactrices connectées, ce qui vous permet d’échanger des messages en direct. Vous pouvez décider de ne pas apparaître dans cette liste (vous êtes « invisible » pour les autres utilisatrices).',
775
-	'texte_auteurs' => 'LES AUTRICES',
776
-	'texte_choix_base_1' => 'Choisissez votre base :',
777
-	'texte_choix_base_2' => 'Le serveur SQL contient plusieurs bases de données.',
778
-	'texte_choix_base_3' => '<b>Sélectionnez</b> ci-après celle qui vous a été attribuée par votre hébergeur :',
779
-	'texte_choix_table_prefix' => 'Préfixe des tables :',
780
-	'texte_compte_element' => '@count@ élément',
781
-	'texte_compte_elements' => '@count@ éléments',
782
-	'texte_conflit_edition_correction' => 'Veuillez contrôler ci-dessous les différences entre les deux versions du texte ; vous pouvez aussi copier vos modifications, puis recommencer.',
783
-	'texte_connexion_mysql' => 'Consultez les informations fournies par votre hébergeur : vous devez y trouver le serveur de base de données qu’il propose et vos identifiants personnels pour vous y connecter.',
784
-	'texte_contenu_article' => '(Contenu de l’article en quelques mots.)',
785
-	'texte_contenu_articles' => 'Selon la maquette adoptée pour votre site, vous pouvez décider
767
+    'texte_adresse_annuaire_1' => '(Si votre annuaire est installé sur la même machine que ce site Web, il s’agit probablement de « localhost ».)',
768
+    'texte_ajout_auteur' => 'L’autrice suivante a été ajoutée à l’article :',
769
+    'texte_annuaire_ldap_1' => 'Si vous avez accès à un annuaire (LDAP), vous pouvez l’utiliser pour importer automatiquement des utilisatrices sous SPIP.',
770
+    'texte_article_statut' => 'Cet article est :',
771
+    'texte_article_virtuel' => 'Article virtuel',
772
+    'texte_article_virtuel_reference' => '<b>Article virtuel :</b> article référencé dans votre site SPIP, mais redirigé vers une autre URL. Pour supprimer la redirection, effacez l’URL ci-dessus.',
773
+    'texte_aucun_resultat_auteur' => 'Aucun résultat pour "@cherche_auteur@"',
774
+    'texte_auteur_messagerie' => 'Ce site peut vous indiquer en permanence la liste des rédactrices connectées, ce qui vous permet d’échanger des messages en direct. Vous pouvez décider de ne pas apparaître dans cette liste (vous êtes « invisible » pour les autres utilisatrices).',
775
+    'texte_auteurs' => 'LES AUTRICES',
776
+    'texte_choix_base_1' => 'Choisissez votre base :',
777
+    'texte_choix_base_2' => 'Le serveur SQL contient plusieurs bases de données.',
778
+    'texte_choix_base_3' => '<b>Sélectionnez</b> ci-après celle qui vous a été attribuée par votre hébergeur :',
779
+    'texte_choix_table_prefix' => 'Préfixe des tables :',
780
+    'texte_compte_element' => '@count@ élément',
781
+    'texte_compte_elements' => '@count@ éléments',
782
+    'texte_conflit_edition_correction' => 'Veuillez contrôler ci-dessous les différences entre les deux versions du texte ; vous pouvez aussi copier vos modifications, puis recommencer.',
783
+    'texte_connexion_mysql' => 'Consultez les informations fournies par votre hébergeur : vous devez y trouver le serveur de base de données qu’il propose et vos identifiants personnels pour vous y connecter.',
784
+    'texte_contenu_article' => '(Contenu de l’article en quelques mots.)',
785
+    'texte_contenu_articles' => 'Selon la maquette adoptée pour votre site, vous pouvez décider
786 786
 		que certains éléments des articles ne sont pas utilisés.
787 787
 		Utilisez la liste ci-dessous pour indiquer quels éléments sont disponibles.',
788
-	'texte_crash_base' => 'Si votre base de données a
788
+    'texte_crash_base' => 'Si votre base de données a
789 789
 			crashé, vous pouvez tenter une réparation
790 790
 			automatique.',
791
-	'texte_creer_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer une rubrique.',
792
-	'texte_date_creation_article' => 'DATE DE CRÉATION DE L’ARTICLE :',
793
-	'texte_date_creation_objet' => 'Date de création :', # on ajoute le ":"
794
-	'texte_date_publication_anterieure' => 'Date de rédaction antérieure :',
795
-	'texte_date_publication_anterieure_nonaffichee' => 'Ne pas afficher de date de rédaction antérieure.',
796
-	'texte_date_publication_article' => 'DATE DE PUBLICATION EN LIGNE :',
797
-	'texte_date_publication_objet' => 'Date de publication en ligne :',
798
-	'texte_definir_comme_traduction_rubrique' => 'Cette rubrique est une traduction de la rubrique numéro :',
799
-	'texte_descriptif_rapide' => 'Descriptif rapide',
800
-	'texte_effacer_base' => 'Effacer la base de données SPIP',
801
-	'texte_effacer_statistiques' => 'Effacer les statistiques',
802
-	'texte_en_cours_validation' => 'Les contenus ci-dessous sont en attente de validation.',
803
-	'texte_enrichir_mise_a_jour' => 'Vous pouvez enrichir la mise en page de votre texte en utilisant des « raccourcis typographiques ».',
804
-	'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux <tt>.htpasswd</tt> et <tt>.htpasswd-admin</tt> dans le répertoire @dossier@ ?</b>
791
+    'texte_creer_rubrique' => 'Avant de pouvoir écrire des articles,<br /> vous devez créer une rubrique.',
792
+    'texte_date_creation_article' => 'DATE DE CRÉATION DE L’ARTICLE :',
793
+    'texte_date_creation_objet' => 'Date de création :', # on ajoute le ":"
794
+    'texte_date_publication_anterieure' => 'Date de rédaction antérieure :',
795
+    'texte_date_publication_anterieure_nonaffichee' => 'Ne pas afficher de date de rédaction antérieure.',
796
+    'texte_date_publication_article' => 'DATE DE PUBLICATION EN LIGNE :',
797
+    'texte_date_publication_objet' => 'Date de publication en ligne :',
798
+    'texte_definir_comme_traduction_rubrique' => 'Cette rubrique est une traduction de la rubrique numéro :',
799
+    'texte_descriptif_rapide' => 'Descriptif rapide',
800
+    'texte_effacer_base' => 'Effacer la base de données SPIP',
801
+    'texte_effacer_statistiques' => 'Effacer les statistiques',
802
+    'texte_en_cours_validation' => 'Les contenus ci-dessous sont en attente de validation.',
803
+    'texte_enrichir_mise_a_jour' => 'Vous pouvez enrichir la mise en page de votre texte en utilisant des « raccourcis typographiques ».',
804
+    'texte_fichier_authent' => '<b>SPIP doit-il créer les fichiers spéciaux <tt>.htpasswd</tt> et <tt>.htpasswd-admin</tt> dans le répertoire @dossier@ ?</b>
805 805
 <p>Ces fichiers peuvent vous servir à restreindre l’accès aux autrices et administratrices en d’autres endroits de votre site (programme externe de statistiques, par exemple).</p>
806 806
 <p>Si vous n’en avez pas l’utilité, vous pouvez laisser cette option à sa valeur par défaut (pas de création des fichiers).</p>',
807
-	'texte_informations_personnelles_1' => 'Le système va maintenant vous créer un accès personnalisé au site.',
808
-	'texte_informations_personnelles_2' => '(Note : il s’agit d’une réinstallation, si votre accès marche toujours vous pouvez',
809
-	'texte_introductif_article' => '(Texte introductif de l’article.)',
810
-	'texte_jeu_caractere' => 'Il est conseillé d’employer, sur votre site, l’alphabet universel (<tt>utf-8</tt>) : celui-ci permet l’affichage de textes dans toutes les langues, et ne pose plus de problèmes de compatibilité avec les navigateurs modernes.',
811
-	'texte_jeu_caractere_3' => 'Votre site est actuellement installé dans le jeu de caractères :',
812
-	'texte_jeu_caractere_4' => 'Si cela ne correspond pas à la réalité de vos données (suite, par exemple, à une restauration de base de données), ou si <em>vous démarrez ce site</em> et souhaitez partir sur un autre jeu de caractères, veuillez indiquer ce dernier ici :',
813
-	'texte_login_ldap_1' => '(Laisser vide pour un accès anonyme, ou entrer le chemin complet, par exemple « <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)',
814
-	'texte_login_precaution' => 'Attention ! Ceci est le login sous lequel vous êtes connectée actuellement.
807
+    'texte_informations_personnelles_1' => 'Le système va maintenant vous créer un accès personnalisé au site.',
808
+    'texte_informations_personnelles_2' => '(Note : il s’agit d’une réinstallation, si votre accès marche toujours vous pouvez',
809
+    'texte_introductif_article' => '(Texte introductif de l’article.)',
810
+    'texte_jeu_caractere' => 'Il est conseillé d’employer, sur votre site, l’alphabet universel (<tt>utf-8</tt>) : celui-ci permet l’affichage de textes dans toutes les langues, et ne pose plus de problèmes de compatibilité avec les navigateurs modernes.',
811
+    'texte_jeu_caractere_3' => 'Votre site est actuellement installé dans le jeu de caractères :',
812
+    'texte_jeu_caractere_4' => 'Si cela ne correspond pas à la réalité de vos données (suite, par exemple, à une restauration de base de données), ou si <em>vous démarrez ce site</em> et souhaitez partir sur un autre jeu de caractères, veuillez indiquer ce dernier ici :',
813
+    'texte_login_ldap_1' => '(Laisser vide pour un accès anonyme, ou entrer le chemin complet, par exemple « <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)',
814
+    'texte_login_precaution' => 'Attention ! Ceci est le login sous lequel vous êtes connectée actuellement.
815 815
 	Utilisez ce formulaire avec précaution...',
816
-	'texte_messagerie_agenda' => 'Une messagerie permet aux rédactrices du site de communiquer entre elles directement dans l’espace privé du site. Elle est associée à un agenda.',
817
-	'texte_mise_a_niveau_base_1' => 'Vous venez de mettre à jour les fichiers SPIP.
816
+    'texte_messagerie_agenda' => 'Une messagerie permet aux rédactrices du site de communiquer entre elles directement dans l’espace privé du site. Elle est associée à un agenda.',
817
+    'texte_mise_a_niveau_base_1' => 'Vous venez de mettre à jour les fichiers SPIP.
818 818
 	Il faut maintenant mettre à niveau la base de données
819 819
 	du site.',
820
-	'texte_modifier_article' => 'Modifier l’article :',
821
-	'texte_multilinguisme' => 'Si vous souhaitez gérer des objets en plusieurs langues, avec une navigation complexe, vous pouvez ajouter un menu de sélection de langue sur ces objets, en fonction de l’organisation de votre site.',
822
-	'texte_multilinguisme_trad' => 'Vous pouvez également activer un système de gestion de liens entre les différentes traductions sur certains objets.',
823
-	'texte_non_compresse' => '<i>non compressé</i> (votre serveur ne supportant pas cette fonctionnalité)',
824
-	'texte_nouvelle_version_spip_1' => 'Vous avez installé une nouvelle version de SPIP.',
825
-	'texte_nouvelle_version_spip_2' => 'Cette nouvelle version nécessite une mise à jour plus complète qu’à l’accoutumée. Si vous êtes webmestre du site, veuillez effacer le fichier @connect@ et reprendre l’installation afin de mettre à jour vos paramètres de connexion à la base de données.<p> (NB. : si vous avez oublié vos paramètres de connexion, jetez un œil au fichier @connect@ avant de le supprimer...)</p>',
826
-	'texte_operation_echec' => 'Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.',
827
-	'texte_plus_trois_car' => 'plus de 3 caractères',
828
-	'texte_plusieurs_articles' => 'Plusieurs autrices trouvées pour "@cherche_auteur@" :',
829
-	'texte_port_annuaire' => '(La valeur indiquée par défaut convient généralement.)',
830
-	'texte_presente_plugin' => 'Cette page liste les plugins disponibles sur le site. Vous pouvez activer les plugins nécessaires en cochant la case correspondante.',
831
-	'texte_proposer_publication' => 'Lorsque votre article est terminé,<br /> vous pouvez proposer sa publication.',
832
-	'texte_proxy' => 'Dans certains cas (intranet, réseaux protégés), les sites distants (documentation de SPIP, sites syndiqués, etc.) ne sont accessibles qu’à travers un <i>proxy HTTP</i>. Le cas échéant, indiquez ci-dessous son adresse, sous la forme @proxy_en_cours@. En général, vous laisserez cette case vide.',
833
-	'texte_publication_articles_post_dates' => 'Quel comportement SPIP doit-il adopter face aux articles dont la
820
+    'texte_modifier_article' => 'Modifier l’article :',
821
+    'texte_multilinguisme' => 'Si vous souhaitez gérer des objets en plusieurs langues, avec une navigation complexe, vous pouvez ajouter un menu de sélection de langue sur ces objets, en fonction de l’organisation de votre site.',
822
+    'texte_multilinguisme_trad' => 'Vous pouvez également activer un système de gestion de liens entre les différentes traductions sur certains objets.',
823
+    'texte_non_compresse' => '<i>non compressé</i> (votre serveur ne supportant pas cette fonctionnalité)',
824
+    'texte_nouvelle_version_spip_1' => 'Vous avez installé une nouvelle version de SPIP.',
825
+    'texte_nouvelle_version_spip_2' => 'Cette nouvelle version nécessite une mise à jour plus complète qu’à l’accoutumée. Si vous êtes webmestre du site, veuillez effacer le fichier @connect@ et reprendre l’installation afin de mettre à jour vos paramètres de connexion à la base de données.<p> (NB. : si vous avez oublié vos paramètres de connexion, jetez un œil au fichier @connect@ avant de le supprimer...)</p>',
826
+    'texte_operation_echec' => 'Retournez à la page précédente, sélectionnez une autre base ou créez-en une nouvelle. Vérifiez les informations fournies par votre hébergeur.',
827
+    'texte_plus_trois_car' => 'plus de 3 caractères',
828
+    'texte_plusieurs_articles' => 'Plusieurs autrices trouvées pour "@cherche_auteur@" :',
829
+    'texte_port_annuaire' => '(La valeur indiquée par défaut convient généralement.)',
830
+    'texte_presente_plugin' => 'Cette page liste les plugins disponibles sur le site. Vous pouvez activer les plugins nécessaires en cochant la case correspondante.',
831
+    'texte_proposer_publication' => 'Lorsque votre article est terminé,<br /> vous pouvez proposer sa publication.',
832
+    'texte_proxy' => 'Dans certains cas (intranet, réseaux protégés), les sites distants (documentation de SPIP, sites syndiqués, etc.) ne sont accessibles qu’à travers un <i>proxy HTTP</i>. Le cas échéant, indiquez ci-dessous son adresse, sous la forme @proxy_en_cours@. En général, vous laisserez cette case vide.',
833
+    'texte_publication_articles_post_dates' => 'Quel comportement SPIP doit-il adopter face aux articles dont la
834 834
 		date de publication a été fixée à une
835 835
 		échéance future ?',
836
-	'texte_rappel_selection_champs' => '[N’oubliez pas de sélectionner correctement ce champ.]',
837
-	'texte_recalcul_page' => 'Si vous voulez
836
+    'texte_rappel_selection_champs' => '[N’oubliez pas de sélectionner correctement ce champ.]',
837
+    'texte_recalcul_page' => 'Si vous voulez
838 838
 recalculer une seule page, passez plutôt par l’espace public et utilisez-y le bouton « recalculer ».',
839
-	'texte_recuperer_base' => 'Réparer la base de données',
840
-	'texte_reference_mais_redirige' => 'article référencé dans votre site SPIP, mais redirigé vers une autre URL.',
841
-	'texte_requetes_echouent' => '<b>Lorsque certaines requêtes SQL échouent
839
+    'texte_recuperer_base' => 'Réparer la base de données',
840
+    'texte_reference_mais_redirige' => 'article référencé dans votre site SPIP, mais redirigé vers une autre URL.',
841
+    'texte_requetes_echouent' => '<b>Lorsque certaines requêtes SQL échouent
842 842
   systématiquement et sans raison apparente, il est possible
843 843
   que ce soit à cause de la base de données
844 844
   elle-même.</b><p>
@@ -849,90 +849,90 @@  discard block
 block discarded – undo
849 849
   peut-être des indices de ce qui ne va pas...</p><p>
850 850
   Si le problème persiste, prenez contact avec votre
851 851
   hébergeur.</p>',
852
-	'texte_selection_langue_principale' => 'Vous pouvez sélectionner ci-dessous la « langue principale » du site. Ce choix ne vous oblige - heureusement ! - pas à écrire vos articles dans la langue sélectionnée, mais permet de déterminer :
852
+    'texte_selection_langue_principale' => 'Vous pouvez sélectionner ci-dessous la « langue principale » du site. Ce choix ne vous oblige - heureusement ! - pas à écrire vos articles dans la langue sélectionnée, mais permet de déterminer :
853 853
 	<ul><li> le format par défaut des dates sur le site public ;</li>
854 854
 	<li> la nature du moteur typographique que SPIP doit utiliser pour le rendu des textes ;</li>
855 855
 	<li> la langue utilisée dans les formulaires du site public ;</li>
856 856
 	<li> la langue présentée par défaut dans l’espace privé.</li></ul>',
857
-	'texte_sous_titre' => 'Sous-titre',
858
-	'texte_statistiques_visites' => '(barres foncées :  dimanche / courbe foncée : évolution de la moyenne)',
859
-	'texte_statut_attente_validation' => 'en attente de validation',
860
-	'texte_statut_publies' => 'publiés en ligne',
861
-	'texte_statut_refuses' => 'refusés',
862
-	'texte_suppression_fichiers' => 'Utilisez cette commande afin de supprimer tous les fichiers présents
857
+    'texte_sous_titre' => 'Sous-titre',
858
+    'texte_statistiques_visites' => '(barres foncées :  dimanche / courbe foncée : évolution de la moyenne)',
859
+    'texte_statut_attente_validation' => 'en attente de validation',
860
+    'texte_statut_publies' => 'publiés en ligne',
861
+    'texte_statut_refuses' => 'refusés',
862
+    'texte_suppression_fichiers' => 'Utilisez cette commande afin de supprimer tous les fichiers présents
863 863
 dans le cache SPIP. Cela permet par exemple de forcer un recalcul de toutes les pages si vous
864 864
 avez fait des modifications importantes de graphisme ou de structure du site.',
865
-	'texte_sur_titre' => 'Sur-titre',
866
-	'texte_table_ok' => ' : cette table est OK.',
867
-	'texte_tentative_recuperation' => 'Tentative de réparation',
868
-	'texte_tenter_reparation' => 'Tenter une réparation de la base de données',
869
-	'texte_test_proxy' => 'Pour faire un essai de ce proxy, indiquez ici l’adresse d’un site Web
865
+    'texte_sur_titre' => 'Sur-titre',
866
+    'texte_table_ok' => ' : cette table est OK.',
867
+    'texte_tentative_recuperation' => 'Tentative de réparation',
868
+    'texte_tenter_reparation' => 'Tenter une réparation de la base de données',
869
+    'texte_test_proxy' => 'Pour faire un essai de ce proxy, indiquez ici l’adresse d’un site Web
870 870
 				que vous souhaitez tester.',
871
-	'texte_titre_02' => 'Titre :',
872
-	'texte_titre_obligatoire' => '<b>Titre</b> [Obligatoire]',
873
-	'texte_travail_article' => '@nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes',
874
-	'texte_travail_collaboratif' => 'S’il est fréquent que plusieures rédactrices
871
+    'texte_titre_02' => 'Titre :',
872
+    'texte_titre_obligatoire' => '<b>Titre</b> [Obligatoire]',
873
+    'texte_travail_article' => '@nom_auteur_modif@ a travaillé sur cet article il y a @date_diff@ minutes',
874
+    'texte_travail_collaboratif' => 'S’il est fréquent que plusieures rédactrices
875 875
 		travaillent sur le même article, le système
876 876
 		peut afficher les articles récemment « ouverts »
877 877
 		afin d’éviter les modifications simultanées.
878 878
 		Cette option est désactivée par défaut
879 879
 		afin d’éviter d’afficher des messages d’avertissement
880 880
 		intempestifs.',
881
-	'texte_vide' => 'vide',
882
-	'texte_vider_cache' => 'Vider le cache',
883
-	'titre_admin_tech' => 'Maintenance technique',
884
-	'titre_admin_vider' => 'Maintenance technique',
885
-	'titre_ajouter_un_auteur' => 'Ajouter une autrice',
886
-	'titre_ajouter_un_mot' => 'Ajouter un mot-clé',
887
-	'titre_cadre_afficher_article' => 'Afficher les articles',
888
-	'titre_cadre_afficher_traductions' => 'Afficher l’état des traductions pour les langues suivantes :',
889
-	'titre_cadre_ajouter_auteur' => 'AJOUTER UNE AUTRICE :',
890
-	'titre_cadre_interieur_rubrique' => 'À l’intérieur de la rubrique',
891
-	'titre_cadre_numero_auteur' => 'AUTRICE NUMÉRO',
892
-	'titre_cadre_numero_objet' => '@objet@ NUMÉRO :',
893
-	'titre_cadre_signature_obligatoire' => '<b>Signature</b> [Obligatoire]<br />',
894
-	'titre_config_contenu_notifications' => 'Notifications',
895
-	'titre_config_contenu_prive' => 'Dans l’espace privé',
896
-	'titre_config_contenu_public' => 'Sur le site public',
897
-	'titre_config_fonctions' => 'Configuration du site',
898
-	'titre_config_langage' => 'Configurer la langue',
899
-	'titre_configuration' => 'Configuration du site',
900
-	'titre_configurer_preferences' => 'Configurer vos préférences',
901
-	'titre_configurer_preferences_menus' => 'Configurer vos préférences de menus',
902
-	'titre_conflit_edition' => 'Conflit lors de l’édition',
903
-	'titre_connexion_ldap' => 'Options : <b>Votre connexion LDAP</b>',
904
-	'titre_groupe_mots' => 'GROUPE DE MOTS :',
905
-	'titre_identite_site' => 'Identité du site',
906
-	'titre_langue_article' => 'Langue de l’article',
907
-	'titre_langue_rubrique' => 'Langue de la rubrique',
908
-	'titre_langue_trad_article' => 'LANGUE ET TRADUCTIONS DE L’ARTICLE',
909
-	'titre_les_articles' => 'LES ARTICLES',
910
-	'titre_messagerie_agenda' => 'Messagerie et agenda',
911
-	'titre_naviguer_dans_le_site' => 'Naviguer dans le site...',
912
-	'titre_nouvelle_rubrique' => 'Nouvelle rubrique',
913
-	'titre_numero_rubrique' => 'RUBRIQUE NUMÉRO :',
914
-	'titre_page_articles_edit' => 'Modifier : @titre@',
915
-	'titre_page_articles_page' => 'Les articles',
916
-	'titre_page_articles_tous' => 'Tout le site',
917
-	'titre_page_calendrier' => 'Calendrier @nom_mois@ @annee@',
918
-	'titre_page_config_contenu' => 'Configuration du site',
919
-	'titre_page_delete_all' => 'suppression totale et irréversible',
920
-	'titre_page_recherche' => 'Résultats de la recherche @recherche@',
921
-	'titre_page_statistiques_referers' => 'Statistiques (liens entrants)',
922
-	'titre_page_upgrade' => 'Mise à niveau de SPIP',
923
-	'titre_preference_menus_favoris' => 'Menus favoris',
924
-	'titre_publication_articles_post_dates' => 'Publication des articles post-datés',
925
-	'titre_reparation' => 'Réparation',
926
-	'titre_suivi_petition' => 'Suivi des pétitions',
927
-	'tls_ldap' => 'Transport Layer Security :',
928
-	'trad_article_traduction' => 'Toutes les versions de cet article :',
929
-	'trad_delier' => 'Ne plus lier à ces traductions',
930
-	'trad_lier' => 'Cet article est une traduction de l’article numéro :',
931
-	'trad_new' => 'Écrire une nouvelle traduction',
881
+    'texte_vide' => 'vide',
882
+    'texte_vider_cache' => 'Vider le cache',
883
+    'titre_admin_tech' => 'Maintenance technique',
884
+    'titre_admin_vider' => 'Maintenance technique',
885
+    'titre_ajouter_un_auteur' => 'Ajouter une autrice',
886
+    'titre_ajouter_un_mot' => 'Ajouter un mot-clé',
887
+    'titre_cadre_afficher_article' => 'Afficher les articles',
888
+    'titre_cadre_afficher_traductions' => 'Afficher l’état des traductions pour les langues suivantes :',
889
+    'titre_cadre_ajouter_auteur' => 'AJOUTER UNE AUTRICE :',
890
+    'titre_cadre_interieur_rubrique' => 'À l’intérieur de la rubrique',
891
+    'titre_cadre_numero_auteur' => 'AUTRICE NUMÉRO',
892
+    'titre_cadre_numero_objet' => '@objet@ NUMÉRO :',
893
+    'titre_cadre_signature_obligatoire' => '<b>Signature</b> [Obligatoire]<br />',
894
+    'titre_config_contenu_notifications' => 'Notifications',
895
+    'titre_config_contenu_prive' => 'Dans l’espace privé',
896
+    'titre_config_contenu_public' => 'Sur le site public',
897
+    'titre_config_fonctions' => 'Configuration du site',
898
+    'titre_config_langage' => 'Configurer la langue',
899
+    'titre_configuration' => 'Configuration du site',
900
+    'titre_configurer_preferences' => 'Configurer vos préférences',
901
+    'titre_configurer_preferences_menus' => 'Configurer vos préférences de menus',
902
+    'titre_conflit_edition' => 'Conflit lors de l’édition',
903
+    'titre_connexion_ldap' => 'Options : <b>Votre connexion LDAP</b>',
904
+    'titre_groupe_mots' => 'GROUPE DE MOTS :',
905
+    'titre_identite_site' => 'Identité du site',
906
+    'titre_langue_article' => 'Langue de l’article',
907
+    'titre_langue_rubrique' => 'Langue de la rubrique',
908
+    'titre_langue_trad_article' => 'LANGUE ET TRADUCTIONS DE L’ARTICLE',
909
+    'titre_les_articles' => 'LES ARTICLES',
910
+    'titre_messagerie_agenda' => 'Messagerie et agenda',
911
+    'titre_naviguer_dans_le_site' => 'Naviguer dans le site...',
912
+    'titre_nouvelle_rubrique' => 'Nouvelle rubrique',
913
+    'titre_numero_rubrique' => 'RUBRIQUE NUMÉRO :',
914
+    'titre_page_articles_edit' => 'Modifier : @titre@',
915
+    'titre_page_articles_page' => 'Les articles',
916
+    'titre_page_articles_tous' => 'Tout le site',
917
+    'titre_page_calendrier' => 'Calendrier @nom_mois@ @annee@',
918
+    'titre_page_config_contenu' => 'Configuration du site',
919
+    'titre_page_delete_all' => 'suppression totale et irréversible',
920
+    'titre_page_recherche' => 'Résultats de la recherche @recherche@',
921
+    'titre_page_statistiques_referers' => 'Statistiques (liens entrants)',
922
+    'titre_page_upgrade' => 'Mise à niveau de SPIP',
923
+    'titre_preference_menus_favoris' => 'Menus favoris',
924
+    'titre_publication_articles_post_dates' => 'Publication des articles post-datés',
925
+    'titre_reparation' => 'Réparation',
926
+    'titre_suivi_petition' => 'Suivi des pétitions',
927
+    'tls_ldap' => 'Transport Layer Security :',
928
+    'trad_article_traduction' => 'Toutes les versions de cet article :',
929
+    'trad_delier' => 'Ne plus lier à ces traductions',
930
+    'trad_lier' => 'Cet article est une traduction de l’article numéro :',
931
+    'trad_new' => 'Écrire une nouvelle traduction',
932 932
 
933
-	// U
934
-	'utf8_convert_erreur_orig' => 'Erreur : le jeu de caractères @charset@ n’est pas supporté.',
933
+    // U
934
+    'utf8_convert_erreur_orig' => 'Erreur : le jeu de caractères @charset@ n’est pas supporté.',
935 935
 
936
-	// V
937
-	'version' => 'Version :'
936
+    // V
937
+    'version' => 'Version :'
938 938
 );
Please login to merge, or discard this patch.
ecrire/lang/public_fr_fem.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -4,123 +4,123 @@
 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
-	'accueil_site' => 'Accueil',
14
-	'article' => 'Article',
15
-	'articles' => 'Articles',
16
-	'articles_auteur' => 'Articles de cette autrice',
17
-	'articles_populaires' => 'Articles les plus populaires',
18
-	'articles_rubrique' => 'Articles de cette rubrique',
19
-	'aucun_article' => 'Il n’y a pas d’article à cette adresse',
20
-	'aucun_auteur' => 'Il n’y a pas d’autrice à cette adresse',
21
-	'aucun_site' => 'Il n’y a pas de site à cette adresse',
22
-	'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
23
-	'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
24
-	'auteur' => 'Autrice',
25
-	'autres' => 'Autres',
26
-	'autres_breves' => 'Autres brèves',
27
-	'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
28
-	'autres_sites' => 'Autres sites',
29
-
30
-	// B
31
-	'bonjour' => 'Bonjour',
32
-
33
-	// C
34
-	'commenter_site' => 'Commenter ce site',
35
-	'contact' => 'Contact',
36
-	'copie_document_impossible' => 'Impossible de copier le document',
37
-
38
-	// D
39
-	'date' => 'Date',
40
-	'dernier_ajout' => 'Dernier ajout',
41
-	'dernieres_breves' => 'Dernières brèves',
42
-	'derniers_articles' => 'Derniers articles',
43
-	'derniers_commentaires' => 'Derniers commentaires',
44
-	'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
45
-
46
-	// E
47
-	'edition_mode_texte' => 'Édition en mode texte de',
48
-	'en_reponse' => 'En réponse à :',
49
-	'en_resume' => 'En résumé',
50
-	'envoyer_message' => 'Envoyer un message',
51
-	'espace_prive' => 'Espace privé',
52
-
53
-	// F
54
-	'formats_acceptes' => 'Formats acceptés : @formats@.',
55
-
56
-	// H
57
-	'hierarchie_site' => 'Hiérarchie du site',
58
-
59
-	// J
60
-	'jours' => 'jours',
61
-
62
-	// L
63
-	'lien_connecter' => 'Se connecter',
64
-
65
-	// M
66
-	'meme_auteur' => 'De la même autrice',
67
-	'meme_rubrique' => 'Dans la même rubrique',
68
-	'memes_auteurs' => 'Des mêmes autrices',
69
-	'message' => 'Message',
70
-	'messages_forum' => 'Messages',
71
-	'messages_recents' => 'Messages de forums les plus récents',
72
-	'mots_clef' => 'Mot-clé',
73
-	'mots_clefs' => 'Mots-clés',
74
-	'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
75
-
76
-	// N
77
-	'navigation' => 'Navigation',
78
-	'nom' => 'Nom',
79
-	'nouveautes' => 'Les nouveautés',
80
-	'nouveautes_web' => 'Nouveautés sur le Web',
81
-	'nouveaux_articles' => 'Nouveaux articles',
82
-	'nouvelles_breves' => 'Nouvelles brèves',
83
-
84
-	// P
85
-	'page_precedente' => 'page précédente',
86
-	'page_suivante' => 'page suivante',
87
-	'par_auteur' => 'par ',
88
-	'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.',
89
-	'plan_site' => 'Plan du site',
90
-	'popularite' => 'Popularité',
91
-	'poster_message' => 'Poster un message',
92
-	'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
93
-
94
-	// R
95
-	'repondre_article' => 'Répondre à cet article',
96
-	'repondre_breve' => 'Répondre à cette brève',
97
-	'resultats_recherche' => 'Résultats de la recherche',
98
-	'retour_debut_forums' => 'Retour au début des forums',
99
-	'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
100
-	'rss_abonnement_titre' => 'S’abonner',
101
-	'rss_abonnement_titre_page' => 'S’abonner à',
102
-	'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.',
103
-	'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
104
-	'rubrique' => 'Rubrique',
105
-	'rubriques' => 'Rubriques',
106
-
107
-	// S
108
-	'signatures_petition' => 'Signatures',
109
-	'site_realise_avec_spip' => 'Site réalisé avec SPIP',
110
-	'sites_web' => 'Sites Web',
111
-	'sous_rubriques' => 'Sous-rubriques',
112
-	'spam' => 'Spam',
113
-	'suite' => 'suite',
114
-	'sur_web' => 'Sur le Web',
115
-	'syndiquer_rubrique' => 'Syndiquer cette rubrique',
116
-	'syndiquer_site' => 'Syndiquer tout le site',
117
-
118
-	// T
119
-	'texte_lettre_information' => 'Voici la lettre d’information du site',
120
-	'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
121
-
122
-	// V
123
-	'ver_imprimer' => 'Version à imprimer',
124
-	'voir_en_ligne' => 'Voir en ligne',
125
-	'voir_squelette' => 'voir le squelette de cette page'
12
+    // A
13
+    'accueil_site' => 'Accueil',
14
+    'article' => 'Article',
15
+    'articles' => 'Articles',
16
+    'articles_auteur' => 'Articles de cette autrice',
17
+    'articles_populaires' => 'Articles les plus populaires',
18
+    'articles_rubrique' => 'Articles de cette rubrique',
19
+    'aucun_article' => 'Il n’y a pas d’article à cette adresse',
20
+    'aucun_auteur' => 'Il n’y a pas d’autrice à cette adresse',
21
+    'aucun_site' => 'Il n’y a pas de site à cette adresse',
22
+    'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
23
+    'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
24
+    'auteur' => 'Autrice',
25
+    'autres' => 'Autres',
26
+    'autres_breves' => 'Autres brèves',
27
+    'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
28
+    'autres_sites' => 'Autres sites',
29
+
30
+    // B
31
+    'bonjour' => 'Bonjour',
32
+
33
+    // C
34
+    'commenter_site' => 'Commenter ce site',
35
+    'contact' => 'Contact',
36
+    'copie_document_impossible' => 'Impossible de copier le document',
37
+
38
+    // D
39
+    'date' => 'Date',
40
+    'dernier_ajout' => 'Dernier ajout',
41
+    'dernieres_breves' => 'Dernières brèves',
42
+    'derniers_articles' => 'Derniers articles',
43
+    'derniers_commentaires' => 'Derniers commentaires',
44
+    'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
45
+
46
+    // E
47
+    'edition_mode_texte' => 'Édition en mode texte de',
48
+    'en_reponse' => 'En réponse à :',
49
+    'en_resume' => 'En résumé',
50
+    'envoyer_message' => 'Envoyer un message',
51
+    'espace_prive' => 'Espace privé',
52
+
53
+    // F
54
+    'formats_acceptes' => 'Formats acceptés : @formats@.',
55
+
56
+    // H
57
+    'hierarchie_site' => 'Hiérarchie du site',
58
+
59
+    // J
60
+    'jours' => 'jours',
61
+
62
+    // L
63
+    'lien_connecter' => 'Se connecter',
64
+
65
+    // M
66
+    'meme_auteur' => 'De la même autrice',
67
+    'meme_rubrique' => 'Dans la même rubrique',
68
+    'memes_auteurs' => 'Des mêmes autrices',
69
+    'message' => 'Message',
70
+    'messages_forum' => 'Messages',
71
+    'messages_recents' => 'Messages de forums les plus récents',
72
+    'mots_clef' => 'Mot-clé',
73
+    'mots_clefs' => 'Mots-clés',
74
+    'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
75
+
76
+    // N
77
+    'navigation' => 'Navigation',
78
+    'nom' => 'Nom',
79
+    'nouveautes' => 'Les nouveautés',
80
+    'nouveautes_web' => 'Nouveautés sur le Web',
81
+    'nouveaux_articles' => 'Nouveaux articles',
82
+    'nouvelles_breves' => 'Nouvelles brèves',
83
+
84
+    // P
85
+    'page_precedente' => 'page précédente',
86
+    'page_suivante' => 'page suivante',
87
+    'par_auteur' => 'par ',
88
+    'participer_site' => 'Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d’accès à l’espace privé du site.',
89
+    'plan_site' => 'Plan du site',
90
+    'popularite' => 'Popularité',
91
+    'poster_message' => 'Poster un message',
92
+    'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
93
+
94
+    // R
95
+    'repondre_article' => 'Répondre à cet article',
96
+    'repondre_breve' => 'Répondre à cette brève',
97
+    'resultats_recherche' => 'Résultats de la recherche',
98
+    'retour_debut_forums' => 'Retour au début des forums',
99
+    'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
100
+    'rss_abonnement_titre' => 'S’abonner',
101
+    'rss_abonnement_titre_page' => 'S’abonner à',
102
+    'rss_explication' => 'Un fil RSS recueille les informations de mise à jour d’un site. Il fournit le contenu des billets ou des commentaires ou un extrait de ceux-ci, ainsi qu’un lien vers les versions complètes et quelques autres informations. Ce fil a pour vocation d’être lu par un agrégateur RSS.',
103
+    'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
104
+    'rubrique' => 'Rubrique',
105
+    'rubriques' => 'Rubriques',
106
+
107
+    // S
108
+    'signatures_petition' => 'Signatures',
109
+    'site_realise_avec_spip' => 'Site réalisé avec SPIP',
110
+    'sites_web' => 'Sites Web',
111
+    'sous_rubriques' => 'Sous-rubriques',
112
+    'spam' => 'Spam',
113
+    'suite' => 'suite',
114
+    'sur_web' => 'Sur le Web',
115
+    'syndiquer_rubrique' => 'Syndiquer cette rubrique',
116
+    'syndiquer_site' => 'Syndiquer tout le site',
117
+
118
+    // T
119
+    'texte_lettre_information' => 'Voici la lettre d’information du site',
120
+    'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
121
+
122
+    // V
123
+    'ver_imprimer' => 'Version à imprimer',
124
+    'voir_en_ligne' => 'Voir en ligne',
125
+    'voir_squelette' => 'voir le squelette de cette page'
126 126
 );
Please login to merge, or discard this patch.
ecrire/lang/public_pt.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -4,123 +4,123 @@
 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
-	'accueil_site' => 'Página inicial do sítio',
14
-	'article' => 'Artigo',
15
-	'articles' => 'Artigos',
16
-	'articles_auteur' => 'Artigos deste autor',
17
-	'articles_populaires' => 'Artigos mais populares',
18
-	'articles_rubrique' => 'Artigos desta rubrica',
19
-	'aucun_article' => 'Nenhum artigo neste endereço',
20
-	'aucun_auteur' => 'Nenhum autor neste endereço',
21
-	'aucun_site' => 'Nenhum sítio neste endereço',
22
-	'aucune_breve' => 'Nenhuma notícia neste endereço',
23
-	'aucune_rubrique' => 'Nenhuma rubrica neste endereço',
24
-	'auteur' => 'Autor',
25
-	'autres' => 'Outros',
26
-	'autres_breves' => 'Outras notícias',
27
-	'autres_groupes_mots_clefs' => 'Outros grupos de palavras-chave',
28
-	'autres_sites' => 'Outros sítios',
29
-
30
-	// B
31
-	'bonjour' => 'Bom dia',
32
-
33
-	// C
34
-	'commenter_site' => 'Comentar este sítio',
35
-	'contact' => 'Contacto',
36
-	'copie_document_impossible' => 'Impossível copiar este documento',
37
-
38
-	// D
39
-	'date' => 'Data',
40
-	'dernier_ajout' => 'Última actualização',
41
-	'dernieres_breves' => 'Últimas notícias',
42
-	'derniers_articles' => 'Últimos artigos',
43
-	'derniers_commentaires' => 'Últimos comentários',
44
-	'derniers_messages_forum' => 'Últimas mensagens publicadas nos fóruns',
45
-
46
-	// E
47
-	'edition_mode_texte' => 'Edição apenas em modo de texto',
48
-	'en_reponse' => 'Em resposta a :',
49
-	'en_resume' => 'Em resumo',
50
-	'envoyer_message' => 'Enviar uma mensagem',
51
-	'espace_prive' => 'Área privada',
52
-
53
-	// F
54
-	'formats_acceptes' => 'Formatos válidos : @formats@.',
55
-
56
-	// H
57
-	'hierarchie_site' => 'Mapa do sítio',
58
-
59
-	// J
60
-	'jours' => 'dias',
61
-
62
-	// L
63
-	'lien_connecter' => 'Entrar',
64
-
65
-	// M
66
-	'meme_auteur' => 'Do mesmo autor',
67
-	'meme_rubrique' => 'Na mesma rubrica',
68
-	'memes_auteurs' => 'Dos mesmos autores',
69
-	'message' => 'Mensagem',
70
-	'messages_forum' => 'Mensagens de fórum',
71
-	'messages_recents' => 'Mensagens de fóruns mais recentes',
72
-	'mots_clef' => 'Palavra-chave',
73
-	'mots_clefs' => 'Palavras-chave',
74
-	'mots_clefs_meme_groupe' => 'Palavras-chave no mesmo grupo',
75
-
76
-	// N
77
-	'navigation' => 'Navegação',
78
-	'nom' => 'Nome',
79
-	'nouveautes' => 'As novidades',
80
-	'nouveautes_web' => 'Novidades na Web',
81
-	'nouveaux_articles' => 'Novos artigos',
82
-	'nouvelles_breves' => 'Novas notícias',
83
-
84
-	// P
85
-	'page_precedente' => 'página anterior',
86
-	'page_suivante' => 'página seguinte',
87
-	'par_auteur' => 'por',
88
-	'participer_site' => 'Pode participar na vida deste sítio e propor os seus próprios artigos, inscrevendo-se mais abaixo. Receberá imediatamente um email com os seus códigos de acesso ao espaço privado do sítio.',
89
-	'plan_site' => 'Mapa do sítio',
90
-	'popularite' => 'Popularidade',
91
-	'poster_message' => 'Enviar uma mensagem',
92
-	'proposer_site' => 'Você pode propor um sítio a adicionar a esta rubrica :',
93
-
94
-	// R
95
-	'repondre_article' => 'Comentar este artigo',
96
-	'repondre_breve' => 'Comentar esta notícia',
97
-	'resultats_recherche' => 'Resultados da pesquisa',
98
-	'retour_debut_forums' => 'Regresso ao início dos fóruns',
99
-	'rss_abonnement' => 'Copie o seguinte URL para o seu agregador de conteúdos:',
100
-	'rss_abonnement_titre' => 'Subscrever',
101
-	'rss_abonnement_titre_page' => 'Subscrever',
102
-	'rss_explication' => 'Um "feed" RSS recolhe informação actualizada a partir de um sítio. Fornece o conteúdo das publicações ou comentários ou um extracto dos mesmos, bem como um link para as versões completas e outras informações. Este "feed" destina-se a ser lido por um agregador RSS.',
103
-	'rss_explication_titre' => 'O que é um "feed RSS"?',
104
-	'rubrique' => 'Rubrica',
105
-	'rubriques' => 'Rubricas',
106
-
107
-	// S
108
-	'signatures_petition' => 'Assinaturas',
109
-	'site_realise_avec_spip' => 'Sítio realizado com SPIP',
110
-	'sites_web' => 'Sítios Web',
111
-	'sous_rubriques' => 'Sub-rubricas',
112
-	'spam' => 'Spam',
113
-	'suite' => 'continuação',
114
-	'sur_web' => 'Na Web',
115
-	'syndiquer_rubrique' => 'Subscrever esta rubrica',
116
-	'syndiquer_site' => 'Subscrever todo o sítio',
117
-
118
-	// T
119
-	'texte_lettre_information' => 'Eis a carta de informação do sítio',
120
-	'texte_lettre_information_2' => 'Este sítio contém novos itens publicados desde',
121
-
122
-	// V
123
-	'ver_imprimer' => 'Versão para imprimir',
124
-	'voir_en_ligne' => 'Ver online',
125
-	'voir_squelette' => 'exibir o modelo desta página'
12
+    // A
13
+    'accueil_site' => 'Página inicial do sítio',
14
+    'article' => 'Artigo',
15
+    'articles' => 'Artigos',
16
+    'articles_auteur' => 'Artigos deste autor',
17
+    'articles_populaires' => 'Artigos mais populares',
18
+    'articles_rubrique' => 'Artigos desta rubrica',
19
+    'aucun_article' => 'Nenhum artigo neste endereço',
20
+    'aucun_auteur' => 'Nenhum autor neste endereço',
21
+    'aucun_site' => 'Nenhum sítio neste endereço',
22
+    'aucune_breve' => 'Nenhuma notícia neste endereço',
23
+    'aucune_rubrique' => 'Nenhuma rubrica neste endereço',
24
+    'auteur' => 'Autor',
25
+    'autres' => 'Outros',
26
+    'autres_breves' => 'Outras notícias',
27
+    'autres_groupes_mots_clefs' => 'Outros grupos de palavras-chave',
28
+    'autres_sites' => 'Outros sítios',
29
+
30
+    // B
31
+    'bonjour' => 'Bom dia',
32
+
33
+    // C
34
+    'commenter_site' => 'Comentar este sítio',
35
+    'contact' => 'Contacto',
36
+    'copie_document_impossible' => 'Impossível copiar este documento',
37
+
38
+    // D
39
+    'date' => 'Data',
40
+    'dernier_ajout' => 'Última actualização',
41
+    'dernieres_breves' => 'Últimas notícias',
42
+    'derniers_articles' => 'Últimos artigos',
43
+    'derniers_commentaires' => 'Últimos comentários',
44
+    'derniers_messages_forum' => 'Últimas mensagens publicadas nos fóruns',
45
+
46
+    // E
47
+    'edition_mode_texte' => 'Edição apenas em modo de texto',
48
+    'en_reponse' => 'Em resposta a :',
49
+    'en_resume' => 'Em resumo',
50
+    'envoyer_message' => 'Enviar uma mensagem',
51
+    'espace_prive' => 'Área privada',
52
+
53
+    // F
54
+    'formats_acceptes' => 'Formatos válidos : @formats@.',
55
+
56
+    // H
57
+    'hierarchie_site' => 'Mapa do sítio',
58
+
59
+    // J
60
+    'jours' => 'dias',
61
+
62
+    // L
63
+    'lien_connecter' => 'Entrar',
64
+
65
+    // M
66
+    'meme_auteur' => 'Do mesmo autor',
67
+    'meme_rubrique' => 'Na mesma rubrica',
68
+    'memes_auteurs' => 'Dos mesmos autores',
69
+    'message' => 'Mensagem',
70
+    'messages_forum' => 'Mensagens de fórum',
71
+    'messages_recents' => 'Mensagens de fóruns mais recentes',
72
+    'mots_clef' => 'Palavra-chave',
73
+    'mots_clefs' => 'Palavras-chave',
74
+    'mots_clefs_meme_groupe' => 'Palavras-chave no mesmo grupo',
75
+
76
+    // N
77
+    'navigation' => 'Navegação',
78
+    'nom' => 'Nome',
79
+    'nouveautes' => 'As novidades',
80
+    'nouveautes_web' => 'Novidades na Web',
81
+    'nouveaux_articles' => 'Novos artigos',
82
+    'nouvelles_breves' => 'Novas notícias',
83
+
84
+    // P
85
+    'page_precedente' => 'página anterior',
86
+    'page_suivante' => 'página seguinte',
87
+    'par_auteur' => 'por',
88
+    'participer_site' => 'Pode participar na vida deste sítio e propor os seus próprios artigos, inscrevendo-se mais abaixo. Receberá imediatamente um email com os seus códigos de acesso ao espaço privado do sítio.',
89
+    'plan_site' => 'Mapa do sítio',
90
+    'popularite' => 'Popularidade',
91
+    'poster_message' => 'Enviar uma mensagem',
92
+    'proposer_site' => 'Você pode propor um sítio a adicionar a esta rubrica :',
93
+
94
+    // R
95
+    'repondre_article' => 'Comentar este artigo',
96
+    'repondre_breve' => 'Comentar esta notícia',
97
+    'resultats_recherche' => 'Resultados da pesquisa',
98
+    'retour_debut_forums' => 'Regresso ao início dos fóruns',
99
+    'rss_abonnement' => 'Copie o seguinte URL para o seu agregador de conteúdos:',
100
+    'rss_abonnement_titre' => 'Subscrever',
101
+    'rss_abonnement_titre_page' => 'Subscrever',
102
+    'rss_explication' => 'Um "feed" RSS recolhe informação actualizada a partir de um sítio. Fornece o conteúdo das publicações ou comentários ou um extracto dos mesmos, bem como um link para as versões completas e outras informações. Este "feed" destina-se a ser lido por um agregador RSS.',
103
+    'rss_explication_titre' => 'O que é um "feed RSS"?',
104
+    'rubrique' => 'Rubrica',
105
+    'rubriques' => 'Rubricas',
106
+
107
+    // S
108
+    'signatures_petition' => 'Assinaturas',
109
+    'site_realise_avec_spip' => 'Sítio realizado com SPIP',
110
+    'sites_web' => 'Sítios Web',
111
+    'sous_rubriques' => 'Sub-rubricas',
112
+    'spam' => 'Spam',
113
+    'suite' => 'continuação',
114
+    'sur_web' => 'Na Web',
115
+    'syndiquer_rubrique' => 'Subscrever esta rubrica',
116
+    'syndiquer_site' => 'Subscrever todo o sítio',
117
+
118
+    // T
119
+    'texte_lettre_information' => 'Eis a carta de informação do sítio',
120
+    'texte_lettre_information_2' => 'Este sítio contém novos itens publicados desde',
121
+
122
+    // V
123
+    'ver_imprimer' => 'Versão para imprimir',
124
+    'voir_en_ligne' => 'Ver online',
125
+    'voir_squelette' => 'exibir o modelo desta página'
126 126
 );
Please login to merge, or discard this patch.
prive/formulaires/configurer_ecran_connexion.php 1 patch
Indentation   +74 added lines, -74 removed lines patch added patch discarded remove patch
@@ -1,94 +1,94 @@
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 function formulaires_configurer_ecran_connexion_data(): array {
4
-	return [
5
-		'couleur_defaut' => '#db1762',
6
-		'img_fond' => _DIR_IMG . 'spip_fond_login.jpg',
7
-	];
4
+    return [
5
+        'couleur_defaut' => '#db1762',
6
+        'img_fond' => _DIR_IMG . 'spip_fond_login.jpg',
7
+    ];
8 8
 }
9 9
 
10 10
 function formulaires_configurer_ecran_connexion_charger_dist() {
11
-	include_spip('inc/config');
12
-	include_spip('inc/autoriser');
11
+    include_spip('inc/config');
12
+    include_spip('inc/autoriser');
13 13
 
14
-	$data = formulaires_configurer_ecran_connexion_data();
14
+    $data = formulaires_configurer_ecran_connexion_data();
15 15
 
16
-	$valeurs = [
17
-		'couleur_login' => lire_config('couleur_login', $data['couleur_defaut']),
18
-		'couleur_defaut_login' => $data['couleur_defaut'],
19
-		'upload_image_fond_login' => '',
20
-	];
16
+    $valeurs = [
17
+        'couleur_login' => lire_config('couleur_login', $data['couleur_defaut']),
18
+        'couleur_defaut_login' => $data['couleur_defaut'],
19
+        'upload_image_fond_login' => '',
20
+    ];
21 21
 
22
-	if (file_exists($data['img_fond'])) {
23
-		$valeurs['src_img'] = $data['img_fond'];
24
-	}
22
+    if (file_exists($data['img_fond'])) {
23
+        $valeurs['src_img'] = $data['img_fond'];
24
+    }
25 25
 
26
-	return $valeurs;
26
+    return $valeurs;
27 27
 }
28 28
 
29 29
 
30 30
 function formulaires_configurer_ecran_connexion_verifier_dist() {
31
-	$erreurs = [];
32
-
33
-	if (_request('supprimer_image_fond_login')) {
34
-		// rien à tester
35
-	}
36
-
37
-	elseif (_request('supprimer_couleur_login')) {
38
-		// rien à tester
39
-	}
40
-
41
-	elseif (!empty($_FILES['upload_image_fond_login'])) {
42
-		$file = $_FILES['upload_image_fond_login'];
43
-		include_spip('inc/documents');
44
-		$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
45
-		$extension = corriger_extension(strtolower($extension));
46
-		if (!in_array($extension, ['jpg'])) {
47
-			$erreurs['upload_image_fond_login'] = _T('erreur_type_fichier');
48
-		}
49
-	}
50
-
51
-	return $erreurs;
31
+    $erreurs = [];
32
+
33
+    if (_request('supprimer_image_fond_login')) {
34
+        // rien à tester
35
+    }
36
+
37
+    elseif (_request('supprimer_couleur_login')) {
38
+        // rien à tester
39
+    }
40
+
41
+    elseif (!empty($_FILES['upload_image_fond_login'])) {
42
+        $file = $_FILES['upload_image_fond_login'];
43
+        include_spip('inc/documents');
44
+        $extension = pathinfo($file['name'], PATHINFO_EXTENSION);
45
+        $extension = corriger_extension(strtolower($extension));
46
+        if (!in_array($extension, ['jpg'])) {
47
+            $erreurs['upload_image_fond_login'] = _T('erreur_type_fichier');
48
+        }
49
+    }
50
+
51
+    return $erreurs;
52 52
 }
53 53
 
54 54
 
55 55
 function formulaires_configurer_ecran_connexion_traiter_dist() {
56 56
 
57
-	$retours = [
58
-		'message_ok' => _T('config_info_enregistree'),
59
-		'editable' => true,
60
-	];
61
-
62
-	include_spip('inc/config');
63
-	$data = formulaires_configurer_ecran_connexion_data();
64
-	$dest = $data['img_fond'];
65
-
66
-	if (_request('couleur_login')) {
67
-		$color = _request('couleur_login');
68
-		if ($color === $data['couleur_defaut']) {
69
-			effacer_config('couleur_login');
70
-		} else {
71
-			ecrire_config('couleur_login', $color);
72
-		}
73
-	}
74
-
75
-	if (_request('supprimer_image_fond_login')) {
76
-		@unlink($dest);
77
-	}
78
-
79
-	elseif (_request('supprimer_couleur_login')) {
80
-		effacer_config('couleur_login');
81
-		set_request('couleur_login', null);
82
-	}
83
-
84
-	elseif (!empty($_FILES['upload_image_fond_login'])) {
85
-		$file = $_FILES['upload_image_fond_login'];
86
-		include_spip('inc/documents');
87
-		deplacer_fichier_upload($file['tmp_name'], $dest);
88
-	}
89
-
90
-	include_spip('inc/invalideur');
91
-	suivre_invalideur('1'); # tout effacer
92
-
93
-	return $retours;
57
+    $retours = [
58
+        'message_ok' => _T('config_info_enregistree'),
59
+        'editable' => true,
60
+    ];
61
+
62
+    include_spip('inc/config');
63
+    $data = formulaires_configurer_ecran_connexion_data();
64
+    $dest = $data['img_fond'];
65
+
66
+    if (_request('couleur_login')) {
67
+        $color = _request('couleur_login');
68
+        if ($color === $data['couleur_defaut']) {
69
+            effacer_config('couleur_login');
70
+        } else {
71
+            ecrire_config('couleur_login', $color);
72
+        }
73
+    }
74
+
75
+    if (_request('supprimer_image_fond_login')) {
76
+        @unlink($dest);
77
+    }
78
+
79
+    elseif (_request('supprimer_couleur_login')) {
80
+        effacer_config('couleur_login');
81
+        set_request('couleur_login', null);
82
+    }
83
+
84
+    elseif (!empty($_FILES['upload_image_fond_login'])) {
85
+        $file = $_FILES['upload_image_fond_login'];
86
+        include_spip('inc/documents');
87
+        deplacer_fichier_upload($file['tmp_name'], $dest);
88
+    }
89
+
90
+    include_spip('inc/invalideur');
91
+    suivre_invalideur('1'); # tout effacer
92
+
93
+    return $retours;
94 94
 }
Please login to merge, or discard this patch.
ecrire/inc/livrer_fichier.php 1 patch
Indentation   +125 added lines, -125 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Fichier
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -36,28 +36,28 @@  discard block
 block discarded – undo
36 36
  */
37 37
 function spip_livrer_fichier($fichier, $content_type = 'application/octet-stream', $options = []) {
38 38
 
39
-	$defaut = [
40
-		'attachment' => false,
41
-		'expires' => 3600,
42
-		'range' => null
43
-	];
44
-	$options = array_merge($defaut, $options);
45
-	if (is_numeric($options['expire']) and $options['expire'] > 0) {
46
-		$options['expire'] = gmdate('D, d M Y H:i:s', time() + $options['expires']) . ' GMT';
47
-	}
48
-
49
-	if (is_null($options) and isset($_SERVER['HTTP_RANGE'])) {
50
-		$options['range'] = $_SERVER['HTTP_RANGE'];
51
-	}
52
-
53
-	spip_livrer_fichier_entetes($fichier, $content_type, $options['attachment'] && !$options['range'], $options['expires']);
54
-
55
-	if (!is_null($options['range'])) {
56
-		spip_livrer_fichier_partie($fichier, $options['range']);
57
-	}
58
-	else {
59
-		spip_livrer_fichier_entier($fichier);
60
-	}
39
+    $defaut = [
40
+        'attachment' => false,
41
+        'expires' => 3600,
42
+        'range' => null
43
+    ];
44
+    $options = array_merge($defaut, $options);
45
+    if (is_numeric($options['expire']) and $options['expire'] > 0) {
46
+        $options['expire'] = gmdate('D, d M Y H:i:s', time() + $options['expires']) . ' GMT';
47
+    }
48
+
49
+    if (is_null($options) and isset($_SERVER['HTTP_RANGE'])) {
50
+        $options['range'] = $_SERVER['HTTP_RANGE'];
51
+    }
52
+
53
+    spip_livrer_fichier_entetes($fichier, $content_type, $options['attachment'] && !$options['range'], $options['expires']);
54
+
55
+    if (!is_null($options['range'])) {
56
+        spip_livrer_fichier_partie($fichier, $options['range']);
57
+    }
58
+    else {
59
+        spip_livrer_fichier_entier($fichier);
60
+    }
61 61
 }
62 62
 
63 63
 /**
@@ -70,28 +70,28 @@  discard block
 block discarded – undo
70 70
  * @param int|string $expires
71 71
  */
72 72
 function spip_livrer_fichier_entetes($fichier, $content_type = 'application/octet-stream', $attachment = false, $expires = 0) {
73
-	// toujours envoyer un content type, meme vide !
74
-	header('Accept-Ranges: bytes');
75
-	header('Content-Type: ' . $content_type);
76
-
77
-	if ($attachment) {
78
-		$f = basename($fichier);
79
-		// ce content-type est necessaire pour eviter des corruptions de zip dans ie6
80
-		header('Content-Type: application/octet-stream');
81
-
82
-		header("Content-Disposition: attachment; filename=\"$f\";");
83
-		header('Content-Transfer-Encoding: binary');
84
-
85
-		// fix for IE caching or PHP bug issue
86
-		header('Expires: 0'); // set expiration time
87
-		header('Pragma: public');
88
-		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
89
-	}
90
-	else {
91
-		$f = basename($fichier);
92
-		header("Content-Disposition: inline; filename=\"$f\";");
93
-		header('Expires: ' . $expires); // set expiration time
94
-	}
73
+    // toujours envoyer un content type, meme vide !
74
+    header('Accept-Ranges: bytes');
75
+    header('Content-Type: ' . $content_type);
76
+
77
+    if ($attachment) {
78
+        $f = basename($fichier);
79
+        // ce content-type est necessaire pour eviter des corruptions de zip dans ie6
80
+        header('Content-Type: application/octet-stream');
81
+
82
+        header("Content-Disposition: attachment; filename=\"$f\";");
83
+        header('Content-Transfer-Encoding: binary');
84
+
85
+        // fix for IE caching or PHP bug issue
86
+        header('Expires: 0'); // set expiration time
87
+        header('Pragma: public');
88
+        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
89
+    }
90
+    else {
91
+        $f = basename($fichier);
92
+        header("Content-Disposition: inline; filename=\"$f\";");
93
+        header('Expires: ' . $expires); // set expiration time
94
+    }
95 95
 }
96 96
 
97 97
 /**
@@ -99,20 +99,20 @@  discard block
 block discarded – undo
99 99
  * @param string $fichier
100 100
  */
101 101
 function spip_livrer_fichier_entier($fichier) {
102
-	if (!file_exists($fichier)) {
103
-		throw new \Exception(sprintf('File not found: %s', $fichier));
104
-	}
102
+    if (!file_exists($fichier)) {
103
+        throw new \Exception(sprintf('File not found: %s', $fichier));
104
+    }
105 105
 
106
-	if (!is_readable($fichier)) {
107
-		throw new \Exception(sprintf('File not readable: %s', $fichier));
108
-	}
106
+    if (!is_readable($fichier)) {
107
+        throw new \Exception(sprintf('File not readable: %s', $fichier));
108
+    }
109 109
 
110
-	if ($size = filesize($fichier)) {
111
-		header(sprintf('Content-Length: %d', $size));
112
-	}
110
+    if ($size = filesize($fichier)) {
111
+        header(sprintf('Content-Length: %d', $size));
112
+    }
113 113
 
114
-	readfile($fichier);
115
-	exit();
114
+    readfile($fichier);
115
+    exit();
116 116
 }
117 117
 
118 118
 /**
@@ -125,98 +125,98 @@  discard block
 block discarded – undo
125 125
  * @throws Exception
126 126
  */
127 127
 function spip_livrer_fichier_partie($fichier, $range = null) {
128
-	if (!file_exists($fichier)) {
129
-		throw new \Exception(sprintf('File not found: %s', $fichier));
130
-	}
128
+    if (!file_exists($fichier)) {
129
+        throw new \Exception(sprintf('File not found: %s', $fichier));
130
+    }
131 131
 
132
-	if (!is_readable($fichier)) {
133
-		throw new \Exception(sprintf('File not readable: %s', $fichier));
134
-	}
132
+    if (!is_readable($fichier)) {
133
+        throw new \Exception(sprintf('File not readable: %s', $fichier));
134
+    }
135 135
 
136 136
 
137
-	// Par defaut on envoie tout
138
-	$byteOffset = 0;
139
-	$byteLength = $fileSize = filesize($fichier);
137
+    // Par defaut on envoie tout
138
+    $byteOffset = 0;
139
+    $byteLength = $fileSize = filesize($fichier);
140 140
 
141 141
 
142
-	// Parse Content-Range header for byte offsets, looks like "bytes=11525-" OR "bytes=11525-12451"
143
-	if ($range and preg_match('%bytes=(\d+)-(\d+)?%i', $range, $match)) {
144
-		### Offset signifies where we should begin to read the file
145
-		$byteOffset = (int)$match[1];
142
+    // Parse Content-Range header for byte offsets, looks like "bytes=11525-" OR "bytes=11525-12451"
143
+    if ($range and preg_match('%bytes=(\d+)-(\d+)?%i', $range, $match)) {
144
+        ### Offset signifies where we should begin to read the file
145
+        $byteOffset = (int)$match[1];
146 146
 
147 147
 
148
-		### Length is for how long we should read the file according to the browser, and can never go beyond the file size
149
-		if (isset($match[2])) {
150
-			$finishBytes = (int)$match[2];
151
-			$byteLength = $finishBytes + 1;
152
-		} else {
153
-			$finishBytes = $fileSize - 1;
154
-		}
148
+        ### Length is for how long we should read the file according to the browser, and can never go beyond the file size
149
+        if (isset($match[2])) {
150
+            $finishBytes = (int)$match[2];
151
+            $byteLength = $finishBytes + 1;
152
+        } else {
153
+            $finishBytes = $fileSize - 1;
154
+        }
155 155
 
156
-		$cr_header = sprintf('Content-Range: bytes %d-%d/%d', $byteOffset, $finishBytes, $fileSize);
157
-	}
158
-	else {
159
-		// si pas de range valide, on delegue a la methode d'envoi complet
160
-		spip_livrer_fichier_entier($fichier);
161
-		// redondant, mais facilite la comprehension du code
162
-		exit();
163
-	}
156
+        $cr_header = sprintf('Content-Range: bytes %d-%d/%d', $byteOffset, $finishBytes, $fileSize);
157
+    }
158
+    else {
159
+        // si pas de range valide, on delegue a la methode d'envoi complet
160
+        spip_livrer_fichier_entier($fichier);
161
+        // redondant, mais facilite la comprehension du code
162
+        exit();
163
+    }
164 164
 
165
-	// Remove headers that might unnecessarily clutter up the output
166
-	header_remove('Cache-Control');
167
-	header_remove('Pragma');
165
+    // Remove headers that might unnecessarily clutter up the output
166
+    header_remove('Cache-Control');
167
+    header_remove('Pragma');
168 168
 
169
-	// partial content
170
-	header('HTTP/1.1 206 Partial content');
171
-	header($cr_header);  ### Decrease by 1 on byte-length since this definition is zero-based index of bytes being sent
169
+    // partial content
170
+    header('HTTP/1.1 206 Partial content');
171
+    header($cr_header);  ### Decrease by 1 on byte-length since this definition is zero-based index of bytes being sent
172 172
 
173 173
 
174
-	$byteRange = $byteLength - $byteOffset;
174
+    $byteRange = $byteLength - $byteOffset;
175 175
 
176
-	header(sprintf('Content-Length: %d', $byteRange));
176
+    header(sprintf('Content-Length: %d', $byteRange));
177 177
 
178
-	// Variable containing the buffer
179
-	$buffer = '';
180
-	// Just a reasonable buffer size
181
-	$bufferSize = 512 * 16;
182
-	// Contains how much is left to read of the byteRange
183
-	$bytePool = $byteRange;
178
+    // Variable containing the buffer
179
+    $buffer = '';
180
+    // Just a reasonable buffer size
181
+    $bufferSize = 512 * 16;
182
+    // Contains how much is left to read of the byteRange
183
+    $bytePool = $byteRange;
184 184
 
185
-	if (!$handle = fopen($fichier, 'r')) {
186
-		throw new \Exception(sprintf('Could not get handle for file %s', $fichier));
187
-	}
185
+    if (!$handle = fopen($fichier, 'r')) {
186
+        throw new \Exception(sprintf('Could not get handle for file %s', $fichier));
187
+    }
188 188
 
189
-	if (fseek($handle, $byteOffset, SEEK_SET) == -1) {
190
-		throw new \Exception(sprintf('Could not seek to byte offset %d', $byteOffset));
191
-	}
189
+    if (fseek($handle, $byteOffset, SEEK_SET) == -1) {
190
+        throw new \Exception(sprintf('Could not seek to byte offset %d', $byteOffset));
191
+    }
192 192
 
193 193
 
194
-	while ($bytePool > 0) {
195
-		// How many bytes we request on this iteration
196
-		$chunkSizeRequested = min($bufferSize, $bytePool);
194
+    while ($bytePool > 0) {
195
+        // How many bytes we request on this iteration
196
+        $chunkSizeRequested = min($bufferSize, $bytePool);
197 197
 
198
-		// Try readin $chunkSizeRequested bytes from $handle and put data in $buffer
199
-		$buffer = fread($handle, $chunkSizeRequested);
198
+        // Try readin $chunkSizeRequested bytes from $handle and put data in $buffer
199
+        $buffer = fread($handle, $chunkSizeRequested);
200 200
 
201
-		// Store how many bytes were actually read
202
-		$chunkSizeActual = strlen($buffer);
201
+        // Store how many bytes were actually read
202
+        $chunkSizeActual = strlen($buffer);
203 203
 
204
-		// If we didn't get any bytes that means something unexpected has happened since $bytePool should be zero already
205
-		if ($chunkSizeActual == 0) {
206
-			// For production servers this should go in your php error log, since it will break the output
207
-			trigger_error('Chunksize became 0', E_USER_WARNING);
208
-			break;
209
-		}
204
+        // If we didn't get any bytes that means something unexpected has happened since $bytePool should be zero already
205
+        if ($chunkSizeActual == 0) {
206
+            // For production servers this should go in your php error log, since it will break the output
207
+            trigger_error('Chunksize became 0', E_USER_WARNING);
208
+            break;
209
+        }
210 210
 
211
-		// Decrease byte pool with amount of bytes that were read during this iteration
212
-		$bytePool -= $chunkSizeActual;
211
+        // Decrease byte pool with amount of bytes that were read during this iteration
212
+        $bytePool -= $chunkSizeActual;
213 213
 
214
-		// Write the buffer to output
215
-		print $buffer;
214
+        // Write the buffer to output
215
+        print $buffer;
216 216
 
217
-		// Try to output the data to the client immediately
218
-		flush();
219
-	}
217
+        // Try to output the data to the client immediately
218
+        flush();
219
+    }
220 220
 
221
-	exit();
221
+    exit();
222 222
 }
Please login to merge, or discard this patch.
ecrire/inc/commencer_page.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -43,25 +43,25 @@  discard block
 block discarded – undo
43 43
  * @return string Code HTML
44 44
  **/
45 45
 function inc_commencer_page_dist(
46
-	$titre = '',
47
-	$rubrique = 'accueil',
48
-	$sous_rubrique = 'accueil',
49
-	$id_rubrique = '',
50
-	$menu = true,
51
-	$minipres = false,
52
-	$alertes = true
46
+    $titre = '',
47
+    $rubrique = 'accueil',
48
+    $sous_rubrique = 'accueil',
49
+    $id_rubrique = '',
50
+    $menu = true,
51
+    $minipres = false,
52
+    $alertes = true
53 53
 ) {
54 54
 
55
-	include_spip('inc/headers');
55
+    include_spip('inc/headers');
56 56
 
57
-	http_no_cache();
57
+    http_no_cache();
58 58
 
59
-	return init_entete($titre, $id_rubrique, $minipres)
60
-	. init_body($rubrique, $sous_rubrique, $id_rubrique, $menu)
61
-	. "<div id='page'>"
62
-	. auteurs_recemment_connectes($GLOBALS['connect_id_auteur'])
63
-	. ($alertes ? alertes_auteur($GLOBALS['connect_id_auteur']) : '')
64
-	. '<div class="largeur">';
59
+    return init_entete($titre, $id_rubrique, $minipres)
60
+    . init_body($rubrique, $sous_rubrique, $id_rubrique, $menu)
61
+    . "<div id='page'>"
62
+    . auteurs_recemment_connectes($GLOBALS['connect_id_auteur'])
63
+    . ($alertes ? alertes_auteur($GLOBALS['connect_id_auteur']) : '')
64
+    . '<div class="largeur">';
65 65
 }
66 66
 
67 67
 /**
@@ -82,21 +82,21 @@  discard block
 block discarded – undo
82 82
  *     Entête du fichier HTML avec le DOCTYPE
83 83
  */
84 84
 function init_entete($titre = '', $dummy = 0, $minipres = false) {
85
-	include_spip('inc/texte');
86
-	if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']['nom_site']))) {
87
-		$nom_site_spip = _T('info_mon_site_spip');
88
-	}
89
-
90
-	$titre = '['
91
-		. $nom_site_spip
92
-		. ']'
93
-		. ($titre ? ' ' . textebrut(typo($titre)) : '');
94
-
95
-	return _DOCTYPE_ECRIRE
96
-	. html_lang_attributes()
97
-	. "<head>\n"
98
-	. init_head($titre, $dummy, $minipres)
99
-	. "</head>\n";
85
+    include_spip('inc/texte');
86
+    if (!$nom_site_spip = textebrut(typo($GLOBALS['meta']['nom_site']))) {
87
+        $nom_site_spip = _T('info_mon_site_spip');
88
+    }
89
+
90
+    $titre = '['
91
+        . $nom_site_spip
92
+        . ']'
93
+        . ($titre ? ' ' . textebrut(typo($titre)) : '');
94
+
95
+    return _DOCTYPE_ECRIRE
96
+    . html_lang_attributes()
97
+    . "<head>\n"
98
+    . init_head($titre, $dummy, $minipres)
99
+    . "</head>\n";
100 100
 }
101 101
 
102 102
 /**
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
  * @return string
111 111
  */
112 112
 function init_head($titre = '', $dummy = 0, $minipres = false) {
113
-	return recuperer_fond('prive/squelettes/head/dist', ['titre' => $titre, 'minipres' => $minipres ? ' ' : '']);
113
+    return recuperer_fond('prive/squelettes/head/dist', ['titre' => $titre, 'minipres' => $minipres ? ' ' : '']);
114 114
 }
115 115
 
116 116
 /**
@@ -132,20 +132,20 @@  discard block
 block discarded – undo
132 132
  */
133 133
 function init_body($rubrique = 'accueil', $sous_rubrique = 'accueil', $id_rubrique = '', $menu = true) {
134 134
 
135
-	$res = pipeline('body_prive', "<body class='"
136
-		. init_body_class() . ' ' . _request('exec') . "'"
137
-		. ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : '')
138
-		. '>');
135
+    $res = pipeline('body_prive', "<body class='"
136
+        . init_body_class() . ' ' . _request('exec') . "'"
137
+        . ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : '')
138
+        . '>');
139 139
 
140
-	if (!$menu) {
141
-		return $res;
142
-	}
140
+    if (!$menu) {
141
+        return $res;
142
+    }
143 143
 
144 144
 
145
-	$bandeau = charger_fonction('bandeau', 'inc');
145
+    $bandeau = charger_fonction('bandeau', 'inc');
146 146
 
147
-	return $res
148
-	. $bandeau();
147
+    return $res
148
+    . $bandeau();
149 149
 }
150 150
 
151 151
 /**
@@ -157,25 +157,25 @@  discard block
 block discarded – undo
157 157
  * @return string Classes CSS (séparées par des espaces)
158 158
  */
159 159
 function init_body_class() {
160
-	$prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
160
+    $prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
161 161
 
162
-	$GLOBALS['spip_display'] = intval($prefs['display'] ?? 2);
163
-	$spip_display_navigation = isset($prefs['display_navigation']) ? spip_sanitize_classname($prefs['display_navigation']) : 'navigation_avec_icones';
164
-	$spip_display_outils = ($prefs['display_outils'] ?? true) ? 'navigation_avec_outils' : 'navigation_sans_outils';
165
-	$GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? spip_sanitize_classname($_COOKIE['spip_ecran']) : 'etroit';
162
+    $GLOBALS['spip_display'] = intval($prefs['display'] ?? 2);
163
+    $spip_display_navigation = isset($prefs['display_navigation']) ? spip_sanitize_classname($prefs['display_navigation']) : 'navigation_avec_icones';
164
+    $spip_display_outils = ($prefs['display_outils'] ?? true) ? 'navigation_avec_outils' : 'navigation_sans_outils';
165
+    $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? spip_sanitize_classname($_COOKIE['spip_ecran']) : 'etroit';
166 166
 
167
-	$display_class = [
168
-		0 => 'icones_img_texte'
169
-		/*init*/,
170
-		1 => 'icones_texte',
171
-		2 => 'icones_img_texte',
172
-		3 => 'icones_img'
173
-	];
167
+    $display_class = [
168
+        0 => 'icones_img_texte'
169
+        /*init*/,
170
+        1 => 'icones_texte',
171
+        2 => 'icones_img_texte',
172
+        3 => 'icones_img'
173
+    ];
174 174
 
175
-	$couleur = intval($prefs['couleur'] ?? 2);
175
+    $couleur = intval($prefs['couleur'] ?? 2);
176 176
 
177
-	$classes = $GLOBALS['spip_ecran'] . " spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
178
-	return spip_sanitize_classname($classes);
177
+    $classes = $GLOBALS['spip_ecran'] . " spip-theme-colors-$couleur $spip_display_navigation $spip_display_outils " . $display_class[$GLOBALS['spip_display']];
178
+    return spip_sanitize_classname($classes);
179 179
 }
180 180
 
181 181
 
@@ -186,5 +186,5 @@  discard block
 block discarded – undo
186 186
  * @return string
187 187
  */
188 188
 function auteurs_recemment_connectes($id_auteur) {
189
-	return recuperer_fond('prive/objets/liste/auteurs_enligne');
189
+    return recuperer_fond('prive/objets/liste/auteurs_enligne');
190 190
 }
Please login to merge, or discard this patch.
ecrire/public.php 1 patch
Indentation   +188 added lines, -188 removed lines patch added patch discarded remove patch
@@ -21,193 +21,193 @@
 block discarded – undo
21 21
 // par souci de compatiilite).
22 22
 
23 23
 if (isset($GLOBALS['_INC_PUBLIC']) and $GLOBALS['_INC_PUBLIC']) {
24
-	echo recuperer_fond($fond, $contexte_inclus, [], _request('connect') ?? '');
24
+    echo recuperer_fond($fond, $contexte_inclus, [], _request('connect') ?? '');
25 25
 } else {
26
-	$GLOBALS['_INC_PUBLIC'] = 1;
27
-	define('_PIPELINE_SUFFIX', test_espace_prive() ? '_prive' : '');
28
-
29
-	// Faut-il initialiser SPIP ? (oui dans le cas general)
30
-	if (!defined('_DIR_RESTREINT_ABS')) {
31
-		if (
32
-			defined('_DIR_RESTREINT')
33
-			and @file_exists(_ROOT_RESTREINT . 'inc_version.php')
34
-		) {
35
-			include_once _ROOT_RESTREINT . 'inc_version.php';
36
-		} else {
37
-			die('inc_version absent ?');
38
-		}
39
-	} // $fond defini dans le fichier d'appel ?
40
-
41
-	else {
42
-		if (isset($fond) and !_request('fond')) {
43
-		} // fond demande dans l'url par page=xxxx ?
44
-		else {
45
-			if (isset($_GET[_SPIP_PAGE])) {
46
-				$fond = (string)$_GET[_SPIP_PAGE];
47
-
48
-				// Securite
49
-				if (
50
-					strstr($fond, '/')
51
-					and !(
52
-						isset($GLOBALS['visiteur_session']) // pour eviter d'evaluer la suite pour les anonymes
53
-						and include_spip('inc/autoriser')
54
-						and autoriser('webmestre'))
55
-				) {
56
-					include_spip('inc/minipres');
57
-					echo minipres();
58
-					exit;
59
-				}
60
-				// l'argument Page a priorite sur l'argument action
61
-				// le cas se presente a cause des RewriteRule d'Apache
62
-				// qui permettent d'ajouter un argument dans la QueryString
63
-				// mais pas d'en retirer un en conservant les autres.
64
-				if (isset($_GET['action']) and $_GET['action'] === $fond) {
65
-					unset($_GET['action']);
66
-				}
67
-				# sinon, fond par defaut
68
-			} else {
69
-				// sinon fond par defaut (cf. assembler.php)
70
-				$fond = pipeline('detecter_fond_par_defaut', '');
71
-			}
72
-		}
73
-	}
74
-
75
-	$tableau_des_temps = [];
76
-
77
-	// Particularites de certains squelettes
78
-	if ($fond == 'login') {
79
-		$forcer_lang = true;
80
-	}
81
-
82
-	if (
83
-		isset($forcer_lang) and $forcer_lang and ($forcer_lang !== 'non')
84
-		and !_request('action')
85
-		and $_SERVER['REQUEST_METHOD'] != 'POST'
86
-	) {
87
-		include_spip('inc/lang');
88
-		verifier_lang_url();
89
-	}
90
-
91
-	$lang = !isset($_GET['lang']) ? '' : lang_select($_GET['lang']);
92
-
93
-	// Charger l'aiguilleur des traitements derogatoires
94
-	// (action en base SQL, formulaires CVT, AJax)
95
-	if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
96
-		include_spip('public/aiguiller');
97
-		if (
98
-			// cas des appels actions ?action=xxx
99
-			traiter_appels_actions()
100
-			or
101
-			// cas des hits ajax sur les inclusions ajax
102
-			traiter_appels_inclusions_ajax()
103
-			or
104
-			// cas des formulaires charger/verifier/traiter
105
-			traiter_formulaires_dynamiques()
106
-		) {
107
-			// lancer les taches sur affichage final, comme le cron
108
-			// mais sans rien afficher
109
-			$GLOBALS['html'] = false; // ne rien afficher
110
-			pipeline('affichage_final' . _PIPELINE_SUFFIX, '');
111
-			exit; // le hit est fini !
112
-		}
113
-	}
114
-
115
-	// Il y a du texte a produire, charger le metteur en page
116
-	include_spip('public/assembler');
117
-	$page = assembler($fond, _request('connect') ?? '');
118
-
119
-	if (isset($page['status'])) {
120
-		include_spip('inc/headers');
121
-		http_response_code($page['status']);
122
-	}
123
-
124
-	// Content-Type ?
125
-	if (!isset($page['entetes']['Content-Type'])) {
126
-		$charset = $GLOBALS['meta']['charset'] ?? 'utf-8';
127
-		$page['entetes']['Content-Type'] = 'text/html; charset=' . $charset;
128
-		$html = true;
129
-	} else {
130
-		$html = preg_match(',^\s*text/html,', $page['entetes']['Content-Type']);
131
-	}
132
-
133
-	// Tester si on est admin et il y a des choses supplementaires a dire
134
-	// type tableau pour y mettre des choses au besoin.
135
-	$debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? [1] : [];
136
-
137
-	// affiche-t-on les boutons d'administration ? voir f_admin()
138
-	$affiche_boutons_admin = ($html and (
139
-			(isset($_COOKIE['spip_admin']) and (!isset($flag_preserver) or !$flag_preserver))
140
-			or ($debug and include_spip('inc/autoriser') and autoriser('debug'))
141
-			or (defined('_VAR_PREVIEW') and _VAR_PREVIEW)
142
-		));
143
-
144
-	if ($affiche_boutons_admin) {
145
-		include_spip('balise/formulaire_admin');
146
-	}
147
-
148
-
149
-	// Execution de la page calculee
150
-
151
-	// traitements sur les entetes avant envoi
152
-	// peut servir pour le plugin de stats
153
-	$page['entetes'] = pipeline('affichage_entetes_final' . _PIPELINE_SUFFIX, $page['entetes']);
154
-
155
-
156
-	// eval $page et affecte $res
157
-	include _ROOT_RESTREINT . 'public/evaluer_page.php';
158
-	envoyer_entetes($page['entetes']);
159
-	if ($res === false) {
160
-		include_spip('inc/autoriser');
161
-		$err = _T('zbug_erreur_execution_page');
162
-		if (autoriser('webmestre')) {
163
-			$err .= "\n<hr />\n"
164
-				. highlight_string($page['codephp'], true)
165
-				. "\n<hr />\n";
166
-		}
167
-		$msg = [$err];
168
-		erreur_squelette($msg);
169
-	}
170
-
171
-	//
172
-	// Envoyer le resultat apres post-traitements
173
-	//
174
-	// (c'est ici qu'on fait var_recherche, validation, boutons d'admin,
175
-	// cf. public/assembler.php)
176
-	echo pipeline('affichage_final' . _PIPELINE_SUFFIX, $page['texte']);
177
-
178
-	if ($lang) {
179
-		lang_select();
180
-	}
181
-	// l'affichage de la page a pu lever des erreurs (inclusion manquante)
182
-	// il faut tester a nouveau
183
-	$debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? [1] : [];
184
-
185
-	// Appel au debusqueur en cas d'erreurs ou de demande de trace
186
-	// at last
187
-	if ($debug) {
188
-		// en cas d'erreur, retester l'affichage
189
-		if ($html and ($affiche_boutons_admin or $debug)) {
190
-			$var_mode_affiche = _request('var_mode_affiche');
191
-			$var_mode_objet = _request('var_mode_objet');
192
-			$GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = ($var_mode_affiche == 'validation' ? $page['texte'] : '');
193
-			echo erreur_squelette(false);
194
-		}
195
-	} else {
196
-		if (
197
-			isset($GLOBALS['meta']['date_prochain_postdate'])
198
-			and $GLOBALS['meta']['date_prochain_postdate'] <= time()
199
-		) {
200
-			include_spip('inc/rubriques');
201
-			calculer_prochain_postdate(true);
202
-		}
203
-
204
-		// Effectuer une tache de fond ?
205
-		// si _DIRECT_CRON_FORCE est present, on force l'appel
206
-		if (defined('_DIRECT_CRON_FORCE')) {
207
-			cron();
208
-		}
209
-
210
-		// sauver le cache chemin si necessaire
211
-		save_path_cache();
212
-	}
26
+    $GLOBALS['_INC_PUBLIC'] = 1;
27
+    define('_PIPELINE_SUFFIX', test_espace_prive() ? '_prive' : '');
28
+
29
+    // Faut-il initialiser SPIP ? (oui dans le cas general)
30
+    if (!defined('_DIR_RESTREINT_ABS')) {
31
+        if (
32
+            defined('_DIR_RESTREINT')
33
+            and @file_exists(_ROOT_RESTREINT . 'inc_version.php')
34
+        ) {
35
+            include_once _ROOT_RESTREINT . 'inc_version.php';
36
+        } else {
37
+            die('inc_version absent ?');
38
+        }
39
+    } // $fond defini dans le fichier d'appel ?
40
+
41
+    else {
42
+        if (isset($fond) and !_request('fond')) {
43
+        } // fond demande dans l'url par page=xxxx ?
44
+        else {
45
+            if (isset($_GET[_SPIP_PAGE])) {
46
+                $fond = (string)$_GET[_SPIP_PAGE];
47
+
48
+                // Securite
49
+                if (
50
+                    strstr($fond, '/')
51
+                    and !(
52
+                        isset($GLOBALS['visiteur_session']) // pour eviter d'evaluer la suite pour les anonymes
53
+                        and include_spip('inc/autoriser')
54
+                        and autoriser('webmestre'))
55
+                ) {
56
+                    include_spip('inc/minipres');
57
+                    echo minipres();
58
+                    exit;
59
+                }
60
+                // l'argument Page a priorite sur l'argument action
61
+                // le cas se presente a cause des RewriteRule d'Apache
62
+                // qui permettent d'ajouter un argument dans la QueryString
63
+                // mais pas d'en retirer un en conservant les autres.
64
+                if (isset($_GET['action']) and $_GET['action'] === $fond) {
65
+                    unset($_GET['action']);
66
+                }
67
+                # sinon, fond par defaut
68
+            } else {
69
+                // sinon fond par defaut (cf. assembler.php)
70
+                $fond = pipeline('detecter_fond_par_defaut', '');
71
+            }
72
+        }
73
+    }
74
+
75
+    $tableau_des_temps = [];
76
+
77
+    // Particularites de certains squelettes
78
+    if ($fond == 'login') {
79
+        $forcer_lang = true;
80
+    }
81
+
82
+    if (
83
+        isset($forcer_lang) and $forcer_lang and ($forcer_lang !== 'non')
84
+        and !_request('action')
85
+        and $_SERVER['REQUEST_METHOD'] != 'POST'
86
+    ) {
87
+        include_spip('inc/lang');
88
+        verifier_lang_url();
89
+    }
90
+
91
+    $lang = !isset($_GET['lang']) ? '' : lang_select($_GET['lang']);
92
+
93
+    // Charger l'aiguilleur des traitements derogatoires
94
+    // (action en base SQL, formulaires CVT, AJax)
95
+    if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
96
+        include_spip('public/aiguiller');
97
+        if (
98
+            // cas des appels actions ?action=xxx
99
+            traiter_appels_actions()
100
+            or
101
+            // cas des hits ajax sur les inclusions ajax
102
+            traiter_appels_inclusions_ajax()
103
+            or
104
+            // cas des formulaires charger/verifier/traiter
105
+            traiter_formulaires_dynamiques()
106
+        ) {
107
+            // lancer les taches sur affichage final, comme le cron
108
+            // mais sans rien afficher
109
+            $GLOBALS['html'] = false; // ne rien afficher
110
+            pipeline('affichage_final' . _PIPELINE_SUFFIX, '');
111
+            exit; // le hit est fini !
112
+        }
113
+    }
114
+
115
+    // Il y a du texte a produire, charger le metteur en page
116
+    include_spip('public/assembler');
117
+    $page = assembler($fond, _request('connect') ?? '');
118
+
119
+    if (isset($page['status'])) {
120
+        include_spip('inc/headers');
121
+        http_response_code($page['status']);
122
+    }
123
+
124
+    // Content-Type ?
125
+    if (!isset($page['entetes']['Content-Type'])) {
126
+        $charset = $GLOBALS['meta']['charset'] ?? 'utf-8';
127
+        $page['entetes']['Content-Type'] = 'text/html; charset=' . $charset;
128
+        $html = true;
129
+    } else {
130
+        $html = preg_match(',^\s*text/html,', $page['entetes']['Content-Type']);
131
+    }
132
+
133
+    // Tester si on est admin et il y a des choses supplementaires a dire
134
+    // type tableau pour y mettre des choses au besoin.
135
+    $debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? [1] : [];
136
+
137
+    // affiche-t-on les boutons d'administration ? voir f_admin()
138
+    $affiche_boutons_admin = ($html and (
139
+            (isset($_COOKIE['spip_admin']) and (!isset($flag_preserver) or !$flag_preserver))
140
+            or ($debug and include_spip('inc/autoriser') and autoriser('debug'))
141
+            or (defined('_VAR_PREVIEW') and _VAR_PREVIEW)
142
+        ));
143
+
144
+    if ($affiche_boutons_admin) {
145
+        include_spip('balise/formulaire_admin');
146
+    }
147
+
148
+
149
+    // Execution de la page calculee
150
+
151
+    // traitements sur les entetes avant envoi
152
+    // peut servir pour le plugin de stats
153
+    $page['entetes'] = pipeline('affichage_entetes_final' . _PIPELINE_SUFFIX, $page['entetes']);
154
+
155
+
156
+    // eval $page et affecte $res
157
+    include _ROOT_RESTREINT . 'public/evaluer_page.php';
158
+    envoyer_entetes($page['entetes']);
159
+    if ($res === false) {
160
+        include_spip('inc/autoriser');
161
+        $err = _T('zbug_erreur_execution_page');
162
+        if (autoriser('webmestre')) {
163
+            $err .= "\n<hr />\n"
164
+                . highlight_string($page['codephp'], true)
165
+                . "\n<hr />\n";
166
+        }
167
+        $msg = [$err];
168
+        erreur_squelette($msg);
169
+    }
170
+
171
+    //
172
+    // Envoyer le resultat apres post-traitements
173
+    //
174
+    // (c'est ici qu'on fait var_recherche, validation, boutons d'admin,
175
+    // cf. public/assembler.php)
176
+    echo pipeline('affichage_final' . _PIPELINE_SUFFIX, $page['texte']);
177
+
178
+    if ($lang) {
179
+        lang_select();
180
+    }
181
+    // l'affichage de la page a pu lever des erreurs (inclusion manquante)
182
+    // il faut tester a nouveau
183
+    $debug = ((_request('var_mode') == 'debug') or $tableau_des_temps) ? [1] : [];
184
+
185
+    // Appel au debusqueur en cas d'erreurs ou de demande de trace
186
+    // at last
187
+    if ($debug) {
188
+        // en cas d'erreur, retester l'affichage
189
+        if ($html and ($affiche_boutons_admin or $debug)) {
190
+            $var_mode_affiche = _request('var_mode_affiche');
191
+            $var_mode_objet = _request('var_mode_objet');
192
+            $GLOBALS['debug_objets'][$var_mode_affiche][$var_mode_objet . 'tout'] = ($var_mode_affiche == 'validation' ? $page['texte'] : '');
193
+            echo erreur_squelette(false);
194
+        }
195
+    } else {
196
+        if (
197
+            isset($GLOBALS['meta']['date_prochain_postdate'])
198
+            and $GLOBALS['meta']['date_prochain_postdate'] <= time()
199
+        ) {
200
+            include_spip('inc/rubriques');
201
+            calculer_prochain_postdate(true);
202
+        }
203
+
204
+        // Effectuer une tache de fond ?
205
+        // si _DIRECT_CRON_FORCE est present, on force l'appel
206
+        if (defined('_DIRECT_CRON_FORCE')) {
207
+            cron();
208
+        }
209
+
210
+        // sauver le cache chemin si necessaire
211
+        save_path_cache();
212
+    }
213 213
 }
Please login to merge, or discard this patch.
config/ecran_securite.php 1 patch
Indentation   +424 added lines, -424 removed lines patch added patch discarded remove patch
@@ -15,11 +15,11 @@  discard block
 block discarded – undo
15 15
  * Test utilisateur
16 16
  */
17 17
 if (isset($_GET['test_ecran_securite'])) {
18
-	$ecran_securite_raison = 'test ' . _ECRAN_SECURITE;
18
+    $ecran_securite_raison = 'test ' . _ECRAN_SECURITE;
19 19
 }
20 20
 
21 21
 if (file_exists($f = __DIR__ . DIRECTORY_SEPARATOR  . 'ecran_securite_options.php')) {
22
-	include ($f);
22
+    include ($f);
23 23
 }
24 24
 
25 25
 /*
@@ -29,222 +29,222 @@  discard block
 block discarded – undo
29 29
  * le load depasse ECRAN_SECURITE_LOAD)
30 30
  */
31 31
 if (!defined('_IS_BOT') and isset($_GET['var_isbot'])) {
32
-	define('_IS_BOT', $_GET['var_isbot'] ? true : false);
32
+    define('_IS_BOT', $_GET['var_isbot'] ? true : false);
33 33
 }
34 34
 
35 35
 /*
36 36
  * Détecteur de robot d'indexation
37 37
  */
38 38
 if (!defined('_IS_BOT')) {
39
-	define(
40
-		'_IS_BOT',
41
-		isset($_SERVER['HTTP_USER_AGENT'])
42
-			and preg_match(
43
-				','
44
-					. implode('|', array(
45
-						// mots generiques
46
-						'bot',
47
-						'slurp',
48
-						'crawler',
49
-						'crwlr',
50
-						'java',
51
-						'monitoring',
52
-						'spider',
53
-						'webvac',
54
-						'yandex',
55
-						'MSIE 6\.0', // botnet 99,9% du temps
56
-						// UA plus cibles
57
-						'200please',
58
-						'80legs',
59
-						'a6-indexer',
60
-						'aboundex',
61
-						'accoona',
62
-						'acrylicapps',
63
-						'addthis',
64
-						'adressendeutschland',
65
-						'alexa',
66
-						'altavista',
67
-						'analyticsseo',
68
-						'antennapod',
69
-						'arachnys',
70
-						'archive',
71
-						'argclrint',
72
-						'aspseek',
73
-						'baidu',
74
-						'begunadvertising',
75
-						'bing',
76
-						'bloglines',
77
-						'buck',
78
-						'browsershots',
79
-						'bubing',
80
-						'butterfly',
81
-						'changedetection',
82
-						'charlotte',
83
-						'chilkat',
84
-						'china',
85
-						'coccoc',
86
-						'crowsnest',
87
-						'dataminr',
88
-						'daumoa',
89
-						'dlvr\.it',
90
-						'dlweb',
91
-						'drupal',
92
-						'ec2linkfinder',
93
-						'eset\.com',
94
-						'estyle',
95
-						'exalead',
96
-						'ezooms',
97
-						'facebookexternalhit',
98
-						'facebookplatform',
99
-						'fairshare',
100
-						'feedfetcher',
101
-						'feedfetcher-google',
102
-						'feedly',
103
-						'fetch',
104
-						'flipboardproxy',
105
-						'genieo',
106
-						'google',
107
-						'go-http-client',
108
-						'grapeshot',
109
-						'hatena-useragent',
110
-						'head',
111
-						'hosttracker',
112
-						'hubspot',
113
-						'ia_archiver',
114
-						'ichiro',
115
-						'iltrovatore-setaccio',
116
-						'immediatenet',
117
-						'ina',
118
-						'inoreader',
119
-						'infegyatlas',
120
-						'infohelfer',
121
-						'instapaper',
122
-						'jabse',
123
-						'james',
124
-						'jersey',
125
-						'kumkie',
126
-						'linkdex',
127
-						'linkfluence',
128
-						'linkwalker',
129
-						'litefinder',
130
-						'loadimpactpageanalyzer',
131
-						'ltx71',
132
-						'luminate',
133
-						'lycos',
134
-						'lycosa',
135
-						'mediapartners-google',
136
-						'msai',
137
-						'myapp',
138
-						'nativehost',
139
-						'najdi',
140
-						'netcraftsurveyagent',
141
-						'netestate',
142
-						'netseer',
143
-						'netnewswire',
144
-						'newspaper',
145
-						'newsblur',
146
-						'nuhk',
147
-						'nuzzel',
148
-						'okhttp',
149
-						'otmedia',
150
-						'owlin',
151
-						'owncloud',
152
-						'panscient',
153
-						'paper\.li',
154
-						'parsijoo',
155
-						'protopage',
156
-						'plukkie',
157
-						'proximic',
158
-						'pubsub',
159
-						'python',
160
-						'qirina',
161
-						'qoshe',
162
-						'qualidator',
163
-						'qwantify',
164
-						'rambler',
165
-						'readability',
166
-						'ruby',
167
-						'sbsearch',
168
-						'scoop\.it',
169
-						'scooter',
170
-						'scoutjet',
171
-						'scrapy',
172
-						'scrubby',
173
-						'scrubbybloglines',
174
-						'shareaholic',
175
-						'shopwiki',
176
-						'simplepie',
177
-						'sistrix',
178
-						'sitechecker',
179
-						'siteexplorer',
180
-						'snapshot',
181
-						'sogou',
182
-						'special_archiver',
183
-						'speedy',
184
-						'spinn3r',
185
-						'spreadtrum',
186
-						'steeler',
187
-						'subscriber',
188
-						'suma',
189
-						'superdownloads',
190
-						'svenska-webbsido',
191
-						'teoma',
192
-						'the knowledge AI',
193
-						'thumbshots',
194
-						'tineye',
195
-						'traackr',
196
-						'trendiction',
197
-						'trendsmap',
198
-						'tweetedtimes',
199
-						'tweetmeme',
200
-						'universalfeedparser',
201
-						'uaslinkchecker',
202
-						'undrip',
203
-						'unwindfetchor',
204
-						'upday',
205
-						'vedma',
206
-						'vkshare',
207
-						'vm',
208
-						'wch',
209
-						'webalta',
210
-						'webcookies',
211
-						'webparser',
212
-						'webthumbnail',
213
-						'wesee',
214
-						'wise-guys',
215
-						'woko',
216
-						'wordpress',
217
-						'wotbox',
218
-						'y!j-bri',
219
-						'y!j-bro',
220
-						'y!j-brw',
221
-						'y!j-bsc',
222
-						'yahoo',
223
-						'yahoo!',
224
-						'yahooysmcm',
225
-						'ymobactus',
226
-						'yats',
227
-						'yeti',
228
-						'zeerch'
229
-					)) . ',i',
230
-				(string)$_SERVER['HTTP_USER_AGENT']
231
-			)
232
-	);
39
+    define(
40
+        '_IS_BOT',
41
+        isset($_SERVER['HTTP_USER_AGENT'])
42
+            and preg_match(
43
+                ','
44
+                    . implode('|', array(
45
+                        // mots generiques
46
+                        'bot',
47
+                        'slurp',
48
+                        'crawler',
49
+                        'crwlr',
50
+                        'java',
51
+                        'monitoring',
52
+                        'spider',
53
+                        'webvac',
54
+                        'yandex',
55
+                        'MSIE 6\.0', // botnet 99,9% du temps
56
+                        // UA plus cibles
57
+                        '200please',
58
+                        '80legs',
59
+                        'a6-indexer',
60
+                        'aboundex',
61
+                        'accoona',
62
+                        'acrylicapps',
63
+                        'addthis',
64
+                        'adressendeutschland',
65
+                        'alexa',
66
+                        'altavista',
67
+                        'analyticsseo',
68
+                        'antennapod',
69
+                        'arachnys',
70
+                        'archive',
71
+                        'argclrint',
72
+                        'aspseek',
73
+                        'baidu',
74
+                        'begunadvertising',
75
+                        'bing',
76
+                        'bloglines',
77
+                        'buck',
78
+                        'browsershots',
79
+                        'bubing',
80
+                        'butterfly',
81
+                        'changedetection',
82
+                        'charlotte',
83
+                        'chilkat',
84
+                        'china',
85
+                        'coccoc',
86
+                        'crowsnest',
87
+                        'dataminr',
88
+                        'daumoa',
89
+                        'dlvr\.it',
90
+                        'dlweb',
91
+                        'drupal',
92
+                        'ec2linkfinder',
93
+                        'eset\.com',
94
+                        'estyle',
95
+                        'exalead',
96
+                        'ezooms',
97
+                        'facebookexternalhit',
98
+                        'facebookplatform',
99
+                        'fairshare',
100
+                        'feedfetcher',
101
+                        'feedfetcher-google',
102
+                        'feedly',
103
+                        'fetch',
104
+                        'flipboardproxy',
105
+                        'genieo',
106
+                        'google',
107
+                        'go-http-client',
108
+                        'grapeshot',
109
+                        'hatena-useragent',
110
+                        'head',
111
+                        'hosttracker',
112
+                        'hubspot',
113
+                        'ia_archiver',
114
+                        'ichiro',
115
+                        'iltrovatore-setaccio',
116
+                        'immediatenet',
117
+                        'ina',
118
+                        'inoreader',
119
+                        'infegyatlas',
120
+                        'infohelfer',
121
+                        'instapaper',
122
+                        'jabse',
123
+                        'james',
124
+                        'jersey',
125
+                        'kumkie',
126
+                        'linkdex',
127
+                        'linkfluence',
128
+                        'linkwalker',
129
+                        'litefinder',
130
+                        'loadimpactpageanalyzer',
131
+                        'ltx71',
132
+                        'luminate',
133
+                        'lycos',
134
+                        'lycosa',
135
+                        'mediapartners-google',
136
+                        'msai',
137
+                        'myapp',
138
+                        'nativehost',
139
+                        'najdi',
140
+                        'netcraftsurveyagent',
141
+                        'netestate',
142
+                        'netseer',
143
+                        'netnewswire',
144
+                        'newspaper',
145
+                        'newsblur',
146
+                        'nuhk',
147
+                        'nuzzel',
148
+                        'okhttp',
149
+                        'otmedia',
150
+                        'owlin',
151
+                        'owncloud',
152
+                        'panscient',
153
+                        'paper\.li',
154
+                        'parsijoo',
155
+                        'protopage',
156
+                        'plukkie',
157
+                        'proximic',
158
+                        'pubsub',
159
+                        'python',
160
+                        'qirina',
161
+                        'qoshe',
162
+                        'qualidator',
163
+                        'qwantify',
164
+                        'rambler',
165
+                        'readability',
166
+                        'ruby',
167
+                        'sbsearch',
168
+                        'scoop\.it',
169
+                        'scooter',
170
+                        'scoutjet',
171
+                        'scrapy',
172
+                        'scrubby',
173
+                        'scrubbybloglines',
174
+                        'shareaholic',
175
+                        'shopwiki',
176
+                        'simplepie',
177
+                        'sistrix',
178
+                        'sitechecker',
179
+                        'siteexplorer',
180
+                        'snapshot',
181
+                        'sogou',
182
+                        'special_archiver',
183
+                        'speedy',
184
+                        'spinn3r',
185
+                        'spreadtrum',
186
+                        'steeler',
187
+                        'subscriber',
188
+                        'suma',
189
+                        'superdownloads',
190
+                        'svenska-webbsido',
191
+                        'teoma',
192
+                        'the knowledge AI',
193
+                        'thumbshots',
194
+                        'tineye',
195
+                        'traackr',
196
+                        'trendiction',
197
+                        'trendsmap',
198
+                        'tweetedtimes',
199
+                        'tweetmeme',
200
+                        'universalfeedparser',
201
+                        'uaslinkchecker',
202
+                        'undrip',
203
+                        'unwindfetchor',
204
+                        'upday',
205
+                        'vedma',
206
+                        'vkshare',
207
+                        'vm',
208
+                        'wch',
209
+                        'webalta',
210
+                        'webcookies',
211
+                        'webparser',
212
+                        'webthumbnail',
213
+                        'wesee',
214
+                        'wise-guys',
215
+                        'woko',
216
+                        'wordpress',
217
+                        'wotbox',
218
+                        'y!j-bri',
219
+                        'y!j-bro',
220
+                        'y!j-brw',
221
+                        'y!j-bsc',
222
+                        'yahoo',
223
+                        'yahoo!',
224
+                        'yahooysmcm',
225
+                        'ymobactus',
226
+                        'yats',
227
+                        'yeti',
228
+                        'zeerch'
229
+                    )) . ',i',
230
+                (string)$_SERVER['HTTP_USER_AGENT']
231
+            )
232
+    );
233 233
 }
234 234
 if (!defined('_IS_BOT_FRIEND')) {
235
-	define(
236
-		'_IS_BOT_FRIEND',
237
-		isset($_SERVER['HTTP_USER_AGENT'])
238
-			and preg_match(
239
-				',' . implode('|', array(
240
-					'facebookexternalhit',
241
-					'twitterbot',
242
-					'flipboardproxy',
243
-					'wordpress'
244
-				)) . ',i',
245
-				(string)$_SERVER['HTTP_USER_AGENT']
246
-			)
247
-	);
235
+    define(
236
+        '_IS_BOT_FRIEND',
237
+        isset($_SERVER['HTTP_USER_AGENT'])
238
+            and preg_match(
239
+                ',' . implode('|', array(
240
+                    'facebookexternalhit',
241
+                    'twitterbot',
242
+                    'flipboardproxy',
243
+                    'wordpress'
244
+                )) . ',i',
245
+                (string)$_SERVER['HTTP_USER_AGENT']
246
+            )
247
+    );
248 248
 }
249 249
 
250 250
 /*
@@ -256,28 +256,28 @@  discard block
 block discarded – undo
256 256
  */
257 257
 $_exceptions = array('id_table', 'id_base', 'id_parent', 'id_article_pdf');
258 258
 foreach ($_GET as $var => $val) {
259
-	if (
260
-		$_GET[$var] and strncmp($var, "id_", 3) == 0
261
-		and !in_array($var, $_exceptions)
262
-	) {
263
-		$_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]);
264
-	}
259
+    if (
260
+        $_GET[$var] and strncmp($var, "id_", 3) == 0
261
+        and !in_array($var, $_exceptions)
262
+    ) {
263
+        $_GET[$var] = is_array($_GET[$var]) ? @array_map('intval', $_GET[$var]) : intval($_GET[$var]);
264
+    }
265 265
 }
266 266
 foreach ($_POST as $var => $val) {
267
-	if (
268
-		$_POST[$var] and strncmp($var, "id_", 3) == 0
269
-		and !in_array($var, $_exceptions)
270
-	) {
271
-		$_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]);
272
-	}
267
+    if (
268
+        $_POST[$var] and strncmp($var, "id_", 3) == 0
269
+        and !in_array($var, $_exceptions)
270
+    ) {
271
+        $_POST[$var] = is_array($_POST[$var]) ? @array_map('intval', $_POST[$var]) : intval($_POST[$var]);
272
+    }
273 273
 }
274 274
 foreach ($GLOBALS as $var => $val) {
275
-	if (
276
-		$GLOBALS[$var] and strncmp($var, "id_", 3) == 0
277
-		and !in_array($var, $_exceptions)
278
-	) {
279
-		$GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]);
280
-	}
275
+    if (
276
+        $GLOBALS[$var] and strncmp($var, "id_", 3) == 0
277
+        and !in_array($var, $_exceptions)
278
+    ) {
279
+        $GLOBALS[$var] = is_array($GLOBALS[$var]) ? @array_map('intval', $GLOBALS[$var]) : intval($GLOBALS[$var]);
280
+    }
281 281
 }
282 282
 
283 283
 /*
@@ -290,116 +290,116 @@  discard block
 block discarded – undo
290 290
  * Contrôle de quelques variables (XSS)
291 291
  */
292 292
 foreach (array('lang', 'var_recherche', 'aide', 'var_lang_r', 'lang_r', 'var_ajax_ancre', 'nom_fichier') as $var) {
293
-	if (isset($_GET[$var])) {
294
-		$_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
295
-	}
296
-	if (isset($_POST[$var])) {
297
-		$_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
298
-	}
293
+    if (isset($_GET[$var])) {
294
+        $_REQUEST[$var] = $GLOBALS[$var] = $_GET[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_GET[$var]);
295
+    }
296
+    if (isset($_POST[$var])) {
297
+        $_REQUEST[$var] = $GLOBALS[$var] = $_POST[$var] = preg_replace(',[^\w\,/#&;-]+,', ' ', (string)$_POST[$var]);
298
+    }
299 299
 }
300 300
 
301 301
 /*
302 302
  * Filtre l'accès à spip_acces_doc (injection SQL en 1.8.2x)
303 303
  */
304 304
 if (isset($_SERVER['REQUEST_URI'])) {
305
-	if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) {
306
-		$file = addslashes((string)$_GET['file']);
307
-	}
305
+    if (preg_match(',^(.*/)?spip_acces_doc\.,', (string)$_SERVER['REQUEST_URI'])) {
306
+        $file = addslashes((string)$_GET['file']);
307
+    }
308 308
 }
309 309
 
310 310
 /*
311 311
  * Pas d'inscription abusive
312 312
  */
313 313
 if (
314
-	isset($_REQUEST['mode']) and isset($_REQUEST['page'])
315
-	and !in_array($_REQUEST['mode'], array("6forum", "1comite"))
316
-	and $_REQUEST['page'] == "identifiants"
314
+    isset($_REQUEST['mode']) and isset($_REQUEST['page'])
315
+    and !in_array($_REQUEST['mode'], array("6forum", "1comite"))
316
+    and $_REQUEST['page'] == "identifiants"
317 317
 ) {
318
-	$ecran_securite_raison = "identifiants";
318
+    $ecran_securite_raison = "identifiants";
319 319
 }
320 320
 
321 321
 /*
322 322
  * Agenda joue à l'injection php
323 323
  */
324 324
 if (
325
-	isset($_REQUEST['partie_cal'])
326
-	and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])
325
+    isset($_REQUEST['partie_cal'])
326
+    and $_REQUEST['partie_cal'] !== htmlentities((string)$_REQUEST['partie_cal'])
327 327
 ) {
328
-	$ecran_securite_raison = "partie_cal";
328
+    $ecran_securite_raison = "partie_cal";
329 329
 }
330 330
 if (
331
-	isset($_REQUEST['echelle'])
332
-	and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])
331
+    isset($_REQUEST['echelle'])
332
+    and $_REQUEST['echelle'] !== htmlentities((string)$_REQUEST['echelle'])
333 333
 ) {
334
-	$ecran_securite_raison = "echelle";
334
+    $ecran_securite_raison = "echelle";
335 335
 }
336 336
 
337 337
 /*
338 338
  * Espace privé
339 339
  */
340 340
 if (
341
-	isset($_REQUEST['exec'])
342
-	and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])
341
+    isset($_REQUEST['exec'])
342
+    and !preg_match(',^[\w-]+$,', (string)$_REQUEST['exec'])
343 343
 ) {
344
-	$ecran_securite_raison = "exec";
344
+    $ecran_securite_raison = "exec";
345 345
 }
346 346
 if (
347
-	isset($_REQUEST['cherche_auteur'])
348
-	and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])
347
+    isset($_REQUEST['cherche_auteur'])
348
+    and preg_match(',[<],', (string)$_REQUEST['cherche_auteur'])
349 349
 ) {
350
-	$ecran_securite_raison = "cherche_auteur";
350
+    $ecran_securite_raison = "cherche_auteur";
351 351
 }
352 352
 if (
353
-	isset($_REQUEST['exec'])
354
-	and $_REQUEST['exec'] == 'auteurs'
355
-	and isset($_REQUEST['recherche'])
356
-	and preg_match(',[<],', (string)$_REQUEST['recherche'])
353
+    isset($_REQUEST['exec'])
354
+    and $_REQUEST['exec'] == 'auteurs'
355
+    and isset($_REQUEST['recherche'])
356
+    and preg_match(',[<],', (string)$_REQUEST['recherche'])
357 357
 ) {
358
-	$ecran_securite_raison = "recherche";
358
+    $ecran_securite_raison = "recherche";
359 359
 }
360 360
 if (
361
-	isset($_REQUEST['exec'])
362
-	and $_REQUEST['exec'] == 'info_plugin'
363
-	and isset($_REQUEST['plugin'])
364
-	and preg_match(',[<],', (string)$_REQUEST['plugin'])
361
+    isset($_REQUEST['exec'])
362
+    and $_REQUEST['exec'] == 'info_plugin'
363
+    and isset($_REQUEST['plugin'])
364
+    and preg_match(',[<],', (string)$_REQUEST['plugin'])
365 365
 ) {
366
-	$ecran_securite_raison = "plugin";
366
+    $ecran_securite_raison = "plugin";
367 367
 }
368 368
 if (
369
-	isset($_REQUEST['exec'])
370
-	and $_REQUEST['exec'] == 'puce_statut'
371
-	and isset($_REQUEST['id'])
372
-	and !intval($_REQUEST['id'])
369
+    isset($_REQUEST['exec'])
370
+    and $_REQUEST['exec'] == 'puce_statut'
371
+    and isset($_REQUEST['id'])
372
+    and !intval($_REQUEST['id'])
373 373
 ) {
374
-	$ecran_securite_raison = "puce_statut";
374
+    $ecran_securite_raison = "puce_statut";
375 375
 }
376 376
 if (
377
-	isset($_REQUEST['action'])
378
-	and $_REQUEST['action'] == 'configurer'
377
+    isset($_REQUEST['action'])
378
+    and $_REQUEST['action'] == 'configurer'
379 379
 ) {
380
-	if (
381
-		@file_exists('inc_version.php')
382
-		or @file_exists('ecrire/inc_version.php')
383
-	) {
384
-		function action_configurer() {
385
-			include_spip('inc/autoriser');
386
-			if (!autoriser('configurer', _request('configuration'))) {
387
-				include_spip('inc/minipres');
388
-				echo minipres(_T('info_acces_interdit'));
389
-				exit;
390
-			}
391
-			require _DIR_RESTREINT . 'action/configurer.php';
392
-			action_configurer_dist();
393
-		}
394
-	}
380
+    if (
381
+        @file_exists('inc_version.php')
382
+        or @file_exists('ecrire/inc_version.php')
383
+    ) {
384
+        function action_configurer() {
385
+            include_spip('inc/autoriser');
386
+            if (!autoriser('configurer', _request('configuration'))) {
387
+                include_spip('inc/minipres');
388
+                echo minipres(_T('info_acces_interdit'));
389
+                exit;
390
+            }
391
+            require _DIR_RESTREINT . 'action/configurer.php';
392
+            action_configurer_dist();
393
+        }
394
+    }
395 395
 }
396 396
 if (
397
-	isset($_REQUEST['action'])
398
-	and $_REQUEST['action'] == 'ordonner_liens_documents'
399
-	and isset($_REQUEST['ordre'])
400
-	and is_string($_REQUEST['ordre'])
397
+    isset($_REQUEST['action'])
398
+    and $_REQUEST['action'] == 'ordonner_liens_documents'
399
+    and isset($_REQUEST['ordre'])
400
+    and is_string($_REQUEST['ordre'])
401 401
 ) {
402
-	$ecran_securite_raison = "ordre a la chaine";
402
+    $ecran_securite_raison = "ordre a la chaine";
403 403
 }
404 404
 
405 405
 
@@ -407,29 +407,29 @@  discard block
 block discarded – undo
407 407
  * Bloque les requêtes contenant %00 (manipulation d'include)
408 408
  */
409 409
 if (strpos(
410
-	(function_exists('get_magic_quotes_gpc') and @get_magic_quotes_gpc())
411
-		? stripslashes(serialize($_REQUEST))
412
-		: serialize($_REQUEST),
413
-	chr(0)
410
+    (function_exists('get_magic_quotes_gpc') and @get_magic_quotes_gpc())
411
+        ? stripslashes(serialize($_REQUEST))
412
+        : serialize($_REQUEST),
413
+    chr(0)
414 414
 ) !== false) {
415
-	$ecran_securite_raison = "%00";
415
+    $ecran_securite_raison = "%00";
416 416
 }
417 417
 
418 418
 /*
419 419
  * Bloque les requêtes fond=formulaire_
420 420
  */
421 421
 if (
422
-	isset($_REQUEST['fond'])
423
-	and preg_match(',^formulaire_,i', $_REQUEST['fond'])
422
+    isset($_REQUEST['fond'])
423
+    and preg_match(',^formulaire_,i', $_REQUEST['fond'])
424 424
 ) {
425
-	$ecran_securite_raison = "fond=formulaire_";
425
+    $ecran_securite_raison = "fond=formulaire_";
426 426
 }
427 427
 
428 428
 /*
429 429
  * Bloque les requêtes du type ?GLOBALS[type_urls]=toto (bug vieux php)
430 430
  */
431 431
 if (isset($_REQUEST['GLOBALS'])) {
432
-	$ecran_securite_raison = "GLOBALS[GLOBALS]";
432
+    $ecran_securite_raison = "GLOBALS[GLOBALS]";
433 433
 }
434 434
 
435 435
 /*
@@ -438,14 +438,14 @@  discard block
 block discarded – undo
438 438
  * les paginations entremélées
439 439
  */
440 440
 if (_IS_BOT) {
441
-	if (
442
-		(isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type']))
443
-		or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI']))
444
-		or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_'))
445
-		or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
446
-	) {
447
-		$ecran_securite_raison = "robot agenda/double pagination";
448
-	}
441
+    if (
442
+        (isset($_REQUEST['echelle']) and isset($_REQUEST['partie_cal']) and isset($_REQUEST['type']))
443
+        or (strpos((string)$_SERVER['REQUEST_URI'], 'debut_') and preg_match(',[?&]debut_.*&debut_,', (string)$_SERVER['REQUEST_URI']))
444
+        or (isset($_REQUEST['calendrier_annee']) and strpos((string)$_SERVER['REQUEST_URI'], 'debut_'))
445
+        or (isset($_REQUEST['calendrier_annee']) and preg_match(',[?&]calendrier_annee=.*&calendrier_annee=,', (string)$_SERVER['REQUEST_URI']))
446
+    ) {
447
+        $ecran_securite_raison = "robot agenda/double pagination";
448
+    }
449 449
 }
450 450
 
451 451
 /*
@@ -453,82 +453,82 @@  discard block
 block discarded – undo
453 453
  * Bloque un XSS sur une page inexistante
454 454
  */
455 455
 if (isset($_REQUEST['page'])) {
456
-	if ($_REQUEST['page'] == 'test_cfg') {
457
-		$ecran_securite_raison = "test_cfg";
458
-	}
459
-	if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) {
460
-		$ecran_securite_raison = "xsspage";
461
-	}
462
-	if (
463
-		$_REQUEST['page'] == '404'
464
-		and isset($_REQUEST['erreur'])
465
-	) {
466
-		$ecran_securite_raison = "xss404";
467
-	}
456
+    if ($_REQUEST['page'] == 'test_cfg') {
457
+        $ecran_securite_raison = "test_cfg";
458
+    }
459
+    if ($_REQUEST['page'] !== htmlspecialchars((string)$_REQUEST['page'])) {
460
+        $ecran_securite_raison = "xsspage";
461
+    }
462
+    if (
463
+        $_REQUEST['page'] == '404'
464
+        and isset($_REQUEST['erreur'])
465
+    ) {
466
+        $ecran_securite_raison = "xss404";
467
+    }
468 468
 }
469 469
 
470 470
 /*
471 471
  * XSS par array
472 472
  */
473 473
 foreach (array('var_login') as $var) {
474
-	if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) {
475
-		$ecran_securite_raison = "xss " . $var;
476
-	}
474
+    if (isset($_REQUEST[$var]) and is_array($_REQUEST[$var])) {
475
+        $ecran_securite_raison = "xss " . $var;
476
+    }
477 477
 }
478 478
 
479 479
 /*
480 480
  * Parade antivirale contre un cheval de troie
481 481
  */
482 482
 if (!function_exists('tmp_lkojfghx')) {
483
-	function tmp_lkojfghx() {}
484
-	function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) {
485
-		// si jamais on est arrivé ici sur une erreur php
486
-		// et qu'un autre gestionnaire d'erreur est défini, l'appeller
487
-		if ($b && $GLOBALS['tmp_xhgfjokl']) {
488
-			call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
489
-		}
490
-	}
483
+    function tmp_lkojfghx() {}
484
+    function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0) {
485
+        // si jamais on est arrivé ici sur une erreur php
486
+        // et qu'un autre gestionnaire d'erreur est défini, l'appeller
487
+        if ($b && $GLOBALS['tmp_xhgfjokl']) {
488
+            call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
489
+        }
490
+    }
491 491
 }
492 492
 if (isset($_POST['tmp_lkojfghx3'])) {
493
-	$ecran_securite_raison = "gumblar";
493
+    $ecran_securite_raison = "gumblar";
494 494
 }
495 495
 
496 496
 /*
497 497
  * Outils XML mal sécurisés < 2.0.9
498 498
  */
499 499
 if (isset($_REQUEST['transformer_xml'])) {
500
-	$ecran_securite_raison = "transformer_xml";
500
+    $ecran_securite_raison = "transformer_xml";
501 501
 }
502 502
 
503 503
 /*
504 504
  * Outils XML mal sécurisés again
505 505
  */
506 506
 if (isset($_REQUEST['var_url']) and $_REQUEST['var_url'] and isset($_REQUEST['exec']) and $_REQUEST['exec'] == 'valider_xml') {
507
-	$url = trim($_REQUEST['var_url']);
508
-	if (
509
-		strncmp($url, '/', 1) == 0
510
-		or (($p = strpos($url, '..')) !== false and strpos($url, '..', $p + 3) !== false)
511
-		or (($p = strpos($url, '..')) !== false and strpos($url, 'IMG', $p + 3) !== false)
512
-		or (strpos($url, '://') !== false or strpos($url, ':\\') !== false)
513
-	) {
514
-		$ecran_securite_raison = 'URL interdite pour var_url';
515
-	}
507
+    $url = trim($_REQUEST['var_url']);
508
+    if (
509
+        strncmp($url, '/', 1) == 0
510
+        or (($p = strpos($url, '..')) !== false and strpos($url, '..', $p + 3) !== false)
511
+        or (($p = strpos($url, '..')) !== false and strpos($url, 'IMG', $p + 3) !== false)
512
+        or (strpos($url, '://') !== false or strpos($url, ':\\') !== false)
513
+    ) {
514
+        $ecran_securite_raison = 'URL interdite pour var_url';
515
+    }
516 516
 }
517 517
 
518 518
 /*
519 519
  * Sauvegarde mal securisée < 2.0.9
520 520
  */
521 521
 if (
522
-	isset($_REQUEST['nom_sauvegarde'])
523
-	and strstr((string)$_REQUEST['nom_sauvegarde'], '/')
522
+    isset($_REQUEST['nom_sauvegarde'])
523
+    and strstr((string)$_REQUEST['nom_sauvegarde'], '/')
524 524
 ) {
525
-	$ecran_securite_raison = 'nom_sauvegarde manipulee';
525
+    $ecran_securite_raison = 'nom_sauvegarde manipulee';
526 526
 }
527 527
 if (
528
-	isset($_REQUEST['znom_sauvegarde'])
529
-	and strstr((string)$_REQUEST['znom_sauvegarde'], '/')
528
+    isset($_REQUEST['znom_sauvegarde'])
529
+    and strstr((string)$_REQUEST['znom_sauvegarde'], '/')
530 530
 ) {
531
-	$ecran_securite_raison = 'znom_sauvegarde manipulee';
531
+    $ecran_securite_raison = 'znom_sauvegarde manipulee';
532 532
 }
533 533
 
534 534
 
@@ -537,57 +537,57 @@  discard block
 block discarded – undo
537 537
  * on vérifie 'page' pour ne pas bloquer ... drupal
538 538
  */
539 539
 if (
540
-	isset($_REQUEST['op']) and isset($_REQUEST['page'])
541
-	and $_REQUEST['op'] !== preg_replace('/[^\\-\w]/', '', $_REQUEST['op'])
540
+    isset($_REQUEST['op']) and isset($_REQUEST['page'])
541
+    and $_REQUEST['op'] !== preg_replace('/[^\\-\w]/', '', $_REQUEST['op'])
542 542
 ) {
543
-	$ecran_securite_raison = 'op';
543
+    $ecran_securite_raison = 'op';
544 544
 }
545 545
 
546 546
 /*
547 547
  * Forms & Table ne se méfiait pas assez des uploads de fichiers
548 548
  */
549 549
 if (count($_FILES)) {
550
-	foreach ($_FILES as $k => $v) {
551
-		if (
552
-			preg_match(',^fichier_\d+$,', $k)
553
-			and preg_match(',\.php,i', $v['name'])
554
-		) {
555
-			unset($_FILES[$k]);
556
-		}
557
-	}
550
+    foreach ($_FILES as $k => $v) {
551
+        if (
552
+            preg_match(',^fichier_\d+$,', $k)
553
+            and preg_match(',\.php,i', $v['name'])
554
+        ) {
555
+            unset($_FILES[$k]);
556
+        }
557
+    }
558 558
 }
559 559
 /*
560 560
  * et Contact trop laxiste avec une variable externe
561 561
  * on bloque pas le post pour eviter de perdre des donnees mais on unset la variable et c'est tout
562 562
  */
563 563
 if (isset($_REQUEST['pj_enregistrees_nom']) and $_REQUEST['pj_enregistrees_nom']) {
564
-	unset($_REQUEST['pj_enregistrees_nom']);
565
-	unset($_GET['pj_enregistrees_nom']);
566
-	unset($_POST['pj_enregistrees_nom']);
564
+    unset($_REQUEST['pj_enregistrees_nom']);
565
+    unset($_GET['pj_enregistrees_nom']);
566
+    unset($_POST['pj_enregistrees_nom']);
567 567
 }
568 568
 
569 569
 /*
570 570
  * reinstall=oui un peu trop permissif
571 571
  */
572 572
 if (
573
-	isset($_REQUEST['reinstall'])
574
-	and $_REQUEST['reinstall'] == 'oui'
573
+    isset($_REQUEST['reinstall'])
574
+    and $_REQUEST['reinstall'] == 'oui'
575 575
 ) {
576
-	$ecran_securite_raison = 'reinstall=oui';
576
+    $ecran_securite_raison = 'reinstall=oui';
577 577
 }
578 578
 
579 579
 /*
580 580
  * Pas d'action pendant l'install
581 581
  */
582 582
 if (isset($_REQUEST['exec']) and $_REQUEST['exec'] === 'install' and isset($_REQUEST['action'])) {
583
-	$ecran_securite_raison = 'install&action impossibles';
583
+    $ecran_securite_raison = 'install&action impossibles';
584 584
 }
585 585
 
586 586
 /*
587 587
  * Échappement xss referer
588 588
  */
589 589
 if (isset($_SERVER['HTTP_REFERER'])) {
590
-	$_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
590
+    $_SERVER['HTTP_REFERER'] = strtr($_SERVER['HTTP_REFERER'], '<>"\'', '[]##');
591 591
 }
592 592
 
593 593
 
@@ -595,7 +595,7 @@  discard block
 block discarded – undo
595 595
  * Echappement HTTP_X_FORWARDED_HOST
596 596
  */
597 597
 if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
598
-	$_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________');
598
+    $_SERVER['HTTP_X_FORWARDED_HOST'] = strtr($_SERVER['HTTP_X_FORWARDED_HOST'], "<>?\"\{\}\$'` \r\n", '____________');
599 599
 }
600 600
 
601 601
 
@@ -603,9 +603,9 @@  discard block
 block discarded – undo
603 603
  * Pas d'erreur dans l'erreur
604 604
  */
605 605
 if (isset($_REQUEST['var_erreur']) and isset($_REQUEST['page']) and $_REQUEST['page'] === 'login') {
606
-	if (strlen($_REQUEST['var_erreur']) !== strcspn($_REQUEST['var_erreur'], '<>')) {
607
-		$ecran_securite_raison = 'var_erreur incorrecte';
608
-	}
606
+    if (strlen($_REQUEST['var_erreur']) !== strcspn($_REQUEST['var_erreur'], '<>')) {
607
+        $ecran_securite_raison = 'var_erreur incorrecte';
608
+    }
609 609
 }
610 610
 
611 611
 
@@ -613,53 +613,53 @@  discard block
 block discarded – undo
613 613
  * Réinjection des clés en html dans l'admin r19561
614 614
  */
615 615
 if (
616
-	(isset($_SERVER['REQUEST_URI']) and strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false)
617
-	or isset($_REQUEST['var_memotri'])
616
+    (isset($_SERVER['REQUEST_URI']) and strpos($_SERVER['REQUEST_URI'], "ecrire/") !== false)
617
+    or isset($_REQUEST['var_memotri'])
618 618
 ) {
619
-	$zzzz = implode("", array_keys($_REQUEST));
620
-	if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) {
621
-		$ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
622
-	}
619
+    $zzzz = implode("", array_keys($_REQUEST));
620
+    if (strlen($zzzz) != strcspn($zzzz, '<>"\'')) {
621
+        $ecran_securite_raison = 'Cle incorrecte en $_REQUEST';
622
+    }
623 623
 }
624 624
 
625 625
 /*
626 626
  * Injection par connect
627 627
  */
628 628
 if (
629
-	isset($_REQUEST['connect'])
630
-	// cas qui permettent de sortir d'un commentaire PHP
631
-	and (
632
-		strpos($_REQUEST['connect'], "?") !== false
633
-		or strpos($_REQUEST['connect'], "<") !== false
634
-		or strpos($_REQUEST['connect'], ">") !== false
635
-		or strpos($_REQUEST['connect'], "\n") !== false
636
-		or strpos($_REQUEST['connect'], "\r") !== false
637
-	)
629
+    isset($_REQUEST['connect'])
630
+    // cas qui permettent de sortir d'un commentaire PHP
631
+    and (
632
+        strpos($_REQUEST['connect'], "?") !== false
633
+        or strpos($_REQUEST['connect'], "<") !== false
634
+        or strpos($_REQUEST['connect'], ">") !== false
635
+        or strpos($_REQUEST['connect'], "\n") !== false
636
+        or strpos($_REQUEST['connect'], "\r") !== false
637
+    )
638 638
 ) {
639
-	$ecran_securite_raison = "malformed connect argument";
639
+    $ecran_securite_raison = "malformed connect argument";
640 640
 }
641 641
 
642 642
 /*
643 643
  * S'il y a une raison de mourir, mourons
644 644
  */
645 645
 if (isset($ecran_securite_raison)) {
646
-	header("HTTP/1.0 403 Forbidden");
647
-	header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
648
-	header("Cache-Control: no-cache, must-revalidate");
649
-	header("Pragma: no-cache");
650
-	header("Content-Type: text/html");
651
-	header("Connection: close");
652
-	die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>");
646
+    header("HTTP/1.0 403 Forbidden");
647
+    header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
648
+    header("Cache-Control: no-cache, must-revalidate");
649
+    header("Pragma: no-cache");
650
+    header("Content-Type: text/html");
651
+    header("Connection: close");
652
+    die("<html><title>Error 403: Forbidden</title><body><h1>Error 403</h1><p>You are not authorized to view this page ($ecran_securite_raison)</p></body></html>");
653 653
 }
654 654
 
655 655
 /*
656 656
  * Un filtre filtrer_entites securise
657 657
  */
658 658
 if (!function_exists('filtre_filtrer_entites_dist')) {
659
-	function filtre_filtrer_entites_dist($t) {
660
-		include_spip('inc/texte');
661
-		return interdire_scripts(filtrer_entites($t));
662
-	}
659
+    function filtre_filtrer_entites_dist($t) {
660
+        include_spip('inc/texte');
661
+        return interdire_scripts(filtrer_entites($t));
662
+    }
663 663
 }
664 664
 
665 665
 
@@ -673,35 +673,35 @@  discard block
 block discarded – undo
673 673
  * Bloque les bots quand le load déborde
674 674
  */
675 675
 if (!defined('_ECRAN_SECURITE_LOAD')) {
676
-	define('_ECRAN_SECURITE_LOAD', 4);
676
+    define('_ECRAN_SECURITE_LOAD', 4);
677 677
 }
678 678
 
679 679
 if (
680
-	defined('_ECRAN_SECURITE_LOAD')
681
-	and _ECRAN_SECURITE_LOAD > 0
682
-	and _IS_BOT
683
-	and !_IS_BOT_FRIEND
684
-	and $_SERVER['REQUEST_METHOD'] === 'GET'
685
-	and (
686
-		(function_exists('sys_getloadavg')
687
-			and $load = sys_getloadavg()
688
-			and is_array($load)
689
-			and $load = array_shift($load))
690
-		or
691
-		(@is_readable('/proc/loadavg')
692
-			and $load = file_get_contents('/proc/loadavg')
693
-			and $load = floatval($load))
694
-	)
695
-	and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite
696
-	and random_int(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
680
+    defined('_ECRAN_SECURITE_LOAD')
681
+    and _ECRAN_SECURITE_LOAD > 0
682
+    and _IS_BOT
683
+    and !_IS_BOT_FRIEND
684
+    and $_SERVER['REQUEST_METHOD'] === 'GET'
685
+    and (
686
+        (function_exists('sys_getloadavg')
687
+            and $load = sys_getloadavg()
688
+            and is_array($load)
689
+            and $load = array_shift($load))
690
+        or
691
+        (@is_readable('/proc/loadavg')
692
+            and $load = file_get_contents('/proc/loadavg')
693
+            and $load = floatval($load))
694
+    )
695
+    and $load > _ECRAN_SECURITE_LOAD // eviter l'evaluation suivante si de toute facon le load est inferieur a la limite
696
+    and random_int(0, $load * $load) > _ECRAN_SECURITE_LOAD * _ECRAN_SECURITE_LOAD
697 697
 ) {
698
-	//https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot
699
-	header("HTTP/1.0 429 Too Many Requests");
700
-	header("Retry-After: 300");
701
-	header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
702
-	header("Cache-Control: no-cache, must-revalidate");
703
-	header("Pragma: no-cache");
704
-	header("Content-Type: text/html");
705
-	header("Connection: close");
706
-	die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>");
698
+    //https://webmasters.stackexchange.com/questions/65674/should-i-return-a-429-or-503-status-code-to-a-bot
699
+    header("HTTP/1.0 429 Too Many Requests");
700
+    header("Retry-After: 300");
701
+    header("Expires: Wed, 11 Jan 1984 05:00:00 GMT");
702
+    header("Cache-Control: no-cache, must-revalidate");
703
+    header("Pragma: no-cache");
704
+    header("Content-Type: text/html");
705
+    header("Connection: close");
706
+    die("<html><title>Status 429: Too Many Requests</title><body><h1>Status 429</h1><p>Too Many Requests (try again soon)</p></body></html>");
707 707
 }
Please login to merge, or discard this patch.
ecrire/plugins/get_infos.php 1 patch
Indentation   +101 added lines, -101 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
 /**
@@ -33,110 +33,110 @@  discard block
 block discarded – undo
33 33
  * @return array
34 34
  */
35 35
 function plugins_get_infos_dist($plug = false, $reload = false, $dir = _DIR_PLUGINS, $clean_old = false) {
36
-	$contenu = null;
37
-	$res = null;
38
-	static $cache = '';
39
-	static $filecache = '';
40
-
41
-	if ($cache === '') {
42
-		$filecache = _DIR_TMP . 'plugin_xml_cache.gz';
43
-		if (is_file($filecache)) {
44
-			lire_fichier($filecache, $contenu);
45
-			$cache = unserialize($contenu);
46
-		}
47
-		if (!is_array($cache)) {
48
-			$cache = [];
49
-		}
50
-	}
51
-
52
-	if (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') {
53
-		$reload = true;
54
-	}
55
-
56
-	if ($plug === false) {
57
-		ecrire_fichier($filecache, serialize($cache));
58
-
59
-		return $cache;
60
-	} elseif (is_string($plug)) {
61
-		$res = plugins_get_infos_un($plug, $reload, $dir, $cache);
62
-	} elseif (is_array($plug)) {
63
-		$res = false;
64
-		if (!$reload) {
65
-			$reload = -1;
66
-		}
67
-		foreach ($plug as $nom) {
68
-			$res |= plugins_get_infos_un($nom, $reload, $dir, $cache);
69
-		}
70
-
71
-		// Nettoyer le cache des vieux plugins qui ne sont plus la
72
-		if ($clean_old and isset($cache[$dir]) and is_countable($cache[$dir]) ? count($cache[$dir]) : 0) {
73
-			foreach (array_keys($cache[$dir]) as $p) {
74
-				if (!in_array($p, $plug)) {
75
-					unset($cache[$dir][$p]);
76
-				}
77
-			}
78
-		}
79
-	}
80
-	if ($res) {
81
-		ecrire_fichier($filecache, serialize($cache));
82
-	}
83
-	if (!isset($cache[$dir])) {
84
-		return [];
85
-	}
86
-	if (is_string($plug)) {
87
-		return $cache[$dir][$plug] ?? [];
88
-	} else {
89
-		return $cache[$dir];
90
-	}
36
+    $contenu = null;
37
+    $res = null;
38
+    static $cache = '';
39
+    static $filecache = '';
40
+
41
+    if ($cache === '') {
42
+        $filecache = _DIR_TMP . 'plugin_xml_cache.gz';
43
+        if (is_file($filecache)) {
44
+            lire_fichier($filecache, $contenu);
45
+            $cache = unserialize($contenu);
46
+        }
47
+        if (!is_array($cache)) {
48
+            $cache = [];
49
+        }
50
+    }
51
+
52
+    if (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') {
53
+        $reload = true;
54
+    }
55
+
56
+    if ($plug === false) {
57
+        ecrire_fichier($filecache, serialize($cache));
58
+
59
+        return $cache;
60
+    } elseif (is_string($plug)) {
61
+        $res = plugins_get_infos_un($plug, $reload, $dir, $cache);
62
+    } elseif (is_array($plug)) {
63
+        $res = false;
64
+        if (!$reload) {
65
+            $reload = -1;
66
+        }
67
+        foreach ($plug as $nom) {
68
+            $res |= plugins_get_infos_un($nom, $reload, $dir, $cache);
69
+        }
70
+
71
+        // Nettoyer le cache des vieux plugins qui ne sont plus la
72
+        if ($clean_old and isset($cache[$dir]) and is_countable($cache[$dir]) ? count($cache[$dir]) : 0) {
73
+            foreach (array_keys($cache[$dir]) as $p) {
74
+                if (!in_array($p, $plug)) {
75
+                    unset($cache[$dir][$p]);
76
+                }
77
+            }
78
+        }
79
+    }
80
+    if ($res) {
81
+        ecrire_fichier($filecache, serialize($cache));
82
+    }
83
+    if (!isset($cache[$dir])) {
84
+        return [];
85
+    }
86
+    if (is_string($plug)) {
87
+        return $cache[$dir][$plug] ?? [];
88
+    } else {
89
+        return $cache[$dir];
90
+    }
91 91
 }
92 92
 
93 93
 
94 94
 function plugins_get_infos_un($plug, $reload, $dir, &$cache) {
95
-	if (!is_readable($file = "$dir$plug/paquet.xml")) {
96
-		return false;
97
-	}
98
-	$time = intval(@filemtime($file));
99
-	if ($time < 0) {
100
-		return false;
101
-	}
102
-	$md5 = md5_file($file);
103
-
104
-	$pcache = $cache[$dir][$plug] ?? ['filemtime' => 0, 'md5_file' => ''];
105
-
106
-	// si le cache est valide
107
-	if (
108
-		(intval($reload) <= 0)
109
-		and ($time > 0)
110
-		and ($time <= $pcache['filemtime'])
111
-		and $md5 == $pcache['md5_file']
112
-	) {
113
-		return false;
114
-	}
115
-
116
-	// si on arrive pas a lire le fichier, se contenter du cache
117
-	if (!($texte = spip_file_get_contents($file))) {
118
-		return false;
119
-	}
120
-
121
-	$f = charger_fonction('infos_paquet', 'plugins');
122
-	$ret = $f($texte, $plug, $dir);
123
-	$ret['filemtime'] = $time;
124
-	$ret['md5_file'] = $md5;
125
-	// Si on lit le paquet.xml de SPIP, on rajoute un procure php afin que les plugins puissent
126
-	// utiliser un necessite php. SPIP procure donc la version php courante du serveur.
127
-	// chaque librairie php est aussi procurée, par exemple 'php:curl'.
128
-	if (isset($ret['prefix']) and $ret['prefix'] == 'spip') {
129
-		$ret['procure']['php'] = ['nom' => 'php', 'version' => phpversion()];
130
-		foreach (get_loaded_extensions() as $ext) {
131
-			$ret['procure']['php:' . $ext] = ['nom' => 'php:' . $ext, 'version' => phpversion($ext)];
132
-		}
133
-	}
134
-	$diff = ($ret != $pcache);
135
-
136
-	if ($diff) {
137
-		$cache[$dir][$plug] = $ret;
95
+    if (!is_readable($file = "$dir$plug/paquet.xml")) {
96
+        return false;
97
+    }
98
+    $time = intval(@filemtime($file));
99
+    if ($time < 0) {
100
+        return false;
101
+    }
102
+    $md5 = md5_file($file);
103
+
104
+    $pcache = $cache[$dir][$plug] ?? ['filemtime' => 0, 'md5_file' => ''];
105
+
106
+    // si le cache est valide
107
+    if (
108
+        (intval($reload) <= 0)
109
+        and ($time > 0)
110
+        and ($time <= $pcache['filemtime'])
111
+        and $md5 == $pcache['md5_file']
112
+    ) {
113
+        return false;
114
+    }
115
+
116
+    // si on arrive pas a lire le fichier, se contenter du cache
117
+    if (!($texte = spip_file_get_contents($file))) {
118
+        return false;
119
+    }
120
+
121
+    $f = charger_fonction('infos_paquet', 'plugins');
122
+    $ret = $f($texte, $plug, $dir);
123
+    $ret['filemtime'] = $time;
124
+    $ret['md5_file'] = $md5;
125
+    // Si on lit le paquet.xml de SPIP, on rajoute un procure php afin que les plugins puissent
126
+    // utiliser un necessite php. SPIP procure donc la version php courante du serveur.
127
+    // chaque librairie php est aussi procurée, par exemple 'php:curl'.
128
+    if (isset($ret['prefix']) and $ret['prefix'] == 'spip') {
129
+        $ret['procure']['php'] = ['nom' => 'php', 'version' => phpversion()];
130
+        foreach (get_loaded_extensions() as $ext) {
131
+            $ret['procure']['php:' . $ext] = ['nom' => 'php:' . $ext, 'version' => phpversion($ext)];
132
+        }
133
+    }
134
+    $diff = ($ret != $pcache);
135
+
136
+    if ($diff) {
137
+        $cache[$dir][$plug] = $ret;
138 138
 #       echo count($cache[$dir]), $dir,$plug, " $reloadc<br>";
139
-	}
139
+    }
140 140
 
141
-	return $diff;
141
+    return $diff;
142 142
 }
Please login to merge, or discard this patch.