Completed
Push — master ( 3caaa9...7e8601 )
by cam
01:42
created
ecrire/lang/public_fr_tu.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 cet auteur',
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’auteur à 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' => 'Auteur',
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' => 'Salut',
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' => 'Du même auteur',
67
-	'meme_rubrique' => 'Dans la même rubrique',
68
-	'memes_auteurs' => 'Des mêmes auteurs',
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' => 'Tu peux participer à la vie de ce site et proposer tes propres articles en t’inscrivant ci-dessous. Tu recevras immédiatement un email t’indiquant tes 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' => 'Tu peux 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' => 'Copie l’URL suivante dans ton 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 articles et les brèves publiés 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 cet auteur',
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’auteur à 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' => 'Auteur',
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' => 'Salut',
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' => 'Du même auteur',
67
+    'meme_rubrique' => 'Dans la même rubrique',
68
+    'memes_auteurs' => 'Des mêmes auteurs',
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' => 'Tu peux participer à la vie de ce site et proposer tes propres articles en t’inscrivant ci-dessous. Tu recevras immédiatement un email t’indiquant tes 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' => 'Tu peux 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' => 'Copie l’URL suivante dans ton 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 articles et les brèves publiés 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/ecrire_it.php 1 patch
Indentation   +836 added lines, -836 removed lines patch added patch discarded remove patch
@@ -4,828 +4,828 @@  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' => 'Attiva l’estensione',
14
-	'affichage' => 'Visualizzazione',
15
-	'aide_non_disponible' => 'Questa parte della guida in linea non è ancora disponibile in italiano.',
16
-	'annuler_recherche' => 'Annullare la ricerca',
17
-	'auteur' => 'Autore:',
18
-	'avis_acces_interdit' => 'Accesso vietato.',
19
-	'avis_acces_interdit_prive' => 'Non hai i diritti di accesso per la pagina <b>@exec@</b>.',
20
-	'avis_article_modifie' => 'Attenzione, @nom_auteur_modif@ ha lavorato su quest’articolo @date_diff@ minuti fa',
21
-	'avis_aucun_resultat' => 'Nessun risultato.',
22
-	'avis_base_inaccessible' => 'Impossibile connettersi al database @base@.',
23
-	'avis_chemin_invalide_1' => 'il percorso che hai scelto',
24
-	'avis_chemin_invalide_2' => 'non sembra valido. Torna alla pagina precedente e verifica le informazioni fornite.',
25
-	'avis_connexion_echec_1' => 'Il collegamento alla base di dati  è fallito.',
26
-	'avis_connexion_echec_2' => 'Torna alla pagina precedente e verifica le informazioni fornite.',
27
-	'avis_connexion_echec_3' => '<b>N.B.</b> Su molti server si deve <b>chiedere</b> l’attivazione dell’accesso alla base di dati prima di poterlo utilizzare. Se è impossibile collegarsi, verificare che questo passo sia stato fatto.',
28
-	'avis_connexion_erreur_creer_base' => 'Non è stato possibile creare un database.',
29
-	'avis_connexion_erreur_nom_base' => 'Il nome del database può contenere solo lettere, numeri e tratti.',
30
-	'avis_connexion_ldap_echec_1' => 'La connessione al server LDAP è fallita.',
31
-	'avis_connexion_ldap_echec_2' => 'Torna alla pagina precedente e verifica le informazioni fornite. ',
32
-	'avis_connexion_ldap_echec_3' => 'In alternativa, non utilizzare il supporto LDAP per importare utenti.',
33
-	'avis_deplacement_rubrique' => 'Attenzione! Questa rubrica contiene @contient_breves@ breve/i: se vuoi spostarla, spunta questa casella per confermare.',
34
-	'avis_erreur_connexion_mysql' => 'Errore di connessione SQL',
35
-	'avis_espace_interdit' => '<b>Area vietata</b> <div>SPIP è già installato.</div>',
36
-	'avis_lecture_noms_bases_1' => 'Il programma di installazione non ha potuto leggere i nomi dei database installati nel server.',
37
-	'avis_lecture_noms_bases_2' => 'Nessun database è disponibile, o la funzione che permette di accedere alla lista database è
12
+    // A
13
+    'activer_plugin' => 'Attiva l’estensione',
14
+    'affichage' => 'Visualizzazione',
15
+    'aide_non_disponible' => 'Questa parte della guida in linea non è ancora disponibile in italiano.',
16
+    'annuler_recherche' => 'Annullare la ricerca',
17
+    'auteur' => 'Autore:',
18
+    'avis_acces_interdit' => 'Accesso vietato.',
19
+    'avis_acces_interdit_prive' => 'Non hai i diritti di accesso per la pagina <b>@exec@</b>.',
20
+    'avis_article_modifie' => 'Attenzione, @nom_auteur_modif@ ha lavorato su quest’articolo @date_diff@ minuti fa',
21
+    'avis_aucun_resultat' => 'Nessun risultato.',
22
+    'avis_base_inaccessible' => 'Impossibile connettersi al database @base@.',
23
+    'avis_chemin_invalide_1' => 'il percorso che hai scelto',
24
+    'avis_chemin_invalide_2' => 'non sembra valido. Torna alla pagina precedente e verifica le informazioni fornite.',
25
+    'avis_connexion_echec_1' => 'Il collegamento alla base di dati  è fallito.',
26
+    'avis_connexion_echec_2' => 'Torna alla pagina precedente e verifica le informazioni fornite.',
27
+    'avis_connexion_echec_3' => '<b>N.B.</b> Su molti server si deve <b>chiedere</b> l’attivazione dell’accesso alla base di dati prima di poterlo utilizzare. Se è impossibile collegarsi, verificare che questo passo sia stato fatto.',
28
+    'avis_connexion_erreur_creer_base' => 'Non è stato possibile creare un database.',
29
+    'avis_connexion_erreur_nom_base' => 'Il nome del database può contenere solo lettere, numeri e tratti.',
30
+    'avis_connexion_ldap_echec_1' => 'La connessione al server LDAP è fallita.',
31
+    'avis_connexion_ldap_echec_2' => 'Torna alla pagina precedente e verifica le informazioni fornite. ',
32
+    'avis_connexion_ldap_echec_3' => 'In alternativa, non utilizzare il supporto LDAP per importare utenti.',
33
+    'avis_deplacement_rubrique' => 'Attenzione! Questa rubrica contiene @contient_breves@ breve/i: se vuoi spostarla, spunta questa casella per confermare.',
34
+    'avis_erreur_connexion_mysql' => 'Errore di connessione SQL',
35
+    'avis_espace_interdit' => '<b>Area vietata</b> <div>SPIP è già installato.</div>',
36
+    'avis_lecture_noms_bases_1' => 'Il programma di installazione non ha potuto leggere i nomi dei database installati nel server.',
37
+    'avis_lecture_noms_bases_2' => 'Nessun database è disponibile, o la funzione che permette di accedere alla lista database è
38 38
 disattivata per motivi sicurezza (verifica con l’amministratore di sistema).',
39
-	'avis_lecture_noms_bases_3' => 'Nel secondo caso, è probabile che un database con il tuo nome di login sia utilizzabile:',
40
-	'avis_non_acces_page' => 'Non hai accesso a questa pagina.',
41
-	'avis_operation_echec' => 'L’operazione è fallita.',
42
-	'avis_operation_impossible' => 'Operazione impossibile',
43
-	'avis_suppression_base' => 'ATTENZIONE, la cancellazione dei dati è irreversibile',
39
+    'avis_lecture_noms_bases_3' => 'Nel secondo caso, è probabile che un database con il tuo nome di login sia utilizzabile:',
40
+    'avis_non_acces_page' => 'Non hai accesso a questa pagina.',
41
+    'avis_operation_echec' => 'L’operazione è fallita.',
42
+    'avis_operation_impossible' => 'Operazione impossibile',
43
+    'avis_suppression_base' => 'ATTENZIONE, la cancellazione dei dati è irreversibile',
44 44
 
45
-	// B
46
-	'bouton_acces_ldap' => 'Aggiungi l’accesso a LDAP ',
47
-	'bouton_ajouter' => 'Aggiungi',
48
-	'bouton_annuler' => 'Annulla',
49
-	'bouton_cache_activer' => 'Riattivare la cache',
50
-	'bouton_cache_desactiver' => 'Disabilita temporaneamente la cache',
51
-	'bouton_demande_publication' => 'Chiedi la pubblicazione di questo articolo',
52
-	'bouton_desactive_tout' => 'Disattiva tutto',
53
-	'bouton_desinstaller' => 'Disinstalla',
54
-	'bouton_effacer_tout' => 'Cancella TUTTO',
55
-	'bouton_envoyer_message' => 'Messaggio definitivo: Invia',
56
-	'bouton_fermer' => 'Chiudi',
57
-	'bouton_mettre_a_jour_base' => 'Aggiorna il database',
58
-	'bouton_modifier' => 'Modifica',
59
-	'bouton_radio_afficher' => 'Visualizza',
60
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Comparire nell’elenco dei redattori collegati',
61
-	'bouton_radio_envoi_annonces_adresse' => 'Invia gli annunci all’indirizzo:',
62
-	'bouton_radio_envoi_liste_nouveautes' => 'Invia l’elenco delle novità',
63
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Non comparire nell’elenco dei redattori collegati ',
64
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Non inviare annunci editoriali ',
65
-	'bouton_redirection' => 'REINDIRIZZAMENTO',
66
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Ripristina i valori predefiniti',
67
-	'bouton_relancer_inscription' => 'Riavvia l’iscrizione',
68
-	'bouton_relancer_inscriptions' => 'Riavvia le registrazioni',
69
-	'bouton_relancer_installation' => 'Rilanciare l’installazione',
70
-	'bouton_reset_password' => 'Genera una nuova password ed inviala per email',
71
-	'bouton_suivant' => 'Avanti',
72
-	'bouton_tenter_recuperation' => 'Tentare un ripristino',
73
-	'bouton_test_proxy' => 'Testare il proxy',
74
-	'bouton_vider_cache' => 'Svuota la cache',
45
+    // B
46
+    'bouton_acces_ldap' => 'Aggiungi l’accesso a LDAP ',
47
+    'bouton_ajouter' => 'Aggiungi',
48
+    'bouton_annuler' => 'Annulla',
49
+    'bouton_cache_activer' => 'Riattivare la cache',
50
+    'bouton_cache_desactiver' => 'Disabilita temporaneamente la cache',
51
+    'bouton_demande_publication' => 'Chiedi la pubblicazione di questo articolo',
52
+    'bouton_desactive_tout' => 'Disattiva tutto',
53
+    'bouton_desinstaller' => 'Disinstalla',
54
+    'bouton_effacer_tout' => 'Cancella TUTTO',
55
+    'bouton_envoyer_message' => 'Messaggio definitivo: Invia',
56
+    'bouton_fermer' => 'Chiudi',
57
+    'bouton_mettre_a_jour_base' => 'Aggiorna il database',
58
+    'bouton_modifier' => 'Modifica',
59
+    'bouton_radio_afficher' => 'Visualizza',
60
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Comparire nell’elenco dei redattori collegati',
61
+    'bouton_radio_envoi_annonces_adresse' => 'Invia gli annunci all’indirizzo:',
62
+    'bouton_radio_envoi_liste_nouveautes' => 'Invia l’elenco delle novità',
63
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Non comparire nell’elenco dei redattori collegati ',
64
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Non inviare annunci editoriali ',
65
+    'bouton_redirection' => 'REINDIRIZZAMENTO',
66
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Ripristina i valori predefiniti',
67
+    'bouton_relancer_inscription' => 'Riavvia l’iscrizione',
68
+    'bouton_relancer_inscriptions' => 'Riavvia le registrazioni',
69
+    'bouton_relancer_installation' => 'Rilanciare l’installazione',
70
+    'bouton_reset_password' => 'Genera una nuova password ed inviala per email',
71
+    'bouton_suivant' => 'Avanti',
72
+    'bouton_tenter_recuperation' => 'Tentare un ripristino',
73
+    'bouton_test_proxy' => 'Testare il proxy',
74
+    'bouton_vider_cache' => 'Svuota la cache',
75 75
 
76
-	// C
77
-	'cache_modifiable_webmestre' => 'Questo parametro può essere modificato dal webmaster del sito.',
78
-	'calendrier_synchro' => 'Se si utilizza un programma di agenda compatibile con <b>iCal</b>, è possibile sincronizzare i dati con le informazioni di questo sito',
79
-	'config_activer_champs' => 'Attiva i campi seguenti',
80
-	'config_choix_base_sup' => 'indicare un database su questo server',
81
-	'config_erreur_base_sup' => 'SPIP non ha accesso all’elenco dei database accessibili ',
82
-	'config_info_base_sup' => 'Se si hanno altri database da interrogare attraverso SPIP, con il proprio server SQL o altro, il form sottostante permette di dichiararli. Se si lasciano alcuni campi vuoti verranno utilizzati i dati della connessione al database principale.',
83
-	'config_info_base_sup_disponibles' => 'Database supplementari già dichiarati:',
84
-	'config_info_enregistree' => 'La nuova configurazione è stata registrata',
85
-	'config_info_logos' => 'Ogni elemento del sito può avere un logo, come pure un « logo per il roll-over »',
86
-	'config_info_logos_utiliser' => 'Utilizza i logo',
87
-	'config_info_logos_utiliser_non' => 'Non utilizzare i logo',
88
-	'config_info_logos_utiliser_survol' => 'Utilizzare i logo di roll-over',
89
-	'config_info_logos_utiliser_survol_non' => 'Non utilizzare i logo di roll-over',
90
-	'config_info_redirection' => 'Attivando questa opzione è possibile creare degli articoli virtuali, semplici riferimenti di articoli pubblicati su altri siti o al di fuori di SPIP.',
91
-	'config_redirection' => 'Articoli virtuali',
92
-	'config_titre_base_sup' => 'Dichiarazione di un database supplementare',
93
-	'config_titre_base_sup_choix' => 'Scegliere un database supplementare',
94
-	'connexion_ldap' => 'Connessione:',
95
-	'creer_et_associer_un_auteur' => 'Crea e associa un’autore',
76
+    // C
77
+    'cache_modifiable_webmestre' => 'Questo parametro può essere modificato dal webmaster del sito.',
78
+    'calendrier_synchro' => 'Se si utilizza un programma di agenda compatibile con <b>iCal</b>, è possibile sincronizzare i dati con le informazioni di questo sito',
79
+    'config_activer_champs' => 'Attiva i campi seguenti',
80
+    'config_choix_base_sup' => 'indicare un database su questo server',
81
+    'config_erreur_base_sup' => 'SPIP non ha accesso all’elenco dei database accessibili ',
82
+    'config_info_base_sup' => 'Se si hanno altri database da interrogare attraverso SPIP, con il proprio server SQL o altro, il form sottostante permette di dichiararli. Se si lasciano alcuni campi vuoti verranno utilizzati i dati della connessione al database principale.',
83
+    'config_info_base_sup_disponibles' => 'Database supplementari già dichiarati:',
84
+    'config_info_enregistree' => 'La nuova configurazione è stata registrata',
85
+    'config_info_logos' => 'Ogni elemento del sito può avere un logo, come pure un « logo per il roll-over »',
86
+    'config_info_logos_utiliser' => 'Utilizza i logo',
87
+    'config_info_logos_utiliser_non' => 'Non utilizzare i logo',
88
+    'config_info_logos_utiliser_survol' => 'Utilizzare i logo di roll-over',
89
+    'config_info_logos_utiliser_survol_non' => 'Non utilizzare i logo di roll-over',
90
+    'config_info_redirection' => 'Attivando questa opzione è possibile creare degli articoli virtuali, semplici riferimenti di articoli pubblicati su altri siti o al di fuori di SPIP.',
91
+    'config_redirection' => 'Articoli virtuali',
92
+    'config_titre_base_sup' => 'Dichiarazione di un database supplementare',
93
+    'config_titre_base_sup_choix' => 'Scegliere un database supplementare',
94
+    'connexion_ldap' => 'Connessione:',
95
+    'creer_et_associer_un_auteur' => 'Crea e associa un’autore',
96 96
 
97
-	// D
98
-	'date_mot_heures' => 'ore',
97
+    // D
98
+    'date_mot_heures' => 'ore',
99 99
 
100
-	// E
101
-	'ecran_connexion_couleur_principale' => 'Colore principale',
102
-	'ecran_connexion_image_fond' => 'Immagine di sfondo',
103
-	'ecran_connexion_image_fond_explication' => 'Usa un’immagine (formato JPEG, 1920x1080 pixel)',
104
-	'ecran_connexion_image_revenir_couleur_defaut' => 'Reimposta il colore predefinito',
105
-	'ecran_connexion_titre' => 'Schermata di accesso',
106
-	'ecran_securite' => ' + sicurezza dello schermo @version@',
107
-	'email' => 'email',
108
-	'email_2' => 'email:',
109
-	'en_savoir_plus' => 'Per saperne di più',
110
-	'entree_adresse_annuaire' => 'Indirizzo della rubrica',
111
-	'entree_adresse_email' => 'Il tuo indirizzo email',
112
-	'entree_adresse_email_2' => 'Indirizzo e-mail',
113
-	'entree_base_donnee_1' => 'Indirizzo del database',
114
-	'entree_base_donnee_2' => '(Spesso questo indirizzo coincide con quello dell’intero sito, qualche volta corrisponde a "localhost", altre volte invece non è necessario specificarlo.)',
115
-	'entree_biographie' => 'La tua biografia in breve.',
116
-	'entree_chemin_acces' => '<b>Inserire</b> il percorso d’accesso:',
117
-	'entree_cle_pgp' => 'Chiave PGP',
118
-	'entree_cle_pgp_2' => 'Chiave PGP',
119
-	'entree_contenu_rubrique' => '(Contenuto della rubrica in qualche parola)',
120
-	'entree_identifiants_connexion' => 'Identificativo di connessione...',
121
-	'entree_identifiants_connexion_2' => 'Indentificativo di connessione',
122
-	'entree_informations_connexion_ldap' => 'Inserisci in questo form gli estremi per la connessione alla tua rubrica LDAP.
100
+    // E
101
+    'ecran_connexion_couleur_principale' => 'Colore principale',
102
+    'ecran_connexion_image_fond' => 'Immagine di sfondo',
103
+    'ecran_connexion_image_fond_explication' => 'Usa un’immagine (formato JPEG, 1920x1080 pixel)',
104
+    'ecran_connexion_image_revenir_couleur_defaut' => 'Reimposta il colore predefinito',
105
+    'ecran_connexion_titre' => 'Schermata di accesso',
106
+    'ecran_securite' => ' + sicurezza dello schermo @version@',
107
+    'email' => 'email',
108
+    'email_2' => 'email:',
109
+    'en_savoir_plus' => 'Per saperne di più',
110
+    'entree_adresse_annuaire' => 'Indirizzo della rubrica',
111
+    'entree_adresse_email' => 'Il tuo indirizzo email',
112
+    'entree_adresse_email_2' => 'Indirizzo e-mail',
113
+    'entree_base_donnee_1' => 'Indirizzo del database',
114
+    'entree_base_donnee_2' => '(Spesso questo indirizzo coincide con quello dell’intero sito, qualche volta corrisponde a "localhost", altre volte invece non è necessario specificarlo.)',
115
+    'entree_biographie' => 'La tua biografia in breve.',
116
+    'entree_chemin_acces' => '<b>Inserire</b> il percorso d’accesso:',
117
+    'entree_cle_pgp' => 'Chiave PGP',
118
+    'entree_cle_pgp_2' => 'Chiave PGP',
119
+    'entree_contenu_rubrique' => '(Contenuto della rubrica in qualche parola)',
120
+    'entree_identifiants_connexion' => 'Identificativo di connessione...',
121
+    'entree_identifiants_connexion_2' => 'Indentificativo di connessione',
122
+    'entree_informations_connexion_ldap' => 'Inserisci in questo form gli estremi per la connessione alla tua rubrica LDAP.
123 123
 Se non conosci queste informazioni, richiedile all’amministratore del sistema o della rete.',
124
-	'entree_infos_perso' => 'Chi sei?',
125
-	'entree_infos_perso_2' => 'Chi è l’autore?',
126
-	'entree_interieur_rubrique' => 'All’interno della rubrica:',
127
-	'entree_liens_sites' => '<b>Link ipertestuale</b> (riferimento, sito da visitare...)',
128
-	'entree_login' => 'Login',
129
-	'entree_login_connexion_1' => 'Il login di connessione',
130
-	'entree_login_connexion_2' => '(Corrisponde a volte al login d’accesso via FTP; in alcuni casi non occorre specificare nulla)',
131
-	'entree_mot_passe' => 'Password',
132
-	'entree_mot_passe_1' => 'La password di connessione',
133
-	'entree_mot_passe_2' => '(Corrisponde a volte alla password d’accesso via FTP; in alcuni casi non occorre specificare nulla)',
134
-	'entree_nom_fichier' => 'Inserire il nome del file @texte_compresse@:',
135
-	'entree_nom_pseudo' => 'Nome o pseudonimo',
136
-	'entree_nom_pseudo_1' => '(Nome o pseudonimo)',
137
-	'entree_nom_pseudo_2' => 'Nome o alias',
138
-	'entree_nom_site' => 'Nome del tuo sito',
139
-	'entree_nom_site_2' => 'Nome del sito dell’autore',
140
-	'entree_nouveau_passe' => 'Nuova password',
141
-	'entree_passe_ldap' => 'Password',
142
-	'entree_port_annuaire' => 'Il numero di porta della rubrica',
143
-	'entree_signature' => 'Firma',
144
-	'entree_titre_obligatoire' => '<b>Titolo</b> [Obbligatorio]<br />',
145
-	'entree_url' => 'Indirizzo (URL) del sito',
146
-	'entree_url_2' => 'Indirizzo del sito',
147
-	'erreur_connect_deja_existant' => 'Esista già un server con quel nome',
148
-	'erreur_contenu_suspect' => 'Testo sfuggito',
149
-	'erreur_email_deja_existant' => 'Questo indirizzo email risulta già registrato.',
150
-	'erreur_nom_connect_incorrect' => 'Nome del server non consentito',
151
-	'erreur_plugin_attribut_balise_manquant' => 'Attributo @attribut@ mancante nel tag @balise@.',
152
-	'erreur_plugin_desinstalation_echouee' => 'La disinstallazione del plugin è fallita. In ogni caso potete disattivarlo.',
153
-	'erreur_plugin_fichier_absent' => 'File non presente',
154
-	'erreur_plugin_fichier_def_absent' => 'File di definizioni non presente',
155
-	'erreur_plugin_nom_fonction_interdit' => 'Nome di funzione non possibile',
156
-	'erreur_plugin_nom_manquant' => 'Nome del plugin mancante',
157
-	'erreur_plugin_prefix_manquant' => 'Spazio per il nome del plugin non definito',
158
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; mancante nel file di definizione',
159
-	'erreur_plugin_version_manquant' => 'Versione del plugin mancante',
160
-	'erreur_type_fichier' => 'Tipo di file non corretto',
124
+    'entree_infos_perso' => 'Chi sei?',
125
+    'entree_infos_perso_2' => 'Chi è l’autore?',
126
+    'entree_interieur_rubrique' => 'All’interno della rubrica:',
127
+    'entree_liens_sites' => '<b>Link ipertestuale</b> (riferimento, sito da visitare...)',
128
+    'entree_login' => 'Login',
129
+    'entree_login_connexion_1' => 'Il login di connessione',
130
+    'entree_login_connexion_2' => '(Corrisponde a volte al login d’accesso via FTP; in alcuni casi non occorre specificare nulla)',
131
+    'entree_mot_passe' => 'Password',
132
+    'entree_mot_passe_1' => 'La password di connessione',
133
+    'entree_mot_passe_2' => '(Corrisponde a volte alla password d’accesso via FTP; in alcuni casi non occorre specificare nulla)',
134
+    'entree_nom_fichier' => 'Inserire il nome del file @texte_compresse@:',
135
+    'entree_nom_pseudo' => 'Nome o pseudonimo',
136
+    'entree_nom_pseudo_1' => '(Nome o pseudonimo)',
137
+    'entree_nom_pseudo_2' => 'Nome o alias',
138
+    'entree_nom_site' => 'Nome del tuo sito',
139
+    'entree_nom_site_2' => 'Nome del sito dell’autore',
140
+    'entree_nouveau_passe' => 'Nuova password',
141
+    'entree_passe_ldap' => 'Password',
142
+    'entree_port_annuaire' => 'Il numero di porta della rubrica',
143
+    'entree_signature' => 'Firma',
144
+    'entree_titre_obligatoire' => '<b>Titolo</b> [Obbligatorio]<br />',
145
+    'entree_url' => 'Indirizzo (URL) del sito',
146
+    'entree_url_2' => 'Indirizzo del sito',
147
+    'erreur_connect_deja_existant' => 'Esista già un server con quel nome',
148
+    'erreur_contenu_suspect' => 'Testo sfuggito',
149
+    'erreur_email_deja_existant' => 'Questo indirizzo email risulta già registrato.',
150
+    'erreur_nom_connect_incorrect' => 'Nome del server non consentito',
151
+    'erreur_plugin_attribut_balise_manquant' => 'Attributo @attribut@ mancante nel tag @balise@.',
152
+    'erreur_plugin_desinstalation_echouee' => 'La disinstallazione del plugin è fallita. In ogni caso potete disattivarlo.',
153
+    'erreur_plugin_fichier_absent' => 'File non presente',
154
+    'erreur_plugin_fichier_def_absent' => 'File di definizioni non presente',
155
+    'erreur_plugin_nom_fonction_interdit' => 'Nome di funzione non possibile',
156
+    'erreur_plugin_nom_manquant' => 'Nome del plugin mancante',
157
+    'erreur_plugin_prefix_manquant' => 'Spazio per il nome del plugin non definito',
158
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; mancante nel file di definizione',
159
+    'erreur_plugin_version_manquant' => 'Versione del plugin mancante',
160
+    'erreur_type_fichier' => 'Tipo di file non corretto',
161 161
 
162
-	// H
163
-	'htaccess_a_simuler' => 'Attenzione: la configurazione del tuo HTTP server ignora il file @htaccess@. Per garantire un buon livello di sicurezza devi modificare la configurazione del server per questa impostazione, oppure devi assicurarti che la costante @constantes@ (definibile nel file mes_options.php) sia valorizzata con una perocorso di directory posta al di fuori di @document_root@.',
164
-	'htaccess_inoperant' => 'htaccess non attivo',
162
+    // H
163
+    'htaccess_a_simuler' => 'Attenzione: la configurazione del tuo HTTP server ignora il file @htaccess@. Per garantire un buon livello di sicurezza devi modificare la configurazione del server per questa impostazione, oppure devi assicurarti che la costante @constantes@ (definibile nel file mes_options.php) sia valorizzata con una perocorso di directory posta al di fuori di @document_root@.',
164
+    'htaccess_inoperant' => 'htaccess non attivo',
165 165
 
166
-	// I
167
-	'ical_info1' => 'Questa pagina elenca diversi metodi per rimanere in contatto con le varie attività del sito.',
168
-	'ical_info2' => 'Per ulteriori informazioni su tutte queste tecniche, non esitate a consultare <a href="@spipnet@">la documentazione di SPIP</a>.',
169
-	'ical_info_calendrier' => 'Sono disponibili due calendari. Il primo è una mappa del sito che annuncia tutti gli articoli pubblicati. Il secondo contiene gli annunci editoriali e gli ultimi messaggi privati: è un’area riservata, mediante identificativo personale, che è possibile modificare in qualsiasi momento rinnovando la password personale.',
170
-	'ical_methode_http' => 'Download',
171
-	'ical_methode_webcal' => 'Sincronizzazione (webcal://)',
172
-	'ical_texte_js' => 'Una linea in javascript permette di visualizzare, con molta semplicità e su qualsiasi tipo di sito, gli articoli recenti pubblicati su questo sito.',
173
-	'ical_texte_prive' => 'Questo calendario, ad uso strettamente privato, dà informazioni sull’attività redazionale privata di questo sito (impegni e appuntamenti personali, articoli e brevi proposti...).',
174
-	'ical_texte_public' => 'Questo calendario permette di monitorare l’attività pubblica del sito (articoli e brevi pubblicati).',
175
-	'ical_texte_rss' => 'È possibile mettere in syndication le novità di questo sito con qualsiasi lettore di file in formato XML/RSS (Rich Site Summary). Questo è il medesimo formato che permette a SPIP di leggere le novità pubblicate su altri siti che utilizzano un formato di scambio compatibile.',
176
-	'ical_titre_js' => 'Javascript',
177
-	'ical_titre_mailing' => 'Mailing-list',
178
-	'ical_titre_rss' => 'File di syndication',
179
-	'icone_accueil' => 'Pannello di controllo',
180
-	'icone_activer_cookie' => 'Attiva il cookie di corrispondenza',
181
-	'icone_activite' => 'Attività',
182
-	'icone_admin_plugin' => 'Gestione dei plugin',
183
-	'icone_administration' => 'Manutenzione',
184
-	'icone_afficher_auteurs' => 'Pubblica gli autori',
185
-	'icone_afficher_visiteurs' => 'Pubblica i visitatori',
186
-	'icone_arret_discussion' => 'Non partecipare più a questa discussione',
187
-	'icone_calendrier' => 'Calendario',
188
-	'icone_configuration' => 'Configurazione',
189
-	'icone_creer_auteur' => 'Crea un nuovo autore ed associalo a questo articolo',
190
-	'icone_creer_mot_cle' => 'Crea una nuova parola chiave e collegala a questo articolo',
191
-	'icone_creer_rubrique_2' => 'Crea una nuova rubrica',
192
-	'icone_developpement' => 'Sviluppo',
193
-	'icone_edition' => 'Modifica',
194
-	'icone_ma_langue' => 'La mia lingua',
195
-	'icone_mes_infos' => 'Le mie informazioni',
196
-	'icone_mes_preferences' => 'Le mie preferenze',
197
-	'icone_modifier_article' => 'Modifica l’articolo',
198
-	'icone_modifier_rubrique' => 'Modifica la rubrica',
199
-	'icone_publication' => 'Pubblicazione',
200
-	'icone_relancer_signataire' => 'Rilanciare il firmatario',
201
-	'icone_retour' => 'Indietro',
202
-	'icone_retour_article' => 'Torna all’articolo',
203
-	'icone_squelette' => 'Modelli',
204
-	'icone_suivi_publication' => 'Segui la pubblicazione',
205
-	'icone_supprimer_cookie' => 'Elimina il cookie di corrispondenza',
206
-	'icone_supprimer_rubrique' => 'Elimina la rubrica',
207
-	'icone_supprimer_signature' => 'Cancella l’adesione',
208
-	'icone_valider_signature' => 'Conferma l’adesione',
209
-	'image_administrer_rubrique' => 'Puoi amministrare questa rubrica',
210
-	'impossible_modifier_login_auteur' => 'Impossibile modificare le credenziali d’accesso',
211
-	'impossible_modifier_pass_auteur' => 'Impossibile modificare la password.', # Impossibile modificare la password
212
-	'info_1_article' => '1 articolo',
213
-	'info_1_auteur' => '1 autore',
214
-	'info_1_message' => '1 messaggio',
215
-	'info_1_mot_cle' => '1 parola chiave',
216
-	'info_1_rubrique' => '1 rubrica',
217
-	'info_1_visiteur' => '1 visitatore',
218
-	'info_activer_cookie' => 'Se vuoi puoi attivare un <b>cookie di corrispondenza</b>, che ti permetterà
166
+    // I
167
+    'ical_info1' => 'Questa pagina elenca diversi metodi per rimanere in contatto con le varie attività del sito.',
168
+    'ical_info2' => 'Per ulteriori informazioni su tutte queste tecniche, non esitate a consultare <a href="@spipnet@">la documentazione di SPIP</a>.',
169
+    'ical_info_calendrier' => 'Sono disponibili due calendari. Il primo è una mappa del sito che annuncia tutti gli articoli pubblicati. Il secondo contiene gli annunci editoriali e gli ultimi messaggi privati: è un’area riservata, mediante identificativo personale, che è possibile modificare in qualsiasi momento rinnovando la password personale.',
170
+    'ical_methode_http' => 'Download',
171
+    'ical_methode_webcal' => 'Sincronizzazione (webcal://)',
172
+    'ical_texte_js' => 'Una linea in javascript permette di visualizzare, con molta semplicità e su qualsiasi tipo di sito, gli articoli recenti pubblicati su questo sito.',
173
+    'ical_texte_prive' => 'Questo calendario, ad uso strettamente privato, dà informazioni sull’attività redazionale privata di questo sito (impegni e appuntamenti personali, articoli e brevi proposti...).',
174
+    'ical_texte_public' => 'Questo calendario permette di monitorare l’attività pubblica del sito (articoli e brevi pubblicati).',
175
+    'ical_texte_rss' => 'È possibile mettere in syndication le novità di questo sito con qualsiasi lettore di file in formato XML/RSS (Rich Site Summary). Questo è il medesimo formato che permette a SPIP di leggere le novità pubblicate su altri siti che utilizzano un formato di scambio compatibile.',
176
+    'ical_titre_js' => 'Javascript',
177
+    'ical_titre_mailing' => 'Mailing-list',
178
+    'ical_titre_rss' => 'File di syndication',
179
+    'icone_accueil' => 'Pannello di controllo',
180
+    'icone_activer_cookie' => 'Attiva il cookie di corrispondenza',
181
+    'icone_activite' => 'Attività',
182
+    'icone_admin_plugin' => 'Gestione dei plugin',
183
+    'icone_administration' => 'Manutenzione',
184
+    'icone_afficher_auteurs' => 'Pubblica gli autori',
185
+    'icone_afficher_visiteurs' => 'Pubblica i visitatori',
186
+    'icone_arret_discussion' => 'Non partecipare più a questa discussione',
187
+    'icone_calendrier' => 'Calendario',
188
+    'icone_configuration' => 'Configurazione',
189
+    'icone_creer_auteur' => 'Crea un nuovo autore ed associalo a questo articolo',
190
+    'icone_creer_mot_cle' => 'Crea una nuova parola chiave e collegala a questo articolo',
191
+    'icone_creer_rubrique_2' => 'Crea una nuova rubrica',
192
+    'icone_developpement' => 'Sviluppo',
193
+    'icone_edition' => 'Modifica',
194
+    'icone_ma_langue' => 'La mia lingua',
195
+    'icone_mes_infos' => 'Le mie informazioni',
196
+    'icone_mes_preferences' => 'Le mie preferenze',
197
+    'icone_modifier_article' => 'Modifica l’articolo',
198
+    'icone_modifier_rubrique' => 'Modifica la rubrica',
199
+    'icone_publication' => 'Pubblicazione',
200
+    'icone_relancer_signataire' => 'Rilanciare il firmatario',
201
+    'icone_retour' => 'Indietro',
202
+    'icone_retour_article' => 'Torna all’articolo',
203
+    'icone_squelette' => 'Modelli',
204
+    'icone_suivi_publication' => 'Segui la pubblicazione',
205
+    'icone_supprimer_cookie' => 'Elimina il cookie di corrispondenza',
206
+    'icone_supprimer_rubrique' => 'Elimina la rubrica',
207
+    'icone_supprimer_signature' => 'Cancella l’adesione',
208
+    'icone_valider_signature' => 'Conferma l’adesione',
209
+    'image_administrer_rubrique' => 'Puoi amministrare questa rubrica',
210
+    'impossible_modifier_login_auteur' => 'Impossibile modificare le credenziali d’accesso',
211
+    'impossible_modifier_pass_auteur' => 'Impossibile modificare la password.', # Impossibile modificare la password
212
+    'info_1_article' => '1 articolo',
213
+    'info_1_auteur' => '1 autore',
214
+    'info_1_message' => '1 messaggio',
215
+    'info_1_mot_cle' => '1 parola chiave',
216
+    'info_1_rubrique' => '1 rubrica',
217
+    'info_1_visiteur' => '1 visitatore',
218
+    'info_activer_cookie' => 'Se vuoi puoi attivare un <b>cookie di corrispondenza</b>, che ti permetterà
219 219
 di passare facilmente dal sito pubblico all’interfaccia privata.',
220
-	'info_activer_menu_developpement' => 'Mostra il menù Sviluppo',
221
-	'info_admin_etre_webmestre' => 'Concedimi i privilegi di webmaster',
222
-	'info_admin_je_suis_webmestre' => 'Sono <b>webmaster</b>',
223
-	'info_admin_statuer_webmestre' => 'Dai a questo amministratore i privilegi di webmaster',
224
-	'info_admin_webmestre' => 'Questo amministratore è un <b>webmaster</b>',
225
-	'info_administrateur' => 'Amministratore',
226
-	'info_administrateur_1' => 'Amministratore',
227
-	'info_administrateur_2' => 'del sito (<i>da utilizzare con prudenza</i>)',
228
-	'info_administrateur_site_01' => 'Se sei amministratore del sito,',
229
-	'info_administrateur_site_02' => 'clicca qui',
230
-	'info_administrateurs' => 'Amministratori',
231
-	'info_administrer_rubrique' => 'Puoi amministrare questa rubrica',
232
-	'info_adresse' => 'all’indirizzo:',
233
-	'info_adresse_desinscription' => 'Indirizzo per la cancellazione :',
234
-	'info_adresse_url' => 'Indirizzo (URL) del sito pubblico',
235
-	'info_afficher_par_nb' => 'Mostra',
236
-	'info_aide_en_ligne' => 'Guida in linea SPIP',
237
-	'info_ajout_image' => 'Quando aggiungi delle immagini come documenti allegati ad un articolo,
220
+    'info_activer_menu_developpement' => 'Mostra il menù Sviluppo',
221
+    'info_admin_etre_webmestre' => 'Concedimi i privilegi di webmaster',
222
+    'info_admin_je_suis_webmestre' => 'Sono <b>webmaster</b>',
223
+    'info_admin_statuer_webmestre' => 'Dai a questo amministratore i privilegi di webmaster',
224
+    'info_admin_webmestre' => 'Questo amministratore è un <b>webmaster</b>',
225
+    'info_administrateur' => 'Amministratore',
226
+    'info_administrateur_1' => 'Amministratore',
227
+    'info_administrateur_2' => 'del sito (<i>da utilizzare con prudenza</i>)',
228
+    'info_administrateur_site_01' => 'Se sei amministratore del sito,',
229
+    'info_administrateur_site_02' => 'clicca qui',
230
+    'info_administrateurs' => 'Amministratori',
231
+    'info_administrer_rubrique' => 'Puoi amministrare questa rubrica',
232
+    'info_adresse' => 'all’indirizzo:',
233
+    'info_adresse_desinscription' => 'Indirizzo per la cancellazione :',
234
+    'info_adresse_url' => 'Indirizzo (URL) del sito pubblico',
235
+    'info_afficher_par_nb' => 'Mostra',
236
+    'info_aide_en_ligne' => 'Guida in linea SPIP',
237
+    'info_ajout_image' => 'Quando aggiungi delle immagini come documenti allegati ad un articolo,
238 238
 SPIP può creare delle thumbnail (miniature) delle
239 239
 immagini inserite. Ciò permette ad esempio di creare in automatico una galleria di immagini o un portfolio.',
240
-	'info_ajouter_rubrique' => 'Aggiungi un’altra rubrica da amministrare:',
241
-	'info_annonce_nouveautes' => 'Annuncio delle novità',
242
-	'info_article' => 'articolo',
243
-	'info_article_2' => 'articoli',
244
-	'info_article_a_paraitre' => 'Gli articoli postdatati da pubblicare',
245
-	'info_articles_02' => 'articoli',
246
-	'info_articles_2' => 'Articoli',
247
-	'info_articles_auteur' => 'Articoli di questo autore',
248
-	'info_articles_miens' => 'I miei articoli',
249
-	'info_articles_tous' => 'Tutti gli articoli',
250
-	'info_articles_trouves' => 'Articoli trovati',
251
-	'info_attente_validation' => 'I tuoi articoli in attesa di convalida',
252
-	'info_aucun_article' => 'Nessun articolo',
253
-	'info_aucun_auteur' => 'Nessun autore',
254
-	'info_aucun_message' => 'Nessun messaggio',
255
-	'info_aucun_rubrique' => 'Nessuna rubrica',
256
-	'info_aujourdhui' => 'oggi: ',
257
-	'info_auteur_gere_rubriques' => 'Questo autore gestisce le rubriche seguenti:',
258
-	'info_auteur_gere_toutes_rubriques' => 'Questo autore gestisce <b>tutte le rubriche</b>',
259
-	'info_auteur_gere_toutes_rubriques_2' => 'Io modifico <b>tutte le rubriche</b>',
260
-	'info_auteurs' => 'Gli autori',
261
-	'info_auteurs_par_tri' => 'Autori@partri@',
262
-	'info_auteurs_trouves' => 'Autori trovati',
263
-	'info_authentification_externe' => 'Autenticazione esterna',
264
-	'info_avertissement' => 'Avvertimento',
265
-	'info_barre_outils' => 'con la barra degli strumenti?',
266
-	'info_base_installee' => 'La struttura del vostro database è installata.',
267
-	'info_bio' => 'Biografia',
268
-	'info_cache_desactive' => 'La cache è temporaneamente disattivata',
269
-	'info_chapeau' => 'Introduzione',
270
-	'info_chapeau_2' => 'Introduzione:',
271
-	'info_chemin_acces_1' => 'Opzioni: <b>Percorso d’accesso ai dati nell’elenco</b>',
272
-	'info_chemin_acces_2' => 'È necessario specificare il  percorso per accedere ai dati nell’elenco. Questa informazione è indispensabile al fine di leggere i profili utente in esso contenuti.',
273
-	'info_chemin_acces_annuaire' => 'Opzioni: <b>Percorso d’accesso ai dati nell’elenco</b>',
274
-	'info_choix_base' => 'Terza fase: ',
275
-	'info_classement_1' => '<sup>o</sup> su @liste@',
276
-	'info_classement_2' => '<sup>o</sup> su @liste@',
277
-	'info_code_acces' => 'Non dimenticare i tuoi codici d’accesso!',
278
-	'info_config_suivi' => 'Se questo indirizzo corrisponde a una mailing-list, è possibile indicare qui sotto l’indirizzo al quale i partecipanti del sito possono iscriversi. Questo indirizzo può essere una URL (per esempio la pagina di iscrizione via Web alla lista), oppure un indirizzo email che contiene un Oggetto specifico (per esempio: <tt>@adresse_suivi@?subject=subscribe</tt>):',
279
-	'info_config_suivi_explication' => 'È possibile abbonarsi alla mailing-list di questo sito. Verranno spedite per email le notifiche degli articoli e delle brevi proposte per la pubblicazione.',
280
-	'info_confirmer_passe' => 'Conferma la nuova password:',
281
-	'info_conflit_edition_avis_non_sauvegarde' => 'Attenzione, i campi seguenti sono già stati modificati. Quindi le vostre modifiche su questi campi non sono state registrate.',
282
-	'info_conflit_edition_differences' => 'Differenze:',
283
-	'info_conflit_edition_version_enregistree' => 'La versione registrata:',
284
-	'info_conflit_edition_votre_version' => 'La tua versione:',
285
-	'info_connexion_base' => 'Prova di connessione al database',
286
-	'info_connexion_base_donnee' => 'Connessione al proprio database',
287
-	'info_connexion_ldap_ok' => '<b>La connessione LDAP è riuscita.</b><p> È possibile passare alla fase successiva.</p>',
288
-	'info_connexion_mysql' => 'La connessione a SQL',
289
-	'info_connexion_ok' => 'La connessione è riuscita.',
290
-	'info_contact' => 'Contatti',
291
-	'info_contenu_articles' => 'Contentuto degli articoli',
292
-	'info_contributions' => 'Contributi',
293
-	'info_creation_paragraphe' => 'Per creare dei paragrafi indipendenti, lasciare fra loro delle righe vuote.',
294
-	'info_creation_rubrique' => 'Prima di poter scrivere degli articoli, <br />devi creare almeno una rubrica.<br />',
295
-	'info_creation_tables' => 'Creazione delle tabelle nel database',
296
-	'info_creer_base' => '<b>Creare</b> un nuovo database:',
297
-	'info_dans_rubrique' => 'Nella rubrica:',
298
-	'info_date_publication_anterieure' => 'Data di redazione anteriore:',
299
-	'info_date_referencement' => 'DATA DI INSERIMENTO IN REPERTORIO DI QUESTO SITO:',
300
-	'info_derniere_etape' => 'Finito!',
301
-	'info_descriptif' => 'Descrizione:',
302
-	'info_desinstaller_plugin' => 'elimina i dati e disattiva il plug-in',
303
-	'info_discussion_cours' => 'Discussioni in corso',
304
-	'info_ecrire_article' => 'Prima di poter scrivere degli articoli, devi creare almeno una rubrica.',
305
-	'info_email_envoi' => 'Indirizzo email del mittente (opzionale)',
306
-	'info_email_envoi_txt' => 'Indicare qui l’indirizzo da utilizzare per l’invio degli email (come impostazione predefinita l’indirizzo del destinatario sarà utilizzato come indirizzo del mittente):',
307
-	'info_email_webmestre' => 'Indirizzo email del webmaster',
308
-	'info_envoi_email_automatique' => 'Invio di email automatico',
309
-	'info_envoyer_maintenant' => 'Invia adesso',
310
-	'info_etape_suivante' => 'Passare alla fase successiva',
311
-	'info_etape_suivante_1' => 'Puoi passare alla fase successiva.',
312
-	'info_etape_suivante_2' => 'Puoi passare alla fase successiva.',
313
-	'info_exceptions_proxy' => 'Eccezioni per il proxy',
314
-	'info_exportation_base' => 'esportazione del database verso @archive@',
315
-	'info_facilite_suivi_activite' => 'Al fine di facilitare il monitoraggio
240
+    'info_ajouter_rubrique' => 'Aggiungi un’altra rubrica da amministrare:',
241
+    'info_annonce_nouveautes' => 'Annuncio delle novità',
242
+    'info_article' => 'articolo',
243
+    'info_article_2' => 'articoli',
244
+    'info_article_a_paraitre' => 'Gli articoli postdatati da pubblicare',
245
+    'info_articles_02' => 'articoli',
246
+    'info_articles_2' => 'Articoli',
247
+    'info_articles_auteur' => 'Articoli di questo autore',
248
+    'info_articles_miens' => 'I miei articoli',
249
+    'info_articles_tous' => 'Tutti gli articoli',
250
+    'info_articles_trouves' => 'Articoli trovati',
251
+    'info_attente_validation' => 'I tuoi articoli in attesa di convalida',
252
+    'info_aucun_article' => 'Nessun articolo',
253
+    'info_aucun_auteur' => 'Nessun autore',
254
+    'info_aucun_message' => 'Nessun messaggio',
255
+    'info_aucun_rubrique' => 'Nessuna rubrica',
256
+    'info_aujourdhui' => 'oggi: ',
257
+    'info_auteur_gere_rubriques' => 'Questo autore gestisce le rubriche seguenti:',
258
+    'info_auteur_gere_toutes_rubriques' => 'Questo autore gestisce <b>tutte le rubriche</b>',
259
+    'info_auteur_gere_toutes_rubriques_2' => 'Io modifico <b>tutte le rubriche</b>',
260
+    'info_auteurs' => 'Gli autori',
261
+    'info_auteurs_par_tri' => 'Autori@partri@',
262
+    'info_auteurs_trouves' => 'Autori trovati',
263
+    'info_authentification_externe' => 'Autenticazione esterna',
264
+    'info_avertissement' => 'Avvertimento',
265
+    'info_barre_outils' => 'con la barra degli strumenti?',
266
+    'info_base_installee' => 'La struttura del vostro database è installata.',
267
+    'info_bio' => 'Biografia',
268
+    'info_cache_desactive' => 'La cache è temporaneamente disattivata',
269
+    'info_chapeau' => 'Introduzione',
270
+    'info_chapeau_2' => 'Introduzione:',
271
+    'info_chemin_acces_1' => 'Opzioni: <b>Percorso d’accesso ai dati nell’elenco</b>',
272
+    'info_chemin_acces_2' => 'È necessario specificare il  percorso per accedere ai dati nell’elenco. Questa informazione è indispensabile al fine di leggere i profili utente in esso contenuti.',
273
+    'info_chemin_acces_annuaire' => 'Opzioni: <b>Percorso d’accesso ai dati nell’elenco</b>',
274
+    'info_choix_base' => 'Terza fase: ',
275
+    'info_classement_1' => '<sup>o</sup> su @liste@',
276
+    'info_classement_2' => '<sup>o</sup> su @liste@',
277
+    'info_code_acces' => 'Non dimenticare i tuoi codici d’accesso!',
278
+    'info_config_suivi' => 'Se questo indirizzo corrisponde a una mailing-list, è possibile indicare qui sotto l’indirizzo al quale i partecipanti del sito possono iscriversi. Questo indirizzo può essere una URL (per esempio la pagina di iscrizione via Web alla lista), oppure un indirizzo email che contiene un Oggetto specifico (per esempio: <tt>@adresse_suivi@?subject=subscribe</tt>):',
279
+    'info_config_suivi_explication' => 'È possibile abbonarsi alla mailing-list di questo sito. Verranno spedite per email le notifiche degli articoli e delle brevi proposte per la pubblicazione.',
280
+    'info_confirmer_passe' => 'Conferma la nuova password:',
281
+    'info_conflit_edition_avis_non_sauvegarde' => 'Attenzione, i campi seguenti sono già stati modificati. Quindi le vostre modifiche su questi campi non sono state registrate.',
282
+    'info_conflit_edition_differences' => 'Differenze:',
283
+    'info_conflit_edition_version_enregistree' => 'La versione registrata:',
284
+    'info_conflit_edition_votre_version' => 'La tua versione:',
285
+    'info_connexion_base' => 'Prova di connessione al database',
286
+    'info_connexion_base_donnee' => 'Connessione al proprio database',
287
+    'info_connexion_ldap_ok' => '<b>La connessione LDAP è riuscita.</b><p> È possibile passare alla fase successiva.</p>',
288
+    'info_connexion_mysql' => 'La connessione a SQL',
289
+    'info_connexion_ok' => 'La connessione è riuscita.',
290
+    'info_contact' => 'Contatti',
291
+    'info_contenu_articles' => 'Contentuto degli articoli',
292
+    'info_contributions' => 'Contributi',
293
+    'info_creation_paragraphe' => 'Per creare dei paragrafi indipendenti, lasciare fra loro delle righe vuote.',
294
+    'info_creation_rubrique' => 'Prima di poter scrivere degli articoli, <br />devi creare almeno una rubrica.<br />',
295
+    'info_creation_tables' => 'Creazione delle tabelle nel database',
296
+    'info_creer_base' => '<b>Creare</b> un nuovo database:',
297
+    'info_dans_rubrique' => 'Nella rubrica:',
298
+    'info_date_publication_anterieure' => 'Data di redazione anteriore:',
299
+    'info_date_referencement' => 'DATA DI INSERIMENTO IN REPERTORIO DI QUESTO SITO:',
300
+    'info_derniere_etape' => 'Finito!',
301
+    'info_descriptif' => 'Descrizione:',
302
+    'info_desinstaller_plugin' => 'elimina i dati e disattiva il plug-in',
303
+    'info_discussion_cours' => 'Discussioni in corso',
304
+    'info_ecrire_article' => 'Prima di poter scrivere degli articoli, devi creare almeno una rubrica.',
305
+    'info_email_envoi' => 'Indirizzo email del mittente (opzionale)',
306
+    'info_email_envoi_txt' => 'Indicare qui l’indirizzo da utilizzare per l’invio degli email (come impostazione predefinita l’indirizzo del destinatario sarà utilizzato come indirizzo del mittente):',
307
+    'info_email_webmestre' => 'Indirizzo email del webmaster',
308
+    'info_envoi_email_automatique' => 'Invio di email automatico',
309
+    'info_envoyer_maintenant' => 'Invia adesso',
310
+    'info_etape_suivante' => 'Passare alla fase successiva',
311
+    'info_etape_suivante_1' => 'Puoi passare alla fase successiva.',
312
+    'info_etape_suivante_2' => 'Puoi passare alla fase successiva.',
313
+    'info_exceptions_proxy' => 'Eccezioni per il proxy',
314
+    'info_exportation_base' => 'esportazione del database verso @archive@',
315
+    'info_facilite_suivi_activite' => 'Al fine di facilitare il monitoraggio
316 316
 dell’attività editoriale del sito, SPIP può far pervenire via email,
317 317
 per esempio ad una mailing-list dei redattori, l’annuncio delle domande di
318 318
 pubblicazione e di convalida degli articoli.',
319
-	'info_fichiers_authent' => 'File d’autenticazione ".htpasswd"',
320
-	'info_forums_abo_invites' => 'Il sito comprende dei forum accessibili solo a utenti registrati. Nel sito pubblico è quindi presente una pagina d’iscrizione.',
321
-	'info_gauche_admin_tech' => '<b>Questa pagina è accessibile solo ai responsabili del sito.</b><p> Permette l’accesso alle diverse funzioni
319
+    'info_fichiers_authent' => 'File d’autenticazione ".htpasswd"',
320
+    'info_forums_abo_invites' => 'Il sito comprende dei forum accessibili solo a utenti registrati. Nel sito pubblico è quindi presente una pagina d’iscrizione.',
321
+    'info_gauche_admin_tech' => '<b>Questa pagina è accessibile solo ai responsabili del sito.</b><p> Permette l’accesso alle diverse funzioni
322 322
  di manutenzione tecnica. Alcune di esse richiedono una specifica procedura di identificazione, 
323 323
 eseguibile grazie a un accesso FTP.</p>',
324
-	'info_gauche_admin_vider' => '<b>Questa pagina è accessibile solo ai responsabili del sito.</b><p> Permette l’accesso alle diverse funzioni di manutenzione tecnica.
324
+    'info_gauche_admin_vider' => '<b>Questa pagina è accessibile solo ai responsabili del sito.</b><p> Permette l’accesso alle diverse funzioni di manutenzione tecnica.
325 325
  Alcune di esse richiedono una specifica procedura di identificazione, eseguibile grazie ad un accesso FTP.</p>',
326
-	'info_gauche_auteurs' => 'Elenco di tutti gli autori del sito.
326
+    'info_gauche_auteurs' => 'Elenco di tutti gli autori del sito.
327 327
 Il loro status è indicato dal colore dell’icona (redattore = giallo; amministratore = verde).',
328
-	'info_gauche_auteurs_exterieurs' => 'Gli autori esterni, senza accesso al sito, sono indicati da un’icona blu;
328
+    'info_gauche_auteurs_exterieurs' => 'Gli autori esterni, senza accesso al sito, sono indicati da un’icona blu;
329 329
 gli autori eliminati da un’icona grigia.',
330
-	'info_gauche_messagerie' => 'Il sistema di messaggistica permette di scambiare dei messaggi tra redattori, di conservare dei memo (promemoria ad uso personale) o di pubblicare degli annunci nel pannello di controllo dell’area riservata (se sei amministratore).',
331
-	'info_gauche_statistiques_referers' => 'Questa pagina presenta un elenco dei siti che contengono link verso il tuo (<i>referrer</i>). Questo elenco è valido però solo per oggi essendo azzerato ogni 24 ore.',
332
-	'info_gauche_visiteurs_enregistres' => 'Trovi qui i visitatori registrati allo spazio
330
+    'info_gauche_messagerie' => 'Il sistema di messaggistica permette di scambiare dei messaggi tra redattori, di conservare dei memo (promemoria ad uso personale) o di pubblicare degli annunci nel pannello di controllo dell’area riservata (se sei amministratore).',
331
+    'info_gauche_statistiques_referers' => 'Questa pagina presenta un elenco dei siti che contengono link verso il tuo (<i>referrer</i>). Questo elenco è valido però solo per oggi essendo azzerato ogni 24 ore.',
332
+    'info_gauche_visiteurs_enregistres' => 'Trovi qui i visitatori registrati allo spazio
333 333
 pubblico del sito (forum su abbonamento).',
334
-	'info_generation_miniatures_images' => 'Generazione di thumbnail di immagini',
335
-	'info_gerer_trad_objets' => '@objets@ : gestire i collegamenti alle traduzioni',
336
-	'info_hebergeur_desactiver_envoi_email' => 'Alcuni hoster disattivano  l’invio automatico di email
334
+    'info_generation_miniatures_images' => 'Generazione di thumbnail di immagini',
335
+    'info_gerer_trad_objets' => '@objets@ : gestire i collegamenti alle traduzioni',
336
+    'info_hebergeur_desactiver_envoi_email' => 'Alcuni hoster disattivano  l’invio automatico di email
337 337
 dai loro server. In questo caso, le funzionalità di SPIP di seguito riportate non funzioneranno.',
338
-	'info_hier' => 'ieri:',
339
-	'info_identification_publique' => 'La tua identità pubblica...',
340
-	'info_image_process' => 'Seleziona il metodo migliore per la creazione delle anteprime cliccando sull’immagine corrispondente.',
341
-	'info_image_process2' => 'Se non appare alcuna immagine, significa che la configurazione del server non permette l’uso di alcune funzioni grafiche. Se si desidera utilizzarle, rivolgersi al responsabile tecnico chiedendo di installare le estensioni «GD» o «Imagick».',
342
-	'info_images_auto' => 'Immagini elaborate automaticamente',
343
-	'info_informations_personnelles' => 'Informazioni personali',
344
-	'info_inscription' => 'Iscritto il',
345
-	'info_inscription_automatique' => 'Iscrizione automatica di nuovi redattori',
346
-	'info_jeu_caractere' => 'Set di caratteri del sito',
347
-	'info_jours' => 'giorni',
348
-	'info_laisser_champs_vides' => 'lasciare questi campi vuoti)',
349
-	'info_langues' => 'Lingua del sito',
350
-	'info_ldap_ok' => 'L’autenticazione LDAP è installata.',
351
-	'info_lien_hypertexte' => 'Link ipertestuale:',
352
-	'info_liste_nouveautes_envoyee' => 'La lista delle novità è stata inviata',
353
-	'info_liste_redacteurs_connectes' => 'Elenco dei redattori collegati',
354
-	'info_login_existant' => 'Questo login esiste già.',
355
-	'info_login_trop_court' => 'Login troppo corto.',
356
-	'info_login_trop_court_car_pluriel' => 'La login deve contenere almeno @nb@ caratteri.',
357
-	'info_logos' => 'I logo',
358
-	'info_maximum' => 'massimo:',
359
-	'info_meme_rubrique' => 'Nella stessa rubrica',
360
-	'info_message_en_redaction' => 'I tuoi messaggi in corso di redazione',
361
-	'info_message_technique' => 'Messaggio tecnico:',
362
-	'info_messagerie_interne' => 'Sistema di messaggistica interna',
363
-	'info_mise_a_niveau_base' => 'aggiornamento del database SQL',
364
-	'info_mise_a_niveau_base_2' => '{{Attenzione!}} È stata installata una versione
338
+    'info_hier' => 'ieri:',
339
+    'info_identification_publique' => 'La tua identità pubblica...',
340
+    'info_image_process' => 'Seleziona il metodo migliore per la creazione delle anteprime cliccando sull’immagine corrispondente.',
341
+    'info_image_process2' => 'Se non appare alcuna immagine, significa che la configurazione del server non permette l’uso di alcune funzioni grafiche. Se si desidera utilizzarle, rivolgersi al responsabile tecnico chiedendo di installare le estensioni «GD» o «Imagick».',
342
+    'info_images_auto' => 'Immagini elaborate automaticamente',
343
+    'info_informations_personnelles' => 'Informazioni personali',
344
+    'info_inscription' => 'Iscritto il',
345
+    'info_inscription_automatique' => 'Iscrizione automatica di nuovi redattori',
346
+    'info_jeu_caractere' => 'Set di caratteri del sito',
347
+    'info_jours' => 'giorni',
348
+    'info_laisser_champs_vides' => 'lasciare questi campi vuoti)',
349
+    'info_langues' => 'Lingua del sito',
350
+    'info_ldap_ok' => 'L’autenticazione LDAP è installata.',
351
+    'info_lien_hypertexte' => 'Link ipertestuale:',
352
+    'info_liste_nouveautes_envoyee' => 'La lista delle novità è stata inviata',
353
+    'info_liste_redacteurs_connectes' => 'Elenco dei redattori collegati',
354
+    'info_login_existant' => 'Questo login esiste già.',
355
+    'info_login_trop_court' => 'Login troppo corto.',
356
+    'info_login_trop_court_car_pluriel' => 'La login deve contenere almeno @nb@ caratteri.',
357
+    'info_logos' => 'I logo',
358
+    'info_maximum' => 'massimo:',
359
+    'info_meme_rubrique' => 'Nella stessa rubrica',
360
+    'info_message_en_redaction' => 'I tuoi messaggi in corso di redazione',
361
+    'info_message_technique' => 'Messaggio tecnico:',
362
+    'info_messagerie_interne' => 'Sistema di messaggistica interna',
363
+    'info_mise_a_niveau_base' => 'aggiornamento del database SQL',
364
+    'info_mise_a_niveau_base_2' => '{{Attenzione!}} È stata installata una versione
365 365
 dei file di SPIP {precedente} rispetto a quella che era in uso per questo sito:
366 366
 le informazioni contenute nel database sono probabilmente andate perse.<br />{{Reinstallare i file di SPIP.}}',
367
-	'info_modification_enregistree' => 'Le modifiche sono state salvate',
368
-	'info_modifier_auteur' => 'Modifica l’autore:',
369
-	'info_modifier_rubrique' => 'Modifica la rubrica:',
370
-	'info_modifier_titre' => 'Modifica: @titre@',
371
-	'info_mon_site_spip' => 'Il mio sito SPIP',
372
-	'info_moyenne' => 'media: ',
373
-	'info_multi_cet_article' => 'Lingua di questo articolo:',
374
-	'info_multi_langues_choisies' => 'Selezionare di seguito le lingue disponibili per i redattori del sito.
367
+    'info_modification_enregistree' => 'Le modifiche sono state salvate',
368
+    'info_modifier_auteur' => 'Modifica l’autore:',
369
+    'info_modifier_rubrique' => 'Modifica la rubrica:',
370
+    'info_modifier_titre' => 'Modifica: @titre@',
371
+    'info_mon_site_spip' => 'Il mio sito SPIP',
372
+    'info_moyenne' => 'media: ',
373
+    'info_multi_cet_article' => 'Lingua di questo articolo:',
374
+    'info_multi_langues_choisies' => 'Selezionare di seguito le lingue disponibili per i redattori del sito.
375 375
   Le lingue già utilizzate nel sito (visualizzate per prime) non possono essere disattivate.',
376
-	'info_multi_objets' => '@objets@ : attiva il menù delle lingue',
377
-	'info_multi_secteurs' => '... solo per le rubriche collocate nella {root} del sito?',
378
-	'info_nb_articles' => '@nb@ articoli',
379
-	'info_nb_auteurs' => '@nb@ autori',
380
-	'info_nb_messages' => '@nb@ messaggi',
381
-	'info_nb_mots_cles' => '@nb@ parole chiave',
382
-	'info_nb_rubriques' => '@nb@ rubriche',
383
-	'info_nb_visiteurs' => '@nb@ visitatori',
384
-	'info_nom' => 'Nome',
385
-	'info_nom_destinataire' => 'Nome del destinatario',
386
-	'info_nom_pas_conforme' => 'I tag html non sono consentiti',
387
-	'info_nom_site' => 'Nome del tuo sito',
388
-	'info_nombre_articles' => '@nb_articles@ articoli,',
389
-	'info_nombre_rubriques' => '@nb_rubriques@ rubriche,',
390
-	'info_nombre_sites' => '@nb_sites@ siti, ',
391
-	'info_non_deplacer' => 'Non spostare...',
392
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP può inviare regolarmente annunci sulle ultime novità del sito
376
+    'info_multi_objets' => '@objets@ : attiva il menù delle lingue',
377
+    'info_multi_secteurs' => '... solo per le rubriche collocate nella {root} del sito?',
378
+    'info_nb_articles' => '@nb@ articoli',
379
+    'info_nb_auteurs' => '@nb@ autori',
380
+    'info_nb_messages' => '@nb@ messaggi',
381
+    'info_nb_mots_cles' => '@nb@ parole chiave',
382
+    'info_nb_rubriques' => '@nb@ rubriche',
383
+    'info_nb_visiteurs' => '@nb@ visitatori',
384
+    'info_nom' => 'Nome',
385
+    'info_nom_destinataire' => 'Nome del destinatario',
386
+    'info_nom_pas_conforme' => 'I tag html non sono consentiti',
387
+    'info_nom_site' => 'Nome del tuo sito',
388
+    'info_nombre_articles' => '@nb_articles@ articoli,',
389
+    'info_nombre_rubriques' => '@nb_rubriques@ rubriche,',
390
+    'info_nombre_sites' => '@nb_sites@ siti, ',
391
+    'info_non_deplacer' => 'Non spostare...',
392
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP può inviare regolarmente annunci sulle ultime novità del sito
393 393
 (articoli e brevi recentemente pubblicati).',
394
-	'info_non_envoi_liste_nouveautes' => 'Non inviare l’elenco delle novità',
395
-	'info_non_modifiable' => 'non può essere modificato',
396
-	'info_non_suppression_mot_cle' => 'non voglio cancellare questa parola chiave.',
397
-	'info_notes' => 'Note',
398
-	'info_nouvel_article' => 'Nuovo articolo',
399
-	'info_nouvelle_traduction' => 'Nuova traduzione:',
400
-	'info_numero_article' => 'ARTICOLO NUMERO:',
401
-	'info_obligatoire_02' => '(Obbligatorio)',
402
-	'info_option_accepter_visiteurs' => 'Accetta l’iscrizione di utenti del sito pubblico',
403
-	'info_option_ne_pas_accepter_visiteurs' => 'Rifiuta l’iscrizione di utenti',
404
-	'info_options_avancees' => 'OPZIONE AVANZATA',
405
-	'info_ou' => 'o... ',
406
-	'info_page_interdite' => 'Pagina riservata',
407
-	'info_par_nom' => 'per nome',
408
-	'info_par_nombre_article' => 'per numero di articoli',
409
-	'info_par_statut' => 'per status',
410
-	'info_par_tri' => '’(per @tri@)’',
411
-	'info_passe_trop_court' => 'Password troppo corta.',
412
-	'info_passe_trop_court_car_pluriel' => 'La password deve contenere almeno @nb@ caratteri.',
413
-	'info_passes_identiques' => 'Le due password non sono uguali.',
414
-	'info_plus_cinq_car' => 'più di 5 caratteri',
415
-	'info_plus_cinq_car_2' => '(Più di 5 caratteri)',
416
-	'info_plus_trois_car' => '(Più di 3 caratteri)',
417
-	'info_popularite' => 'popolarità: @popularite@; visite: @visites@',
418
-	'info_post_scriptum' => 'Post Scriptum',
419
-	'info_post_scriptum_2' => 'Post Scriptum:',
420
-	'info_pour' => 'per',
421
-	'info_preview_texte' => 'È possibile visualizzare un’anteprima del sito comprendente anche gli articoli e le brevi "proposti" per la pubblicazione. Questa funzionalità può essere disattivata, consentita solo agli amministratori o a tutti i redattori.',
422
-	'info_procedez_par_etape' => 'procedere passo dopo passo',
423
-	'info_procedure_maj_version' => 'è necessario avviare la procedura di aggiornamento per adattare
394
+    'info_non_envoi_liste_nouveautes' => 'Non inviare l’elenco delle novità',
395
+    'info_non_modifiable' => 'non può essere modificato',
396
+    'info_non_suppression_mot_cle' => 'non voglio cancellare questa parola chiave.',
397
+    'info_notes' => 'Note',
398
+    'info_nouvel_article' => 'Nuovo articolo',
399
+    'info_nouvelle_traduction' => 'Nuova traduzione:',
400
+    'info_numero_article' => 'ARTICOLO NUMERO:',
401
+    'info_obligatoire_02' => '(Obbligatorio)',
402
+    'info_option_accepter_visiteurs' => 'Accetta l’iscrizione di utenti del sito pubblico',
403
+    'info_option_ne_pas_accepter_visiteurs' => 'Rifiuta l’iscrizione di utenti',
404
+    'info_options_avancees' => 'OPZIONE AVANZATA',
405
+    'info_ou' => 'o... ',
406
+    'info_page_interdite' => 'Pagina riservata',
407
+    'info_par_nom' => 'per nome',
408
+    'info_par_nombre_article' => 'per numero di articoli',
409
+    'info_par_statut' => 'per status',
410
+    'info_par_tri' => '’(per @tri@)’',
411
+    'info_passe_trop_court' => 'Password troppo corta.',
412
+    'info_passe_trop_court_car_pluriel' => 'La password deve contenere almeno @nb@ caratteri.',
413
+    'info_passes_identiques' => 'Le due password non sono uguali.',
414
+    'info_plus_cinq_car' => 'più di 5 caratteri',
415
+    'info_plus_cinq_car_2' => '(Più di 5 caratteri)',
416
+    'info_plus_trois_car' => '(Più di 3 caratteri)',
417
+    'info_popularite' => 'popolarità: @popularite@; visite: @visites@',
418
+    'info_post_scriptum' => 'Post Scriptum',
419
+    'info_post_scriptum_2' => 'Post Scriptum:',
420
+    'info_pour' => 'per',
421
+    'info_preview_texte' => 'È possibile visualizzare un’anteprima del sito comprendente anche gli articoli e le brevi "proposti" per la pubblicazione. Questa funzionalità può essere disattivata, consentita solo agli amministratori o a tutti i redattori.',
422
+    'info_procedez_par_etape' => 'procedere passo dopo passo',
423
+    'info_procedure_maj_version' => 'è necessario avviare la procedura di aggiornamento per adattare
424 424
 il database alla nuova versione di SPIP.',
425
-	'info_proxy_ok' => 'Test del proxy riuscito.',
426
-	'info_ps' => 'P.S.',
427
-	'info_publier' => 'pubblicare',
428
-	'info_publies' => 'I tuoi articoli pubblicati',
429
-	'info_question_accepter_visiteurs' => 'I modelli di pagina del sito prevedono la registrazione di utenti senza accesso all’area riservata. Attivare la seguente funzionalità:',
430
-	'info_question_inscription_nouveaux_redacteurs' => 'Vuoi accettare le iscrizioni di nuovi redattori direttamente dal sito pubblico? 
425
+    'info_proxy_ok' => 'Test del proxy riuscito.',
426
+    'info_ps' => 'P.S.',
427
+    'info_publier' => 'pubblicare',
428
+    'info_publies' => 'I tuoi articoli pubblicati',
429
+    'info_question_accepter_visiteurs' => 'I modelli di pagina del sito prevedono la registrazione di utenti senza accesso all’area riservata. Attivare la seguente funzionalità:',
430
+    'info_question_inscription_nouveaux_redacteurs' => 'Vuoi accettare le iscrizioni di nuovi redattori direttamente dal sito pubblico? 
431 431
 In caso affermativo, i visitatori potranno iscriversi grazie ad un modulo automatizzato e accedere all’area riservata per proporre i propri articoli. 
432 432
 <div class="notice">Durante il processo d’iscrizione, gli utenti riceveranno un email che fornisce loro i codici d’accesso all’area privata. Alcuni servizi di hosting disattivano l’invio di email dai propri server: in questo caso l’iscrizione automatica non può essere attivata.</div>',
433
-	'info_qui_edite' => '@nom_auteur_modif@ ha lavorato su questo contenuto @date_diff@ minuti fa',
434
-	'info_racine_site' => 'Root del sito',
435
-	'info_recharger_page' => 'Aggiorna questa pagina fra qualche istante.',
436
-	'info_recherche_auteur_zero' => 'Nessun risultato per "@cherche_auteur@".',
437
-	'info_recommencer' => 'Ricomincia.',
438
-	'info_redacteur_1' => 'Redattori',
439
-	'info_redacteur_2' => 'avendo accesso allo spazio privato (<i>raccommandato</i>)',
440
-	'info_redacteurs' => 'Redattori',
441
-	'info_redaction_en_cours' => 'IN CORSO DI REDAZIONE',
442
-	'info_redirection' => 'Reindirizzamento',
443
-	'info_redirection_activee' => 'Il reindirizzamento è attivato.',
444
-	'info_redirection_boucle' => 'Stai cercando di sovrascrivere l’articolo.',
445
-	'info_redirection_desactivee' => 'Il reindirizzamento è stato cancellato.',
446
-	'info_refuses' => 'I tuoi articoli rifiutati',
447
-	'info_reglage_ldap' => 'Opzioni: <b>Parametri per l’importazione LDAP</b>',
448
-	'info_renvoi_article' => '<b>Reindirizzamento.</b> Quest’articolo rimanda alla pagina:',
449
-	'info_reserve_admin' => 'Solo gli amministratori possono modificare quest’indirizzo.',
450
-	'info_restreindre_rubrique' => 'Limita la facoltà di gestione alla rubrica:',
451
-	'info_resultat_recherche' => 'Risultati della ricerca:',
452
-	'info_rubriques' => 'Rubriche',
453
-	'info_rubriques_02' => 'rubriche',
454
-	'info_rubriques_trouvees' => 'Rubriche trovate',
455
-	'info_sans_titre' => 'Senza titolo',
456
-	'info_selection_chemin_acces' => '<b>Seleziona</b> qui sotto il percorso d’accesso nell’elenco:',
457
-	'info_signatures' => 'firme',
458
-	'info_site' => 'Sito',
459
-	'info_site_2' => 'sito: ',
460
-	'info_site_min' => 'sito',
461
-	'info_site_reference_2' => 'Sito repertoriato',
462
-	'info_site_web' => 'Sito Web:',
463
-	'info_sites' => 'siti',
464
-	'info_sites_lies_mot' => 'I siti in repertorio legati a questa parola chiave',
465
-	'info_sites_proxy' => 'Utilizza un proxy',
466
-	'info_sites_trouves' => 'Siti trovati',
467
-	'info_sous_titre' => 'Sottotitolo:',
468
-	'info_statut_administrateur' => 'Amministratore',
469
-	'info_statut_auteur' => 'Status di questo autore:',
470
-	'info_statut_auteur_2' => 'Io sono',
471
-	'info_statut_auteur_a_confirmer' => 'Iscrizione da confermare',
472
-	'info_statut_auteur_autre' => 'Altro stato:',
473
-	'info_statut_redacteur' => 'Redattore',
474
-	'info_statut_utilisateurs_1' => 'Status predefinito degli utenti importati',
475
-	'info_statut_utilisateurs_2' => 'Scegli lo status da attribuire alle personne presenti nell’elenco LDAP quando si collegano per la prima volta. Potrai poi modificare questa impostazione per ogni singolo autore.',
476
-	'info_suivi_activite' => 'Monitoraggio dell’attività editoriale',
477
-	'info_surtitre' => 'Occhiello:',
478
-	'info_syndication_integrale_1' => 'Il tuo sito propone dei file di  syndication (vedi « <a href="@url@">@titre@</a> »).',
479
-	'info_syndication_integrale_2' => 'Si desidera trasmettere gli articoli in versione integrale oppure in versione riassunta di un centinaio di caratteri?',
480
-	'info_table_prefix' => 'È possibile modificare il prefisso del nome delle tabelle del database (cosa indispensabile se si desidera installare più siti usando il medesimo database). Questo prefisso si deve scrivere usando esclusivamente lettere minuscole, prive di accenti e senza alcuno spazio.',
481
-	'info_taille_maximale_images' => 'SPIP testerà la dimensione massima delle immagini che può manipolare (in milioni di pixel).<br /> Le immagini di dimensione maggiore non saranno ridotte.',
482
-	'info_taille_maximale_vignette' => 'Dimensione massima delle immagini create dal sistema:',
483
-	'info_terminer_installation' => 'Puoi ora terminare la procedura d’installazione standard.',
484
-	'info_texte' => 'Testo',
485
-	'info_texte_explicatif' => 'Testo esplicativo',
486
-	'info_texte_long' => '(il testo è lungo: è quindi visualizzato in più sezioni che verranno riunificate dopo la convalida)',
487
-	'info_texte_message' => 'Testo del tuo messaggio:',
488
-	'info_texte_message_02' => 'Testo del messaggio',
489
-	'info_titre' => 'Titolo:',
490
-	'info_total' => 'totale: ',
491
-	'info_tous_articles_en_redaction' => 'Tutti gli articoli in corso di redazione',
492
-	'info_tous_articles_presents' => 'Tutti gli articoli pubblicati in questa rubrica',
493
-	'info_tous_articles_refuses' => 'Tutti gli articoli rifiutati',
494
-	'info_tous_les' => 'tutti i:',
495
-	'info_tout_site' => 'Tutto il sito',
496
-	'info_tout_site2' => 'L’articolo non è stato tradotto in questa lingua.',
497
-	'info_tout_site3' => 'L’articolo è stato tradotto in questa lingua, ma sono state effettuate alcune modifiche all’articolo di riferimento. La traduzione deve quindi essere aggiornata.',
498
-	'info_tout_site4' => 'L’articolo è stato tradotto in questa lingua e la traduzione è aggiornata.',
499
-	'info_tout_site5' => 'Articolo originale.',
500
-	'info_tout_site6' => '<b>Attenzione:</b> solo gli articoli originali vengono visualizzati.
433
+    'info_qui_edite' => '@nom_auteur_modif@ ha lavorato su questo contenuto @date_diff@ minuti fa',
434
+    'info_racine_site' => 'Root del sito',
435
+    'info_recharger_page' => 'Aggiorna questa pagina fra qualche istante.',
436
+    'info_recherche_auteur_zero' => 'Nessun risultato per "@cherche_auteur@".',
437
+    'info_recommencer' => 'Ricomincia.',
438
+    'info_redacteur_1' => 'Redattori',
439
+    'info_redacteur_2' => 'avendo accesso allo spazio privato (<i>raccommandato</i>)',
440
+    'info_redacteurs' => 'Redattori',
441
+    'info_redaction_en_cours' => 'IN CORSO DI REDAZIONE',
442
+    'info_redirection' => 'Reindirizzamento',
443
+    'info_redirection_activee' => 'Il reindirizzamento è attivato.',
444
+    'info_redirection_boucle' => 'Stai cercando di sovrascrivere l’articolo.',
445
+    'info_redirection_desactivee' => 'Il reindirizzamento è stato cancellato.',
446
+    'info_refuses' => 'I tuoi articoli rifiutati',
447
+    'info_reglage_ldap' => 'Opzioni: <b>Parametri per l’importazione LDAP</b>',
448
+    'info_renvoi_article' => '<b>Reindirizzamento.</b> Quest’articolo rimanda alla pagina:',
449
+    'info_reserve_admin' => 'Solo gli amministratori possono modificare quest’indirizzo.',
450
+    'info_restreindre_rubrique' => 'Limita la facoltà di gestione alla rubrica:',
451
+    'info_resultat_recherche' => 'Risultati della ricerca:',
452
+    'info_rubriques' => 'Rubriche',
453
+    'info_rubriques_02' => 'rubriche',
454
+    'info_rubriques_trouvees' => 'Rubriche trovate',
455
+    'info_sans_titre' => 'Senza titolo',
456
+    'info_selection_chemin_acces' => '<b>Seleziona</b> qui sotto il percorso d’accesso nell’elenco:',
457
+    'info_signatures' => 'firme',
458
+    'info_site' => 'Sito',
459
+    'info_site_2' => 'sito: ',
460
+    'info_site_min' => 'sito',
461
+    'info_site_reference_2' => 'Sito repertoriato',
462
+    'info_site_web' => 'Sito Web:',
463
+    'info_sites' => 'siti',
464
+    'info_sites_lies_mot' => 'I siti in repertorio legati a questa parola chiave',
465
+    'info_sites_proxy' => 'Utilizza un proxy',
466
+    'info_sites_trouves' => 'Siti trovati',
467
+    'info_sous_titre' => 'Sottotitolo:',
468
+    'info_statut_administrateur' => 'Amministratore',
469
+    'info_statut_auteur' => 'Status di questo autore:',
470
+    'info_statut_auteur_2' => 'Io sono',
471
+    'info_statut_auteur_a_confirmer' => 'Iscrizione da confermare',
472
+    'info_statut_auteur_autre' => 'Altro stato:',
473
+    'info_statut_redacteur' => 'Redattore',
474
+    'info_statut_utilisateurs_1' => 'Status predefinito degli utenti importati',
475
+    'info_statut_utilisateurs_2' => 'Scegli lo status da attribuire alle personne presenti nell’elenco LDAP quando si collegano per la prima volta. Potrai poi modificare questa impostazione per ogni singolo autore.',
476
+    'info_suivi_activite' => 'Monitoraggio dell’attività editoriale',
477
+    'info_surtitre' => 'Occhiello:',
478
+    'info_syndication_integrale_1' => 'Il tuo sito propone dei file di  syndication (vedi « <a href="@url@">@titre@</a> »).',
479
+    'info_syndication_integrale_2' => 'Si desidera trasmettere gli articoli in versione integrale oppure in versione riassunta di un centinaio di caratteri?',
480
+    'info_table_prefix' => 'È possibile modificare il prefisso del nome delle tabelle del database (cosa indispensabile se si desidera installare più siti usando il medesimo database). Questo prefisso si deve scrivere usando esclusivamente lettere minuscole, prive di accenti e senza alcuno spazio.',
481
+    'info_taille_maximale_images' => 'SPIP testerà la dimensione massima delle immagini che può manipolare (in milioni di pixel).<br /> Le immagini di dimensione maggiore non saranno ridotte.',
482
+    'info_taille_maximale_vignette' => 'Dimensione massima delle immagini create dal sistema:',
483
+    'info_terminer_installation' => 'Puoi ora terminare la procedura d’installazione standard.',
484
+    'info_texte' => 'Testo',
485
+    'info_texte_explicatif' => 'Testo esplicativo',
486
+    'info_texte_long' => '(il testo è lungo: è quindi visualizzato in più sezioni che verranno riunificate dopo la convalida)',
487
+    'info_texte_message' => 'Testo del tuo messaggio:',
488
+    'info_texte_message_02' => 'Testo del messaggio',
489
+    'info_titre' => 'Titolo:',
490
+    'info_total' => 'totale: ',
491
+    'info_tous_articles_en_redaction' => 'Tutti gli articoli in corso di redazione',
492
+    'info_tous_articles_presents' => 'Tutti gli articoli pubblicati in questa rubrica',
493
+    'info_tous_articles_refuses' => 'Tutti gli articoli rifiutati',
494
+    'info_tous_les' => 'tutti i:',
495
+    'info_tout_site' => 'Tutto il sito',
496
+    'info_tout_site2' => 'L’articolo non è stato tradotto in questa lingua.',
497
+    'info_tout_site3' => 'L’articolo è stato tradotto in questa lingua, ma sono state effettuate alcune modifiche all’articolo di riferimento. La traduzione deve quindi essere aggiornata.',
498
+    'info_tout_site4' => 'L’articolo è stato tradotto in questa lingua e la traduzione è aggiornata.',
499
+    'info_tout_site5' => 'Articolo originale.',
500
+    'info_tout_site6' => '<b>Attenzione:</b> solo gli articoli originali vengono visualizzati.
501 501
 Le traduzioni sono associate all’originale,
502 502
  in un colore che indica il loro stato:',
503
-	'info_traductions' => 'Traduzioni',
504
-	'info_travail_colaboratif' => 'Lavoro di collaborazione sugli articoli',
505
-	'info_un_article' => 'un articolo, ',
506
-	'info_un_site' => 'un sito, ',
507
-	'info_une_rubrique' => 'una rubrica, ',
508
-	'info_une_rubrique_02' => '1 rubrica',
509
-	'info_url' => 'URL:',
510
-	'info_url_proxy' => 'URL del proxy',
511
-	'info_url_proxy_pas_conforme' => 'L’URL del proxy non è valido.',
512
-	'info_url_site_pas_conforme' => 'l’URL del sito non è valido.',
513
-	'info_url_test_proxy' => 'URL di test',
514
-	'info_urlref' => 'Link ipertestuale:',
515
-	'info_utilisation_spip' => 'Puoi ora cominciare ad utilizzare il sistema di pubblicazione assistita...',
516
-	'info_visites_par_mois' => 'Visualizzazione per mese:',
517
-	'info_visiteur_1' => 'Visitatori',
518
-	'info_visiteur_2' => 'del sito pubblico',
519
-	'info_visiteurs' => 'Visitatori',
520
-	'info_visiteurs_02' => 'Visitatori del sito pubblico',
521
-	'info_webmestre_forces' => 'I webmaster sono attualmente definiti in <tt>@file_options@</tt>.',
522
-	'install_adresse_base_hebergeur' => 'Indirizzo del database attribuito dal provider',
523
-	'install_connect_ok' => 'Il nuovo database è stato definito sul server @connect@.',
524
-	'install_echec_annonce' => 'L’installazione potrebbe fallire oppure causare problemi di funzionalità al sito...',
525
-	'install_extension_mbstring' => 'SPIP non funziona con:',
526
-	'install_extension_php_obligatoire' => 'SPIP esige l’estensione php:',
527
-	'install_login_base_hebergeur' => 'Login di connessione attribuito dal provider',
528
-	'install_nom_base_hebergeur' => 'Nome del database attribuito dal provider:',
529
-	'install_pas_table' => 'Database attualmente senza tabelle',
530
-	'install_pass_base_hebergeur' => 'Password di connessione attribuito dal provider',
531
-	'install_php_version' => 'PHP versione @version@ insufficiente (minimo = @minimum@)',
532
-	'install_select_langue' => 'Seleziona una lingua e poi clicca sul bottone « Avanti » per lanciare la procedura di installazione.',
533
-	'install_select_type_db' => 'Indicare il tipo di database:',
534
-	'install_select_type_mysql' => 'MySQL',
535
-	'install_select_type_pg' => 'PostgreSQL',
536
-	'install_select_type_sqlite2' => 'SQLite 2',
537
-	'install_select_type_sqlite3' => 'SQLite 3',
538
-	'install_serveur_hebergeur' => 'Server del database attribuito dall’hoster',
539
-	'install_table_prefix_hebergeur' => 'Prefisso della tabella attribuito dal provider:',
540
-	'install_tables_base' => 'Tabelle del database',
541
-	'install_types_db_connus' => 'SPIP può utilizzare <b>MySQL</b> (il più diffuso) e <b>SQLite</b>.',
542
-	'install_types_db_connus_avertissement' => 'Il supporto a <b>PostgreSQL</b> è proposto a titolo sperimentale.',
543
-	'instituer_erreur_statut_a_change' => 'Lo status è già stato modificato',
544
-	'instituer_erreur_statut_non_autorise' => 'Non puoi selezionare questo stato',
545
-	'intem_redacteur' => 'redattore',
546
-	'intitule_licence' => 'Licenza',
547
-	'item_accepter_inscriptions' => 'Accetta le iscrizioni',
548
-	'item_activer_messages_avertissement' => 'Attiva i messaggi d’avvertimento',
549
-	'item_administrateur_2' => 'amministratore',
550
-	'item_afficher_calendrier' => 'Pubblica nel calendario',
551
-	'item_autoriser_syndication_integrale' => 'Diffondere la versione integrale degli articoli nei file di syndication',
552
-	'item_choix_administrateurs' => 'gli amministratori',
553
-	'item_choix_generation_miniature' => 'Genera automaticamente le thumbnail delle immagini.',
554
-	'item_choix_non_generation_miniature' => 'Non creare le thumbnail delle immagini.',
555
-	'item_choix_redacteurs' => 'i redattori',
556
-	'item_choix_visiteurs' => 'i visitatori del sito pubblico',
557
-	'item_creer_fichiers_authent' => 'Crea i file .htpasswd',
558
-	'item_login' => 'Login',
559
-	'item_messagerie_agenda' => 'Attiva la messaggistica e l’agenda',
560
-	'item_mots_cles_association_articles' => 'agli articoli',
561
-	'item_mots_cles_association_rubriques' => 'alle rubriche',
562
-	'item_mots_cles_association_sites' => 'ai siti repertoriati o in syndication.',
563
-	'item_non' => 'No',
564
-	'item_non_accepter_inscriptions' => 'Non accettare le iscrizioni',
565
-	'item_non_activer_messages_avertissement' => 'Nessun messaggio d’avvertimento',
566
-	'item_non_afficher_calendrier' => 'Non pubblicare nel calendario',
567
-	'item_non_autoriser_syndication_integrale' => 'Diffondere solo un riassunto',
568
-	'item_non_creer_fichiers_authent' => 'Non creare questi file',
569
-	'item_non_messagerie_agenda' => 'Disattiva la messaggistica e l’agenda',
570
-	'item_non_publier_articles' => 'Non pubblicare gli articoli prima della data impostata.',
571
-	'item_nouvel_auteur' => 'Nuovo autore',
572
-	'item_nouvelle_rubrique' => 'Nuova rubrica',
573
-	'item_oui' => 'Si',
574
-	'item_publier_articles' => 'Pubblica gli articoli indipendentemente dalla data impostata.',
575
-	'item_reponse_article' => 'Risposta all’articolo ',
576
-	'item_visiteur' => 'visitatore',
503
+    'info_traductions' => 'Traduzioni',
504
+    'info_travail_colaboratif' => 'Lavoro di collaborazione sugli articoli',
505
+    'info_un_article' => 'un articolo, ',
506
+    'info_un_site' => 'un sito, ',
507
+    'info_une_rubrique' => 'una rubrica, ',
508
+    'info_une_rubrique_02' => '1 rubrica',
509
+    'info_url' => 'URL:',
510
+    'info_url_proxy' => 'URL del proxy',
511
+    'info_url_proxy_pas_conforme' => 'L’URL del proxy non è valido.',
512
+    'info_url_site_pas_conforme' => 'l’URL del sito non è valido.',
513
+    'info_url_test_proxy' => 'URL di test',
514
+    'info_urlref' => 'Link ipertestuale:',
515
+    'info_utilisation_spip' => 'Puoi ora cominciare ad utilizzare il sistema di pubblicazione assistita...',
516
+    'info_visites_par_mois' => 'Visualizzazione per mese:',
517
+    'info_visiteur_1' => 'Visitatori',
518
+    'info_visiteur_2' => 'del sito pubblico',
519
+    'info_visiteurs' => 'Visitatori',
520
+    'info_visiteurs_02' => 'Visitatori del sito pubblico',
521
+    'info_webmestre_forces' => 'I webmaster sono attualmente definiti in <tt>@file_options@</tt>.',
522
+    'install_adresse_base_hebergeur' => 'Indirizzo del database attribuito dal provider',
523
+    'install_connect_ok' => 'Il nuovo database è stato definito sul server @connect@.',
524
+    'install_echec_annonce' => 'L’installazione potrebbe fallire oppure causare problemi di funzionalità al sito...',
525
+    'install_extension_mbstring' => 'SPIP non funziona con:',
526
+    'install_extension_php_obligatoire' => 'SPIP esige l’estensione php:',
527
+    'install_login_base_hebergeur' => 'Login di connessione attribuito dal provider',
528
+    'install_nom_base_hebergeur' => 'Nome del database attribuito dal provider:',
529
+    'install_pas_table' => 'Database attualmente senza tabelle',
530
+    'install_pass_base_hebergeur' => 'Password di connessione attribuito dal provider',
531
+    'install_php_version' => 'PHP versione @version@ insufficiente (minimo = @minimum@)',
532
+    'install_select_langue' => 'Seleziona una lingua e poi clicca sul bottone « Avanti » per lanciare la procedura di installazione.',
533
+    'install_select_type_db' => 'Indicare il tipo di database:',
534
+    'install_select_type_mysql' => 'MySQL',
535
+    'install_select_type_pg' => 'PostgreSQL',
536
+    'install_select_type_sqlite2' => 'SQLite 2',
537
+    'install_select_type_sqlite3' => 'SQLite 3',
538
+    'install_serveur_hebergeur' => 'Server del database attribuito dall’hoster',
539
+    'install_table_prefix_hebergeur' => 'Prefisso della tabella attribuito dal provider:',
540
+    'install_tables_base' => 'Tabelle del database',
541
+    'install_types_db_connus' => 'SPIP può utilizzare <b>MySQL</b> (il più diffuso) e <b>SQLite</b>.',
542
+    'install_types_db_connus_avertissement' => 'Il supporto a <b>PostgreSQL</b> è proposto a titolo sperimentale.',
543
+    'instituer_erreur_statut_a_change' => 'Lo status è già stato modificato',
544
+    'instituer_erreur_statut_non_autorise' => 'Non puoi selezionare questo stato',
545
+    'intem_redacteur' => 'redattore',
546
+    'intitule_licence' => 'Licenza',
547
+    'item_accepter_inscriptions' => 'Accetta le iscrizioni',
548
+    'item_activer_messages_avertissement' => 'Attiva i messaggi d’avvertimento',
549
+    'item_administrateur_2' => 'amministratore',
550
+    'item_afficher_calendrier' => 'Pubblica nel calendario',
551
+    'item_autoriser_syndication_integrale' => 'Diffondere la versione integrale degli articoli nei file di syndication',
552
+    'item_choix_administrateurs' => 'gli amministratori',
553
+    'item_choix_generation_miniature' => 'Genera automaticamente le thumbnail delle immagini.',
554
+    'item_choix_non_generation_miniature' => 'Non creare le thumbnail delle immagini.',
555
+    'item_choix_redacteurs' => 'i redattori',
556
+    'item_choix_visiteurs' => 'i visitatori del sito pubblico',
557
+    'item_creer_fichiers_authent' => 'Crea i file .htpasswd',
558
+    'item_login' => 'Login',
559
+    'item_messagerie_agenda' => 'Attiva la messaggistica e l’agenda',
560
+    'item_mots_cles_association_articles' => 'agli articoli',
561
+    'item_mots_cles_association_rubriques' => 'alle rubriche',
562
+    'item_mots_cles_association_sites' => 'ai siti repertoriati o in syndication.',
563
+    'item_non' => 'No',
564
+    'item_non_accepter_inscriptions' => 'Non accettare le iscrizioni',
565
+    'item_non_activer_messages_avertissement' => 'Nessun messaggio d’avvertimento',
566
+    'item_non_afficher_calendrier' => 'Non pubblicare nel calendario',
567
+    'item_non_autoriser_syndication_integrale' => 'Diffondere solo un riassunto',
568
+    'item_non_creer_fichiers_authent' => 'Non creare questi file',
569
+    'item_non_messagerie_agenda' => 'Disattiva la messaggistica e l’agenda',
570
+    'item_non_publier_articles' => 'Non pubblicare gli articoli prima della data impostata.',
571
+    'item_nouvel_auteur' => 'Nuovo autore',
572
+    'item_nouvelle_rubrique' => 'Nuova rubrica',
573
+    'item_oui' => 'Si',
574
+    'item_publier_articles' => 'Pubblica gli articoli indipendentemente dalla data impostata.',
575
+    'item_reponse_article' => 'Risposta all’articolo ',
576
+    'item_visiteur' => 'visitatore',
577 577
 
578
-	// J
579
-	'jour_non_connu_nc' => 'n.c.',
578
+    // J
579
+    'jour_non_connu_nc' => 'n.c.',
580 580
 
581
-	// L
582
-	'label_bando_outils' => 'Barra degli strumenti',
583
-	'label_bando_outils_afficher' => 'Mostra gli strumenti',
584
-	'label_bando_outils_masquer' => 'Nascondi gli strumenti',
585
-	'label_choix_langue' => 'Seleziona la tua lingua',
586
-	'label_nom_fichier_connect' => 'Indica il nome per questo server',
587
-	'label_slogan_site' => 'Slogan del sito',
588
-	'label_taille_ecran' => 'Larghezza dello schermo',
589
-	'label_texte_et_icones_navigation' => 'Menù di naviagazione',
590
-	'label_texte_et_icones_page' => 'Visualizzazione nella pagina',
591
-	'ldap_correspondance' => 'mappa del campo @champ@',
592
-	'ldap_correspondance_1' => 'Mappa dei campi LDAP',
593
-	'ldap_correspondance_2' => 'Per ognuno dei seguenti campi SPIP, indicare il nome del campo LDAP corrispondente. Lasciare vuoto per non riempire, separare da spazi o da virgole per provare più campi LDAP.',
594
-	'lien_ajouter_auteur' => 'Aggiungi questo autore',
595
-	'lien_ajouter_une_rubrique' => 'Aggiungi questa rubrica',
596
-	'lien_email' => 'email',
597
-	'lien_nom_site' => 'NOME DEL SITO:',
598
-	'lien_rapide_contenu' => 'Vai al contenuto',
599
-	'lien_rapide_navigation' => 'Vai alla navigazione',
600
-	'lien_rapide_recherche' => 'Vai alla ricerca',
601
-	'lien_retirer_auteur' => 'Rimuovere l’autore',
602
-	'lien_retirer_rubrique' => 'Elimina la rubrica',
603
-	'lien_retirer_tous_auteurs' => 'Elimina tutti gli autori',
604
-	'lien_retirer_toutes_rubriques' => 'Rimuovi tutte le rubriche',
605
-	'lien_site' => 'sito',
606
-	'lien_tout_decocher' => 'Deselezionare tutto',
607
-	'lien_tout_deplier' => 'Espandi',
608
-	'lien_tout_replier' => 'Richiudi',
609
-	'lien_tout_supprimer' => 'Eliminare tutto',
610
-	'lien_trier_nom' => 'Ordina per nome',
611
-	'lien_trier_nombre_articles' => 'Ordina per numero di articoli',
612
-	'lien_trier_statut' => 'Ordina per status',
613
-	'lien_voir_en_ligne' => 'VEDI ON LINE:',
614
-	'logo_article' => 'Logo dell’articolo',
615
-	'logo_auteur' => 'Logo dell’autore',
616
-	'logo_rubrique' => 'Logo della rubrica',
617
-	'logo_site' => 'Logo di questo sito',
618
-	'logo_standard_rubrique' => 'Logo standard delle rubriche',
619
-	'logo_survol' => 'Logo per il rollover',
581
+    // L
582
+    'label_bando_outils' => 'Barra degli strumenti',
583
+    'label_bando_outils_afficher' => 'Mostra gli strumenti',
584
+    'label_bando_outils_masquer' => 'Nascondi gli strumenti',
585
+    'label_choix_langue' => 'Seleziona la tua lingua',
586
+    'label_nom_fichier_connect' => 'Indica il nome per questo server',
587
+    'label_slogan_site' => 'Slogan del sito',
588
+    'label_taille_ecran' => 'Larghezza dello schermo',
589
+    'label_texte_et_icones_navigation' => 'Menù di naviagazione',
590
+    'label_texte_et_icones_page' => 'Visualizzazione nella pagina',
591
+    'ldap_correspondance' => 'mappa del campo @champ@',
592
+    'ldap_correspondance_1' => 'Mappa dei campi LDAP',
593
+    'ldap_correspondance_2' => 'Per ognuno dei seguenti campi SPIP, indicare il nome del campo LDAP corrispondente. Lasciare vuoto per non riempire, separare da spazi o da virgole per provare più campi LDAP.',
594
+    'lien_ajouter_auteur' => 'Aggiungi questo autore',
595
+    'lien_ajouter_une_rubrique' => 'Aggiungi questa rubrica',
596
+    'lien_email' => 'email',
597
+    'lien_nom_site' => 'NOME DEL SITO:',
598
+    'lien_rapide_contenu' => 'Vai al contenuto',
599
+    'lien_rapide_navigation' => 'Vai alla navigazione',
600
+    'lien_rapide_recherche' => 'Vai alla ricerca',
601
+    'lien_retirer_auteur' => 'Rimuovere l’autore',
602
+    'lien_retirer_rubrique' => 'Elimina la rubrica',
603
+    'lien_retirer_tous_auteurs' => 'Elimina tutti gli autori',
604
+    'lien_retirer_toutes_rubriques' => 'Rimuovi tutte le rubriche',
605
+    'lien_site' => 'sito',
606
+    'lien_tout_decocher' => 'Deselezionare tutto',
607
+    'lien_tout_deplier' => 'Espandi',
608
+    'lien_tout_replier' => 'Richiudi',
609
+    'lien_tout_supprimer' => 'Eliminare tutto',
610
+    'lien_trier_nom' => 'Ordina per nome',
611
+    'lien_trier_nombre_articles' => 'Ordina per numero di articoli',
612
+    'lien_trier_statut' => 'Ordina per status',
613
+    'lien_voir_en_ligne' => 'VEDI ON LINE:',
614
+    'logo_article' => 'Logo dell’articolo',
615
+    'logo_auteur' => 'Logo dell’autore',
616
+    'logo_rubrique' => 'Logo della rubrica',
617
+    'logo_site' => 'Logo di questo sito',
618
+    'logo_standard_rubrique' => 'Logo standard delle rubriche',
619
+    'logo_survol' => 'Logo per il rollover',
620 620
 
621
-	// M
622
-	'menu_aide_installation_choix_base' => 'Scegliere il database',
623
-	'module_fichier_langue' => 'File lingua',
624
-	'module_raccourci' => 'Scorciatoia',
625
-	'module_texte_affiche' => 'Testo visualizzato',
626
-	'module_texte_explicatif' => 'È possibile inserire le scorciatoie nel modello di layout del proprio sito pubblico. Queste verranno tradotte automaticamente nelle diverse lingue (se esiste già un file lingua).',
627
-	'module_texte_traduction' => 'Il file lingua «@module@» è disponibile in:',
628
-	'mois_non_connu' => 'sconosciuto',
621
+    // M
622
+    'menu_aide_installation_choix_base' => 'Scegliere il database',
623
+    'module_fichier_langue' => 'File lingua',
624
+    'module_raccourci' => 'Scorciatoia',
625
+    'module_texte_affiche' => 'Testo visualizzato',
626
+    'module_texte_explicatif' => 'È possibile inserire le scorciatoie nel modello di layout del proprio sito pubblico. Queste verranno tradotte automaticamente nelle diverse lingue (se esiste già un file lingua).',
627
+    'module_texte_traduction' => 'Il file lingua «@module@» è disponibile in:',
628
+    'mois_non_connu' => 'sconosciuto',
629 629
 
630
-	// N
631
-	'nouvelle_version_spip' => 'L’aggiornamento alla versione @version@ di SPIP è disponibile',
632
-	'nouvelle_version_spip_majeure' => 'La nuova versione @version@ di SPIP è disponibile',
630
+    // N
631
+    'nouvelle_version_spip' => 'L’aggiornamento alla versione @version@ di SPIP è disponibile',
632
+    'nouvelle_version_spip_majeure' => 'La nuova versione @version@ di SPIP è disponibile',
633 633
 
634
-	// O
635
-	'onglet_contenu' => 'Contenuto',
636
-	'onglet_declarer_une_autre_base' => 'Dichiarare un altro database',
637
-	'onglet_discuter' => 'Discuti',
638
-	'onglet_interactivite' => 'Interattività',
639
-	'onglet_proprietes' => 'Proprietà',
640
-	'onglet_repartition_actuelle' => 'attualmente',
641
-	'onglet_sous_rubriques' => 'Sotto-rubriche',
634
+    // O
635
+    'onglet_contenu' => 'Contenuto',
636
+    'onglet_declarer_une_autre_base' => 'Dichiarare un altro database',
637
+    'onglet_discuter' => 'Discuti',
638
+    'onglet_interactivite' => 'Interattività',
639
+    'onglet_proprietes' => 'Proprietà',
640
+    'onglet_repartition_actuelle' => 'attualmente',
641
+    'onglet_sous_rubriques' => 'Sotto-rubriche',
642 642
 
643
-	// P
644
-	'page_pas_proxy' => 'Questa pagina non deve passare attraverso il proxy',
645
-	'pas_de_proxy_pour' => 'Se necessario, indicare i server o i domini per i quali non si deve applicare questo proxy (per esempio: @exemple@)',
646
-	'phpinfo' => 'Configurazione PHP',
647
-	'plugin_charge_paquet' => 'Caricamento del pacchetto @name@',
648
-	'plugin_charger' => 'Download',
649
-	'plugin_erreur_charger' => 'errore: impossibile caricare @zip@',
650
-	'plugin_erreur_droit1' => 'La directory <code>@dest@</code> non ha i permessi di scrittura.',
651
-	'plugin_erreur_droit2' => 'Verificare i diritti su questa directory (se necessario crearla), o installare i file tramite FTP.',
652
-	'plugin_erreur_zip' => 'fallimento pclzip: errore @status@',
653
-	'plugin_etat_developpement' => 'in corso di sviluppo',
654
-	'plugin_etat_experimental' => 'sperimentale',
655
-	'plugin_etat_stable' => 'stabile',
656
-	'plugin_etat_test' => 'in prova',
657
-	'plugin_impossible_activer' => 'Impossibile attivare l’estensione @plugin@',
658
-	'plugin_info_automatique1' => 'Se si desidera autorizzare l’installazione automatica dell’estensione è necessario: ',
659
-	'plugin_info_automatique1_lib' => 'Se vuoi autorizzare l’installazione automatica di questa libreria:',
660
-	'plugin_info_automatique2' => 'creare una directory <code>@rep@</code>;',
661
-	'plugin_info_automatique3' => 'verificare che il server sia autorizzato a scrivere in questa directory.',
662
-	'plugin_info_automatique_creer' => 'da creare alla radice del sito.',
663
-	'plugin_info_automatique_exemples' => 'esempi:',
664
-	'plugin_info_automatique_ftp' => 'È possibile installare plug-in tramite FTP, nella cartella <tt>@rep@</tt>',
665
-	'plugin_info_automatique_lib' => 'Alcune estensioni richiedono anche di poter trasferire dei file nella cartella <code>lib/</code>, da creare (se necessario) alla radice del sito.',
666
-	'plugin_info_automatique_liste' => 'Gli elenchi delle estensioni:',
667
-	'plugin_info_automatique_liste_officielle' => 'le estensioni ufficiali',
668
-	'plugin_info_automatique_liste_update' => 'Aggiornare gli elenchi',
669
-	'plugin_info_automatique_ou' => 'oppure...',
670
-	'plugin_info_automatique_select' => 'Selezionata un’estensione qui sotto: SPIP la scaricherà e la installerà nella cartella <code>@rep@</code>; se questo estensione è già presente verrà aggiornata.',
671
-	'plugin_info_credit' => 'Crediti',
672
-	'plugin_info_erreur_xml' => 'La dichiarazione del plugin è sbagliata',
673
-	'plugin_info_install_ok' => 'Installazione completata con successo',
674
-	'plugin_info_necessite' => 'Richiesto :',
675
-	'plugin_info_non_compatible_spip' => 'Questo plugin è incompatibile con questa versione di SPIP',
676
-	'plugin_info_plugins_dist_1' => 'Le estensioni sottostanti sono caricate e attivate nella directory @plugins_dist@.',
677
-	'plugin_info_plugins_dist_2' => 'Questi non possono essere disabilitati.',
678
-	'plugin_info_telecharger' => 'da scaricare da @url@ e da installare in @rep@',
679
-	'plugin_info_upgrade_ok' => 'Aggiornamento avvenuto',
680
-	'plugin_librairies_installees' => 'Librerie installate',
681
-	'plugin_necessite_extension_php' => 'Richiede l’estensione PHP @plugin@ in versione @version@.',
682
-	'plugin_necessite_extension_php_sans_version' => 'Richiede l’estensione PHP @plugin@',
683
-	'plugin_necessite_lib' => 'Questa estensione richiede la libreria @lib@',
684
-	'plugin_necessite_php' => 'Richiede @plugin@ in versione @version@.',
685
-	'plugin_necessite_plugin' => 'Necessita l’estensione @plugin@ con la versione @version@.',
686
-	'plugin_necessite_plugin_sans_version' => 'Necessita del plugin @plugin@',
687
-	'plugin_necessite_spip' => 'Necessita SPIP con almeno la versione @version@.',
688
-	'plugin_source' => 'origine: ',
689
-	'plugin_titre_automatique' => 'Installazione automatica',
690
-	'plugin_titre_automatique_ajouter' => 'Aggiungere dei plugin',
691
-	'plugin_titre_installation' => 'Installazione del plugin @plugin@',
692
-	'plugin_titre_modifier' => 'I miei plugin',
693
-	'plugin_utilise_extension_php' => 'Usa l’estensione PHP @plugin@ in versione @version@.',
694
-	'plugin_utilise_php' => 'Utilizza @plugin@ in versione @version@.',
695
-	'plugin_utilise_plugin' => 'Utilizza il plugin @plugin@ in versione @version@.',
696
-	'plugin_zip_active' => 'Continuare per attivarlo',
697
-	'plugin_zip_adresse' => 'indicate qui sotto l’indirizzo di un file zip del plug-in da scaricare, oppure l’indirizzo di un elenco di plug-in.',
698
-	'plugin_zip_adresse_champ' => 'Indirizzo del plug-in o dell’elenco ',
699
-	'plugin_zip_content' => 'Esso contiene i file seguenti (@taille@),<br />pronti per essere installati nella cartella <code>@rep@</code>',
700
-	'plugin_zip_installe_finie' => 'Il file @zip@ è stato decompresso e installato.',
701
-	'plugin_zip_installe_rep_finie' => 'Il file @zip@ è stato decompresso e installato nella cartella @rep@',
702
-	'plugin_zip_installer' => 'Ora è possibile installarlo.',
703
-	'plugin_zip_telecharge' => 'Il file @zip@ è stato scaricato',
704
-	'plugins_actif_aucun' => 'Nessun plugin attivo',
705
-	'plugins_actif_un' => 'Un plugin attivo',
706
-	'plugins_actifs' => '@count@ plug-in attivati.',
707
-	'plugins_actifs_liste' => 'Attivo',
708
-	'plugins_compte' => '@count@ plug-in',
709
-	'plugins_disponible_un' => 'Un plugin disponibile',
710
-	'plugins_disponibles' => '@count@ plug-in disponibili.',
711
-	'plugins_erreur' => 'Errore nei plug-in: @plugins@',
712
-	'plugins_liste' => 'Elenco dei plugin',
713
-	'plugins_liste_dist' => 'Plugin bloccato',
714
-	'plugins_recents' => 'Plugin aggiunti recentemente',
715
-	'plugins_tous_liste' => 'Tutto',
716
-	'plugins_vue_hierarchie' => 'Struttura gerarchica',
717
-	'plugins_vue_liste' => 'Elenco',
718
-	'protocole_ldap' => 'Versione del protocollo:',
643
+    // P
644
+    'page_pas_proxy' => 'Questa pagina non deve passare attraverso il proxy',
645
+    'pas_de_proxy_pour' => 'Se necessario, indicare i server o i domini per i quali non si deve applicare questo proxy (per esempio: @exemple@)',
646
+    'phpinfo' => 'Configurazione PHP',
647
+    'plugin_charge_paquet' => 'Caricamento del pacchetto @name@',
648
+    'plugin_charger' => 'Download',
649
+    'plugin_erreur_charger' => 'errore: impossibile caricare @zip@',
650
+    'plugin_erreur_droit1' => 'La directory <code>@dest@</code> non ha i permessi di scrittura.',
651
+    'plugin_erreur_droit2' => 'Verificare i diritti su questa directory (se necessario crearla), o installare i file tramite FTP.',
652
+    'plugin_erreur_zip' => 'fallimento pclzip: errore @status@',
653
+    'plugin_etat_developpement' => 'in corso di sviluppo',
654
+    'plugin_etat_experimental' => 'sperimentale',
655
+    'plugin_etat_stable' => 'stabile',
656
+    'plugin_etat_test' => 'in prova',
657
+    'plugin_impossible_activer' => 'Impossibile attivare l’estensione @plugin@',
658
+    'plugin_info_automatique1' => 'Se si desidera autorizzare l’installazione automatica dell’estensione è necessario: ',
659
+    'plugin_info_automatique1_lib' => 'Se vuoi autorizzare l’installazione automatica di questa libreria:',
660
+    'plugin_info_automatique2' => 'creare una directory <code>@rep@</code>;',
661
+    'plugin_info_automatique3' => 'verificare che il server sia autorizzato a scrivere in questa directory.',
662
+    'plugin_info_automatique_creer' => 'da creare alla radice del sito.',
663
+    'plugin_info_automatique_exemples' => 'esempi:',
664
+    'plugin_info_automatique_ftp' => 'È possibile installare plug-in tramite FTP, nella cartella <tt>@rep@</tt>',
665
+    'plugin_info_automatique_lib' => 'Alcune estensioni richiedono anche di poter trasferire dei file nella cartella <code>lib/</code>, da creare (se necessario) alla radice del sito.',
666
+    'plugin_info_automatique_liste' => 'Gli elenchi delle estensioni:',
667
+    'plugin_info_automatique_liste_officielle' => 'le estensioni ufficiali',
668
+    'plugin_info_automatique_liste_update' => 'Aggiornare gli elenchi',
669
+    'plugin_info_automatique_ou' => 'oppure...',
670
+    'plugin_info_automatique_select' => 'Selezionata un’estensione qui sotto: SPIP la scaricherà e la installerà nella cartella <code>@rep@</code>; se questo estensione è già presente verrà aggiornata.',
671
+    'plugin_info_credit' => 'Crediti',
672
+    'plugin_info_erreur_xml' => 'La dichiarazione del plugin è sbagliata',
673
+    'plugin_info_install_ok' => 'Installazione completata con successo',
674
+    'plugin_info_necessite' => 'Richiesto :',
675
+    'plugin_info_non_compatible_spip' => 'Questo plugin è incompatibile con questa versione di SPIP',
676
+    'plugin_info_plugins_dist_1' => 'Le estensioni sottostanti sono caricate e attivate nella directory @plugins_dist@.',
677
+    'plugin_info_plugins_dist_2' => 'Questi non possono essere disabilitati.',
678
+    'plugin_info_telecharger' => 'da scaricare da @url@ e da installare in @rep@',
679
+    'plugin_info_upgrade_ok' => 'Aggiornamento avvenuto',
680
+    'plugin_librairies_installees' => 'Librerie installate',
681
+    'plugin_necessite_extension_php' => 'Richiede l’estensione PHP @plugin@ in versione @version@.',
682
+    'plugin_necessite_extension_php_sans_version' => 'Richiede l’estensione PHP @plugin@',
683
+    'plugin_necessite_lib' => 'Questa estensione richiede la libreria @lib@',
684
+    'plugin_necessite_php' => 'Richiede @plugin@ in versione @version@.',
685
+    'plugin_necessite_plugin' => 'Necessita l’estensione @plugin@ con la versione @version@.',
686
+    'plugin_necessite_plugin_sans_version' => 'Necessita del plugin @plugin@',
687
+    'plugin_necessite_spip' => 'Necessita SPIP con almeno la versione @version@.',
688
+    'plugin_source' => 'origine: ',
689
+    'plugin_titre_automatique' => 'Installazione automatica',
690
+    'plugin_titre_automatique_ajouter' => 'Aggiungere dei plugin',
691
+    'plugin_titre_installation' => 'Installazione del plugin @plugin@',
692
+    'plugin_titre_modifier' => 'I miei plugin',
693
+    'plugin_utilise_extension_php' => 'Usa l’estensione PHP @plugin@ in versione @version@.',
694
+    'plugin_utilise_php' => 'Utilizza @plugin@ in versione @version@.',
695
+    'plugin_utilise_plugin' => 'Utilizza il plugin @plugin@ in versione @version@.',
696
+    'plugin_zip_active' => 'Continuare per attivarlo',
697
+    'plugin_zip_adresse' => 'indicate qui sotto l’indirizzo di un file zip del plug-in da scaricare, oppure l’indirizzo di un elenco di plug-in.',
698
+    'plugin_zip_adresse_champ' => 'Indirizzo del plug-in o dell’elenco ',
699
+    'plugin_zip_content' => 'Esso contiene i file seguenti (@taille@),<br />pronti per essere installati nella cartella <code>@rep@</code>',
700
+    'plugin_zip_installe_finie' => 'Il file @zip@ è stato decompresso e installato.',
701
+    'plugin_zip_installe_rep_finie' => 'Il file @zip@ è stato decompresso e installato nella cartella @rep@',
702
+    'plugin_zip_installer' => 'Ora è possibile installarlo.',
703
+    'plugin_zip_telecharge' => 'Il file @zip@ è stato scaricato',
704
+    'plugins_actif_aucun' => 'Nessun plugin attivo',
705
+    'plugins_actif_un' => 'Un plugin attivo',
706
+    'plugins_actifs' => '@count@ plug-in attivati.',
707
+    'plugins_actifs_liste' => 'Attivo',
708
+    'plugins_compte' => '@count@ plug-in',
709
+    'plugins_disponible_un' => 'Un plugin disponibile',
710
+    'plugins_disponibles' => '@count@ plug-in disponibili.',
711
+    'plugins_erreur' => 'Errore nei plug-in: @plugins@',
712
+    'plugins_liste' => 'Elenco dei plugin',
713
+    'plugins_liste_dist' => 'Plugin bloccato',
714
+    'plugins_recents' => 'Plugin aggiunti recentemente',
715
+    'plugins_tous_liste' => 'Tutto',
716
+    'plugins_vue_hierarchie' => 'Struttura gerarchica',
717
+    'plugins_vue_liste' => 'Elenco',
718
+    'protocole_ldap' => 'Versione del protocollo:',
719 719
 
720
-	// Q
721
-	'queue_executer_maintenant' => 'Esegui adesso',
722
-	'queue_info_purger' => 'È possibile eliminare tutti i lavori in sospeso e reinizializzare la lista con delle elaborazioni periodiche',
723
-	'queue_nb_jobs_in_queue' => '@nb@ processi in coda',
724
-	'queue_next_job_in_nb_sec' => 'Prossimo processo in @nb@ s',
725
-	'queue_no_job_in_queue' => 'Nessun processo appeso',
726
-	'queue_one_job_in_queue' => '1 processo in coda',
727
-	'queue_priorite_tache' => 'priorità',
728
-	'queue_purger_queue' => 'Pulisci la coda dei processi',
729
-	'queue_titre' => 'Lista dei processi',
720
+    // Q
721
+    'queue_executer_maintenant' => 'Esegui adesso',
722
+    'queue_info_purger' => 'È possibile eliminare tutti i lavori in sospeso e reinizializzare la lista con delle elaborazioni periodiche',
723
+    'queue_nb_jobs_in_queue' => '@nb@ processi in coda',
724
+    'queue_next_job_in_nb_sec' => 'Prossimo processo in @nb@ s',
725
+    'queue_no_job_in_queue' => 'Nessun processo appeso',
726
+    'queue_one_job_in_queue' => '1 processo in coda',
727
+    'queue_priorite_tache' => 'priorità',
728
+    'queue_purger_queue' => 'Pulisci la coda dei processi',
729
+    'queue_titre' => 'Lista dei processi',
730 730
 
731
-	// R
732
-	'repertoire_plugins' => 'Cartella:',
733
-	'required' => '(Obbligatorio)',
731
+    // R
732
+    'repertoire_plugins' => 'Cartella:',
733
+    'required' => '(Obbligatorio)',
734 734
 
735
-	// S
736
-	'sans_heure' => 'ora mancante',
737
-	'statut_admin_restreint' => 'ammin. parziale',
738
-	'statut_webmestre' => 'webmaster',
735
+    // S
736
+    'sans_heure' => 'ora mancante',
737
+    'statut_admin_restreint' => 'ammin. parziale',
738
+    'statut_webmestre' => 'webmaster',
739 739
 
740
-	// T
741
-	'tache_cron_asap' => 'Task CRON @function@ (ASAP)',
742
-	'tache_cron_secondes' => 'Task CRON @function@ (ogni @nb@ s)',
743
-	'taille_cache_image' => 'Le immagini elaborate automaticamente da SPIP (icone dei documenti, titoli in formato grafico, funzioni matematiche in formato TeX...) occupano nella cartella @dir@ in tutto @taille@.',
744
-	'taille_cache_infinie' => 'Questo sito non prevede limiti alle dimensioni della cartella della cache.',
745
-	'taille_cache_maxi' => 'SPIP tenta di limitare le dimensioni della cartella della cache di questo sito a circa <b>@octets@</b> di dati.',
746
-	'taille_cache_moins_de' => 'La dimensione della cache è inferiore a @octets@.',
747
-	'taille_cache_octets' => 'La cartella della cache occupa attualmente @octets@ su disco.',
748
-	'taille_cache_vide' => 'La cache è vuota.',
749
-	'taille_repertoire_cache' => 'Dimensioni della cartella di cache',
750
-	'text_article_propose_publication' => 'Articolo proposto per la pubblicazione. ',
751
-	'texte_acces_ldap_anonyme_1' => 'Alcuni server LDAP non consentono accessi anonimi. In questo caso si deve specificare un identificatore d’accesso iniziale al fine di poter poi ricercare delle informazioni nell’elenco. Nella maggior parte dei casi tuttavia, i campi seguenti potranno essere lasciati vuoti.',
752
-	'texte_admin_effacer_01' => 'Questo commando cancella <i>tutto</i> il contenuto del database,
740
+    // T
741
+    'tache_cron_asap' => 'Task CRON @function@ (ASAP)',
742
+    'tache_cron_secondes' => 'Task CRON @function@ (ogni @nb@ s)',
743
+    'taille_cache_image' => 'Le immagini elaborate automaticamente da SPIP (icone dei documenti, titoli in formato grafico, funzioni matematiche in formato TeX...) occupano nella cartella @dir@ in tutto @taille@.',
744
+    'taille_cache_infinie' => 'Questo sito non prevede limiti alle dimensioni della cartella della cache.',
745
+    'taille_cache_maxi' => 'SPIP tenta di limitare le dimensioni della cartella della cache di questo sito a circa <b>@octets@</b> di dati.',
746
+    'taille_cache_moins_de' => 'La dimensione della cache è inferiore a @octets@.',
747
+    'taille_cache_octets' => 'La cartella della cache occupa attualmente @octets@ su disco.',
748
+    'taille_cache_vide' => 'La cache è vuota.',
749
+    'taille_repertoire_cache' => 'Dimensioni della cartella di cache',
750
+    'text_article_propose_publication' => 'Articolo proposto per la pubblicazione. ',
751
+    'texte_acces_ldap_anonyme_1' => 'Alcuni server LDAP non consentono accessi anonimi. In questo caso si deve specificare un identificatore d’accesso iniziale al fine di poter poi ricercare delle informazioni nell’elenco. Nella maggior parte dei casi tuttavia, i campi seguenti potranno essere lasciati vuoti.',
752
+    'texte_admin_effacer_01' => 'Questo commando cancella <i>tutto</i> il contenuto del database,
753 753
  compresi <i>tutti</i> i login dei redattori e degli amministratori. Dopo averlo eseguito, dovrai riavviare la procedura di installazione per ricreare un nuovo database e un primo ID amministrativo.',
754
-	'texte_adresse_annuaire_1' => '(Se la rubrica è installata nella stessa macchina di questo sito, dovrai probabilmente inserire "localhost".)',
755
-	'texte_ajout_auteur' => 'Il seguente autore è stato aggiunto all’articolo:',
756
-	'texte_annuaire_ldap_1' => 'Se hai accesso ad una rubrica (LDAP), puoi utilizzarla per importare automaticamente degli utenti sotto SPIP.',
757
-	'texte_article_statut' => 'Questo articolo è:',
758
-	'texte_article_virtuel' => 'Articolo virtuale',
759
-	'texte_article_virtuel_reference' => '<b>Articolo virtuale:</b> articolo citato nel tuo sito SPIP, ma reindrizzato verso un’altro URL. Per eliminare il reindirizzamento, cancella l’URL qui sopra.',
760
-	'texte_aucun_resultat_auteur' => 'Nessun risultato per "@cherche_auteur@"',
761
-	'texte_auteur_messagerie' => 'Questo sito può costantemente visualizzare la lista dei redattori collegati, permettendo lo scambio di messaggi in tempo reale. Si può però decidere di non comparire in questo elenco (rendendosi quindi «invisibili» agli altri utenti).',
762
-	'texte_auteurs' => 'GLI AUTORI',
763
-	'texte_choix_base_1' => 'Scegli il database:',
764
-	'texte_choix_base_2' => 'Il server SQL contiene diversi database.',
765
-	'texte_choix_base_3' => '<b>Seleziona</b> quello che è stato attribuito al tuo dominio:',
766
-	'texte_choix_table_prefix' => 'Prefisso delle tabelle:',
767
-	'texte_compte_element' => '@count@ elemento',
768
-	'texte_compte_elements' => '@count@ elementi',
769
-	'texte_conflit_edition_correction' => 'Controllare qui sotto le differenze tra le due versioni del testo; è possibile anche copiare le modifiche e poi ricominciare.',
770
-	'texte_connexion_mysql' => 'Consulta le informazioni fornite dal tuo hoster: devi poterci trovare i codici di collegamento alla base di dati.',
771
-	'texte_contenu_article' => 'Contenuto dell’articolo in poche parole (<em>abstract</em>)',
772
-	'texte_contenu_articles' => 'A seconda del modello di presentazione adottato per il sito, puoi decidere
754
+    'texte_adresse_annuaire_1' => '(Se la rubrica è installata nella stessa macchina di questo sito, dovrai probabilmente inserire "localhost".)',
755
+    'texte_ajout_auteur' => 'Il seguente autore è stato aggiunto all’articolo:',
756
+    'texte_annuaire_ldap_1' => 'Se hai accesso ad una rubrica (LDAP), puoi utilizzarla per importare automaticamente degli utenti sotto SPIP.',
757
+    'texte_article_statut' => 'Questo articolo è:',
758
+    'texte_article_virtuel' => 'Articolo virtuale',
759
+    'texte_article_virtuel_reference' => '<b>Articolo virtuale:</b> articolo citato nel tuo sito SPIP, ma reindrizzato verso un’altro URL. Per eliminare il reindirizzamento, cancella l’URL qui sopra.',
760
+    'texte_aucun_resultat_auteur' => 'Nessun risultato per "@cherche_auteur@"',
761
+    'texte_auteur_messagerie' => 'Questo sito può costantemente visualizzare la lista dei redattori collegati, permettendo lo scambio di messaggi in tempo reale. Si può però decidere di non comparire in questo elenco (rendendosi quindi «invisibili» agli altri utenti).',
762
+    'texte_auteurs' => 'GLI AUTORI',
763
+    'texte_choix_base_1' => 'Scegli il database:',
764
+    'texte_choix_base_2' => 'Il server SQL contiene diversi database.',
765
+    'texte_choix_base_3' => '<b>Seleziona</b> quello che è stato attribuito al tuo dominio:',
766
+    'texte_choix_table_prefix' => 'Prefisso delle tabelle:',
767
+    'texte_compte_element' => '@count@ elemento',
768
+    'texte_compte_elements' => '@count@ elementi',
769
+    'texte_conflit_edition_correction' => 'Controllare qui sotto le differenze tra le due versioni del testo; è possibile anche copiare le modifiche e poi ricominciare.',
770
+    'texte_connexion_mysql' => 'Consulta le informazioni fornite dal tuo hoster: devi poterci trovare i codici di collegamento alla base di dati.',
771
+    'texte_contenu_article' => 'Contenuto dell’articolo in poche parole (<em>abstract</em>)',
772
+    'texte_contenu_articles' => 'A seconda del modello di presentazione adottato per il sito, puoi decidere
773 773
 che alcuni elementi degli articoli siano utilizzati oppure no.
774 774
 Serviti dell’elenco qui sotto per indicare quali elementi rendere disponibili.',
775
-	'texte_crash_base' => 'Se il database è stato danneggiato, puoi tentare un ripristino automatico.',
776
-	'texte_creer_rubrique' => 'Prima di poter scrivere degli articoli,<br /> devi creare una rubrica.',
777
-	'texte_date_creation_article' => 'DATA DI CREAZIONE DELL’ARTICOLO:',
778
-	'texte_date_creation_objet' => 'Data di creazione :', # on ajoute le &quot;:&quot;
779
-	'texte_date_publication_anterieure' => 'DATA DI REDAZIONE ANTERIORE',
780
-	'texte_date_publication_anterieure_nonaffichee' => 'Non visualizzare la data di redazione anteriore.',
781
-	'texte_date_publication_article' => 'DATA DI PUBBLICAZIONE:',
782
-	'texte_date_publication_objet' => 'Pubblicato il :',
783
-	'texte_definir_comme_traduction_rubrique' => 'Questa rubrica è una traduzione della rubrica numero:',
784
-	'texte_descriptif_rapide' => 'Descrizione rapida',
785
-	'texte_effacer_base' => 'Cancella il database SPIP',
786
-	'texte_effacer_statistiques' => 'Cancellare le statistiche',
787
-	'texte_en_cours_validation' => 'Gli articoli e le brevi elencati qui sotto sono stati proposti per la pubblicazione. ',
788
-	'texte_enrichir_mise_a_jour' => 'Puoi arricchire la formattazione del testo utilizzando le «scorciatoie tipografiche»',
789
-	'texte_fichier_authent' => '<b>SPIP deve creare i file speciali <tt>.htpasswd</tt>
775
+    'texte_crash_base' => 'Se il database è stato danneggiato, puoi tentare un ripristino automatico.',
776
+    'texte_creer_rubrique' => 'Prima di poter scrivere degli articoli,<br /> devi creare una rubrica.',
777
+    'texte_date_creation_article' => 'DATA DI CREAZIONE DELL’ARTICOLO:',
778
+    'texte_date_creation_objet' => 'Data di creazione :', # on ajoute le &quot;:&quot;
779
+    'texte_date_publication_anterieure' => 'DATA DI REDAZIONE ANTERIORE',
780
+    'texte_date_publication_anterieure_nonaffichee' => 'Non visualizzare la data di redazione anteriore.',
781
+    'texte_date_publication_article' => 'DATA DI PUBBLICAZIONE:',
782
+    'texte_date_publication_objet' => 'Pubblicato il :',
783
+    'texte_definir_comme_traduction_rubrique' => 'Questa rubrica è una traduzione della rubrica numero:',
784
+    'texte_descriptif_rapide' => 'Descrizione rapida',
785
+    'texte_effacer_base' => 'Cancella il database SPIP',
786
+    'texte_effacer_statistiques' => 'Cancellare le statistiche',
787
+    'texte_en_cours_validation' => 'Gli articoli e le brevi elencati qui sotto sono stati proposti per la pubblicazione. ',
788
+    'texte_enrichir_mise_a_jour' => 'Puoi arricchire la formattazione del testo utilizzando le «scorciatoie tipografiche»',
789
+    'texte_fichier_authent' => '<b>SPIP deve creare i file speciali <tt>.htpasswd</tt>
790 790
 e <tt>.htpasswd-admin</tt> nella cartella @dossier@?</b>
791 791
 <p> Questi file possono servire a limitare l’accesso agli autori
792 792
 e agli amministratori in particolari aree del sito
793 793
 (per esempio, per un programma esterno di statistiche).</p>
794 794
 <p> Se ciò non è necessario, lasciare quest’opzione al suo valore predefinito (nessuna creazione 
795 795
 di file).</p>',
796
-	'texte_informations_personnelles_1' => 'Il sistema creerà un tuo accesso personalizzato al sito.',
797
-	'texte_informations_personnelles_2' => '(Nota: se si tratta di una reinstallazione, e il tuo accesso funziona ancora, puoi ',
798
-	'texte_introductif_article' => 'Testo introduttivo dell’articolo',
799
-	'texte_jeu_caractere' => 'Si consiglia di utilizzare sul proprio sito l’alfabeto universale (<tt>utf-8</tt>): esso permette di visualizzare i testi in tutte le lingue e non pone problemi di compatibilità con i browser moderni.',
800
-	'texte_jeu_caractere_3' => 'Il tuo sito usa attualmente il set di caratteri:',
801
-	'texte_jeu_caractere_4' => 'Se ciò non corrisponde alla realtà dei propri dati (a causa, per esempio, di un ripristino del database), o se  <em>si avvia il sito</em> e si desidera partire con un altro set di caratteri è necessario indicare quest’ultimo qui:',
802
-	'texte_login_ldap_1' => '(Lascia vuoto per un accesso anonimo, o inserisci il percorso completo, per esempio «<tt>uid=rossi, ou=users, dc=mio-dominio, dc=com</tt> ».)',
803
-	'texte_login_precaution' => 'Attenzione! Questo è l’ID con il quale sei attualmente collegato.
796
+    'texte_informations_personnelles_1' => 'Il sistema creerà un tuo accesso personalizzato al sito.',
797
+    'texte_informations_personnelles_2' => '(Nota: se si tratta di una reinstallazione, e il tuo accesso funziona ancora, puoi ',
798
+    'texte_introductif_article' => 'Testo introduttivo dell’articolo',
799
+    'texte_jeu_caractere' => 'Si consiglia di utilizzare sul proprio sito l’alfabeto universale (<tt>utf-8</tt>): esso permette di visualizzare i testi in tutte le lingue e non pone problemi di compatibilità con i browser moderni.',
800
+    'texte_jeu_caractere_3' => 'Il tuo sito usa attualmente il set di caratteri:',
801
+    'texte_jeu_caractere_4' => 'Se ciò non corrisponde alla realtà dei propri dati (a causa, per esempio, di un ripristino del database), o se  <em>si avvia il sito</em> e si desidera partire con un altro set di caratteri è necessario indicare quest’ultimo qui:',
802
+    'texte_login_ldap_1' => '(Lascia vuoto per un accesso anonimo, o inserisci il percorso completo, per esempio «<tt>uid=rossi, ou=users, dc=mio-dominio, dc=com</tt> ».)',
803
+    'texte_login_precaution' => 'Attenzione! Questo è l’ID con il quale sei attualmente collegato.
804 804
 Utilizza questo modulo con cognizione di causa...',
805
-	'texte_messagerie_agenda' => 'La messageria permette ai redattori del sito di comunicare tra loro in maniera diretta nell’area riservata. Essa è associata a una agenda.',
806
-	'texte_mise_a_niveau_base_1' => 'Hai aggiornato i file SPIP.
805
+    'texte_messagerie_agenda' => 'La messageria permette ai redattori del sito di comunicare tra loro in maniera diretta nell’area riservata. Essa è associata a una agenda.',
806
+    'texte_mise_a_niveau_base_1' => 'Hai aggiornato i file SPIP.
807 807
 Adesso è necessario aggiornare il database.',
808
-	'texte_modifier_article' => 'Modifica l’articolo:',
809
-	'texte_multilinguisme' => 'Se desideri gestire gli articoli in diverse lingue, con un sistema di navigazione complesso, è possibile aggiungere un menu di selezione della lingua in funzione della struttura del sito.',
810
-	'texte_multilinguisme_trad' => 'È anche possibile attivare un sistema di gestione dei link fra le diverse traduzioni di un certo oggetto.',
811
-	'texte_non_compresse' => '<i>non compresso</i> (il tuo server non supporta questa funzionalità)',
812
-	'texte_nouvelle_version_spip_1' => 'Hai installato una nuova versione di SPIP.',
813
-	'texte_nouvelle_version_spip_2' => 'Questa nuova versione necessita un aggiornamento più radicale del solito. Se sei il webmaster del sito, cancella il file @connect@ e riprendi l’installazione al fine di aggiornare i parametri di connessione al database.<p> (NB: se hai dimenticato i parametri di connessione, rileggi il file @connect@ prima di cancellarlo!)</p>',
814
-	'texte_operation_echec' => 'Torna alla pagina precedente, seleziona un altro database o creane uno nuovo. Verifica le informazioni fornite dal tuo hoster.',
815
-	'texte_plus_trois_car' => 'più di tre caratteri',
816
-	'texte_plusieurs_articles' => 'Diversi autori trovati per "@cherche_auteur@":',
817
-	'texte_port_annuaire' => '(Il valore predefinito è in genere quello adatto.)',
818
-	'texte_presente_plugin' => 'Questa pagina elenca i plugin disponibili sul sito. È possibile attivare i plugin necessari selezionando la casella corrispondente.',
819
-	'texte_proposer_publication' => 'Quando l’articolo è completo,<br /> puoi proporne la pubblicazione.',
820
-	'texte_proxy' => 'In alcuni casi (intranet, reti protette...), i siti distanti (documetazione di SPIP, siti in syndication, ecc.) sono accessibili unicamente attraverso un <i>proxy HTTP</i>. In questo caso, va indicato l’indirizzo del server nella forma @proxy_en_cours@. In genere questa casella va lasciata vuota.',
821
-	'texte_publication_articles_post_dates' => 'Come si deve comportare SPIP quando gli articoli hanno
808
+    'texte_modifier_article' => 'Modifica l’articolo:',
809
+    'texte_multilinguisme' => 'Se desideri gestire gli articoli in diverse lingue, con un sistema di navigazione complesso, è possibile aggiungere un menu di selezione della lingua in funzione della struttura del sito.',
810
+    'texte_multilinguisme_trad' => 'È anche possibile attivare un sistema di gestione dei link fra le diverse traduzioni di un certo oggetto.',
811
+    'texte_non_compresse' => '<i>non compresso</i> (il tuo server non supporta questa funzionalità)',
812
+    'texte_nouvelle_version_spip_1' => 'Hai installato una nuova versione di SPIP.',
813
+    'texte_nouvelle_version_spip_2' => 'Questa nuova versione necessita un aggiornamento più radicale del solito. Se sei il webmaster del sito, cancella il file @connect@ e riprendi l’installazione al fine di aggiornare i parametri di connessione al database.<p> (NB: se hai dimenticato i parametri di connessione, rileggi il file @connect@ prima di cancellarlo!)</p>',
814
+    'texte_operation_echec' => 'Torna alla pagina precedente, seleziona un altro database o creane uno nuovo. Verifica le informazioni fornite dal tuo hoster.',
815
+    'texte_plus_trois_car' => 'più di tre caratteri',
816
+    'texte_plusieurs_articles' => 'Diversi autori trovati per "@cherche_auteur@":',
817
+    'texte_port_annuaire' => '(Il valore predefinito è in genere quello adatto.)',
818
+    'texte_presente_plugin' => 'Questa pagina elenca i plugin disponibili sul sito. È possibile attivare i plugin necessari selezionando la casella corrispondente.',
819
+    'texte_proposer_publication' => 'Quando l’articolo è completo,<br /> puoi proporne la pubblicazione.',
820
+    'texte_proxy' => 'In alcuni casi (intranet, reti protette...), i siti distanti (documetazione di SPIP, siti in syndication, ecc.) sono accessibili unicamente attraverso un <i>proxy HTTP</i>. In questo caso, va indicato l’indirizzo del server nella forma @proxy_en_cours@. In genere questa casella va lasciata vuota.',
821
+    'texte_publication_articles_post_dates' => 'Come si deve comportare SPIP quando gli articoli hanno
822 822
 una data di pubblicazione impostata nel futuro?',
823
-	'texte_rappel_selection_champs' => '[Non dimenticare di impostare correttamente questo campo]',
824
-	'texte_recalcul_page' => 'Se vuoi rigenerare
823
+    'texte_rappel_selection_champs' => '[Non dimenticare di impostare correttamente questo campo]',
824
+    'texte_recalcul_page' => 'Se vuoi rigenerare
825 825
 una sola pagina, utilizza piuttosto lo spazio pubblico e clicca sul pulsante «rigenera».',
826
-	'texte_recuperer_base' => 'Ripara il database',
827
-	'texte_reference_mais_redirige' => 'articolo catalogato nel tuo sito SPIP, ma con reindirizzamento verso un altro URL.',
828
-	'texte_requetes_echouent' => '<b>Quando alcune query SQL falliscono
826
+    'texte_recuperer_base' => 'Ripara il database',
827
+    'texte_reference_mais_redirige' => 'articolo catalogato nel tuo sito SPIP, ma con reindirizzamento verso un altro URL.',
828
+    'texte_requetes_echouent' => '<b>Quando alcune query SQL falliscono
829 829
 ripetutamente e senza un chiaro motivo, è possibile
830 830
 che sia per colpa del database stesso.</b><p>
831 831
 Il server SQL dispone di una funzione di ripristino delle tabelle
@@ -833,87 +833,87 @@  discard block
 block discarded – undo
833 833
 in caso di errore, conservare una copia del messaggio visualizzato che potrebbe contenere 
834 834
 delle informazioni utili per identificare il problema.</p><p>
835 835
 Se il problema persiste, contattare il proprio fornitore di hosting.</p>',
836
-	'texte_selection_langue_principale' => 'Puoi selezionare qui sotto la «lingua predefinita» del sito. Questa scelta non obbliga - fortunatamente! - a scrivere gli articoli nella stessa lingua, ma permette di determinare:
836
+    'texte_selection_langue_principale' => 'Puoi selezionare qui sotto la «lingua predefinita» del sito. Questa scelta non obbliga - fortunatamente! - a scrivere gli articoli nella stessa lingua, ma permette di determinare:
837 837
 <ul><li> il formato di default delle date sul sito pubblico;</li>
838 838
 <li> la tipologia di motore tipografico che SPIP deve utilizzare per la resa del testo;</li>
839 839
 <li> la lingua utilizzata nelle finestre di dialogo del sito pubblico;</li>
840 840
 <li> la lingua di default nell’area riservata all’amministrazione.</li></ul>',
841
-	'texte_sous_titre' => 'Sottotitolo',
842
-	'texte_statistiques_visites' => '(barre scure:  domenica / curve scure: evoluzione della media)',
843
-	'texte_statut_attente_validation' => 'in attesa di convalida',
844
-	'texte_statut_publies' => 'pubblicato on line',
845
-	'texte_statut_refuses' => 'rifiutati',
846
-	'texte_suppression_fichiers' => 'Utilizza questo commando per cancellare tutti i file presenti nella
841
+    'texte_sous_titre' => 'Sottotitolo',
842
+    'texte_statistiques_visites' => '(barre scure:  domenica / curve scure: evoluzione della media)',
843
+    'texte_statut_attente_validation' => 'in attesa di convalida',
844
+    'texte_statut_publies' => 'pubblicato on line',
845
+    'texte_statut_refuses' => 'rifiutati',
846
+    'texte_suppression_fichiers' => 'Utilizza questo commando per cancellare tutti i file presenti nella
847 847
 cache di SPIP. Ciò permette ad esempio di forzare la rigenerazione di tutte le pagine se hai fatto delle importanti modifiche di grafica o di struttura del sito.',
848
-	'texte_sur_titre' => 'Occhiello',
849
-	'texte_table_ok' => ': questa tabella è OK.',
850
-	'texte_tentative_recuperation' => 'Tentativo di ripristino',
851
-	'texte_tenter_reparation' => 'Tenta un ripristino del database',
852
-	'texte_test_proxy' => 'Per fare una prova di questo proxy, indicare qui l’indirizzo
848
+    'texte_sur_titre' => 'Occhiello',
849
+    'texte_table_ok' => ': questa tabella è OK.',
850
+    'texte_tentative_recuperation' => 'Tentativo di ripristino',
851
+    'texte_tenter_reparation' => 'Tenta un ripristino del database',
852
+    'texte_test_proxy' => 'Per fare una prova di questo proxy, indicare qui l’indirizzo
853 853
 di un sito Web da testare.',
854
-	'texte_titre_02' => 'Titolo:',
855
-	'texte_titre_obligatoire' => '<b>Titolo</b> [Obbligatorio]',
856
-	'texte_travail_article' => '@nom_auteur_modif@ ha lavorato su questo articolo @date_diff@ minuti fa',
857
-	'texte_travail_collaboratif' => 'Se diversi autori lavorano spesso sullo stesso articolo,
854
+    'texte_titre_02' => 'Titolo:',
855
+    'texte_titre_obligatoire' => '<b>Titolo</b> [Obbligatorio]',
856
+    'texte_travail_article' => '@nom_auteur_modif@ ha lavorato su questo articolo @date_diff@ minuti fa',
857
+    'texte_travail_collaboratif' => 'Se diversi autori lavorano spesso sullo stesso articolo,
858 858
 il sistema può segnalare gli articoli «aperti»
859 859
 di recente al fine di evitare modifiche simultanee.
860 860
 Questa opzione è disattivata di default
861 861
 per evitare di generare messaggi d’avvertimento intempestivi.',
862
-	'texte_vide' => 'vuoto',
863
-	'texte_vider_cache' => 'Svuota la cache',
864
-	'titre_admin_tech' => 'Manutenzione tecnica',
865
-	'titre_admin_vider' => 'Manutenzione tecnica',
866
-	'titre_ajouter_un_auteur' => 'Aggiungi un autore',
867
-	'titre_ajouter_un_mot' => 'Aggiungi una parola chiave',
868
-	'titre_cadre_afficher_article' => 'Visualizza gli articoli',
869
-	'titre_cadre_afficher_traductions' => 'Visualizzare lo stato delle traduzioni per le seguenti lingue:',
870
-	'titre_cadre_ajouter_auteur' => 'AGGIUNGI UN AUTORE: ',
871
-	'titre_cadre_interieur_rubrique' => 'All’interno della rubrica',
872
-	'titre_cadre_numero_auteur' => 'AUTORE NUMERO',
873
-	'titre_cadre_numero_objet' => '@objet@ NUMERO :',
874
-	'titre_cadre_signature_obligatoire' => '<b>Firma</b> [Obbligatoria]<br />',
875
-	'titre_config_contenu_notifications' => 'Notifiche',
876
-	'titre_config_contenu_prive' => 'Nell’area riservata',
877
-	'titre_config_contenu_public' => 'Sul sito pubblico',
878
-	'titre_config_fonctions' => 'Configurazione del sito',
879
-	'titre_config_langage' => 'Configura la lingua',
880
-	'titre_configuration' => 'Configurazione del sito',
881
-	'titre_configurer_preferences' => 'Configura le tue preferenze',
882
-	'titre_configurer_preferences_menus' => 'Imposta le tue preferenze di menù',
883
-	'titre_conflit_edition' => 'Conflitto all’atto dell’edizione',
884
-	'titre_connexion_ldap' => 'Opzioni: <b>La connessione LDAP</b>',
885
-	'titre_groupe_mots' => 'GRUPPO DI PAROLE CHIAVE:',
886
-	'titre_identite_site' => 'Identità del sito',
887
-	'titre_langue_article' => 'Lingua dell’articolo',
888
-	'titre_langue_rubrique' => 'Lingua della rubrica',
889
-	'titre_langue_trad_article' => 'LINGUA E TRADUZIONI DELL’ARTICOLO',
890
-	'titre_les_articles' => 'GLI ARTICOLI',
891
-	'titre_messagerie_agenda' => 'Messagistica e agenda',
892
-	'titre_naviguer_dans_le_site' => 'Navigare nel sito...',
893
-	'titre_nouvelle_rubrique' => 'Nuova rubrica',
894
-	'titre_numero_rubrique' => 'RUBRICA NUMERO:',
895
-	'titre_page_articles_edit' => 'Modifica: @titre@',
896
-	'titre_page_articles_page' => 'Gli articoli',
897
-	'titre_page_articles_tous' => 'Tutto il sito',
898
-	'titre_page_calendrier' => 'Calendario @nom_mois@ @annee@',
899
-	'titre_page_config_contenu' => 'Configurazione del sito',
900
-	'titre_page_delete_all' => 'eliminazione totale e irreversible',
901
-	'titre_page_recherche' => 'Risultati della ricerca @recherche@',
902
-	'titre_page_statistiques_referers' => 'Statistiche (link al tuo sito)',
903
-	'titre_page_upgrade' => 'Aggiornamento di SPIP',
904
-	'titre_preference_menus_favoris' => 'Menù preferiti',
905
-	'titre_publication_articles_post_dates' => 'Pubblicazione di articoli postdatati',
906
-	'titre_reparation' => 'Riparazione',
907
-	'titre_suivi_petition' => 'Monitoraggio delle petizioni',
908
-	'tls_ldap' => 'Transport Layer Security:',
909
-	'trad_article_traduction' => 'Tutte le versioni di questo articolo:',
910
-	'trad_delier' => 'Non collegare più questo articolo alle sue traduzioni',
911
-	'trad_lier' => 'Questo articolo è una traduzione dell’articolo numero:',
912
-	'trad_new' => 'Scrivere una nuova traduzione dell’articolo',
862
+    'texte_vide' => 'vuoto',
863
+    'texte_vider_cache' => 'Svuota la cache',
864
+    'titre_admin_tech' => 'Manutenzione tecnica',
865
+    'titre_admin_vider' => 'Manutenzione tecnica',
866
+    'titre_ajouter_un_auteur' => 'Aggiungi un autore',
867
+    'titre_ajouter_un_mot' => 'Aggiungi una parola chiave',
868
+    'titre_cadre_afficher_article' => 'Visualizza gli articoli',
869
+    'titre_cadre_afficher_traductions' => 'Visualizzare lo stato delle traduzioni per le seguenti lingue:',
870
+    'titre_cadre_ajouter_auteur' => 'AGGIUNGI UN AUTORE: ',
871
+    'titre_cadre_interieur_rubrique' => 'All’interno della rubrica',
872
+    'titre_cadre_numero_auteur' => 'AUTORE NUMERO',
873
+    'titre_cadre_numero_objet' => '@objet@ NUMERO :',
874
+    'titre_cadre_signature_obligatoire' => '<b>Firma</b> [Obbligatoria]<br />',
875
+    'titre_config_contenu_notifications' => 'Notifiche',
876
+    'titre_config_contenu_prive' => 'Nell’area riservata',
877
+    'titre_config_contenu_public' => 'Sul sito pubblico',
878
+    'titre_config_fonctions' => 'Configurazione del sito',
879
+    'titre_config_langage' => 'Configura la lingua',
880
+    'titre_configuration' => 'Configurazione del sito',
881
+    'titre_configurer_preferences' => 'Configura le tue preferenze',
882
+    'titre_configurer_preferences_menus' => 'Imposta le tue preferenze di menù',
883
+    'titre_conflit_edition' => 'Conflitto all’atto dell’edizione',
884
+    'titre_connexion_ldap' => 'Opzioni: <b>La connessione LDAP</b>',
885
+    'titre_groupe_mots' => 'GRUPPO DI PAROLE CHIAVE:',
886
+    'titre_identite_site' => 'Identità del sito',
887
+    'titre_langue_article' => 'Lingua dell’articolo',
888
+    'titre_langue_rubrique' => 'Lingua della rubrica',
889
+    'titre_langue_trad_article' => 'LINGUA E TRADUZIONI DELL’ARTICOLO',
890
+    'titre_les_articles' => 'GLI ARTICOLI',
891
+    'titre_messagerie_agenda' => 'Messagistica e agenda',
892
+    'titre_naviguer_dans_le_site' => 'Navigare nel sito...',
893
+    'titre_nouvelle_rubrique' => 'Nuova rubrica',
894
+    'titre_numero_rubrique' => 'RUBRICA NUMERO:',
895
+    'titre_page_articles_edit' => 'Modifica: @titre@',
896
+    'titre_page_articles_page' => 'Gli articoli',
897
+    'titre_page_articles_tous' => 'Tutto il sito',
898
+    'titre_page_calendrier' => 'Calendario @nom_mois@ @annee@',
899
+    'titre_page_config_contenu' => 'Configurazione del sito',
900
+    'titre_page_delete_all' => 'eliminazione totale e irreversible',
901
+    'titre_page_recherche' => 'Risultati della ricerca @recherche@',
902
+    'titre_page_statistiques_referers' => 'Statistiche (link al tuo sito)',
903
+    'titre_page_upgrade' => 'Aggiornamento di SPIP',
904
+    'titre_preference_menus_favoris' => 'Menù preferiti',
905
+    'titre_publication_articles_post_dates' => 'Pubblicazione di articoli postdatati',
906
+    'titre_reparation' => 'Riparazione',
907
+    'titre_suivi_petition' => 'Monitoraggio delle petizioni',
908
+    'tls_ldap' => 'Transport Layer Security:',
909
+    'trad_article_traduction' => 'Tutte le versioni di questo articolo:',
910
+    'trad_delier' => 'Non collegare più questo articolo alle sue traduzioni',
911
+    'trad_lier' => 'Questo articolo è una traduzione dell’articolo numero:',
912
+    'trad_new' => 'Scrivere una nuova traduzione dell’articolo',
913 913
 
914
-	// U
915
-	'utf8_convert_erreur_orig' => 'Errore: il set di caratteri @charset@ non è supportato.',
914
+    // U
915
+    'utf8_convert_erreur_orig' => 'Errore: il set di caratteri @charset@ non è supportato.',
916 916
 
917
-	// V
918
-	'version' => 'Versione:'
917
+    // V
918
+    'version' => 'Versione:'
919 919
 );
Please login to merge, or discard this patch.
ecrire/lang/public_it.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' => 'Home',
14
-	'article' => 'Articolo',
15
-	'articles' => 'Articoli',
16
-	'articles_auteur' => 'Articoli di questo autore',
17
-	'articles_populaires' => 'Articoli più letti',
18
-	'articles_rubrique' => 'Articoli di questa rubrica',
19
-	'aucun_article' => 'Non ci sono articoli a questo indirizzo',
20
-	'aucun_auteur' => 'Non ci sono autori a questo indirizzo',
21
-	'aucun_site' => 'Non ci sono siti a questo indirizzo',
22
-	'aucune_breve' => 'Non ci sono brevi a questo indirizzo',
23
-	'aucune_rubrique' => 'Non ci sono rubriche a questo indirizzo',
24
-	'auteur' => 'Autore',
25
-	'autres' => 'Altri',
26
-	'autres_breves' => 'Altre brevi',
27
-	'autres_groupes_mots_clefs' => 'Altri gruppi di parole chiave',
28
-	'autres_sites' => 'Altri siti',
29
-
30
-	// B
31
-	'bonjour' => 'Salve',
32
-
33
-	// C
34
-	'commenter_site' => 'Commenta questo sito',
35
-	'contact' => 'Contatti',
36
-	'copie_document_impossible' => 'Impossibile copiare il documento',
37
-
38
-	// D
39
-	'date' => 'Data',
40
-	'dernier_ajout' => 'Ultimo aggiornamento',
41
-	'dernieres_breves' => 'Ultime brevi',
42
-	'derniers_articles' => 'Ultimi articoli',
43
-	'derniers_commentaires' => 'Ultimi commenti',
44
-	'derniers_messages_forum' => 'Ultimi messaggi pubblicati nei forum',
45
-
46
-	// E
47
-	'edition_mode_texte' => 'Versione solo testo di',
48
-	'en_reponse' => 'In risposta a:',
49
-	'en_resume' => 'Riassunto',
50
-	'envoyer_message' => 'Invia un messaggio',
51
-	'espace_prive' => 'Area riservata',
52
-
53
-	// F
54
-	'formats_acceptes' => 'Formati accettati: @formats@.',
55
-
56
-	// H
57
-	'hierarchie_site' => 'Mappa del sito',
58
-
59
-	// J
60
-	'jours' => 'giorni',
61
-
62
-	// L
63
-	'lien_connecter' => 'Connettersi',
64
-
65
-	// M
66
-	'meme_auteur' => 'Dello stesso autore',
67
-	'meme_rubrique' => 'Nella stessa rubrica',
68
-	'memes_auteurs' => 'Degli stessi autori',
69
-	'message' => 'Messaggio',
70
-	'messages_forum' => 'Messaggi',
71
-	'messages_recents' => 'Messaggi più recenti del forum',
72
-	'mots_clef' => 'Parola chiave',
73
-	'mots_clefs' => 'Parole chiave',
74
-	'mots_clefs_meme_groupe' => 'Parole chiave nello stesso gruppo',
75
-
76
-	// N
77
-	'navigation' => 'Navigazione',
78
-	'nom' => 'Cognome',
79
-	'nouveautes' => 'Le novità',
80
-	'nouveautes_web' => 'Novità sul Web',
81
-	'nouveaux_articles' => 'Nuovi articoli',
82
-	'nouvelles_breves' => 'Nuove brevi',
83
-
84
-	// P
85
-	'page_precedente' => 'pagina precedente',
86
-	'page_suivante' => 'pagina successiva',
87
-	'par_auteur' => 'di ',
88
-	'participer_site' => 'È possibile partecipare alla vita di questo sito e proporre degli articoli iscrivendosi qui sotto. Verrà spedito immediatamente un email con il codice di accesso all’area riservata del sito.',
89
-	'plan_site' => 'Mappa del sito',
90
-	'popularite' => 'Popolarità',
91
-	'poster_message' => 'Inviare un messaggio',
92
-	'proposer_site' => 'È possibile proporre un sito da aggiungere a questa rubrica:',
93
-
94
-	// R
95
-	'repondre_article' => 'Rispondere all’articolo',
96
-	'repondre_breve' => 'Rispondere a questa breve',
97
-	'resultats_recherche' => 'Risultati della ricerca',
98
-	'retour_debut_forums' => 'Tornare all’inizio dei forum',
99
-	'rss_abonnement' => 'Copia il seguente URL nel tuo aggregatore RSS:',
100
-	'rss_abonnement_titre' => 'Sottoscrivi',
101
-	'rss_abonnement_titre_page' => 'Per sottoscrivere',
102
-	'rss_explication' => 'Un feed RSS raccoglie informazioni di aggiornamento per un sito. Fornisce il contenuto dei post o dei commenti o un estratto da essi, nonché un collegamento alle versioni complete e alcune altre informazioni. Questo feed deve essere letto da un aggregatore RSS.',
103
-	'rss_explication_titre' => 'Cos’è un flusso RSS?',
104
-	'rubrique' => 'Rubrica',
105
-	'rubriques' => 'Rubriche',
106
-
107
-	// S
108
-	'signatures_petition' => 'Firme',
109
-	'site_realise_avec_spip' => 'Sito realizzato con SPIP',
110
-	'sites_web' => 'Siti Web',
111
-	'sous_rubriques' => 'Sottorubriche',
112
-	'spam' => 'Spam',
113
-	'suite' => 'segue',
114
-	'sur_web' => 'Sul Web',
115
-	'syndiquer_rubrique' => 'Mettere in syndication questa rubrica',
116
-	'syndiquer_site' => 'Mettere in syndication tutto il sito',
117
-
118
-	// T
119
-	'texte_lettre_information' => 'Newsletter del sito',
120
-	'texte_lettre_information_2' => 'Questo sito contiene articoli pubblicati a partire dal ',
121
-
122
-	// V
123
-	'ver_imprimer' => 'Versione per la stampa',
124
-	'voir_en_ligne' => 'Vedi on line',
125
-	'voir_squelette' => 'visualizza il modello di questa pagina'
12
+    // A
13
+    'accueil_site' => 'Home',
14
+    'article' => 'Articolo',
15
+    'articles' => 'Articoli',
16
+    'articles_auteur' => 'Articoli di questo autore',
17
+    'articles_populaires' => 'Articoli più letti',
18
+    'articles_rubrique' => 'Articoli di questa rubrica',
19
+    'aucun_article' => 'Non ci sono articoli a questo indirizzo',
20
+    'aucun_auteur' => 'Non ci sono autori a questo indirizzo',
21
+    'aucun_site' => 'Non ci sono siti a questo indirizzo',
22
+    'aucune_breve' => 'Non ci sono brevi a questo indirizzo',
23
+    'aucune_rubrique' => 'Non ci sono rubriche a questo indirizzo',
24
+    'auteur' => 'Autore',
25
+    'autres' => 'Altri',
26
+    'autres_breves' => 'Altre brevi',
27
+    'autres_groupes_mots_clefs' => 'Altri gruppi di parole chiave',
28
+    'autres_sites' => 'Altri siti',
29
+
30
+    // B
31
+    'bonjour' => 'Salve',
32
+
33
+    // C
34
+    'commenter_site' => 'Commenta questo sito',
35
+    'contact' => 'Contatti',
36
+    'copie_document_impossible' => 'Impossibile copiare il documento',
37
+
38
+    // D
39
+    'date' => 'Data',
40
+    'dernier_ajout' => 'Ultimo aggiornamento',
41
+    'dernieres_breves' => 'Ultime brevi',
42
+    'derniers_articles' => 'Ultimi articoli',
43
+    'derniers_commentaires' => 'Ultimi commenti',
44
+    'derniers_messages_forum' => 'Ultimi messaggi pubblicati nei forum',
45
+
46
+    // E
47
+    'edition_mode_texte' => 'Versione solo testo di',
48
+    'en_reponse' => 'In risposta a:',
49
+    'en_resume' => 'Riassunto',
50
+    'envoyer_message' => 'Invia un messaggio',
51
+    'espace_prive' => 'Area riservata',
52
+
53
+    // F
54
+    'formats_acceptes' => 'Formati accettati: @formats@.',
55
+
56
+    // H
57
+    'hierarchie_site' => 'Mappa del sito',
58
+
59
+    // J
60
+    'jours' => 'giorni',
61
+
62
+    // L
63
+    'lien_connecter' => 'Connettersi',
64
+
65
+    // M
66
+    'meme_auteur' => 'Dello stesso autore',
67
+    'meme_rubrique' => 'Nella stessa rubrica',
68
+    'memes_auteurs' => 'Degli stessi autori',
69
+    'message' => 'Messaggio',
70
+    'messages_forum' => 'Messaggi',
71
+    'messages_recents' => 'Messaggi più recenti del forum',
72
+    'mots_clef' => 'Parola chiave',
73
+    'mots_clefs' => 'Parole chiave',
74
+    'mots_clefs_meme_groupe' => 'Parole chiave nello stesso gruppo',
75
+
76
+    // N
77
+    'navigation' => 'Navigazione',
78
+    'nom' => 'Cognome',
79
+    'nouveautes' => 'Le novità',
80
+    'nouveautes_web' => 'Novità sul Web',
81
+    'nouveaux_articles' => 'Nuovi articoli',
82
+    'nouvelles_breves' => 'Nuove brevi',
83
+
84
+    // P
85
+    'page_precedente' => 'pagina precedente',
86
+    'page_suivante' => 'pagina successiva',
87
+    'par_auteur' => 'di ',
88
+    'participer_site' => 'È possibile partecipare alla vita di questo sito e proporre degli articoli iscrivendosi qui sotto. Verrà spedito immediatamente un email con il codice di accesso all’area riservata del sito.',
89
+    'plan_site' => 'Mappa del sito',
90
+    'popularite' => 'Popolarità',
91
+    'poster_message' => 'Inviare un messaggio',
92
+    'proposer_site' => 'È possibile proporre un sito da aggiungere a questa rubrica:',
93
+
94
+    // R
95
+    'repondre_article' => 'Rispondere all’articolo',
96
+    'repondre_breve' => 'Rispondere a questa breve',
97
+    'resultats_recherche' => 'Risultati della ricerca',
98
+    'retour_debut_forums' => 'Tornare all’inizio dei forum',
99
+    'rss_abonnement' => 'Copia il seguente URL nel tuo aggregatore RSS:',
100
+    'rss_abonnement_titre' => 'Sottoscrivi',
101
+    'rss_abonnement_titre_page' => 'Per sottoscrivere',
102
+    'rss_explication' => 'Un feed RSS raccoglie informazioni di aggiornamento per un sito. Fornisce il contenuto dei post o dei commenti o un estratto da essi, nonché un collegamento alle versioni complete e alcune altre informazioni. Questo feed deve essere letto da un aggregatore RSS.',
103
+    'rss_explication_titre' => 'Cos’è un flusso RSS?',
104
+    'rubrique' => 'Rubrica',
105
+    'rubriques' => 'Rubriche',
106
+
107
+    // S
108
+    'signatures_petition' => 'Firme',
109
+    'site_realise_avec_spip' => 'Sito realizzato con SPIP',
110
+    'sites_web' => 'Siti Web',
111
+    'sous_rubriques' => 'Sottorubriche',
112
+    'spam' => 'Spam',
113
+    'suite' => 'segue',
114
+    'sur_web' => 'Sul Web',
115
+    'syndiquer_rubrique' => 'Mettere in syndication questa rubrica',
116
+    'syndiquer_site' => 'Mettere in syndication tutto il sito',
117
+
118
+    // T
119
+    'texte_lettre_information' => 'Newsletter del sito',
120
+    'texte_lettre_information_2' => 'Questo sito contiene articoli pubblicati a partire dal ',
121
+
122
+    // V
123
+    'ver_imprimer' => 'Versione per la stampa',
124
+    'voir_en_ligne' => 'Vedi on line',
125
+    'voir_squelette' => 'visualizza il modello di questa pagina'
126 126
 );
Please login to merge, or discard this patch.
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.
ecrire/base/trouver_table.php 2 patches
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -90,9 +90,9 @@  discard block
 block discarded – undo
90 90
 	// de connexion, et tout risque d'ambiguite
91 91
 	if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
92 92
 		$nom_cache_desc_sql[$serveur][$objets_sql] =
93
-			_DIR_CACHE . 'sql_desc_'
93
+			_DIR_CACHE.'sql_desc_'
94 94
 			. ($serveur ? "{$serveur}_" : '')
95
-			. substr(md5($connexion['db'] . ':' . $connexion['prefixe'] . ":$objets_sql"), 0, 8)
95
+			. substr(md5($connexion['db'].':'.$connexion['prefixe'].":$objets_sql"), 0, 8)
96 96
 			. '.txt';
97 97
 		// nouveau nom de cache = nouvelle version en memoire
98 98
 		unset($connexion['tables']);
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
 	if ($connexion['spip_connect_version']) {
121 121
 		if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
122 122
 			$nom = $GLOBALS['table_des_tables'][$nom];
123
-			$nom_sql = 'spip_' . $nom;
123
+			$nom_sql = 'spip_'.$nom;
124 124
 		}
125 125
 	}
126 126
 
@@ -147,12 +147,12 @@  discard block
 block discarded – undo
147 147
 		// meme si pas d'abreviation declaree, trouver la table spip_$nom
148 148
 		// si c'est une table principale,
149 149
 		// puisqu'on le fait aussi pour les tables auxiliaires
150
-		elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
151
-			$nom_sql = 'spip_' . $nom;
150
+		elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_'.$nom])) {
151
+			$nom_sql = 'spip_'.$nom;
152 152
 			$fdesc = &$GLOBALS['tables_principales'][$nom_sql];
153 153
 		} elseif (
154 154
 			isset($GLOBALS['tables_auxiliaires'][$n = $nom])
155
-			or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])
155
+			or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_'.$nom])
156 156
 		) {
157 157
 			$nom_sql = $n;
158 158
 			$fdesc = &$GLOBALS['tables_auxiliaires'][$n];
@@ -168,7 +168,7 @@  discard block
 block discarded – undo
168 168
 		) {
169 169
 			if (!$fdesc) {
170 170
 				$log_level = $options['log_missing'] ? _LOG_INFO_IMPORTANTE : _LOG_DEBUG;
171
-				spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base' . $log_level);
171
+				spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base'.$log_level);
172 172
 
173 173
 				return null;
174 174
 			}
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
 			$desc['exist'] = true;
181 181
 			// gerer le cas des cles vides (echec de l'analyse sur une vue par exemple)
182 182
 			// pour recuperer la declaration de lister_tables_objets_sql() si il y en a une
183
-			if (! $desc['key']) {
183
+			if (!$desc['key']) {
184 184
 				spip_log("trouver_table: table sans cle '$serveur' '$nom'", 'base');
185 185
 				unset($desc['key']);
186 186
 			}
@@ -197,7 +197,7 @@  discard block
 block discarded – undo
197 197
 		if (!isset($desc['key']) && !empty($fdesc['key'])) {
198 198
 			$desc['key'] = $fdesc['key'];
199 199
 		}
200
-		if (! isset($desc['key'])) {
200
+		if (!isset($desc['key'])) {
201 201
 			$desc['key'] = [];
202 202
 		}
203 203
 
Please login to merge, or discard this patch.
Indentation   +151 added lines, -151 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\SQL\Tables
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 include_spip('base/objets');
22 22
 
@@ -68,154 +68,154 @@  discard block
 block discarded – undo
68 68
  *
69 69
  **/
70 70
 function base_trouver_table_dist($nom, $serveur = '', $table_spip = true, array $options = []) {
71
-	$desc_cache = null;
72
-	static $nom_cache_desc_sql = [];
73
-
74
-	if (
75
-		!spip_connect($serveur)
76
-		or !preg_match('/^[a-zA-Z0-9._-]*/', $nom)
77
-	) {
78
-		return null;
79
-	}
80
-
81
-	$options = $options + [
82
-		// si false, baissera le niveau de log si une table demandée n’existe pas
83
-		'log_missing' => true,
84
-	];
85
-
86
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
87
-	$objets_sql = lister_tables_objets_sql('::md5');
88
-
89
-	// le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
90
-	// ce qui permet une auto invalidation en cas de modif manuelle du fichier
91
-	// de connexion, et tout risque d'ambiguite
92
-	if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
93
-		$nom_cache_desc_sql[$serveur][$objets_sql] =
94
-			_DIR_CACHE . 'sql_desc_'
95
-			. ($serveur ? "{$serveur}_" : '')
96
-			. substr(md5($connexion['db'] . ':' . $connexion['prefixe'] . ":$objets_sql"), 0, 8)
97
-			. '.txt';
98
-		// nouveau nom de cache = nouvelle version en memoire
99
-		unset($connexion['tables']);
100
-	}
101
-
102
-	// un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
103
-	if (!$nom) {
104
-		spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
105
-		$connexion['tables'] = [];
106
-
107
-		return null;
108
-	}
109
-
110
-	$nom_sql = $nom;
111
-	if (preg_match('/\.(.*)$/', $nom, $s)) {
112
-		$nom_sql = $s[1];
113
-	} else {
114
-		$nom_sql = $nom;
115
-	}
116
-
117
-	$fdesc = $desc = '';
118
-	$connexion = &$GLOBALS['connexions'][$serveur ?: 0];
119
-
120
-	// base sous SPIP: gerer les abreviations explicites des noms de table
121
-	if ($connexion['spip_connect_version']) {
122
-		if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
123
-			$nom = $GLOBALS['table_des_tables'][$nom];
124
-			$nom_sql = 'spip_' . $nom;
125
-		}
126
-	}
127
-
128
-	// si c'est la premiere table qu'on cherche
129
-	// et si on est pas explicitement en recalcul
130
-	// on essaye de recharger le cache des decriptions de ce serveur
131
-	// dans le fichier cache
132
-	if (
133
-		!isset($connexion['tables'][$nom_sql])
134
-		and defined('_VAR_MODE') and _VAR_MODE !== 'recalcul'
135
-		and (!isset($connexion['tables']) or !$connexion['tables'])
136
-	) {
137
-		if (
138
-			lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], $desc_cache)
139
-			and $desc_cache = unserialize($desc_cache)
140
-		) {
141
-			$connexion['tables'] = $desc_cache;
142
-		}
143
-	}
144
-	if ($table_spip and !isset($connexion['tables'][$nom_sql])) {
145
-		if (isset($GLOBALS['tables_principales'][$nom_sql])) {
146
-			$fdesc = $GLOBALS['tables_principales'][$nom_sql];
147
-		}
148
-		// meme si pas d'abreviation declaree, trouver la table spip_$nom
149
-		// si c'est une table principale,
150
-		// puisqu'on le fait aussi pour les tables auxiliaires
151
-		elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
152
-			$nom_sql = 'spip_' . $nom;
153
-			$fdesc = &$GLOBALS['tables_principales'][$nom_sql];
154
-		} elseif (
155
-			isset($GLOBALS['tables_auxiliaires'][$n = $nom])
156
-			or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])
157
-		) {
158
-			$nom_sql = $n;
159
-			$fdesc = &$GLOBALS['tables_auxiliaires'][$n];
160
-		}  # table locale a cote de SPIP, comme non SPIP:
161
-	}
162
-	if (!isset($connexion['tables'][$nom_sql])) {
163
-		// La *vraie* base a la priorite
164
-		$exists = sql_table_exists($nom_sql, $table_spip, $serveur);
165
-		if (
166
-			!$exists
167
-			or !$desc = sql_showtable($nom_sql, $table_spip, $serveur)
168
-			or !$desc['field']
169
-		) {
170
-			if (!$fdesc) {
171
-				$log_level = $options['log_missing'] ? _LOG_INFO_IMPORTANTE : _LOG_DEBUG;
172
-				spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base' . $log_level);
173
-
174
-				return null;
175
-			}
176
-			// on ne sait pas lire la structure de la table :
177
-			// on retombe sur la description donnee dans les fichiers spip
178
-			$desc = $fdesc;
179
-			$desc['exist'] = false;
180
-		} else {
181
-			$desc['exist'] = true;
182
-			// gerer le cas des cles vides (echec de l'analyse sur une vue par exemple)
183
-			// pour recuperer la declaration de lister_tables_objets_sql() si il y en a une
184
-			if (! $desc['key']) {
185
-				spip_log("trouver_table: table sans cle '$serveur' '$nom'", 'base');
186
-				unset($desc['key']);
187
-			}
188
-		}
189
-
190
-		$desc['table'] = $desc['table_sql'] = $nom_sql;
191
-		$desc['connexion'] = $serveur;
192
-
193
-		// charger les infos declarees pour cette table
194
-		// en lui passant les infos connues
195
-		// $desc est prioritaire pour la description de la table
196
-		$desc = array_merge(lister_tables_objets_sql($nom_sql, $desc), $desc);
197
-		// s'assurer qu'on a toujours un 'key'
198
-		if (!isset($desc['key']) && !empty($fdesc['key'])) {
199
-			$desc['key'] = $fdesc['key'];
200
-		}
201
-		if (! isset($desc['key'])) {
202
-			$desc['key'] = [];
203
-		}
204
-
205
-		// si tables_objets_sql est bien fini d'init, on peut cacher
206
-		$connexion['tables'][$nom_sql] = $desc;
207
-		$res = &$connexion['tables'][$nom_sql];
208
-		// une nouvelle table a ete decrite
209
-		// mettons donc a jour le cache des descriptions de ce serveur
210
-		if (is_writeable(_DIR_CACHE)) {
211
-			ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], serialize($connexion['tables']), true);
212
-		}
213
-	} else {
214
-		$res = &$connexion['tables'][$nom_sql];
215
-	}
216
-
217
-	// toujours retourner $nom dans id_table
218
-	$res['id_table'] = $nom;
219
-
220
-	return $res;
71
+    $desc_cache = null;
72
+    static $nom_cache_desc_sql = [];
73
+
74
+    if (
75
+        !spip_connect($serveur)
76
+        or !preg_match('/^[a-zA-Z0-9._-]*/', $nom)
77
+    ) {
78
+        return null;
79
+    }
80
+
81
+    $options = $options + [
82
+        // si false, baissera le niveau de log si une table demandée n’existe pas
83
+        'log_missing' => true,
84
+    ];
85
+
86
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
87
+    $objets_sql = lister_tables_objets_sql('::md5');
88
+
89
+    // le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
90
+    // ce qui permet une auto invalidation en cas de modif manuelle du fichier
91
+    // de connexion, et tout risque d'ambiguite
92
+    if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])) {
93
+        $nom_cache_desc_sql[$serveur][$objets_sql] =
94
+            _DIR_CACHE . 'sql_desc_'
95
+            . ($serveur ? "{$serveur}_" : '')
96
+            . substr(md5($connexion['db'] . ':' . $connexion['prefixe'] . ":$objets_sql"), 0, 8)
97
+            . '.txt';
98
+        // nouveau nom de cache = nouvelle version en memoire
99
+        unset($connexion['tables']);
100
+    }
101
+
102
+    // un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
103
+    if (!$nom) {
104
+        spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
105
+        $connexion['tables'] = [];
106
+
107
+        return null;
108
+    }
109
+
110
+    $nom_sql = $nom;
111
+    if (preg_match('/\.(.*)$/', $nom, $s)) {
112
+        $nom_sql = $s[1];
113
+    } else {
114
+        $nom_sql = $nom;
115
+    }
116
+
117
+    $fdesc = $desc = '';
118
+    $connexion = &$GLOBALS['connexions'][$serveur ?: 0];
119
+
120
+    // base sous SPIP: gerer les abreviations explicites des noms de table
121
+    if ($connexion['spip_connect_version']) {
122
+        if ($table_spip and isset($GLOBALS['table_des_tables'][$nom])) {
123
+            $nom = $GLOBALS['table_des_tables'][$nom];
124
+            $nom_sql = 'spip_' . $nom;
125
+        }
126
+    }
127
+
128
+    // si c'est la premiere table qu'on cherche
129
+    // et si on est pas explicitement en recalcul
130
+    // on essaye de recharger le cache des decriptions de ce serveur
131
+    // dans le fichier cache
132
+    if (
133
+        !isset($connexion['tables'][$nom_sql])
134
+        and defined('_VAR_MODE') and _VAR_MODE !== 'recalcul'
135
+        and (!isset($connexion['tables']) or !$connexion['tables'])
136
+    ) {
137
+        if (
138
+            lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], $desc_cache)
139
+            and $desc_cache = unserialize($desc_cache)
140
+        ) {
141
+            $connexion['tables'] = $desc_cache;
142
+        }
143
+    }
144
+    if ($table_spip and !isset($connexion['tables'][$nom_sql])) {
145
+        if (isset($GLOBALS['tables_principales'][$nom_sql])) {
146
+            $fdesc = $GLOBALS['tables_principales'][$nom_sql];
147
+        }
148
+        // meme si pas d'abreviation declaree, trouver la table spip_$nom
149
+        // si c'est une table principale,
150
+        // puisqu'on le fait aussi pour les tables auxiliaires
151
+        elseif ($nom_sql == $nom and isset($GLOBALS['tables_principales']['spip_' . $nom])) {
152
+            $nom_sql = 'spip_' . $nom;
153
+            $fdesc = &$GLOBALS['tables_principales'][$nom_sql];
154
+        } elseif (
155
+            isset($GLOBALS['tables_auxiliaires'][$n = $nom])
156
+            or isset($GLOBALS['tables_auxiliaires'][$n = 'spip_' . $nom])
157
+        ) {
158
+            $nom_sql = $n;
159
+            $fdesc = &$GLOBALS['tables_auxiliaires'][$n];
160
+        }  # table locale a cote de SPIP, comme non SPIP:
161
+    }
162
+    if (!isset($connexion['tables'][$nom_sql])) {
163
+        // La *vraie* base a la priorite
164
+        $exists = sql_table_exists($nom_sql, $table_spip, $serveur);
165
+        if (
166
+            !$exists
167
+            or !$desc = sql_showtable($nom_sql, $table_spip, $serveur)
168
+            or !$desc['field']
169
+        ) {
170
+            if (!$fdesc) {
171
+                $log_level = $options['log_missing'] ? _LOG_INFO_IMPORTANTE : _LOG_DEBUG;
172
+                spip_log("trouver_table: table inconnue '$serveur' '$nom'", 'base' . $log_level);
173
+
174
+                return null;
175
+            }
176
+            // on ne sait pas lire la structure de la table :
177
+            // on retombe sur la description donnee dans les fichiers spip
178
+            $desc = $fdesc;
179
+            $desc['exist'] = false;
180
+        } else {
181
+            $desc['exist'] = true;
182
+            // gerer le cas des cles vides (echec de l'analyse sur une vue par exemple)
183
+            // pour recuperer la declaration de lister_tables_objets_sql() si il y en a une
184
+            if (! $desc['key']) {
185
+                spip_log("trouver_table: table sans cle '$serveur' '$nom'", 'base');
186
+                unset($desc['key']);
187
+            }
188
+        }
189
+
190
+        $desc['table'] = $desc['table_sql'] = $nom_sql;
191
+        $desc['connexion'] = $serveur;
192
+
193
+        // charger les infos declarees pour cette table
194
+        // en lui passant les infos connues
195
+        // $desc est prioritaire pour la description de la table
196
+        $desc = array_merge(lister_tables_objets_sql($nom_sql, $desc), $desc);
197
+        // s'assurer qu'on a toujours un 'key'
198
+        if (!isset($desc['key']) && !empty($fdesc['key'])) {
199
+            $desc['key'] = $fdesc['key'];
200
+        }
201
+        if (! isset($desc['key'])) {
202
+            $desc['key'] = [];
203
+        }
204
+
205
+        // si tables_objets_sql est bien fini d'init, on peut cacher
206
+        $connexion['tables'][$nom_sql] = $desc;
207
+        $res = &$connexion['tables'][$nom_sql];
208
+        // une nouvelle table a ete decrite
209
+        // mettons donc a jour le cache des descriptions de ce serveur
210
+        if (is_writeable(_DIR_CACHE)) {
211
+            ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql], serialize($connexion['tables']), true);
212
+        }
213
+    } else {
214
+        $res = &$connexion['tables'][$nom_sql];
215
+    }
216
+
217
+    // toujours retourner $nom dans id_table
218
+    $res['id_table'] = $nom;
219
+
220
+    return $res;
221 221
 }
Please login to merge, or discard this patch.
ecrire/inc/livrer_fichier.php 3 patches
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.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
 	];
44 44
 	$options = array_merge($defaut, $options);
45 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';
46
+		$options['expire'] = gmdate('D, d M Y H:i:s', time() + $options['expires']).' GMT';
47 47
 	}
48 48
 
49 49
 	if (is_null($options) and isset($_SERVER['HTTP_RANGE'])) {
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
 function spip_livrer_fichier_entetes($fichier, $content_type = 'application/octet-stream', $attachment = false, $expires = 0) {
73 73
 	// toujours envoyer un content type, meme vide !
74 74
 	header('Accept-Ranges: bytes');
75
-	header('Content-Type: ' . $content_type);
75
+	header('Content-Type: '.$content_type);
76 76
 
77 77
 	if ($attachment) {
78 78
 		$f = basename($fichier);
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 	else {
91 91
 		$f = basename($fichier);
92 92
 		header("Content-Disposition: inline; filename=\"$f\";");
93
-		header('Expires: ' . $expires); // set expiration time
93
+		header('Expires: '.$expires); // set expiration time
94 94
 	}
95 95
 }
96 96
 
@@ -142,12 +142,12 @@  discard block
 block discarded – undo
142 142
 	// Parse Content-Range header for byte offsets, looks like "bytes=11525-" OR "bytes=11525-12451"
143 143
 	if ($range and preg_match('%bytes=(\d+)-(\d+)?%i', $range, $match)) {
144 144
 		### Offset signifies where we should begin to read the file
145
-		$byteOffset = (int)$match[1];
145
+		$byteOffset = (int) $match[1];
146 146
 
147 147
 
148 148
 		### Length is for how long we should read the file according to the browser, and can never go beyond the file size
149 149
 		if (isset($match[2])) {
150
-			$finishBytes = (int)$match[2];
150
+			$finishBytes = (int) $match[2];
151 151
 			$byteLength = $finishBytes + 1;
152 152
 		} else {
153 153
 			$finishBytes = $fileSize - 1;
@@ -168,7 +168,7 @@  discard block
 block discarded – undo
168 168
 
169 169
 	// partial content
170 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
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 174
 	$byteRange = $byteLength - $byteOffset;
Please login to merge, or discard this patch.
Braces   +3 added lines, -6 removed lines patch added patch discarded remove patch
@@ -54,8 +54,7 @@  discard block
 block discarded – undo
54 54
 
55 55
 	if (!is_null($options['range'])) {
56 56
 		spip_livrer_fichier_partie($fichier, $options['range']);
57
-	}
58
-	else {
57
+	} else {
59 58
 		spip_livrer_fichier_entier($fichier);
60 59
 	}
61 60
 }
@@ -86,8 +85,7 @@  discard block
 block discarded – undo
86 85
 		header('Expires: 0'); // set expiration time
87 86
 		header('Pragma: public');
88 87
 		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
89
-	}
90
-	else {
88
+	} else {
91 89
 		$f = basename($fichier);
92 90
 		header("Content-Disposition: inline; filename=\"$f\";");
93 91
 		header('Expires: ' . $expires); // set expiration time
@@ -154,8 +152,7 @@  discard block
 block discarded – undo
154 152
 		}
155 153
 
156 154
 		$cr_header = sprintf('Content-Range: bytes %d-%d/%d', $byteOffset, $finishBytes, $fileSize);
157
-	}
158
-	else {
155
+	} else {
159 156
 		// si pas de range valide, on delegue a la methode d'envoi complet
160 157
 		spip_livrer_fichier_entier($fichier);
161 158
 		// redondant, mais facilite la comprehension du code
Please login to merge, or discard this patch.
ecrire/inc/distant.php 3 patches
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -116,8 +116,7 @@  discard block
 block discarded – undo
116 116
 		);
117 117
 		if (!$res or (!$res['length'] and $res['status'] != 304)) {
118 118
 			spip_log("copie_locale : Echec recuperation $source sur $localrac status : " . ($res ? $res['status'] : '-'), 'distant' . _LOG_INFO_IMPORTANTE);
119
-		}
120
-		else {
119
+		} else {
121 120
 			spip_log("copie_locale : recuperation $source sur $localrac OK | taille " . $res['length'] . ' status ' . $res['status'], 'distant');
122 121
 		}
123 122
 		if (!$res or !$res['length']) {
@@ -222,8 +221,7 @@  discard block
 block discarded – undo
222 221
 						break;
223 222
 					}
224 223
 				}
225
-			}
226
-			else {
224
+			} else {
227 225
 				$ip = false;
228 226
 			}
229 227
 		}
Please login to merge, or discard this patch.
Indentation   +1054 added lines, -1054 removed lines patch added patch discarded remove patch
@@ -16,32 +16,32 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Distant
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 if (!defined('_INC_DISTANT_VERSION_HTTP')) {
23
-	define('_INC_DISTANT_VERSION_HTTP', 'HTTP/1.0');
23
+    define('_INC_DISTANT_VERSION_HTTP', 'HTTP/1.0');
24 24
 }
25 25
 if (!defined('_INC_DISTANT_CONTENT_ENCODING')) {
26
-	define('_INC_DISTANT_CONTENT_ENCODING', 'gzip');
26
+    define('_INC_DISTANT_CONTENT_ENCODING', 'gzip');
27 27
 }
28 28
 if (!defined('_INC_DISTANT_USER_AGENT')) {
29
-	define('_INC_DISTANT_USER_AGENT', 'SPIP-' . $GLOBALS['spip_version_affichee'] . ' (' . $GLOBALS['home_server'] . ')');
29
+    define('_INC_DISTANT_USER_AGENT', 'SPIP-' . $GLOBALS['spip_version_affichee'] . ' (' . $GLOBALS['home_server'] . ')');
30 30
 }
31 31
 if (!defined('_INC_DISTANT_MAX_SIZE')) {
32
-	define('_INC_DISTANT_MAX_SIZE', 2_097_152);
32
+    define('_INC_DISTANT_MAX_SIZE', 2_097_152);
33 33
 }
34 34
 if (!defined('_INC_DISTANT_CONNECT_TIMEOUT')) {
35
-	define('_INC_DISTANT_CONNECT_TIMEOUT', 10);
35
+    define('_INC_DISTANT_CONNECT_TIMEOUT', 10);
36 36
 }
37 37
 
38 38
 define('_REGEXP_COPIE_LOCALE', ',' 	.
39
-	preg_replace(
40
-		'@^https?:@',
41
-		'https?:',
42
-		($GLOBALS['meta']['adresse_site'] ?? '')
43
-	)
44
-	. '/?spip.php[?]action=acceder_document.*file=(.*)$,');
39
+    preg_replace(
40
+        '@^https?:@',
41
+        'https?:',
42
+        ($GLOBALS['meta']['adresse_site'] ?? '')
43
+    )
44
+    . '/?spip.php[?]action=acceder_document.*file=(.*)$,');
45 45
 
46 46
 //@define('_COPIE_LOCALE_MAX_SIZE',2097152); // poids (inc/utils l'a fait)
47 47
 
@@ -68,89 +68,89 @@  discard block
 block discarded – undo
68 68
  */
69 69
 function copie_locale($source, $mode = 'auto', $local = null, $taille_max = null) {
70 70
 
71
-	// si c'est la protection de soi-meme, retourner le path
72
-	if ($mode !== 'force' and preg_match(_REGEXP_COPIE_LOCALE, $source, $match)) {
73
-		$source = substr(_DIR_IMG, strlen(_DIR_RACINE)) . urldecode($match[1]);
74
-
75
-		return @file_exists($source) ? $source : false;
76
-	}
77
-
78
-	if (is_null($local)) {
79
-		$local = fichier_copie_locale($source);
80
-	} else {
81
-		if (_DIR_RACINE and strncmp(_DIR_RACINE, $local, strlen(_DIR_RACINE)) == 0) {
82
-			$local = substr($local, strlen(_DIR_RACINE));
83
-		}
84
-	}
85
-
86
-	// si $local = '' c'est un fichier refuse par fichier_copie_locale(),
87
-	// par exemple un fichier qui ne figure pas dans nos documents ;
88
-	// dans ce cas on n'essaie pas de le telecharger pour ensuite echouer
89
-	if (!$local) {
90
-		return false;
91
-	}
92
-
93
-	$localrac = _DIR_RACINE . $local;
94
-	$t = ($mode === 'force') ? false : @file_exists($localrac);
95
-
96
-	// test d'existence du fichier
97
-	if ($mode === 'test') {
98
-		return $t ? $local : '';
99
-	}
100
-
101
-	// sinon voir si on doit/peut le telecharger
102
-	if ($local === $source or !tester_url_absolue($source)) {
103
-		return $local;
104
-	}
105
-
106
-	if ($mode === 'modif' or !$t) {
107
-		// passer par un fichier temporaire unique pour gerer les echecs en cours de recuperation
108
-		// et des eventuelles recuperations concurantes
109
-		include_spip('inc/acces');
110
-		if (!$taille_max) {
111
-			$taille_max = _COPIE_LOCALE_MAX_SIZE;
112
-		}
113
-		$res = recuperer_url(
114
-			$source,
115
-			['file' => $localrac, 'taille_max' => $taille_max, 'if_modified_since' => $t ? filemtime($localrac) : '']
116
-		);
117
-		if (!$res or (!$res['length'] and $res['status'] != 304)) {
118
-			spip_log("copie_locale : Echec recuperation $source sur $localrac status : " . ($res ? $res['status'] : '-'), 'distant' . _LOG_INFO_IMPORTANTE);
119
-		}
120
-		else {
121
-			spip_log("copie_locale : recuperation $source sur $localrac OK | taille " . $res['length'] . ' status ' . $res['status'], 'distant');
122
-		}
123
-		if (!$res or !$res['length']) {
124
-			// si $t c'est sans doute juste un not-modified-since
125
-			return $t ? $local : false;
126
-		}
127
-
128
-		// si on retrouve l'extension
129
-		if (
130
-			!empty($res['headers'])
131
-			and $extension = distant_trouver_extension_selon_headers($source, $res['headers'])
132
-		) {
133
-			if ($sanitizer = charger_fonction($extension, 'sanitizer', true)) {
134
-				$sanitizer($localrac);
135
-			}
136
-		}
137
-
138
-		// pour une eventuelle indexation
139
-		pipeline(
140
-			'post_edition',
141
-			[
142
-				'args' => [
143
-					'operation' => 'copie_locale',
144
-					'source' => $source,
145
-					'fichier' => $local,
146
-					'http_res' => $res['length'],
147
-				],
148
-				'data' => null
149
-			]
150
-		);
151
-	}
152
-
153
-	return $local;
71
+    // si c'est la protection de soi-meme, retourner le path
72
+    if ($mode !== 'force' and preg_match(_REGEXP_COPIE_LOCALE, $source, $match)) {
73
+        $source = substr(_DIR_IMG, strlen(_DIR_RACINE)) . urldecode($match[1]);
74
+
75
+        return @file_exists($source) ? $source : false;
76
+    }
77
+
78
+    if (is_null($local)) {
79
+        $local = fichier_copie_locale($source);
80
+    } else {
81
+        if (_DIR_RACINE and strncmp(_DIR_RACINE, $local, strlen(_DIR_RACINE)) == 0) {
82
+            $local = substr($local, strlen(_DIR_RACINE));
83
+        }
84
+    }
85
+
86
+    // si $local = '' c'est un fichier refuse par fichier_copie_locale(),
87
+    // par exemple un fichier qui ne figure pas dans nos documents ;
88
+    // dans ce cas on n'essaie pas de le telecharger pour ensuite echouer
89
+    if (!$local) {
90
+        return false;
91
+    }
92
+
93
+    $localrac = _DIR_RACINE . $local;
94
+    $t = ($mode === 'force') ? false : @file_exists($localrac);
95
+
96
+    // test d'existence du fichier
97
+    if ($mode === 'test') {
98
+        return $t ? $local : '';
99
+    }
100
+
101
+    // sinon voir si on doit/peut le telecharger
102
+    if ($local === $source or !tester_url_absolue($source)) {
103
+        return $local;
104
+    }
105
+
106
+    if ($mode === 'modif' or !$t) {
107
+        // passer par un fichier temporaire unique pour gerer les echecs en cours de recuperation
108
+        // et des eventuelles recuperations concurantes
109
+        include_spip('inc/acces');
110
+        if (!$taille_max) {
111
+            $taille_max = _COPIE_LOCALE_MAX_SIZE;
112
+        }
113
+        $res = recuperer_url(
114
+            $source,
115
+            ['file' => $localrac, 'taille_max' => $taille_max, 'if_modified_since' => $t ? filemtime($localrac) : '']
116
+        );
117
+        if (!$res or (!$res['length'] and $res['status'] != 304)) {
118
+            spip_log("copie_locale : Echec recuperation $source sur $localrac status : " . ($res ? $res['status'] : '-'), 'distant' . _LOG_INFO_IMPORTANTE);
119
+        }
120
+        else {
121
+            spip_log("copie_locale : recuperation $source sur $localrac OK | taille " . $res['length'] . ' status ' . $res['status'], 'distant');
122
+        }
123
+        if (!$res or !$res['length']) {
124
+            // si $t c'est sans doute juste un not-modified-since
125
+            return $t ? $local : false;
126
+        }
127
+
128
+        // si on retrouve l'extension
129
+        if (
130
+            !empty($res['headers'])
131
+            and $extension = distant_trouver_extension_selon_headers($source, $res['headers'])
132
+        ) {
133
+            if ($sanitizer = charger_fonction($extension, 'sanitizer', true)) {
134
+                $sanitizer($localrac);
135
+            }
136
+        }
137
+
138
+        // pour une eventuelle indexation
139
+        pipeline(
140
+            'post_edition',
141
+            [
142
+                'args' => [
143
+                    'operation' => 'copie_locale',
144
+                    'source' => $source,
145
+                    'fichier' => $local,
146
+                    'http_res' => $res['length'],
147
+                ],
148
+                'data' => null
149
+            ]
150
+        );
151
+    }
152
+
153
+    return $local;
154 154
 }
155 155
 
156 156
 /**
@@ -165,99 +165,99 @@  discard block
 block discarded – undo
165 165
  *   url ou false en cas d'echec
166 166
  */
167 167
 function valider_url_distante($url, $known_hosts = []) {
168
-	if (!function_exists('protocole_verifier')) {
169
-		include_spip('inc/filtres_mini');
170
-	}
171
-
172
-	if (!protocole_verifier($url, ['http', 'https'])) {
173
-		return false;
174
-	}
175
-
176
-	$parsed_url = parse_url($url);
177
-	if (!$parsed_url or empty($parsed_url['host'])) {
178
-		return false;
179
-	}
180
-
181
-	if (isset($parsed_url['user']) or isset($parsed_url['pass'])) {
182
-		return false;
183
-	}
184
-
185
-	if (false !== strpbrk($parsed_url['host'], ':#?[]')) {
186
-		return false;
187
-	}
188
-
189
-	if (!is_array($known_hosts)) {
190
-		$known_hosts = [$known_hosts];
191
-	}
192
-	$known_hosts[] = $GLOBALS['meta']['adresse_site'];
193
-	$known_hosts[] = url_de_base();
194
-	$known_hosts = pipeline('declarer_hosts_distants', $known_hosts);
195
-
196
-	$is_known_host = false;
197
-	foreach ($known_hosts as $known_host) {
198
-		$parse_known = parse_url($known_host);
199
-		if (
200
-			$parse_known
201
-			and strtolower($parse_known['host']) === strtolower($parsed_url['host'])
202
-		) {
203
-			$is_known_host = true;
204
-			break;
205
-		}
206
-	}
207
-
208
-	if (!$is_known_host) {
209
-		$host = trim($parsed_url['host'], '.');
210
-		if (! $ip = filter_var($host, FILTER_VALIDATE_IP)) {
211
-			$ip = gethostbyname($host);
212
-			if ($ip === $host) {
213
-				// Error condition for gethostbyname()
214
-				$ip = false;
215
-			}
216
-			if ($records = dns_get_record($host)) {
217
-				foreach ($records as $record) {
218
-					// il faut que le TTL soit suffisant afin d'etre certain que le copie_locale eventuel qui suit
219
-					// se fasse sur la meme IP
220
-					if ($record['ttl'] < 10) {
221
-						$ip = false;
222
-						break;
223
-					}
224
-				}
225
-			}
226
-			else {
227
-				$ip = false;
228
-			}
229
-		}
230
-		if ($ip) {
231
-			if (! filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
232
-				return false;
233
-			}
234
-		}
235
-	}
236
-
237
-	if (empty($parsed_url['port'])) {
238
-		return $url;
239
-	}
240
-
241
-	$port = $parsed_url['port'];
242
-	if ($port === 80  or $port === 443  or $port === 8080) {
243
-		return $url;
244
-	}
245
-
246
-	if ($is_known_host) {
247
-		foreach ($known_hosts as $known_host) {
248
-			$parse_known = parse_url($known_host);
249
-			if (
250
-				$parse_known
251
-				and !empty($parse_known['port'])
252
-				and strtolower($parse_known['host']) === strtolower($parsed_url['host'])
253
-				and $parse_known['port'] == $port
254
-			) {
255
-				return $url;
256
-			}
257
-		}
258
-	}
259
-
260
-	return false;
168
+    if (!function_exists('protocole_verifier')) {
169
+        include_spip('inc/filtres_mini');
170
+    }
171
+
172
+    if (!protocole_verifier($url, ['http', 'https'])) {
173
+        return false;
174
+    }
175
+
176
+    $parsed_url = parse_url($url);
177
+    if (!$parsed_url or empty($parsed_url['host'])) {
178
+        return false;
179
+    }
180
+
181
+    if (isset($parsed_url['user']) or isset($parsed_url['pass'])) {
182
+        return false;
183
+    }
184
+
185
+    if (false !== strpbrk($parsed_url['host'], ':#?[]')) {
186
+        return false;
187
+    }
188
+
189
+    if (!is_array($known_hosts)) {
190
+        $known_hosts = [$known_hosts];
191
+    }
192
+    $known_hosts[] = $GLOBALS['meta']['adresse_site'];
193
+    $known_hosts[] = url_de_base();
194
+    $known_hosts = pipeline('declarer_hosts_distants', $known_hosts);
195
+
196
+    $is_known_host = false;
197
+    foreach ($known_hosts as $known_host) {
198
+        $parse_known = parse_url($known_host);
199
+        if (
200
+            $parse_known
201
+            and strtolower($parse_known['host']) === strtolower($parsed_url['host'])
202
+        ) {
203
+            $is_known_host = true;
204
+            break;
205
+        }
206
+    }
207
+
208
+    if (!$is_known_host) {
209
+        $host = trim($parsed_url['host'], '.');
210
+        if (! $ip = filter_var($host, FILTER_VALIDATE_IP)) {
211
+            $ip = gethostbyname($host);
212
+            if ($ip === $host) {
213
+                // Error condition for gethostbyname()
214
+                $ip = false;
215
+            }
216
+            if ($records = dns_get_record($host)) {
217
+                foreach ($records as $record) {
218
+                    // il faut que le TTL soit suffisant afin d'etre certain que le copie_locale eventuel qui suit
219
+                    // se fasse sur la meme IP
220
+                    if ($record['ttl'] < 10) {
221
+                        $ip = false;
222
+                        break;
223
+                    }
224
+                }
225
+            }
226
+            else {
227
+                $ip = false;
228
+            }
229
+        }
230
+        if ($ip) {
231
+            if (! filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
232
+                return false;
233
+            }
234
+        }
235
+    }
236
+
237
+    if (empty($parsed_url['port'])) {
238
+        return $url;
239
+    }
240
+
241
+    $port = $parsed_url['port'];
242
+    if ($port === 80  or $port === 443  or $port === 8080) {
243
+        return $url;
244
+    }
245
+
246
+    if ($is_known_host) {
247
+        foreach ($known_hosts as $known_host) {
248
+            $parse_known = parse_url($known_host);
249
+            if (
250
+                $parse_known
251
+                and !empty($parse_known['port'])
252
+                and strtolower($parse_known['host']) === strtolower($parsed_url['host'])
253
+                and $parse_known['port'] == $port
254
+            ) {
255
+                return $url;
256
+            }
257
+        }
258
+    }
259
+
260
+    return false;
261 261
 }
262 262
 
263 263
 /**
@@ -277,86 +277,86 @@  discard block
 block discarded – undo
277 277
  */
278 278
 function prepare_donnees_post($donnees, $boundary = '') {
279 279
 
280
-	// permettre a la fonction qui a demande le post de formater elle meme ses donnees
281
-	// pour un appel soap par exemple
282
-	// l'entete est separe des donnees par un double retour a la ligne
283
-	// on s'occupe ici de passer tous les retours lignes (\r\n, \r ou \n) en \r\n
284
-	if (is_string($donnees) && strlen($donnees)) {
285
-		$entete = '';
286
-		// on repasse tous les \r\n et \r en simples \n
287
-		$donnees = str_replace("\r\n", "\n", $donnees);
288
-		$donnees = str_replace("\r", "\n", $donnees);
289
-		// un double retour a la ligne signifie la fin de l'entete et le debut des donnees
290
-		$p = strpos($donnees, "\n\n");
291
-		if ($p !== false) {
292
-			$entete = str_replace("\n", "\r\n", substr($donnees, 0, $p + 1));
293
-			$donnees = substr($donnees, $p + 2);
294
-		}
295
-		$chaine = str_replace("\n", "\r\n", $donnees);
296
-	} else {
297
-		/* boundary automatique */
298
-		// Si on a plus de 500 octects de donnees, on "boundarise"
299
-		if ($boundary === '') {
300
-			$taille = 0;
301
-			foreach ($donnees as $cle => $valeur) {
302
-				if (is_array($valeur)) {
303
-					foreach ($valeur as $val2) {
304
-						$taille += strlen($val2);
305
-					}
306
-				} else {
307
-					// faut-il utiliser spip_strlen() dans inc/charsets ?
308
-					$taille += strlen($valeur);
309
-				}
310
-			}
311
-			if ($taille > 500) {
312
-				$boundary = substr(md5(random_int(0, mt_getrandmax()) . 'spip'), 0, 8);
313
-			}
314
-		}
315
-
316
-		if (is_string($boundary) and strlen($boundary)) {
317
-			// fabrique une chaine HTTP pour un POST avec boundary
318
-			$entete = "Content-Type: multipart/form-data; boundary=$boundary\r\n";
319
-			$chaine = '';
320
-			if (is_array($donnees)) {
321
-				foreach ($donnees as $cle => $valeur) {
322
-					if (is_array($valeur)) {
323
-						foreach ($valeur as $val2) {
324
-							$chaine .= "\r\n--$boundary\r\n";
325
-							$chaine .= "Content-Disposition: form-data; name=\"{$cle}[]\"\r\n";
326
-							$chaine .= "\r\n";
327
-							$chaine .= $val2;
328
-						}
329
-					} else {
330
-						$chaine .= "\r\n--$boundary\r\n";
331
-						$chaine .= "Content-Disposition: form-data; name=\"$cle\"\r\n";
332
-						$chaine .= "\r\n";
333
-						$chaine .= $valeur;
334
-					}
335
-				}
336
-				$chaine .= "\r\n--$boundary\r\n";
337
-			}
338
-		} else {
339
-			// fabrique une chaine HTTP simple pour un POST
340
-			$entete = 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
341
-			$chaine = [];
342
-			if (is_array($donnees)) {
343
-				foreach ($donnees as $cle => $valeur) {
344
-					if (is_array($valeur)) {
345
-						foreach ($valeur as $val2) {
346
-							$chaine[] = rawurlencode($cle) . '[]=' . rawurlencode($val2);
347
-						}
348
-					} else {
349
-						$chaine[] = rawurlencode($cle) . '=' . rawurlencode($valeur);
350
-					}
351
-				}
352
-				$chaine = implode('&', $chaine);
353
-			} else {
354
-				$chaine = $donnees;
355
-			}
356
-		}
357
-	}
358
-
359
-	return [$entete, $chaine];
280
+    // permettre a la fonction qui a demande le post de formater elle meme ses donnees
281
+    // pour un appel soap par exemple
282
+    // l'entete est separe des donnees par un double retour a la ligne
283
+    // on s'occupe ici de passer tous les retours lignes (\r\n, \r ou \n) en \r\n
284
+    if (is_string($donnees) && strlen($donnees)) {
285
+        $entete = '';
286
+        // on repasse tous les \r\n et \r en simples \n
287
+        $donnees = str_replace("\r\n", "\n", $donnees);
288
+        $donnees = str_replace("\r", "\n", $donnees);
289
+        // un double retour a la ligne signifie la fin de l'entete et le debut des donnees
290
+        $p = strpos($donnees, "\n\n");
291
+        if ($p !== false) {
292
+            $entete = str_replace("\n", "\r\n", substr($donnees, 0, $p + 1));
293
+            $donnees = substr($donnees, $p + 2);
294
+        }
295
+        $chaine = str_replace("\n", "\r\n", $donnees);
296
+    } else {
297
+        /* boundary automatique */
298
+        // Si on a plus de 500 octects de donnees, on "boundarise"
299
+        if ($boundary === '') {
300
+            $taille = 0;
301
+            foreach ($donnees as $cle => $valeur) {
302
+                if (is_array($valeur)) {
303
+                    foreach ($valeur as $val2) {
304
+                        $taille += strlen($val2);
305
+                    }
306
+                } else {
307
+                    // faut-il utiliser spip_strlen() dans inc/charsets ?
308
+                    $taille += strlen($valeur);
309
+                }
310
+            }
311
+            if ($taille > 500) {
312
+                $boundary = substr(md5(random_int(0, mt_getrandmax()) . 'spip'), 0, 8);
313
+            }
314
+        }
315
+
316
+        if (is_string($boundary) and strlen($boundary)) {
317
+            // fabrique une chaine HTTP pour un POST avec boundary
318
+            $entete = "Content-Type: multipart/form-data; boundary=$boundary\r\n";
319
+            $chaine = '';
320
+            if (is_array($donnees)) {
321
+                foreach ($donnees as $cle => $valeur) {
322
+                    if (is_array($valeur)) {
323
+                        foreach ($valeur as $val2) {
324
+                            $chaine .= "\r\n--$boundary\r\n";
325
+                            $chaine .= "Content-Disposition: form-data; name=\"{$cle}[]\"\r\n";
326
+                            $chaine .= "\r\n";
327
+                            $chaine .= $val2;
328
+                        }
329
+                    } else {
330
+                        $chaine .= "\r\n--$boundary\r\n";
331
+                        $chaine .= "Content-Disposition: form-data; name=\"$cle\"\r\n";
332
+                        $chaine .= "\r\n";
333
+                        $chaine .= $valeur;
334
+                    }
335
+                }
336
+                $chaine .= "\r\n--$boundary\r\n";
337
+            }
338
+        } else {
339
+            // fabrique une chaine HTTP simple pour un POST
340
+            $entete = 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
341
+            $chaine = [];
342
+            if (is_array($donnees)) {
343
+                foreach ($donnees as $cle => $valeur) {
344
+                    if (is_array($valeur)) {
345
+                        foreach ($valeur as $val2) {
346
+                            $chaine[] = rawurlencode($cle) . '[]=' . rawurlencode($val2);
347
+                        }
348
+                    } else {
349
+                        $chaine[] = rawurlencode($cle) . '=' . rawurlencode($valeur);
350
+                    }
351
+                }
352
+                $chaine = implode('&', $chaine);
353
+            } else {
354
+                $chaine = $donnees;
355
+            }
356
+        }
357
+    }
358
+
359
+    return [$entete, $chaine];
360 360
 }
361 361
 
362 362
 /**
@@ -370,20 +370,20 @@  discard block
 block discarded – undo
370 370
  */
371 371
 function url_to_ascii($url_idn) {
372 372
 
373
-	if ($parts = parse_url($url_idn)) {
374
-		$host = $parts['host'];
375
-		if (!preg_match(',^[a-z0-9_\.\-]+$,i', $host)) {
376
-			include_spip('inc/idna_convert.class');
377
-			$IDN = new idna_convert();
378
-			$host_ascii = $IDN->encode($host);
379
-			$url_idn = explode($host, $url_idn, 2);
380
-			$url_idn = implode($host_ascii, $url_idn);
381
-		}
382
-		// et on urlencode les char utf si besoin dans le path
383
-		$url_idn = preg_replace_callback('/[^\x20-\x7f]/', fn($match) => urlencode($match[0]), $url_idn);
384
-	}
385
-
386
-	return $url_idn;
373
+    if ($parts = parse_url($url_idn)) {
374
+        $host = $parts['host'];
375
+        if (!preg_match(',^[a-z0-9_\.\-]+$,i', $host)) {
376
+            include_spip('inc/idna_convert.class');
377
+            $IDN = new idna_convert();
378
+            $host_ascii = $IDN->encode($host);
379
+            $url_idn = explode($host, $url_idn, 2);
380
+            $url_idn = implode($host_ascii, $url_idn);
381
+        }
382
+        // et on urlencode les char utf si besoin dans le path
383
+        $url_idn = preg_replace_callback('/[^\x20-\x7f]/', fn($match) => urlencode($match[0]), $url_idn);
384
+    }
385
+
386
+    return $url_idn;
387 387
 }
388 388
 
389 389
 /**
@@ -424,209 +424,209 @@  discard block
 block discarded – undo
424 424
  *     string file : nom du fichier si enregistre dans un fichier
425 425
  */
426 426
 function recuperer_url($url, $options = []) {
427
-	// Conserve la mémoire de la méthode fournit éventuellement
428
-	$methode_demandee = $options['methode'] ?? '';
429
-	$default = [
430
-		'transcoder' => false,
431
-		'methode' => 'GET',
432
-		'taille_max' => null,
433
-		'headers' => [],
434
-		'datas' => '',
435
-		'boundary' => '',
436
-		'refuser_gz' => false,
437
-		'if_modified_since' => '',
438
-		'uri_referer' => '',
439
-		'file' => '',
440
-		'follow_location' => 10,
441
-		'version_http' => _INC_DISTANT_VERSION_HTTP,
442
-	];
443
-	$options = array_merge($default, $options);
444
-	// copier directement dans un fichier ?
445
-	$copy = $options['file'];
446
-
447
-	if ($options['methode'] == 'HEAD') {
448
-		$options['taille_max'] = 0;
449
-	}
450
-	if (is_null($options['taille_max'])) {
451
-		$options['taille_max'] = $copy ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
452
-	}
453
-
454
-	spip_log('recuperer_url ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
455
-
456
-	// Ajout des en-têtes spécifiques si besoin
457
-	$formatted_data = '';
458
-	if (!empty($options['headers'])) {
459
-		foreach ($options['headers'] as $champ => $valeur) {
460
-			$formatted_data .= $champ . ': ' . $valeur . "\r\n";
461
-		}
462
-	}
463
-
464
-	if (!empty($options['datas'])) {
465
-		[$head, $postdata] = prepare_donnees_post($options['datas'], $options['boundary']);
466
-		$head .= $formatted_data;
467
-		if (stripos($head, 'Content-Length:') === false) {
468
-			$head .= 'Content-Length: ' . strlen($postdata) . "\r\n";
469
-		}
470
-		$formatted_data = $head . "\r\n" . $postdata;
471
-		if (
472
-			strlen($postdata)
473
-			and !$methode_demandee
474
-		) {
475
-			$options['methode'] = 'POST';
476
-		}
477
-	} elseif ($formatted_data) {
478
-		$formatted_data .= "\r\n";
479
-	}
480
-
481
-	// Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole
482
-	$url = preg_replace(',^feed://,i', 'http://', $url);
483
-	if (!tester_url_absolue($url)) {
484
-		$url = 'http://' . $url;
485
-	} elseif (strncmp($url, '//', 2) == 0) {
486
-		$url = 'http:' . $url;
487
-	}
488
-
489
-	$url = url_to_ascii($url);
490
-
491
-	$result = [
492
-		'status' => 0,
493
-		'headers' => '',
494
-		'page' => '',
495
-		'length' => 0,
496
-		'last_modified' => '',
497
-		'location' => '',
498
-		'url' => $url
499
-	];
500
-
501
-	// si on ecrit directement dans un fichier, pour ne pas manipuler en memoire refuser gz
502
-	$refuser_gz = (($options['refuser_gz'] or $copy) ? true : false);
503
-
504
-	// ouvrir la connexion et envoyer la requete et ses en-tetes
505
-	[$handle, $fopen] = init_http(
506
-		$options['methode'],
507
-		$url,
508
-		$refuser_gz,
509
-		$options['uri_referer'],
510
-		$formatted_data,
511
-		$options['version_http'],
512
-		$options['if_modified_since']
513
-	);
514
-	if (!$handle) {
515
-		spip_log("ECHEC init_http $url", 'distant' . _LOG_ERREUR);
516
-
517
-		return false;
518
-	}
519
-
520
-	// Sauf en fopen, envoyer le flux d'entree
521
-	// et recuperer les en-tetes de reponses
522
-	if (!$fopen) {
523
-		$res = recuperer_entetes_complets($handle, $options['if_modified_since']);
524
-		if (!$res) {
525
-			fclose($handle);
526
-			$t = @parse_url($url);
527
-			$host = $t['host'];
528
-			// Chinoisierie inexplicable pour contrer
529
-			// les actions liberticides de l'empire du milieu
530
-			if (
531
-				!need_proxy($host)
532
-				and $res = @file_get_contents($url)
533
-			) {
534
-				$result['length'] = strlen($res);
535
-				if ($copy) {
536
-					ecrire_fichier($copy, $res);
537
-					$result['file'] = $copy;
538
-				} else {
539
-					$result['page'] = $res;
540
-				}
541
-				$res = [
542
-					'status' => 200,
543
-				];
544
-			} else {
545
-				spip_log("ECHEC chinoiserie $url", 'distant' . _LOG_ERREUR);
546
-				return false;
547
-			}
548
-		} elseif ($res['location'] and $options['follow_location']) {
549
-			$options['follow_location']--;
550
-			fclose($handle);
551
-			include_spip('inc/filtres');
552
-			$url = suivre_lien($url, $res['location']);
553
-
554
-			// une redirection doit se faire en GET, sauf status explicite 307 ou 308 qui indique de garder la meme methode
555
-			if ($options['methode'] !== 'GET') {
556
-				if (empty($res['status']) or !in_array($res['status'], [307, 308])) {
557
-					$options['methode'] = 'GET';
558
-					$options['datas'] = '';
559
-				}
560
-			}
561
-			spip_log('recuperer_url recommence ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
562
-
563
-			return recuperer_url($url, $options);
564
-		} elseif ($res['status'] !== 200) {
565
-			spip_log('HTTP status ' . $res['status'] . " pour $url", 'distant');
566
-		}
567
-		$result['status'] = $res['status'];
568
-		if (isset($res['headers'])) {
569
-			$result['headers'] = $res['headers'];
570
-		}
571
-		if (isset($res['last_modified'])) {
572
-			$result['last_modified'] = $res['last_modified'];
573
-		}
574
-		if (isset($res['location'])) {
575
-			$result['location'] = $res['location'];
576
-		}
577
-	}
578
-
579
-	// on ne veut que les entetes
580
-	if (!$options['taille_max'] or $options['methode'] == 'HEAD' or $result['status'] == '304') {
581
-		spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($result), 'distant' . _LOG_DEBUG);
582
-		return $result;
583
-	}
584
-
585
-
586
-	// s'il faut deballer, le faire via un fichier temporaire
587
-	// sinon la memoire explose pour les gros flux
588
-
589
-	$gz = false;
590
-	if (preg_match(",\bContent-Encoding: .*gzip,is", $result['headers'])) {
591
-		$gz = (_DIR_TMP . md5(uniqid(random_int(0, mt_getrandmax()))) . '.tmp.gz');
592
-	}
593
-
594
-	// si on a pas deja recuperer le contenu par une methode detournee
595
-	if (!$result['length']) {
596
-		$res = recuperer_body($handle, $options['taille_max'], $gz ?: $copy);
597
-		fclose($handle);
598
-		if ($copy) {
599
-			$result['length'] = $res;
600
-			$result['file'] = $copy;
601
-		} elseif ($res) {
602
-			$result['page'] = &$res;
603
-			$result['length'] = strlen($result['page']);
604
-		}
605
-		if (!$result['status']) {
606
-			$result['status'] = 200; // on a reussi, donc !
607
-		}
608
-	}
609
-	if (!$result['page']) {
610
-		return $result;
611
-	}
612
-
613
-	// Decompresser au besoin
614
-	if ($gz) {
615
-		$result['page'] = implode('', gzfile($gz));
616
-		supprimer_fichier($gz);
617
-	}
618
-
619
-	// Faut-il l'importer dans notre charset local ?
620
-	if ($options['transcoder']) {
621
-		include_spip('inc/charsets');
622
-		$result['page'] = transcoder_page($result['page'], $result['headers']);
623
-	}
624
-
625
-	$trace = json_decode(json_encode($result), true);
626
-	$trace['page'] = '...';
627
-	spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($trace), 'distant' . _LOG_DEBUG);
628
-
629
-	return $result;
427
+    // Conserve la mémoire de la méthode fournit éventuellement
428
+    $methode_demandee = $options['methode'] ?? '';
429
+    $default = [
430
+        'transcoder' => false,
431
+        'methode' => 'GET',
432
+        'taille_max' => null,
433
+        'headers' => [],
434
+        'datas' => '',
435
+        'boundary' => '',
436
+        'refuser_gz' => false,
437
+        'if_modified_since' => '',
438
+        'uri_referer' => '',
439
+        'file' => '',
440
+        'follow_location' => 10,
441
+        'version_http' => _INC_DISTANT_VERSION_HTTP,
442
+    ];
443
+    $options = array_merge($default, $options);
444
+    // copier directement dans un fichier ?
445
+    $copy = $options['file'];
446
+
447
+    if ($options['methode'] == 'HEAD') {
448
+        $options['taille_max'] = 0;
449
+    }
450
+    if (is_null($options['taille_max'])) {
451
+        $options['taille_max'] = $copy ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
452
+    }
453
+
454
+    spip_log('recuperer_url ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
455
+
456
+    // Ajout des en-têtes spécifiques si besoin
457
+    $formatted_data = '';
458
+    if (!empty($options['headers'])) {
459
+        foreach ($options['headers'] as $champ => $valeur) {
460
+            $formatted_data .= $champ . ': ' . $valeur . "\r\n";
461
+        }
462
+    }
463
+
464
+    if (!empty($options['datas'])) {
465
+        [$head, $postdata] = prepare_donnees_post($options['datas'], $options['boundary']);
466
+        $head .= $formatted_data;
467
+        if (stripos($head, 'Content-Length:') === false) {
468
+            $head .= 'Content-Length: ' . strlen($postdata) . "\r\n";
469
+        }
470
+        $formatted_data = $head . "\r\n" . $postdata;
471
+        if (
472
+            strlen($postdata)
473
+            and !$methode_demandee
474
+        ) {
475
+            $options['methode'] = 'POST';
476
+        }
477
+    } elseif ($formatted_data) {
478
+        $formatted_data .= "\r\n";
479
+    }
480
+
481
+    // Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole
482
+    $url = preg_replace(',^feed://,i', 'http://', $url);
483
+    if (!tester_url_absolue($url)) {
484
+        $url = 'http://' . $url;
485
+    } elseif (strncmp($url, '//', 2) == 0) {
486
+        $url = 'http:' . $url;
487
+    }
488
+
489
+    $url = url_to_ascii($url);
490
+
491
+    $result = [
492
+        'status' => 0,
493
+        'headers' => '',
494
+        'page' => '',
495
+        'length' => 0,
496
+        'last_modified' => '',
497
+        'location' => '',
498
+        'url' => $url
499
+    ];
500
+
501
+    // si on ecrit directement dans un fichier, pour ne pas manipuler en memoire refuser gz
502
+    $refuser_gz = (($options['refuser_gz'] or $copy) ? true : false);
503
+
504
+    // ouvrir la connexion et envoyer la requete et ses en-tetes
505
+    [$handle, $fopen] = init_http(
506
+        $options['methode'],
507
+        $url,
508
+        $refuser_gz,
509
+        $options['uri_referer'],
510
+        $formatted_data,
511
+        $options['version_http'],
512
+        $options['if_modified_since']
513
+    );
514
+    if (!$handle) {
515
+        spip_log("ECHEC init_http $url", 'distant' . _LOG_ERREUR);
516
+
517
+        return false;
518
+    }
519
+
520
+    // Sauf en fopen, envoyer le flux d'entree
521
+    // et recuperer les en-tetes de reponses
522
+    if (!$fopen) {
523
+        $res = recuperer_entetes_complets($handle, $options['if_modified_since']);
524
+        if (!$res) {
525
+            fclose($handle);
526
+            $t = @parse_url($url);
527
+            $host = $t['host'];
528
+            // Chinoisierie inexplicable pour contrer
529
+            // les actions liberticides de l'empire du milieu
530
+            if (
531
+                !need_proxy($host)
532
+                and $res = @file_get_contents($url)
533
+            ) {
534
+                $result['length'] = strlen($res);
535
+                if ($copy) {
536
+                    ecrire_fichier($copy, $res);
537
+                    $result['file'] = $copy;
538
+                } else {
539
+                    $result['page'] = $res;
540
+                }
541
+                $res = [
542
+                    'status' => 200,
543
+                ];
544
+            } else {
545
+                spip_log("ECHEC chinoiserie $url", 'distant' . _LOG_ERREUR);
546
+                return false;
547
+            }
548
+        } elseif ($res['location'] and $options['follow_location']) {
549
+            $options['follow_location']--;
550
+            fclose($handle);
551
+            include_spip('inc/filtres');
552
+            $url = suivre_lien($url, $res['location']);
553
+
554
+            // une redirection doit se faire en GET, sauf status explicite 307 ou 308 qui indique de garder la meme methode
555
+            if ($options['methode'] !== 'GET') {
556
+                if (empty($res['status']) or !in_array($res['status'], [307, 308])) {
557
+                    $options['methode'] = 'GET';
558
+                    $options['datas'] = '';
559
+                }
560
+            }
561
+            spip_log('recuperer_url recommence ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
562
+
563
+            return recuperer_url($url, $options);
564
+        } elseif ($res['status'] !== 200) {
565
+            spip_log('HTTP status ' . $res['status'] . " pour $url", 'distant');
566
+        }
567
+        $result['status'] = $res['status'];
568
+        if (isset($res['headers'])) {
569
+            $result['headers'] = $res['headers'];
570
+        }
571
+        if (isset($res['last_modified'])) {
572
+            $result['last_modified'] = $res['last_modified'];
573
+        }
574
+        if (isset($res['location'])) {
575
+            $result['location'] = $res['location'];
576
+        }
577
+    }
578
+
579
+    // on ne veut que les entetes
580
+    if (!$options['taille_max'] or $options['methode'] == 'HEAD' or $result['status'] == '304') {
581
+        spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($result), 'distant' . _LOG_DEBUG);
582
+        return $result;
583
+    }
584
+
585
+
586
+    // s'il faut deballer, le faire via un fichier temporaire
587
+    // sinon la memoire explose pour les gros flux
588
+
589
+    $gz = false;
590
+    if (preg_match(",\bContent-Encoding: .*gzip,is", $result['headers'])) {
591
+        $gz = (_DIR_TMP . md5(uniqid(random_int(0, mt_getrandmax()))) . '.tmp.gz');
592
+    }
593
+
594
+    // si on a pas deja recuperer le contenu par une methode detournee
595
+    if (!$result['length']) {
596
+        $res = recuperer_body($handle, $options['taille_max'], $gz ?: $copy);
597
+        fclose($handle);
598
+        if ($copy) {
599
+            $result['length'] = $res;
600
+            $result['file'] = $copy;
601
+        } elseif ($res) {
602
+            $result['page'] = &$res;
603
+            $result['length'] = strlen($result['page']);
604
+        }
605
+        if (!$result['status']) {
606
+            $result['status'] = 200; // on a reussi, donc !
607
+        }
608
+    }
609
+    if (!$result['page']) {
610
+        return $result;
611
+    }
612
+
613
+    // Decompresser au besoin
614
+    if ($gz) {
615
+        $result['page'] = implode('', gzfile($gz));
616
+        supprimer_fichier($gz);
617
+    }
618
+
619
+    // Faut-il l'importer dans notre charset local ?
620
+    if ($options['transcoder']) {
621
+        include_spip('inc/charsets');
622
+        $result['page'] = transcoder_page($result['page'], $result['headers']);
623
+    }
624
+
625
+    $trace = json_decode(json_encode($result), true);
626
+    $trace['page'] = '...';
627
+    spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($trace), 'distant' . _LOG_DEBUG);
628
+
629
+    return $result;
630 630
 }
631 631
 
632 632
 /**
@@ -642,73 +642,73 @@  discard block
 block discarded – undo
642 642
  * @return array|bool|mixed
643 643
  */
644 644
 function recuperer_url_cache($url, $options = []) {
645
-	if (!defined('_DELAI_RECUPERER_URL_CACHE')) {
646
-		define('_DELAI_RECUPERER_URL_CACHE', 3600);
647
-	}
648
-	$default = [
649
-		'transcoder' => false,
650
-		'methode' => 'GET',
651
-		'taille_max' => null,
652
-		'datas' => '',
653
-		'boundary' => '',
654
-		'refuser_gz' => false,
655
-		'if_modified_since' => '',
656
-		'uri_referer' => '',
657
-		'file' => '',
658
-		'follow_location' => 10,
659
-		'version_http' => _INC_DISTANT_VERSION_HTTP,
660
-		'delai_cache' => in_array(_VAR_MODE, ['preview', 'recalcul']) ? 0 : _DELAI_RECUPERER_URL_CACHE,
661
-	];
662
-	$options = array_merge($default, $options);
663
-
664
-	// cas ou il n'est pas possible de cacher
665
-	if (!empty($options['data']) or $options['methode'] == 'POST') {
666
-		return recuperer_url($url, $options);
667
-	}
668
-
669
-	// ne pas tenter plusieurs fois la meme url en erreur (non cachee donc)
670
-	static $errors = [];
671
-	if (isset($errors[$url])) {
672
-		return $errors[$url];
673
-	}
674
-
675
-	$sig = $options;
676
-	unset($sig['if_modified_since']);
677
-	unset($sig['delai_cache']);
678
-	$sig['url'] = $url;
679
-
680
-	$dir = sous_repertoire(_DIR_CACHE, 'curl');
681
-	$cache = md5(serialize($sig)) . '-' . substr(preg_replace(',\W+,', '_', $url), 0, 80);
682
-	$sub = sous_repertoire($dir, substr($cache, 0, 2));
683
-	$cache = "$sub$cache";
684
-
685
-	$res = false;
686
-	$is_cached = file_exists($cache);
687
-	if (
688
-		$is_cached
689
-		and (filemtime($cache) > $_SERVER['REQUEST_TIME'] - $options['delai_cache'])
690
-	) {
691
-		lire_fichier($cache, $res);
692
-		if ($res = unserialize($res)) {
693
-			// mettre le last_modified et le status=304 ?
694
-		}
695
-	}
696
-	if (!$res) {
697
-		$res = recuperer_url($url, $options);
698
-		// ne pas recharger cette url non cachee dans le meme hit puisque non disponible
699
-		if (!$res) {
700
-			if ($is_cached) {
701
-				// on a pas reussi a recuperer mais on avait un cache : l'utiliser
702
-				lire_fichier($cache, $res);
703
-				$res = unserialize($res);
704
-			}
705
-
706
-			return $errors[$url] = $res;
707
-		}
708
-		ecrire_fichier($cache, serialize($res));
709
-	}
710
-
711
-	return $res;
645
+    if (!defined('_DELAI_RECUPERER_URL_CACHE')) {
646
+        define('_DELAI_RECUPERER_URL_CACHE', 3600);
647
+    }
648
+    $default = [
649
+        'transcoder' => false,
650
+        'methode' => 'GET',
651
+        'taille_max' => null,
652
+        'datas' => '',
653
+        'boundary' => '',
654
+        'refuser_gz' => false,
655
+        'if_modified_since' => '',
656
+        'uri_referer' => '',
657
+        'file' => '',
658
+        'follow_location' => 10,
659
+        'version_http' => _INC_DISTANT_VERSION_HTTP,
660
+        'delai_cache' => in_array(_VAR_MODE, ['preview', 'recalcul']) ? 0 : _DELAI_RECUPERER_URL_CACHE,
661
+    ];
662
+    $options = array_merge($default, $options);
663
+
664
+    // cas ou il n'est pas possible de cacher
665
+    if (!empty($options['data']) or $options['methode'] == 'POST') {
666
+        return recuperer_url($url, $options);
667
+    }
668
+
669
+    // ne pas tenter plusieurs fois la meme url en erreur (non cachee donc)
670
+    static $errors = [];
671
+    if (isset($errors[$url])) {
672
+        return $errors[$url];
673
+    }
674
+
675
+    $sig = $options;
676
+    unset($sig['if_modified_since']);
677
+    unset($sig['delai_cache']);
678
+    $sig['url'] = $url;
679
+
680
+    $dir = sous_repertoire(_DIR_CACHE, 'curl');
681
+    $cache = md5(serialize($sig)) . '-' . substr(preg_replace(',\W+,', '_', $url), 0, 80);
682
+    $sub = sous_repertoire($dir, substr($cache, 0, 2));
683
+    $cache = "$sub$cache";
684
+
685
+    $res = false;
686
+    $is_cached = file_exists($cache);
687
+    if (
688
+        $is_cached
689
+        and (filemtime($cache) > $_SERVER['REQUEST_TIME'] - $options['delai_cache'])
690
+    ) {
691
+        lire_fichier($cache, $res);
692
+        if ($res = unserialize($res)) {
693
+            // mettre le last_modified et le status=304 ?
694
+        }
695
+    }
696
+    if (!$res) {
697
+        $res = recuperer_url($url, $options);
698
+        // ne pas recharger cette url non cachee dans le meme hit puisque non disponible
699
+        if (!$res) {
700
+            if ($is_cached) {
701
+                // on a pas reussi a recuperer mais on avait un cache : l'utiliser
702
+                lire_fichier($cache, $res);
703
+                $res = unserialize($res);
704
+            }
705
+
706
+            return $errors[$url] = $res;
707
+        }
708
+        ecrire_fichier($cache, serialize($res));
709
+    }
710
+
711
+    return $res;
712 712
 }
713 713
 
714 714
 /**
@@ -726,42 +726,42 @@  discard block
 block discarded – undo
726 726
  *   string contenu de la resource
727 727
  */
728 728
 function recuperer_body($handle, $taille_max = _INC_DISTANT_MAX_SIZE, $fichier = '') {
729
-	$tmpfile = null;
730
-	$taille = 0;
731
-	$result = '';
732
-	$fp = false;
733
-	if ($fichier) {
734
-		include_spip('inc/acces');
735
-		$tmpfile = "$fichier." . creer_uniqid() . '.tmp';
736
-		$fp = spip_fopen_lock($tmpfile, 'w', LOCK_EX);
737
-		if (!$fp and file_exists($fichier)) {
738
-			return filesize($fichier);
739
-		}
740
-		if (!$fp) {
741
-			return false;
742
-		}
743
-		$result = 0; // on renvoie la taille du fichier
744
-	}
745
-	while (!feof($handle) and $taille < $taille_max) {
746
-		$res = fread($handle, 16384);
747
-		$taille += strlen($res);
748
-		if ($fp) {
749
-			fwrite($fp, $res);
750
-			$result = $taille;
751
-		} else {
752
-			$result .= $res;
753
-		}
754
-	}
755
-	if ($fp) {
756
-		spip_fclose_unlock($fp);
757
-		spip_unlink($fichier);
758
-		@rename($tmpfile, $fichier);
759
-		if (!file_exists($fichier)) {
760
-			return false;
761
-		}
762
-	}
763
-
764
-	return $result;
729
+    $tmpfile = null;
730
+    $taille = 0;
731
+    $result = '';
732
+    $fp = false;
733
+    if ($fichier) {
734
+        include_spip('inc/acces');
735
+        $tmpfile = "$fichier." . creer_uniqid() . '.tmp';
736
+        $fp = spip_fopen_lock($tmpfile, 'w', LOCK_EX);
737
+        if (!$fp and file_exists($fichier)) {
738
+            return filesize($fichier);
739
+        }
740
+        if (!$fp) {
741
+            return false;
742
+        }
743
+        $result = 0; // on renvoie la taille du fichier
744
+    }
745
+    while (!feof($handle) and $taille < $taille_max) {
746
+        $res = fread($handle, 16384);
747
+        $taille += strlen($res);
748
+        if ($fp) {
749
+            fwrite($fp, $res);
750
+            $result = $taille;
751
+        } else {
752
+            $result .= $res;
753
+        }
754
+    }
755
+    if ($fp) {
756
+        spip_fclose_unlock($fp);
757
+        spip_unlink($fichier);
758
+        @rename($tmpfile, $fichier);
759
+        if (!file_exists($fichier)) {
760
+            return false;
761
+        }
762
+    }
763
+
764
+    return $result;
765 765
 }
766 766
 
767 767
 /**
@@ -783,35 +783,35 @@  discard block
 block discarded – undo
783 783
  *   string location
784 784
  */
785 785
 function recuperer_entetes_complets($handle, $if_modified_since = false) {
786
-	$result = ['status' => 0, 'headers' => [], 'last_modified' => 0, 'location' => ''];
787
-
788
-	$s = @trim(fgets($handle, 16384));
789
-	if (!preg_match(',^HTTP/[0-9]+\.[0-9]+ ([0-9]+),', $s, $r)) {
790
-		return false;
791
-	}
792
-	$result['status'] = intval($r[1]);
793
-	while ($s = trim(fgets($handle, 16384))) {
794
-		$result['headers'][] = $s . "\n";
795
-		preg_match(',^([^:]*): *(.*)$,i', $s, $r);
796
-		[, $d, $v] = $r;
797
-		if (strtolower(trim($d)) == 'location' and $result['status'] >= 300 and $result['status'] < 400) {
798
-			$result['location'] = $v;
799
-		} elseif ($d == 'Last-Modified') {
800
-			$result['last_modified'] = strtotime($v);
801
-		}
802
-	}
803
-	if (
804
-		$if_modified_since
805
-		and $result['last_modified']
806
-		and $if_modified_since > $result['last_modified']
807
-		and $result['status'] == 200
808
-	) {
809
-		$result['status'] = 304;
810
-	}
811
-
812
-	$result['headers'] = implode('', $result['headers']);
813
-
814
-	return $result;
786
+    $result = ['status' => 0, 'headers' => [], 'last_modified' => 0, 'location' => ''];
787
+
788
+    $s = @trim(fgets($handle, 16384));
789
+    if (!preg_match(',^HTTP/[0-9]+\.[0-9]+ ([0-9]+),', $s, $r)) {
790
+        return false;
791
+    }
792
+    $result['status'] = intval($r[1]);
793
+    while ($s = trim(fgets($handle, 16384))) {
794
+        $result['headers'][] = $s . "\n";
795
+        preg_match(',^([^:]*): *(.*)$,i', $s, $r);
796
+        [, $d, $v] = $r;
797
+        if (strtolower(trim($d)) == 'location' and $result['status'] >= 300 and $result['status'] < 400) {
798
+            $result['location'] = $v;
799
+        } elseif ($d == 'Last-Modified') {
800
+            $result['last_modified'] = strtotime($v);
801
+        }
802
+    }
803
+    if (
804
+        $if_modified_since
805
+        and $result['last_modified']
806
+        and $if_modified_since > $result['last_modified']
807
+        and $result['status'] == 200
808
+    ) {
809
+        $result['status'] = 304;
810
+    }
811
+
812
+    $result['headers'] = implode('', $result['headers']);
813
+
814
+    return $result;
815 815
 }
816 816
 
817 817
 /**
@@ -833,22 +833,22 @@  discard block
 block discarded – undo
833 833
  *     Nom du fichier pour copie locale
834 834
  **/
835 835
 function nom_fichier_copie_locale($source, $extension) {
836
-	include_spip('inc/documents');
836
+    include_spip('inc/documents');
837 837
 
838
-	$d = creer_repertoire_documents('distant'); # IMG/distant/
839
-	$d = sous_repertoire($d, $extension); # IMG/distant/pdf/
838
+    $d = creer_repertoire_documents('distant'); # IMG/distant/
839
+    $d = sous_repertoire($d, $extension); # IMG/distant/pdf/
840 840
 
841
-	// on se place tout le temps comme si on etait a la racine
842
-	if (_DIR_RACINE) {
843
-		$d = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $d);
844
-	}
841
+    // on se place tout le temps comme si on etait a la racine
842
+    if (_DIR_RACINE) {
843
+        $d = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $d);
844
+    }
845 845
 
846
-	$m = md5($source);
846
+    $m = md5($source);
847 847
 
848
-	return $d
849
-	. substr(preg_replace(',[^\w-],', '', basename($source)) . '-' . $m, 0, 12)
850
-	. substr($m, 0, 4)
851
-	. ".$extension";
848
+    return $d
849
+    . substr(preg_replace(',[^\w-],', '', basename($source)) . '-' . $m, 0, 12)
850
+    . substr($m, 0, 4)
851
+    . ".$extension";
852 852
 }
853 853
 
854 854
 /**
@@ -866,70 +866,70 @@  discard block
 block discarded – undo
866 866
  *      Nom du fichier calculé
867 867
  **/
868 868
 function fichier_copie_locale($source) {
869
-	// Si c'est deja local pas de souci
870
-	if (!tester_url_absolue($source)) {
871
-		if (_DIR_RACINE) {
872
-			$source = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $source);
873
-		}
874
-
875
-		return $source;
876
-	}
877
-
878
-	// optimisation : on regarde si on peut deviner l'extension dans l'url et si le fichier
879
-	// a deja ete copie en local avec cette extension
880
-	// dans ce cas elle est fiable, pas la peine de requeter en base
881
-	$path_parts = pathinfo($source);
882
-	if (!isset($path_parts['extension'])) {
883
-		$path_parts['extension'] = '';
884
-	}
885
-	$ext = $path_parts ? $path_parts['extension'] : '';
886
-	if (
887
-		$ext
888
-		and preg_match(',^\w+$,', $ext) // pas de php?truc=1&...
889
-		and $f = nom_fichier_copie_locale($source, $ext)
890
-		and file_exists(_DIR_RACINE . $f)
891
-	) {
892
-		return $f;
893
-	}
894
-
895
-
896
-	// Si c'est deja dans la table des documents,
897
-	// ramener le nom de sa copie potentielle
898
-	$ext = sql_getfetsel('extension', 'spip_documents', 'fichier=' . sql_quote($source) . " AND distant='oui' AND extension <> ''");
899
-
900
-	if ($ext) {
901
-		return nom_fichier_copie_locale($source, $ext);
902
-	}
903
-
904
-	// voir si l'extension indiquee dans le nom du fichier est ok
905
-	// et si il n'aurait pas deja ete rapatrie
906
-
907
-	$ext = $path_parts ? $path_parts['extension'] : '';
908
-
909
-	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
910
-		$f = nom_fichier_copie_locale($source, $ext);
911
-		if (file_exists(_DIR_RACINE . $f)) {
912
-			return $f;
913
-		}
914
-	}
915
-
916
-	// Ping  pour voir si son extension est connue et autorisee
917
-	// avec mise en cache du resultat du ping
918
-
919
-	$cache = sous_repertoire(_DIR_CACHE, 'rid') . md5($source);
920
-	if (
921
-		!@file_exists($cache)
922
-		or !$path_parts = @unserialize(spip_file_get_contents($cache))
923
-		or _request('var_mode') === 'recalcul'
924
-	) {
925
-		$path_parts = recuperer_infos_distantes($source, 0, false);
926
-		ecrire_fichier($cache, serialize($path_parts));
927
-	}
928
-	$ext = !empty($path_parts['extension']) ? $path_parts['extension'] : '';
929
-	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
930
-		return nom_fichier_copie_locale($source, $ext);
931
-	}
932
-	spip_log("pas de copie locale pour $source", 'distant' . _LOG_ERREUR);
869
+    // Si c'est deja local pas de souci
870
+    if (!tester_url_absolue($source)) {
871
+        if (_DIR_RACINE) {
872
+            $source = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $source);
873
+        }
874
+
875
+        return $source;
876
+    }
877
+
878
+    // optimisation : on regarde si on peut deviner l'extension dans l'url et si le fichier
879
+    // a deja ete copie en local avec cette extension
880
+    // dans ce cas elle est fiable, pas la peine de requeter en base
881
+    $path_parts = pathinfo($source);
882
+    if (!isset($path_parts['extension'])) {
883
+        $path_parts['extension'] = '';
884
+    }
885
+    $ext = $path_parts ? $path_parts['extension'] : '';
886
+    if (
887
+        $ext
888
+        and preg_match(',^\w+$,', $ext) // pas de php?truc=1&...
889
+        and $f = nom_fichier_copie_locale($source, $ext)
890
+        and file_exists(_DIR_RACINE . $f)
891
+    ) {
892
+        return $f;
893
+    }
894
+
895
+
896
+    // Si c'est deja dans la table des documents,
897
+    // ramener le nom de sa copie potentielle
898
+    $ext = sql_getfetsel('extension', 'spip_documents', 'fichier=' . sql_quote($source) . " AND distant='oui' AND extension <> ''");
899
+
900
+    if ($ext) {
901
+        return nom_fichier_copie_locale($source, $ext);
902
+    }
903
+
904
+    // voir si l'extension indiquee dans le nom du fichier est ok
905
+    // et si il n'aurait pas deja ete rapatrie
906
+
907
+    $ext = $path_parts ? $path_parts['extension'] : '';
908
+
909
+    if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
910
+        $f = nom_fichier_copie_locale($source, $ext);
911
+        if (file_exists(_DIR_RACINE . $f)) {
912
+            return $f;
913
+        }
914
+    }
915
+
916
+    // Ping  pour voir si son extension est connue et autorisee
917
+    // avec mise en cache du resultat du ping
918
+
919
+    $cache = sous_repertoire(_DIR_CACHE, 'rid') . md5($source);
920
+    if (
921
+        !@file_exists($cache)
922
+        or !$path_parts = @unserialize(spip_file_get_contents($cache))
923
+        or _request('var_mode') === 'recalcul'
924
+    ) {
925
+        $path_parts = recuperer_infos_distantes($source, 0, false);
926
+        ecrire_fichier($cache, serialize($path_parts));
927
+    }
928
+    $ext = !empty($path_parts['extension']) ? $path_parts['extension'] : '';
929
+    if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
930
+        return nom_fichier_copie_locale($source, $ext);
931
+    }
932
+    spip_log("pas de copie locale pour $source", 'distant' . _LOG_ERREUR);
933 933
 }
934 934
 
935 935
 
@@ -957,97 +957,97 @@  discard block
 block discarded – undo
957 957
  **/
958 958
 function recuperer_infos_distantes($source, $max = 0, $charger_si_petite_image = true) {
959 959
 
960
-	// pas la peine de perdre son temps
961
-	if (!tester_url_absolue($source)) {
962
-		return false;
963
-	}
964
-
965
-	# charger les alias des types mime
966
-	include_spip('base/typedoc');
967
-
968
-	$a = [];
969
-	$mime_type = '';
970
-	// On va directement charger le debut des images et des fichiers html,
971
-	// de maniere a attrapper le maximum d'infos (titre, taille, etc). Si
972
-	// ca echoue l'utilisateur devra les entrer...
973
-	$reponse = recuperer_url($source, ['taille_max' => $max, 'refuser_gz' => true]);
974
-	$headers = $reponse['headers'] ?? '';
975
-	$a['body'] = $reponse['page'] ?? '';
976
-	if ($headers) {
977
-		if (!$extension = distant_trouver_extension_selon_headers($source, $headers)) {
978
-			return false;
979
-		}
980
-
981
-		$a['extension'] = $extension;
982
-
983
-		if (preg_match(",\nContent-Length: *([^[:space:]]*),i", "\n$headers", $regs)) {
984
-			$a['taille'] = intval($regs[1]);
985
-		}
986
-	}
987
-
988
-	// Echec avec HEAD, on tente avec GET
989
-	if (!$a and !$max) {
990
-		spip_log("tenter GET $source", 'distant');
991
-		$a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE);
992
-	}
993
-
994
-	// si on a rien trouve pas la peine d'insister
995
-	if (!$a) {
996
-		return false;
997
-	}
998
-
999
-	// S'il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller
1000
-	// recharger le document en GET et recuperer des donnees supplementaires...
1001
-	include_spip('inc/filtres_images_lib_mini');
1002
-	if (
1003
-		strpos($mime_type, 'image/') === 0
1004
-		and $extension = _image_trouver_extension_depuis_mime($mime_type)
1005
-	) {
1006
-		if (
1007
-			$max == 0
1008
-			and (empty($a['taille']) or $a['taille'] < _INC_DISTANT_MAX_SIZE)
1009
-			and in_array($extension, formats_image_acceptables())
1010
-			and $charger_si_petite_image
1011
-		) {
1012
-			$a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE);
1013
-		} else {
1014
-			if ($a['body']) {
1015
-				$a['extension'] = $extension;
1016
-				$a['fichier'] = _DIR_RACINE . nom_fichier_copie_locale($source, $extension);
1017
-				ecrire_fichier($a['fichier'], $a['body']);
1018
-				$size_image = @spip_getimagesize($a['fichier']);
1019
-				$a['largeur'] = intval($size_image[0]);
1020
-				$a['hauteur'] = intval($size_image[1]);
1021
-				$a['type_image'] = true;
1022
-			}
1023
-		}
1024
-	}
1025
-
1026
-	// Fichier swf, si on n'a pas la taille, on va mettre 425x350 par defaut
1027
-	// ce sera mieux que 0x0
1028
-	// Flash is dead!
1029
-	if (
1030
-		$a and isset($a['extension']) and $a['extension'] == 'swf'
1031
-		and empty($a['largeur'])
1032
-	) {
1033
-		$a['largeur'] = 425;
1034
-		$a['hauteur'] = 350;
1035
-	}
1036
-
1037
-	if ($mime_type == 'text/html') {
1038
-		include_spip('inc/filtres');
1039
-		$page = recuperer_url($source, ['transcoder' => true, 'taille_max' => _INC_DISTANT_MAX_SIZE]);
1040
-		$page = $page['page'] ?? '';
1041
-		if (preg_match(',<title>(.*?)</title>,ims', $page, $regs)) {
1042
-			$a['titre'] = corriger_caracteres(trim($regs[1]));
1043
-		}
1044
-		if (!isset($a['taille']) or !$a['taille']) {
1045
-			$a['taille'] = strlen($page); # a peu pres
1046
-		}
1047
-	}
1048
-	$a['mime_type'] = $mime_type;
1049
-
1050
-	return $a;
960
+    // pas la peine de perdre son temps
961
+    if (!tester_url_absolue($source)) {
962
+        return false;
963
+    }
964
+
965
+    # charger les alias des types mime
966
+    include_spip('base/typedoc');
967
+
968
+    $a = [];
969
+    $mime_type = '';
970
+    // On va directement charger le debut des images et des fichiers html,
971
+    // de maniere a attrapper le maximum d'infos (titre, taille, etc). Si
972
+    // ca echoue l'utilisateur devra les entrer...
973
+    $reponse = recuperer_url($source, ['taille_max' => $max, 'refuser_gz' => true]);
974
+    $headers = $reponse['headers'] ?? '';
975
+    $a['body'] = $reponse['page'] ?? '';
976
+    if ($headers) {
977
+        if (!$extension = distant_trouver_extension_selon_headers($source, $headers)) {
978
+            return false;
979
+        }
980
+
981
+        $a['extension'] = $extension;
982
+
983
+        if (preg_match(",\nContent-Length: *([^[:space:]]*),i", "\n$headers", $regs)) {
984
+            $a['taille'] = intval($regs[1]);
985
+        }
986
+    }
987
+
988
+    // Echec avec HEAD, on tente avec GET
989
+    if (!$a and !$max) {
990
+        spip_log("tenter GET $source", 'distant');
991
+        $a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE);
992
+    }
993
+
994
+    // si on a rien trouve pas la peine d'insister
995
+    if (!$a) {
996
+        return false;
997
+    }
998
+
999
+    // S'il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller
1000
+    // recharger le document en GET et recuperer des donnees supplementaires...
1001
+    include_spip('inc/filtres_images_lib_mini');
1002
+    if (
1003
+        strpos($mime_type, 'image/') === 0
1004
+        and $extension = _image_trouver_extension_depuis_mime($mime_type)
1005
+    ) {
1006
+        if (
1007
+            $max == 0
1008
+            and (empty($a['taille']) or $a['taille'] < _INC_DISTANT_MAX_SIZE)
1009
+            and in_array($extension, formats_image_acceptables())
1010
+            and $charger_si_petite_image
1011
+        ) {
1012
+            $a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE);
1013
+        } else {
1014
+            if ($a['body']) {
1015
+                $a['extension'] = $extension;
1016
+                $a['fichier'] = _DIR_RACINE . nom_fichier_copie_locale($source, $extension);
1017
+                ecrire_fichier($a['fichier'], $a['body']);
1018
+                $size_image = @spip_getimagesize($a['fichier']);
1019
+                $a['largeur'] = intval($size_image[0]);
1020
+                $a['hauteur'] = intval($size_image[1]);
1021
+                $a['type_image'] = true;
1022
+            }
1023
+        }
1024
+    }
1025
+
1026
+    // Fichier swf, si on n'a pas la taille, on va mettre 425x350 par defaut
1027
+    // ce sera mieux que 0x0
1028
+    // Flash is dead!
1029
+    if (
1030
+        $a and isset($a['extension']) and $a['extension'] == 'swf'
1031
+        and empty($a['largeur'])
1032
+    ) {
1033
+        $a['largeur'] = 425;
1034
+        $a['hauteur'] = 350;
1035
+    }
1036
+
1037
+    if ($mime_type == 'text/html') {
1038
+        include_spip('inc/filtres');
1039
+        $page = recuperer_url($source, ['transcoder' => true, 'taille_max' => _INC_DISTANT_MAX_SIZE]);
1040
+        $page = $page['page'] ?? '';
1041
+        if (preg_match(',<title>(.*?)</title>,ims', $page, $regs)) {
1042
+            $a['titre'] = corriger_caracteres(trim($regs[1]));
1043
+        }
1044
+        if (!isset($a['taille']) or !$a['taille']) {
1045
+            $a['taille'] = strlen($page); # a peu pres
1046
+        }
1047
+    }
1048
+    $a['mime_type'] = $mime_type;
1049
+
1050
+    return $a;
1051 1051
 }
1052 1052
 
1053 1053
 /**
@@ -1056,70 +1056,70 @@  discard block
 block discarded – undo
1056 1056
  * @return false|mixed
1057 1057
  */
1058 1058
 function distant_trouver_extension_selon_headers($source, $headers) {
1059
-	if (preg_match(",\nContent-Type: *([^[:space:];]*),i", "\n$headers", $regs)) {
1060
-		$mime_type = (trim($regs[1]));
1061
-	} else {
1062
-		$mime_type = '';
1063
-	} // inconnu
1064
-
1065
-	// Appliquer les alias
1066
-	while (isset($GLOBALS['mime_alias'][$mime_type])) {
1067
-		$mime_type = $GLOBALS['mime_alias'][$mime_type];
1068
-	}
1069
-
1070
-	// pour corriger_extension()
1071
-	include_spip('inc/documents');
1072
-
1073
-	// Si on a un mime-type insignifiant
1074
-	// text/plain,application/octet-stream ou vide
1075
-	// c'est peut-etre que le serveur ne sait pas
1076
-	// ce qu'il sert ; on va tenter de detecter via l'extension de l'url
1077
-	// ou le Content-Disposition: attachment; filename=...
1078
-	$t = null;
1079
-	if (in_array($mime_type, ['text/plain', '', 'application/octet-stream'])) {
1080
-		if (
1081
-			!$t
1082
-			and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1083
-		) {
1084
-			$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1085
-		}
1086
-		if (
1087
-			!$t
1088
-			and preg_match(',^Content-Disposition:\s*attachment;\s*filename=(.*)$,Uims', $headers, $m)
1089
-			and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $m[1], $rext)
1090
-		) {
1091
-			$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1092
-		}
1093
-	}
1094
-
1095
-	// Autre mime/type (ou text/plain avec fichier d'extension inconnue)
1096
-	if (!$t) {
1097
-		$t = sql_fetsel('extension', 'spip_types_documents', 'mime_type=' . sql_quote($mime_type));
1098
-	}
1099
-
1100
-	// Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
1101
-	// On essaie de nouveau avec l'extension
1102
-	if (
1103
-		!$t
1104
-		and $mime_type != 'text/plain'
1105
-		and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1106
-	) {
1107
-		# eviter xxx.3 => 3gp (> SPIP 3)
1108
-		$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1109
-	}
1110
-
1111
-	if ($t) {
1112
-		spip_log("mime-type $mime_type ok, extension " . $t['extension'], 'distant');
1113
-		return $t['extension'];
1114
-	} else {
1115
-		# par defaut on retombe sur '.bin' si c'est autorise
1116
-		spip_log("mime-type $mime_type inconnu", 'distant');
1117
-		$t = sql_fetsel('extension', 'spip_types_documents', "extension='bin'");
1118
-		if (!$t) {
1119
-			return false;
1120
-		}
1121
-		return $t['extension'];
1122
-	}
1059
+    if (preg_match(",\nContent-Type: *([^[:space:];]*),i", "\n$headers", $regs)) {
1060
+        $mime_type = (trim($regs[1]));
1061
+    } else {
1062
+        $mime_type = '';
1063
+    } // inconnu
1064
+
1065
+    // Appliquer les alias
1066
+    while (isset($GLOBALS['mime_alias'][$mime_type])) {
1067
+        $mime_type = $GLOBALS['mime_alias'][$mime_type];
1068
+    }
1069
+
1070
+    // pour corriger_extension()
1071
+    include_spip('inc/documents');
1072
+
1073
+    // Si on a un mime-type insignifiant
1074
+    // text/plain,application/octet-stream ou vide
1075
+    // c'est peut-etre que le serveur ne sait pas
1076
+    // ce qu'il sert ; on va tenter de detecter via l'extension de l'url
1077
+    // ou le Content-Disposition: attachment; filename=...
1078
+    $t = null;
1079
+    if (in_array($mime_type, ['text/plain', '', 'application/octet-stream'])) {
1080
+        if (
1081
+            !$t
1082
+            and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1083
+        ) {
1084
+            $t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1085
+        }
1086
+        if (
1087
+            !$t
1088
+            and preg_match(',^Content-Disposition:\s*attachment;\s*filename=(.*)$,Uims', $headers, $m)
1089
+            and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $m[1], $rext)
1090
+        ) {
1091
+            $t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1092
+        }
1093
+    }
1094
+
1095
+    // Autre mime/type (ou text/plain avec fichier d'extension inconnue)
1096
+    if (!$t) {
1097
+        $t = sql_fetsel('extension', 'spip_types_documents', 'mime_type=' . sql_quote($mime_type));
1098
+    }
1099
+
1100
+    // Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
1101
+    // On essaie de nouveau avec l'extension
1102
+    if (
1103
+        !$t
1104
+        and $mime_type != 'text/plain'
1105
+        and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1106
+    ) {
1107
+        # eviter xxx.3 => 3gp (> SPIP 3)
1108
+        $t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1109
+    }
1110
+
1111
+    if ($t) {
1112
+        spip_log("mime-type $mime_type ok, extension " . $t['extension'], 'distant');
1113
+        return $t['extension'];
1114
+    } else {
1115
+        # par defaut on retombe sur '.bin' si c'est autorise
1116
+        spip_log("mime-type $mime_type inconnu", 'distant');
1117
+        $t = sql_fetsel('extension', 'spip_types_documents', "extension='bin'");
1118
+        if (!$t) {
1119
+            return false;
1120
+        }
1121
+        return $t['extension'];
1122
+    }
1123 1123
 }
1124 1124
 
1125 1125
 /**
@@ -1135,45 +1135,45 @@  discard block
 block discarded – undo
1135 1135
  */
1136 1136
 function need_proxy($host, $http_proxy = null, $http_noproxy = null) {
1137 1137
 
1138
-	$http_proxy ??= $GLOBALS['meta']['http_proxy'] ?? null;
1139
-
1140
-	// rien a faire si pas de proxy :)
1141
-	if (is_null($http_proxy) or !$http_proxy = trim($http_proxy)) {
1142
-		return '';
1143
-	}
1144
-
1145
-	if (is_null($http_noproxy)) {
1146
-		$http_noproxy = $GLOBALS['meta']['http_noproxy'] ?? null;
1147
-	}
1148
-	// si pas d'exception, on retourne le proxy
1149
-	if (is_null($http_noproxy) or !$http_noproxy = trim($http_noproxy)) {
1150
-		return $http_proxy;
1151
-	}
1152
-
1153
-	// si le host ou l'un des domaines parents est dans $http_noproxy on fait exception
1154
-	// $http_noproxy peut contenir plusieurs domaines separes par des espaces ou retour ligne
1155
-	$http_noproxy = str_replace("\n", ' ', $http_noproxy);
1156
-	$http_noproxy = str_replace("\r", ' ', $http_noproxy);
1157
-	$http_noproxy = " $http_noproxy ";
1158
-	$domain = $host;
1159
-	// si le domaine exact www.example.org est dans les exceptions
1160
-	if (strpos($http_noproxy, (string) " $domain ") !== false) {
1161
-		return '';
1162
-	}
1163
-
1164
-	while (strpos($domain, '.') !== false) {
1165
-		$domain = explode('.', $domain);
1166
-		array_shift($domain);
1167
-		$domain = implode('.', $domain);
1168
-
1169
-		// ou si un domaine parent commencant par un . est dans les exceptions (indiquant qu'il couvre tous les sous-domaines)
1170
-		if (strpos($http_noproxy, (string) " .$domain ") !== false) {
1171
-			return '';
1172
-		}
1173
-	}
1174
-
1175
-	// ok c'est pas une exception
1176
-	return $http_proxy;
1138
+    $http_proxy ??= $GLOBALS['meta']['http_proxy'] ?? null;
1139
+
1140
+    // rien a faire si pas de proxy :)
1141
+    if (is_null($http_proxy) or !$http_proxy = trim($http_proxy)) {
1142
+        return '';
1143
+    }
1144
+
1145
+    if (is_null($http_noproxy)) {
1146
+        $http_noproxy = $GLOBALS['meta']['http_noproxy'] ?? null;
1147
+    }
1148
+    // si pas d'exception, on retourne le proxy
1149
+    if (is_null($http_noproxy) or !$http_noproxy = trim($http_noproxy)) {
1150
+        return $http_proxy;
1151
+    }
1152
+
1153
+    // si le host ou l'un des domaines parents est dans $http_noproxy on fait exception
1154
+    // $http_noproxy peut contenir plusieurs domaines separes par des espaces ou retour ligne
1155
+    $http_noproxy = str_replace("\n", ' ', $http_noproxy);
1156
+    $http_noproxy = str_replace("\r", ' ', $http_noproxy);
1157
+    $http_noproxy = " $http_noproxy ";
1158
+    $domain = $host;
1159
+    // si le domaine exact www.example.org est dans les exceptions
1160
+    if (strpos($http_noproxy, (string) " $domain ") !== false) {
1161
+        return '';
1162
+    }
1163
+
1164
+    while (strpos($domain, '.') !== false) {
1165
+        $domain = explode('.', $domain);
1166
+        array_shift($domain);
1167
+        $domain = implode('.', $domain);
1168
+
1169
+        // ou si un domaine parent commencant par un . est dans les exceptions (indiquant qu'il couvre tous les sous-domaines)
1170
+        if (strpos($http_noproxy, (string) " .$domain ") !== false) {
1171
+            return '';
1172
+        }
1173
+    }
1174
+
1175
+    // ok c'est pas une exception
1176
+    return $http_proxy;
1177 1177
 }
1178 1178
 
1179 1179
 
@@ -1196,59 +1196,59 @@  discard block
 block discarded – undo
1196 1196
  * @return array
1197 1197
  */
1198 1198
 function init_http($method, $url, $refuse_gz = false, $referer = '', $datas = '', $vers = 'HTTP/1.0', $date = '') {
1199
-	$user = $via_proxy = $proxy_user = '';
1200
-	$fopen = false;
1201
-
1202
-	$t = @parse_url($url);
1203
-	$host = $t['host'];
1204
-	if ($t['scheme'] == 'http') {
1205
-		$scheme = 'http';
1206
-		$noproxy = '';
1207
-	} elseif ($t['scheme'] == 'https') {
1208
-		$scheme = 'ssl';
1209
-		$noproxy = 'ssl://';
1210
-		if (!isset($t['port']) || !($port = $t['port'])) {
1211
-			$t['port'] = 443;
1212
-		}
1213
-	} else {
1214
-		$scheme = $t['scheme'];
1215
-		$noproxy = $scheme . '://';
1216
-	}
1217
-	if (isset($t['user'])) {
1218
-		$user = [$t['user'], $t['pass']];
1219
-	}
1220
-
1221
-	if (!isset($t['port']) || !($port = $t['port'])) {
1222
-		$port = 80;
1223
-	}
1224
-	if (!isset($t['path']) || !($path = $t['path'])) {
1225
-		$path = '/';
1226
-	}
1227
-
1228
-	if (!empty($t['query'])) {
1229
-		$path .= '?' . $t['query'];
1230
-	}
1231
-
1232
-	$f = lance_requete($method, $scheme, $user, $host, $path, $port, $noproxy, $refuse_gz, $referer, $datas, $vers, $date);
1233
-	if (!$f or !is_resource($f)) {
1234
-		// fallback : fopen si on a pas fait timeout dans lance_requete
1235
-		// ce qui correspond a $f===110
1236
-		if (
1237
-			$f !== 110
1238
-			and !need_proxy($host)
1239
-			and !_request('tester_proxy')
1240
-			and (!isset($GLOBALS['inc_distant_allow_fopen']) or $GLOBALS['inc_distant_allow_fopen'])
1241
-		) {
1242
-			$f = @fopen($url, 'rb');
1243
-			spip_log("connexion vers $url par simple fopen", 'distant');
1244
-			$fopen = true;
1245
-		} else {
1246
-			// echec total
1247
-			$f = false;
1248
-		}
1249
-	}
1250
-
1251
-	return [$f, $fopen];
1199
+    $user = $via_proxy = $proxy_user = '';
1200
+    $fopen = false;
1201
+
1202
+    $t = @parse_url($url);
1203
+    $host = $t['host'];
1204
+    if ($t['scheme'] == 'http') {
1205
+        $scheme = 'http';
1206
+        $noproxy = '';
1207
+    } elseif ($t['scheme'] == 'https') {
1208
+        $scheme = 'ssl';
1209
+        $noproxy = 'ssl://';
1210
+        if (!isset($t['port']) || !($port = $t['port'])) {
1211
+            $t['port'] = 443;
1212
+        }
1213
+    } else {
1214
+        $scheme = $t['scheme'];
1215
+        $noproxy = $scheme . '://';
1216
+    }
1217
+    if (isset($t['user'])) {
1218
+        $user = [$t['user'], $t['pass']];
1219
+    }
1220
+
1221
+    if (!isset($t['port']) || !($port = $t['port'])) {
1222
+        $port = 80;
1223
+    }
1224
+    if (!isset($t['path']) || !($path = $t['path'])) {
1225
+        $path = '/';
1226
+    }
1227
+
1228
+    if (!empty($t['query'])) {
1229
+        $path .= '?' . $t['query'];
1230
+    }
1231
+
1232
+    $f = lance_requete($method, $scheme, $user, $host, $path, $port, $noproxy, $refuse_gz, $referer, $datas, $vers, $date);
1233
+    if (!$f or !is_resource($f)) {
1234
+        // fallback : fopen si on a pas fait timeout dans lance_requete
1235
+        // ce qui correspond a $f===110
1236
+        if (
1237
+            $f !== 110
1238
+            and !need_proxy($host)
1239
+            and !_request('tester_proxy')
1240
+            and (!isset($GLOBALS['inc_distant_allow_fopen']) or $GLOBALS['inc_distant_allow_fopen'])
1241
+        ) {
1242
+            $f = @fopen($url, 'rb');
1243
+            spip_log("connexion vers $url par simple fopen", 'distant');
1244
+            $fopen = true;
1245
+        } else {
1246
+            // echec total
1247
+            $f = false;
1248
+        }
1249
+    }
1250
+
1251
+    return [$f, $fopen];
1252 1252
 }
1253 1253
 
1254 1254
 /**
@@ -1283,123 +1283,123 @@  discard block
 block discarded – undo
1283 1283
  *   resource socket vers l'url demandee
1284 1284
  */
1285 1285
 function lance_requete(
1286
-	$method,
1287
-	$scheme,
1288
-	$user,
1289
-	$host,
1290
-	$path,
1291
-	$port,
1292
-	$noproxy,
1293
-	$refuse_gz = false,
1294
-	$referer = '',
1295
-	$datas = '',
1296
-	$vers = 'HTTP/1.0',
1297
-	$date = ''
1286
+    $method,
1287
+    $scheme,
1288
+    $user,
1289
+    $host,
1290
+    $path,
1291
+    $port,
1292
+    $noproxy,
1293
+    $refuse_gz = false,
1294
+    $referer = '',
1295
+    $datas = '',
1296
+    $vers = 'HTTP/1.0',
1297
+    $date = ''
1298 1298
 ) {
1299 1299
 
1300
-	$proxy_user = '';
1301
-	$http_proxy = need_proxy($host);
1302
-	if ($user) {
1303
-		$user = urlencode($user[0]) . ':' . urlencode($user[1]);
1304
-	}
1305
-
1306
-	$connect = '';
1307
-	if ($http_proxy) {
1308
-		if (!defined('_PROXY_HTTPS_NOT_VIA_CONNECT') and in_array($scheme, ['tls','ssl'])) {
1309
-			$path_host = (!$user ? '' : "$user@") . $host . (($port != 80) ? ":$port" : '');
1310
-			$connect = 'CONNECT ' . $path_host . " $vers\r\n"
1311
-				. "Host: $path_host\r\n"
1312
-				. "Proxy-Connection: Keep-Alive\r\n";
1313
-		} else {
1314
-			$path = (in_array($scheme, ['tls','ssl']) ? 'https://' : "$scheme://")
1315
-				. (!$user ? '' : "$user@")
1316
-				. "$host" . (($port != 80) ? ":$port" : '') . $path;
1317
-		}
1318
-		$t2 = @parse_url($http_proxy);
1319
-		$first_host = $t2['host'];
1320
-		$port = ($t2['port'] ?? null) ?: 80;
1321
-		if ($t2['user'] ?? null) {
1322
-			$proxy_user = base64_encode($t2['user'] . ':' . $t2['pass']);
1323
-		}
1324
-	} else {
1325
-		$first_host = $noproxy . $host;
1326
-	}
1327
-
1328
-	if ($connect) {
1329
-		$streamContext = stream_context_create([
1330
-			'ssl' => [
1331
-				'verify_peer' => false,
1332
-				'allow_self_signed' => true,
1333
-				'SNI_enabled' => true,
1334
-				'peer_name' => $host,
1335
-			]
1336
-		]);
1337
-		$f = @stream_socket_client(
1338
-			"tcp://$first_host:$port",
1339
-			$errno,
1340
-			$errstr,
1341
-			_INC_DISTANT_CONNECT_TIMEOUT,
1342
-			STREAM_CLIENT_CONNECT,
1343
-			$streamContext
1344
-		);
1345
-		spip_log("Recuperer $path sur $first_host:$port par $f (via CONNECT)", 'connect');
1346
-		if (!$f) {
1347
-			spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1348
-			return $errno;
1349
-		}
1350
-		stream_set_timeout($f, _INC_DISTANT_CONNECT_TIMEOUT);
1351
-
1352
-		fputs($f, $connect);
1353
-		fputs($f, "\r\n");
1354
-		$res = fread($f, 1024);
1355
-		if (
1356
-			!$res
1357
-			or !count($res = explode(' ', $res))
1358
-			or $res[1] !== '200'
1359
-		) {
1360
-			spip_log("Echec CONNECT sur $first_host:$port", 'connect' . _LOG_INFO_IMPORTANTE);
1361
-			fclose($f);
1362
-
1363
-			return false;
1364
-		}
1365
-		// important, car sinon on lit trop vite et les donnees ne sont pas encore dispo
1366
-		stream_set_blocking($f, true);
1367
-		// envoyer le handshake
1368
-		stream_socket_enable_crypto($f, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
1369
-		spip_log("OK CONNECT sur $first_host:$port", 'connect');
1370
-	} else {
1371
-		$ntry = 3;
1372
-		do {
1373
-			$f = @fsockopen($first_host, $port, $errno, $errstr, _INC_DISTANT_CONNECT_TIMEOUT);
1374
-		} while (!$f and $ntry-- and $errno !== 110 and sleep(1));
1375
-		spip_log("Recuperer $path sur $first_host:$port par $f");
1376
-		if (!$f) {
1377
-			spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1378
-
1379
-			return $errno;
1380
-		}
1381
-		stream_set_timeout($f, _INC_DISTANT_CONNECT_TIMEOUT);
1382
-	}
1383
-
1384
-	$site = $GLOBALS['meta']['adresse_site'] ?? '';
1385
-
1386
-	$host_port = $host;
1387
-	if ($port != (in_array($scheme, ['tls','ssl']) ? 443 : 80)) {
1388
-		$host_port .= ":$port";
1389
-	}
1390
-	$req = "$method $path $vers\r\n"
1391
-		. "Host: $host_port\r\n"
1392
-		. 'User-Agent: ' . _INC_DISTANT_USER_AGENT . "\r\n"
1393
-		. ($refuse_gz ? '' : ('Accept-Encoding: ' . _INC_DISTANT_CONTENT_ENCODING . "\r\n"))
1394
-		. (!$site ? '' : "Referer: $site/$referer\r\n")
1395
-		. (!$date ? '' : 'If-Modified-Since: ' . (gmdate('D, d M Y H:i:s', $date) . " GMT\r\n"))
1396
-		. (!$user ? '' : ('Authorization: Basic ' . base64_encode($user) . "\r\n"))
1397
-		. (!$proxy_user ? '' : "Proxy-Authorization: Basic $proxy_user\r\n")
1398
-		. (!strpos($vers, '1.1') ? '' : "Keep-Alive: 300\r\nConnection: keep-alive\r\n");
1300
+    $proxy_user = '';
1301
+    $http_proxy = need_proxy($host);
1302
+    if ($user) {
1303
+        $user = urlencode($user[0]) . ':' . urlencode($user[1]);
1304
+    }
1305
+
1306
+    $connect = '';
1307
+    if ($http_proxy) {
1308
+        if (!defined('_PROXY_HTTPS_NOT_VIA_CONNECT') and in_array($scheme, ['tls','ssl'])) {
1309
+            $path_host = (!$user ? '' : "$user@") . $host . (($port != 80) ? ":$port" : '');
1310
+            $connect = 'CONNECT ' . $path_host . " $vers\r\n"
1311
+                . "Host: $path_host\r\n"
1312
+                . "Proxy-Connection: Keep-Alive\r\n";
1313
+        } else {
1314
+            $path = (in_array($scheme, ['tls','ssl']) ? 'https://' : "$scheme://")
1315
+                . (!$user ? '' : "$user@")
1316
+                . "$host" . (($port != 80) ? ":$port" : '') . $path;
1317
+        }
1318
+        $t2 = @parse_url($http_proxy);
1319
+        $first_host = $t2['host'];
1320
+        $port = ($t2['port'] ?? null) ?: 80;
1321
+        if ($t2['user'] ?? null) {
1322
+            $proxy_user = base64_encode($t2['user'] . ':' . $t2['pass']);
1323
+        }
1324
+    } else {
1325
+        $first_host = $noproxy . $host;
1326
+    }
1327
+
1328
+    if ($connect) {
1329
+        $streamContext = stream_context_create([
1330
+            'ssl' => [
1331
+                'verify_peer' => false,
1332
+                'allow_self_signed' => true,
1333
+                'SNI_enabled' => true,
1334
+                'peer_name' => $host,
1335
+            ]
1336
+        ]);
1337
+        $f = @stream_socket_client(
1338
+            "tcp://$first_host:$port",
1339
+            $errno,
1340
+            $errstr,
1341
+            _INC_DISTANT_CONNECT_TIMEOUT,
1342
+            STREAM_CLIENT_CONNECT,
1343
+            $streamContext
1344
+        );
1345
+        spip_log("Recuperer $path sur $first_host:$port par $f (via CONNECT)", 'connect');
1346
+        if (!$f) {
1347
+            spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1348
+            return $errno;
1349
+        }
1350
+        stream_set_timeout($f, _INC_DISTANT_CONNECT_TIMEOUT);
1351
+
1352
+        fputs($f, $connect);
1353
+        fputs($f, "\r\n");
1354
+        $res = fread($f, 1024);
1355
+        if (
1356
+            !$res
1357
+            or !count($res = explode(' ', $res))
1358
+            or $res[1] !== '200'
1359
+        ) {
1360
+            spip_log("Echec CONNECT sur $first_host:$port", 'connect' . _LOG_INFO_IMPORTANTE);
1361
+            fclose($f);
1362
+
1363
+            return false;
1364
+        }
1365
+        // important, car sinon on lit trop vite et les donnees ne sont pas encore dispo
1366
+        stream_set_blocking($f, true);
1367
+        // envoyer le handshake
1368
+        stream_socket_enable_crypto($f, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
1369
+        spip_log("OK CONNECT sur $first_host:$port", 'connect');
1370
+    } else {
1371
+        $ntry = 3;
1372
+        do {
1373
+            $f = @fsockopen($first_host, $port, $errno, $errstr, _INC_DISTANT_CONNECT_TIMEOUT);
1374
+        } while (!$f and $ntry-- and $errno !== 110 and sleep(1));
1375
+        spip_log("Recuperer $path sur $first_host:$port par $f");
1376
+        if (!$f) {
1377
+            spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1378
+
1379
+            return $errno;
1380
+        }
1381
+        stream_set_timeout($f, _INC_DISTANT_CONNECT_TIMEOUT);
1382
+    }
1383
+
1384
+    $site = $GLOBALS['meta']['adresse_site'] ?? '';
1385
+
1386
+    $host_port = $host;
1387
+    if ($port != (in_array($scheme, ['tls','ssl']) ? 443 : 80)) {
1388
+        $host_port .= ":$port";
1389
+    }
1390
+    $req = "$method $path $vers\r\n"
1391
+        . "Host: $host_port\r\n"
1392
+        . 'User-Agent: ' . _INC_DISTANT_USER_AGENT . "\r\n"
1393
+        . ($refuse_gz ? '' : ('Accept-Encoding: ' . _INC_DISTANT_CONTENT_ENCODING . "\r\n"))
1394
+        . (!$site ? '' : "Referer: $site/$referer\r\n")
1395
+        . (!$date ? '' : 'If-Modified-Since: ' . (gmdate('D, d M Y H:i:s', $date) . " GMT\r\n"))
1396
+        . (!$user ? '' : ('Authorization: Basic ' . base64_encode($user) . "\r\n"))
1397
+        . (!$proxy_user ? '' : "Proxy-Authorization: Basic $proxy_user\r\n")
1398
+        . (!strpos($vers, '1.1') ? '' : "Keep-Alive: 300\r\nConnection: keep-alive\r\n");
1399 1399
 
1400 1400
 #	spip_log("Requete\n$req", 'distant');
1401
-	fputs($f, $req);
1402
-	fputs($f, $datas ?: "\r\n");
1401
+    fputs($f, $req);
1402
+    fputs($f, $datas ?: "\r\n");
1403 1403
 
1404
-	return $f;
1404
+    return $f;
1405 1405
 }
Please login to merge, or discard this patch.
Spacing   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 	define('_INC_DISTANT_CONTENT_ENCODING', 'gzip');
27 27
 }
28 28
 if (!defined('_INC_DISTANT_USER_AGENT')) {
29
-	define('_INC_DISTANT_USER_AGENT', 'SPIP-' . $GLOBALS['spip_version_affichee'] . ' (' . $GLOBALS['home_server'] . ')');
29
+	define('_INC_DISTANT_USER_AGENT', 'SPIP-'.$GLOBALS['spip_version_affichee'].' ('.$GLOBALS['home_server'].')');
30 30
 }
31 31
 if (!defined('_INC_DISTANT_MAX_SIZE')) {
32 32
 	define('_INC_DISTANT_MAX_SIZE', 2_097_152);
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 	define('_INC_DISTANT_CONNECT_TIMEOUT', 10);
36 36
 }
37 37
 
38
-define('_REGEXP_COPIE_LOCALE', ',' 	.
38
+define('_REGEXP_COPIE_LOCALE', ','.
39 39
 	preg_replace(
40 40
 		'@^https?:@',
41 41
 		'https?:',
@@ -70,7 +70,7 @@  discard block
 block discarded – undo
70 70
 
71 71
 	// si c'est la protection de soi-meme, retourner le path
72 72
 	if ($mode !== 'force' and preg_match(_REGEXP_COPIE_LOCALE, $source, $match)) {
73
-		$source = substr(_DIR_IMG, strlen(_DIR_RACINE)) . urldecode($match[1]);
73
+		$source = substr(_DIR_IMG, strlen(_DIR_RACINE)).urldecode($match[1]);
74 74
 
75 75
 		return @file_exists($source) ? $source : false;
76 76
 	}
@@ -90,7 +90,7 @@  discard block
 block discarded – undo
90 90
 		return false;
91 91
 	}
92 92
 
93
-	$localrac = _DIR_RACINE . $local;
93
+	$localrac = _DIR_RACINE.$local;
94 94
 	$t = ($mode === 'force') ? false : @file_exists($localrac);
95 95
 
96 96
 	// test d'existence du fichier
@@ -115,10 +115,10 @@  discard block
 block discarded – undo
115 115
 			['file' => $localrac, 'taille_max' => $taille_max, 'if_modified_since' => $t ? filemtime($localrac) : '']
116 116
 		);
117 117
 		if (!$res or (!$res['length'] and $res['status'] != 304)) {
118
-			spip_log("copie_locale : Echec recuperation $source sur $localrac status : " . ($res ? $res['status'] : '-'), 'distant' . _LOG_INFO_IMPORTANTE);
118
+			spip_log("copie_locale : Echec recuperation $source sur $localrac status : ".($res ? $res['status'] : '-'), 'distant'._LOG_INFO_IMPORTANTE);
119 119
 		}
120 120
 		else {
121
-			spip_log("copie_locale : recuperation $source sur $localrac OK | taille " . $res['length'] . ' status ' . $res['status'], 'distant');
121
+			spip_log("copie_locale : recuperation $source sur $localrac OK | taille ".$res['length'].' status '.$res['status'], 'distant');
122 122
 		}
123 123
 		if (!$res or !$res['length']) {
124 124
 			// si $t c'est sans doute juste un not-modified-since
@@ -207,7 +207,7 @@  discard block
 block discarded – undo
207 207
 
208 208
 	if (!$is_known_host) {
209 209
 		$host = trim($parsed_url['host'], '.');
210
-		if (! $ip = filter_var($host, FILTER_VALIDATE_IP)) {
210
+		if (!$ip = filter_var($host, FILTER_VALIDATE_IP)) {
211 211
 			$ip = gethostbyname($host);
212 212
 			if ($ip === $host) {
213 213
 				// Error condition for gethostbyname()
@@ -228,7 +228,7 @@  discard block
 block discarded – undo
228 228
 			}
229 229
 		}
230 230
 		if ($ip) {
231
-			if (! filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
231
+			if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
232 232
 				return false;
233 233
 			}
234 234
 		}
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
 	}
240 240
 
241 241
 	$port = $parsed_url['port'];
242
-	if ($port === 80  or $port === 443  or $port === 8080) {
242
+	if ($port === 80 or $port === 443 or $port === 8080) {
243 243
 		return $url;
244 244
 	}
245 245
 
@@ -309,7 +309,7 @@  discard block
 block discarded – undo
309 309
 				}
310 310
 			}
311 311
 			if ($taille > 500) {
312
-				$boundary = substr(md5(random_int(0, mt_getrandmax()) . 'spip'), 0, 8);
312
+				$boundary = substr(md5(random_int(0, mt_getrandmax()).'spip'), 0, 8);
313 313
 			}
314 314
 		}
315 315
 
@@ -337,16 +337,16 @@  discard block
 block discarded – undo
337 337
 			}
338 338
 		} else {
339 339
 			// fabrique une chaine HTTP simple pour un POST
340
-			$entete = 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
340
+			$entete = 'Content-Type: application/x-www-form-urlencoded'."\r\n";
341 341
 			$chaine = [];
342 342
 			if (is_array($donnees)) {
343 343
 				foreach ($donnees as $cle => $valeur) {
344 344
 					if (is_array($valeur)) {
345 345
 						foreach ($valeur as $val2) {
346
-							$chaine[] = rawurlencode($cle) . '[]=' . rawurlencode($val2);
346
+							$chaine[] = rawurlencode($cle).'[]='.rawurlencode($val2);
347 347
 						}
348 348
 					} else {
349
-						$chaine[] = rawurlencode($cle) . '=' . rawurlencode($valeur);
349
+						$chaine[] = rawurlencode($cle).'='.rawurlencode($valeur);
350 350
 					}
351 351
 				}
352 352
 				$chaine = implode('&', $chaine);
@@ -451,13 +451,13 @@  discard block
 block discarded – undo
451 451
 		$options['taille_max'] = $copy ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
452 452
 	}
453 453
 
454
-	spip_log('recuperer_url ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
454
+	spip_log('recuperer_url '.$options['methode']." sur $url", 'distant'._LOG_DEBUG);
455 455
 
456 456
 	// Ajout des en-têtes spécifiques si besoin
457 457
 	$formatted_data = '';
458 458
 	if (!empty($options['headers'])) {
459 459
 		foreach ($options['headers'] as $champ => $valeur) {
460
-			$formatted_data .= $champ . ': ' . $valeur . "\r\n";
460
+			$formatted_data .= $champ.': '.$valeur."\r\n";
461 461
 		}
462 462
 	}
463 463
 
@@ -465,9 +465,9 @@  discard block
 block discarded – undo
465 465
 		[$head, $postdata] = prepare_donnees_post($options['datas'], $options['boundary']);
466 466
 		$head .= $formatted_data;
467 467
 		if (stripos($head, 'Content-Length:') === false) {
468
-			$head .= 'Content-Length: ' . strlen($postdata) . "\r\n";
468
+			$head .= 'Content-Length: '.strlen($postdata)."\r\n";
469 469
 		}
470
-		$formatted_data = $head . "\r\n" . $postdata;
470
+		$formatted_data = $head."\r\n".$postdata;
471 471
 		if (
472 472
 			strlen($postdata)
473 473
 			and !$methode_demandee
@@ -481,9 +481,9 @@  discard block
 block discarded – undo
481 481
 	// Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole
482 482
 	$url = preg_replace(',^feed://,i', 'http://', $url);
483 483
 	if (!tester_url_absolue($url)) {
484
-		$url = 'http://' . $url;
484
+		$url = 'http://'.$url;
485 485
 	} elseif (strncmp($url, '//', 2) == 0) {
486
-		$url = 'http:' . $url;
486
+		$url = 'http:'.$url;
487 487
 	}
488 488
 
489 489
 	$url = url_to_ascii($url);
@@ -512,7 +512,7 @@  discard block
 block discarded – undo
512 512
 		$options['if_modified_since']
513 513
 	);
514 514
 	if (!$handle) {
515
-		spip_log("ECHEC init_http $url", 'distant' . _LOG_ERREUR);
515
+		spip_log("ECHEC init_http $url", 'distant'._LOG_ERREUR);
516 516
 
517 517
 		return false;
518 518
 	}
@@ -542,7 +542,7 @@  discard block
 block discarded – undo
542 542
 					'status' => 200,
543 543
 				];
544 544
 			} else {
545
-				spip_log("ECHEC chinoiserie $url", 'distant' . _LOG_ERREUR);
545
+				spip_log("ECHEC chinoiserie $url", 'distant'._LOG_ERREUR);
546 546
 				return false;
547 547
 			}
548 548
 		} elseif ($res['location'] and $options['follow_location']) {
@@ -558,11 +558,11 @@  discard block
 block discarded – undo
558 558
 					$options['datas'] = '';
559 559
 				}
560 560
 			}
561
-			spip_log('recuperer_url recommence ' . $options['methode'] . " sur $url", 'distant' . _LOG_DEBUG);
561
+			spip_log('recuperer_url recommence '.$options['methode']." sur $url", 'distant'._LOG_DEBUG);
562 562
 
563 563
 			return recuperer_url($url, $options);
564 564
 		} elseif ($res['status'] !== 200) {
565
-			spip_log('HTTP status ' . $res['status'] . " pour $url", 'distant');
565
+			spip_log('HTTP status '.$res['status']." pour $url", 'distant');
566 566
 		}
567 567
 		$result['status'] = $res['status'];
568 568
 		if (isset($res['headers'])) {
@@ -578,7 +578,7 @@  discard block
 block discarded – undo
578 578
 
579 579
 	// on ne veut que les entetes
580 580
 	if (!$options['taille_max'] or $options['methode'] == 'HEAD' or $result['status'] == '304') {
581
-		spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($result), 'distant' . _LOG_DEBUG);
581
+		spip_log('RESULTAT recuperer_url '.$options['methode']." sur $url : ".json_encode($result), 'distant'._LOG_DEBUG);
582 582
 		return $result;
583 583
 	}
584 584
 
@@ -588,7 +588,7 @@  discard block
 block discarded – undo
588 588
 
589 589
 	$gz = false;
590 590
 	if (preg_match(",\bContent-Encoding: .*gzip,is", $result['headers'])) {
591
-		$gz = (_DIR_TMP . md5(uniqid(random_int(0, mt_getrandmax()))) . '.tmp.gz');
591
+		$gz = (_DIR_TMP.md5(uniqid(random_int(0, mt_getrandmax()))).'.tmp.gz');
592 592
 	}
593 593
 
594 594
 	// si on a pas deja recuperer le contenu par une methode detournee
@@ -624,7 +624,7 @@  discard block
 block discarded – undo
624 624
 
625 625
 	$trace = json_decode(json_encode($result), true);
626 626
 	$trace['page'] = '...';
627
-	spip_log('RESULTAT recuperer_url ' . $options['methode'] . " sur $url : " . json_encode($trace), 'distant' . _LOG_DEBUG);
627
+	spip_log('RESULTAT recuperer_url '.$options['methode']." sur $url : ".json_encode($trace), 'distant'._LOG_DEBUG);
628 628
 
629 629
 	return $result;
630 630
 }
@@ -678,7 +678,7 @@  discard block
 block discarded – undo
678 678
 	$sig['url'] = $url;
679 679
 
680 680
 	$dir = sous_repertoire(_DIR_CACHE, 'curl');
681
-	$cache = md5(serialize($sig)) . '-' . substr(preg_replace(',\W+,', '_', $url), 0, 80);
681
+	$cache = md5(serialize($sig)).'-'.substr(preg_replace(',\W+,', '_', $url), 0, 80);
682 682
 	$sub = sous_repertoire($dir, substr($cache, 0, 2));
683 683
 	$cache = "$sub$cache";
684 684
 
@@ -732,7 +732,7 @@  discard block
 block discarded – undo
732 732
 	$fp = false;
733 733
 	if ($fichier) {
734 734
 		include_spip('inc/acces');
735
-		$tmpfile = "$fichier." . creer_uniqid() . '.tmp';
735
+		$tmpfile = "$fichier.".creer_uniqid().'.tmp';
736 736
 		$fp = spip_fopen_lock($tmpfile, 'w', LOCK_EX);
737 737
 		if (!$fp and file_exists($fichier)) {
738 738
 			return filesize($fichier);
@@ -791,7 +791,7 @@  discard block
 block discarded – undo
791 791
 	}
792 792
 	$result['status'] = intval($r[1]);
793 793
 	while ($s = trim(fgets($handle, 16384))) {
794
-		$result['headers'][] = $s . "\n";
794
+		$result['headers'][] = $s."\n";
795 795
 		preg_match(',^([^:]*): *(.*)$,i', $s, $r);
796 796
 		[, $d, $v] = $r;
797 797
 		if (strtolower(trim($d)) == 'location' and $result['status'] >= 300 and $result['status'] < 400) {
@@ -840,13 +840,13 @@  discard block
 block discarded – undo
840 840
 
841 841
 	// on se place tout le temps comme si on etait a la racine
842 842
 	if (_DIR_RACINE) {
843
-		$d = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $d);
843
+		$d = preg_replace(',^'.preg_quote(_DIR_RACINE).',', '', $d);
844 844
 	}
845 845
 
846 846
 	$m = md5($source);
847 847
 
848 848
 	return $d
849
-	. substr(preg_replace(',[^\w-],', '', basename($source)) . '-' . $m, 0, 12)
849
+	. substr(preg_replace(',[^\w-],', '', basename($source)).'-'.$m, 0, 12)
850 850
 	. substr($m, 0, 4)
851 851
 	. ".$extension";
852 852
 }
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
 	// Si c'est deja local pas de souci
870 870
 	if (!tester_url_absolue($source)) {
871 871
 		if (_DIR_RACINE) {
872
-			$source = preg_replace(',^' . preg_quote(_DIR_RACINE) . ',', '', $source);
872
+			$source = preg_replace(',^'.preg_quote(_DIR_RACINE).',', '', $source);
873 873
 		}
874 874
 
875 875
 		return $source;
@@ -887,7 +887,7 @@  discard block
 block discarded – undo
887 887
 		$ext
888 888
 		and preg_match(',^\w+$,', $ext) // pas de php?truc=1&...
889 889
 		and $f = nom_fichier_copie_locale($source, $ext)
890
-		and file_exists(_DIR_RACINE . $f)
890
+		and file_exists(_DIR_RACINE.$f)
891 891
 	) {
892 892
 		return $f;
893 893
 	}
@@ -895,7 +895,7 @@  discard block
 block discarded – undo
895 895
 
896 896
 	// Si c'est deja dans la table des documents,
897 897
 	// ramener le nom de sa copie potentielle
898
-	$ext = sql_getfetsel('extension', 'spip_documents', 'fichier=' . sql_quote($source) . " AND distant='oui' AND extension <> ''");
898
+	$ext = sql_getfetsel('extension', 'spip_documents', 'fichier='.sql_quote($source)." AND distant='oui' AND extension <> ''");
899 899
 
900 900
 	if ($ext) {
901 901
 		return nom_fichier_copie_locale($source, $ext);
@@ -906,9 +906,9 @@  discard block
 block discarded – undo
906 906
 
907 907
 	$ext = $path_parts ? $path_parts['extension'] : '';
908 908
 
909
-	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
909
+	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension='.sql_quote($ext))) {
910 910
 		$f = nom_fichier_copie_locale($source, $ext);
911
-		if (file_exists(_DIR_RACINE . $f)) {
911
+		if (file_exists(_DIR_RACINE.$f)) {
912 912
 			return $f;
913 913
 		}
914 914
 	}
@@ -916,7 +916,7 @@  discard block
 block discarded – undo
916 916
 	// Ping  pour voir si son extension est connue et autorisee
917 917
 	// avec mise en cache du resultat du ping
918 918
 
919
-	$cache = sous_repertoire(_DIR_CACHE, 'rid') . md5($source);
919
+	$cache = sous_repertoire(_DIR_CACHE, 'rid').md5($source);
920 920
 	if (
921 921
 		!@file_exists($cache)
922 922
 		or !$path_parts = @unserialize(spip_file_get_contents($cache))
@@ -926,10 +926,10 @@  discard block
 block discarded – undo
926 926
 		ecrire_fichier($cache, serialize($path_parts));
927 927
 	}
928 928
 	$ext = !empty($path_parts['extension']) ? $path_parts['extension'] : '';
929
-	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension=' . sql_quote($ext))) {
929
+	if ($ext and sql_getfetsel('extension', 'spip_types_documents', 'extension='.sql_quote($ext))) {
930 930
 		return nom_fichier_copie_locale($source, $ext);
931 931
 	}
932
-	spip_log("pas de copie locale pour $source", 'distant' . _LOG_ERREUR);
932
+	spip_log("pas de copie locale pour $source", 'distant'._LOG_ERREUR);
933 933
 }
934 934
 
935 935
 
@@ -1013,7 +1013,7 @@  discard block
 block discarded – undo
1013 1013
 		} else {
1014 1014
 			if ($a['body']) {
1015 1015
 				$a['extension'] = $extension;
1016
-				$a['fichier'] = _DIR_RACINE . nom_fichier_copie_locale($source, $extension);
1016
+				$a['fichier'] = _DIR_RACINE.nom_fichier_copie_locale($source, $extension);
1017 1017
 				ecrire_fichier($a['fichier'], $a['body']);
1018 1018
 				$size_image = @spip_getimagesize($a['fichier']);
1019 1019
 				$a['largeur'] = intval($size_image[0]);
@@ -1081,20 +1081,20 @@  discard block
 block discarded – undo
1081 1081
 			!$t
1082 1082
 			and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1083 1083
 		) {
1084
-			$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1084
+			$t = sql_fetsel('extension', 'spip_types_documents', 'extension='.sql_quote(corriger_extension($rext[1]), '', 'text'));
1085 1085
 		}
1086 1086
 		if (
1087 1087
 			!$t
1088 1088
 			and preg_match(',^Content-Disposition:\s*attachment;\s*filename=(.*)$,Uims', $headers, $m)
1089 1089
 			and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $m[1], $rext)
1090 1090
 		) {
1091
-			$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1091
+			$t = sql_fetsel('extension', 'spip_types_documents', 'extension='.sql_quote(corriger_extension($rext[1]), '', 'text'));
1092 1092
 		}
1093 1093
 	}
1094 1094
 
1095 1095
 	// Autre mime/type (ou text/plain avec fichier d'extension inconnue)
1096 1096
 	if (!$t) {
1097
-		$t = sql_fetsel('extension', 'spip_types_documents', 'mime_type=' . sql_quote($mime_type));
1097
+		$t = sql_fetsel('extension', 'spip_types_documents', 'mime_type='.sql_quote($mime_type));
1098 1098
 	}
1099 1099
 
1100 1100
 	// Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg)
@@ -1105,11 +1105,11 @@  discard block
 block discarded – undo
1105 1105
 		and preg_match(',\.([a-z0-9]+)(\?.*)?$,i', $source, $rext)
1106 1106
 	) {
1107 1107
 		# eviter xxx.3 => 3gp (> SPIP 3)
1108
-		$t = sql_fetsel('extension', 'spip_types_documents', 'extension=' . sql_quote(corriger_extension($rext[1]), '', 'text'));
1108
+		$t = sql_fetsel('extension', 'spip_types_documents', 'extension='.sql_quote(corriger_extension($rext[1]), '', 'text'));
1109 1109
 	}
1110 1110
 
1111 1111
 	if ($t) {
1112
-		spip_log("mime-type $mime_type ok, extension " . $t['extension'], 'distant');
1112
+		spip_log("mime-type $mime_type ok, extension ".$t['extension'], 'distant');
1113 1113
 		return $t['extension'];
1114 1114
 	} else {
1115 1115
 		# par defaut on retombe sur '.bin' si c'est autorise
@@ -1212,7 +1212,7 @@  discard block
 block discarded – undo
1212 1212
 		}
1213 1213
 	} else {
1214 1214
 		$scheme = $t['scheme'];
1215
-		$noproxy = $scheme . '://';
1215
+		$noproxy = $scheme.'://';
1216 1216
 	}
1217 1217
 	if (isset($t['user'])) {
1218 1218
 		$user = [$t['user'], $t['pass']];
@@ -1226,7 +1226,7 @@  discard block
 block discarded – undo
1226 1226
 	}
1227 1227
 
1228 1228
 	if (!empty($t['query'])) {
1229
-		$path .= '?' . $t['query'];
1229
+		$path .= '?'.$t['query'];
1230 1230
 	}
1231 1231
 
1232 1232
 	$f = lance_requete($method, $scheme, $user, $host, $path, $port, $noproxy, $refuse_gz, $referer, $datas, $vers, $date);
@@ -1300,29 +1300,29 @@  discard block
 block discarded – undo
1300 1300
 	$proxy_user = '';
1301 1301
 	$http_proxy = need_proxy($host);
1302 1302
 	if ($user) {
1303
-		$user = urlencode($user[0]) . ':' . urlencode($user[1]);
1303
+		$user = urlencode($user[0]).':'.urlencode($user[1]);
1304 1304
 	}
1305 1305
 
1306 1306
 	$connect = '';
1307 1307
 	if ($http_proxy) {
1308
-		if (!defined('_PROXY_HTTPS_NOT_VIA_CONNECT') and in_array($scheme, ['tls','ssl'])) {
1309
-			$path_host = (!$user ? '' : "$user@") . $host . (($port != 80) ? ":$port" : '');
1310
-			$connect = 'CONNECT ' . $path_host . " $vers\r\n"
1308
+		if (!defined('_PROXY_HTTPS_NOT_VIA_CONNECT') and in_array($scheme, ['tls', 'ssl'])) {
1309
+			$path_host = (!$user ? '' : "$user@").$host.(($port != 80) ? ":$port" : '');
1310
+			$connect = 'CONNECT '.$path_host." $vers\r\n"
1311 1311
 				. "Host: $path_host\r\n"
1312 1312
 				. "Proxy-Connection: Keep-Alive\r\n";
1313 1313
 		} else {
1314
-			$path = (in_array($scheme, ['tls','ssl']) ? 'https://' : "$scheme://")
1314
+			$path = (in_array($scheme, ['tls', 'ssl']) ? 'https://' : "$scheme://")
1315 1315
 				. (!$user ? '' : "$user@")
1316
-				. "$host" . (($port != 80) ? ":$port" : '') . $path;
1316
+				. "$host".(($port != 80) ? ":$port" : '').$path;
1317 1317
 		}
1318 1318
 		$t2 = @parse_url($http_proxy);
1319 1319
 		$first_host = $t2['host'];
1320 1320
 		$port = ($t2['port'] ?? null) ?: 80;
1321 1321
 		if ($t2['user'] ?? null) {
1322
-			$proxy_user = base64_encode($t2['user'] . ':' . $t2['pass']);
1322
+			$proxy_user = base64_encode($t2['user'].':'.$t2['pass']);
1323 1323
 		}
1324 1324
 	} else {
1325
-		$first_host = $noproxy . $host;
1325
+		$first_host = $noproxy.$host;
1326 1326
 	}
1327 1327
 
1328 1328
 	if ($connect) {
@@ -1344,7 +1344,7 @@  discard block
 block discarded – undo
1344 1344
 		);
1345 1345
 		spip_log("Recuperer $path sur $first_host:$port par $f (via CONNECT)", 'connect');
1346 1346
 		if (!$f) {
1347
-			spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1347
+			spip_log("Erreur connexion $errno $errstr", 'distant'._LOG_ERREUR);
1348 1348
 			return $errno;
1349 1349
 		}
1350 1350
 		stream_set_timeout($f, _INC_DISTANT_CONNECT_TIMEOUT);
@@ -1357,7 +1357,7 @@  discard block
 block discarded – undo
1357 1357
 			or !count($res = explode(' ', $res))
1358 1358
 			or $res[1] !== '200'
1359 1359
 		) {
1360
-			spip_log("Echec CONNECT sur $first_host:$port", 'connect' . _LOG_INFO_IMPORTANTE);
1360
+			spip_log("Echec CONNECT sur $first_host:$port", 'connect'._LOG_INFO_IMPORTANTE);
1361 1361
 			fclose($f);
1362 1362
 
1363 1363
 			return false;
@@ -1374,7 +1374,7 @@  discard block
 block discarded – undo
1374 1374
 		} while (!$f and $ntry-- and $errno !== 110 and sleep(1));
1375 1375
 		spip_log("Recuperer $path sur $first_host:$port par $f");
1376 1376
 		if (!$f) {
1377
-			spip_log("Erreur connexion $errno $errstr", 'distant' . _LOG_ERREUR);
1377
+			spip_log("Erreur connexion $errno $errstr", 'distant'._LOG_ERREUR);
1378 1378
 
1379 1379
 			return $errno;
1380 1380
 		}
@@ -1384,16 +1384,16 @@  discard block
 block discarded – undo
1384 1384
 	$site = $GLOBALS['meta']['adresse_site'] ?? '';
1385 1385
 
1386 1386
 	$host_port = $host;
1387
-	if ($port != (in_array($scheme, ['tls','ssl']) ? 443 : 80)) {
1387
+	if ($port != (in_array($scheme, ['tls', 'ssl']) ? 443 : 80)) {
1388 1388
 		$host_port .= ":$port";
1389 1389
 	}
1390 1390
 	$req = "$method $path $vers\r\n"
1391 1391
 		. "Host: $host_port\r\n"
1392
-		. 'User-Agent: ' . _INC_DISTANT_USER_AGENT . "\r\n"
1393
-		. ($refuse_gz ? '' : ('Accept-Encoding: ' . _INC_DISTANT_CONTENT_ENCODING . "\r\n"))
1392
+		. 'User-Agent: '._INC_DISTANT_USER_AGENT."\r\n"
1393
+		. ($refuse_gz ? '' : ('Accept-Encoding: '._INC_DISTANT_CONTENT_ENCODING."\r\n"))
1394 1394
 		. (!$site ? '' : "Referer: $site/$referer\r\n")
1395
-		. (!$date ? '' : 'If-Modified-Since: ' . (gmdate('D, d M Y H:i:s', $date) . " GMT\r\n"))
1396
-		. (!$user ? '' : ('Authorization: Basic ' . base64_encode($user) . "\r\n"))
1395
+		. (!$date ? '' : 'If-Modified-Since: '.(gmdate('D, d M Y H:i:s', $date)." GMT\r\n"))
1396
+		. (!$user ? '' : ('Authorization: Basic '.base64_encode($user)."\r\n"))
1397 1397
 		. (!$proxy_user ? '' : "Proxy-Authorization: Basic $proxy_user\r\n")
1398 1398
 		. (!strpos($vers, '1.1') ? '' : "Keep-Alive: 300\r\nConnection: keep-alive\r\n");
1399 1399
 
Please login to merge, or discard this patch.