Completed
Push — master ( ad9227...bd2221 )
by cam
01:15
created
ecrire/lang/ecrire_nl.php 1 patch
Indentation   +822 added lines, -822 removed lines patch added patch discarded remove patch
@@ -5,403 +5,403 @@  discard block
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'activer_plugin' => 'Plugin activeren',
10
-	'affichage' => 'Weergave',
11
-	'aide_non_disponible' => 'Dit deel van de online handleiding is nog niet beschikbaar in het Nederlands.',
12
-	'annuler_recherche' => 'Zoekopdracht stoppen',
13
-	'auteur' => 'Auteur:',
14
-	'avis_acces_interdit' => 'Toegang verboden',
15
-	'avis_acces_interdit_prive' => 'Je hebt geen toegangsrechten voor pagina <b>@exec@</b>.',
16
-	'avis_article_modifie' => 'LET OP: @nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt.',
17
-	'avis_aucun_resultat' => 'Geen resultaat.',
18
-	'avis_base_inaccessible' => 'Kan geen verbinding maken met database @base@.',
19
-	'avis_chemin_invalide_1' => 'De toegang die je hebt gekozen',
20
-	'avis_chemin_invalide_2' => 'lijkt niet geldig. Ga terug naar de vorige pagina en controleer de ingevulde gegevens.',
21
-	'avis_connexion_echec_1' => 'De verbinding met de database is mislukt.',
22
-	'avis_connexion_echec_2' => 'Keer terug naar de vorige pagina en kijk de gegevens na die je hebt ingevuld.',
23
-	'avis_connexion_echec_3' => '<b>LET OP</b> Op veel servers moet je vooraf om activatie van je toegang tot de database <b>vragen</b>. Als je geen verbinding kan maken, kijk dan na of je deze actie hebt ondernomen.',
24
-	'avis_connexion_erreur_creer_base' => 'De database kon niet worden gemaakt.',
25
-	'avis_connexion_erreur_nom_base' => 'De databasenaam kan enkel letters, cijfers en koppeltekens bevatten',
26
-	'avis_connexion_ldap_echec_1' => 'De verbinding met de LDAP-server is mislukt.',
27
-	'avis_connexion_ldap_echec_2' => 'Ga terug naar de vorige pagina en kijk na of de ingevulde gegevens correct zijn.',
28
-	'avis_connexion_ldap_echec_3' => 'Andere mogelijkheid is om de LDAP-ondersteuning om gebruikers in te voeren niet te gebruiken.',
29
-	'avis_deplacement_rubrique' => 'LET OP! Deze rubriek bevat @contient_breves@ nieuwsflits@scb@. Als je wil verplaatsten, bevestig dit dan door hier het vakje aan te vinken.',
30
-	'avis_erreur_connexion_mysql' => 'Verbinding met de SQL connectie mislukt',
31
-	'avis_espace_interdit' => '<b>Toegang verboden</b><div>SPIP is al geïnstalleerd.</div>',
32
-	'avis_lecture_noms_bases_1' => 'Het installatieprogramma heeft de namen van de geïnstalleerde databases niet kunnen lezen.',
33
-	'avis_lecture_noms_bases_2' => 'Geen enkele database is beschikbaar, ofwel is de functie die de databases zou moeten tonen om veiligheidsredenen niet geactiveerd (wat vaak het geval is bij providers).',
34
-	'avis_lecture_noms_bases_3' => 'In het andere geval is het heel waarschijnlijk dat een database met jouw aanmeldingsnaam (login) bruikbaar is:',
35
-	'avis_non_acces_page' => 'Je hebt geen toegang tot deze pagina.',
36
-	'avis_operation_echec' => 'De bewerking is mislukt.',
37
-	'avis_operation_impossible' => 'Onmogelijke handeling',
38
-	'avis_suppression_base' => 'LET OP: Het wissen van de gegevens is onomkeerbaar',
8
+    // A
9
+    'activer_plugin' => 'Plugin activeren',
10
+    'affichage' => 'Weergave',
11
+    'aide_non_disponible' => 'Dit deel van de online handleiding is nog niet beschikbaar in het Nederlands.',
12
+    'annuler_recherche' => 'Zoekopdracht stoppen',
13
+    'auteur' => 'Auteur:',
14
+    'avis_acces_interdit' => 'Toegang verboden',
15
+    'avis_acces_interdit_prive' => 'Je hebt geen toegangsrechten voor pagina <b>@exec@</b>.',
16
+    'avis_article_modifie' => 'LET OP: @nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt.',
17
+    'avis_aucun_resultat' => 'Geen resultaat.',
18
+    'avis_base_inaccessible' => 'Kan geen verbinding maken met database @base@.',
19
+    'avis_chemin_invalide_1' => 'De toegang die je hebt gekozen',
20
+    'avis_chemin_invalide_2' => 'lijkt niet geldig. Ga terug naar de vorige pagina en controleer de ingevulde gegevens.',
21
+    'avis_connexion_echec_1' => 'De verbinding met de database is mislukt.',
22
+    'avis_connexion_echec_2' => 'Keer terug naar de vorige pagina en kijk de gegevens na die je hebt ingevuld.',
23
+    'avis_connexion_echec_3' => '<b>LET OP</b> Op veel servers moet je vooraf om activatie van je toegang tot de database <b>vragen</b>. Als je geen verbinding kan maken, kijk dan na of je deze actie hebt ondernomen.',
24
+    'avis_connexion_erreur_creer_base' => 'De database kon niet worden gemaakt.',
25
+    'avis_connexion_erreur_nom_base' => 'De databasenaam kan enkel letters, cijfers en koppeltekens bevatten',
26
+    'avis_connexion_ldap_echec_1' => 'De verbinding met de LDAP-server is mislukt.',
27
+    'avis_connexion_ldap_echec_2' => 'Ga terug naar de vorige pagina en kijk na of de ingevulde gegevens correct zijn.',
28
+    'avis_connexion_ldap_echec_3' => 'Andere mogelijkheid is om de LDAP-ondersteuning om gebruikers in te voeren niet te gebruiken.',
29
+    'avis_deplacement_rubrique' => 'LET OP! Deze rubriek bevat @contient_breves@ nieuwsflits@scb@. Als je wil verplaatsten, bevestig dit dan door hier het vakje aan te vinken.',
30
+    'avis_erreur_connexion_mysql' => 'Verbinding met de SQL connectie mislukt',
31
+    'avis_espace_interdit' => '<b>Toegang verboden</b><div>SPIP is al geïnstalleerd.</div>',
32
+    'avis_lecture_noms_bases_1' => 'Het installatieprogramma heeft de namen van de geïnstalleerde databases niet kunnen lezen.',
33
+    'avis_lecture_noms_bases_2' => 'Geen enkele database is beschikbaar, ofwel is de functie die de databases zou moeten tonen om veiligheidsredenen niet geactiveerd (wat vaak het geval is bij providers).',
34
+    'avis_lecture_noms_bases_3' => 'In het andere geval is het heel waarschijnlijk dat een database met jouw aanmeldingsnaam (login) bruikbaar is:',
35
+    'avis_non_acces_page' => 'Je hebt geen toegang tot deze pagina.',
36
+    'avis_operation_echec' => 'De bewerking is mislukt.',
37
+    'avis_operation_impossible' => 'Onmogelijke handeling',
38
+    'avis_suppression_base' => 'LET OP: Het wissen van de gegevens is onomkeerbaar',
39 39
 
40
-	// B
41
-	'bouton_acces_ldap' => 'LDAP toegang toevoegen',
42
-	'bouton_ajouter' => 'Toevoegen',
43
-	'bouton_annuler' => 'Annuleren',
44
-	'bouton_cache_activer' => 'Buffer (cache) reactiveren',
45
-	'bouton_cache_desactiver' => 'Buffer (cache) tijdelijk uitschakelen',
46
-	'bouton_demande_publication' => 'De publicatie van het artikel vragen',
47
-	'bouton_desactive_tout' => 'Alles deactiveren',
48
-	'bouton_desinstaller' => 'Terugtrekken',
49
-	'bouton_effacer_tout' => 'ALLES wissen',
50
-	'bouton_envoyer_message' => 'Definitief bericht: versturen',
51
-	'bouton_fermer' => 'Sluiten',
52
-	'bouton_mettre_a_jour_base' => 'Database update',
53
-	'bouton_modifier' => 'Wijzigen',
54
-	'bouton_radio_afficher' => 'Weergeven',
55
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Opnemen in de lijst van online redacteurs',
56
-	'bouton_radio_envoi_annonces_adresse' => 'Aankondigingen verzenden naar dit adres:',
57
-	'bouton_radio_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen versturen',
58
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Niet opnemen in de lijst van redacteurs',
59
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Geen editoriale aankondigingen versturen',
60
-	'bouton_redirection' => 'OMLEIDING',
61
-	'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Terugzetten naar de standaardwaardes',
62
-	'bouton_relancer_installation' => 'Installatie herstarten',
63
-	'bouton_reset_password' => 'Een nieuw wachtwoord genereren en per email opsturen',
64
-	'bouton_suivant' => 'Volgende',
65
-	'bouton_tenter_recuperation' => 'Poging tot herstel',
66
-	'bouton_test_proxy' => 'Proxy proberen',
67
-	'bouton_vider_cache' => 'De buffer (cache) leegmaken',
40
+    // B
41
+    'bouton_acces_ldap' => 'LDAP toegang toevoegen',
42
+    'bouton_ajouter' => 'Toevoegen',
43
+    'bouton_annuler' => 'Annuleren',
44
+    'bouton_cache_activer' => 'Buffer (cache) reactiveren',
45
+    'bouton_cache_desactiver' => 'Buffer (cache) tijdelijk uitschakelen',
46
+    'bouton_demande_publication' => 'De publicatie van het artikel vragen',
47
+    'bouton_desactive_tout' => 'Alles deactiveren',
48
+    'bouton_desinstaller' => 'Terugtrekken',
49
+    'bouton_effacer_tout' => 'ALLES wissen',
50
+    'bouton_envoyer_message' => 'Definitief bericht: versturen',
51
+    'bouton_fermer' => 'Sluiten',
52
+    'bouton_mettre_a_jour_base' => 'Database update',
53
+    'bouton_modifier' => 'Wijzigen',
54
+    'bouton_radio_afficher' => 'Weergeven',
55
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Opnemen in de lijst van online redacteurs',
56
+    'bouton_radio_envoi_annonces_adresse' => 'Aankondigingen verzenden naar dit adres:',
57
+    'bouton_radio_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen versturen',
58
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Niet opnemen in de lijst van redacteurs',
59
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Geen editoriale aankondigingen versturen',
60
+    'bouton_redirection' => 'OMLEIDING',
61
+    'bouton_reinitialiser_aux_valeurs_par_defaut' => 'Terugzetten naar de standaardwaardes',
62
+    'bouton_relancer_installation' => 'Installatie herstarten',
63
+    'bouton_reset_password' => 'Een nieuw wachtwoord genereren en per email opsturen',
64
+    'bouton_suivant' => 'Volgende',
65
+    'bouton_tenter_recuperation' => 'Poging tot herstel',
66
+    'bouton_test_proxy' => 'Proxy proberen',
67
+    'bouton_vider_cache' => 'De buffer (cache) leegmaken',
68 68
 
69
-	// C
70
-	'cache_modifiable_webmestre' => 'Deze parameter kan door de webmaster van de site gewijzigd worden.',
71
-	'calendrier_synchro' => 'Wanneer je <b>iCal</b> compatibele agendasoftware gebruikt, kan je deze synchroniseren met informatie van deze site.',
72
-	'config_activer_champs' => 'De volgende velden activeren',
73
-	'config_choix_base_sup' => 'een database op deze server kiezen',
74
-	'config_erreur_base_sup' => 'SPIP heeft geen toegang tot de lijst van toegankelijke databases',
75
-	'config_info_base_sup' => 'Als je andere databases hebt om door SPIP te ondervragen, met zijn SQL server of anders, kan je deze via onderstaand formulier opgeven. Als je bepaalde velden leeg laat, zullen de identificatiegegevens van de primaire database gebruikt worden.',
76
-	'config_info_base_sup_disponibles' => 'De reeds opvraagbare aanvullende databases:',
77
-	'config_info_enregistree' => 'De nieuwe configuratie werd bewaard',
78
-	'config_info_logos' => 'Elk element van de site kan een logo hebben, evenals een « zwevend logo »',
79
-	'config_info_logos_utiliser' => 'Logo’s gebruiken',
80
-	'config_info_logos_utiliser_non' => 'Logo’s niet gebruiken',
81
-	'config_info_logos_utiliser_survol' => 'Zwevende logo’s gebruiken',
82
-	'config_info_logos_utiliser_survol_non' => 'Geen zwevende logo’s gebruiken',
83
-	'config_info_redirection' => 'Door deze optie te activeren, kan je virtuele artikelen maken, eenvoudige verwijzen naar gepubliceerde artikelen op andere sites, ook buiten SPIP.',
84
-	'config_redirection' => 'Virtuele artikelen',
85
-	'config_titre_base_sup' => 'Declareren van een extra database',
86
-	'config_titre_base_sup_choix' => 'Kies een extra database',
87
-	'connexion_ldap' => 'Aansluiten:',
88
-	'creer_et_associer_un_auteur' => 'Maken en associëren een auteur',
69
+    // C
70
+    'cache_modifiable_webmestre' => 'Deze parameter kan door de webmaster van de site gewijzigd worden.',
71
+    'calendrier_synchro' => 'Wanneer je <b>iCal</b> compatibele agendasoftware gebruikt, kan je deze synchroniseren met informatie van deze site.',
72
+    'config_activer_champs' => 'De volgende velden activeren',
73
+    'config_choix_base_sup' => 'een database op deze server kiezen',
74
+    'config_erreur_base_sup' => 'SPIP heeft geen toegang tot de lijst van toegankelijke databases',
75
+    'config_info_base_sup' => 'Als je andere databases hebt om door SPIP te ondervragen, met zijn SQL server of anders, kan je deze via onderstaand formulier opgeven. Als je bepaalde velden leeg laat, zullen de identificatiegegevens van de primaire database gebruikt worden.',
76
+    'config_info_base_sup_disponibles' => 'De reeds opvraagbare aanvullende databases:',
77
+    'config_info_enregistree' => 'De nieuwe configuratie werd bewaard',
78
+    'config_info_logos' => 'Elk element van de site kan een logo hebben, evenals een « zwevend logo »',
79
+    'config_info_logos_utiliser' => 'Logo’s gebruiken',
80
+    'config_info_logos_utiliser_non' => 'Logo’s niet gebruiken',
81
+    'config_info_logos_utiliser_survol' => 'Zwevende logo’s gebruiken',
82
+    'config_info_logos_utiliser_survol_non' => 'Geen zwevende logo’s gebruiken',
83
+    'config_info_redirection' => 'Door deze optie te activeren, kan je virtuele artikelen maken, eenvoudige verwijzen naar gepubliceerde artikelen op andere sites, ook buiten SPIP.',
84
+    'config_redirection' => 'Virtuele artikelen',
85
+    'config_titre_base_sup' => 'Declareren van een extra database',
86
+    'config_titre_base_sup_choix' => 'Kies een extra database',
87
+    'connexion_ldap' => 'Aansluiten:',
88
+    'creer_et_associer_un_auteur' => 'Maken en associëren een auteur',
89 89
 
90
-	// D
91
-	'date_mot_heures' => 'uur',
90
+    // D
91
+    'date_mot_heures' => 'uur',
92 92
 
93
-	// E
94
-	'ecran_securite' => '+ beveiligingsscherm @version@',
95
-	'email' => 'e-mail',
96
-	'email_2' => 'e-mail:',
97
-	'en_savoir_plus' => 'Meer weten hierover',
98
-	'entree_adresse_annuaire' => 'Plaats van het adresboek',
99
-	'entree_adresse_email' => 'Je e-mailadres',
100
-	'entree_adresse_email_2' => 'E-mailadres',
101
-	'entree_base_donnee_1' => 'Adres van de database',
102
-	'entree_base_donnee_2' => '(Vaak komt dit adres overeen met dat van je website, soms is het gewoon de vermelding «localhost» of kan je het veld blanco laten.)',
103
-	'entree_biographie' => 'Korte biografie in enkele woorden.',
104
-	'entree_chemin_acces' => '<b>Invullen</b> van de toegangscode :',
105
-	'entree_cle_pgp' => 'Je PGP-sleutel',
106
-	'entree_cle_pgp_2' => 'PGP-sleutel',
107
-	'entree_contenu_rubrique' => '(Inhoud van de rubriek in enkele woorden)',
108
-	'entree_identifiants_connexion' => 'Je verbindingsgegevens...',
109
-	'entree_identifiants_connexion_2' => 'Login',
110
-	'entree_informations_connexion_ldap' => 'Vul hier de gegevens in om verbinding te maken met het LDAP adresboek. Deze gegevens kan je opvragen bij de systeem- of netwerkbeheerder.',
111
-	'entree_infos_perso' => 'Wie ben je ?',
112
-	'entree_infos_perso_2' => 'Wie is de auteur ?',
113
-	'entree_interieur_rubrique' => 'In de rubriek:',
114
-	'entree_liens_sites' => '<b>Hypertext link</b> (verwijzing, te bezoeken website ...)',
115
-	'entree_login' => 'Je login',
116
-	'entree_login_connexion_1' => 'De login voor de verbinding',
117
-	'entree_login_connexion_2' => '(Komt soms overeen met je FTP-loginnaam; soms wordt dit niet ingevuld)',
118
-	'entree_mot_passe' => 'Je wachtwoord',
119
-	'entree_mot_passe_1' => 'Wachtwoord voor deze verbinding ',
120
-	'entree_mot_passe_2' => '(Komt vaak overeen met je wachtwoord voor FTP-toegang; soms kan je dit ook blanco laten)',
121
-	'entree_nom_fichier' => 'Vul hier de naam in van het bestand @texte_compresse@:',
122
-	'entree_nom_pseudo' => 'je naam of bijnaam',
123
-	'entree_nom_pseudo_1' => '(Je naam of bijnaam)',
124
-	'entree_nom_pseudo_2' => 'Naam of bijnaam',
125
-	'entree_nom_site' => 'De websitenaam',
126
-	'entree_nom_site_2' => 'Naam van de site van de auteur',
127
-	'entree_nouveau_passe' => 'Nieuw wachtwoord',
128
-	'entree_passe_ldap' => 'Wachtwoord',
129
-	'entree_port_annuaire' => 'Het poortnummer van het adresboek',
130
-	'entree_signature' => 'Handtekening',
131
-	'entree_titre_obligatoire' => '<b>Titel</b> [verplicht]<br />',
132
-	'entree_url' => 'Je website-adres (URL)',
133
-	'entree_url_2' => 'Adres van de site (URL)',
134
-	'erreur_connect_deja_existant' => 'Een server met die naam bestaat al',
135
-	'erreur_contenu_suspect' => 'Slecht opgebouwde tekst',
136
-	'erreur_email_deja_existant' => 'Dit emailadres is al geregistreerd.',
137
-	'erreur_nom_connect_incorrect' => 'Deze server naam is niet toegestaan',
138
-	'erreur_plugin_attribut_balise_manquant' => 'Attribuut @attribut@ ontbreekt in lus @balise@.',
139
-	'erreur_plugin_desinstalation_echouee' => 'Het verwijderen van de plugin is mislukt. Maar je kunt hem wel uitschakelen.',
140
-	'erreur_plugin_fichier_absent' => 'Bestand ontbreekt',
141
-	'erreur_plugin_fichier_def_absent' => 'Definitiebestand ontbreekt',
142
-	'erreur_plugin_nom_fonction_interdit' => 'Functienaam verboden',
143
-	'erreur_plugin_nom_manquant' => 'Naam van de ontbrekende plugin',
144
-	'erreur_plugin_prefix_manquant' => 'Ruimte voor de naamgeving van de plugin is niet gedefinieerd',
145
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ontbreekt in het definitiebestand',
146
-	'erreur_plugin_version_manquant' => 'Versie van de ontbrekende plugin',
93
+    // E
94
+    'ecran_securite' => '+ beveiligingsscherm @version@',
95
+    'email' => 'e-mail',
96
+    'email_2' => 'e-mail:',
97
+    'en_savoir_plus' => 'Meer weten hierover',
98
+    'entree_adresse_annuaire' => 'Plaats van het adresboek',
99
+    'entree_adresse_email' => 'Je e-mailadres',
100
+    'entree_adresse_email_2' => 'E-mailadres',
101
+    'entree_base_donnee_1' => 'Adres van de database',
102
+    'entree_base_donnee_2' => '(Vaak komt dit adres overeen met dat van je website, soms is het gewoon de vermelding «localhost» of kan je het veld blanco laten.)',
103
+    'entree_biographie' => 'Korte biografie in enkele woorden.',
104
+    'entree_chemin_acces' => '<b>Invullen</b> van de toegangscode :',
105
+    'entree_cle_pgp' => 'Je PGP-sleutel',
106
+    'entree_cle_pgp_2' => 'PGP-sleutel',
107
+    'entree_contenu_rubrique' => '(Inhoud van de rubriek in enkele woorden)',
108
+    'entree_identifiants_connexion' => 'Je verbindingsgegevens...',
109
+    'entree_identifiants_connexion_2' => 'Login',
110
+    'entree_informations_connexion_ldap' => 'Vul hier de gegevens in om verbinding te maken met het LDAP adresboek. Deze gegevens kan je opvragen bij de systeem- of netwerkbeheerder.',
111
+    'entree_infos_perso' => 'Wie ben je ?',
112
+    'entree_infos_perso_2' => 'Wie is de auteur ?',
113
+    'entree_interieur_rubrique' => 'In de rubriek:',
114
+    'entree_liens_sites' => '<b>Hypertext link</b> (verwijzing, te bezoeken website ...)',
115
+    'entree_login' => 'Je login',
116
+    'entree_login_connexion_1' => 'De login voor de verbinding',
117
+    'entree_login_connexion_2' => '(Komt soms overeen met je FTP-loginnaam; soms wordt dit niet ingevuld)',
118
+    'entree_mot_passe' => 'Je wachtwoord',
119
+    'entree_mot_passe_1' => 'Wachtwoord voor deze verbinding ',
120
+    'entree_mot_passe_2' => '(Komt vaak overeen met je wachtwoord voor FTP-toegang; soms kan je dit ook blanco laten)',
121
+    'entree_nom_fichier' => 'Vul hier de naam in van het bestand @texte_compresse@:',
122
+    'entree_nom_pseudo' => 'je naam of bijnaam',
123
+    'entree_nom_pseudo_1' => '(Je naam of bijnaam)',
124
+    'entree_nom_pseudo_2' => 'Naam of bijnaam',
125
+    'entree_nom_site' => 'De websitenaam',
126
+    'entree_nom_site_2' => 'Naam van de site van de auteur',
127
+    'entree_nouveau_passe' => 'Nieuw wachtwoord',
128
+    'entree_passe_ldap' => 'Wachtwoord',
129
+    'entree_port_annuaire' => 'Het poortnummer van het adresboek',
130
+    'entree_signature' => 'Handtekening',
131
+    'entree_titre_obligatoire' => '<b>Titel</b> [verplicht]<br />',
132
+    'entree_url' => 'Je website-adres (URL)',
133
+    'entree_url_2' => 'Adres van de site (URL)',
134
+    'erreur_connect_deja_existant' => 'Een server met die naam bestaat al',
135
+    'erreur_contenu_suspect' => 'Slecht opgebouwde tekst',
136
+    'erreur_email_deja_existant' => 'Dit emailadres is al geregistreerd.',
137
+    'erreur_nom_connect_incorrect' => 'Deze server naam is niet toegestaan',
138
+    'erreur_plugin_attribut_balise_manquant' => 'Attribuut @attribut@ ontbreekt in lus @balise@.',
139
+    'erreur_plugin_desinstalation_echouee' => 'Het verwijderen van de plugin is mislukt. Maar je kunt hem wel uitschakelen.',
140
+    'erreur_plugin_fichier_absent' => 'Bestand ontbreekt',
141
+    'erreur_plugin_fichier_def_absent' => 'Definitiebestand ontbreekt',
142
+    'erreur_plugin_nom_fonction_interdit' => 'Functienaam verboden',
143
+    'erreur_plugin_nom_manquant' => 'Naam van de ontbrekende plugin',
144
+    'erreur_plugin_prefix_manquant' => 'Ruimte voor de naamgeving van de plugin is niet gedefinieerd',
145
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; ontbreekt in het definitiebestand',
146
+    'erreur_plugin_version_manquant' => 'Versie van de ontbrekende plugin',
147 147
 
148
-	// H
149
-	'htaccess_a_simuler' => 'Waarschuwing: De configuratie van de HTTP-server negeert @htaccess@ bestanden. Om een goede beveiliging te hebben, moet je deze configuratie wijzigen, of de constanten @constantes@ (definieerbaar in het bestand mes_options.php) laten verwijzen naar mappen buiten @document_root@. ', # Je ne vois pas la modif ! La trad reste valable.
150
-	'htaccess_inoperant' => 'htaccess werkt niet',
148
+    // H
149
+    'htaccess_a_simuler' => 'Waarschuwing: De configuratie van de HTTP-server negeert @htaccess@ bestanden. Om een goede beveiliging te hebben, moet je deze configuratie wijzigen, of de constanten @constantes@ (definieerbaar in het bestand mes_options.php) laten verwijzen naar mappen buiten @document_root@. ', # Je ne vois pas la modif ! La trad reste valable.
150
+    'htaccess_inoperant' => 'htaccess werkt niet',
151 151
 
152
-	// I
153
-	'ical_info1' => 'Deze pagina toont de verschillende wijzen waarop je contact kan houden met het gebeuren van deze website.',
154
-	'ical_info2' => 'Voor meer inlichtingen over al deze technieken, aarzelt niet om <a href=" @spipnet@" te raadplegen >de documentatie van SPIP</a>.',
155
-	'ical_info_calendrier' => 'Twee kalenders zijn beschikbaar. De eerste geeft een overzicht van alle gepubliceerde artikelen. De tweede bevat editoriale berichten en je meest recente privé-berichten : deze tweede kalender is afgeschermd voor andere gebruikers door een persoonlijke sleutel die je op elk moment kan wijzigen door je wachtwoord te vernieuwen.',
156
-	'ical_methode_http' => 'Downloaden',
157
-	'ical_methode_webcal' => 'Synchronisatie (webcal://)',
158
-	'ical_texte_prive' => 'Deze kalender is voor persoonlijk gebruik en houdt je op de hoogte van je eigen editoriale activiteit (taken en persoonlijke afspraken, voorgestelde artikelen en nieuwsflitsen...).',
159
-	'ical_texte_public' => 'Via deze kalender kan je de publieke activiteit van de site volgen (gepubliceerde artikelen en nieuwsflitsen).',
160
-	'ical_texte_rss' => 'Je kan de nieuwe berichten van de site overnemen (syndiceren) op een andere site in eender welke bestandslezer via het formaat XML/RSS (Rich Site Summary). Dit is hetzelfde formaat dat SPIP toelaat nieuws over te nemen van andere sites die een uitwisselbaar formaat hanteren (gesyndiceerde sites).',
161
-	'ical_titre_js' => 'Javascript',
162
-	'ical_titre_mailing' => 'Mailinglijst',
163
-	'ical_titre_rss' => 'Syndicatiebestanden',
164
-	'icone_accueil' => 'Home',
165
-	'icone_activer_cookie' => 'De toegangskoekie activeren',
166
-	'icone_activite' => 'Activiteit',
167
-	'icone_admin_plugin' => 'Plugin beheer',
168
-	'icone_administration' => 'Beheer',
169
-	'icone_afficher_auteurs' => 'Auteurs tonen',
170
-	'icone_afficher_visiteurs' => 'Bezoekers tonen',
171
-	'icone_arret_discussion' => 'Niet langer deelnemen aan deze discussie',
172
-	'icone_calendrier' => 'Kalender',
173
-	'icone_configuration' => 'Configuratie',
174
-	'icone_creer_auteur' => 'Een nieuwe auteur aanmaken en koppelen aan dit artikel',
175
-	'icone_creer_mot_cle' => 'Een nieuw trefwoord aanmaken en koppelen aan dit artikel',
176
-	'icone_creer_rubrique_2' => 'Een nieuwe rubriek aanmaken',
177
-	'icone_developpement' => 'Ontwikkeling',
178
-	'icone_edition' => 'Items',
179
-	'icone_ma_langue' => 'Mijn taal',
180
-	'icone_mes_infos' => 'Mijn informatie',
181
-	'icone_mes_preferences' => 'Mijn Voorkeuren',
182
-	'icone_modifier_article' => 'Dit artikel wijzigen',
183
-	'icone_modifier_rubrique' => 'Deze rubriek wijzigen',
184
-	'icone_publication' => 'Publicatie',
185
-	'icone_relancer_signataire' => 'De ondertekenaar heractiveren',
186
-	'icone_retour' => 'Terug',
187
-	'icone_retour_article' => 'Terug naar artikel',
188
-	'icone_squelette' => 'Skeletten',
189
-	'icone_suivi_publication' => 'Publicaties volgen',
190
-	'icone_supprimer_cookie' => 'De toegangskoekie verwijderen',
191
-	'icone_supprimer_rubrique' => 'Deze rubriek wissen',
192
-	'icone_supprimer_signature' => 'Deze naam wissen',
193
-	'icone_valider_signature' => 'Deze naam goedkeuren',
194
-	'image_administrer_rubrique' => 'Je kan deze rubriek beheren',
195
-	'impossible_modifier_login_auteur' => 'De login kan niet worden veranderd.',
196
-	'impossible_modifier_pass_auteur' => 'Het wachtwoord kan niet worden gewijzigd.',
197
-	'info_1_article' => '1 artikel',
198
-	'info_1_auteur' => '1 auteur',
199
-	'info_1_message' => '1 bericht',
200
-	'info_1_mot_cle' => '1 trefwoord',
201
-	'info_1_rubrique' => '1 rubriek',
202
-	'info_1_visiteur' => '1 bezoeker',
203
-	'info_activer_cookie' => 'Je kan een <b>toegangskoekie</b> activeren, waardoor je makkelijk kan wisselen tussen de het publieke en het privé gedeelte van de website.',
204
-	'info_activer_menu_developpement' => 'Toon het menu Ontwikkeling',
205
-	'info_admin_etre_webmestre' => 'Geef me de webmaster rechten',
206
-	'info_admin_je_suis_webmestre' => 'Ik ben <b>webmaster</b>',
207
-	'info_admin_statuer_webmestre' => 'Geef deze beheerder webmaster rechten',
208
-	'info_admin_webmestre' => 'Deze beheerder is <b>webmaster</b>',
209
-	'info_administrateur' => 'Beheerder',
210
-	'info_administrateur_1' => 'Beheerder',
211
-	'info_administrateur_2' => 'van de website (<i>voorzichtig gebruiken</i>)',
212
-	'info_administrateur_site_01' => 'Als je beheerder bent van deze site, gelieve',
213
-	'info_administrateur_site_02' => 'deze koppeling aan te klikken',
214
-	'info_administrateurs' => 'Beheerders',
215
-	'info_administrer_rubrique' => 'Je kan deze rubriek beheren',
216
-	'info_adresse' => 'aan/naar het adres:',
217
-	'info_adresse_desinscription' => 'Adres voor uitschrijven:',
218
-	'info_adresse_url' => 'Adres (URL) van de website',
219
-	'info_afficher_par_nb' => 'Tonen',
220
-	'info_aide_en_ligne' => 'ONLINE HELP VAN SPIP',
221
-	'info_ajout_image' => 'Als je afbeeldingen als bijlage aan een document toevoegt, kan SPIP hiervan automatisch miniaturen aanmaken. Hierdoor kan je bvb. automatisch een fotogalerij of portfolio aanmaken.
152
+    // I
153
+    'ical_info1' => 'Deze pagina toont de verschillende wijzen waarop je contact kan houden met het gebeuren van deze website.',
154
+    'ical_info2' => 'Voor meer inlichtingen over al deze technieken, aarzelt niet om <a href=" @spipnet@" te raadplegen >de documentatie van SPIP</a>.',
155
+    'ical_info_calendrier' => 'Twee kalenders zijn beschikbaar. De eerste geeft een overzicht van alle gepubliceerde artikelen. De tweede bevat editoriale berichten en je meest recente privé-berichten : deze tweede kalender is afgeschermd voor andere gebruikers door een persoonlijke sleutel die je op elk moment kan wijzigen door je wachtwoord te vernieuwen.',
156
+    'ical_methode_http' => 'Downloaden',
157
+    'ical_methode_webcal' => 'Synchronisatie (webcal://)',
158
+    'ical_texte_prive' => 'Deze kalender is voor persoonlijk gebruik en houdt je op de hoogte van je eigen editoriale activiteit (taken en persoonlijke afspraken, voorgestelde artikelen en nieuwsflitsen...).',
159
+    'ical_texte_public' => 'Via deze kalender kan je de publieke activiteit van de site volgen (gepubliceerde artikelen en nieuwsflitsen).',
160
+    'ical_texte_rss' => 'Je kan de nieuwe berichten van de site overnemen (syndiceren) op een andere site in eender welke bestandslezer via het formaat XML/RSS (Rich Site Summary). Dit is hetzelfde formaat dat SPIP toelaat nieuws over te nemen van andere sites die een uitwisselbaar formaat hanteren (gesyndiceerde sites).',
161
+    'ical_titre_js' => 'Javascript',
162
+    'ical_titre_mailing' => 'Mailinglijst',
163
+    'ical_titre_rss' => 'Syndicatiebestanden',
164
+    'icone_accueil' => 'Home',
165
+    'icone_activer_cookie' => 'De toegangskoekie activeren',
166
+    'icone_activite' => 'Activiteit',
167
+    'icone_admin_plugin' => 'Plugin beheer',
168
+    'icone_administration' => 'Beheer',
169
+    'icone_afficher_auteurs' => 'Auteurs tonen',
170
+    'icone_afficher_visiteurs' => 'Bezoekers tonen',
171
+    'icone_arret_discussion' => 'Niet langer deelnemen aan deze discussie',
172
+    'icone_calendrier' => 'Kalender',
173
+    'icone_configuration' => 'Configuratie',
174
+    'icone_creer_auteur' => 'Een nieuwe auteur aanmaken en koppelen aan dit artikel',
175
+    'icone_creer_mot_cle' => 'Een nieuw trefwoord aanmaken en koppelen aan dit artikel',
176
+    'icone_creer_rubrique_2' => 'Een nieuwe rubriek aanmaken',
177
+    'icone_developpement' => 'Ontwikkeling',
178
+    'icone_edition' => 'Items',
179
+    'icone_ma_langue' => 'Mijn taal',
180
+    'icone_mes_infos' => 'Mijn informatie',
181
+    'icone_mes_preferences' => 'Mijn Voorkeuren',
182
+    'icone_modifier_article' => 'Dit artikel wijzigen',
183
+    'icone_modifier_rubrique' => 'Deze rubriek wijzigen',
184
+    'icone_publication' => 'Publicatie',
185
+    'icone_relancer_signataire' => 'De ondertekenaar heractiveren',
186
+    'icone_retour' => 'Terug',
187
+    'icone_retour_article' => 'Terug naar artikel',
188
+    'icone_squelette' => 'Skeletten',
189
+    'icone_suivi_publication' => 'Publicaties volgen',
190
+    'icone_supprimer_cookie' => 'De toegangskoekie verwijderen',
191
+    'icone_supprimer_rubrique' => 'Deze rubriek wissen',
192
+    'icone_supprimer_signature' => 'Deze naam wissen',
193
+    'icone_valider_signature' => 'Deze naam goedkeuren',
194
+    'image_administrer_rubrique' => 'Je kan deze rubriek beheren',
195
+    'impossible_modifier_login_auteur' => 'De login kan niet worden veranderd.',
196
+    'impossible_modifier_pass_auteur' => 'Het wachtwoord kan niet worden gewijzigd.',
197
+    'info_1_article' => '1 artikel',
198
+    'info_1_auteur' => '1 auteur',
199
+    'info_1_message' => '1 bericht',
200
+    'info_1_mot_cle' => '1 trefwoord',
201
+    'info_1_rubrique' => '1 rubriek',
202
+    'info_1_visiteur' => '1 bezoeker',
203
+    'info_activer_cookie' => 'Je kan een <b>toegangskoekie</b> activeren, waardoor je makkelijk kan wisselen tussen de het publieke en het privé gedeelte van de website.',
204
+    'info_activer_menu_developpement' => 'Toon het menu Ontwikkeling',
205
+    'info_admin_etre_webmestre' => 'Geef me de webmaster rechten',
206
+    'info_admin_je_suis_webmestre' => 'Ik ben <b>webmaster</b>',
207
+    'info_admin_statuer_webmestre' => 'Geef deze beheerder webmaster rechten',
208
+    'info_admin_webmestre' => 'Deze beheerder is <b>webmaster</b>',
209
+    'info_administrateur' => 'Beheerder',
210
+    'info_administrateur_1' => 'Beheerder',
211
+    'info_administrateur_2' => 'van de website (<i>voorzichtig gebruiken</i>)',
212
+    'info_administrateur_site_01' => 'Als je beheerder bent van deze site, gelieve',
213
+    'info_administrateur_site_02' => 'deze koppeling aan te klikken',
214
+    'info_administrateurs' => 'Beheerders',
215
+    'info_administrer_rubrique' => 'Je kan deze rubriek beheren',
216
+    'info_adresse' => 'aan/naar het adres:',
217
+    'info_adresse_desinscription' => 'Adres voor uitschrijven:',
218
+    'info_adresse_url' => 'Adres (URL) van de website',
219
+    'info_afficher_par_nb' => 'Tonen',
220
+    'info_aide_en_ligne' => 'ONLINE HELP VAN SPIP',
221
+    'info_ajout_image' => 'Als je afbeeldingen als bijlage aan een document toevoegt, kan SPIP hiervan automatisch miniaturen aanmaken. Hierdoor kan je bvb. automatisch een fotogalerij of portfolio aanmaken.
222 222
 ',
223
-	'info_ajouter_rubrique' => 'Een nieuwe rubriek toevoegen om te beheren:',
224
-	'info_annonce_nouveautes' => 'Aankondiging van nieuwe bijdragen',
225
-	'info_article' => 'artikel',
226
-	'info_article_2' => 'artikelen',
227
-	'info_article_a_paraitre' => 'Te publiceren artikelen met postdatering',
228
-	'info_articles_02' => 'artikelen',
229
-	'info_articles_2' => 'Artikelen',
230
-	'info_articles_auteur' => 'Artikelen van deze auteur',
231
-	'info_articles_miens' => 'Mijn artikelen',
232
-	'info_articles_tous' => 'Alle artikelen',
233
-	'info_articles_trouves' => 'Gevonden artikelen',
234
-	'info_attente_validation' => 'Je artikelen die op goedkeuring wachten',
235
-	'info_aucun_article' => 'Geen artikelen',
236
-	'info_aucun_auteur' => 'Geen auteur',
237
-	'info_aucun_message' => 'Geen bericht',
238
-	'info_aucun_rubrique' => 'Geen rubriek',
239
-	'info_aujourdhui' => 'vandaag:',
240
-	'info_auteur_gere_rubriques' => 'Deze auteur beheert de volgende rubrieken:',
241
-	'info_auteur_gere_toutes_rubriques' => 'Deze auteur beheert <b>alle rubrieken</b>',
242
-	'info_auteur_gere_toutes_rubriques_2' => 'Ik beheer <b>alle rubrieken</b>',
243
-	'info_auteurs' => 'De auteurs',
244
-	'info_auteurs_par_tri' => 'Auteur@partri@',
245
-	'info_auteurs_trouves' => 'Gevonden auteurs',
246
-	'info_authentification_externe' => 'Externe authenticatie',
247
-	'info_avertissement' => 'Waarschuwing',
248
-	'info_barre_outils' => 'met zijn gereedschapsbalk?',
249
-	'info_base_installee' => 'De structuur van je database is geïnstalleerd.',
250
-	'info_bio' => 'biografie',
251
-	'info_cache_desactive' => 'De buffer (cache) is tijdelijk uitgeschakeld.',
252
-	'info_chapeau' => 'Kop',
253
-	'info_chapeau_2' => 'Kop :',
254
-	'info_chemin_acces_1' => 'Opties: <b>Toegang tot het adresboek</b>',
255
-	'info_chemin_acces_2' => 'Je dient de toegang tot de gegevens uit het adresboek in te stellen. Zonder deze instellingen is het ONmogelijk de gebruikersprofielen in dit adresboek te lezen.',
256
-	'info_chemin_acces_annuaire' => 'Opties: <b>Toegang in het adresboek',
257
-	'info_choix_base' => 'Derde stap:',
258
-	'info_classement_1' => '<sup>ste</sup> op @liste@',
259
-	'info_classement_2' => '<sup>de</sup> @liste@',
260
-	'info_code_acces' => 'Vergeet je eigen toegangscode niet!',
261
-	'info_config_suivi' => 'Wanneer dit adres van een distributielijst is, kan je hieronder het adres opgeven waar deelnemers van de site zich kunnen inschrijven. Dit adres kan een URL zijn (het webadres voor het inschrijving op de lijst), of een emailadres met een onderwerp (zoals <tt>@adresse_suivi@?subject=subscribe</tt>):',
262
-	'info_config_suivi_explication' => 'Je kan je op de mailinglijst van deze site inschrijven. Je zal dan via e-mail een aankondiging ontvangen van artikelen en nieuwsflitsen die voor publicatie werden voorgesteld.',
263
-	'info_confirmer_passe' => 'Bevestig het nieuwe wachtwoord:',
264
-	'info_conflit_edition_avis_non_sauvegarde' => 'Let op: de volgende velden werden elders gewijzigd. Jouw wijzigingen op deze velden werden dus niet geregistreerd.',
265
-	'info_conflit_edition_differences' => 'Verschillen :',
266
-	'info_conflit_edition_version_enregistree' => 'De geregistreerde versie :',
267
-	'info_conflit_edition_votre_version' => 'Jouw versie:',
268
-	'info_connexion_base' => 'Proberen op de database aan te sluiten',
269
-	'info_connexion_base_donnee' => 'Aansluiten op je database',
270
-	'info_connexion_ldap_ok' => 'De LDAP-verbinding is gelukt. </b><p>Je kunt doorgaan naar de volgende stap.</p>',
271
-	'info_connexion_mysql' => 'Je SQL verbinding',
272
-	'info_connexion_ok' => 'De verbinding is geslaagd.',
273
-	'info_contact' => 'Contact',
274
-	'info_contenu_articles' => 'Inhoud van de artikelen',
275
-	'info_contributions' => 'Bijdragen',
276
-	'info_creation_paragraphe' => 'Om alinea’s te maken laat je gewoon enkele regels leeg.',
277
-	'info_creation_rubrique' => 'Alvorens artikelen te kunnen schrijven<br /> moet minstens een rubriek worden gemaakt.<br />',
278
-	'info_creation_tables' => 'Aanmaken van tabellen in de database',
279
-	'info_creer_base' => '<b>Creëren</b> een nieuw database:',
280
-	'info_dans_rubrique' => 'In de rubriek:',
281
-	'info_date_publication_anterieure' => 'Datum van eerdere redactie:',
282
-	'info_date_referencement' => 'DATUM VAN DE KOPPELING VAN DEZE SITE:',
283
-	'info_derniere_etape' => 'Klaar!',
284
-	'info_descriptif' => 'Beschrijving:',
285
-	'info_desinstaller_plugin' => 'verwijdert de gegevens en deactiveert de plugin',
286
-	'info_discussion_cours' => 'Lopende discussies',
287
-	'info_ecrire_article' => 'Alvorens een artikel te kunnen schrijven, dien je minimaal één rubriek aan te maken.',
288
-	'info_email_envoi' => 'Verzendadres (optioneel)',
289
-	'info_email_envoi_txt' => 'Geef hieronder het adres op dat gebruikt wordt voor het versturen van e-mails. (Standaard wordt het adres van de geadresseerde als verzendadres gebruikt.):',
290
-	'info_email_webmestre' => 'E-mailadres webmaster',
291
-	'info_envoi_email_automatique' => 'Automatisch verzenden van e-mails',
292
-	'info_envoyer_maintenant' => 'Nu versturen',
293
-	'info_etape_suivante' => 'Naar de volgende stap ',
294
-	'info_etape_suivante_1' => 'Je kunt de volgende stap zetten.',
295
-	'info_etape_suivante_2' => 'Je kunt de volgende stap zetten.',
296
-	'info_exceptions_proxy' => 'Uitzonderingen op de proxy',
297
-	'info_exportation_base' => 'Uitvoer van de database naar @archive@',
298
-	'info_facilite_suivi_activite' => 'Om de opvolging en redactie van artikelen te vergemakkelijken, kan SPIP mails versturen -bijvoorbeeld naar een mailinglist van redacteurs- met de aankondiging van vragen voor publicatie of goedgekeurde publicaties.', # MODIF
299
-	'info_fichiers_authent' => 'Verificatiebestand ".htpasswd"',
300
-	'info_forums_abo_invites' => 'Je site bevat forums met abonnement; bezoekers worden dus op de publieke site verzocht zich in te schrijven.',
301
-	'info_gauche_admin_tech' => '<b>Deze pagina is enkel toegankelijk voor beheerders van de site.</b><p> Ze geeft toegang tot allerlei technische onderhoudstaken. Voor het uitvoeren van sommige taken zijn een afzonderlijke aanmelding en toegang tot je site via FTP nodig.</p>',
302
-	'info_gauche_admin_vider' => '<b>Deze pagina is alleen beschikbaar voor beheerders.</b><p> Het biedt toegang tot diverse
223
+    'info_ajouter_rubrique' => 'Een nieuwe rubriek toevoegen om te beheren:',
224
+    'info_annonce_nouveautes' => 'Aankondiging van nieuwe bijdragen',
225
+    'info_article' => 'artikel',
226
+    'info_article_2' => 'artikelen',
227
+    'info_article_a_paraitre' => 'Te publiceren artikelen met postdatering',
228
+    'info_articles_02' => 'artikelen',
229
+    'info_articles_2' => 'Artikelen',
230
+    'info_articles_auteur' => 'Artikelen van deze auteur',
231
+    'info_articles_miens' => 'Mijn artikelen',
232
+    'info_articles_tous' => 'Alle artikelen',
233
+    'info_articles_trouves' => 'Gevonden artikelen',
234
+    'info_attente_validation' => 'Je artikelen die op goedkeuring wachten',
235
+    'info_aucun_article' => 'Geen artikelen',
236
+    'info_aucun_auteur' => 'Geen auteur',
237
+    'info_aucun_message' => 'Geen bericht',
238
+    'info_aucun_rubrique' => 'Geen rubriek',
239
+    'info_aujourdhui' => 'vandaag:',
240
+    'info_auteur_gere_rubriques' => 'Deze auteur beheert de volgende rubrieken:',
241
+    'info_auteur_gere_toutes_rubriques' => 'Deze auteur beheert <b>alle rubrieken</b>',
242
+    'info_auteur_gere_toutes_rubriques_2' => 'Ik beheer <b>alle rubrieken</b>',
243
+    'info_auteurs' => 'De auteurs',
244
+    'info_auteurs_par_tri' => 'Auteur@partri@',
245
+    'info_auteurs_trouves' => 'Gevonden auteurs',
246
+    'info_authentification_externe' => 'Externe authenticatie',
247
+    'info_avertissement' => 'Waarschuwing',
248
+    'info_barre_outils' => 'met zijn gereedschapsbalk?',
249
+    'info_base_installee' => 'De structuur van je database is geïnstalleerd.',
250
+    'info_bio' => 'biografie',
251
+    'info_cache_desactive' => 'De buffer (cache) is tijdelijk uitgeschakeld.',
252
+    'info_chapeau' => 'Kop',
253
+    'info_chapeau_2' => 'Kop :',
254
+    'info_chemin_acces_1' => 'Opties: <b>Toegang tot het adresboek</b>',
255
+    'info_chemin_acces_2' => 'Je dient de toegang tot de gegevens uit het adresboek in te stellen. Zonder deze instellingen is het ONmogelijk de gebruikersprofielen in dit adresboek te lezen.',
256
+    'info_chemin_acces_annuaire' => 'Opties: <b>Toegang in het adresboek',
257
+    'info_choix_base' => 'Derde stap:',
258
+    'info_classement_1' => '<sup>ste</sup> op @liste@',
259
+    'info_classement_2' => '<sup>de</sup> @liste@',
260
+    'info_code_acces' => 'Vergeet je eigen toegangscode niet!',
261
+    'info_config_suivi' => 'Wanneer dit adres van een distributielijst is, kan je hieronder het adres opgeven waar deelnemers van de site zich kunnen inschrijven. Dit adres kan een URL zijn (het webadres voor het inschrijving op de lijst), of een emailadres met een onderwerp (zoals <tt>@adresse_suivi@?subject=subscribe</tt>):',
262
+    'info_config_suivi_explication' => 'Je kan je op de mailinglijst van deze site inschrijven. Je zal dan via e-mail een aankondiging ontvangen van artikelen en nieuwsflitsen die voor publicatie werden voorgesteld.',
263
+    'info_confirmer_passe' => 'Bevestig het nieuwe wachtwoord:',
264
+    'info_conflit_edition_avis_non_sauvegarde' => 'Let op: de volgende velden werden elders gewijzigd. Jouw wijzigingen op deze velden werden dus niet geregistreerd.',
265
+    'info_conflit_edition_differences' => 'Verschillen :',
266
+    'info_conflit_edition_version_enregistree' => 'De geregistreerde versie :',
267
+    'info_conflit_edition_votre_version' => 'Jouw versie:',
268
+    'info_connexion_base' => 'Proberen op de database aan te sluiten',
269
+    'info_connexion_base_donnee' => 'Aansluiten op je database',
270
+    'info_connexion_ldap_ok' => 'De LDAP-verbinding is gelukt. </b><p>Je kunt doorgaan naar de volgende stap.</p>',
271
+    'info_connexion_mysql' => 'Je SQL verbinding',
272
+    'info_connexion_ok' => 'De verbinding is geslaagd.',
273
+    'info_contact' => 'Contact',
274
+    'info_contenu_articles' => 'Inhoud van de artikelen',
275
+    'info_contributions' => 'Bijdragen',
276
+    'info_creation_paragraphe' => 'Om alinea’s te maken laat je gewoon enkele regels leeg.',
277
+    'info_creation_rubrique' => 'Alvorens artikelen te kunnen schrijven<br /> moet minstens een rubriek worden gemaakt.<br />',
278
+    'info_creation_tables' => 'Aanmaken van tabellen in de database',
279
+    'info_creer_base' => '<b>Creëren</b> een nieuw database:',
280
+    'info_dans_rubrique' => 'In de rubriek:',
281
+    'info_date_publication_anterieure' => 'Datum van eerdere redactie:',
282
+    'info_date_referencement' => 'DATUM VAN DE KOPPELING VAN DEZE SITE:',
283
+    'info_derniere_etape' => 'Klaar!',
284
+    'info_descriptif' => 'Beschrijving:',
285
+    'info_desinstaller_plugin' => 'verwijdert de gegevens en deactiveert de plugin',
286
+    'info_discussion_cours' => 'Lopende discussies',
287
+    'info_ecrire_article' => 'Alvorens een artikel te kunnen schrijven, dien je minimaal één rubriek aan te maken.',
288
+    'info_email_envoi' => 'Verzendadres (optioneel)',
289
+    'info_email_envoi_txt' => 'Geef hieronder het adres op dat gebruikt wordt voor het versturen van e-mails. (Standaard wordt het adres van de geadresseerde als verzendadres gebruikt.):',
290
+    'info_email_webmestre' => 'E-mailadres webmaster',
291
+    'info_envoi_email_automatique' => 'Automatisch verzenden van e-mails',
292
+    'info_envoyer_maintenant' => 'Nu versturen',
293
+    'info_etape_suivante' => 'Naar de volgende stap ',
294
+    'info_etape_suivante_1' => 'Je kunt de volgende stap zetten.',
295
+    'info_etape_suivante_2' => 'Je kunt de volgende stap zetten.',
296
+    'info_exceptions_proxy' => 'Uitzonderingen op de proxy',
297
+    'info_exportation_base' => 'Uitvoer van de database naar @archive@',
298
+    'info_facilite_suivi_activite' => 'Om de opvolging en redactie van artikelen te vergemakkelijken, kan SPIP mails versturen -bijvoorbeeld naar een mailinglist van redacteurs- met de aankondiging van vragen voor publicatie of goedgekeurde publicaties.', # MODIF
299
+    'info_fichiers_authent' => 'Verificatiebestand ".htpasswd"',
300
+    'info_forums_abo_invites' => 'Je site bevat forums met abonnement; bezoekers worden dus op de publieke site verzocht zich in te schrijven.',
301
+    'info_gauche_admin_tech' => '<b>Deze pagina is enkel toegankelijk voor beheerders van de site.</b><p> Ze geeft toegang tot allerlei technische onderhoudstaken. Voor het uitvoeren van sommige taken zijn een afzonderlijke aanmelding en toegang tot je site via FTP nodig.</p>',
302
+    'info_gauche_admin_vider' => '<b>Deze pagina is alleen beschikbaar voor beheerders.</b><p> Het biedt toegang tot diverse
303 303
  technische onderhoudsfuncties. Sommige vereisen een specifiek verificatieproces, dat nodig is voor FTP-toegang tot de website.</p>',
304
-	'info_gauche_auteurs' => 'Je vindt hier alle auteurs van de site.
304
+    'info_gauche_auteurs' => 'Je vindt hier alle auteurs van de site.
305 305
  Hun status is te herkennen aan de kleur van het icoontje (beheerder = groen; redacteur = geel).',
306
-	'info_gauche_auteurs_exterieurs' => 'Externe auteurs, zonder toegang tot de site, zijn aangeduid met een blauw icoontje,
306
+    'info_gauche_auteurs_exterieurs' => 'Externe auteurs, zonder toegang tot de site, zijn aangeduid met een blauw icoontje,
307 307
 gewiste auteurs met een grijze.',
308
-	'info_gauche_messagerie' => 'Het berichtensysteem laat toe om berichten uit te wisselen tussen redacteurs, memo’s (voor persoonlijk gebruik) te bewaren of aankondigingen te tonen op de beginpagina van de privé-ruimte (als je beheerder bent).',
309
-	'info_gauche_statistiques_referers' => 'Deze pagina toont een lijst met <i>referers</i> (sites die een koppeling bevatten naar je eigen site), alleen voor vandaag en gisteren: de lijst wordt elke 24 uur opnieuw aangemaakt.',
310
-	'info_gauche_visiteurs_enregistres' => 'Hier zal je de geregistreerde bezoekers van de
308
+    'info_gauche_messagerie' => 'Het berichtensysteem laat toe om berichten uit te wisselen tussen redacteurs, memo’s (voor persoonlijk gebruik) te bewaren of aankondigingen te tonen op de beginpagina van de privé-ruimte (als je beheerder bent).',
309
+    'info_gauche_statistiques_referers' => 'Deze pagina toont een lijst met <i>referers</i> (sites die een koppeling bevatten naar je eigen site), alleen voor vandaag en gisteren: de lijst wordt elke 24 uur opnieuw aangemaakt.',
310
+    'info_gauche_visiteurs_enregistres' => 'Hier zal je de geregistreerde bezoekers van de
311 311
  publieke site vinden (forums met inschrijving).',
312
-	'info_generation_miniatures_images' => 'Aanmaak van miniatuurafbeeldingen',
313
-	'info_gerer_trad_objets' => '@objets@: het beheer van de vertalingskoppelingen',
314
-	'info_hebergeur_desactiver_envoi_email' => 'Sommige hostingbedrijven staan het automatisch versturen van e-mails via hun servers niet toe. In dat geval zal de volgende functionaliteit van SPIP niet werken.',
315
-	'info_hier' => 'gisteren:',
316
-	'info_identification_publique' => 'Je publieke identiteit...',
317
-	'info_image_process' => 'Kies de beste methode om een miniatuurafbeelding te maken door op de bijhorende afbeelding te klikken.',
318
-	'info_images_auto' => 'Beelden automatisch berekend',
319
-	'info_informations_personnelles' => 'Persoonlijke gegevens',
320
-	'info_inscription' => 'Ingeschreven op',
321
-	'info_inscription_automatique' => 'Automatische inschrijving van nieuwe redacteurs',
322
-	'info_jeu_caractere' => 'Tekenset van de site',
323
-	'info_jours' => 'dagen',
324
-	'info_laisser_champs_vides' => 'velden leeglaten)',
325
-	'info_langues' => 'Talen van de site',
326
-	'info_ldap_ok' => 'De LDAP-autentificatie is geïnstalleerd',
327
-	'info_lien_hypertexte' => 'Hypertekst koppeling:',
328
-	'info_liste_nouveautes_envoyee' => 'Het lijst met nieuwe bijdragen werd verstuurd',
329
-	'info_liste_redacteurs_connectes' => 'Lijst met online redacteuren',
330
-	'info_login_existant' => 'Deze login is reeds in gebruik',
331
-	'info_login_trop_court' => 'Login te kort.',
332
-	'info_login_trop_court_car_pluriel' => 'De login moet minstens @nb@ teken bevatten.',
333
-	'info_logos' => 'De logo’s',
334
-	'info_maximum' => 'maximum:',
335
-	'info_meme_rubrique' => 'In dezelfde rubriek',
336
-	'info_message_en_redaction' => 'Je berichten in redactie',
337
-	'info_message_technique' => 'Technisch bericht:',
338
-	'info_messagerie_interne' => 'Intern berichtensysteem',
339
-	'info_mise_a_niveau_base' => 'update van je SQL-database',
340
-	'info_mise_a_niveau_base_2' => '{{LET OP!}} Je hebt een SPIP-versie geïnstalleerd die {ouder} is dan diegene die zich eerder op deze site bevond.: je database loopt hierdoor het risico beschadigd te worden waardoor je site niet meer zal functioneren.<br />{{Herinstalleer de SPIP-bestanden.}}',
341
-	'info_modification_enregistree' => 'Je wijziging werd geregistreerd',
342
-	'info_modifier_auteur' => 'De auteur wijzigen:',
343
-	'info_modifier_rubrique' => 'De rubriek wijzigen:',
344
-	'info_modifier_titre' => 'Wijzigen: @titre@',
345
-	'info_mon_site_spip' => 'Mijn SPIP-site',
346
-	'info_moyenne' => 'gemiddeld:',
347
-	'info_multi_cet_article' => 'Gebruikte taal in dit artikel is:',
348
-	'info_multi_langues_choisies' => 'Kies hierna welke talen ter beschikking staan van de redacteurs van je site.
312
+    'info_generation_miniatures_images' => 'Aanmaak van miniatuurafbeeldingen',
313
+    'info_gerer_trad_objets' => '@objets@: het beheer van de vertalingskoppelingen',
314
+    'info_hebergeur_desactiver_envoi_email' => 'Sommige hostingbedrijven staan het automatisch versturen van e-mails via hun servers niet toe. In dat geval zal de volgende functionaliteit van SPIP niet werken.',
315
+    'info_hier' => 'gisteren:',
316
+    'info_identification_publique' => 'Je publieke identiteit...',
317
+    'info_image_process' => 'Kies de beste methode om een miniatuurafbeelding te maken door op de bijhorende afbeelding te klikken.',
318
+    'info_images_auto' => 'Beelden automatisch berekend',
319
+    'info_informations_personnelles' => 'Persoonlijke gegevens',
320
+    'info_inscription' => 'Ingeschreven op',
321
+    'info_inscription_automatique' => 'Automatische inschrijving van nieuwe redacteurs',
322
+    'info_jeu_caractere' => 'Tekenset van de site',
323
+    'info_jours' => 'dagen',
324
+    'info_laisser_champs_vides' => 'velden leeglaten)',
325
+    'info_langues' => 'Talen van de site',
326
+    'info_ldap_ok' => 'De LDAP-autentificatie is geïnstalleerd',
327
+    'info_lien_hypertexte' => 'Hypertekst koppeling:',
328
+    'info_liste_nouveautes_envoyee' => 'Het lijst met nieuwe bijdragen werd verstuurd',
329
+    'info_liste_redacteurs_connectes' => 'Lijst met online redacteuren',
330
+    'info_login_existant' => 'Deze login is reeds in gebruik',
331
+    'info_login_trop_court' => 'Login te kort.',
332
+    'info_login_trop_court_car_pluriel' => 'De login moet minstens @nb@ teken bevatten.',
333
+    'info_logos' => 'De logo’s',
334
+    'info_maximum' => 'maximum:',
335
+    'info_meme_rubrique' => 'In dezelfde rubriek',
336
+    'info_message_en_redaction' => 'Je berichten in redactie',
337
+    'info_message_technique' => 'Technisch bericht:',
338
+    'info_messagerie_interne' => 'Intern berichtensysteem',
339
+    'info_mise_a_niveau_base' => 'update van je SQL-database',
340
+    'info_mise_a_niveau_base_2' => '{{LET OP!}} Je hebt een SPIP-versie geïnstalleerd die {ouder} is dan diegene die zich eerder op deze site bevond.: je database loopt hierdoor het risico beschadigd te worden waardoor je site niet meer zal functioneren.<br />{{Herinstalleer de SPIP-bestanden.}}',
341
+    'info_modification_enregistree' => 'Je wijziging werd geregistreerd',
342
+    'info_modifier_auteur' => 'De auteur wijzigen:',
343
+    'info_modifier_rubrique' => 'De rubriek wijzigen:',
344
+    'info_modifier_titre' => 'Wijzigen: @titre@',
345
+    'info_mon_site_spip' => 'Mijn SPIP-site',
346
+    'info_moyenne' => 'gemiddeld:',
347
+    'info_multi_cet_article' => 'Gebruikte taal in dit artikel is:',
348
+    'info_multi_langues_choisies' => 'Kies hierna welke talen ter beschikking staan van de redacteurs van je site.
349 349
   Talen die al worden gebruikt (vooraan in de lijst getoond) kunnen niet geschrapt worden.
350 350
 ',
351
-	'info_multi_objets' => '@objets@ : Activeer de taalmenu',
352
-	'info_multi_secteurs' => '... enkel voor de hoofdrubrieken?',
353
-	'info_nb_articles' => '@nb@ artikelen',
354
-	'info_nb_auteurs' => '@nb@ auteurs',
355
-	'info_nb_messages' => '@nb@ berichten',
356
-	'info_nb_mots_cles' => '@nb@ trefwoorden',
357
-	'info_nb_rubriques' => '@nb@ rubrieken',
358
-	'info_nb_visiteurs' => '@nb@ bezoekers',
359
-	'info_nom' => 'Naam',
360
-	'info_nom_destinataire' => 'Naam van de geadresseerde',
361
-	'info_nom_pas_conforme' => 'HTML bakens zijn niet toegestaan',
362
-	'info_nom_site' => 'Naam van je site',
363
-	'info_nombre_articles' => '@nb_articles@ artikelen,',
364
-	'info_nombre_rubriques' => '@nb_rubriques@ rubrieken, ',
365
-	'info_nombre_sites' => '@nb_sites@ sites,',
366
-	'info_non_deplacer' => 'Niet verplaatsen...',
367
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kan regelmatig een bericht versturen om de laatste  nieuwtjes van de site te melden
351
+    'info_multi_objets' => '@objets@ : Activeer de taalmenu',
352
+    'info_multi_secteurs' => '... enkel voor de hoofdrubrieken?',
353
+    'info_nb_articles' => '@nb@ artikelen',
354
+    'info_nb_auteurs' => '@nb@ auteurs',
355
+    'info_nb_messages' => '@nb@ berichten',
356
+    'info_nb_mots_cles' => '@nb@ trefwoorden',
357
+    'info_nb_rubriques' => '@nb@ rubrieken',
358
+    'info_nb_visiteurs' => '@nb@ bezoekers',
359
+    'info_nom' => 'Naam',
360
+    'info_nom_destinataire' => 'Naam van de geadresseerde',
361
+    'info_nom_pas_conforme' => 'HTML bakens zijn niet toegestaan',
362
+    'info_nom_site' => 'Naam van je site',
363
+    'info_nombre_articles' => '@nb_articles@ artikelen,',
364
+    'info_nombre_rubriques' => '@nb_rubriques@ rubrieken, ',
365
+    'info_nombre_sites' => '@nb_sites@ sites,',
366
+    'info_non_deplacer' => 'Niet verplaatsen...',
367
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP kan regelmatig een bericht versturen om de laatste  nieuwtjes van de site te melden
368 368
    (recent gepubliceerde artikelen en nieuwsflitsen).',
369
-	'info_non_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen niet versturen',
370
-	'info_non_modifiable' => 'kan niet gewijzigd worden',
371
-	'info_non_suppression_mot_cle' => 'ik wil dit trefwoord niet verwijderen.',
372
-	'info_notes' => 'Voetnoot',
373
-	'info_nouvel_article' => 'Nieuw artikel',
374
-	'info_nouvelle_traduction' => 'Nieuwe vertaling :',
375
-	'info_numero_article' => 'ARTIKEL NUMMER:',
376
-	'info_obligatoire_02' => '(verplicht)', # MODIF
377
-	'info_option_accepter_visiteurs' => 'Inschrijving van bezoekers van de publieke site aanvaarden',
378
-	'info_option_ne_pas_accepter_visiteurs' => 'Inschrijving van bezoekers weigeren',
379
-	'info_options_avancees' => 'GEAVANCEERDE OPTIES',
380
-	'info_ou' => 'of...',
381
-	'info_page_interdite' => 'Verboden pagina',
382
-	'info_par_nom' => 'op naam',
383
-	'info_par_nombre_article' => 'volgens aantal artikelen',
384
-	'info_par_statut' => 'op status',
385
-	'info_par_tri' => '’(per @tri@)’',
386
-	'info_passe_trop_court' => 'Te kort wachtwoord.',
387
-	'info_passe_trop_court_car_pluriel' => 'Het wachtwoord moet ten minste @nb@ teken bevatten.',
388
-	'info_passes_identiques' => 'Beide wachtwoorden zijn niet identiek.',
389
-	'info_plus_cinq_car' => 'Meer dan 5 karakters',
390
-	'info_plus_cinq_car_2' => '(Meer dan 5 karakters)',
391
-	'info_plus_trois_car' => '(Meer dan 3 karakters)',
392
-	'info_popularite' => 'populariteit: @popularite@; bezoeken: @visites@',
393
-	'info_post_scriptum' => 'Post-Scriptum',
394
-	'info_post_scriptum_2' => 'Post-scriptum:',
395
-	'info_pour' => 'voor',
396
-	'info_preview_texte' => 'Nu is het ook mogelijk om de site in preview mode te zien, alsof alle artikelen en berichten (indien ze tenminste werden « voorgesteld voor publicatie ») ook echt waren gepubliceerd. Dient deze mogelijkheid uitsluitend te worden voorzien voor de beheerders, voor alle redacteurs of voor niemand?',
397
-	'info_procedez_par_etape' => 'vervolg stap voor stap',
398
-	'info_procedure_maj_version' => 'de procedure voor de update die nodig is om de database aan te passen aan de nieuwe versie van SPIP.',
399
-	'info_proxy_ok' => 'Test van proxy geslaagde.',
400
-	'info_ps' => 'N.B.',
401
-	'info_publier' => 'publiceren',
402
-	'info_publies' => 'Je gepubliceerde artikelen',
403
-	'info_question_accepter_visiteurs' => 'Als de sjablonen van je site voorzien dat bezoekers zich kunnen registreren zonder toegang tot de privé-ruimte, activeer dan de volgende optie :',
404
-	'info_question_inscription_nouveaux_redacteurs' => 'Aanvaard je inschrijvingen van nieuwe redacteuren vanaf
369
+    'info_non_envoi_liste_nouveautes' => 'De lijst met nieuwe bijdragen niet versturen',
370
+    'info_non_modifiable' => 'kan niet gewijzigd worden',
371
+    'info_non_suppression_mot_cle' => 'ik wil dit trefwoord niet verwijderen.',
372
+    'info_notes' => 'Voetnoot',
373
+    'info_nouvel_article' => 'Nieuw artikel',
374
+    'info_nouvelle_traduction' => 'Nieuwe vertaling :',
375
+    'info_numero_article' => 'ARTIKEL NUMMER:',
376
+    'info_obligatoire_02' => '(verplicht)', # MODIF
377
+    'info_option_accepter_visiteurs' => 'Inschrijving van bezoekers van de publieke site aanvaarden',
378
+    'info_option_ne_pas_accepter_visiteurs' => 'Inschrijving van bezoekers weigeren',
379
+    'info_options_avancees' => 'GEAVANCEERDE OPTIES',
380
+    'info_ou' => 'of...',
381
+    'info_page_interdite' => 'Verboden pagina',
382
+    'info_par_nom' => 'op naam',
383
+    'info_par_nombre_article' => 'volgens aantal artikelen',
384
+    'info_par_statut' => 'op status',
385
+    'info_par_tri' => '’(per @tri@)’',
386
+    'info_passe_trop_court' => 'Te kort wachtwoord.',
387
+    'info_passe_trop_court_car_pluriel' => 'Het wachtwoord moet ten minste @nb@ teken bevatten.',
388
+    'info_passes_identiques' => 'Beide wachtwoorden zijn niet identiek.',
389
+    'info_plus_cinq_car' => 'Meer dan 5 karakters',
390
+    'info_plus_cinq_car_2' => '(Meer dan 5 karakters)',
391
+    'info_plus_trois_car' => '(Meer dan 3 karakters)',
392
+    'info_popularite' => 'populariteit: @popularite@; bezoeken: @visites@',
393
+    'info_post_scriptum' => 'Post-Scriptum',
394
+    'info_post_scriptum_2' => 'Post-scriptum:',
395
+    'info_pour' => 'voor',
396
+    'info_preview_texte' => 'Nu is het ook mogelijk om de site in preview mode te zien, alsof alle artikelen en berichten (indien ze tenminste werden « voorgesteld voor publicatie ») ook echt waren gepubliceerd. Dient deze mogelijkheid uitsluitend te worden voorzien voor de beheerders, voor alle redacteurs of voor niemand?',
397
+    'info_procedez_par_etape' => 'vervolg stap voor stap',
398
+    'info_procedure_maj_version' => 'de procedure voor de update die nodig is om de database aan te passen aan de nieuwe versie van SPIP.',
399
+    'info_proxy_ok' => 'Test van proxy geslaagde.',
400
+    'info_ps' => 'N.B.',
401
+    'info_publier' => 'publiceren',
402
+    'info_publies' => 'Je gepubliceerde artikelen',
403
+    'info_question_accepter_visiteurs' => 'Als de sjablonen van je site voorzien dat bezoekers zich kunnen registreren zonder toegang tot de privé-ruimte, activeer dan de volgende optie :',
404
+    'info_question_inscription_nouveaux_redacteurs' => 'Aanvaard je inschrijvingen van nieuwe redacteuren vanaf
405 405
  de publieke site? Indien wel, dan kunnen bezoekers
406 406
  zich via een geautomatiseerd formulier inschrijven en
407 407
  toegang krijgen tot de privé-ruimte om zelf artikelen
@@ -411,480 +411,480 @@  discard block
 block discarded – undo
411 411
  blokkeren echter het versturen van e-mail vanaf hun
412 412
  servers: in dat geval is een automatische inschrijving
413 413
  niet mogelijk.</div>',
414
-	'info_qui_edite' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan deze inhoud gewerkt ',
415
-	'info_racine_site' => 'Begin van de site',
416
-	'info_recharger_page' => 'Laad deze pagina over enkele ogenblikken opnieuw.',
417
-	'info_recherche_auteur_zero' => 'Geen resultaat voor « @cherche_auteur@ ».',
418
-	'info_recommencer' => 'Probeer nogmaals, alstublieft.',
419
-	'info_redacteur_1' => 'Redacteur',
420
-	'info_redacteur_2' => 'met toegang tot de privé-ruimte (<i>aanbevolen</i>)',
421
-	'info_redacteurs' => 'Redacteurs',
422
-	'info_redaction_en_cours' => 'IN REDACTIE',
423
-	'info_redirection' => 'Doorverwijzing',
424
-	'info_redirection_activee' => 'De doorverwijzing is ingeschakeld.',
425
-	'info_redirection_boucle' => 'Je probeert het artikel naar zichzelf door te verwijzen.',
426
-	'info_redirection_desactivee' => 'De doorverwijzing is verwijderd.',
427
-	'info_refuses' => 'Je geweigerde artikelen',
428
-	'info_reglage_ldap' => 'Opties: <b>Instellen van de LDAP invoer</b>',
429
-	'info_renvoi_article' => '<b>Doorverwijzing.</b> Dit artikel verwijst naar de pagina:',
430
-	'info_reserve_admin' => 'Alleen beheerders kunnen dit adres wijzigen.',
431
-	'info_restreindre_rubrique' => 'Beheer tot deze rubriek beperken:',
432
-	'info_resultat_recherche' => 'Resultaat van de zoekopdracht:',
433
-	'info_rubriques' => 'Rubrieken',
434
-	'info_rubriques_02' => 'rubrieken',
435
-	'info_rubriques_trouvees' => 'Gevonden rubrieken',
436
-	'info_sans_titre' => 'Zonder titel',
437
-	'info_selection_chemin_acces' => '<b>Selecteer</b> hierna de toegangswijze tot het adresboek:',
438
-	'info_signatures' => 'namen',
439
-	'info_site' => 'Site',
440
-	'info_site_2' => 'site:',
441
-	'info_site_min' => 'site',
442
-	'info_site_reference_2' => 'Gekoppelde website',
443
-	'info_site_web' => 'Website:',
444
-	'info_sites' => 'sites',
445
-	'info_sites_lies_mot' => 'Referentiesites gekoppeld aan het trefwoord ',
446
-	'info_sites_proxy' => 'Een proxy gebruiken',
447
-	'info_sites_trouves' => 'Gevonden websites ',
448
-	'info_sous_titre' => 'Ondertitel:',
449
-	'info_statut_administrateur' => 'Beheerder',
450
-	'info_statut_auteur' => 'Status van deze auteur:',
451
-	'info_statut_auteur_2' => 'Ik ben',
452
-	'info_statut_auteur_a_confirmer' => 'Te bevestigen inschrijving',
453
-	'info_statut_auteur_autre' => 'Andere status:',
454
-	'info_statut_redacteur' => 'Redacteur',
455
-	'info_statut_utilisateurs_1' => 'Standaardstatus voor de ingevoerde gebruikers',
456
-	'info_statut_utilisateurs_2' => 'Kies de status die de personen uit het LDAP-adressenboek toebediend krijgen als ze de eerste keer inloggen. Nadien kan je de status van een individuele auteur wijzigen.',
457
-	'info_suivi_activite' => 'Opvolgen van de editoriale activiteit',
458
-	'info_surtitre' => 'Opschrift:',
459
-	'info_syndication_integrale_1' => 'Je site stelt syndicatiebestanden voor (zie « <a href="@url@">@titre@</a> »).',
460
-	'info_syndication_integrale_2' => 'Wil je integrale artikelen doorgeven of enkel een samenvatting van enkele honderden karakters doorgeven ?',
461
-	'info_table_prefix' => 'Je kunt het voorvoegsel van de naam van de databasetabel aanpassen (dit is absoluut noodzakelijk wanneer er verschillende sites in dezelfde database zitten). Dit voorvoegsel schrijf je in kleine letters, zonder accenten of spaties.',
462
-	'info_taille_maximale_images' => 'SPIP zal de maximumomvang van de beelden testen die hij kan behandelen (in miljoenen pixels). <br/> zullen de grotere beelden niet verminderd zijn.',
463
-	'info_taille_maximale_vignette' => 'Maximale grootte van de mini-afbeeldingen gemaakt door het systeem:',
464
-	'info_terminer_installation' => 'Je kan de standaardinstallatieprocedure nu beëindigen.',
465
-	'info_texte' => 'Tekst',
466
-	'info_texte_explicatif' => 'Uitleg',
467
-	'info_texte_long' => '(de tekst is lang: hij zal bijgevolg in verschillende delen verschijnen die opnieuw bij elkaar worden gevoegd na goedkeuring van de tekst.)',
468
-	'info_texte_message' => 'Tekst van je bericht',
469
-	'info_texte_message_02' => 'Tekst van het bericht',
470
-	'info_titre' => 'Titel:',
471
-	'info_total' => 'totaal:',
472
-	'info_tous_articles_en_redaction' => 'Alle artikelen in redactie',
473
-	'info_tous_articles_presents' => 'Alle in deze rubriek gepubliceerde artikelen',
474
-	'info_tous_articles_refuses' => 'Alle afgewezen artikelen',
475
-	'info_tous_les' => 'alle:',
476
-	'info_tout_site' => 'Volledige site',
477
-	'info_tout_site2' => 'Het artikel werd niet in deze taal vertaald.',
478
-	'info_tout_site3' => 'Het artikel werd in deze taal vertaald maar aan het bronartikel werden wijzigingen aangebracht. De vertaling dient geactualiseerd te worden.',
479
-	'info_tout_site4' => 'Het artikel is vertaald naar deze taal en de vertaling is geactualiseerd.',
480
-	'info_tout_site5' => 'Origineel artikel.',
481
-	'info_tout_site6' => '<b>LET OP:</b> alleen de originele artikelen worden getoond.
414
+    'info_qui_edite' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan deze inhoud gewerkt ',
415
+    'info_racine_site' => 'Begin van de site',
416
+    'info_recharger_page' => 'Laad deze pagina over enkele ogenblikken opnieuw.',
417
+    'info_recherche_auteur_zero' => 'Geen resultaat voor « @cherche_auteur@ ».',
418
+    'info_recommencer' => 'Probeer nogmaals, alstublieft.',
419
+    'info_redacteur_1' => 'Redacteur',
420
+    'info_redacteur_2' => 'met toegang tot de privé-ruimte (<i>aanbevolen</i>)',
421
+    'info_redacteurs' => 'Redacteurs',
422
+    'info_redaction_en_cours' => 'IN REDACTIE',
423
+    'info_redirection' => 'Doorverwijzing',
424
+    'info_redirection_activee' => 'De doorverwijzing is ingeschakeld.',
425
+    'info_redirection_boucle' => 'Je probeert het artikel naar zichzelf door te verwijzen.',
426
+    'info_redirection_desactivee' => 'De doorverwijzing is verwijderd.',
427
+    'info_refuses' => 'Je geweigerde artikelen',
428
+    'info_reglage_ldap' => 'Opties: <b>Instellen van de LDAP invoer</b>',
429
+    'info_renvoi_article' => '<b>Doorverwijzing.</b> Dit artikel verwijst naar de pagina:',
430
+    'info_reserve_admin' => 'Alleen beheerders kunnen dit adres wijzigen.',
431
+    'info_restreindre_rubrique' => 'Beheer tot deze rubriek beperken:',
432
+    'info_resultat_recherche' => 'Resultaat van de zoekopdracht:',
433
+    'info_rubriques' => 'Rubrieken',
434
+    'info_rubriques_02' => 'rubrieken',
435
+    'info_rubriques_trouvees' => 'Gevonden rubrieken',
436
+    'info_sans_titre' => 'Zonder titel',
437
+    'info_selection_chemin_acces' => '<b>Selecteer</b> hierna de toegangswijze tot het adresboek:',
438
+    'info_signatures' => 'namen',
439
+    'info_site' => 'Site',
440
+    'info_site_2' => 'site:',
441
+    'info_site_min' => 'site',
442
+    'info_site_reference_2' => 'Gekoppelde website',
443
+    'info_site_web' => 'Website:',
444
+    'info_sites' => 'sites',
445
+    'info_sites_lies_mot' => 'Referentiesites gekoppeld aan het trefwoord ',
446
+    'info_sites_proxy' => 'Een proxy gebruiken',
447
+    'info_sites_trouves' => 'Gevonden websites ',
448
+    'info_sous_titre' => 'Ondertitel:',
449
+    'info_statut_administrateur' => 'Beheerder',
450
+    'info_statut_auteur' => 'Status van deze auteur:',
451
+    'info_statut_auteur_2' => 'Ik ben',
452
+    'info_statut_auteur_a_confirmer' => 'Te bevestigen inschrijving',
453
+    'info_statut_auteur_autre' => 'Andere status:',
454
+    'info_statut_redacteur' => 'Redacteur',
455
+    'info_statut_utilisateurs_1' => 'Standaardstatus voor de ingevoerde gebruikers',
456
+    'info_statut_utilisateurs_2' => 'Kies de status die de personen uit het LDAP-adressenboek toebediend krijgen als ze de eerste keer inloggen. Nadien kan je de status van een individuele auteur wijzigen.',
457
+    'info_suivi_activite' => 'Opvolgen van de editoriale activiteit',
458
+    'info_surtitre' => 'Opschrift:',
459
+    'info_syndication_integrale_1' => 'Je site stelt syndicatiebestanden voor (zie « <a href="@url@">@titre@</a> »).',
460
+    'info_syndication_integrale_2' => 'Wil je integrale artikelen doorgeven of enkel een samenvatting van enkele honderden karakters doorgeven ?',
461
+    'info_table_prefix' => 'Je kunt het voorvoegsel van de naam van de databasetabel aanpassen (dit is absoluut noodzakelijk wanneer er verschillende sites in dezelfde database zitten). Dit voorvoegsel schrijf je in kleine letters, zonder accenten of spaties.',
462
+    'info_taille_maximale_images' => 'SPIP zal de maximumomvang van de beelden testen die hij kan behandelen (in miljoenen pixels). <br/> zullen de grotere beelden niet verminderd zijn.',
463
+    'info_taille_maximale_vignette' => 'Maximale grootte van de mini-afbeeldingen gemaakt door het systeem:',
464
+    'info_terminer_installation' => 'Je kan de standaardinstallatieprocedure nu beëindigen.',
465
+    'info_texte' => 'Tekst',
466
+    'info_texte_explicatif' => 'Uitleg',
467
+    'info_texte_long' => '(de tekst is lang: hij zal bijgevolg in verschillende delen verschijnen die opnieuw bij elkaar worden gevoegd na goedkeuring van de tekst.)',
468
+    'info_texte_message' => 'Tekst van je bericht',
469
+    'info_texte_message_02' => 'Tekst van het bericht',
470
+    'info_titre' => 'Titel:',
471
+    'info_total' => 'totaal:',
472
+    'info_tous_articles_en_redaction' => 'Alle artikelen in redactie',
473
+    'info_tous_articles_presents' => 'Alle in deze rubriek gepubliceerde artikelen',
474
+    'info_tous_articles_refuses' => 'Alle afgewezen artikelen',
475
+    'info_tous_les' => 'alle:',
476
+    'info_tout_site' => 'Volledige site',
477
+    'info_tout_site2' => 'Het artikel werd niet in deze taal vertaald.',
478
+    'info_tout_site3' => 'Het artikel werd in deze taal vertaald maar aan het bronartikel werden wijzigingen aangebracht. De vertaling dient geactualiseerd te worden.',
479
+    'info_tout_site4' => 'Het artikel is vertaald naar deze taal en de vertaling is geactualiseerd.',
480
+    'info_tout_site5' => 'Origineel artikel.',
481
+    'info_tout_site6' => '<b>LET OP:</b> alleen de originele artikelen worden getoond.
482 482
 Vertalingen worden gelinkt aan het origineel,
483 483
 een kleur geeft hun status aan:',
484
-	'info_traductions' => 'Vertalingen',
485
-	'info_travail_colaboratif' => 'Samenwerking op artikelen',
486
-	'info_un_article' => 'een artikel, ',
487
-	'info_un_site' => 'een website, ',
488
-	'info_une_rubrique' => 'een rubriek, ',
489
-	'info_une_rubrique_02' => '1 rubriek',
490
-	'info_url' => 'URL:',
491
-	'info_url_proxy' => 'Proxy-URL',
492
-	'info_url_proxy_pas_conforme' => 'De URL van de proxy is ongeldig.',
493
-	'info_url_site_pas_conforme' => 'De site URL is niet geldig.',
494
-	'info_url_test_proxy' => 'Test-URL',
495
-	'info_urlref' => 'Adres van de koppeling:',
496
-	'info_utilisation_spip' => 'Je kan het publicatiesysteem nu gebruiken...',
497
-	'info_visites_par_mois' => 'Weergave per maand:',
498
-	'info_visiteur_1' => 'Bezoeker',
499
-	'info_visiteur_2' => 'van de publieke site',
500
-	'info_visiteurs' => 'Bezoekers',
501
-	'info_visiteurs_02' => 'Bezoekers van de publieke site',
502
-	'info_webmestre_forces' => 'Webmasters zijn op dit moment gedefinieerd in <tt>@file_options@</tt>.',
503
-	'install_adresse_base_hebergeur' => 'Adres van de database die door de provider wordt toegekend',
504
-	'install_connect_ok' => 'De nieuwe database is gedeclareerd als server @connect@.',
505
-	'install_echec_annonce' => 'De installatie zal wellicht mislukken of leiden tot een niet-werkende site...',
506
-	'install_extension_php_obligatoire' => 'SPIP benodigt de PHP-extensie:',
507
-	'install_login_base_hebergeur' => 'Login van aansluiten die door de provider wordt toegekend',
508
-	'install_nom_base_hebergeur' => 'De naam van de database die door de provider wordt toegekend:',
509
-	'install_pas_table' => 'Database momenteel zonder tabellen',
510
-	'install_pass_base_hebergeur' => 'Wachtwoord van aansluiten dat door de provider wordt toegekend',
511
-	'install_php_version' => 'PHP versie @version@ onvoldoende (minimum = @minimum@)',
512
-	'install_select_langue' => 'Kies een taal en klik vervolgens op de knop  «volgende» om de installatie te beginnen.',
513
-	'install_select_type_db' => 'Het type database aangeven:',
514
-	'install_select_type_mysql' => 'MySQL',
515
-	'install_select_type_pg' => 'PostgreSQL',
516
-	'install_select_type_sqlite2' => 'SQLite 2',
517
-	'install_select_type_sqlite3' => 'SQLite 3',
518
-	'install_serveur_hebergeur' => 'Databaseserver die door de provider wordt toegekend',
519
-	'install_table_prefix_hebergeur' => 'Het voorvoegsel van de tabel dat door de provider wordt toegekend:',
520
-	'install_tables_base' => 'Tabellen van de database',
521
-	'install_types_db_connus' => 'SPIP kan <b>MySQL</b> (het meest verbreid), <b>PostgreSQL</b> en <b>SQLite</b> gebruiken.',
522
-	'install_types_db_connus_avertissement' => '<b>PostgreSQL</b>support wordt experimenteel voorgesteld.',
523
-	'instituer_erreur_statut_a_change' => 'De status werd al gewijzigd',
524
-	'instituer_erreur_statut_non_autorise' => 'Je kunt niet kiezen voor deze status',
525
-	'intem_redacteur' => 'redacteur',
526
-	'intitule_licence' => 'Licentie',
527
-	'item_accepter_inscriptions' => 'Inschrijvingen aanvaarden',
528
-	'item_activer_messages_avertissement' => 'Waarschuwingsberichten activeren',
529
-	'item_administrateur_2' => 'beheerder',
530
-	'item_afficher_calendrier' => 'Op de kalender tonen',
531
-	'item_autoriser_syndication_integrale' => 'Volledige artikelen verspreiden via syndicatiebestanden',
532
-	'item_choix_administrateurs' => 'de beheerders',
533
-	'item_choix_generation_miniature' => 'Automatisch aanmaken van verkleinde afbeeldingen.',
534
-	'item_choix_non_generation_miniature' => 'Geen verkleinde afbeeldingen aanmaken.',
535
-	'item_choix_redacteurs' => 'de redacteurs',
536
-	'item_choix_visiteurs' => 'bezoekers van de publieke site',
537
-	'item_creer_fichiers_authent' => 'de .htpasswd bestanden aanmaken',
538
-	'item_login' => 'Login',
539
-	'item_messagerie_agenda' => 'De berichtendienst en de agenda activeren',
540
-	'item_mots_cles_association_articles' => 'aan artikelen',
541
-	'item_mots_cles_association_rubriques' => 'aan rubrieken',
542
-	'item_mots_cles_association_sites' => 'aan gesyndiceerde of gerefereerde sites.',
543
-	'item_non' => 'Nee',
544
-	'item_non_accepter_inscriptions' => 'Geen inschrijvingen aanvaarden',
545
-	'item_non_activer_messages_avertissement' => 'Geen waarschuwingsberichten',
546
-	'item_non_afficher_calendrier' => 'Niet tonen op de kalender',
547
-	'item_non_autoriser_syndication_integrale' => 'Alleen een samenvatting verspreiden',
548
-	'item_non_creer_fichiers_authent' => 'Deze bestanden niet aanmaken',
549
-	'item_non_messagerie_agenda' => 'De berichtendienst en de agenda deactiveren',
550
-	'item_non_publier_articles' => 'Artikelen niet vrijgeven voor de vastgelegde datum van publicatie',
551
-	'item_nouvel_auteur' => 'Nieuwe auteur',
552
-	'item_nouvelle_rubrique' => 'Nieuwe rubriek',
553
-	'item_oui' => 'Ja',
554
-	'item_publier_articles' => 'Artikelen publiceren, ongeacht hun publicatiedatum.',
555
-	'item_reponse_article' => 'Antwoord op artikel',
556
-	'item_visiteur' => 'bezoeker',
484
+    'info_traductions' => 'Vertalingen',
485
+    'info_travail_colaboratif' => 'Samenwerking op artikelen',
486
+    'info_un_article' => 'een artikel, ',
487
+    'info_un_site' => 'een website, ',
488
+    'info_une_rubrique' => 'een rubriek, ',
489
+    'info_une_rubrique_02' => '1 rubriek',
490
+    'info_url' => 'URL:',
491
+    'info_url_proxy' => 'Proxy-URL',
492
+    'info_url_proxy_pas_conforme' => 'De URL van de proxy is ongeldig.',
493
+    'info_url_site_pas_conforme' => 'De site URL is niet geldig.',
494
+    'info_url_test_proxy' => 'Test-URL',
495
+    'info_urlref' => 'Adres van de koppeling:',
496
+    'info_utilisation_spip' => 'Je kan het publicatiesysteem nu gebruiken...',
497
+    'info_visites_par_mois' => 'Weergave per maand:',
498
+    'info_visiteur_1' => 'Bezoeker',
499
+    'info_visiteur_2' => 'van de publieke site',
500
+    'info_visiteurs' => 'Bezoekers',
501
+    'info_visiteurs_02' => 'Bezoekers van de publieke site',
502
+    'info_webmestre_forces' => 'Webmasters zijn op dit moment gedefinieerd in <tt>@file_options@</tt>.',
503
+    'install_adresse_base_hebergeur' => 'Adres van de database die door de provider wordt toegekend',
504
+    'install_connect_ok' => 'De nieuwe database is gedeclareerd als server @connect@.',
505
+    'install_echec_annonce' => 'De installatie zal wellicht mislukken of leiden tot een niet-werkende site...',
506
+    'install_extension_php_obligatoire' => 'SPIP benodigt de PHP-extensie:',
507
+    'install_login_base_hebergeur' => 'Login van aansluiten die door de provider wordt toegekend',
508
+    'install_nom_base_hebergeur' => 'De naam van de database die door de provider wordt toegekend:',
509
+    'install_pas_table' => 'Database momenteel zonder tabellen',
510
+    'install_pass_base_hebergeur' => 'Wachtwoord van aansluiten dat door de provider wordt toegekend',
511
+    'install_php_version' => 'PHP versie @version@ onvoldoende (minimum = @minimum@)',
512
+    'install_select_langue' => 'Kies een taal en klik vervolgens op de knop  «volgende» om de installatie te beginnen.',
513
+    'install_select_type_db' => 'Het type database aangeven:',
514
+    'install_select_type_mysql' => 'MySQL',
515
+    'install_select_type_pg' => 'PostgreSQL',
516
+    'install_select_type_sqlite2' => 'SQLite 2',
517
+    'install_select_type_sqlite3' => 'SQLite 3',
518
+    'install_serveur_hebergeur' => 'Databaseserver die door de provider wordt toegekend',
519
+    'install_table_prefix_hebergeur' => 'Het voorvoegsel van de tabel dat door de provider wordt toegekend:',
520
+    'install_tables_base' => 'Tabellen van de database',
521
+    'install_types_db_connus' => 'SPIP kan <b>MySQL</b> (het meest verbreid), <b>PostgreSQL</b> en <b>SQLite</b> gebruiken.',
522
+    'install_types_db_connus_avertissement' => '<b>PostgreSQL</b>support wordt experimenteel voorgesteld.',
523
+    'instituer_erreur_statut_a_change' => 'De status werd al gewijzigd',
524
+    'instituer_erreur_statut_non_autorise' => 'Je kunt niet kiezen voor deze status',
525
+    'intem_redacteur' => 'redacteur',
526
+    'intitule_licence' => 'Licentie',
527
+    'item_accepter_inscriptions' => 'Inschrijvingen aanvaarden',
528
+    'item_activer_messages_avertissement' => 'Waarschuwingsberichten activeren',
529
+    'item_administrateur_2' => 'beheerder',
530
+    'item_afficher_calendrier' => 'Op de kalender tonen',
531
+    'item_autoriser_syndication_integrale' => 'Volledige artikelen verspreiden via syndicatiebestanden',
532
+    'item_choix_administrateurs' => 'de beheerders',
533
+    'item_choix_generation_miniature' => 'Automatisch aanmaken van verkleinde afbeeldingen.',
534
+    'item_choix_non_generation_miniature' => 'Geen verkleinde afbeeldingen aanmaken.',
535
+    'item_choix_redacteurs' => 'de redacteurs',
536
+    'item_choix_visiteurs' => 'bezoekers van de publieke site',
537
+    'item_creer_fichiers_authent' => 'de .htpasswd bestanden aanmaken',
538
+    'item_login' => 'Login',
539
+    'item_messagerie_agenda' => 'De berichtendienst en de agenda activeren',
540
+    'item_mots_cles_association_articles' => 'aan artikelen',
541
+    'item_mots_cles_association_rubriques' => 'aan rubrieken',
542
+    'item_mots_cles_association_sites' => 'aan gesyndiceerde of gerefereerde sites.',
543
+    'item_non' => 'Nee',
544
+    'item_non_accepter_inscriptions' => 'Geen inschrijvingen aanvaarden',
545
+    'item_non_activer_messages_avertissement' => 'Geen waarschuwingsberichten',
546
+    'item_non_afficher_calendrier' => 'Niet tonen op de kalender',
547
+    'item_non_autoriser_syndication_integrale' => 'Alleen een samenvatting verspreiden',
548
+    'item_non_creer_fichiers_authent' => 'Deze bestanden niet aanmaken',
549
+    'item_non_messagerie_agenda' => 'De berichtendienst en de agenda deactiveren',
550
+    'item_non_publier_articles' => 'Artikelen niet vrijgeven voor de vastgelegde datum van publicatie',
551
+    'item_nouvel_auteur' => 'Nieuwe auteur',
552
+    'item_nouvelle_rubrique' => 'Nieuwe rubriek',
553
+    'item_oui' => 'Ja',
554
+    'item_publier_articles' => 'Artikelen publiceren, ongeacht hun publicatiedatum.',
555
+    'item_reponse_article' => 'Antwoord op artikel',
556
+    'item_visiteur' => 'bezoeker',
557 557
 
558
-	// J
559
-	'jour_non_connu_nc' => 'onbekend',
558
+    // J
559
+    'jour_non_connu_nc' => 'onbekend',
560 560
 
561
-	// L
562
-	'label_bando_outils' => 'Knoppenbalk',
563
-	'label_bando_outils_afficher' => 'Knoppenbalk tonen',
564
-	'label_bando_outils_masquer' => 'Knoppenbalk verbergen',
565
-	'label_choix_langue' => 'Selecteer je taal',
566
-	'label_nom_fichier_connect' => 'Geef de naam die wordt gebruikt voor deze server',
567
-	'label_slogan_site' => 'Slogan',
568
-	'label_taille_ecran' => 'Breedte van het scherm',
569
-	'label_texte_et_icones_navigation' => 'Navigatiemenu',
570
-	'label_texte_et_icones_page' => 'Weergave op de pagina',
571
-	'ldap_correspondance' => 'erfenis van het veld @champ@',
572
-	'ldap_correspondance_1' => 'Erfenis van de LDAP velden',
573
-	'ldap_correspondance_2' => 'Voor elk volgend SPIP veld, de naam van het overeenkomstige LDAP veld aangeven. Leeglaten om niets in te vullen, door spaties of komma’s gescheiden om verschillende LDAP velden te proberen.',
574
-	'lien_ajouter_auteur' => 'Voeg deze auteur toe',
575
-	'lien_ajouter_une_rubrique' => 'Deze rubriek toevoegen',
576
-	'lien_email' => 'e-mail',
577
-	'lien_nom_site' => 'NAAM WEBSITE:',
578
-	'lien_rapide_contenu' => 'Naar de inhoud gaan',
579
-	'lien_rapide_navigation' => 'Naar de navigatie gaan',
580
-	'lien_rapide_recherche' => 'Op zoek gaan',
581
-	'lien_retirer_auteur' => 'Auteur verwijderen',
582
-	'lien_retirer_rubrique' => 'Rubriek verwijderen',
583
-	'lien_retirer_tous_auteurs' => 'Verwijder alle auteurs',
584
-	'lien_retirer_toutes_rubriques' => 'Alle rubrieken verwijderen',
585
-	'lien_site' => 'site',
586
-	'lien_tout_decocher' => 'Alles deselecteren',
587
-	'lien_tout_deplier' => 'Alles uitvouwen',
588
-	'lien_tout_replier' => 'Alles opvouwen',
589
-	'lien_tout_supprimer' => 'Alles verwijderen',
590
-	'lien_trier_nom' => 'Sorteer op naam',
591
-	'lien_trier_nombre_articles' => 'Sorteer op aantal artikelen',
592
-	'lien_trier_statut' => 'Sorteer op status',
593
-	'lien_voir_en_ligne' => 'ONLINE BEKIJKEN:',
594
-	'logo_article' => 'Logo van het artikel',
595
-	'logo_auteur' => 'Logo van de auteur',
596
-	'logo_rubrique' => 'Logo van de rubriek ',
597
-	'logo_site' => 'Logo van deze site',
598
-	'logo_standard_rubrique' => 'Standaard logo rubrieken',
599
-	'logo_survol' => 'Logo voor rollover',
561
+    // L
562
+    'label_bando_outils' => 'Knoppenbalk',
563
+    'label_bando_outils_afficher' => 'Knoppenbalk tonen',
564
+    'label_bando_outils_masquer' => 'Knoppenbalk verbergen',
565
+    'label_choix_langue' => 'Selecteer je taal',
566
+    'label_nom_fichier_connect' => 'Geef de naam die wordt gebruikt voor deze server',
567
+    'label_slogan_site' => 'Slogan',
568
+    'label_taille_ecran' => 'Breedte van het scherm',
569
+    'label_texte_et_icones_navigation' => 'Navigatiemenu',
570
+    'label_texte_et_icones_page' => 'Weergave op de pagina',
571
+    'ldap_correspondance' => 'erfenis van het veld @champ@',
572
+    'ldap_correspondance_1' => 'Erfenis van de LDAP velden',
573
+    'ldap_correspondance_2' => 'Voor elk volgend SPIP veld, de naam van het overeenkomstige LDAP veld aangeven. Leeglaten om niets in te vullen, door spaties of komma’s gescheiden om verschillende LDAP velden te proberen.',
574
+    'lien_ajouter_auteur' => 'Voeg deze auteur toe',
575
+    'lien_ajouter_une_rubrique' => 'Deze rubriek toevoegen',
576
+    'lien_email' => 'e-mail',
577
+    'lien_nom_site' => 'NAAM WEBSITE:',
578
+    'lien_rapide_contenu' => 'Naar de inhoud gaan',
579
+    'lien_rapide_navigation' => 'Naar de navigatie gaan',
580
+    'lien_rapide_recherche' => 'Op zoek gaan',
581
+    'lien_retirer_auteur' => 'Auteur verwijderen',
582
+    'lien_retirer_rubrique' => 'Rubriek verwijderen',
583
+    'lien_retirer_tous_auteurs' => 'Verwijder alle auteurs',
584
+    'lien_retirer_toutes_rubriques' => 'Alle rubrieken verwijderen',
585
+    'lien_site' => 'site',
586
+    'lien_tout_decocher' => 'Alles deselecteren',
587
+    'lien_tout_deplier' => 'Alles uitvouwen',
588
+    'lien_tout_replier' => 'Alles opvouwen',
589
+    'lien_tout_supprimer' => 'Alles verwijderen',
590
+    'lien_trier_nom' => 'Sorteer op naam',
591
+    'lien_trier_nombre_articles' => 'Sorteer op aantal artikelen',
592
+    'lien_trier_statut' => 'Sorteer op status',
593
+    'lien_voir_en_ligne' => 'ONLINE BEKIJKEN:',
594
+    'logo_article' => 'Logo van het artikel',
595
+    'logo_auteur' => 'Logo van de auteur',
596
+    'logo_rubrique' => 'Logo van de rubriek ',
597
+    'logo_site' => 'Logo van deze site',
598
+    'logo_standard_rubrique' => 'Standaard logo rubrieken',
599
+    'logo_survol' => 'Logo voor rollover',
600 600
 
601
-	// M
602
-	'menu_aide_installation_choix_base' => 'Database kiezen',
603
-	'module_fichier_langue' => 'Taalbestand',
604
-	'module_raccourci' => 'Snelkoppeling',
605
-	'module_texte_affiche' => 'Weergegeven tekst',
606
-	'module_texte_explicatif' => 'Je kan de volgende snelkoppelingen invoegen in de skeletten van je publieke site. Ze worden automatisch vertaald in de verschillende talen waarvoor een taalbestand is aangemaakt.',
607
-	'module_texte_traduction' => 'Het taalbestand « @module@ » is beschikbaar in het:',
608
-	'mois_non_connu' => 'Onbekend',
601
+    // M
602
+    'menu_aide_installation_choix_base' => 'Database kiezen',
603
+    'module_fichier_langue' => 'Taalbestand',
604
+    'module_raccourci' => 'Snelkoppeling',
605
+    'module_texte_affiche' => 'Weergegeven tekst',
606
+    'module_texte_explicatif' => 'Je kan de volgende snelkoppelingen invoegen in de skeletten van je publieke site. Ze worden automatisch vertaald in de verschillende talen waarvoor een taalbestand is aangemaakt.',
607
+    'module_texte_traduction' => 'Het taalbestand « @module@ » is beschikbaar in het:',
608
+    'mois_non_connu' => 'Onbekend',
609 609
 
610
-	// N
611
-	'nouvelle_version_spip' => 'Versie @version@ van SPIP is beschikbaar',
612
-	'nouvelle_version_spip_majeure' => 'Een nieuwe versie van SPIP @version@ is beschikbaar',
610
+    // N
611
+    'nouvelle_version_spip' => 'Versie @version@ van SPIP is beschikbaar',
612
+    'nouvelle_version_spip_majeure' => 'Een nieuwe versie van SPIP @version@ is beschikbaar',
613 613
 
614
-	// O
615
-	'onglet_contenu' => 'Inhoud',
616
-	'onglet_declarer_une_autre_base' => 'Een andere database declareren',
617
-	'onglet_discuter' => 'Discussiëren',
618
-	'onglet_interactivite' => 'Interactiviteit',
619
-	'onglet_proprietes' => 'Eigendommen',
620
-	'onglet_repartition_actuelle' => 'nu',
621
-	'onglet_sous_rubriques' => 'Subrubrieken',
614
+    // O
615
+    'onglet_contenu' => 'Inhoud',
616
+    'onglet_declarer_une_autre_base' => 'Een andere database declareren',
617
+    'onglet_discuter' => 'Discussiëren',
618
+    'onglet_interactivite' => 'Interactiviteit',
619
+    'onglet_proprietes' => 'Eigendommen',
620
+    'onglet_repartition_actuelle' => 'nu',
621
+    'onglet_sous_rubriques' => 'Subrubrieken',
622 622
 
623
-	// P
624
-	'page_pas_proxy' => 'Deze bladzijde moet niet via proxy gaan',
625
-	'pas_de_proxy_pour' => 'Geef desnoods de machines of gebieden aan waarvoor deze proxy niet van toepassing moet zijn (bijvoorbeeld: @exemple@)',
626
-	'phpinfo' => 'PHP Configuratie',
627
-	'plugin_charge_paquet' => 'Inladen van het pakket @name@',
628
-	'plugin_charger' => 'Download',
629
-	'plugin_erreur_charger' => 'fout: onmogelijk om @zip@ te laden',
630
-	'plugin_erreur_droit1' => 'Er kan niet worden geschreven naar <code>@dest@</code>.',
631
-	'plugin_erreur_droit2' => 'Controleer de rechten op deze map (en maak hem eventueel aan), of plaats de bestanden via FTP.',
632
-	'plugin_erreur_zip' => 'pclzip fout: fout @status@',
633
-	'plugin_etat_developpement' => 'in ontwikkeling',
634
-	'plugin_etat_experimental' => 'experimenteel',
635
-	'plugin_etat_stable' => 'stabiel',
636
-	'plugin_etat_test' => 'in test',
637
-	'plugin_impossible_activer' => 'Onmogelijk om plugin @plugin@ te activeren',
638
-	'plugin_info_automatique1' => 'Als je de automatische installatie van plugins wilt toelaten, moet je:',
639
-	'plugin_info_automatique1_lib' => 'Als je de automatische installatie van deze bibliotheek toe wilt laten:',
640
-	'plugin_info_automatique2' => 'een lijst <code>@rep@</code> aanmaken;',
641
-	'plugin_info_automatique3' => 'controleren dat de server het recht heeft om in deze map te schrijven.',
642
-	'plugin_info_automatique_creer' => 'om in de siteroot te creëren.',
643
-	'plugin_info_automatique_exemples' => 'voorbeelden:',
644
-	'plugin_info_automatique_ftp' => 'Je kunt een plugin met FTP in de map <tt>@rep@</tt> plaatsen',
645
-	'plugin_info_automatique_lib' => 'Sommige plugins vragen eveneens om bestanden in map <code>lib/</code> te kunnen downloaden, die in de root van de site moet bestaan.',
646
-	'plugin_info_automatique_liste' => 'Je lijst van plugins:',
647
-	'plugin_info_automatique_liste_officielle' => 'officiële plugins',
648
-	'plugin_info_automatique_liste_update' => 'De lijsten bijwerken',
649
-	'plugin_info_automatique_ou' => 'om...',
650
-	'plugin_info_automatique_select' => 'Selecteert hieronder een plugin: SPIP zal hem downloaden en in map <code>@rep@</code> plaatsen; als de plugin al bestaat, zal hij worden bijgewerkt.',
651
-	'plugin_info_credit' => 'Credits',
652
-	'plugin_info_erreur_xml' => 'De declaratie van deze plugin is onjuist',
653
-	'plugin_info_install_ok' => 'Succesvolle installatie',
654
-	'plugin_info_necessite' => 'Benodigd:',
655
-	'plugin_info_non_compatible_spip' => 'Deze plugin is niet compatibel met deze versie van SPIP',
656
-	'plugin_info_plugins_dist_1' => 'De onderstaande plugins zijn geladen en geactiveerd in de directory @plugins_dist@.', # extensies zijn speciaale plugins geleeverd met spip-core om een gebruikbare SPIP pakket te bouwen
657
-	'plugin_info_plugins_dist_2' => 'Ze zijn niet te deactiveren.',
658
-	'plugin_info_telecharger' => 'om vanaf @url@ te downloaden en te plaatsen in @rep@',
659
-	'plugin_info_upgrade_ok' => ' Update geslaagd',
660
-	'plugin_librairies_installees' => 'Geïnstalleerde bibliotheken',
661
-	'plugin_necessite_extension_php' => 'De PHP-extensie @plugin@ is benodigd in versie @version@.',
662
-	'plugin_necessite_extension_php_sans_version' => 'Benodigde PHP-extensie: @plugin@',
663
-	'plugin_necessite_lib' => 'Deze plugin vereist de library @lib@',
664
-	'plugin_necessite_php' => 'Vereist @plugin@ in versie @version@.',
665
-	'plugin_necessite_plugin' => 'Vereist plugin @plugin@ met minimale versie @version@.',
666
-	'plugin_necessite_plugin_sans_version' => 'Vereist plugin @plugin@ ',
667
-	'plugin_necessite_spip' => 'Vereist SPIP in minimale versie @version@.',
668
-	'plugin_source' => 'bron: ',
669
-	'plugin_titre_automatique' => 'Automatische installatie',
670
-	'plugin_titre_automatique_ajouter' => 'Een plugin toevoegen',
671
-	'plugin_titre_installation' => 'Het installeren van plugin @plugin@',
672
-	'plugin_titre_modifier' => 'Mijn plugins',
673
-	'plugin_utilise_extension_php' => 'Gebruik de PHP-extensie @plugin@ in versie @version@.', # MODIF
674
-	'plugin_utilise_php' => 'Gebruikt @plugin@ in versie @version@.', # MODIF
675
-	'plugin_utilise_plugin' => 'Gebruikt plugin @plugin@ met versie @version@.', # MODIF
676
-	'plugin_zip_active' => 'Gaat door om het te activeren',
677
-	'plugin_zip_adresse' => 'geef hieronder het adres van een zipbestand om de plugin te downloaden, of het adres van een lijst van plugins.',
678
-	'plugin_zip_adresse_champ' => 'Adres van plugin of van de lijst ',
679
-	'plugin_zip_content' => 'Hij bevat de volgende bestanden (@taille@), <br/>klaar om in de map <code>@rep@</code> te worden geplaatst',
680
-	'plugin_zip_installe_finie' => 'Het bestand @zip@ is geunzipt en werd geplaatst.',
681
-	'plugin_zip_installe_rep_finie' => 'Het bestand @zip@ is geunzipt en werd in de map @rep@ geplaatst',
682
-	'plugin_zip_installer' => 'Je kunt hem nu installeren.',
683
-	'plugin_zip_telecharge' => 'Het bestand @zip@ werd geladen',
684
-	'plugins_actif_aucun' => 'Geen plugins ingeschakeld.',
685
-	'plugins_actif_un' => 'Eén plugin is ingeschakeld.',
686
-	'plugins_actifs' => '@count@ plugins activeren.',
687
-	'plugins_actifs_liste' => 'Actief',
688
-	'plugins_compte' => '@count@ plugins',
689
-	'plugins_disponible_un' => 'Eén plugin beschikbaar.',
690
-	'plugins_disponibles' => '@count@ plugins beschikbaar.',
691
-	'plugins_erreur' => 'De fout in plugins: @plugins@',
692
-	'plugins_liste' => 'Lijst van plugins',
693
-	'plugins_liste_dist' => 'Vergrendelde plugins', # "locked" in english
694
-	'plugins_recents' => 'Recente plugins.',
695
-	'plugins_tous_liste' => 'Alle',
696
-	'plugins_vue_hierarchie' => 'Hiërarchie',
697
-	'plugins_vue_liste' => 'Lijst',
698
-	'protocole_ldap' => 'De versie van het protocol:',
623
+    // P
624
+    'page_pas_proxy' => 'Deze bladzijde moet niet via proxy gaan',
625
+    'pas_de_proxy_pour' => 'Geef desnoods de machines of gebieden aan waarvoor deze proxy niet van toepassing moet zijn (bijvoorbeeld: @exemple@)',
626
+    'phpinfo' => 'PHP Configuratie',
627
+    'plugin_charge_paquet' => 'Inladen van het pakket @name@',
628
+    'plugin_charger' => 'Download',
629
+    'plugin_erreur_charger' => 'fout: onmogelijk om @zip@ te laden',
630
+    'plugin_erreur_droit1' => 'Er kan niet worden geschreven naar <code>@dest@</code>.',
631
+    'plugin_erreur_droit2' => 'Controleer de rechten op deze map (en maak hem eventueel aan), of plaats de bestanden via FTP.',
632
+    'plugin_erreur_zip' => 'pclzip fout: fout @status@',
633
+    'plugin_etat_developpement' => 'in ontwikkeling',
634
+    'plugin_etat_experimental' => 'experimenteel',
635
+    'plugin_etat_stable' => 'stabiel',
636
+    'plugin_etat_test' => 'in test',
637
+    'plugin_impossible_activer' => 'Onmogelijk om plugin @plugin@ te activeren',
638
+    'plugin_info_automatique1' => 'Als je de automatische installatie van plugins wilt toelaten, moet je:',
639
+    'plugin_info_automatique1_lib' => 'Als je de automatische installatie van deze bibliotheek toe wilt laten:',
640
+    'plugin_info_automatique2' => 'een lijst <code>@rep@</code> aanmaken;',
641
+    'plugin_info_automatique3' => 'controleren dat de server het recht heeft om in deze map te schrijven.',
642
+    'plugin_info_automatique_creer' => 'om in de siteroot te creëren.',
643
+    'plugin_info_automatique_exemples' => 'voorbeelden:',
644
+    'plugin_info_automatique_ftp' => 'Je kunt een plugin met FTP in de map <tt>@rep@</tt> plaatsen',
645
+    'plugin_info_automatique_lib' => 'Sommige plugins vragen eveneens om bestanden in map <code>lib/</code> te kunnen downloaden, die in de root van de site moet bestaan.',
646
+    'plugin_info_automatique_liste' => 'Je lijst van plugins:',
647
+    'plugin_info_automatique_liste_officielle' => 'officiële plugins',
648
+    'plugin_info_automatique_liste_update' => 'De lijsten bijwerken',
649
+    'plugin_info_automatique_ou' => 'om...',
650
+    'plugin_info_automatique_select' => 'Selecteert hieronder een plugin: SPIP zal hem downloaden en in map <code>@rep@</code> plaatsen; als de plugin al bestaat, zal hij worden bijgewerkt.',
651
+    'plugin_info_credit' => 'Credits',
652
+    'plugin_info_erreur_xml' => 'De declaratie van deze plugin is onjuist',
653
+    'plugin_info_install_ok' => 'Succesvolle installatie',
654
+    'plugin_info_necessite' => 'Benodigd:',
655
+    'plugin_info_non_compatible_spip' => 'Deze plugin is niet compatibel met deze versie van SPIP',
656
+    'plugin_info_plugins_dist_1' => 'De onderstaande plugins zijn geladen en geactiveerd in de directory @plugins_dist@.', # extensies zijn speciaale plugins geleeverd met spip-core om een gebruikbare SPIP pakket te bouwen
657
+    'plugin_info_plugins_dist_2' => 'Ze zijn niet te deactiveren.',
658
+    'plugin_info_telecharger' => 'om vanaf @url@ te downloaden en te plaatsen in @rep@',
659
+    'plugin_info_upgrade_ok' => ' Update geslaagd',
660
+    'plugin_librairies_installees' => 'Geïnstalleerde bibliotheken',
661
+    'plugin_necessite_extension_php' => 'De PHP-extensie @plugin@ is benodigd in versie @version@.',
662
+    'plugin_necessite_extension_php_sans_version' => 'Benodigde PHP-extensie: @plugin@',
663
+    'plugin_necessite_lib' => 'Deze plugin vereist de library @lib@',
664
+    'plugin_necessite_php' => 'Vereist @plugin@ in versie @version@.',
665
+    'plugin_necessite_plugin' => 'Vereist plugin @plugin@ met minimale versie @version@.',
666
+    'plugin_necessite_plugin_sans_version' => 'Vereist plugin @plugin@ ',
667
+    'plugin_necessite_spip' => 'Vereist SPIP in minimale versie @version@.',
668
+    'plugin_source' => 'bron: ',
669
+    'plugin_titre_automatique' => 'Automatische installatie',
670
+    'plugin_titre_automatique_ajouter' => 'Een plugin toevoegen',
671
+    'plugin_titre_installation' => 'Het installeren van plugin @plugin@',
672
+    'plugin_titre_modifier' => 'Mijn plugins',
673
+    'plugin_utilise_extension_php' => 'Gebruik de PHP-extensie @plugin@ in versie @version@.', # MODIF
674
+    'plugin_utilise_php' => 'Gebruikt @plugin@ in versie @version@.', # MODIF
675
+    'plugin_utilise_plugin' => 'Gebruikt plugin @plugin@ met versie @version@.', # MODIF
676
+    'plugin_zip_active' => 'Gaat door om het te activeren',
677
+    'plugin_zip_adresse' => 'geef hieronder het adres van een zipbestand om de plugin te downloaden, of het adres van een lijst van plugins.',
678
+    'plugin_zip_adresse_champ' => 'Adres van plugin of van de lijst ',
679
+    'plugin_zip_content' => 'Hij bevat de volgende bestanden (@taille@), <br/>klaar om in de map <code>@rep@</code> te worden geplaatst',
680
+    'plugin_zip_installe_finie' => 'Het bestand @zip@ is geunzipt en werd geplaatst.',
681
+    'plugin_zip_installe_rep_finie' => 'Het bestand @zip@ is geunzipt en werd in de map @rep@ geplaatst',
682
+    'plugin_zip_installer' => 'Je kunt hem nu installeren.',
683
+    'plugin_zip_telecharge' => 'Het bestand @zip@ werd geladen',
684
+    'plugins_actif_aucun' => 'Geen plugins ingeschakeld.',
685
+    'plugins_actif_un' => 'Eén plugin is ingeschakeld.',
686
+    'plugins_actifs' => '@count@ plugins activeren.',
687
+    'plugins_actifs_liste' => 'Actief',
688
+    'plugins_compte' => '@count@ plugins',
689
+    'plugins_disponible_un' => 'Eén plugin beschikbaar.',
690
+    'plugins_disponibles' => '@count@ plugins beschikbaar.',
691
+    'plugins_erreur' => 'De fout in plugins: @plugins@',
692
+    'plugins_liste' => 'Lijst van plugins',
693
+    'plugins_liste_dist' => 'Vergrendelde plugins', # "locked" in english
694
+    'plugins_recents' => 'Recente plugins.',
695
+    'plugins_tous_liste' => 'Alle',
696
+    'plugins_vue_hierarchie' => 'Hiërarchie',
697
+    'plugins_vue_liste' => 'Lijst',
698
+    'protocole_ldap' => 'De versie van het protocol:',
699 699
 
700
-	// Q
701
-	'queue_executer_maintenant' => 'Nu uitvoeren',
702
-	'queue_info_purger' => 'Je kunt alle wachtende taken verwijderen en de lijst van periodieke taken herstarten', # MODIF
703
-	'queue_nb_jobs_in_queue' => '@nb@ wachtrij', # MODIF
704
-	'queue_next_job_in_nb_sec' => 'Volgende opdracht in @nb@ sec', # MODIF
705
-	'queue_no_job_in_queue' => 'Geen opdracht in de wachtrij', # MODIF
706
-	'queue_one_job_in_queue' => '1 taak in wachtrij', # MODIF
707
-	'queue_priorite_tache' => 'prioriteit',
708
-	'queue_purger_queue' => 'De takenlijst leegmaken', # MODIF
709
-	'queue_titre' => 'Lijst van taken', # MODIF
700
+    // Q
701
+    'queue_executer_maintenant' => 'Nu uitvoeren',
702
+    'queue_info_purger' => 'Je kunt alle wachtende taken verwijderen en de lijst van periodieke taken herstarten', # MODIF
703
+    'queue_nb_jobs_in_queue' => '@nb@ wachtrij', # MODIF
704
+    'queue_next_job_in_nb_sec' => 'Volgende opdracht in @nb@ sec', # MODIF
705
+    'queue_no_job_in_queue' => 'Geen opdracht in de wachtrij', # MODIF
706
+    'queue_one_job_in_queue' => '1 taak in wachtrij', # MODIF
707
+    'queue_priorite_tache' => 'prioriteit',
708
+    'queue_purger_queue' => 'De takenlijst leegmaken', # MODIF
709
+    'queue_titre' => 'Lijst van taken', # MODIF
710 710
 
711
-	// R
712
-	'repertoire_plugins' => 'Map:',
713
-	'required' => '(verplicht)', # MODIF
711
+    // R
712
+    'repertoire_plugins' => 'Map:',
713
+    'required' => '(verplicht)', # MODIF
714 714
 
715
-	// S
716
-	'sans_heure' => 'zonder tijdstip',
717
-	'statut_admin_restreint' => 'beperkte beheerder',
718
-	'statut_webmestre' => 'webmaster',
715
+    // S
716
+    'sans_heure' => 'zonder tijdstip',
717
+    'statut_admin_restreint' => 'beperkte beheerder',
718
+    'statut_webmestre' => 'webmaster',
719 719
 
720
-	// T
721
-	'tache_cron_asap' => 'CRON taak @function@ (ASAP)',
722
-	'tache_cron_secondes' => 'CRON taak @function@ (om de @nb@ sec)',
723
-	'taille_cache_image' => 'De door SPIP automatisch aangemaakte afbeeldingen (icoontjes van documenten, grafisch weergegeven titels, wiskundige functies in TeX formaat...) nemen in map @dir@ in totaal @taille@ in.',
724
-	'taille_cache_moins_de' => 'De cache is kleiner dan @octets@.',
725
-	'taille_cache_octets' => 'De grootte van de buffer bedraagt momenteel @octets@.',
726
-	'taille_cache_vide' => 'De buffer is leeg.',
727
-	'taille_repertoire_cache' => 'Grootte van het bufferbestand',
728
-	'text_article_propose_publication' => 'Artikel voorgesteld voor publicatie.',
729
-	'texte_acces_ldap_anonyme_1' => 'Sommige LDAP-servers aanvaarden geen anonieme toegang. In zo’n geval dien je één loginnaam op te geven om vervolgens informatie in het adressenboek te zoeken. In de meeste gevallen kan je de volgende velden echter leeg laten.',
730
-	'texte_admin_effacer_01' => 'Met dit commando vernietig je de <i>volledige</i> inhoud van de database,
720
+    // T
721
+    'tache_cron_asap' => 'CRON taak @function@ (ASAP)',
722
+    'tache_cron_secondes' => 'CRON taak @function@ (om de @nb@ sec)',
723
+    'taille_cache_image' => 'De door SPIP automatisch aangemaakte afbeeldingen (icoontjes van documenten, grafisch weergegeven titels, wiskundige functies in TeX formaat...) nemen in map @dir@ in totaal @taille@ in.',
724
+    'taille_cache_moins_de' => 'De cache is kleiner dan @octets@.',
725
+    'taille_cache_octets' => 'De grootte van de buffer bedraagt momenteel @octets@.',
726
+    'taille_cache_vide' => 'De buffer is leeg.',
727
+    'taille_repertoire_cache' => 'Grootte van het bufferbestand',
728
+    'text_article_propose_publication' => 'Artikel voorgesteld voor publicatie.',
729
+    'texte_acces_ldap_anonyme_1' => 'Sommige LDAP-servers aanvaarden geen anonieme toegang. In zo’n geval dien je één loginnaam op te geven om vervolgens informatie in het adressenboek te zoeken. In de meeste gevallen kan je de volgende velden echter leeg laten.',
730
+    'texte_admin_effacer_01' => 'Met dit commando vernietig je de <i>volledige</i> inhoud van de database,
731 731
 inbegrepen <i>alle</i> toegangsrechten voor redacteurs en beheerders. Nadat je dit uitgevoerd hebt, dien je de herinstallatie van SPIP te starten om een volledig nieuwe database aan te maken met toegangsrechten voor een eerste beheerder.',
732
-	'texte_adresse_annuaire_1' => '(Als de map geïnstalleerd is op dezelfde computer als je website, is het waarschijnlijk «localhost».)',
733
-	'texte_ajout_auteur' => 'Deze auteur werd aan het artikel toegevoegd:',
734
-	'texte_annuaire_ldap_1' => 'Als je toegang hebt tot een LDAP-adresboek, kan je dit gebruiken om automatisch gebruikers in te voeren in SPIP.',
735
-	'texte_article_statut' => 'Dit artikel is:',
736
-	'texte_article_virtuel' => 'Virtueel artikel',
737
-	'texte_article_virtuel_reference' => '<b>Virtueel artikel:</b> gekoppeld artikel in je SPIP site maar doorgestuurd naar een andere URL. Verwijder de URL om de doorverwijzing te stoppen.',
738
-	'texte_aucun_resultat_auteur' => 'Geen resultaat voor "@cherche_auteur@"',
739
-	'texte_auteur_messagerie' => 'Deze website kan een lijst met auteurs die op dat moment aangelogd zijn, tonen. Het is mogelijk om direkt berichten opsturen en ontvangen tussen de auteurs.  Je kan kiezen om niet in deze lijst te verschijnen (je wordt dan « onzichtbaar » voor de andere gebruikers).',
740
-	'texte_auteurs' => 'DE AUTEURS',
741
-	'texte_choix_base_1' => 'Kies je database:',
742
-	'texte_choix_base_2' => 'De SQL server bevat meerdere databases.',
743
-	'texte_choix_base_3' => '<b>Kies</b> hierna die welke door jouw provider werd toegekend:',
744
-	'texte_choix_table_prefix' => 'Voorvoegsel van de tabellen:',
745
-	'texte_compte_element' => '@count@ element',
746
-	'texte_compte_elements' => '@count@ elementen',
747
-	'texte_conflit_edition_correction' => 'Controleer hieronder de verschillen tussen beide versies van de tekst; je kunt eveneens jouw wijzigingen kopiëren en opnieuw beginnen.',
748
-	'texte_connexion_mysql' => 'Raadpleegt de inlichtingen die door jouw provider worden verstrekt: je moet er de databaseserver vinden die men voorstelt en jouw persoonlijke identificaties om je erop aan te melden.',
749
-	'texte_contenu_article' => '(Inhoud van het artikel in enkele woorden.)',
750
-	'texte_contenu_articles' => 'Naargelang de opmaak van je website kan je beslissen sommige elementen van een artikel
732
+    'texte_adresse_annuaire_1' => '(Als de map geïnstalleerd is op dezelfde computer als je website, is het waarschijnlijk «localhost».)',
733
+    'texte_ajout_auteur' => 'Deze auteur werd aan het artikel toegevoegd:',
734
+    'texte_annuaire_ldap_1' => 'Als je toegang hebt tot een LDAP-adresboek, kan je dit gebruiken om automatisch gebruikers in te voeren in SPIP.',
735
+    'texte_article_statut' => 'Dit artikel is:',
736
+    'texte_article_virtuel' => 'Virtueel artikel',
737
+    'texte_article_virtuel_reference' => '<b>Virtueel artikel:</b> gekoppeld artikel in je SPIP site maar doorgestuurd naar een andere URL. Verwijder de URL om de doorverwijzing te stoppen.',
738
+    'texte_aucun_resultat_auteur' => 'Geen resultaat voor "@cherche_auteur@"',
739
+    'texte_auteur_messagerie' => 'Deze website kan een lijst met auteurs die op dat moment aangelogd zijn, tonen. Het is mogelijk om direkt berichten opsturen en ontvangen tussen de auteurs.  Je kan kiezen om niet in deze lijst te verschijnen (je wordt dan « onzichtbaar » voor de andere gebruikers).',
740
+    'texte_auteurs' => 'DE AUTEURS',
741
+    'texte_choix_base_1' => 'Kies je database:',
742
+    'texte_choix_base_2' => 'De SQL server bevat meerdere databases.',
743
+    'texte_choix_base_3' => '<b>Kies</b> hierna die welke door jouw provider werd toegekend:',
744
+    'texte_choix_table_prefix' => 'Voorvoegsel van de tabellen:',
745
+    'texte_compte_element' => '@count@ element',
746
+    'texte_compte_elements' => '@count@ elementen',
747
+    'texte_conflit_edition_correction' => 'Controleer hieronder de verschillen tussen beide versies van de tekst; je kunt eveneens jouw wijzigingen kopiëren en opnieuw beginnen.',
748
+    'texte_connexion_mysql' => 'Raadpleegt de inlichtingen die door jouw provider worden verstrekt: je moet er de databaseserver vinden die men voorstelt en jouw persoonlijke identificaties om je erop aan te melden.',
749
+    'texte_contenu_article' => '(Inhoud van het artikel in enkele woorden.)',
750
+    'texte_contenu_articles' => 'Naargelang de opmaak van je website kan je beslissen sommige elementen van een artikel
751 751
  wel of niet te gebruiken.
752 752
  Geef op de lijst hieronder aan welke elementen je wil gebruiken.',
753
-	'texte_crash_base' => 'Als je database gecrashed is,
753
+    'texte_crash_base' => 'Als je database gecrashed is,
754 754
   kan je een automatisch herstel proberen.',
755
-	'texte_creer_rubrique' => 'Alvorens artikelen te kunnen schrijven, <br/> moet je een rubriek aanmaken.',
756
-	'texte_date_creation_article' => 'DATUM VAN AANMAKEN VAN HET ARTIKEL:',
757
-	'texte_date_creation_objet' => 'Aanmaakdatum:', # on ajoute le &quot;:&quot;
758
-	'texte_date_publication_anterieure' => 'Datum van eerdere redactie:',
759
-	'texte_date_publication_anterieure_nonaffichee' => 'Verberg de datum van eerdere redactie.',
760
-	'texte_date_publication_article' => 'DATUM VAN ONLINE PUBLICATIE:',
761
-	'texte_date_publication_objet' => 'Datum van online publicatie:',
762
-	'texte_definir_comme_traduction_rubrique' => 'Deze rubriek is een vertaling van rubrieknummer:',
763
-	'texte_descriptif_rapide' => 'Korte beschrijving.',
764
-	'texte_effacer_base' => 'Verwijder de SPIP database',
765
-	'texte_effacer_statistiques' => 'De statistieken wissen',
766
-	'texte_en_cours_validation' => 'De onderstaande inhoud wacht op goedkeuring.',
767
-	'texte_enrichir_mise_a_jour' => 'De opmaak van een tekst kan gebeuren met behulp van zogeheten «typografische snelkoppelingen».',
768
-	'texte_fichier_authent' => 'SPIP moet er dan speciale bestanden <tt>.htpasswd</tt>
755
+    'texte_creer_rubrique' => 'Alvorens artikelen te kunnen schrijven, <br/> moet je een rubriek aanmaken.',
756
+    'texte_date_creation_article' => 'DATUM VAN AANMAKEN VAN HET ARTIKEL:',
757
+    'texte_date_creation_objet' => 'Aanmaakdatum:', # on ajoute le &quot;:&quot;
758
+    'texte_date_publication_anterieure' => 'Datum van eerdere redactie:',
759
+    'texte_date_publication_anterieure_nonaffichee' => 'Verberg de datum van eerdere redactie.',
760
+    'texte_date_publication_article' => 'DATUM VAN ONLINE PUBLICATIE:',
761
+    'texte_date_publication_objet' => 'Datum van online publicatie:',
762
+    'texte_definir_comme_traduction_rubrique' => 'Deze rubriek is een vertaling van rubrieknummer:',
763
+    'texte_descriptif_rapide' => 'Korte beschrijving.',
764
+    'texte_effacer_base' => 'Verwijder de SPIP database',
765
+    'texte_effacer_statistiques' => 'De statistieken wissen',
766
+    'texte_en_cours_validation' => 'De onderstaande inhoud wacht op goedkeuring.',
767
+    'texte_enrichir_mise_a_jour' => 'De opmaak van een tekst kan gebeuren met behulp van zogeheten «typografische snelkoppelingen».',
768
+    'texte_fichier_authent' => 'SPIP moet er dan speciale bestanden <tt>.htpasswd</tt>
769 769
   en <tt>.htpasswd-admin</tt> in de directory @dossier@ ?</b><p>
770 770
  Deze bestanden die je kunt gebruiken om toegang te beperken tot 
771 771
  auteurs en beheerders in andere delen van je site 
772 772
    (externe programma statistieken, bijvoorbeeld).</p><p>
773 773
 Als dit geen geen nut heeft, kunt je de standaard instellingen behouden (geen nieuw bestand maken).</p>',
774
-	'texte_informations_personnelles_1' => 'Nu zal het systeem een persoonlijke toegang tot de site voor je creëren.',
775
-	'texte_informations_personnelles_2' => '(Nota: als het een herinstallatie betreft en je toegangscode blijkt nog steeds te werken, kan je',
776
-	'texte_introductif_article' => '(Inleidende tekst op het artikel.)',
777
-	'texte_jeu_caractere' => 'Het is aan te raden op je site het universele alfabet (<tt>utf-8</tt>) te gebruiken: dit laat de weergave van teksten toe in alle talen en stelt geen compatibilieitsprobleem met de recente browsers.',
778
-	'texte_jeu_caractere_3' => 'Je site is momenteel geïnstalleerd in deze tekenset:',
779
-	'texte_jeu_caractere_4' => 'Indien dit niet overeenkomt met je werkelijke gegevens (bvb bij het terugzetten van je database), of als je <em>deze site opstart</em> en met een andere tekenset van start wil gaan, geef dat dan hieronder aan:',
780
-	'texte_login_ldap_1' => '(Leeg laten voor een anonieme login, of een volledig pad invullen, bijvoorbeeld «<tt>uid=janssen, ou=users, dc=mijn-domein, dc=com</tt>».)',
781
-	'texte_login_precaution' => 'LET OP! Met deze login ben je momenteel aangemeld.
774
+    'texte_informations_personnelles_1' => 'Nu zal het systeem een persoonlijke toegang tot de site voor je creëren.',
775
+    'texte_informations_personnelles_2' => '(Nota: als het een herinstallatie betreft en je toegangscode blijkt nog steeds te werken, kan je',
776
+    'texte_introductif_article' => '(Inleidende tekst op het artikel.)',
777
+    'texte_jeu_caractere' => 'Het is aan te raden op je site het universele alfabet (<tt>utf-8</tt>) te gebruiken: dit laat de weergave van teksten toe in alle talen en stelt geen compatibilieitsprobleem met de recente browsers.',
778
+    'texte_jeu_caractere_3' => 'Je site is momenteel geïnstalleerd in deze tekenset:',
779
+    'texte_jeu_caractere_4' => 'Indien dit niet overeenkomt met je werkelijke gegevens (bvb bij het terugzetten van je database), of als je <em>deze site opstart</em> en met een andere tekenset van start wil gaan, geef dat dan hieronder aan:',
780
+    'texte_login_ldap_1' => '(Leeg laten voor een anonieme login, of een volledig pad invullen, bijvoorbeeld «<tt>uid=janssen, ou=users, dc=mijn-domein, dc=com</tt>».)',
781
+    'texte_login_precaution' => 'LET OP! Met deze login ben je momenteel aangemeld.
782 782
  Gebruik dit formulier met de nodige voorzichtigheid...',
783
-	'texte_messagerie_agenda' => 'Een berichtendienst maakt het de redacteuren van de site mogelijk om in de privé ruimte berichten uit te wisselen. De dienst is gekoppeld aan een agenda.',
784
-	'texte_mise_a_niveau_base_1' => 'Je hebt zonet de SPIP bestanden vernieuwd. Nu dien je
783
+    'texte_messagerie_agenda' => 'Een berichtendienst maakt het de redacteuren van de site mogelijk om in de privé ruimte berichten uit te wisselen. De dienst is gekoppeld aan een agenda.',
784
+    'texte_mise_a_niveau_base_1' => 'Je hebt zonet de SPIP bestanden vernieuwd. Nu dien je
785 785
  eveneens de database te updaten.',
786
-	'texte_modifier_article' => 'Wijzigen artikel:',
787
-	'texte_multilinguisme' => 'Als je graag objecten in verschillende talen zou willen beheren, met een complexe navigatie, kan je een taalkeuzemenu toevoegen bij deze objecten, i.f.v de organisatie van je site.',
788
-	'texte_multilinguisme_trad' => 'Je kan eveneens een systeem in werking stellen voor het beheer van koppelingen tussen de verschillende vertalingen van de objecten.',
789
-	'texte_non_compresse' => '<i>niet gecomprimeerd</i> (de server ondersteunt deze functionaliteit niet)',
790
-	'texte_nouvelle_version_spip_1' => 'Je hebt een nieuwe versie van SPIP geïnstalleerd.',
791
-	'texte_nouvelle_version_spip_2' => 'Deze nieuwe SPIP-versie vereist een  grondiger update dan gewoonlijk. Als je webmaster bent van deze site, verwijder dan het bestand @connect@ en hervat de installatie om de verbindingsgegevens met de database te vernieuwen.<p> (NB: als je de verbindingsgegevens niet meer kent, kan je best eerst een blik werpen op het bestand @connect@ alvorens het te verwijderen...)</p>', # Pas de modif trouvée, la trad reste valable.
792
-	'texte_operation_echec' => 'Ga terug naar de vorige pagina, selecteer een andere database of maak een nieuwe aan. Kijk nog eens alle gegevens na die je van je provider hebt ontvangen.',
793
-	'texte_plus_trois_car' => 'meer dan 3 karakters',
794
-	'texte_plusieurs_articles' => 'Meerdere auteurs gevonden voor "@cherche_auteur@":',
795
-	'texte_port_annuaire' => '(De opgegeven standaardwaarde is meestal de juiste.)',
796
-	'texte_presente_plugin' => 'Deze pagina toont de lijst van beschikbare plugins op deze site. Je kan de nodige plugins activeren door het overeenkomstige vakje aan te kruisen.',
797
-	'texte_proposer_publication' => 'Wanneer je artikel gereed is, <br />kun je de publicatie ervan voorstellen.',
798
-	'texte_proxy' => 'In bepaalde gevallen (intranet, beschermde netwerken), zijn de verwijderde plaatsen (SPIP documentatie , georganiseerde plaatsen, enz.) toegankelijk slechts door een <i>proxy HTTP</i>. Eventueel geeft hieronder zijn adres aan, onder de vorm @proxy_in_actie@. Over het algemeen zul je dit hokje leeg laten.',
799
-	'texte_publication_articles_post_dates' => 'Hoe dient SPIP zich op te stellen ten opzichte van artikelen waarvan de
786
+    'texte_modifier_article' => 'Wijzigen artikel:',
787
+    'texte_multilinguisme' => 'Als je graag objecten in verschillende talen zou willen beheren, met een complexe navigatie, kan je een taalkeuzemenu toevoegen bij deze objecten, i.f.v de organisatie van je site.',
788
+    'texte_multilinguisme_trad' => 'Je kan eveneens een systeem in werking stellen voor het beheer van koppelingen tussen de verschillende vertalingen van de objecten.',
789
+    'texte_non_compresse' => '<i>niet gecomprimeerd</i> (de server ondersteunt deze functionaliteit niet)',
790
+    'texte_nouvelle_version_spip_1' => 'Je hebt een nieuwe versie van SPIP geïnstalleerd.',
791
+    'texte_nouvelle_version_spip_2' => 'Deze nieuwe SPIP-versie vereist een  grondiger update dan gewoonlijk. Als je webmaster bent van deze site, verwijder dan het bestand @connect@ en hervat de installatie om de verbindingsgegevens met de database te vernieuwen.<p> (NB: als je de verbindingsgegevens niet meer kent, kan je best eerst een blik werpen op het bestand @connect@ alvorens het te verwijderen...)</p>', # Pas de modif trouvée, la trad reste valable.
792
+    'texte_operation_echec' => 'Ga terug naar de vorige pagina, selecteer een andere database of maak een nieuwe aan. Kijk nog eens alle gegevens na die je van je provider hebt ontvangen.',
793
+    'texte_plus_trois_car' => 'meer dan 3 karakters',
794
+    'texte_plusieurs_articles' => 'Meerdere auteurs gevonden voor "@cherche_auteur@":',
795
+    'texte_port_annuaire' => '(De opgegeven standaardwaarde is meestal de juiste.)',
796
+    'texte_presente_plugin' => 'Deze pagina toont de lijst van beschikbare plugins op deze site. Je kan de nodige plugins activeren door het overeenkomstige vakje aan te kruisen.',
797
+    'texte_proposer_publication' => 'Wanneer je artikel gereed is, <br />kun je de publicatie ervan voorstellen.',
798
+    'texte_proxy' => 'In bepaalde gevallen (intranet, beschermde netwerken), zijn de verwijderde plaatsen (SPIP documentatie , georganiseerde plaatsen, enz.) toegankelijk slechts door een <i>proxy HTTP</i>. Eventueel geeft hieronder zijn adres aan, onder de vorm @proxy_in_actie@. Over het algemeen zul je dit hokje leeg laten.',
799
+    'texte_publication_articles_post_dates' => 'Hoe dient SPIP zich op te stellen ten opzichte van artikelen waarvan de
800 800
   publicatiedatum is vastgelegd op een
801 801
   toekomstige datum?',
802
-	'texte_rappel_selection_champs' => '[Vergeet niet de juiste keuze te maken voor dit veld.]',
803
-	'texte_recalcul_page' => 'Als je slechts één pagina wilt vernieuwen, doe je dit op de publieke site met de knop  «vernieuwen».',
804
-	'texte_recuperer_base' => 'De database herstellen',
805
-	'texte_reference_mais_redirige' => 'Gekoppeld artikel in je SPIP site, maar doorgestuurd naar een andere URL.',
806
-	'texte_requetes_echouent' => '<b>Wanneer bepaalde SQL-query’s systematisch crashen zonder duidelijke reden, is dit mogelijk te wijten aan de database zelf.</b><p> Je SQL Server heeft een herstelmogelijkheid van tabellen die beschadigd zijn door een crash. Hier kunt je proberen dit te repareren. Wanneer dat niet lukt, bewaar dan een kopie van het scherm dat aanwijzingen over de problemen bevat...</p><p>Als het probleem zich blijft voordoen, contact opnemen met je provider.</p>',
807
-	'texte_selection_langue_principale' => 'Hieronder kan je de «basistaal» van de site kiezen. Deze keuze verplicht je - gelukkig! - niet om artikelen in deze taal te schrijven, maar laat wel toe om het volgende te bepalen:
802
+    'texte_rappel_selection_champs' => '[Vergeet niet de juiste keuze te maken voor dit veld.]',
803
+    'texte_recalcul_page' => 'Als je slechts één pagina wilt vernieuwen, doe je dit op de publieke site met de knop  «vernieuwen».',
804
+    'texte_recuperer_base' => 'De database herstellen',
805
+    'texte_reference_mais_redirige' => 'Gekoppeld artikel in je SPIP site, maar doorgestuurd naar een andere URL.',
806
+    'texte_requetes_echouent' => '<b>Wanneer bepaalde SQL-query’s systematisch crashen zonder duidelijke reden, is dit mogelijk te wijten aan de database zelf.</b><p> Je SQL Server heeft een herstelmogelijkheid van tabellen die beschadigd zijn door een crash. Hier kunt je proberen dit te repareren. Wanneer dat niet lukt, bewaar dan een kopie van het scherm dat aanwijzingen over de problemen bevat...</p><p>Als het probleem zich blijft voordoen, contact opnemen met je provider.</p>',
807
+    'texte_selection_langue_principale' => 'Hieronder kan je de «basistaal» van de site kiezen. Deze keuze verplicht je - gelukkig! - niet om artikelen in deze taal te schrijven, maar laat wel toe om het volgende te bepalen:
808 808
  <ul><li> het standaardformaat van de data op de publieke site;</li>
809 809
  <li> de aard van de typografische motor die SPIP dient te gebruiken om teksten te tonen;</li>
810 810
  <li> de taal die gebruikt moet worden op de formulieren van de publieke site;</li>
811 811
  <li> de taal die standaard wordt voorgesteld in het privé-gedeelte.</li></ul>',
812
-	'texte_sous_titre' => 'Ondertitel',
813
-	'texte_statistiques_visites' => '(donkere balkjes:  zondag / donkere lijn: evolutie van het gemiddelde)',
814
-	'texte_statut_attente_validation' => 'wachten op goedkeuring',
815
-	'texte_statut_publies' => 'online geplaatst',
816
-	'texte_statut_refuses' => 'geweigerd',
817
-	'texte_suppression_fichiers' => 'Gebruik dit commando om alle bestanden uit de  buffer (cache) te verwijderen.
812
+    'texte_sous_titre' => 'Ondertitel',
813
+    'texte_statistiques_visites' => '(donkere balkjes:  zondag / donkere lijn: evolutie van het gemiddelde)',
814
+    'texte_statut_attente_validation' => 'wachten op goedkeuring',
815
+    'texte_statut_publies' => 'online geplaatst',
816
+    'texte_statut_refuses' => 'geweigerd',
817
+    'texte_suppression_fichiers' => 'Gebruik dit commando om alle bestanden uit de  buffer (cache) te verwijderen.
818 818
 Dit kan handig zijn als je veel pagina’s hebt gewijzigd, de layout of de structuur van de site hebt veranderd.
819 819
  De nieuwste pagina’s worden dan getoond en de buffer wordt opnieuw opgebouwd.',
820
-	'texte_sur_titre' => 'Opschrift',
821
-	'texte_table_ok' => ': deze tabel is OK.',
822
-	'texte_tentative_recuperation' => 'Poging tot herstel.',
823
-	'texte_tenter_reparation' => 'Poging tot herstel van de database',
824
-	'texte_test_proxy' => 'Om de proxy te testen kan je hier het adres geven van de website die je wil bereiken.',
825
-	'texte_titre_02' => 'Titel:',
826
-	'texte_titre_obligatoire' => '<b>Titel</b> [verplicht]',
827
-	'texte_travail_article' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt',
828
-	'texte_travail_collaboratif' => 'Als het vaak gebeurt dat meerdere redacteurs aanhetzelfde artikel werken, kan het systeem tonen welke artikelen er recent «geopend» werden
820
+    'texte_sur_titre' => 'Opschrift',
821
+    'texte_table_ok' => ': deze tabel is OK.',
822
+    'texte_tentative_recuperation' => 'Poging tot herstel.',
823
+    'texte_tenter_reparation' => 'Poging tot herstel van de database',
824
+    'texte_test_proxy' => 'Om de proxy te testen kan je hier het adres geven van de website die je wil bereiken.',
825
+    'texte_titre_02' => 'Titel:',
826
+    'texte_titre_obligatoire' => '<b>Titel</b> [verplicht]',
827
+    'texte_travail_article' => '@nom_auteur_modif@ heeft @date_diff@ minuten geleden aan dit artikel gewerkt',
828
+    'texte_travail_collaboratif' => 'Als het vaak gebeurt dat meerdere redacteurs aanhetzelfde artikel werken, kan het systeem tonen welke artikelen er recent «geopend» werden
829 829
  om te vermijden dat simultaan
830 830
  wijzigingen worden aangebracht.
831 831
  Deze optie is niet standaard geactiveerd om te vermijden dat er teveel waarschuwingsberichten op het
832 832
  scherm verschijnen.',
833
-	'texte_vide' => 'leeg',
834
-	'texte_vider_cache' => 'Cache leegmaken',
835
-	'titre_admin_tech' => 'Technisch onderhoud',
836
-	'titre_admin_vider' => 'Technisch onderhoud',
837
-	'titre_ajouter_un_auteur' => 'Voeg een auteur toe',
838
-	'titre_ajouter_un_mot' => 'Voeg een trefwoord toe',
839
-	'titre_cadre_afficher_article' => 'Artikelen tonen',
840
-	'titre_cadre_afficher_traductions' => 'Toon de status van de vertalingen voor de volgende talen:',
841
-	'titre_cadre_ajouter_auteur' => 'EEN AUTEUR TOEVOEGEN:',
842
-	'titre_cadre_interieur_rubrique' => 'Binnen rubriek',
843
-	'titre_cadre_numero_auteur' => 'AUTEUR NUMMER',
844
-	'titre_cadre_numero_objet' => '@objet@ NUMMER:',
845
-	'titre_cadre_signature_obligatoire' => '<b>Handtekening</b> [Verplicht]<br />',
846
-	'titre_config_contenu_notifications' => 'Kennisgevingen',
847
-	'titre_config_contenu_prive' => 'In het privé gedeelte',
848
-	'titre_config_contenu_public' => 'Op de openbare site',
849
-	'titre_config_fonctions' => 'Configuratie van de site',
850
-	'titre_config_langage' => 'Stel de taal in',
851
-	'titre_configuration' => 'Configuratie van de site',
852
-	'titre_configurer_preferences' => 'Configureer je voorkeuren',
853
-	'titre_configurer_preferences_menus' => 'Configureer je menuvoorkeuren',
854
-	'titre_conflit_edition' => 'Conflict bij de uitgave',
855
-	'titre_connexion_ldap' => 'Opties: <b>Je LDAP-verbinding</b>',
856
-	'titre_groupe_mots' => 'TREFWOORDENGROEP:',
857
-	'titre_identite_site' => 'Identiteit van de site',
858
-	'titre_langue_article' => 'Taal van het artikel',
859
-	'titre_langue_rubrique' => 'Taal van de rubriek',
860
-	'titre_langue_trad_article' => 'TAAL EN VERTALINGEN VAN HET ARTIKEL',
861
-	'titre_les_articles' => 'ARTIKELEN',
862
-	'titre_messagerie_agenda' => 'Boodschappen en agenda',
863
-	'titre_naviguer_dans_le_site' => 'Bezoek de site...',
864
-	'titre_nouvelle_rubrique' => 'Nieuwe rubriek',
865
-	'titre_numero_rubrique' => 'RUBRIEKNUMMER:',
866
-	'titre_page_articles_edit' => 'Wijzigen: @titre@',
867
-	'titre_page_articles_page' => 'Artikelen',
868
-	'titre_page_articles_tous' => 'Volledige site',
869
-	'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
870
-	'titre_page_config_contenu' => 'Websiteconfiguratie',
871
-	'titre_page_delete_all' => 'Volledige en onomkeerbare verwijdering',
872
-	'titre_page_recherche' => 'Zoekresultaat voor @recherche@ ',
873
-	'titre_page_statistiques_referers' => 'Statistieken (per referer)',
874
-	'titre_page_upgrade' => 'Bijwerken van SPIP',
875
-	'titre_preference_menus_favoris' => 'Favoriete menu’s',
876
-	'titre_publication_articles_post_dates' => 'Publicatie van postgedateerde artikelen',
877
-	'titre_reparation' => 'Herstel',
878
-	'titre_suivi_petition' => 'Opvolging van petities',
879
-	'tls_ldap' => 'Transport Layer Security:',
880
-	'trad_article_traduction' => 'Alle versies van dit artikel:',
881
-	'trad_delier' => 'Niet meer aan deze vertalingen koppelen',
882
-	'trad_lier' => 'Dit artikel is een vertaling van artikelnummer:',
883
-	'trad_new' => 'Een nieuwe vertaling schrijven',
833
+    'texte_vide' => 'leeg',
834
+    'texte_vider_cache' => 'Cache leegmaken',
835
+    'titre_admin_tech' => 'Technisch onderhoud',
836
+    'titre_admin_vider' => 'Technisch onderhoud',
837
+    'titre_ajouter_un_auteur' => 'Voeg een auteur toe',
838
+    'titre_ajouter_un_mot' => 'Voeg een trefwoord toe',
839
+    'titre_cadre_afficher_article' => 'Artikelen tonen',
840
+    'titre_cadre_afficher_traductions' => 'Toon de status van de vertalingen voor de volgende talen:',
841
+    'titre_cadre_ajouter_auteur' => 'EEN AUTEUR TOEVOEGEN:',
842
+    'titre_cadre_interieur_rubrique' => 'Binnen rubriek',
843
+    'titre_cadre_numero_auteur' => 'AUTEUR NUMMER',
844
+    'titre_cadre_numero_objet' => '@objet@ NUMMER:',
845
+    'titre_cadre_signature_obligatoire' => '<b>Handtekening</b> [Verplicht]<br />',
846
+    'titre_config_contenu_notifications' => 'Kennisgevingen',
847
+    'titre_config_contenu_prive' => 'In het privé gedeelte',
848
+    'titre_config_contenu_public' => 'Op de openbare site',
849
+    'titre_config_fonctions' => 'Configuratie van de site',
850
+    'titre_config_langage' => 'Stel de taal in',
851
+    'titre_configuration' => 'Configuratie van de site',
852
+    'titre_configurer_preferences' => 'Configureer je voorkeuren',
853
+    'titre_configurer_preferences_menus' => 'Configureer je menuvoorkeuren',
854
+    'titre_conflit_edition' => 'Conflict bij de uitgave',
855
+    'titre_connexion_ldap' => 'Opties: <b>Je LDAP-verbinding</b>',
856
+    'titre_groupe_mots' => 'TREFWOORDENGROEP:',
857
+    'titre_identite_site' => 'Identiteit van de site',
858
+    'titre_langue_article' => 'Taal van het artikel',
859
+    'titre_langue_rubrique' => 'Taal van de rubriek',
860
+    'titre_langue_trad_article' => 'TAAL EN VERTALINGEN VAN HET ARTIKEL',
861
+    'titre_les_articles' => 'ARTIKELEN',
862
+    'titre_messagerie_agenda' => 'Boodschappen en agenda',
863
+    'titre_naviguer_dans_le_site' => 'Bezoek de site...',
864
+    'titre_nouvelle_rubrique' => 'Nieuwe rubriek',
865
+    'titre_numero_rubrique' => 'RUBRIEKNUMMER:',
866
+    'titre_page_articles_edit' => 'Wijzigen: @titre@',
867
+    'titre_page_articles_page' => 'Artikelen',
868
+    'titre_page_articles_tous' => 'Volledige site',
869
+    'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
870
+    'titre_page_config_contenu' => 'Websiteconfiguratie',
871
+    'titre_page_delete_all' => 'Volledige en onomkeerbare verwijdering',
872
+    'titre_page_recherche' => 'Zoekresultaat voor @recherche@ ',
873
+    'titre_page_statistiques_referers' => 'Statistieken (per referer)',
874
+    'titre_page_upgrade' => 'Bijwerken van SPIP',
875
+    'titre_preference_menus_favoris' => 'Favoriete menu’s',
876
+    'titre_publication_articles_post_dates' => 'Publicatie van postgedateerde artikelen',
877
+    'titre_reparation' => 'Herstel',
878
+    'titre_suivi_petition' => 'Opvolging van petities',
879
+    'tls_ldap' => 'Transport Layer Security:',
880
+    'trad_article_traduction' => 'Alle versies van dit artikel:',
881
+    'trad_delier' => 'Niet meer aan deze vertalingen koppelen',
882
+    'trad_lier' => 'Dit artikel is een vertaling van artikelnummer:',
883
+    'trad_new' => 'Een nieuwe vertaling schrijven',
884 884
 
885
-	// U
886
-	'utf8_convert_erreur_orig' => 'Fout : de karakterset @charset@ wordt niet ondersteund.',
885
+    // U
886
+    'utf8_convert_erreur_orig' => 'Fout : de karakterset @charset@ wordt niet ondersteund.',
887 887
 
888
-	// V
889
-	'version' => 'Versie:',
888
+    // V
889
+    'version' => 'Versie:',
890 890
 ];
Please login to merge, or discard this patch.
ecrire/lang/spip_eo.php 1 patch
Indentation   +656 added lines, -656 removed lines patch added patch discarded remove patch
@@ -5,579 +5,579 @@  discard block
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'access_interface_graphique' => 'Reen al kompleta grafika interfaco',
10
-	'access_mode_texte' => 'Afiŝi la simpligitan tekstan interfacon',
11
-	'admin_debug' => 'erarserĉilo',
12
-	'admin_modifier_article' => 'Modifu tiun ĉi artikolon',
13
-	'admin_modifier_auteur' => 'Modifu tiun ĉi aŭtoron',
14
-	'admin_modifier_breve' => 'Modifu tiun ĉi fulm-informon',
15
-	'admin_modifier_mot' => 'Modifu tiun ĉi ŝlosilvorton',
16
-	'admin_modifier_rubrique' => 'Modifu tiun ĉi rubrikon',
17
-	'admin_recalculer' => 'Rekalkulu tiun ĉi paĝon',
18
-	'afficher_calendrier' => 'Montri la kalendaro',
19
-	'afficher_trad' => 'afiŝi la tradukojn',
20
-	'alerte_maj_impossible' => '<b>Alarmo !</b> La ĝisdatigo de la SQL-datenbazo al versio @version@ ne eblas pro datenbazo-modif-rajtaj kialoj. Bonvolu kontakti vian retgastiganton.',
21
-	'alerte_modif_info_concourante' => 'ATENTU : Tiu ĉi informo estis modifita de alia homo. La nuna stato estas :',
22
-	'analyse_xml' => 'XML analizo',
23
-	'annuler' => 'Nuligi',
24
-	'antispam_champ_vide' => 'Bonvolu forlasi tiun tajpujon malplena :',
25
-	'articles_recents' => 'La plej freŝaj artikoloj',
26
-	'avis_1_erreur_saisie' => 'Estas 1 eraro en via tajpado, bonvolu kontroli ĝin.',
27
-	'avis_archive_incorrect' => 'Tiu arkivo ne estas SPIP-dosiero',
28
-	'avis_archive_invalide' => 'Tiu arkiva dosiero ne validas',
29
-	'avis_attention' => 'ATENTU !',
30
-	'avis_champ_incorrect_type_objet' => 'Erara tajpuja nomo @name@ por la objekto de tipo @type@',
31
-	'avis_colonne_inexistante' => 'La kolumno @col@ ne ekzistas',
32
-	'avis_erreur' => 'Eraro : vidu ĉi-sube',
33
-	'avis_erreur_connexion' => 'Konekt-eraro',
34
-	'avis_erreur_cookie' => 'kuketo-problemo',
35
-	'avis_erreur_fonction_contexte' => 'Program-eraro. Tiu funkcio ne alvokeblas en tiu ĉi kunteksto.',
36
-	'avis_erreur_mysql' => 'SQL-eraro',
37
-	'avis_erreur_sauvegarde' => 'Konservo-eraro (@type@ @id_objet@) ! ',
38
-	'avis_erreur_visiteur' => 'Alir-problemo al la privata spaco',
39
-	'avis_nb_erreurs_saisie' => 'Estas @nb@ eraroj en via tajpado, bonvolu kontroli ilin.',
8
+    // A
9
+    'access_interface_graphique' => 'Reen al kompleta grafika interfaco',
10
+    'access_mode_texte' => 'Afiŝi la simpligitan tekstan interfacon',
11
+    'admin_debug' => 'erarserĉilo',
12
+    'admin_modifier_article' => 'Modifu tiun ĉi artikolon',
13
+    'admin_modifier_auteur' => 'Modifu tiun ĉi aŭtoron',
14
+    'admin_modifier_breve' => 'Modifu tiun ĉi fulm-informon',
15
+    'admin_modifier_mot' => 'Modifu tiun ĉi ŝlosilvorton',
16
+    'admin_modifier_rubrique' => 'Modifu tiun ĉi rubrikon',
17
+    'admin_recalculer' => 'Rekalkulu tiun ĉi paĝon',
18
+    'afficher_calendrier' => 'Montri la kalendaro',
19
+    'afficher_trad' => 'afiŝi la tradukojn',
20
+    'alerte_maj_impossible' => '<b>Alarmo !</b> La ĝisdatigo de la SQL-datenbazo al versio @version@ ne eblas pro datenbazo-modif-rajtaj kialoj. Bonvolu kontakti vian retgastiganton.',
21
+    'alerte_modif_info_concourante' => 'ATENTU : Tiu ĉi informo estis modifita de alia homo. La nuna stato estas :',
22
+    'analyse_xml' => 'XML analizo',
23
+    'annuler' => 'Nuligi',
24
+    'antispam_champ_vide' => 'Bonvolu forlasi tiun tajpujon malplena :',
25
+    'articles_recents' => 'La plej freŝaj artikoloj',
26
+    'avis_1_erreur_saisie' => 'Estas 1 eraro en via tajpado, bonvolu kontroli ĝin.',
27
+    'avis_archive_incorrect' => 'Tiu arkivo ne estas SPIP-dosiero',
28
+    'avis_archive_invalide' => 'Tiu arkiva dosiero ne validas',
29
+    'avis_attention' => 'ATENTU !',
30
+    'avis_champ_incorrect_type_objet' => 'Erara tajpuja nomo @name@ por la objekto de tipo @type@',
31
+    'avis_colonne_inexistante' => 'La kolumno @col@ ne ekzistas',
32
+    'avis_erreur' => 'Eraro : vidu ĉi-sube',
33
+    'avis_erreur_connexion' => 'Konekt-eraro',
34
+    'avis_erreur_cookie' => 'kuketo-problemo',
35
+    'avis_erreur_fonction_contexte' => 'Program-eraro. Tiu funkcio ne alvokeblas en tiu ĉi kunteksto.',
36
+    'avis_erreur_mysql' => 'SQL-eraro',
37
+    'avis_erreur_sauvegarde' => 'Konservo-eraro (@type@ @id_objet@) ! ',
38
+    'avis_erreur_visiteur' => 'Alir-problemo al la privata spaco',
39
+    'avis_nb_erreurs_saisie' => 'Estas @nb@ eraroj en via tajpado, bonvolu kontroli ilin.',
40 40
 
41
-	// B
42
-	'barre_a_accent_grave' => 'Entajpi malakut-akcentan ĉefliteran A',
43
-	'barre_aide' => 'Uzu la tipografiajn rapidligilojn por pliriĉigi vian enpaĝigon',
44
-	'barre_e_accent_aigu' => 'Entajpi malakut-akcentan ĉefliteran E',
45
-	'barre_eo' => 'Entajpi E en ĉefliteran O',
46
-	'barre_eo_maj' => 'Entajpi E en la ĉeflitero O',
47
-	'barre_euro' => 'Entajpi la simbolon €',
48
-	'barre_gras' => '{{Grasigi}}',
49
-	'barre_guillemets' => 'Flanki per « citiloj »',
50
-	'barre_guillemets_simples' => 'Flanki per “simplaj citiloj”',
51
-	'barre_intertitre' => '{{{Intertitoligi}}}',
52
-	'barre_italic' => '{Kursivigi}',
53
-	'barre_lien' => 'Transformi al [hiperligo->http://...]',
54
-	'barre_lien_input' => 'Bonvolu indiki la retadreson de via ligilo (vi povas indiki ret-adreson tian, kia http://www.monsite.com aŭ simple indiki la numeron de artikolo de tiu retejo.',
55
-	'barre_note' => 'Transformi al [[sub-paĝan noton]]',
56
-	'barre_paragraphe' => 'Krei paragrafon',
57
-	'barre_quote' => '<quote>Citi mesaĝon</quote>',
58
-	'bouton_changer' => 'Ŝanĝi',
59
-	'bouton_chercher' => 'Serĉi',
60
-	'bouton_choisir' => 'Elekti',
61
-	'bouton_deplacer' => 'Movi',
62
-	'bouton_download' => 'Elŝuti',
63
-	'bouton_enregistrer' => 'Registri',
64
-	'bouton_radio_desactiver_messagerie_interne' => 'Malŝalti la internan mesaĝilon',
65
-	'bouton_radio_envoi_annonces' => 'Sendi la ĉefartikolajn anoncojn',
66
-	'bouton_radio_non_envoi_annonces' => 'Ne sendi anoncojn',
67
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Ne sendi liston de novaĵoj',
68
-	'bouton_recharger_page' => 'freŝigi tiun paĝon',
69
-	'bouton_telecharger' => 'Alŝuti',
70
-	'bouton_upload' => 'Alŝuti',
71
-	'bouton_valider' => 'Validigi',
41
+    // B
42
+    'barre_a_accent_grave' => 'Entajpi malakut-akcentan ĉefliteran A',
43
+    'barre_aide' => 'Uzu la tipografiajn rapidligilojn por pliriĉigi vian enpaĝigon',
44
+    'barre_e_accent_aigu' => 'Entajpi malakut-akcentan ĉefliteran E',
45
+    'barre_eo' => 'Entajpi E en ĉefliteran O',
46
+    'barre_eo_maj' => 'Entajpi E en la ĉeflitero O',
47
+    'barre_euro' => 'Entajpi la simbolon €',
48
+    'barre_gras' => '{{Grasigi}}',
49
+    'barre_guillemets' => 'Flanki per « citiloj »',
50
+    'barre_guillemets_simples' => 'Flanki per “simplaj citiloj”',
51
+    'barre_intertitre' => '{{{Intertitoligi}}}',
52
+    'barre_italic' => '{Kursivigi}',
53
+    'barre_lien' => 'Transformi al [hiperligo->http://...]',
54
+    'barre_lien_input' => 'Bonvolu indiki la retadreson de via ligilo (vi povas indiki ret-adreson tian, kia http://www.monsite.com aŭ simple indiki la numeron de artikolo de tiu retejo.',
55
+    'barre_note' => 'Transformi al [[sub-paĝan noton]]',
56
+    'barre_paragraphe' => 'Krei paragrafon',
57
+    'barre_quote' => '<quote>Citi mesaĝon</quote>',
58
+    'bouton_changer' => 'Ŝanĝi',
59
+    'bouton_chercher' => 'Serĉi',
60
+    'bouton_choisir' => 'Elekti',
61
+    'bouton_deplacer' => 'Movi',
62
+    'bouton_download' => 'Elŝuti',
63
+    'bouton_enregistrer' => 'Registri',
64
+    'bouton_radio_desactiver_messagerie_interne' => 'Malŝalti la internan mesaĝilon',
65
+    'bouton_radio_envoi_annonces' => 'Sendi la ĉefartikolajn anoncojn',
66
+    'bouton_radio_non_envoi_annonces' => 'Ne sendi anoncojn',
67
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Ne sendi liston de novaĵoj',
68
+    'bouton_recharger_page' => 'freŝigi tiun paĝon',
69
+    'bouton_telecharger' => 'Alŝuti',
70
+    'bouton_upload' => 'Alŝuti',
71
+    'bouton_valider' => 'Validigi',
72 72
 
73
-	// C
74
-	'cal_apresmidi' => 'posttagmezo',
75
-	'cal_jour_entier' => 'tuta tago',
76
-	'cal_matin' => 'mateno',
77
-	'cal_par_jour' => 'tag-kalendaro',
78
-	'cal_par_mois' => 'monat-kalendaro',
79
-	'cal_par_semaine' => 'semajn-kalendaro',
80
-	'choix_couleur_interface' => 'koloro',
81
-	'choix_interface' => 'elekto de interfaco',
82
-	'colonne' => 'Kolumno',
83
-	'confirm_changer_statut' => 'Atentu, vi petis por ŝanĝi la statuton de tiu elemento. Ĉu vi deziras daŭrigi ?',
84
-	'correcte' => 'korekta',
73
+    // C
74
+    'cal_apresmidi' => 'posttagmezo',
75
+    'cal_jour_entier' => 'tuta tago',
76
+    'cal_matin' => 'mateno',
77
+    'cal_par_jour' => 'tag-kalendaro',
78
+    'cal_par_mois' => 'monat-kalendaro',
79
+    'cal_par_semaine' => 'semajn-kalendaro',
80
+    'choix_couleur_interface' => 'koloro',
81
+    'choix_interface' => 'elekto de interfaco',
82
+    'colonne' => 'Kolumno',
83
+    'confirm_changer_statut' => 'Atentu, vi petis por ŝanĝi la statuton de tiu elemento. Ĉu vi deziras daŭrigi ?',
84
+    'correcte' => 'korekta',
85 85
 
86
-	// D
87
-	'date_aujourdhui' => 'hodiaŭ',
88
-	'date_avant_jc' => 'a.K.',
89
-	'date_dans' => 'post @delai@',
90
-	'date_de_mois_1' => '@j@ @nommois@',
91
-	'date_de_mois_10' => '@j@ @nommois@',
92
-	'date_de_mois_11' => '@j@ @nommois@',
93
-	'date_de_mois_12' => '@j@ @nommois@',
94
-	'date_de_mois_2' => '@j@ @nommois@',
95
-	'date_de_mois_3' => '@j@ @nommois@',
96
-	'date_de_mois_4' => '@j@ @nommois@',
97
-	'date_de_mois_5' => '@j@ @nommois@',
98
-	'date_de_mois_6' => '@j@ @nommois@',
99
-	'date_de_mois_7' => '@j@ @nommois@',
100
-	'date_de_mois_8' => '@j@ @nommois@',
101
-	'date_de_mois_9' => '@j@ @nommois@',
102
-	'date_demain' => 'morgaŭ',
103
-	'date_fmt_heures_minutes' => '@h@h@m@min',
104
-	'date_fmt_heures_minutes_court' => '@h@h@m@',
105
-	'date_fmt_jour' => '@nomjour@ la @jour@a',
106
-	'date_fmt_jour_heure' => '@jour@ je la @heure@',
107
-	'date_fmt_jour_heure_debut_fin' => 'la @jour@ de @heure_debut@ ĝis @heure_fin@',
108
-	'date_fmt_jour_heure_debut_fin_abbr' => 'la @dtstart@@jour@a de @heure_debut@@dtabbr@ ĝis @dtend@@heure_fin@@dtend@',
109
-	'date_fmt_jour_mois' => '@jour@a @nommois@',
110
-	'date_fmt_jour_mois_annee' => '@jour@a @nommois@ @annee@',
111
-	'date_fmt_mois_annee' => '@nommois@ @annee@',
112
-	'date_fmt_nomjour' => '@nomjour@ @date@',
113
-	'date_fmt_nomjour_date' => 'la @nomjour@ @date@',
114
-	'date_fmt_periode' => 'De @date_debut@ ĝis @date_fin@',
115
-	'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ ĝis @dtend@@date_fin@@dtabbr@',
116
-	'date_fmt_periode_from' => 'De',
117
-	'date_fmt_periode_to' => 'ĝis',
118
-	'date_fmt_saison_annee' => '@saison@ @annee@',
119
-	'date_heures' => 'horoj',
120
-	'date_hier' => 'hieraŭ',
121
-	'date_il_y_a' => 'antaŭ @delai@',
122
-	'date_jnum1' => '1',
123
-	'date_jnum10' => '10',
124
-	'date_jnum11' => '11',
125
-	'date_jnum12' => '12',
126
-	'date_jnum13' => '13',
127
-	'date_jnum14' => '14',
128
-	'date_jnum15' => '15',
129
-	'date_jnum16' => '16',
130
-	'date_jnum17' => '17',
131
-	'date_jnum18' => '18',
132
-	'date_jnum19' => '19',
133
-	'date_jnum2' => '2',
134
-	'date_jnum20' => '20',
135
-	'date_jnum21' => '21',
136
-	'date_jnum22' => '22',
137
-	'date_jnum23' => '23',
138
-	'date_jnum24' => '24',
139
-	'date_jnum25' => '25',
140
-	'date_jnum26' => '26',
141
-	'date_jnum27' => '27',
142
-	'date_jnum28' => '28',
143
-	'date_jnum29' => '29',
144
-	'date_jnum3' => '3',
145
-	'date_jnum30' => '30',
146
-	'date_jnum31' => '31',
147
-	'date_jnum4' => '4',
148
-	'date_jnum5' => '5',
149
-	'date_jnum6' => '6',
150
-	'date_jnum7' => '7',
151
-	'date_jnum8' => '8',
152
-	'date_jnum9' => '9',
153
-	'date_jour_1' => 'dimanĉo',
154
-	'date_jour_1_abbr' => 'dim.',
155
-	'date_jour_1_initiale' => 'd.',
156
-	'date_jour_2' => 'lundo',
157
-	'date_jour_2_abbr' => 'lun.',
158
-	'date_jour_2_initiale' => 'l.',
159
-	'date_jour_3' => 'mardo',
160
-	'date_jour_3_abbr' => 'mar.',
161
-	'date_jour_3_initiale' => 'm.',
162
-	'date_jour_4' => 'merkredo',
163
-	'date_jour_4_abbr' => 'mer.',
164
-	'date_jour_4_initiale' => 'm.',
165
-	'date_jour_5' => 'ĵaŭdo',
166
-	'date_jour_5_abbr' => 'jaŭ.',
167
-	'date_jour_5_initiale' => 'j.',
168
-	'date_jour_6' => 'vendredo',
169
-	'date_jour_6_abbr' => 'ven.',
170
-	'date_jour_6_initiale' => 'v.',
171
-	'date_jour_7' => 'sabato',
172
-	'date_jour_7_abbr' => 'sab.',
173
-	'date_jour_7_initiale' => 's.',
174
-	'date_jours' => 'tagoj',
175
-	'date_minutes' => 'minutoj',
176
-	'date_mois' => 'monatoj',
177
-	'date_mois_1' => 'januaro',
178
-	'date_mois_10' => 'oktobro',
179
-	'date_mois_10_abbr' => 'oct.',
180
-	'date_mois_11' => 'novembro',
181
-	'date_mois_11_abbr' => 'nov.',
182
-	'date_mois_12' => 'decembro',
183
-	'date_mois_12_abbr' => 'dec.',
184
-	'date_mois_1_abbr' => 'jan.',
185
-	'date_mois_2' => 'februaro',
186
-	'date_mois_2_abbr' => 'feb.',
187
-	'date_mois_3' => 'marto',
188
-	'date_mois_3_abbr' => 'mar.',
189
-	'date_mois_4' => 'aprilo',
190
-	'date_mois_4_abbr' => 'apr.',
191
-	'date_mois_5' => 'majo',
192
-	'date_mois_5_abbr' => 'majo',
193
-	'date_mois_6' => 'junio',
194
-	'date_mois_6_abbr' => 'jun.',
195
-	'date_mois_7' => 'julio',
196
-	'date_mois_7_abbr' => 'jul.',
197
-	'date_mois_8' => 'aŭgusto',
198
-	'date_mois_8_abbr' => 'aŭg.',
199
-	'date_mois_9' => 'septembro',
200
-	'date_mois_9_abbr' => 'sep.',
201
-	'date_saison_1' => 'vintro',
202
-	'date_saison_2' => 'printempo',
203
-	'date_saison_3' => 'somero',
204
-	'date_saison_4' => 'aŭtuno',
205
-	'date_secondes' => 'sekundoj',
206
-	'date_semaines' => 'semajnoj',
207
-	'date_un_mois' => 'monato',
208
-	'date_une_heure' => 'horo',
209
-	'date_une_minute' => 'minuto',
210
-	'date_une_seconde' => 'sekundo',
211
-	'date_une_semaine' => 'semajno',
212
-	'dirs_commencer' => ' por vere komenci la instalprocezon',
213
-	'dirs_preliminaire' => 'Antaŭfaro : <b>Difinu la alir-rajtojn</b>',
214
-	'dirs_probleme_droits' => 'Alir-rajta problemo',
215
-	'dirs_repertoires_absents' => '<b>La jenaj dosierujoj ne estas trovitaj : <ul>@bad_dirs@.</ul> </b>
86
+    // D
87
+    'date_aujourdhui' => 'hodiaŭ',
88
+    'date_avant_jc' => 'a.K.',
89
+    'date_dans' => 'post @delai@',
90
+    'date_de_mois_1' => '@j@ @nommois@',
91
+    'date_de_mois_10' => '@j@ @nommois@',
92
+    'date_de_mois_11' => '@j@ @nommois@',
93
+    'date_de_mois_12' => '@j@ @nommois@',
94
+    'date_de_mois_2' => '@j@ @nommois@',
95
+    'date_de_mois_3' => '@j@ @nommois@',
96
+    'date_de_mois_4' => '@j@ @nommois@',
97
+    'date_de_mois_5' => '@j@ @nommois@',
98
+    'date_de_mois_6' => '@j@ @nommois@',
99
+    'date_de_mois_7' => '@j@ @nommois@',
100
+    'date_de_mois_8' => '@j@ @nommois@',
101
+    'date_de_mois_9' => '@j@ @nommois@',
102
+    'date_demain' => 'morgaŭ',
103
+    'date_fmt_heures_minutes' => '@h@h@m@min',
104
+    'date_fmt_heures_minutes_court' => '@h@h@m@',
105
+    'date_fmt_jour' => '@nomjour@ la @jour@a',
106
+    'date_fmt_jour_heure' => '@jour@ je la @heure@',
107
+    'date_fmt_jour_heure_debut_fin' => 'la @jour@ de @heure_debut@ ĝis @heure_fin@',
108
+    'date_fmt_jour_heure_debut_fin_abbr' => 'la @dtstart@@jour@a de @heure_debut@@dtabbr@ ĝis @dtend@@heure_fin@@dtend@',
109
+    'date_fmt_jour_mois' => '@jour@a @nommois@',
110
+    'date_fmt_jour_mois_annee' => '@jour@a @nommois@ @annee@',
111
+    'date_fmt_mois_annee' => '@nommois@ @annee@',
112
+    'date_fmt_nomjour' => '@nomjour@ @date@',
113
+    'date_fmt_nomjour_date' => 'la @nomjour@ @date@',
114
+    'date_fmt_periode' => 'De @date_debut@ ĝis @date_fin@',
115
+    'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ ĝis @dtend@@date_fin@@dtabbr@',
116
+    'date_fmt_periode_from' => 'De',
117
+    'date_fmt_periode_to' => 'ĝis',
118
+    'date_fmt_saison_annee' => '@saison@ @annee@',
119
+    'date_heures' => 'horoj',
120
+    'date_hier' => 'hieraŭ',
121
+    'date_il_y_a' => 'antaŭ @delai@',
122
+    'date_jnum1' => '1',
123
+    'date_jnum10' => '10',
124
+    'date_jnum11' => '11',
125
+    'date_jnum12' => '12',
126
+    'date_jnum13' => '13',
127
+    'date_jnum14' => '14',
128
+    'date_jnum15' => '15',
129
+    'date_jnum16' => '16',
130
+    'date_jnum17' => '17',
131
+    'date_jnum18' => '18',
132
+    'date_jnum19' => '19',
133
+    'date_jnum2' => '2',
134
+    'date_jnum20' => '20',
135
+    'date_jnum21' => '21',
136
+    'date_jnum22' => '22',
137
+    'date_jnum23' => '23',
138
+    'date_jnum24' => '24',
139
+    'date_jnum25' => '25',
140
+    'date_jnum26' => '26',
141
+    'date_jnum27' => '27',
142
+    'date_jnum28' => '28',
143
+    'date_jnum29' => '29',
144
+    'date_jnum3' => '3',
145
+    'date_jnum30' => '30',
146
+    'date_jnum31' => '31',
147
+    'date_jnum4' => '4',
148
+    'date_jnum5' => '5',
149
+    'date_jnum6' => '6',
150
+    'date_jnum7' => '7',
151
+    'date_jnum8' => '8',
152
+    'date_jnum9' => '9',
153
+    'date_jour_1' => 'dimanĉo',
154
+    'date_jour_1_abbr' => 'dim.',
155
+    'date_jour_1_initiale' => 'd.',
156
+    'date_jour_2' => 'lundo',
157
+    'date_jour_2_abbr' => 'lun.',
158
+    'date_jour_2_initiale' => 'l.',
159
+    'date_jour_3' => 'mardo',
160
+    'date_jour_3_abbr' => 'mar.',
161
+    'date_jour_3_initiale' => 'm.',
162
+    'date_jour_4' => 'merkredo',
163
+    'date_jour_4_abbr' => 'mer.',
164
+    'date_jour_4_initiale' => 'm.',
165
+    'date_jour_5' => 'ĵaŭdo',
166
+    'date_jour_5_abbr' => 'jaŭ.',
167
+    'date_jour_5_initiale' => 'j.',
168
+    'date_jour_6' => 'vendredo',
169
+    'date_jour_6_abbr' => 'ven.',
170
+    'date_jour_6_initiale' => 'v.',
171
+    'date_jour_7' => 'sabato',
172
+    'date_jour_7_abbr' => 'sab.',
173
+    'date_jour_7_initiale' => 's.',
174
+    'date_jours' => 'tagoj',
175
+    'date_minutes' => 'minutoj',
176
+    'date_mois' => 'monatoj',
177
+    'date_mois_1' => 'januaro',
178
+    'date_mois_10' => 'oktobro',
179
+    'date_mois_10_abbr' => 'oct.',
180
+    'date_mois_11' => 'novembro',
181
+    'date_mois_11_abbr' => 'nov.',
182
+    'date_mois_12' => 'decembro',
183
+    'date_mois_12_abbr' => 'dec.',
184
+    'date_mois_1_abbr' => 'jan.',
185
+    'date_mois_2' => 'februaro',
186
+    'date_mois_2_abbr' => 'feb.',
187
+    'date_mois_3' => 'marto',
188
+    'date_mois_3_abbr' => 'mar.',
189
+    'date_mois_4' => 'aprilo',
190
+    'date_mois_4_abbr' => 'apr.',
191
+    'date_mois_5' => 'majo',
192
+    'date_mois_5_abbr' => 'majo',
193
+    'date_mois_6' => 'junio',
194
+    'date_mois_6_abbr' => 'jun.',
195
+    'date_mois_7' => 'julio',
196
+    'date_mois_7_abbr' => 'jul.',
197
+    'date_mois_8' => 'aŭgusto',
198
+    'date_mois_8_abbr' => 'aŭg.',
199
+    'date_mois_9' => 'septembro',
200
+    'date_mois_9_abbr' => 'sep.',
201
+    'date_saison_1' => 'vintro',
202
+    'date_saison_2' => 'printempo',
203
+    'date_saison_3' => 'somero',
204
+    'date_saison_4' => 'aŭtuno',
205
+    'date_secondes' => 'sekundoj',
206
+    'date_semaines' => 'semajnoj',
207
+    'date_un_mois' => 'monato',
208
+    'date_une_heure' => 'horo',
209
+    'date_une_minute' => 'minuto',
210
+    'date_une_seconde' => 'sekundo',
211
+    'date_une_semaine' => 'semajno',
212
+    'dirs_commencer' => ' por vere komenci la instalprocezon',
213
+    'dirs_preliminaire' => 'Antaŭfaro : <b>Difinu la alir-rajtojn</b>',
214
+    'dirs_probleme_droits' => 'Alir-rajta problemo',
215
+    'dirs_repertoires_absents' => '<b>La jenaj dosierujoj ne estas trovitaj : <ul>@bad_dirs@.</ul> </b>
216 216
   <p>La problemo verŝajne rilatas al majuskligo de literoj.
217 217
   Kontrolu ke la majuskloj ja kongruas kun tio kio estas afiŝita ĉi-supre ;
218 218
   se ili ne kongruas, bonvolu renomi la dosierujon per via FTP-programo por korekti la eraron.
219 219
 </p><p>Post tio, vi povos</p>',
220
-	'dirs_repertoires_suivants' => '<b>La jenaj dosierujoj ne estas skribe modifeblaj : 
220
+    'dirs_repertoires_suivants' => '<b>La jenaj dosierujoj ne estas skribe modifeblaj : 
221 221
 <ul>@bad_dirs@.</ul></b>
222 222
 <p>Por solvi tion, uzu vian FTP-klienton por reguligi la alir-rajtojn de ĉiu
223 223
  el tiuj dosierujoj. La proceduron oni detale klarigas en la instalgvidlibro.
224 224
 </p><p>Post tio, vi povos </p>',
225
-	'double_occurrence' => 'Duobla trafo de @balise@',
225
+    'double_occurrence' => 'Duobla trafo de @balise@',
226 226
 
227
-	// E
228
-	'en_cours' => 'okazanta',
229
-	'envoi_via_le_site' => 'Sendo tra la retejo',
230
-	'erreur' => 'Eraro',
231
-	'erreur_balise_non_fermee' => 'lasta ne fermita marko :',
232
-	'erreur_technique_ajaxform' => 'Aj. Neatendita eraro ne ebligis la sendon de la formularo. Vi povas reprovi denove.',
233
-	'erreur_technique_enregistrement_champs' => 'Teknika eraro neebligis la ĝustan registradon de la kampo @champs@.',
234
-	'erreur_technique_enregistrement_impossible' => 'Teknika eraro neebligis la registradon.',
235
-	'erreur_texte' => 'eraro(j)',
236
-	'etape' => 'Etapo',
227
+    // E
228
+    'en_cours' => 'okazanta',
229
+    'envoi_via_le_site' => 'Sendo tra la retejo',
230
+    'erreur' => 'Eraro',
231
+    'erreur_balise_non_fermee' => 'lasta ne fermita marko :',
232
+    'erreur_technique_ajaxform' => 'Aj. Neatendita eraro ne ebligis la sendon de la formularo. Vi povas reprovi denove.',
233
+    'erreur_technique_enregistrement_champs' => 'Teknika eraro neebligis la ĝustan registradon de la kampo @champs@.',
234
+    'erreur_technique_enregistrement_impossible' => 'Teknika eraro neebligis la registradon.',
235
+    'erreur_texte' => 'eraro(j)',
236
+    'etape' => 'Etapo',
237 237
 
238
-	// F
239
-	'fichier_introuvable' => 'Netrovebla dosiero @fichier@ ', # MODIF
240
-	'form_auteur_confirmation' => 'Konfirmu vian retpoŝtadreso',
241
-	'form_auteur_email_modifie' => 'Via retpoŝtadreso estis modifita.',
242
-	'form_auteur_envoi_mail_confirmation' => 'Konfirmretmesaĝo estis sendita al @email@. Vi devu viziti la menciita retadreso en la retmesaĝo por validigi vian retpoŝtadreson.',
243
-	'form_auteur_mail_confirmation' => 'Saluton,
238
+    // F
239
+    'fichier_introuvable' => 'Netrovebla dosiero @fichier@ ', # MODIF
240
+    'form_auteur_confirmation' => 'Konfirmu vian retpoŝtadreso',
241
+    'form_auteur_email_modifie' => 'Via retpoŝtadreso estis modifita.',
242
+    'form_auteur_envoi_mail_confirmation' => 'Konfirmretmesaĝo estis sendita al @email@. Vi devu viziti la menciita retadreso en la retmesaĝo por validigi vian retpoŝtadreson.',
243
+    'form_auteur_mail_confirmation' => 'Saluton,
244 244
 
245 245
 Vi petis ŝanĝi vian retpoŝtadreson.
246 246
 Por konfirmi vian novan retadreson, simple ensaluti al
247 247
 la retadreso ĉi-sube (alie, via peto estos ignoritaj) :
248 248
 
249 249
     @url@',
250
-	'form_deja_inscrit' => 'Vi estas jam registrita.',
251
-	'form_email_non_valide' => 'Via retpoŝtadreso ne validas.',
252
-	'form_forum_access_refuse' => 'Vi ne plu havas alir-rajton al tiu retejo.',
253
-	'form_forum_bonjour' => 'Saluton @nom@,',
254
-	'form_forum_confirmer_email' => 'Por konfirmi vian retpoŝtadreson, iru al tiu retadreso : @url_confirm@',
255
-	'form_forum_email_deja_enregistre' => 'Tiu ĉi retpoŝtadreso estas jam registrita, vi povas do uzi vian kutiman pasvorton.',
256
-	'form_forum_identifiant_mail' => 'Via nova ensalutilo estis ĵus al vi sendita per retletero.',
257
-	'form_forum_identifiants' => 'Personaj ensalutiloj',
258
-	'form_forum_indiquer_nom_email' => 'Indiku ĉi tie vian nomon kaj retpoŝtadreson. Via persona ensalutilo rapide alvenos al vi retletere.',
259
-	'form_forum_login' => 'salutnomo :',
260
-	'form_forum_message_auto' => '(tio estas aŭtomata mesaĝo)',
261
-	'form_forum_pass' => 'pasvorto :',
262
-	'form_forum_probleme_mail' => 'Retpoŝta problemo : la ensalutilo ne sendeblas.',
263
-	'form_forum_voici1' => 'Jen viaj ensalutiloj por partopreni la vivon de la retejo "@nom_site_spip@" (@adresse_site@) :',
264
-	'form_forum_voici2' => 'Jen estas viaj ensalutiloj por proponi artikolojn ĉe la retejo "@nom_site_spip@" (@adresse_login@) :',
265
-	'form_indiquer_email' => 'Bonvolu indiki vian retpoŝtadreson.',
266
-	'form_indiquer_nom' => 'Bonvolu indiki vian nomon.',
267
-	'form_indiquer_nom_site' => 'Bonvolu indiki la nomon de via retejo.',
268
-	'form_pet_deja_enregistre' => 'Tiu retejo estas jam registrita',
269
-	'form_pet_signature_pasprise' => 'Via subskribo ne estas registrita.',
270
-	'form_prop_confirmer_envoi' => 'Konfirmi la sendon',
271
-	'form_prop_description' => 'Priskribo/komento',
272
-	'form_prop_enregistre' => 'Via kontribuo estas registrita, ĝi aperos ĉerete post validigo de la respondeculoj de la retejo.',
273
-	'form_prop_envoyer' => 'Sendi mesaĝon',
274
-	'form_prop_indiquer_email' => 'Bonvolu indiki validan retpoŝtadreson',
275
-	'form_prop_indiquer_nom_site' => 'Bonvolu indiki la nomon de la retejo.',
276
-	'form_prop_indiquer_sujet' => 'Bonvolu indiki temon',
277
-	'form_prop_message_envoye' => 'Mesaĝo sendita',
278
-	'form_prop_non_enregistre' => 'Via propono ne estis registrita.',
279
-	'form_prop_sujet' => 'Temo',
280
-	'form_prop_url_site' => 'URL-adreso de la retejo',
281
-	'format_date_incorrecte' => 'La dato aŭ ĝia formo ne validas',
282
-	'format_heure_incorrecte' => 'La horo aŭ ĝia formo ne validas',
283
-	'forum_non_inscrit' => 'Vi ne estas registrita, aŭ la adreso aŭ la pasvorto ne ĝustas.',
284
-	'forum_par_auteur' => 'de @auteur@',
285
-	'forum_titre_erreur' => 'Eraro...',
250
+    'form_deja_inscrit' => 'Vi estas jam registrita.',
251
+    'form_email_non_valide' => 'Via retpoŝtadreso ne validas.',
252
+    'form_forum_access_refuse' => 'Vi ne plu havas alir-rajton al tiu retejo.',
253
+    'form_forum_bonjour' => 'Saluton @nom@,',
254
+    'form_forum_confirmer_email' => 'Por konfirmi vian retpoŝtadreson, iru al tiu retadreso : @url_confirm@',
255
+    'form_forum_email_deja_enregistre' => 'Tiu ĉi retpoŝtadreso estas jam registrita, vi povas do uzi vian kutiman pasvorton.',
256
+    'form_forum_identifiant_mail' => 'Via nova ensalutilo estis ĵus al vi sendita per retletero.',
257
+    'form_forum_identifiants' => 'Personaj ensalutiloj',
258
+    'form_forum_indiquer_nom_email' => 'Indiku ĉi tie vian nomon kaj retpoŝtadreson. Via persona ensalutilo rapide alvenos al vi retletere.',
259
+    'form_forum_login' => 'salutnomo :',
260
+    'form_forum_message_auto' => '(tio estas aŭtomata mesaĝo)',
261
+    'form_forum_pass' => 'pasvorto :',
262
+    'form_forum_probleme_mail' => 'Retpoŝta problemo : la ensalutilo ne sendeblas.',
263
+    'form_forum_voici1' => 'Jen viaj ensalutiloj por partopreni la vivon de la retejo "@nom_site_spip@" (@adresse_site@) :',
264
+    'form_forum_voici2' => 'Jen estas viaj ensalutiloj por proponi artikolojn ĉe la retejo "@nom_site_spip@" (@adresse_login@) :',
265
+    'form_indiquer_email' => 'Bonvolu indiki vian retpoŝtadreson.',
266
+    'form_indiquer_nom' => 'Bonvolu indiki vian nomon.',
267
+    'form_indiquer_nom_site' => 'Bonvolu indiki la nomon de via retejo.',
268
+    'form_pet_deja_enregistre' => 'Tiu retejo estas jam registrita',
269
+    'form_pet_signature_pasprise' => 'Via subskribo ne estas registrita.',
270
+    'form_prop_confirmer_envoi' => 'Konfirmi la sendon',
271
+    'form_prop_description' => 'Priskribo/komento',
272
+    'form_prop_enregistre' => 'Via kontribuo estas registrita, ĝi aperos ĉerete post validigo de la respondeculoj de la retejo.',
273
+    'form_prop_envoyer' => 'Sendi mesaĝon',
274
+    'form_prop_indiquer_email' => 'Bonvolu indiki validan retpoŝtadreson',
275
+    'form_prop_indiquer_nom_site' => 'Bonvolu indiki la nomon de la retejo.',
276
+    'form_prop_indiquer_sujet' => 'Bonvolu indiki temon',
277
+    'form_prop_message_envoye' => 'Mesaĝo sendita',
278
+    'form_prop_non_enregistre' => 'Via propono ne estis registrita.',
279
+    'form_prop_sujet' => 'Temo',
280
+    'form_prop_url_site' => 'URL-adreso de la retejo',
281
+    'format_date_incorrecte' => 'La dato aŭ ĝia formo ne validas',
282
+    'format_heure_incorrecte' => 'La horo aŭ ĝia formo ne validas',
283
+    'forum_non_inscrit' => 'Vi ne estas registrita, aŭ la adreso aŭ la pasvorto ne ĝustas.',
284
+    'forum_par_auteur' => 'de @auteur@',
285
+    'forum_titre_erreur' => 'Eraro...',
286 286
 
287
-	// I
288
-	'ical_texte_rss_articles' => 'La abondosiero (backend-dosiero) de la artikoloj de tiu retejo troveblas ĉe la retadreso :',
289
-	'ical_texte_rss_articles2' => 'Sube, vi povas trovi abonligojn por gvati evoluadon de artikoloj el ĉiu rubriko de la retejo :',
290
-	'ical_texte_rss_breves' => 'Krome ekzistas dosiero enhavanta ĉiujn fulm-informojn de la retejo. Precizigante la rubriko-numeron, vi ricevos nur la fulm-informojn el tiu rubriko.',
291
-	'icone_a_suivre' => 'Stabejo',
292
-	'icone_admin_site' => 'Reteja administrado',
293
-	'icone_agenda' => 'Agendo',
294
-	'icone_aide_ligne' => 'Helpilo',
295
-	'icone_articles' => 'Artikoloj',
296
-	'icone_auteurs' => 'Aŭtoroj',
297
-	'icone_brouteur' => 'Rapida retumado',
298
-	'icone_configuration_site' => 'Konfiguro',
299
-	'icone_configurer_site' => 'Konfiguri vian retejon',
300
-	'icone_creer_nouvel_auteur' => 'Krei novan aŭtoron',
301
-	'icone_creer_rubrique' => 'Krei novan rubrikon',
302
-	'icone_creer_sous_rubrique' => 'Krei sub-rubrikon',
303
-	'icone_deconnecter' => 'Elsaluti',
304
-	'icone_discussions' => 'Diskutoj',
305
-	'icone_doc_rubrique' => 'Dokumentoj de la rubrikoj',
306
-	'icone_ecrire_article' => 'Skribi novan artikolon',
307
-	'icone_edition_site' => 'Redaktejo',
308
-	'icone_gestion_langues' => 'Mastrumado de lingvoj',
309
-	'icone_informations_personnelles' => 'Personaj datenoj',
310
-	'icone_interface_complet' => 'kompleta interfaco',
311
-	'icone_interface_simple' => 'Simpla interfaco',
312
-	'icone_maintenance_site' => 'Retejo-bontenado',
313
-	'icone_messagerie_personnelle' => 'Persona mesaĝilo',
314
-	'icone_repartition_debut' => 'Afiŝi la distribuon ekde la komenco',
315
-	'icone_rubriques' => 'Rubrikoj',
316
-	'icone_sauver_site' => 'Savkopii la retejon',
317
-	'icone_site_entier' => 'La tuta retejo',
318
-	'icone_sites_references' => 'Referencigitaj retejoj',
319
-	'icone_statistiques' => 'Statistikoj de la retejo',
320
-	'icone_suivi_activite' => 'Gvati vivon de la retejo',
321
-	'icone_suivi_actualite' => 'Evoluado de la retejo',
322
-	'icone_suivi_pettions' => 'Superrigardi/mastrumi la petskribon',
323
-	'icone_suivi_revisions' => 'Modifoj de artikoloj',
324
-	'icone_supprimer_document' => 'Forigi tiun dokumenton',
325
-	'icone_supprimer_image' => 'Forigi tiun bildon',
326
-	'icone_tous_articles' => 'Ĉiuj viaj artikoloj',
327
-	'icone_tous_auteur' => 'Ĉiuj aŭtoroj',
328
-	'icone_tous_visiteur' => 'Ĉiuj vizitantoj',
329
-	'icone_visiter_site' => 'Vidi la publikan spacon',
330
-	'icone_voir_en_ligne' => 'Vidi ĉeretigite',
331
-	'img_indisponible' => 'nedisponebla bildo',
332
-	'impossible' => 'ne eblas',
333
-	'info_a_suivre' => 'STABEJO »',
334
-	'info_acces_interdit' => 'Malpermesata aliro',
335
-	'info_acces_refuse' => 'Rifuzita aliro',
336
-	'info_action' => 'Ago : @action@',
337
-	'info_administrer_rubriques' => 'Vi povas mastrumi tiun rubrikon kaj ties subrubrikojn',
338
-	'info_adresse_non_indiquee' => 'Vi indikis neniun adreson por testi !',
339
-	'info_aide' => 'HELPO :',
340
-	'info_ajouter_mot' => 'Aldoni tiun vorton',
341
-	'info_annonce' => 'ANONCO',
342
-	'info_annonces_generales' => 'Ĝeneralaj anoncoj :',
343
-	'info_article_propose' => 'Proponita artikolo',
344
-	'info_article_publie' => 'Publikigita artikolo',
345
-	'info_article_redaction' => 'Redaktata artikolo',
346
-	'info_article_refuse' => 'Rifuzita artikolo',
347
-	'info_article_supprime' => 'Forviŝita artikolo',
348
-	'info_articles' => 'Artikoloj',
349
-	'info_articles_a_valider' => 'Validigendaj artikoloj',
350
-	'info_articles_nb' => '@nb@ artikoloj',
351
-	'info_articles_proposes' => 'Proponitaj artikoloj',
352
-	'info_articles_un' => '1 artikolo',
353
-	'info_auteurs_nombre' => 'aŭtoro(j) :',
354
-	'info_authentification_ftp' => 'Aŭtentigo (per FTP).',
355
-	'info_breves_2' => 'fulm-informoj',
356
-	'info_breves_nb' => '@nb@ fulm-informoj',
357
-	'info_breves_un' => '1 fulm-informo',
358
-	'info_connexion_refusee' => 'Konektiĝo rifuzata',
359
-	'info_contact_developpeur' => 'Bonvolu kontakti programiston.',
360
-	'info_contenance' => 'Tiu retejo enhavas :',
361
-	'info_contribution' => 'kontribuaĵoj',
362
-	'info_copyright' => '@spip@ estas libera programo distribuata @lien_gpl@.',
363
-	'info_copyright_doc' => 'Por pliaj informoj vidu la retpaĝon <a href="@spipnet@">@spipnet_affiche@</a>.',
364
-	'info_copyright_gpl' => 'sub licenco GPL',
365
-	'info_cours_edition' => 'Viaj redaktataj artikoloj', # MODIF
366
-	'info_creer_repertoire' => 'Bonvolu krei dosieron aŭ dosierujon kies nomo estu :',
367
-	'info_creer_repertoire_2' => 'ene de la subdosierujo <b>@repertoire@</b>, kaj :',
368
-	'info_creer_vignette' => 'aŭtomata kreo de la vinjeto',
369
-	'info_creerdansrubrique_non_autorise' => 'Vi ne havas sufiĉajn rajtojn por krei enhavo en ĉi tiu rubriko',
370
-	'info_deplier' => 'Malfaldi',
371
-	'info_descriptif_nombre' => 'priskribo(j) :',
372
-	'info_description' => 'Priskribo :',
373
-	'info_description_2' => 'Priskribo :',
374
-	'info_dimension' => 'Dimensioj :',
375
-	'info_documents_nb' => '@nb@ dokumentoj',
376
-	'info_documents_un' => '1 dokumento',
377
-	'info_ecire_message_prive' => 'Skribi privatan mesaĝon',
378
-	'info_email_invalide' => 'Nevalida retpoŝtadreso.',
379
-	'info_en_cours_validation' => 'Viaj redaktataj artikoloj',
380
-	'info_en_ligne' => 'Nun ĉerete :',
381
-	'info_envoyer_message_prive' => 'Sendi privatan mesaĝon al tiu ĉi aŭtoro',
382
-	'info_erreur_requete' => 'Eraro en la peto : ',
383
-	'info_erreur_squelette2' => 'Neniu skeleto <b>@fichier@</b> disponeblas...',
384
-	'info_erreur_systeme' => 'Sistemo-eraro (errno @errsys@)',
385
-	'info_erreur_systeme2' => 'Eble la fiksdisko plenas, aŭ la datenbazo estas difektita.<br />
287
+    // I
288
+    'ical_texte_rss_articles' => 'La abondosiero (backend-dosiero) de la artikoloj de tiu retejo troveblas ĉe la retadreso :',
289
+    'ical_texte_rss_articles2' => 'Sube, vi povas trovi abonligojn por gvati evoluadon de artikoloj el ĉiu rubriko de la retejo :',
290
+    'ical_texte_rss_breves' => 'Krome ekzistas dosiero enhavanta ĉiujn fulm-informojn de la retejo. Precizigante la rubriko-numeron, vi ricevos nur la fulm-informojn el tiu rubriko.',
291
+    'icone_a_suivre' => 'Stabejo',
292
+    'icone_admin_site' => 'Reteja administrado',
293
+    'icone_agenda' => 'Agendo',
294
+    'icone_aide_ligne' => 'Helpilo',
295
+    'icone_articles' => 'Artikoloj',
296
+    'icone_auteurs' => 'Aŭtoroj',
297
+    'icone_brouteur' => 'Rapida retumado',
298
+    'icone_configuration_site' => 'Konfiguro',
299
+    'icone_configurer_site' => 'Konfiguri vian retejon',
300
+    'icone_creer_nouvel_auteur' => 'Krei novan aŭtoron',
301
+    'icone_creer_rubrique' => 'Krei novan rubrikon',
302
+    'icone_creer_sous_rubrique' => 'Krei sub-rubrikon',
303
+    'icone_deconnecter' => 'Elsaluti',
304
+    'icone_discussions' => 'Diskutoj',
305
+    'icone_doc_rubrique' => 'Dokumentoj de la rubrikoj',
306
+    'icone_ecrire_article' => 'Skribi novan artikolon',
307
+    'icone_edition_site' => 'Redaktejo',
308
+    'icone_gestion_langues' => 'Mastrumado de lingvoj',
309
+    'icone_informations_personnelles' => 'Personaj datenoj',
310
+    'icone_interface_complet' => 'kompleta interfaco',
311
+    'icone_interface_simple' => 'Simpla interfaco',
312
+    'icone_maintenance_site' => 'Retejo-bontenado',
313
+    'icone_messagerie_personnelle' => 'Persona mesaĝilo',
314
+    'icone_repartition_debut' => 'Afiŝi la distribuon ekde la komenco',
315
+    'icone_rubriques' => 'Rubrikoj',
316
+    'icone_sauver_site' => 'Savkopii la retejon',
317
+    'icone_site_entier' => 'La tuta retejo',
318
+    'icone_sites_references' => 'Referencigitaj retejoj',
319
+    'icone_statistiques' => 'Statistikoj de la retejo',
320
+    'icone_suivi_activite' => 'Gvati vivon de la retejo',
321
+    'icone_suivi_actualite' => 'Evoluado de la retejo',
322
+    'icone_suivi_pettions' => 'Superrigardi/mastrumi la petskribon',
323
+    'icone_suivi_revisions' => 'Modifoj de artikoloj',
324
+    'icone_supprimer_document' => 'Forigi tiun dokumenton',
325
+    'icone_supprimer_image' => 'Forigi tiun bildon',
326
+    'icone_tous_articles' => 'Ĉiuj viaj artikoloj',
327
+    'icone_tous_auteur' => 'Ĉiuj aŭtoroj',
328
+    'icone_tous_visiteur' => 'Ĉiuj vizitantoj',
329
+    'icone_visiter_site' => 'Vidi la publikan spacon',
330
+    'icone_voir_en_ligne' => 'Vidi ĉeretigite',
331
+    'img_indisponible' => 'nedisponebla bildo',
332
+    'impossible' => 'ne eblas',
333
+    'info_a_suivre' => 'STABEJO »',
334
+    'info_acces_interdit' => 'Malpermesata aliro',
335
+    'info_acces_refuse' => 'Rifuzita aliro',
336
+    'info_action' => 'Ago : @action@',
337
+    'info_administrer_rubriques' => 'Vi povas mastrumi tiun rubrikon kaj ties subrubrikojn',
338
+    'info_adresse_non_indiquee' => 'Vi indikis neniun adreson por testi !',
339
+    'info_aide' => 'HELPO :',
340
+    'info_ajouter_mot' => 'Aldoni tiun vorton',
341
+    'info_annonce' => 'ANONCO',
342
+    'info_annonces_generales' => 'Ĝeneralaj anoncoj :',
343
+    'info_article_propose' => 'Proponita artikolo',
344
+    'info_article_publie' => 'Publikigita artikolo',
345
+    'info_article_redaction' => 'Redaktata artikolo',
346
+    'info_article_refuse' => 'Rifuzita artikolo',
347
+    'info_article_supprime' => 'Forviŝita artikolo',
348
+    'info_articles' => 'Artikoloj',
349
+    'info_articles_a_valider' => 'Validigendaj artikoloj',
350
+    'info_articles_nb' => '@nb@ artikoloj',
351
+    'info_articles_proposes' => 'Proponitaj artikoloj',
352
+    'info_articles_un' => '1 artikolo',
353
+    'info_auteurs_nombre' => 'aŭtoro(j) :',
354
+    'info_authentification_ftp' => 'Aŭtentigo (per FTP).',
355
+    'info_breves_2' => 'fulm-informoj',
356
+    'info_breves_nb' => '@nb@ fulm-informoj',
357
+    'info_breves_un' => '1 fulm-informo',
358
+    'info_connexion_refusee' => 'Konektiĝo rifuzata',
359
+    'info_contact_developpeur' => 'Bonvolu kontakti programiston.',
360
+    'info_contenance' => 'Tiu retejo enhavas :',
361
+    'info_contribution' => 'kontribuaĵoj',
362
+    'info_copyright' => '@spip@ estas libera programo distribuata @lien_gpl@.',
363
+    'info_copyright_doc' => 'Por pliaj informoj vidu la retpaĝon <a href="@spipnet@">@spipnet_affiche@</a>.',
364
+    'info_copyright_gpl' => 'sub licenco GPL',
365
+    'info_cours_edition' => 'Viaj redaktataj artikoloj', # MODIF
366
+    'info_creer_repertoire' => 'Bonvolu krei dosieron aŭ dosierujon kies nomo estu :',
367
+    'info_creer_repertoire_2' => 'ene de la subdosierujo <b>@repertoire@</b>, kaj :',
368
+    'info_creer_vignette' => 'aŭtomata kreo de la vinjeto',
369
+    'info_creerdansrubrique_non_autorise' => 'Vi ne havas sufiĉajn rajtojn por krei enhavo en ĉi tiu rubriko',
370
+    'info_deplier' => 'Malfaldi',
371
+    'info_descriptif_nombre' => 'priskribo(j) :',
372
+    'info_description' => 'Priskribo :',
373
+    'info_description_2' => 'Priskribo :',
374
+    'info_dimension' => 'Dimensioj :',
375
+    'info_documents_nb' => '@nb@ dokumentoj',
376
+    'info_documents_un' => '1 dokumento',
377
+    'info_ecire_message_prive' => 'Skribi privatan mesaĝon',
378
+    'info_email_invalide' => 'Nevalida retpoŝtadreso.',
379
+    'info_en_cours_validation' => 'Viaj redaktataj artikoloj',
380
+    'info_en_ligne' => 'Nun ĉerete :',
381
+    'info_envoyer_message_prive' => 'Sendi privatan mesaĝon al tiu ĉi aŭtoro',
382
+    'info_erreur_requete' => 'Eraro en la peto : ',
383
+    'info_erreur_squelette2' => 'Neniu skeleto <b>@fichier@</b> disponeblas...',
384
+    'info_erreur_systeme' => 'Sistemo-eraro (errno @errsys@)',
385
+    'info_erreur_systeme2' => 'Eble la fiksdisko plenas, aŭ la datenbazo estas difektita.<br />
386 386
 <span style="color:red;">Provu<a href=\'@script@\'>ripari la datenbazon</a>,
387 387
 aŭ kontaktu vian retgastiganton.</span>',
388
-	'info_fini' => 'Finite !',
389
-	'info_format_image' => 'Bildaj formatoj uzeblaj por krei vinjetojn : @gd_formats@.',
390
-	'info_format_non_defini' => 'nedefinita formato',
391
-	'info_grand_ecran' => 'Granda ekrano',
392
-	'info_image_aide' => 'HELPILO',
393
-	'info_image_process_titre' => 'Metodo pri vinjet-farado',
394
-	'info_impossible_lire_page' => '<b>Eraro !</b> Ne eblas legi la paĝon <tt> <html>@test_proxy@</html> </tt> tra la prokura servilo <tt>',
395
-	'info_installation_systeme_publication' => 'Instalo de la publikiga sistemo...',
396
-	'info_installer_documents' => 'Vi povas aŭtomate instali ĉiujn dokumentojn troviĝantajn en la dosiero @upload@.',
397
-	'info_installer_ftp' => 'Kiel mastrumanto, vi povas instali (FTP-e) dosierojn en la dosierujon @upload@ kaj poste rekte selekti ilin ĉi tie.',
398
-	'info_installer_images' => 'Vi povas instali bildojn je la formatoj JPEG, GIF kaj PNG.',
399
-	'info_installer_images_dossier' => 'Instali bildojn en la dosierujon @upload@ por povi ilin selekti ĉi tie.',
400
-	'info_interface_complete' => 'kompleta interfaco',
401
-	'info_interface_simple' => 'Simpla interfaco',
402
-	'info_joindre_document_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj',
403
-	'info_joindre_document_rubrique' => 'Vi povas ligi kun tiu rubriko dokumentojn tiajn, kiaj',
404
-	'info_joindre_documents_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj :',
405
-	'info_l_article' => 'la artikolo',
406
-	'info_la_breve' => 'la fulm-informo',
407
-	'info_la_rubrique' => 'la rubriko',
408
-	'info_langue_principale' => 'Ĉefa lingvo de la retejo',
409
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bilderoj',
410
-	'info_les_auteurs_1' => 'de @les_auteurs@',
411
-	'info_logo_format_interdit' => 'Nur vinjetoj je formatoj @formats@ estas permesataj.',
412
-	'info_logo_max_poids' => 'Vinjetoj devige pezu malpli ol @maxi@ (tiu dosiero pezas @actuel@).',
413
-	'info_mail_fournisseur' => '[email protected]',
414
-	'info_message_2' => 'MESAĜO',
415
-	'info_message_supprime' => 'FORIGITA MESAĜO',
416
-	'info_messages_nb' => '@nb@ mesaĝoj',
417
-	'info_messages_un' => '1 mesaĝo',
418
-	'info_mise_en_ligne' => 'Dato de ĉeretigo : ',
419
-	'info_modification_parametres_securite' => 'modifoj de la sekuraj parametroj',
420
-	'info_mois_courant' => 'En la kuranta monato :',
421
-	'info_mot_cle_ajoute' => 'La jena ŝlosilvorto estas ligita kun',
422
-	'info_multi_herit' => 'Defaŭlta lingvo',
423
-	'info_multi_langues_soulignees' => 'Por la <u>substrekitaj lingvoj</u>, ĉiuj tekstoj de la interfaco estas tute aŭ parte tradukitaj. Kiam vi elektas tiujn lingvojn, multaj elementoj de la publika retejo (datenoj, formularoj) estos aŭtomate tradukitaj. Por la nesubstrekitaj lingvoj, tiuj elementoj afiŝiĝos en la ĉefa lingvo de la retejo.',
424
-	'info_multilinguisme' => 'Multlingvismo',
425
-	'info_nom_non_utilisateurs_connectes' => 'Via nomo ne aperas en la listo de la ensalutintaj uzantoj.',
426
-	'info_nom_utilisateurs_connectes' => 'Via nomo aperas en la listo de la ensalutintaj uzantoj.',
427
-	'info_nombre_en_ligne' => 'Nun ensalutintaj :',
428
-	'info_non_resultat' => 'Neniu rezulto por "@cherche_mot@"',
429
-	'info_non_utilisation_messagerie' => 'Vi ne uzas la internan mesaĝilon de tiu retejo.',
430
-	'info_nouveau_message' => 'VI HAVAS NOVAN MESAĜON',
431
-	'info_nouveaux_messages' => 'VI HAVAS @total_messages@ NOVA(J)N MESAĜO(J)N',
432
-	'info_numero_abbreviation' => 'N° ',
433
-	'info_obligatoire' => 'Tiu ĉi informo estas deviga',
434
-	'info_pense_bete' => 'MEMORIGILO',
435
-	'info_petit_ecran' => 'Eta ekrano',
436
-	'info_petition_close' => 'Petskribo fermita',
437
-	'info_pixels' => 'bilderoj',
438
-	'info_plusieurs_mots_trouves' => 'Pluraj ŝlosilvortoj trovitaj por "@cherche_mot@" :',
439
-	'info_portfolio_automatique' => 'Aŭtomata dokumentujo :',
440
-	'info_premier_resultat' => '[@debut_limit@ unuaj rezultoj el @total@]',
441
-	'info_premier_resultat_sur' => '[@debut_limit@ unuaj rezultoj el @total@]',
442
-	'info_propose_1' => '[@nom_site_spip@] Proponas : @titre@',
443
-	'info_propose_2' => 'Proponita artikolo
388
+    'info_fini' => 'Finite !',
389
+    'info_format_image' => 'Bildaj formatoj uzeblaj por krei vinjetojn : @gd_formats@.',
390
+    'info_format_non_defini' => 'nedefinita formato',
391
+    'info_grand_ecran' => 'Granda ekrano',
392
+    'info_image_aide' => 'HELPILO',
393
+    'info_image_process_titre' => 'Metodo pri vinjet-farado',
394
+    'info_impossible_lire_page' => '<b>Eraro !</b> Ne eblas legi la paĝon <tt> <html>@test_proxy@</html> </tt> tra la prokura servilo <tt>',
395
+    'info_installation_systeme_publication' => 'Instalo de la publikiga sistemo...',
396
+    'info_installer_documents' => 'Vi povas aŭtomate instali ĉiujn dokumentojn troviĝantajn en la dosiero @upload@.',
397
+    'info_installer_ftp' => 'Kiel mastrumanto, vi povas instali (FTP-e) dosierojn en la dosierujon @upload@ kaj poste rekte selekti ilin ĉi tie.',
398
+    'info_installer_images' => 'Vi povas instali bildojn je la formatoj JPEG, GIF kaj PNG.',
399
+    'info_installer_images_dossier' => 'Instali bildojn en la dosierujon @upload@ por povi ilin selekti ĉi tie.',
400
+    'info_interface_complete' => 'kompleta interfaco',
401
+    'info_interface_simple' => 'Simpla interfaco',
402
+    'info_joindre_document_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj',
403
+    'info_joindre_document_rubrique' => 'Vi povas ligi kun tiu rubriko dokumentojn tiajn, kiaj',
404
+    'info_joindre_documents_article' => 'Vi povas ligi kun tiu artikolo dokumentojn tiajn, kiaj :',
405
+    'info_l_article' => 'la artikolo',
406
+    'info_la_breve' => 'la fulm-informo',
407
+    'info_la_rubrique' => 'la rubriko',
408
+    'info_langue_principale' => 'Ĉefa lingvo de la retejo',
409
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ bilderoj',
410
+    'info_les_auteurs_1' => 'de @les_auteurs@',
411
+    'info_logo_format_interdit' => 'Nur vinjetoj je formatoj @formats@ estas permesataj.',
412
+    'info_logo_max_poids' => 'Vinjetoj devige pezu malpli ol @maxi@ (tiu dosiero pezas @actuel@).',
413
+    'info_mail_fournisseur' => '[email protected]',
414
+    'info_message_2' => 'MESAĜO',
415
+    'info_message_supprime' => 'FORIGITA MESAĜO',
416
+    'info_messages_nb' => '@nb@ mesaĝoj',
417
+    'info_messages_un' => '1 mesaĝo',
418
+    'info_mise_en_ligne' => 'Dato de ĉeretigo : ',
419
+    'info_modification_parametres_securite' => 'modifoj de la sekuraj parametroj',
420
+    'info_mois_courant' => 'En la kuranta monato :',
421
+    'info_mot_cle_ajoute' => 'La jena ŝlosilvorto estas ligita kun',
422
+    'info_multi_herit' => 'Defaŭlta lingvo',
423
+    'info_multi_langues_soulignees' => 'Por la <u>substrekitaj lingvoj</u>, ĉiuj tekstoj de la interfaco estas tute aŭ parte tradukitaj. Kiam vi elektas tiujn lingvojn, multaj elementoj de la publika retejo (datenoj, formularoj) estos aŭtomate tradukitaj. Por la nesubstrekitaj lingvoj, tiuj elementoj afiŝiĝos en la ĉefa lingvo de la retejo.',
424
+    'info_multilinguisme' => 'Multlingvismo',
425
+    'info_nom_non_utilisateurs_connectes' => 'Via nomo ne aperas en la listo de la ensalutintaj uzantoj.',
426
+    'info_nom_utilisateurs_connectes' => 'Via nomo aperas en la listo de la ensalutintaj uzantoj.',
427
+    'info_nombre_en_ligne' => 'Nun ensalutintaj :',
428
+    'info_non_resultat' => 'Neniu rezulto por "@cherche_mot@"',
429
+    'info_non_utilisation_messagerie' => 'Vi ne uzas la internan mesaĝilon de tiu retejo.',
430
+    'info_nouveau_message' => 'VI HAVAS NOVAN MESAĜON',
431
+    'info_nouveaux_messages' => 'VI HAVAS @total_messages@ NOVA(J)N MESAĜO(J)N',
432
+    'info_numero_abbreviation' => 'N° ',
433
+    'info_obligatoire' => 'Tiu ĉi informo estas deviga',
434
+    'info_pense_bete' => 'MEMORIGILO',
435
+    'info_petit_ecran' => 'Eta ekrano',
436
+    'info_petition_close' => 'Petskribo fermita',
437
+    'info_pixels' => 'bilderoj',
438
+    'info_plusieurs_mots_trouves' => 'Pluraj ŝlosilvortoj trovitaj por "@cherche_mot@" :',
439
+    'info_portfolio_automatique' => 'Aŭtomata dokumentujo :',
440
+    'info_premier_resultat' => '[@debut_limit@ unuaj rezultoj el @total@]',
441
+    'info_premier_resultat_sur' => '[@debut_limit@ unuaj rezultoj el @total@]',
442
+    'info_propose_1' => '[@nom_site_spip@] Proponas : @titre@',
443
+    'info_propose_2' => 'Proponita artikolo
444 444
 ---------------',
445
-	'info_propose_3' => 'La artikolo "@titre@" estas proponita por publikigo.',
446
-	'info_propose_4' => 'Vi estas petata konsulti ĝin kaj doni vian opinion',
447
-	'info_propose_5' => 'en la forumo ligita al ĝi. Ĝi estas disponebla el la adreso :',
448
-	'info_publie_01' => 'La artikolo "@titre@" estis validigita de @connect_nom@.',
449
-	'info_publie_1' => '[@nom_site_spip@] PUBLIKIGAS : @titre@',
450
-	'info_publie_2' => 'Artikolo publikigita
445
+    'info_propose_3' => 'La artikolo "@titre@" estas proponita por publikigo.',
446
+    'info_propose_4' => 'Vi estas petata konsulti ĝin kaj doni vian opinion',
447
+    'info_propose_5' => 'en la forumo ligita al ĝi. Ĝi estas disponebla el la adreso :',
448
+    'info_publie_01' => 'La artikolo "@titre@" estis validigita de @connect_nom@.',
449
+    'info_publie_1' => '[@nom_site_spip@] PUBLIKIGAS : @titre@',
450
+    'info_publie_2' => 'Artikolo publikigita
451 451
 --------------',
452
-	'info_rechercher' => 'Serĉi',
453
-	'info_rechercher_02' => 'Serĉi :',
454
-	'info_remplacer_vignette' => 'Anstataŭi la defaŭltan vinjeton per propra vinjeto :',
455
-	'info_rubriques_nb' => '@nb@ rubrikoj',
456
-	'info_rubriques_un' => '1 rubriko',
457
-	'info_sans_titre_2' => 'sen titolo',
458
-	'info_selectionner_fichier' => 'Vi povas selekti dosieron el la dosierujo @upload@',
459
-	'info_selectionner_fichier_2' => 'Elektu dosieron :',
460
-	'info_sites_nb' => '@nb@ retejoj',
461
-	'info_sites_un' => '1 retejo',
462
-	'info_supprimer_vignette' => 'forigi la vinjeton',
463
-	'info_symbole_bleu' => 'La <b>blua</b> simbolo indikas <b>memorigilon</b> : tio estas al vi persone adresata memoriga mesaĝo.',
464
-	'info_symbole_jaune' => 'La <b>flava</b> simbolo indikas <b>anoncon al ĉiuj redaktantoj</b> : modifebla de ĉiuj mastrumantoj, kaj videbla de ĉiuj redaktantoj.',
465
-	'info_symbole_vert' => 'La <b>verda</b> simbolo indikas la <b>mesaĝojn interŝanĝitajn kun aliaj uzantoj</b> de la retejo.',
466
-	'info_telecharger_nouveau_logo' => 'Alŝuti novan vinjeton :',
467
-	'info_telecharger_ordinateur' => 'Alŝuti ekde via komputilo :',
468
-	'info_tous_resultats_enregistres' => '[ĉiuj rezultoj estas registritaj]',
469
-	'info_tout_afficher' => 'Ĉion afiŝi',
470
-	'info_travaux_texte' => 'Tiu retejo ne jam estas konfigurita. Bonvolu reveni poste...',
471
-	'info_travaux_titre' => 'Retejo prilaborata ',
472
-	'info_trop_resultat' => 'Tro da rezultoj por "@cherche_mot@" ; bonvolu fajnigi la serĉokriteriojn.',
473
-	'info_utilisation_messagerie_interne' => 'Vi uzas la internan poŝton de tiu ĉi retejo.',
474
-	'info_valider_lien' => 'validigi tiun ĉi ligilon',
475
-	'info_verifier_image' => ', bonvolu kontroli ĉu viaj bildoj estas trafe transigitaj.',
476
-	'info_vignette_defaut' => 'Defaŭlta vinjeto',
477
-	'info_vignette_personnalisee' => 'Persona vinjeto',
478
-	'info_visite' => 'vizito :',
479
-	'info_vos_rendez_vous' => 'Viaj estontaj rendevuoj',
480
-	'infos_vos_pense_bete' => 'Viaj memorigiloj',
452
+    'info_rechercher' => 'Serĉi',
453
+    'info_rechercher_02' => 'Serĉi :',
454
+    'info_remplacer_vignette' => 'Anstataŭi la defaŭltan vinjeton per propra vinjeto :',
455
+    'info_rubriques_nb' => '@nb@ rubrikoj',
456
+    'info_rubriques_un' => '1 rubriko',
457
+    'info_sans_titre_2' => 'sen titolo',
458
+    'info_selectionner_fichier' => 'Vi povas selekti dosieron el la dosierujo @upload@',
459
+    'info_selectionner_fichier_2' => 'Elektu dosieron :',
460
+    'info_sites_nb' => '@nb@ retejoj',
461
+    'info_sites_un' => '1 retejo',
462
+    'info_supprimer_vignette' => 'forigi la vinjeton',
463
+    'info_symbole_bleu' => 'La <b>blua</b> simbolo indikas <b>memorigilon</b> : tio estas al vi persone adresata memoriga mesaĝo.',
464
+    'info_symbole_jaune' => 'La <b>flava</b> simbolo indikas <b>anoncon al ĉiuj redaktantoj</b> : modifebla de ĉiuj mastrumantoj, kaj videbla de ĉiuj redaktantoj.',
465
+    'info_symbole_vert' => 'La <b>verda</b> simbolo indikas la <b>mesaĝojn interŝanĝitajn kun aliaj uzantoj</b> de la retejo.',
466
+    'info_telecharger_nouveau_logo' => 'Alŝuti novan vinjeton :',
467
+    'info_telecharger_ordinateur' => 'Alŝuti ekde via komputilo :',
468
+    'info_tous_resultats_enregistres' => '[ĉiuj rezultoj estas registritaj]',
469
+    'info_tout_afficher' => 'Ĉion afiŝi',
470
+    'info_travaux_texte' => 'Tiu retejo ne jam estas konfigurita. Bonvolu reveni poste...',
471
+    'info_travaux_titre' => 'Retejo prilaborata ',
472
+    'info_trop_resultat' => 'Tro da rezultoj por "@cherche_mot@" ; bonvolu fajnigi la serĉokriteriojn.',
473
+    'info_utilisation_messagerie_interne' => 'Vi uzas la internan poŝton de tiu ĉi retejo.',
474
+    'info_valider_lien' => 'validigi tiun ĉi ligilon',
475
+    'info_verifier_image' => ', bonvolu kontroli ĉu viaj bildoj estas trafe transigitaj.',
476
+    'info_vignette_defaut' => 'Defaŭlta vinjeto',
477
+    'info_vignette_personnalisee' => 'Persona vinjeto',
478
+    'info_visite' => 'vizito :',
479
+    'info_vos_rendez_vous' => 'Viaj estontaj rendevuoj',
480
+    'infos_vos_pense_bete' => 'Viaj memorigiloj',
481 481
 
482
-	// L
483
-	'label_ajout_id_rapide' => 'Rapida aldono',
484
-	'label_poids_fichier' => 'Grandeco',
485
-	'lien_afficher_icones_seuls' => 'Afiŝi nur la piktogramojn',
486
-	'lien_afficher_texte_icones' => 'Afiŝi la piktogramojn kaj la tekston',
487
-	'lien_afficher_texte_seul' => 'Afiŝi nur la tekston',
488
-	'lien_liberer' => 'liberigi',
489
-	'lien_liberer_tous' => 'Liberigi ĉiujn',
490
-	'lien_nouvea_pense_bete' => 'NOVA MEMORIGILO',
491
-	'lien_nouveau_message' => 'NOVA MESAĜO',
492
-	'lien_nouvelle_annonce' => 'NOVA ANONCO',
493
-	'lien_petitions' => 'PETSKRIBO',
494
-	'lien_popularite' => 'populareco : @popularite@%',
495
-	'lien_racine_site' => 'RADIKO DE LA RETEJO',
496
-	'lien_reessayer' => 'reprovi',
497
-	'lien_repondre_message' => 'Respondi al tiu mesaĝo',
498
-	'lien_supprimer' => 'forigi',
499
-	'lien_tout_afficher' => 'Afiŝi ĉion',
500
-	'lien_visite_site' => 'viziti tiun retejon',
501
-	'lien_visites' => '@visites@ vizitoj',
502
-	'lien_voir_auteur' => 'Vidi tiun aŭtoron',
503
-	'ligne' => 'Linio',
504
-	'login' => 'Ensaluti',
505
-	'login_acces_prive' => 'aliro al la privata spaco',
506
-	'login_autre_identifiant' => 'ensaluti per alia salutnomo',
507
-	'login_cookie_accepte' => 'Bonvolu agordi vian retumilon por ke ĝi akceptu ilin (almenaŭ por tiu ĉi retejo).',
508
-	'login_cookie_oblige' => 'Por sekure ensalutiĝi en tiu retejo, vi devas akcepti la kuketojn.',
509
-	'login_deconnexion_ok' => 'Elsalutinta.',
510
-	'login_erreur_pass' => 'Pasvort-eraro.',
511
-	'login_espace_prive' => 'privata spaco',
512
-	'login_identifiant_inconnu' => 'La salutnomo « @login@ » estas nekonata.',
513
-	'login_login' => 'Salutnomo :',
514
-	'login_login2' => 'Salutnomo aŭ retpoŝtadreso :',
515
-	'login_login_pass_incorrect' => '(Salutnomo aŭ pasvorto ne valida.)',
516
-	'login_motpasseoublie' => 'ĉu pasvorto forgesita ?',
517
-	'login_non_securise' => 'Atentu, tiu formularo ne estas sekurigita ;.
482
+    // L
483
+    'label_ajout_id_rapide' => 'Rapida aldono',
484
+    'label_poids_fichier' => 'Grandeco',
485
+    'lien_afficher_icones_seuls' => 'Afiŝi nur la piktogramojn',
486
+    'lien_afficher_texte_icones' => 'Afiŝi la piktogramojn kaj la tekston',
487
+    'lien_afficher_texte_seul' => 'Afiŝi nur la tekston',
488
+    'lien_liberer' => 'liberigi',
489
+    'lien_liberer_tous' => 'Liberigi ĉiujn',
490
+    'lien_nouvea_pense_bete' => 'NOVA MEMORIGILO',
491
+    'lien_nouveau_message' => 'NOVA MESAĜO',
492
+    'lien_nouvelle_annonce' => 'NOVA ANONCO',
493
+    'lien_petitions' => 'PETSKRIBO',
494
+    'lien_popularite' => 'populareco : @popularite@%',
495
+    'lien_racine_site' => 'RADIKO DE LA RETEJO',
496
+    'lien_reessayer' => 'reprovi',
497
+    'lien_repondre_message' => 'Respondi al tiu mesaĝo',
498
+    'lien_supprimer' => 'forigi',
499
+    'lien_tout_afficher' => 'Afiŝi ĉion',
500
+    'lien_visite_site' => 'viziti tiun retejon',
501
+    'lien_visites' => '@visites@ vizitoj',
502
+    'lien_voir_auteur' => 'Vidi tiun aŭtoron',
503
+    'ligne' => 'Linio',
504
+    'login' => 'Ensaluti',
505
+    'login_acces_prive' => 'aliro al la privata spaco',
506
+    'login_autre_identifiant' => 'ensaluti per alia salutnomo',
507
+    'login_cookie_accepte' => 'Bonvolu agordi vian retumilon por ke ĝi akceptu ilin (almenaŭ por tiu ĉi retejo).',
508
+    'login_cookie_oblige' => 'Por sekure ensalutiĝi en tiu retejo, vi devas akcepti la kuketojn.',
509
+    'login_deconnexion_ok' => 'Elsalutinta.',
510
+    'login_erreur_pass' => 'Pasvort-eraro.',
511
+    'login_espace_prive' => 'privata spaco',
512
+    'login_identifiant_inconnu' => 'La salutnomo « @login@ » estas nekonata.',
513
+    'login_login' => 'Salutnomo :',
514
+    'login_login2' => 'Salutnomo aŭ retpoŝtadreso :',
515
+    'login_login_pass_incorrect' => '(Salutnomo aŭ pasvorto ne valida.)',
516
+    'login_motpasseoublie' => 'ĉu pasvorto forgesita ?',
517
+    'login_non_securise' => 'Atentu, tiu formularo ne estas sekurigita ;.
518 518
    Se vi ne volas ke via pasvorto estu fraŭde
519 519
    interkaptita ĉe la reto, bonvolu aktivigi
520 520
    Javascript-on en via retumilo',
521
-	'login_nouvelle_tentative' => 'Nova provo',
522
-	'login_par_ici' => 'Vi estas registrita... ĉi tien...',
523
-	'login_pass2' => 'Pasvorto :',
524
-	'login_preferez_refuser' => '<b>Se vi preferas rifuzi kuketojn</b>, alia konektometodo (malpli sekura) estas je via dispono :',
525
-	'login_recharger' => 'freŝigi tiun ĉi paĝon',
526
-	'login_rester_identifie' => 'Resti ensalutinta kelkajn tagojn', # MODIF
527
-	'login_retour_public' => 'Reen al la publika spaco',
528
-	'login_retour_site' => 'Reen al la publika spaco',
529
-	'login_retoursitepublic' => 'reen al la publika spaco',
530
-	'login_sans_cookie' => 'Ensaluto sen kuketo',
531
-	'login_securise' => 'Sekura salutnomo',
532
-	'login_sinscrire' => 'registriĝi', # MODIF
533
-	'login_test_navigateur' => 'testo retumilo/rekonektiĝo',
534
-	'login_verifiez_navigateur' => '(Kontrolu tamen ke via retumilo ne memoras pri via pasvorto...)',
521
+    'login_nouvelle_tentative' => 'Nova provo',
522
+    'login_par_ici' => 'Vi estas registrita... ĉi tien...',
523
+    'login_pass2' => 'Pasvorto :',
524
+    'login_preferez_refuser' => '<b>Se vi preferas rifuzi kuketojn</b>, alia konektometodo (malpli sekura) estas je via dispono :',
525
+    'login_recharger' => 'freŝigi tiun ĉi paĝon',
526
+    'login_rester_identifie' => 'Resti ensalutinta kelkajn tagojn', # MODIF
527
+    'login_retour_public' => 'Reen al la publika spaco',
528
+    'login_retour_site' => 'Reen al la publika spaco',
529
+    'login_retoursitepublic' => 'reen al la publika spaco',
530
+    'login_sans_cookie' => 'Ensaluto sen kuketo',
531
+    'login_securise' => 'Sekura salutnomo',
532
+    'login_sinscrire' => 'registriĝi', # MODIF
533
+    'login_test_navigateur' => 'testo retumilo/rekonektiĝo',
534
+    'login_verifiez_navigateur' => '(Kontrolu tamen ke via retumilo ne memoras pri via pasvorto...)',
535 535
 
536
-	// M
537
-	'masquer_colonne' => 'Kaŝi tiun ĉi kolumnon',
538
-	'masquer_trad' => 'kaŝi la tradukojn',
539
-	'message_nouveaux_identifiants_echec' => 'Ne eblas krei novajn ensalutilojn.',
540
-	'message_nouveaux_identifiants_echec_envoi' => 'Ne eblis sendi la novajn ensalutilojn.',
541
-	'message_nouveaux_identifiants_ok' => 'La novaj ensalutilojn estis senditaj al @email@.',
542
-	'module_fichiers_langues' => 'Dosieroj de lingvo',
536
+    // M
537
+    'masquer_colonne' => 'Kaŝi tiun ĉi kolumnon',
538
+    'masquer_trad' => 'kaŝi la tradukojn',
539
+    'message_nouveaux_identifiants_echec' => 'Ne eblas krei novajn ensalutilojn.',
540
+    'message_nouveaux_identifiants_echec_envoi' => 'Ne eblis sendi la novajn ensalutilojn.',
541
+    'message_nouveaux_identifiants_ok' => 'La novaj ensalutilojn estis senditaj al @email@.',
542
+    'module_fichiers_langues' => 'Dosieroj de lingvo',
543 543
 
544
-	// N
545
-	'navigateur_pas_redirige' => 'Se via retumilo ne redirektiĝas, daŭrigu musklakante ĉi tie.',
546
-	'numero' => 'Numero',
544
+    // N
545
+    'navigateur_pas_redirige' => 'Se via retumilo ne redirektiĝas, daŭrigu musklakante ĉi tie.',
546
+    'numero' => 'Numero',
547 547
 
548
-	// O
549
-	'occurence' => 'Trafo',
550
-	'onglet_affacer_base' => 'Forigi la datenbazon',
551
-	'onglet_auteur' => 'La aŭtoro',
552
-	'onglet_contenu_site' => 'Enhavo de la retejo',
553
-	'onglet_evolution_visite_mod' => 'Evoluado',
554
-	'onglet_fonctions_avances' => 'Ampleksaj funkcioj',
555
-	'onglet_informations_personnelles' => 'Personaj datenoj',
556
-	'onglet_interactivite' => 'Interagado',
557
-	'onglet_messagerie' => 'Mesaĝilo',
558
-	'onglet_repartition_rubrique' => 'Distribuo laŭ rubrikoj',
559
-	'onglet_save_restaur_base' => 'Savkopii/restaŭri la datenbazon',
560
-	'onglet_vider_cache' => 'Malplenigi la staplon',
548
+    // O
549
+    'occurence' => 'Trafo',
550
+    'onglet_affacer_base' => 'Forigi la datenbazon',
551
+    'onglet_auteur' => 'La aŭtoro',
552
+    'onglet_contenu_site' => 'Enhavo de la retejo',
553
+    'onglet_evolution_visite_mod' => 'Evoluado',
554
+    'onglet_fonctions_avances' => 'Ampleksaj funkcioj',
555
+    'onglet_informations_personnelles' => 'Personaj datenoj',
556
+    'onglet_interactivite' => 'Interagado',
557
+    'onglet_messagerie' => 'Mesaĝilo',
558
+    'onglet_repartition_rubrique' => 'Distribuo laŭ rubrikoj',
559
+    'onglet_save_restaur_base' => 'Savkopii/restaŭri la datenbazon',
560
+    'onglet_vider_cache' => 'Malplenigi la staplon',
561 561
 
562
-	// P
563
-	'pass_choix_pass' => 'Bonvolu elekti vian novan pasvorton :',
564
-	'pass_erreur' => 'Eraro',
565
-	'pass_erreur_acces_refuse' => '<b>Eraro :</b> vi ne plu havas aliron al tiu retejo.',
566
-	'pass_erreur_code_inconnu' => '<b>Eraro :</b> tiu kodo kongruas kun neniu el la vizitantoj rajtantaj aliri tiun ĉi retejon.',
567
-	'pass_erreur_non_enregistre' => '<b>Eraro :</b> la retpoŝtadreso <tt>@email_oubli@</tt> ne estas registrita ĉi tie.',
568
-	'pass_erreur_non_valide' => '<b>Eraro :</b> tiu retpoŝtadreso <tt>@email_oubli@</tt> ne validas !',
569
-	'pass_erreur_probleme_technique' => '<b>Eraro :</b> pro teknika problemo, la retmesaĝo ne povas esti sendata.',
570
-	'pass_espace_prive_bla' => 'La privata spaco de tiu ĉi retejo estas malfermita al
562
+    // P
563
+    'pass_choix_pass' => 'Bonvolu elekti vian novan pasvorton :',
564
+    'pass_erreur' => 'Eraro',
565
+    'pass_erreur_acces_refuse' => '<b>Eraro :</b> vi ne plu havas aliron al tiu retejo.',
566
+    'pass_erreur_code_inconnu' => '<b>Eraro :</b> tiu kodo kongruas kun neniu el la vizitantoj rajtantaj aliri tiun ĉi retejon.',
567
+    'pass_erreur_non_enregistre' => '<b>Eraro :</b> la retpoŝtadreso <tt>@email_oubli@</tt> ne estas registrita ĉi tie.',
568
+    'pass_erreur_non_valide' => '<b>Eraro :</b> tiu retpoŝtadreso <tt>@email_oubli@</tt> ne validas !',
569
+    'pass_erreur_probleme_technique' => '<b>Eraro :</b> pro teknika problemo, la retmesaĝo ne povas esti sendata.',
570
+    'pass_espace_prive_bla' => 'La privata spaco de tiu ĉi retejo estas malfermita al
571 571
   vizitantoj, post ties registriĝo. Tio farita, vi povos
572 572
   konsulti la redaktatajn artikolojn, proponi artikolojn
573 573
   kaj partopreni en ĉiuj forumoj.',
574
-	'pass_forum_bla' => 'Vi petis por kontribui en forumo
574
+    'pass_forum_bla' => 'Vi petis por kontribui en forumo
575 575
   rezervita al registritaj vizitantoj.',
576
-	'pass_indiquez_cidessous' => 'Indiku ĉi-sube la retpoŝtadreson laŭ kiu vi
576
+    'pass_indiquez_cidessous' => 'Indiku ĉi-sube la retpoŝtadreson laŭ kiu vi
577 577
    antaŭe registriĝis. Vi
578 578
    ricevos retmesaĝon kiu indikos al vi kion fari por
579 579
    reakiri vian alir-rajton.',
580
-	'pass_mail_passcookie' => '(tio ĉi estas aŭtomata mesaĝo)
580
+    'pass_mail_passcookie' => '(tio ĉi estas aŭtomata mesaĝo)
581 581
 Por reakiri alireblon al la retejo
582 582
 @nom_site_spip@ (@adresse_site@)
583 583
 
@@ -589,145 +589,145 @@  discard block
 block discarded – undo
589 589
 kaj ensaluti.
590 590
 
591 591
 ',
592
-	'pass_mot_oublie' => 'Pasvorto forgesita',
593
-	'pass_nouveau_enregistre' => 'Via nova pasvorto estas registrita.',
594
-	'pass_nouveau_pass' => 'Nova pasvorto',
595
-	'pass_ok' => 'JES',
596
-	'pass_oubli_mot' => 'Pasvorto-forgeso',
597
-	'pass_procedure_changer' => 'Por ŝanĝi vian pasvorton, specifu al ni la asociitan retpoŝtadreson el via konto.',
598
-	'pass_quitter_fenetre' => 'Forlasi tiun fenestron',
599
-	'pass_rappel_login' => 'Memoru : via ensalutilo (salutnomo) estas « @login@ ».',
600
-	'pass_recevoir_mail' => 'Vi ricevos retmesaĝon indikantan al vi kiel retrovi vian aliron al la retejo.', # MODIF
601
-	'pass_retour_public' => 'Reen al la publika spaco',
602
-	'pass_rien_a_faire_ici' => 'Nenion por fari ĉi tie.',
603
-	'pass_vousinscrire' => 'Registriĝi ĉe tiu retejo',
604
-	'precedent' => 'antaŭan',
605
-	'previsualisation' => 'Antaŭrigardo',
606
-	'previsualiser' => 'Antaŭrigardi',
592
+    'pass_mot_oublie' => 'Pasvorto forgesita',
593
+    'pass_nouveau_enregistre' => 'Via nova pasvorto estas registrita.',
594
+    'pass_nouveau_pass' => 'Nova pasvorto',
595
+    'pass_ok' => 'JES',
596
+    'pass_oubli_mot' => 'Pasvorto-forgeso',
597
+    'pass_procedure_changer' => 'Por ŝanĝi vian pasvorton, specifu al ni la asociitan retpoŝtadreson el via konto.',
598
+    'pass_quitter_fenetre' => 'Forlasi tiun fenestron',
599
+    'pass_rappel_login' => 'Memoru : via ensalutilo (salutnomo) estas « @login@ ».',
600
+    'pass_recevoir_mail' => 'Vi ricevos retmesaĝon indikantan al vi kiel retrovi vian aliron al la retejo.', # MODIF
601
+    'pass_retour_public' => 'Reen al la publika spaco',
602
+    'pass_rien_a_faire_ici' => 'Nenion por fari ĉi tie.',
603
+    'pass_vousinscrire' => 'Registriĝi ĉe tiu retejo',
604
+    'precedent' => 'antaŭan',
605
+    'previsualisation' => 'Antaŭrigardo',
606
+    'previsualiser' => 'Antaŭrigardi',
607 607
 
608
-	// R
609
-	'retour' => 'Reen',
608
+    // R
609
+    'retour' => 'Reen',
610 610
 
611
-	// S
612
-	'spip_conforme_dtd' => 'SPIP konsideras tiun dokumenton konforma al sia DOCTYPE :',
613
-	'squelette' => 'skeleto',
614
-	'squelette_inclus_ligne' => 'skeleto inkluzivita, linio',
615
-	'squelette_ligne' => 'skeleto, linio',
616
-	'stats_visites_et_popularite' => '@visites@ vizitoj ; populareco : @popularite@',
617
-	'suivant' => 'sekvanta',
611
+    // S
612
+    'spip_conforme_dtd' => 'SPIP konsideras tiun dokumenton konforma al sia DOCTYPE :',
613
+    'squelette' => 'skeleto',
614
+    'squelette_inclus_ligne' => 'skeleto inkluzivita, linio',
615
+    'squelette_ligne' => 'skeleto, linio',
616
+    'stats_visites_et_popularite' => '@visites@ vizitoj ; populareco : @popularite@',
617
+    'suivant' => 'sekvanta',
618 618
 
619
-	// T
620
-	'taille_go' => '@taille@ Go',
621
-	'taille_ko' => '@taille@ kb',
622
-	'taille_mo' => '@taille@ Mb',
623
-	'taille_octets' => '@taille@ bitokoj',
624
-	'taille_octets_bi' => '@taille@ bitokoj',
625
-	'texte_actualite_site_1' => 'Kiam vi estos kutimiĝinta kun la interfaco, vi povos musklaki sur « ',
626
-	'texte_actualite_site_2' => 'kompleta interfaco',
627
-	'texte_actualite_site_3' => ' » por malfermi pliajn eblecojn.',
628
-	'texte_creation_automatique_vignette' => 'La aŭtomata kreado de antaŭrigardaj vinjetoj estas aktivigita ĉe tiu ĉi retejo. Se vi instalas pere de tiu ĉi formularo bildojn je la formato(j) @gd_formats@, ili estos akompanataj de vinjeto kun maksimuma grandeco de @taille_preview@ bilderoj.',
629
-	'texte_documents_associes' => 'La sekvantaj dokumentoj estas asociitaj al la artikolo,
619
+    // T
620
+    'taille_go' => '@taille@ Go',
621
+    'taille_ko' => '@taille@ kb',
622
+    'taille_mo' => '@taille@ Mb',
623
+    'taille_octets' => '@taille@ bitokoj',
624
+    'taille_octets_bi' => '@taille@ bitokoj',
625
+    'texte_actualite_site_1' => 'Kiam vi estos kutimiĝinta kun la interfaco, vi povos musklaki sur « ',
626
+    'texte_actualite_site_2' => 'kompleta interfaco',
627
+    'texte_actualite_site_3' => ' » por malfermi pliajn eblecojn.',
628
+    'texte_creation_automatique_vignette' => 'La aŭtomata kreado de antaŭrigardaj vinjetoj estas aktivigita ĉe tiu ĉi retejo. Se vi instalas pere de tiu ĉi formularo bildojn je la formato(j) @gd_formats@, ili estos akompanataj de vinjeto kun maksimuma grandeco de @taille_preview@ bilderoj.',
629
+    'texte_documents_associes' => 'La sekvantaj dokumentoj estas asociitaj al la artikolo,
630 630
     sed ili ne estis rekte enmetitaj en ĝin.
631 631
     Laŭ la enpaĝigo de la publika spaco,
632 632
     ili povos aperi en formo de alkroĉitaj dokumentoj.',
633
-	'texte_erreur_mise_niveau_base' => 'Datenbazo-eraro dum la alniveligo.
633
+    'texte_erreur_mise_niveau_base' => 'Datenbazo-eraro dum la alniveligo.
634 634
   La bildo <b>@fichier@</b> ne transŝutiĝis (artikolo @id_article@).
635 635
   Bone notu tiun referencon, reprovu la alniveligon,
636 636
   kaj fine kontrolu ke la bildoj plu aperu
637 637
 en la artikoloj.',
638
-	'texte_erreur_visiteur' => 'Vi provis eniri la privatan spacon pere de ne alir-rajtiga salutnomo.',
639
-	'texte_inc_auth_1' => 'Vi ensalutis laŭ la
638
+    'texte_erreur_visiteur' => 'Vi provis eniri la privatan spacon pere de ne alir-rajtiga salutnomo.',
639
+    'texte_inc_auth_1' => 'Vi ensalutis laŭ la
640 640
   salutnomo <b>@auth_login@</b>, sed tiu ne/ne plu ekzistas en la datenbazo.
641 641
   Provu',
642
-	'texte_inc_auth_2' => 'rekonektiĝi',
643
-	'texte_inc_auth_3' => ', post esti eventuale ferminta kaj
642
+    'texte_inc_auth_2' => 'rekonektiĝi',
643
+    'texte_inc_auth_3' => ', post esti eventuale ferminta kaj
644 644
   restartiginta via retumilon.',
645
-	'texte_inc_config' => 'La ŝanĝoj faritaj en tiuj ĉi paĝoj influas grave la
645
+    'texte_inc_config' => 'La ŝanĝoj faritaj en tiuj ĉi paĝoj influas grave la
646 646
  funkciadon de via retejo. Ni konsilas al vi ne plu interveni antaŭ ol esti pli
647 647
  kutimiĝinta pri la funkciado de la SPIP-sistemo. <br /><br /><b>Pli
648 648
  ĝenerale, estas tre konsilinde lasi la mastrumadon de tiuj ĉi paĝoj
649 649
 sub la respondeco de la ĉefa retejestro .</b>',
650
-	'texte_inc_meta_1' => 'La sistemo detektis eraron dum skribado de la dosiero <code>@fichier@</code>. Bonvolu, kiel mastrumanto de la retejo,',
651
-	'texte_inc_meta_2' => 'kontroli la skriborajtojn',
652
-	'texte_inc_meta_3' => 'en la dosierujo <code>@repertoire@</code>.',
653
-	'texte_statut_en_cours_redaction' => 'Redaktataj',
654
-	'texte_statut_poubelle' => 'en rubujo',
655
-	'texte_statut_propose_evaluation' => 'proponita por taksado',
656
-	'texte_statut_publie' => 'rete publikigita',
657
-	'texte_statut_refuse' => 'rifuzita',
658
-	'titre_ajouter_mot_cle' => 'ALDONI ŜLOSILVORTON :',
659
-	'titre_cadre_raccourcis' => 'RAPIDAJ ALIROJ :',
660
-	'titre_changer_couleur_interface' => 'Ŝanĝi la koloron de la interfaco',
661
-	'titre_image_admin_article' => 'Vi povas mastrumi tiun ĉi artikolon',
662
-	'titre_image_administrateur' => 'Mastrumanto',
663
-	'titre_image_aide' => 'Helpo pri tiu elemento',
664
-	'titre_image_auteur_supprime' => 'Aŭtoro forigita',
665
-	'titre_image_redacteur' => 'Redaktanto sen alireblo',
666
-	'titre_image_redacteur_02' => 'Redaktanto',
667
-	'titre_image_selecteur' => 'Montri la liston',
668
-	'titre_image_visiteur' => 'Vizitanto',
669
-	'titre_joindre_document' => 'ALDONI DOKUMENTON',
670
-	'titre_mots_cles' => 'ŜLOSILVORTOJ',
671
-	'titre_probleme_technique' => 'Atentu : teknika problemo  (SQL-servilo) malhelpas la aliron al tiu parto de la retejo. Dankon pro via komprenemo.',
672
-	'titre_publier_document' => 'PUBLIKIGI DOKUMENTON EN TIU ĈI RUBRIKO',
673
-	'titre_signatures_attente' => 'Subskriboj validotaj',
674
-	'titre_signatures_confirmees' => 'Subskriboj konfirmitaj',
675
-	'titre_statistiques' => 'Statistikoj de la retejo',
676
-	'titre_titre_document' => 'Titolo de la dokumento :',
677
-	'todo' => 'venonta',
678
-	'trad_definir_reference' => 'Elekti „@titre@“ kiel referenco de la tradukoj',
679
-	'trad_reference' => '(referenco de la traduktoj)',
650
+    'texte_inc_meta_1' => 'La sistemo detektis eraron dum skribado de la dosiero <code>@fichier@</code>. Bonvolu, kiel mastrumanto de la retejo,',
651
+    'texte_inc_meta_2' => 'kontroli la skriborajtojn',
652
+    'texte_inc_meta_3' => 'en la dosierujo <code>@repertoire@</code>.',
653
+    'texte_statut_en_cours_redaction' => 'Redaktataj',
654
+    'texte_statut_poubelle' => 'en rubujo',
655
+    'texte_statut_propose_evaluation' => 'proponita por taksado',
656
+    'texte_statut_publie' => 'rete publikigita',
657
+    'texte_statut_refuse' => 'rifuzita',
658
+    'titre_ajouter_mot_cle' => 'ALDONI ŜLOSILVORTON :',
659
+    'titre_cadre_raccourcis' => 'RAPIDAJ ALIROJ :',
660
+    'titre_changer_couleur_interface' => 'Ŝanĝi la koloron de la interfaco',
661
+    'titre_image_admin_article' => 'Vi povas mastrumi tiun ĉi artikolon',
662
+    'titre_image_administrateur' => 'Mastrumanto',
663
+    'titre_image_aide' => 'Helpo pri tiu elemento',
664
+    'titre_image_auteur_supprime' => 'Aŭtoro forigita',
665
+    'titre_image_redacteur' => 'Redaktanto sen alireblo',
666
+    'titre_image_redacteur_02' => 'Redaktanto',
667
+    'titre_image_selecteur' => 'Montri la liston',
668
+    'titre_image_visiteur' => 'Vizitanto',
669
+    'titre_joindre_document' => 'ALDONI DOKUMENTON',
670
+    'titre_mots_cles' => 'ŜLOSILVORTOJ',
671
+    'titre_probleme_technique' => 'Atentu : teknika problemo  (SQL-servilo) malhelpas la aliron al tiu parto de la retejo. Dankon pro via komprenemo.',
672
+    'titre_publier_document' => 'PUBLIKIGI DOKUMENTON EN TIU ĈI RUBRIKO',
673
+    'titre_signatures_attente' => 'Subskriboj validotaj',
674
+    'titre_signatures_confirmees' => 'Subskriboj konfirmitaj',
675
+    'titre_statistiques' => 'Statistikoj de la retejo',
676
+    'titre_titre_document' => 'Titolo de la dokumento :',
677
+    'todo' => 'venonta',
678
+    'trad_definir_reference' => 'Elekti „@titre@“ kiel referenco de la tradukoj',
679
+    'trad_reference' => '(referenco de la traduktoj)',
680 680
 
681
-	// U
682
-	'upload_limit' => 'Tiu dosiero estas tro granda por la servilo : la maksimuma dosiergrando, kiam oni alŝutas, estas @max@.',
681
+    // U
682
+    'upload_limit' => 'Tiu dosiero estas tro granda por la servilo : la maksimuma dosiergrando, kiam oni alŝutas, estas @max@.',
683 683
 
684
-	// Z
685
-	'zbug_balise_b_aval' => ' : posta B marko',
686
-	'zbug_balise_inexistante' => 'Marko @balise@ malbone deklarita por @from@',
687
-	'zbug_balise_sans_argument' => 'Mankas argumento en la marko @balise@',
688
-	'zbug_boucle' => 'iteracio',
689
-	'zbug_boucle_recursive_undef' => 'Nedifinita rekursia iteracio : @nom@',
690
-	'zbug_calcul' => 'komputado',
691
-	'zbug_champ_hors_boucle' => 'Kampo @champ@ eksteras iteracion',
692
-	'zbug_champ_hors_motif' => 'Kampo @champ@ eksteras kontekston @motif@',
693
-	'zbug_code' => 'kodo',
694
-	'zbug_critere_inconnu' => 'Nekonata kriterio @critere@',
695
-	'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} pri tabelo sen atoma ĉefŝlosilo',
696
-	'zbug_distant_interdit' => 'Ago ĉe tiu ekstera datenbazo malpermesata',
697
-	'zbug_doublon_table_sans_cle_primaire' => 'Duobloj uzitaj ĉe tabelo, kiu ne havas simplan ĉefŝlosilon',
698
-	'zbug_doublon_table_sans_index' => 'Duoblaĵoj en la datentabelo sen indekso',
699
-	'zbug_erreur_boucle_double' => 'Duobla difino de la interacio @id@',
700
-	'zbug_erreur_boucle_fermant' => 'Iteracio @id@ ne fermita',
701
-	'zbug_erreur_boucle_syntaxe' => 'Sintakso de la iteracia @id@ ne valida',
702
-	'zbug_erreur_compilation' => 'Kompil-eraro',
703
-	'zbug_erreur_execution_page' => 'Eraro dum plenumo',
704
-	'zbug_erreur_filtre' => 'Filtrilo @filtre@ nedifinita',
705
-	'zbug_erreur_meme_parent' => 'La kriterio {meme_parent} nur aplikiĝas je iteracioj (FORUMS) aŭ (RUBRIQUES)',
706
-	'zbug_erreur_squelette' => 'Eraro(j) en la skeleto',
707
-	'zbug_hors_compilation' => 'Ne kompilita',
708
-	'zbug_info_erreur_squelette' => 'Eraro ĉe la retejo',
709
-	'zbug_inversion_ordre_inexistant' => 'Inversigo de ne ekzistanta ordo',
710
-	'zbug_pagination_sans_critere' => 'Marko #PAGINATION senkriteria {pagination} aŭ uzata en rekursia iteracio',
711
-	'zbug_parametres_inclus_incorrects' => 'Ne korektaj inkludaj parametroj : @param@',
712
-	'zbug_profile' => 'Kalkuldaŭro : @time@',
713
-	'zbug_resultat' => 'rezulto',
714
-	'zbug_serveur_indefini' => 'Nedifinata SQL-servilo',
715
-	'zbug_statistiques' => 'statistikoj pri SQL-informpetoj ordigitaj laŭ daŭro',
716
-	'zbug_table_inconnue' => 'nekonata SQL « @table@ » tabelo',
717
-	'zxml_connus_attributs' => 'konataj atributoj',
718
-	'zxml_de' => 'de',
719
-	'zxml_inconnu_attribut' => 'nekonataj atributoj',
720
-	'zxml_inconnu_balise' => 'ne konita marko',
721
-	'zxml_inconnu_entite' => 'ne konata ento',
722
-	'zxml_inconnu_id' => 'ne konata ID',
723
-	'zxml_mais_de' => 'sed',
724
-	'zxml_non_conforme' => 'ne kongrua kun la motivo',
725
-	'zxml_non_fils' => 'ne estas filo de',
726
-	'zxml_nonvide_balise' => 'ne malplena marko',
727
-	'zxml_obligatoire_attribut' => 'deviga atributo sed foresta en',
728
-	'zxml_succession_fils_incorrecte' => 'sinsekvo de filoj korekta',
729
-	'zxml_survoler' => 'superflugi por ekvidi korektaĵojn',
730
-	'zxml_valeur_attribut' => 'atributa valoro',
731
-	'zxml_vide_balise' => 'malplena marko',
732
-	'zxml_vu' => 'antaŭe vidita',
684
+    // Z
685
+    'zbug_balise_b_aval' => ' : posta B marko',
686
+    'zbug_balise_inexistante' => 'Marko @balise@ malbone deklarita por @from@',
687
+    'zbug_balise_sans_argument' => 'Mankas argumento en la marko @balise@',
688
+    'zbug_boucle' => 'iteracio',
689
+    'zbug_boucle_recursive_undef' => 'Nedifinita rekursia iteracio : @nom@',
690
+    'zbug_calcul' => 'komputado',
691
+    'zbug_champ_hors_boucle' => 'Kampo @champ@ eksteras iteracion',
692
+    'zbug_champ_hors_motif' => 'Kampo @champ@ eksteras kontekston @motif@',
693
+    'zbug_code' => 'kodo',
694
+    'zbug_critere_inconnu' => 'Nekonata kriterio @critere@',
695
+    'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} pri tabelo sen atoma ĉefŝlosilo',
696
+    'zbug_distant_interdit' => 'Ago ĉe tiu ekstera datenbazo malpermesata',
697
+    'zbug_doublon_table_sans_cle_primaire' => 'Duobloj uzitaj ĉe tabelo, kiu ne havas simplan ĉefŝlosilon',
698
+    'zbug_doublon_table_sans_index' => 'Duoblaĵoj en la datentabelo sen indekso',
699
+    'zbug_erreur_boucle_double' => 'Duobla difino de la interacio @id@',
700
+    'zbug_erreur_boucle_fermant' => 'Iteracio @id@ ne fermita',
701
+    'zbug_erreur_boucle_syntaxe' => 'Sintakso de la iteracia @id@ ne valida',
702
+    'zbug_erreur_compilation' => 'Kompil-eraro',
703
+    'zbug_erreur_execution_page' => 'Eraro dum plenumo',
704
+    'zbug_erreur_filtre' => 'Filtrilo @filtre@ nedifinita',
705
+    'zbug_erreur_meme_parent' => 'La kriterio {meme_parent} nur aplikiĝas je iteracioj (FORUMS) aŭ (RUBRIQUES)',
706
+    'zbug_erreur_squelette' => 'Eraro(j) en la skeleto',
707
+    'zbug_hors_compilation' => 'Ne kompilita',
708
+    'zbug_info_erreur_squelette' => 'Eraro ĉe la retejo',
709
+    'zbug_inversion_ordre_inexistant' => 'Inversigo de ne ekzistanta ordo',
710
+    'zbug_pagination_sans_critere' => 'Marko #PAGINATION senkriteria {pagination} aŭ uzata en rekursia iteracio',
711
+    'zbug_parametres_inclus_incorrects' => 'Ne korektaj inkludaj parametroj : @param@',
712
+    'zbug_profile' => 'Kalkuldaŭro : @time@',
713
+    'zbug_resultat' => 'rezulto',
714
+    'zbug_serveur_indefini' => 'Nedifinata SQL-servilo',
715
+    'zbug_statistiques' => 'statistikoj pri SQL-informpetoj ordigitaj laŭ daŭro',
716
+    'zbug_table_inconnue' => 'nekonata SQL « @table@ » tabelo',
717
+    'zxml_connus_attributs' => 'konataj atributoj',
718
+    'zxml_de' => 'de',
719
+    'zxml_inconnu_attribut' => 'nekonataj atributoj',
720
+    'zxml_inconnu_balise' => 'ne konita marko',
721
+    'zxml_inconnu_entite' => 'ne konata ento',
722
+    'zxml_inconnu_id' => 'ne konata ID',
723
+    'zxml_mais_de' => 'sed',
724
+    'zxml_non_conforme' => 'ne kongrua kun la motivo',
725
+    'zxml_non_fils' => 'ne estas filo de',
726
+    'zxml_nonvide_balise' => 'ne malplena marko',
727
+    'zxml_obligatoire_attribut' => 'deviga atributo sed foresta en',
728
+    'zxml_succession_fils_incorrecte' => 'sinsekvo de filoj korekta',
729
+    'zxml_survoler' => 'superflugi por ekvidi korektaĵojn',
730
+    'zxml_valeur_attribut' => 'atributa valoro',
731
+    'zxml_vide_balise' => 'malplena marko',
732
+    'zxml_vu' => 'antaŭe vidita',
733 733
 ];
Please login to merge, or discard this patch.
ecrire/lang/ecrire_fa.php 1 patch
Indentation   +794 added lines, -794 removed lines patch added patch discarded remove patch
@@ -5,829 +5,829 @@
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'activer_plugin' => 'plugin را فعال کنید',
10
-	'affichage' => 'ارايه',
11
-	'aide_non_disponible' => 'اين بخش كمكى براى اين زبان هنوز در دسترس نمى باشد',
12
-	'annuler_recherche' => 'لغو جستجو',
13
-	'auteur' => 'نویسنده:',
14
-	'avis_acces_interdit' => 'دسترسى به اين بخش ممنوع مى باشد',
15
-	'avis_article_modifie' => 'توجه ،              @nom_auteur_modif@                                        روى اين مقاله @date_diff@ پيش كار ميكرده',
16
-	'avis_aucun_resultat' => '.بدون نتيجه',
17
-	'avis_base_inaccessible' => 'دسترسي به پايگاه داده‌هاي @base@ ممكن نيست. ',
18
-	'avis_chemin_invalide_1' => 'راهى كه انتخاب كرده ايد',
19
-	'avis_chemin_invalide_2' => 'معتبر نميباشد. خواهشمند است به صفحه پيشين برگرديد و اطلاعات داده شده را بازنگرى كنيد',
20
-	'avis_connexion_echec_1' => 'ارتباط با پايگاه داده‌‌ها  برقرار نشد',
21
-	'avis_connexion_echec_2' => 'به صفحه پيشين برگرديد و اطلاعاتي را كه داده ايد بازنگرى كنيد',
22
-	'avis_connexion_echec_3' => 'براى تعدادى از سرورها شما بايد درخواست فعال كردن دسترسى به پايگاه ماى اس كيو ال را پيش از استفاده آن بكنيد. اگر ارتباط برقرار نشد مطمئن شويد كه اين كار را انجام داده ايد              ',
23
-	'avis_connexion_erreur_nom_base' => 'نام پايگاه نمي‌تواند چيزي جز حروف، ارقام و خط تيره باشد',
24
-	'avis_connexion_ldap_echec_1' => 'LDAP.ارتباط با سرور ال دى ا پى برقرار نشد                ',
25
-	'avis_connexion_ldap_echec_2' => 'به صفحه پيش برگرديد و ببينيد اطلاعاتي را كه داده ايد صحيح ميباشند',
26
-	'avis_connexion_ldap_echec_3' => 'از سيستم ال دى ا پى به طور پى در پى براى ورود كاربران استفاده نكنيد',
27
-	'avis_deplacement_rubrique' => 'توجه ! اين بخش داراى@contient_breves@ brève@scb@ ميباشد : خواهشمند است درصورت جابجائي آن، علامت مربوطه را تائيد كنيد ',
28
-	'avis_erreur_connexion_mysql' => 'خطاى اتصال SQL   ',
29
-	'avis_espace_interdit' => '<b>بخش ممنوع</b><p> اسپيپ قبلأ نصب شده', # MODIF
30
-	'avis_lecture_noms_bases_1' => '  برنامه نصبى نتوانست نام داده پى هاى مستقر شده را بخواند ',
31
-	'avis_lecture_noms_bases_2' => '  يا هيچ پايگاهى موجود نميباشد، يا كاركردى كه اجازه فهرست گذارى پايگاه ها راميدهد بدلايل ايمنى غير فعال شده است     (مورد بعضى از ميزبانان ميباشد)',
32
-	'avis_lecture_noms_bases_3' => ' در  گزينش دوم، اين احتمال وجود دارد كه پايگاهى   كه حامل نام شما براى ارتباط ميباشد استفاده شده باشد',
33
-	'avis_non_acces_page' => 'اين صفحه در دسترس شما نميباشد',
34
-	'avis_operation_echec' => 'کارکرد نتیجه نداد.',
35
-	'avis_operation_impossible' => 'عمل غیرممکن',
36
-	'avis_suppression_base' => ' توجه! حذف داده ها غير قابل برگشت ميباشد',
8
+    // A
9
+    'activer_plugin' => 'plugin را فعال کنید',
10
+    'affichage' => 'ارايه',
11
+    'aide_non_disponible' => 'اين بخش كمكى براى اين زبان هنوز در دسترس نمى باشد',
12
+    'annuler_recherche' => 'لغو جستجو',
13
+    'auteur' => 'نویسنده:',
14
+    'avis_acces_interdit' => 'دسترسى به اين بخش ممنوع مى باشد',
15
+    'avis_article_modifie' => 'توجه ،              @nom_auteur_modif@                                        روى اين مقاله @date_diff@ پيش كار ميكرده',
16
+    'avis_aucun_resultat' => '.بدون نتيجه',
17
+    'avis_base_inaccessible' => 'دسترسي به پايگاه داده‌هاي @base@ ممكن نيست. ',
18
+    'avis_chemin_invalide_1' => 'راهى كه انتخاب كرده ايد',
19
+    'avis_chemin_invalide_2' => 'معتبر نميباشد. خواهشمند است به صفحه پيشين برگرديد و اطلاعات داده شده را بازنگرى كنيد',
20
+    'avis_connexion_echec_1' => 'ارتباط با پايگاه داده‌‌ها  برقرار نشد',
21
+    'avis_connexion_echec_2' => 'به صفحه پيشين برگرديد و اطلاعاتي را كه داده ايد بازنگرى كنيد',
22
+    'avis_connexion_echec_3' => 'براى تعدادى از سرورها شما بايد درخواست فعال كردن دسترسى به پايگاه ماى اس كيو ال را پيش از استفاده آن بكنيد. اگر ارتباط برقرار نشد مطمئن شويد كه اين كار را انجام داده ايد              ',
23
+    'avis_connexion_erreur_nom_base' => 'نام پايگاه نمي‌تواند چيزي جز حروف، ارقام و خط تيره باشد',
24
+    'avis_connexion_ldap_echec_1' => 'LDAP.ارتباط با سرور ال دى ا پى برقرار نشد                ',
25
+    'avis_connexion_ldap_echec_2' => 'به صفحه پيش برگرديد و ببينيد اطلاعاتي را كه داده ايد صحيح ميباشند',
26
+    'avis_connexion_ldap_echec_3' => 'از سيستم ال دى ا پى به طور پى در پى براى ورود كاربران استفاده نكنيد',
27
+    'avis_deplacement_rubrique' => 'توجه ! اين بخش داراى@contient_breves@ brève@scb@ ميباشد : خواهشمند است درصورت جابجائي آن، علامت مربوطه را تائيد كنيد ',
28
+    'avis_erreur_connexion_mysql' => 'خطاى اتصال SQL   ',
29
+    'avis_espace_interdit' => '<b>بخش ممنوع</b><p> اسپيپ قبلأ نصب شده', # MODIF
30
+    'avis_lecture_noms_bases_1' => '  برنامه نصبى نتوانست نام داده پى هاى مستقر شده را بخواند ',
31
+    'avis_lecture_noms_bases_2' => '  يا هيچ پايگاهى موجود نميباشد، يا كاركردى كه اجازه فهرست گذارى پايگاه ها راميدهد بدلايل ايمنى غير فعال شده است     (مورد بعضى از ميزبانان ميباشد)',
32
+    'avis_lecture_noms_bases_3' => ' در  گزينش دوم، اين احتمال وجود دارد كه پايگاهى   كه حامل نام شما براى ارتباط ميباشد استفاده شده باشد',
33
+    'avis_non_acces_page' => 'اين صفحه در دسترس شما نميباشد',
34
+    'avis_operation_echec' => 'کارکرد نتیجه نداد.',
35
+    'avis_operation_impossible' => 'عمل غیرممکن',
36
+    'avis_suppression_base' => ' توجه! حذف داده ها غير قابل برگشت ميباشد',
37 37
 
38
-	// B
39
-	'bouton_acces_ldap' => 'دسترسى به LDAP را اضافه كنيد',
40
-	'bouton_ajouter' => 'اضافه كنيد',
41
-	'bouton_annuler' => 'باطل کنید',
42
-	'bouton_cache_activer' => 'بازفعال سازي حافظه پنهان',
43
-	'bouton_cache_desactiver' => 'غيرفعال سازي موقت حافظه پنهان ',
44
-	'bouton_demande_publication' => 'انتشار اين مقاله را درخواست كنيد  ',
45
-	'bouton_desactive_tout' => 'همه را غیر فعال کنید',
46
-	'bouton_desinstaller' => 'حذف کنید',
47
-	'bouton_effacer_tout' => 'همه را پاك كنيد',
48
-	'bouton_envoyer_message' => 'پيام آماده : بفرستيد',
49
-	'bouton_fermer' => 'بستن',
50
-	'bouton_mettre_a_jour_base' => 'به هنگام سازي پايگاه داده‌ها',
51
-	'bouton_modifier' => 'اصلاح كنيد',
52
-	'bouton_radio_afficher' => 'نشان دهيد',
53
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'در فهرست نويسندگانى كه به اسپيپ وصل هستند ظاهر شود',
54
-	'bouton_radio_envoi_annonces_adresse' => ':خبرها را به اين آدرس بفرستيد',
55
-	'bouton_radio_envoi_liste_nouveautes' => 'فهرست تازه ها را بفرستيد:',
56
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'در فهرست نويسندها نمايان نشود',
57
-	'bouton_radio_non_envoi_annonces_editoriales' => 'خبرهاى مربوط به سر مقاله ها را نفرستيد',
58
-	'bouton_redirection' => 'هدايت دوباره',
59
-	'bouton_relancer_installation' => 'دوباره نصب كنيد',
60
-	'bouton_suivant' => 'بعدى',
61
-	'bouton_tenter_recuperation' => 'اقدام به تعمير كنيد',
62
-	'bouton_test_proxy' => 'پروكسى را امتحان كنيد',
63
-	'bouton_vider_cache' => 'فايل موقت را خالى كنيد',
38
+    // B
39
+    'bouton_acces_ldap' => 'دسترسى به LDAP را اضافه كنيد',
40
+    'bouton_ajouter' => 'اضافه كنيد',
41
+    'bouton_annuler' => 'باطل کنید',
42
+    'bouton_cache_activer' => 'بازفعال سازي حافظه پنهان',
43
+    'bouton_cache_desactiver' => 'غيرفعال سازي موقت حافظه پنهان ',
44
+    'bouton_demande_publication' => 'انتشار اين مقاله را درخواست كنيد  ',
45
+    'bouton_desactive_tout' => 'همه را غیر فعال کنید',
46
+    'bouton_desinstaller' => 'حذف کنید',
47
+    'bouton_effacer_tout' => 'همه را پاك كنيد',
48
+    'bouton_envoyer_message' => 'پيام آماده : بفرستيد',
49
+    'bouton_fermer' => 'بستن',
50
+    'bouton_mettre_a_jour_base' => 'به هنگام سازي پايگاه داده‌ها',
51
+    'bouton_modifier' => 'اصلاح كنيد',
52
+    'bouton_radio_afficher' => 'نشان دهيد',
53
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'در فهرست نويسندگانى كه به اسپيپ وصل هستند ظاهر شود',
54
+    'bouton_radio_envoi_annonces_adresse' => ':خبرها را به اين آدرس بفرستيد',
55
+    'bouton_radio_envoi_liste_nouveautes' => 'فهرست تازه ها را بفرستيد:',
56
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'در فهرست نويسندها نمايان نشود',
57
+    'bouton_radio_non_envoi_annonces_editoriales' => 'خبرهاى مربوط به سر مقاله ها را نفرستيد',
58
+    'bouton_redirection' => 'هدايت دوباره',
59
+    'bouton_relancer_installation' => 'دوباره نصب كنيد',
60
+    'bouton_suivant' => 'بعدى',
61
+    'bouton_tenter_recuperation' => 'اقدام به تعمير كنيد',
62
+    'bouton_test_proxy' => 'پروكسى را امتحان كنيد',
63
+    'bouton_vider_cache' => 'فايل موقت را خالى كنيد',
64 64
 
65
-	// C
66
-	'cache_modifiable_webmestre' => 'اين پارامترها توسط وب مستر سايت ميتواند اصلاح شود.',
67
-	'calendrier_synchro' => ' درصورت استفاده از نرم افزارهاى روزشمار ويژه<b>iCal</b>, ميتوانيد آنرا با مطالب اين سايت منطبق كنيد',
68
-	'config_activer_champs' => 'بخشهای زیر را فعال کنید',
69
-	'config_choix_base_sup' => 'يك پايگاه روي اين سرور تعيين كنيد',
70
-	'config_erreur_base_sup' => 'اسپيپ به فهرست پايگاه‌هاي قابل دسترس دسترسي ندارد',
71
-	'config_info_base_sup' => 'اگر شما پايگاه داده‌هاي ديگري براي امتحان از طريق اسپيپ داريد، با سرور اس.كيو.ال يا غير آن، بگذاريد كه آن‌ها آشكار شوند. اگر بعضي از ميدان‌ها را خالي بگذاريد، شناسه‌هاي ارتباط با پايگاه اصلي مورد استفاده قرار خواهند گرفت. ',
72
-	'config_info_base_sup_disponibles' => 'پايگاه‌هاي مكمل اكنون جستجوپذير اند',
73
-	'config_info_enregistree' => 'پيكربندي جديد ثبت شده',
74
-	'config_info_logos' => 'هر قسمت سایت میتواند یک لوگو logo و یک لوگوی survol داشته باشد',
75
-	'config_info_logos_utiliser' => 'از لوگوها استفاده کنید',
76
-	'config_info_logos_utiliser_non' => 'از لوگوها استفاده نکنید',
77
-	'config_info_logos_utiliser_survol' => 'از لوگوهای survol استفاده کنید',
78
-	'config_info_logos_utiliser_survol_non' => 'از لوگوهای survol استفاده نکنید',
79
-	'config_info_redirection' => 'با فعال کردن این گزینش شما میتوانید مقالات مجازی درست کنید و یا مراجع مقالات منتشر شده در دیگر سایتها را بدهید',
80
-	'config_redirection' => 'مقالات مجازی',
81
-	'config_titre_base_sup' => 'اعلام يك پايگاه مكمل',
82
-	'config_titre_base_sup_choix' => 'يك پايگاه مكمل انتخاب كنيد',
83
-	'connexion_ldap' => 'ارتباط',
84
-	'creer_et_associer_un_auteur' => 'ايجاد و اتصال نويسنده',
65
+    // C
66
+    'cache_modifiable_webmestre' => 'اين پارامترها توسط وب مستر سايت ميتواند اصلاح شود.',
67
+    'calendrier_synchro' => ' درصورت استفاده از نرم افزارهاى روزشمار ويژه<b>iCal</b>, ميتوانيد آنرا با مطالب اين سايت منطبق كنيد',
68
+    'config_activer_champs' => 'بخشهای زیر را فعال کنید',
69
+    'config_choix_base_sup' => 'يك پايگاه روي اين سرور تعيين كنيد',
70
+    'config_erreur_base_sup' => 'اسپيپ به فهرست پايگاه‌هاي قابل دسترس دسترسي ندارد',
71
+    'config_info_base_sup' => 'اگر شما پايگاه داده‌هاي ديگري براي امتحان از طريق اسپيپ داريد، با سرور اس.كيو.ال يا غير آن، بگذاريد كه آن‌ها آشكار شوند. اگر بعضي از ميدان‌ها را خالي بگذاريد، شناسه‌هاي ارتباط با پايگاه اصلي مورد استفاده قرار خواهند گرفت. ',
72
+    'config_info_base_sup_disponibles' => 'پايگاه‌هاي مكمل اكنون جستجوپذير اند',
73
+    'config_info_enregistree' => 'پيكربندي جديد ثبت شده',
74
+    'config_info_logos' => 'هر قسمت سایت میتواند یک لوگو logo و یک لوگوی survol داشته باشد',
75
+    'config_info_logos_utiliser' => 'از لوگوها استفاده کنید',
76
+    'config_info_logos_utiliser_non' => 'از لوگوها استفاده نکنید',
77
+    'config_info_logos_utiliser_survol' => 'از لوگوهای survol استفاده کنید',
78
+    'config_info_logos_utiliser_survol_non' => 'از لوگوهای survol استفاده نکنید',
79
+    'config_info_redirection' => 'با فعال کردن این گزینش شما میتوانید مقالات مجازی درست کنید و یا مراجع مقالات منتشر شده در دیگر سایتها را بدهید',
80
+    'config_redirection' => 'مقالات مجازی',
81
+    'config_titre_base_sup' => 'اعلام يك پايگاه مكمل',
82
+    'config_titre_base_sup_choix' => 'يك پايگاه مكمل انتخاب كنيد',
83
+    'connexion_ldap' => 'ارتباط',
84
+    'creer_et_associer_un_auteur' => 'ايجاد و اتصال نويسنده',
85 85
 
86
-	// D
87
-	'date_mot_heures' => 'ساعت',
86
+    // D
87
+    'date_mot_heures' => 'ساعت',
88 88
 
89
-	// E
90
-	'ecran_securite' => '+ نمايشگر ايمني @version@',
91
-	'email' => 'ايميل',
92
-	'email_2' => ': ايميل ',
93
-	'en_savoir_plus' => 'براي آگاهي بيشتر ',
94
-	'entree_adresse_annuaire' => 'آدرس راهنما',
95
-	'entree_adresse_email' => 'آدرس ايميل شما ',
96
-	'entree_adresse_email_2' => 'نشاني ايميل ',
97
-	'entree_base_donnee_1' => 'آدرس داده پى ها',
98
-	'entree_base_donnee_2' => 'اغلب, اين آدرس با آدرس سايتتون مطابقت ميكند گاهى با گزينش «localhost»  مطابقت و گاهى كاملأ خاليست)',
99
-	'entree_biographie' => 'زندگينامه كوتاه در چند كلمه',
100
-	'entree_chemin_acces' => ' راه ورود </b> وارد شويد <b>',
101
-	'entree_cle_pgp' => 'PGP كليد شما          ',
102
-	'entree_cle_pgp_2' => 'كليد پي.چي.پي',
103
-	'entree_contenu_rubrique' => '(محتوى اين بخش در چند كلمه)',
104
-	'entree_identifiants_connexion' => 'كلمه شناسائى براى متصل شدن',
105
-	'entree_identifiants_connexion_2' => 'شناسه‌ي ارتباط',
106
-	'entree_informations_connexion_ldap' => 'LDAP     خواهشمند است، اطلاعات مربوط به ارتباط به راهنماى  ال دى ا پى را در اين پرسشنامه وارد كنيد.
89
+    // E
90
+    'ecran_securite' => '+ نمايشگر ايمني @version@',
91
+    'email' => 'ايميل',
92
+    'email_2' => ': ايميل ',
93
+    'en_savoir_plus' => 'براي آگاهي بيشتر ',
94
+    'entree_adresse_annuaire' => 'آدرس راهنما',
95
+    'entree_adresse_email' => 'آدرس ايميل شما ',
96
+    'entree_adresse_email_2' => 'نشاني ايميل ',
97
+    'entree_base_donnee_1' => 'آدرس داده پى ها',
98
+    'entree_base_donnee_2' => 'اغلب, اين آدرس با آدرس سايتتون مطابقت ميكند گاهى با گزينش «localhost»  مطابقت و گاهى كاملأ خاليست)',
99
+    'entree_biographie' => 'زندگينامه كوتاه در چند كلمه',
100
+    'entree_chemin_acces' => ' راه ورود </b> وارد شويد <b>',
101
+    'entree_cle_pgp' => 'PGP كليد شما          ',
102
+    'entree_cle_pgp_2' => 'كليد پي.چي.پي',
103
+    'entree_contenu_rubrique' => '(محتوى اين بخش در چند كلمه)',
104
+    'entree_identifiants_connexion' => 'كلمه شناسائى براى متصل شدن',
105
+    'entree_identifiants_connexion_2' => 'شناسه‌ي ارتباط',
106
+    'entree_informations_connexion_ldap' => 'LDAP     خواهشمند است، اطلاعات مربوط به ارتباط به راهنماى  ال دى ا پى را در اين پرسشنامه وارد كنيد.
107 107
  اين ااطلاعات ميبايد توسط گرداننده  سيستم 
108 108
 يا شبكه به شما داده شود',
109
-	'entree_infos_perso' => ' كى هستيد؟',
110
-	'entree_infos_perso_2' => 'نويسنده كيست؟',
111
-	'entree_interieur_rubrique' => ': در داخل اين بخش',
112
-	'entree_liens_sites' => '<b>ارتباط hypertexte</b> (.مراجع , سايت هايي براى بازديد )',
113
-	'entree_login' => 'شما login',
114
-	'entree_login_connexion_1' => 'ارتباط login',
115
-	'entree_login_connexion_2' => '(مطابقت ميكند، گاهى خالى گذاشته شده  FTPورود به login گاهى با)    ',
116
-	'entree_mot_passe' => 'كلمه ورودتان',
117
-	'entree_mot_passe_1' => '(كلمه ورود براى ارتباط (كنكشن',
118
-	'entree_mot_passe_2' => '(مطابقت ميكند، گاهى خالى گذاشته شده FTP گاهى با كلمه ورود )      ',
119
-	'entree_nom_fichier' => '@texte_compresse@:خواهشمند است نام فايل را داخل بنمائيد',
120
-	'entree_nom_pseudo' => 'نام يا نام مستعارتان',
121
-	'entree_nom_pseudo_1' => '(نام يا نام مستعارتان)',
122
-	'entree_nom_pseudo_2' => 'نام يا نام مستعار',
123
-	'entree_nom_site' => 'نام سايتتان',
124
-	'entree_nom_site_2' => 'نام سايت نويسنده',
125
-	'entree_nouveau_passe' => 'كلمه ورود جديد',
126
-	'entree_passe_ldap' => 'كلمه ورود',
127
-	'entree_port_annuaire' => 'شماره وردى راهنما',
128
-	'entree_signature' => 'امضاء',
129
-	'entree_titre_obligatoire' => '</b>عنوان<b> [اجبارى]<br />',
130
-	'entree_url' => '(URL) آدرس سايتتان',
131
-	'entree_url_2' => 'آدرس (يو.آر.ال) سايت',
132
-	'erreur_connect_deja_existant' => 'سروري به نام     موجود است',
133
-	'erreur_email_deja_existant' => 'اين نشاني ايميل قبلاً ثبت شده است.',
134
-	'erreur_nom_connect_incorrect' => 'نام سرور مجاز نيست',
135
-	'erreur_plugin_desinstalation_echouee' => 'نصب زدايي پلاگين موفق نبود. با اين وجود مي‌توانيد آن را غيرفعال سازيد.',
136
-	'erreur_plugin_fichier_absent' => 'فایل موجود نیست',
137
-	'erreur_plugin_fichier_def_absent' => 'فایل معیار موجود نیست',
138
-	'erreur_plugin_nom_fonction_interdit' => 'نام تابع مجاز نمیباشد',
139
-	'erreur_plugin_nom_manquant' => 'نام plugin یافت نمیشود',
140
-	'erreur_plugin_prefix_manquant' => 'بخش نامگذاری plugin کامل نمیباشد',
141
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; در فایل توضیحی موجود نمیباشد',
142
-	'erreur_plugin_version_manquant' => 'نسخه ی plugin موجود نمیباشد',
109
+    'entree_infos_perso' => ' كى هستيد؟',
110
+    'entree_infos_perso_2' => 'نويسنده كيست؟',
111
+    'entree_interieur_rubrique' => ': در داخل اين بخش',
112
+    'entree_liens_sites' => '<b>ارتباط hypertexte</b> (.مراجع , سايت هايي براى بازديد )',
113
+    'entree_login' => 'شما login',
114
+    'entree_login_connexion_1' => 'ارتباط login',
115
+    'entree_login_connexion_2' => '(مطابقت ميكند، گاهى خالى گذاشته شده  FTPورود به login گاهى با)    ',
116
+    'entree_mot_passe' => 'كلمه ورودتان',
117
+    'entree_mot_passe_1' => '(كلمه ورود براى ارتباط (كنكشن',
118
+    'entree_mot_passe_2' => '(مطابقت ميكند، گاهى خالى گذاشته شده FTP گاهى با كلمه ورود )      ',
119
+    'entree_nom_fichier' => '@texte_compresse@:خواهشمند است نام فايل را داخل بنمائيد',
120
+    'entree_nom_pseudo' => 'نام يا نام مستعارتان',
121
+    'entree_nom_pseudo_1' => '(نام يا نام مستعارتان)',
122
+    'entree_nom_pseudo_2' => 'نام يا نام مستعار',
123
+    'entree_nom_site' => 'نام سايتتان',
124
+    'entree_nom_site_2' => 'نام سايت نويسنده',
125
+    'entree_nouveau_passe' => 'كلمه ورود جديد',
126
+    'entree_passe_ldap' => 'كلمه ورود',
127
+    'entree_port_annuaire' => 'شماره وردى راهنما',
128
+    'entree_signature' => 'امضاء',
129
+    'entree_titre_obligatoire' => '</b>عنوان<b> [اجبارى]<br />',
130
+    'entree_url' => '(URL) آدرس سايتتان',
131
+    'entree_url_2' => 'آدرس (يو.آر.ال) سايت',
132
+    'erreur_connect_deja_existant' => 'سروري به نام     موجود است',
133
+    'erreur_email_deja_existant' => 'اين نشاني ايميل قبلاً ثبت شده است.',
134
+    'erreur_nom_connect_incorrect' => 'نام سرور مجاز نيست',
135
+    'erreur_plugin_desinstalation_echouee' => 'نصب زدايي پلاگين موفق نبود. با اين وجود مي‌توانيد آن را غيرفعال سازيد.',
136
+    'erreur_plugin_fichier_absent' => 'فایل موجود نیست',
137
+    'erreur_plugin_fichier_def_absent' => 'فایل معیار موجود نیست',
138
+    'erreur_plugin_nom_fonction_interdit' => 'نام تابع مجاز نمیباشد',
139
+    'erreur_plugin_nom_manquant' => 'نام plugin یافت نمیشود',
140
+    'erreur_plugin_prefix_manquant' => 'بخش نامگذاری plugin کامل نمیباشد',
141
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; در فایل توضیحی موجود نمیباشد',
142
+    'erreur_plugin_version_manquant' => 'نسخه ی plugin موجود نمیباشد',
143 143
 
144
-	// H
145
-	'htaccess_a_simuler' => 'هشدار:‌ پيكربندي HTTP سرور شما پرونده‌هاي @htaccess@ را ناديده مي‌گيرد. براي تضمين امنيت كافي،‌ بايد پيكربندي اين را عضو كنيد. يا مطمئن شويد ثابت‌هاي @constantes@ (تعريف شده در پرونده‌ي mes_options.ph) همان مقدار خارج از ديركتوار @document_root@ را دارد.  ',
146
-	'htaccess_inoperant' => 'htaccess بي‌اثر',
144
+    // H
145
+    'htaccess_a_simuler' => 'هشدار:‌ پيكربندي HTTP سرور شما پرونده‌هاي @htaccess@ را ناديده مي‌گيرد. براي تضمين امنيت كافي،‌ بايد پيكربندي اين را عضو كنيد. يا مطمئن شويد ثابت‌هاي @constantes@ (تعريف شده در پرونده‌ي mes_options.ph) همان مقدار خارج از ديركتوار @document_root@ را دارد.  ',
146
+    'htaccess_inoperant' => 'htaccess بي‌اثر',
147 147
 
148
-	// I
149
-	'ical_info1' => 'اين صفحه شيوه هاى گوناگونى را براى آگاهى از مسايل روزانه سايت معرفى ميكند.',
150
-	'ical_info2' => 'براى آگاهى بيشتر از جزييات فنى به, <a href="@spipnet@">اسناد اسپيپ </a> مراجعه كنيد.',
151
-	'ical_info_calendrier' => '٢ روزشمار در دسترس شما ميباشد.  روزشمار اول وضعيت سايت را همراه با خبرهاى مربوط به مقالات منتشره نشان ميدهد. روزشمار دوم حاوى مقالات تحريريه و آخرين پيامهاى خصوصى شما كه بواسطه يك كد شخصى تنها در درسترس شما ميباشد است. شما ميتوانيد آنرا در هر زمانى كه مايل باشيد تغيير دهيد. ',
152
-	'ical_methode_http' => 'بارگذارى',
153
-	'ical_methode_webcal' => 'مقارن كردن (webcal://)',
154
-	'ical_texte_prive' => 'اين روزشمار شما را در جريان فعاليتهاى تحريريه ويژه سايت ميگذارد (كار, ملاقات هاى شخصى,  مقالات ...). ',
155
-	'ical_texte_public' => 'اين روزشمار بشما امكان پيگيرى فعاليت هاى همگانى سايت را ميدهد (مقالات,...). ',
156
-	'ical_texte_rss' => ' شما ميتوانيد تازه هاى اين سايت را با فايلهاى XML/RSS (Rich Site Summary)  بديگر سايتها پيوند دهيد.همچنين اين نوع فايل به اسپيپ امكان خواندن تازه هاى ديگر سايتها را ميدهد.',
157
-	'ical_titre_js' => 'جاوا اسكريپت',
158
-	'ical_titre_mailing' => 'ليست ايميلها',
159
-	'ical_titre_rss' => ' فايل syndication',
160
-	'icone_accueil' => 'خانه',
161
-	'icone_activer_cookie' => 'كوكى مكاتبه را فعال كنيد',
162
-	'icone_activite' => 'بازخورد',
163
-	'icone_admin_plugin' => 'اداره ی plugins',
164
-	'icone_administration' => 'نگه‌داري',
165
-	'icone_afficher_auteurs' => 'فهرست نويسند گان را بروى صفحه نشان دهيد ',
166
-	'icone_afficher_visiteurs' => ' فهرست بازديدكنند گان را بروى صفحه نشان دهيد ',
167
-	'icone_arret_discussion' => 'ديگر در اين بحث شركت نكنيد',
168
-	'icone_calendrier' => 'تقويم',
169
-	'icone_configuration' => 'پيكربندي',
170
-	'icone_creer_auteur' => 'يك نويسنده جديد اضافه و به اين مقاله مرتبطش كنيد',
171
-	'icone_creer_mot_cle' => 'يك كليد-واژه نو بسازيد و به اين مقاله مرتبطش كنيد',
172
-	'icone_creer_rubrique_2' => 'يك بخش جديد بسازيد',
173
-	'icone_edition' => 'ويرايش',
174
-	'icone_ma_langue' => 'زبان من',
175
-	'icone_mes_infos' => 'اطلاعات من',
176
-	'icone_mes_preferences' => 'ترجيح‌هاي من',
177
-	'icone_modifier_article' => 'اين مقاله را اصلاح كنيد',
178
-	'icone_modifier_rubrique' => 'اين بخش را اصلاح كنيد',
179
-	'icone_publication' => 'انتشار',
180
-	'icone_relancer_signataire' => 'بازنشر امضاء',
181
-	'icone_retour' => 'بازگشت',
182
-	'icone_retour_article' => 'بازگشت به مقاله',
183
-	'icone_squelette' => 'اسكلت',
184
-	'icone_suivi_publication' => 'پيگيري انتشارات',
185
-	'icone_supprimer_cookie' => 'كوكى مكاتبه را حذف كنيد',
186
-	'icone_supprimer_rubrique' => 'اين بخش را حذف كنيد',
187
-	'icone_supprimer_signature' => 'اين امضاء را حذف كنيد',
188
-	'icone_valider_signature' => 'اين امضاء را معتبر كنيد',
189
-	'image_administrer_rubrique' => 'شما ميتوانيد اين بخش را اداره كنيد',
190
-	'impossible_modifier_login_auteur' => 'تغيير لاگين ممكن نيست.', # MODIF
191
-	'impossible_modifier_pass_auteur' => 'تغيير گذرواژه ممكن نيست.', # MODIF
192
-	'info_1_article' => '١ مقاله',
193
-	'info_1_auteur' => 'نويسنده‌ي 1',
194
-	'info_1_message' => 'پيام 1',
195
-	'info_1_mot_cle' => 'كليدواژه‌ي 1',
196
-	'info_1_rubrique' => 'بخش 1',
197
-	'info_1_visiteur' => 'بازديد‌كننده‌ي 1',
198
-	'info_activer_cookie' => ' شما ميتوانيد  كوكى مكاتبه  را فعال نماپيد اينكار به شما اجازه خواهد داد كه براحتى از سايت همگانى به سايت خصوصى برويد',
199
-	'info_admin_etre_webmestre' => 'دادن حق وب مستر به من',
200
-	'info_admin_je_suis_webmestre' => 'من <b>webmestre</b> هستم',
201
-	'info_admin_statuer_webmestre' => 'تفويض حق وب مستري به اين مدير',
202
-	'info_admin_webmestre' => 'اين مدير <b>webmestre</b> است',
203
-	'info_administrateur' => 'گردانند سايت',
204
-	'info_administrateur_1' => 'گرداننده  ',
205
-	'info_administrateur_2' => '(<i>با احتياط استفاده كنيد </i>) سايت ',
206
-	'info_administrateur_site_01' => 'اگر شما از گردانند گان سايت هستيد، خواهشمند است',
207
-	'info_administrateur_site_02' => 'روى اين پيوند كليك كنيد',
208
-	'info_administrateurs' => 'گردانند گان سايت',
209
-	'info_administrer_rubrique' => 'شما ميتوانيد اين بخش را اداره كنيد',
210
-	'info_adresse' => ': به آدرس',
211
-	'info_adresse_desinscription' => 'نساني قطع آبونمان: ',
212
-	'info_adresse_url' => '(URL) آدرس سايت همگانى      ',
213
-	'info_afficher_par_nb' => 'نشان دادن با',
214
-	'info_aide_en_ligne' => 'SPIP كمك در تارنما',
215
-	'info_ajout_image' => '  هنگامى كه تصاويرى را ضميمه مقاله اى ميكنيد، اسپيپ ميتواند بطور خودكار آنها را بصورت كوچك شده اضافه كند. با اين روش ميتوان براى مثال نمايى از مجموع تصاوير را بطور خودكار درست كرد ',
216
-	'info_ajouter_rubrique' => 'يك بخش ديگر را براى اداه كردن اضافه كنيد',
217
-	'info_annonce_nouveautes' => 'خبر تازه ها',
218
-	'info_article' => 'مقاله',
219
-	'info_article_2' => 'مقاله',
220
-	'info_article_a_paraitre' => 'مقالات با تاريخ آينده منتشر شوند',
221
-	'info_articles_02' => 'مقالات',
222
-	'info_articles_2' => 'مقالات',
223
-	'info_articles_auteur' => 'مقالات اين نويسنده',
224
-	'info_articles_miens' => 'مقالات من',
225
-	'info_articles_tous' => 'تمام مقاله‌ها',
226
-	'info_articles_trouves' => 'مقالات پيدا شده',
227
-	'info_attente_validation' => 'مقاله هايتان در انتظار تأئيد شدن',
228
-	'info_aucun_article' => 'مقاله‌اي نيست',
229
-	'info_aucun_auteur' => 'هيچ مؤلفي موجود نيست',
230
-	'info_aucun_message' => 'هيچ پيامي موجود نيست',
231
-	'info_aucun_rubrique' => 'هيچ بخش',
232
-	'info_aujourdhui' => ': امروز',
233
-	'info_auteur_gere_toutes_rubriques_2' => 'من <b> تمام بخش‌ها را اداره مي‌كنم</b>', # MODIF
234
-	'info_auteurs' => 'نويسندگان ',
235
-	'info_auteurs_par_tri' => '@partri@ نويسنده گان',
236
-	'info_auteurs_trouves' => 'نويسنده گان پيدا شده   ',
237
-	'info_authentification_externe' => 'تأئيد از خارج',
238
-	'info_avertissement' => 'تذكر',
239
-	'info_barre_outils' => 'با ميل ابزار آن؟',
240
-	'info_base_installee' => '.ساختار داده پى هايتان نصب شده',
241
-	'info_bio' => 'زندگي‌نامه',
242
-	'info_cache_desactive' => 'حفاظه پنهان موقتاً غيرفعال است.',
243
-	'info_chapeau' => 'سر متن',
244
-	'info_chapeau_2' => ':سر متن',
245
-	'info_chemin_acces_1' => 'گزینش: <b>مسير ورود به راهنما</b>',
246
-	'info_chemin_acces_2' => 'شما بايد پس از اين مسير دسترسى به اطلاعات را در راهنما تنظيم كنيد. اين اطلاعات براى شناسائى كاربرانى كه در راهنما هستند ضرورى ميباشد',
247
-	'info_chemin_acces_annuaire' => 'گزینش : <b>مسير ورود به راهنما',
248
-	'info_choix_base' => ': سومين مرحله',
249
-	'info_classement_1' => '<sup>ين</sup>در @liste@',
250
-	'info_classement_2' => '<sup>ين</sup>در@liste@',
251
-	'info_code_acces' => '! كد ها ى وردي تان را فراموش نكنيد',
252
-	'info_config_suivi' => 'اگر اين آدرس به فهرست ايميل ها mailing-list مربوط ميشود, ميتوانيد در زير آدرسى را كه شركت كنندگان سايت ميتوانند در آن ثبت نام كنند را مشخص كنيد. اين آدرس ميتواند يك  URL( مانند صفحه ثبت نام در فهرست) و يا ميتواند بدين صورت باشد : <tt>@adresse_suivi@?subject=subscribe</tt>):',
253
-	'info_config_suivi_explication' => ' شما ميتوانيد بطور خودكار بوسيله ايميل خبرهاى مربوط به فعاليت تحريريه سايت را دريافت كنيد. براى اين منظور شما بايد در فهرست ايميلها mailing-list ثبت نام كنيد.',
254
-	'info_confirmer_passe' => ':كلمه ورودى جديدتان را تأئيد كنيد',
255
-	'info_conflit_edition_avis_non_sauvegarde' => 'توجه: ميدان‌هاي بعدي از جاهاي ديگر اصلاح شده است. در نتيجه اصلاحات شما ثبت نشده است. ',
256
-	'info_conflit_edition_differences' => 'تفاوت‌ها:',
257
-	'info_conflit_edition_version_enregistree' => 'نسخه ثبت شده:',
258
-	'info_conflit_edition_votre_version' => 'نسخه شما:',
259
-	'info_connexion_base' => '<b>آزمايش ارتباط با پايگاه</b>',
260
-	'info_connexion_base_donnee' => 'اتصال با پايگاه داده‌هاي شما',
261
-	'info_connexion_ldap_ok' => '<b>ارتباط ال.دي.اي.پي موفقيت آميز است.</b><p> مي‌توانيد به مرحله بعد برويد.</p>',
262
-	'info_connexion_mysql' => 'ارتباط شما با SQL',
263
-	'info_connexion_ok' => '.ارتباط برقرار شد',
264
-	'info_contact' => 'تماس',
265
-	'info_contenu_articles' => 'محتوى مقاله ها',
266
-	'info_contributions' => 'مشاركت‌ها',
267
-	'info_creation_paragraphe' => 'براى درست كردن پاراگراف، كافيست كه خط  خالى ايجاد كنيد.',
268
-	'info_creation_rubrique' => 'پيش از نوشتن مقاله ,<br />شما بايد دست كم يك بخش درست كنيد <br />',
269
-	'info_creation_tables' => '<b>درست كردن جداول پايگاه</b>',
270
-	'info_creer_base' => 'يك داده پى جديد <b>بسازيد</b>:',
271
-	'info_dans_rubrique' => ':درون بخش',
272
-	'info_date_publication_anterieure' => 'تاريخ نگارش قبلى :',
273
-	'info_date_referencement' => ': تاريخ پيوند اين سايت',
274
-	'info_derniere_etape' => 'پايان !',
275
-	'info_descriptif' => ':توصيف',
276
-	'info_desinstaller_plugin' => 'داده ها را حذف و plugin را غیر فعال کنید',
277
-	'info_discussion_cours' => 'در حال بحث',
278
-	'info_ecrire_article' => 'پيش از نوشتن مقاله، شما ميبايد دست كم يك بخش درست كنيد.',
279
-	'info_email_envoi' => 'آدرس ايميل برای ارسال (اختياری)',
280
-	'info_email_envoi_txt' => 'آدرس مورد استفاده تان را برای ارسال ايميل در اينجا درج کنيد  (وگرنه از آدرس گيرنده استفاده خواهد شد)',
281
-	'info_email_webmestre' => 'آدرس ايميل وب مستر ',
282
-	'info_envoi_email_automatique' => 'ارسال نامه ها بطور خودكار',
283
-	'info_envoyer_maintenant' => 'الان بفرستيد',
284
-	'info_etape_suivante' => 'به مرحله بعدى برويد',
285
-	'info_etape_suivante_1' => 'شما ميتوانيد به مرحله بعدى برويد',
286
-	'info_etape_suivante_2' => 'شما ميتوانيد به مرحله بعدى برويد',
287
-	'info_exceptions_proxy' => 'استثناءها براي پراكسي',
288
-	'info_exportation_base' => 'صدور پايگاه به@archive@',
289
-	'info_facilite_suivi_activite' => 'براى آسان شدن مداوم فعاليت تحريريه، سيستم  ميتواند براى مثال، خبر درخواستهاى انتشار و اعتبار مقالات را به فهرست پيكهاى نويسند گان بفرستد', # MODIF
290
-	'info_fichiers_authent' => 'فايل هاى تأئيدى« .htpasswd »',
291
-	'info_forums_abo_invites' => 'سايتتان داراى سخنگاه براى مشتركين ميباشد: از بازديد كنندگان دعوت ميشود كه در قسمت همگانى سايت ثبت نام  كنند.',
292
-	'info_gauche_admin_tech' => '<b>اين صفحه فقط براى مسئولان سايت قابل دسترسى ميباشد.</b><p>  ورود به آن اجازه دسترسى به كاركردهاى گوناگون تعمير ونگهدارى فنى را ميدهد. از جمله روند باز شناسى و تأئيد ويژه اى كه لازمه اش داشتن حق ورود به تارنما است (FTP)',
293
-	'info_gauche_admin_vider' => '<b>اين صفحه فقط براى مسئولان سايت قابل دسترسى ميباشد.</b><p>  ورود به آن اجازه دسترسى به كاركرهاى گوناگون تعمير ونگهداى فنى را ميدهد. از جمله روند باز شناسى و تأئيد ويژه اى كه لازمه اش داشتن حق ورود به تارنما است (FTP)',
294
-	'info_gauche_auteurs' => 'شما نام تمام نگارند گان را در اينجا خواهيد يافت. نوع مسئوليتشان با رنگهاى ايكونها مشخص شده است (نگارنده=آيكون سبز، گردانند سايت=آيكون زرد )',
295
-	'info_gauche_auteurs_exterieurs' => 'نويسندگان بازديدكننده، بدون دسترسي به سايت، با علامت آبي مشخص شده‌اند؛ نويسندگان حذف شده با علامت خاكتسري. ',
296
-	'info_gauche_messagerie' => 'پيام گير بشما اجازه رد و بدل پيام را با ديگر نويسند گان، نگهدارى يادداشتها (براى استفاده شخصى ) همچنين اعلان خبر در صفحه پذيرش را (در صورتى كه از گردانند گان سايت باشيد )ميدهد.',
297
-	'info_gauche_statistiques_referers' => 'اين صفحه, فهرست سايتهاى مرجع را ارائه ميدهد، بعبارتى سايتهايى كه داراى پيوند با سايت شما هستند، (فقط براى ديروز و امروز) : در واقع اين فهرست هر ٢٤ ساعت يكبار نو ميشود',
298
-	'info_gauche_visiteurs_enregistres' => 'شما, در اينجا, همه بازديد كنند گان ثبت شده در قسمت همگانى را خواهيد يافت  (براى مشتركين).',
299
-	'info_generation_miniatures_images' => 'ساخت تصاوير كوچك شده',
300
-	'info_gerer_trad_objets' => '@objets@ :مديريت پيوند‌هاي ترجمه',
301
-	'info_hebergeur_desactiver_envoi_email' => 'تعدادى از ميزبانان ارسال خودكار نامه ها را از سرورهايشان غير فعال ميكنند. در اين صورت،  عملكردهاى بعدى اسپيپ  كار نخوهند كرد. ',
302
-	'info_hier' => ': ديروز',
303
-	'info_identification_publique' => '...شناسنامه شما',
304
-	'info_image_process' => 'خواهشمند است بهترين شيوه ساخت تصاوير كوچك را با كليك كردن بروي تصوير مربوطه انتخاب نماييد.',
305
-	'info_images_auto' => 'تصاوير بطور خودكار محاسبه شده اند',
306
-	'info_informations_personnelles' => 'اطلاعات شخصى',
307
-	'info_inscription' => 'ثبت شده در ',
308
-	'info_inscription_automatique' => 'ثبت نام خوكار نويسند گان جديد',
309
-	'info_jeu_caractere' => 'انتخاب نوع و شكل حروف سايت',
310
-	'info_jours' => 'روز',
311
-	'info_laisser_champs_vides' => 'اين قسمتها را خالى بگذاريد)',
312
-	'info_langues' => 'زبانهاى سايت',
313
-	'info_ldap_ok' => 'گواهى درستى LDAP مستقر شده',
314
-	'info_lien_hypertexte' => ': پيوند هايپرتكست',
315
-	'info_liste_nouveautes_envoyee' => 'فهرست تازه‌ها ارسال شده است',
316
-	'info_liste_redacteurs_connectes' => 'فهرست نويسنده گان روى خط',
317
-	'info_login_existant' => '.موجود ميباشد login اين',
318
-	'info_login_trop_court' => 'بيش از اندازه كوتاه Login .',
319
-	'info_login_trop_court_car_pluriel' => 'لاگين بايد دست كم @nb@ كاراكتر داشته باشد.',
320
-	'info_logos' => 'لوگوها',
321
-	'info_maximum' => ': حداكثر',
322
-	'info_meme_rubrique' => 'در همان بخش',
323
-	'info_message_en_redaction' => 'پيام هايتان در حال نگارش',
324
-	'info_message_technique' => ':پيام فنى',
325
-	'info_messagerie_interne' => 'پيام گير داخلى',
326
-	'info_mise_a_niveau_base' => 'تراز گذارى پايگاه SQL',
327
-	'info_mise_a_niveau_base_2' => '{{!توجه}}شما نسخه { قديمى} اسپيپ را نصب كرده ايد براى داده پى هايتان خطر  از بين رفتن وجود دارد و همچنين از كار افتاد گى سايتتان   .<br />{{فايلهاى اسپيپ را دوباره نصب كنيد}}',
328
-	'info_modification_enregistree' => 'تغييرها ثبت شد',
329
-	'info_modifier_auteur' => 'اصلاح نويسنده',
330
-	'info_modifier_rubrique' => ':اصلاح بخش ',
331
-	'info_modifier_titre' => '@titre@ : اصلاح       ',
332
-	'info_mon_site_spip' => 'SPIP سايت من',
333
-	'info_moyenne' => ': متوسط',
334
-	'info_multi_cet_article' => ' زبان اين مقاله :',
335
-	'info_multi_langues_choisies' => 'خواهشمند است كه زبانهاى موجود براى نويسند گان سايتتان را در زير انتخاب كنيد. زبانهاى از پيش استفاده شده نميتوانند غير فعال شوند.',
336
-	'info_multi_objets' => '@objets@ :فعال‌سازي منوي زبان',
337
-	'info_multi_secteurs' => '...تنها براى بخشهاى واقع در ريشه؟',
338
-	'info_nb_articles' => '@nb@ مقاله',
339
-	'info_nb_auteurs' => '@nb@ نويسنده',
340
-	'info_nb_messages' => '@nb@ پيام',
341
-	'info_nb_mots_cles' => '@nb@ كليدواژه',
342
-	'info_nb_rubriques' => '@nb@ بخش',
343
-	'info_nb_visiteurs' => '@nb@ بازديد‌كننده',
344
-	'info_nom' => 'نام',
345
-	'info_nom_destinataire' => 'نام گيرنده',
346
-	'info_nom_pas_conforme' => 'تگ‌هاي اچ.تي.ام.ال مجاز نيستند',
347
-	'info_nom_site' => 'نام سايتتان',
348
-	'info_nombre_articles' => 'مقاله @nb_articles@ ',
349
-	'info_nombre_rubriques' => 'بخش @nb_rubriques@ ',
350
-	'info_nombre_sites' => 'سايت @nb_sites@',
351
-	'info_non_deplacer' => '...جابجا نكنيد',
352
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'اسپيپ ميتواند بطور منظم اخبار تازه هاى سايت را مانند مقاله ها، مقاله هاى كوتاه تازه منتشر شده و... را بفرستد ',
353
-	'info_non_envoi_liste_nouveautes' => 'فهرست تازه ها را نفرستيد',
354
-	'info_non_modifiable' => 'نميتواند اصلاح شود',
355
-	'info_non_suppression_mot_cle' => 'نميخواهم اين كليد-واژه را حذف كنم',
356
-	'info_notes' => 'يادداشت ',
357
-	'info_nouvel_article' => 'مقاله جديد',
358
-	'info_nouvelle_traduction' => 'برگردان جديد',
359
-	'info_numero_article' => ': مقاله شماره',
360
-	'info_obligatoire_02' => '(اجباري)', # MODIF
361
-	'info_option_accepter_visiteurs' => 'پذيرفتن ثبت نام بازديد كنندگان سايت همگانى',
362
-	'info_option_ne_pas_accepter_visiteurs' => 'رد ثبت نام بازديدكنندگان',
363
-	'info_options_avancees' => 'گزينش هاى پيشرفته',
364
-	'info_ou' => '...يا',
365
-	'info_page_interdite' => 'صفحه ممنوع',
366
-	'info_par_nom' => 'توسط نام',
367
-	'info_par_nombre_article' => 'توسط شمار مقالها',
368
-	'info_par_statut' => 'توسط نوع',
369
-	'info_par_tri' => '’(بترتيب@tri@)’',
370
-	'info_passe_trop_court' => 'كلمه ورود خيلى كوتاه',
371
-	'info_passe_trop_court_car_pluriel' => 'گذرواژه‌ دست كم بايد @nb@ كاراكتر داشته باشد.',
372
-	'info_passes_identiques' => 'دو كلمه ورود با هم يكسان نيستند',
373
-	'info_plus_cinq_car' => 'بيش از پنج حرف',
374
-	'info_plus_cinq_car_2' => '(بيش از پنج حرف)',
375
-	'info_plus_trois_car' => '(بيش از سه حرف)',
376
-	'info_popularite' => '@popularite@ : محبوبيت@visites@ : بازديد',
377
-	'info_post_scriptum' => 'نوشتار پس از متن اصلى',
378
-	'info_post_scriptum_2' => ':نوشتار پس از متن اصلى',
379
-	'info_pour' => 'براى',
380
-	'info_preview_texte' => 'اين امكان وجود دارد كه سايت را پيش از آماده شدن (پيش از پيشنهاد مقالات) بازبينى كرد مانند زمانيكه همه ى مقالات و اخبار منتشر شده اند.اين امكان ميتواند تنها براى گردانند گان سايت يا نويسندگان يا براى هيچكس نباشد.', # MODIF
381
-	'info_procedez_par_etape' => 'مرحله به مرحله اقدام كنيد',
382
-	'info_procedure_maj_version' => 'روند به روز كردن بايد به جريان بيفتد تا داده پى ها بتوانند با نسخه جديد منطبق شوند.',
383
-	'info_proxy_ok' => 'آزمایش پروکسی با موفقیت انجام شد.',
384
-	'info_ps' => 'P.-S.',
385
-	'info_publier' => 'منتشر کنید',
386
-	'info_publies' => 'مقاله هاى منتشر شده تان روى تارنما',
387
-	'info_question_accepter_visiteurs' => 'اگر اسكلت سايتتان ثبت شمار بازديدكنندگان  را بى آنكه اجازه ى ورود به قسمت خصوصى سايت را داشته باشند را  داراست خواهشمند است گزينه ى زير را فعال كنيد:',
388
-	'info_question_inscription_nouveaux_redacteurs' => 'آيا ثبت نام نويسند گان جديد را از سايت همگانى قبول ميكنيد؟ اگر ميكنيد، كاربران ميتوانند با پر كردن يك پرسشنامه ثبت نام كنند و به محوطه خصوصى راه يابند. آنها ميتوانند مقالاتشان را مطرح كنند <blockquote><i>در هنگام ثبت نام كاربران يك ايميل دريافت خواهند كرد كه شامل كد ورودي شان به سايت خصوصى خواهد بود. تعدادى از ميزبانان، ارسال ايميل را از سرورها غير فعال كرده اند: دراينصورت ثبت نام خودكار غير ممكن خواهد بود..</i></blockquote>',
389
-	'info_qui_edite' => '@nom_auteur_modif@ روي اين مطلب @date_diff@ كار كرده است.',
390
-	'info_racine_site' => 'ريشه سايت',
391
-	'info_recharger_page' => 'خواهشمند است اين صفحه را تا چند لحظه بعد دوباره شارژ كنيد',
392
-	'info_recherche_auteur_zero' => '"@cherche_auteur@" : جستجوى بدون نتيجه براى',
393
-	'info_recommencer' => '.خواهشمند است دوباره شروع كنيد',
394
-	'info_redacteur_1' => 'نويسنده',
395
-	'info_redacteur_2' => 'به بخش خصوصى دسترسى دارد(<i>توصيه ميشود</i>)',
396
-	'info_redacteurs' => 'نويسندگان',
397
-	'info_redaction_en_cours' => 'در حال نگارش',
398
-	'info_redirection' => 'هدايت دوباره آدرس ',
399
-	'info_redirection_activee' => 'باز سو دهي فعال است. ',
400
-	'info_redirection_desactivee' => 'باز سو دهي حذف شده. ',
401
-	'info_refuses' => 'مقاله هايتان كه پذيرفته نشده اند',
402
-	'info_reglage_ldap' => ' گزينش :<b> تنظيم ورود LDAP</b>',
403
-	'info_renvoi_article' => 'تغییر محل. اين مقاله به این صفحه برمیگردد:',
404
-	'info_reserve_admin' => 'تنها گردانندگان سايت حق اصلاح اين آدرس را دارند',
405
-	'info_restreindre_rubrique' => ':محدوديت در اداره بخش',
406
-	'info_resultat_recherche' => ':نتيجه جستجو',
407
-	'info_rubriques' => 'بخش ها',
408
-	'info_rubriques_02' => 'بخش ها',
409
-	'info_rubriques_trouvees' => 'بخش هاى پيدا شده',
410
-	'info_sans_titre' => 'بدون عنوان',
411
-	'info_selection_chemin_acces' => '<b>انتخاب كنيد</b> راه ورودى را در راهنما',
412
-	'info_signatures' => 'امضاء',
413
-	'info_site' => 'سايت',
414
-	'info_site_2' => ':سايت',
415
-	'info_site_min' => 'سايت',
416
-	'info_site_reference_2' => 'سايت مرجع',
417
-	'info_site_web' => 'وب سايت:',
418
-	'info_sites' => 'سايت',
419
-	'info_sites_lies_mot' => 'سايتهاى پيوندى مربوط به اين واژه-كليد',
420
-	'info_sites_proxy' => 'از پروكسى استفاده كنيد',
421
-	'info_sites_trouves' => 'سايت هاى پيدا شده',
422
-	'info_sous_titre' => ':عنوان فرعى',
423
-	'info_statut_administrateur' => 'گرداننده سايت',
424
-	'info_statut_auteur' => 'وضعيت اين نويسنده:',
425
-	'info_statut_auteur_2' => 'من هستم',
426
-	'info_statut_auteur_a_confirmer' => 'ثبت نام تائید شود',
427
-	'info_statut_auteur_autre' => 'وضعیت دیگر:',
428
-	'info_statut_redacteur' => 'نويسنده',
429
-	'info_statut_utilisateurs_1' => 'وضعيت كاربران ورودى',
430
-	'info_statut_utilisateurs_2' => 'وضعيت اشخاص حاضر در راهنماى ال دى ا پى را كه براى اولين بار به سايت ميپيوندند مشخص كنيد. شما ميتوانيد پس از آن  براى هر نويسنده آنرا مورد به مورد اصلاح كنيد',
431
-	'info_suivi_activite' => 'دنباله سر مقاله',
432
-	'info_surtitre' => ':سر عنوان',
433
-	'info_syndication_integrale_1' => 'سایتتان فایلهای syndication را پیشنهاد میکند (voir « <a href="@url@">@titre@</a> »). ',
434
-	'info_syndication_integrale_2' => 'آیا مایلید که مقاله ها را بطور کامل یا فقط خلاصه ای از آنها را بفرستید؟',
435
-	'info_table_prefix' => 'شما میتوانید پیشوند نام جدولهای داده ها را اصلاح کنید زیرا هنگامیکه از یک داده پی برای چند سایت استفاده میکنید اینکار اجباری است. پیشوند باید با حروف کوچک بدون اکسان و بی فاصله باشد.',
436
-	'info_taille_maximale_images' => 'اسپيپ برش‌ بالاتر تصاوير را كه مي‌تواند نشان دهد(در ميليون‌ها پيكشل) آزمايش مي‌كند. <br /> تصاوير بزرگتر كاهش نمي‌يابند.',
437
-	'info_taille_maximale_vignette' => 'حد اكثر اندازه براى توليد تصاوير كوچك توسط سيستم',
438
-	'info_terminer_installation' => 'شما اكنون ميتوانيد روند استقرار برنامه را پايان دهيد.',
439
-	'info_texte' => 'متن',
440
-	'info_texte_explicatif' => 'متن توضيحى',
441
-	'info_texte_long' => 'متن بيش از اندازه بلند ميباشد : در ابتدا به چند قسمت تقسيم و پس از تائيد، قطعات به هم متصل خواهند شد.',
442
-	'info_texte_message' => 'متن پيام شما',
443
-	'info_texte_message_02' => 'متن پيام',
444
-	'info_titre' => ':عنوان',
445
-	'info_total' => ':كل',
446
-	'info_tous_articles_en_redaction' => 'تمام مقالات در حال نگارش',
447
-	'info_tous_articles_presents' => 'تمام مقالات منتشر شده در اين بخش',
448
-	'info_tous_articles_refuses' => 'تمام مقالات رد شده',
449
-	'info_tous_les' => 'تمام :',
450
-	'info_tout_site' => 'همه سايت',
451
-	'info_tout_site2' => 'مقاله به اين زبان ترجمه نشده.',
452
-	'info_tout_site3' => 'مقاله به اين زبان ترجمه شده,  سپس تغييراتى در مقاله ى اصلى صورت گرفته, بدين جهت بايد برگردان آنرا بروز كرد.',
453
-	'info_tout_site4' => 'مقاله به اين زبان ترجمه و برگردان آن بروز شده.',
454
-	'info_tout_site5' => 'مقاله ى اصلى',
455
-	'info_tout_site6' => ' :<b>توجه<b/> تنها مقالات اصلى اعلان ميشوند و برگردانهايشان با رنگهايى كه گوياى وضعيت آنهاست به آنها متصلند.',
456
-	'info_traductions' => 'ترجمه‌ها',
457
-	'info_travail_colaboratif' => 'مقالات حاصل كار دست جمعى',
458
-	'info_un_article' => 'يك مقاله',
459
-	'info_un_site' => ',يك سايت',
460
-	'info_une_rubrique' => ',يك بخش',
461
-	'info_une_rubrique_02' => '١ بخش',
462
-	'info_url' => ':URL',
463
-	'info_url_proxy' => 'پراكسي URL',
464
-	'info_url_site_pas_conforme' => 'يو.آر.ال سايت معتبر نيست. ',
465
-	'info_url_test_proxy' => 'تست URL',
466
-	'info_urlref' => 'پيوند هايپرتکست:',
467
-	'info_utilisation_spip' => 'شما اكنون ميتوانيد از سيستم انتشار حضورى استفاده كنيد',
468
-	'info_visites_par_mois' => ':نمودار ماهانه',
469
-	'info_visiteur_1' => 'بازديد كننده',
470
-	'info_visiteur_2' => 'سايت همگانى',
471
-	'info_visiteurs' => 'بازديد كنندگان',
472
-	'info_visiteurs_02' => 'بازديد كنندگان سايت همگانى',
473
-	'info_webmestre_forces' => 'وب مستر‌ها در حال حاضر در <  tt>@file_options@</tt تعريف مي‌شوند.',
474
-	'install_adresse_base_hebergeur' => 'آدرس داده ها که توسط میزبان وب اعطا شده',
475
-	'install_connect_ok' => 'پايگاه داده‌هاي جديد اعلام كرده از سرور با نام @connect@استفاده مي‌كند. ',
476
-	'install_echec_annonce' => 'نصب احتمالا موفق آميز نخواهد بود يا به يك سايت غير كاربردى خاتمه ميابد...',
477
-	'install_extension_php_obligatoire' => 'اسپيپ به فايلهاى php نياز دارد:',
478
-	'install_login_base_hebergeur' => 'Login ورودی به سایت که توسط میزبان وب داده شده',
479
-	'install_nom_base_hebergeur' => 'نام پایگاه داده ها که توسط میزبان وب داده شده:',
480
-	'install_pas_table' => 'پايگاه عملاً بدون جدول‌ها',
481
-	'install_pass_base_hebergeur' => 'کد ورودی به سایت که توسط میزبان وب داده شده',
482
-	'install_php_version' => 'نسخه @version@ PHP ناکافیست  دستکم= @minimum@',
483
-	'install_select_langue' => 'يك زبان را انتخاب كنيد سپس روى دكمه "بعدى" كليك كنيد، روند استقرار برنامه بكار خواهد افتاد',
484
-	'install_select_type_db' => 'نوع پايگاه داده‌ها را تعيين كردن',
485
-	'install_select_type_mysql' => 'MySQL',
486
-	'install_select_type_pg' => 'PostgreSQL',
487
-	'install_select_type_sqlite2' => 'SQLite 2',
488
-	'install_select_type_sqlite3' => 'SQLite 3',
489
-	'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur ',
490
-	'install_table_prefix_hebergeur' => 'پیشوند جدولها که توسط میزبان وب داده شده:',
491
-	'install_tables_base' => 'جدول‌هاي پايگاه',
492
-	'install_types_db_connus' => 'اسپيپ مي‌تواند<b>MySQL</b> (رايج‌تر)و <b>SQLite</b> را استفاده كند.',
493
-	'install_types_db_connus_avertissement' => 'حمايت از <b>PostgreSQL</b> عملاً به صورت تجربي پيشنهاد شده است.',
494
-	'instituer_erreur_statut_a_change' => 'وضعيت همين الأن اصلاح شده',
495
-	'instituer_erreur_statut_non_autorise' => 'نمي‌توانيد اين وضعيت را انتخاب كنيد',
496
-	'intem_redacteur' => 'نويسنده',
497
-	'intitule_licence' => 'مجوز',
498
-	'item_accepter_inscriptions' => 'ثبت نامها را بپذيريد',
499
-	'item_activer_messages_avertissement' => 'پيامهاى اخطار را فعال كنيد',
500
-	'item_administrateur_2' => 'گرداننده سايت',
501
-	'item_afficher_calendrier' => 'در بخش تقويم نمايش دهيد',
502
-	'item_autoriser_syndication_integrale' => 'پخش کامل مقاله ها در فایل های syndication',
503
-	'item_choix_administrateurs' => 'گردانندگان سايت',
504
-	'item_choix_generation_miniature' => '.تصاوير كوچك را بطور خودكار بسازيد',
505
-	'item_choix_non_generation_miniature' => '.تصاوير كوچك را بطور خودكار نسازيد',
506
-	'item_choix_redacteurs' => 'نويسندگان',
507
-	'item_choix_visiteurs' => 'بازديد كنندگان سايت همگانى',
508
-	'item_creer_fichiers_authent' => '.htpasswd : از اين فايلها بسازيد',
509
-	'item_login' => 'Login',
510
-	'item_messagerie_agenda' => 'فعال سازي سامانه‌ي پيام‌دهي و تقويم',
511
-	'item_mots_cles_association_articles' => 'به مقالات',
512
-	'item_mots_cles_association_rubriques' => 'به بخشها ',
513
-	'item_mots_cles_association_sites' => 'به سايتهاى مرجع يا پيوندى',
514
-	'item_non' => 'خير',
515
-	'item_non_accepter_inscriptions' => 'ثبت نامها را نپذيريد',
516
-	'item_non_activer_messages_avertissement' => 'بدون پيام اخطار',
517
-	'item_non_afficher_calendrier' => 'در تقويم نيايد',
518
-	'item_non_autoriser_syndication_integrale' => 'تنها خلاصه ی آنرا منتشر کنید',
519
-	'item_non_creer_fichiers_authent' => 'اين فايلها را درست نكنيد',
520
-	'item_non_messagerie_agenda' => 'غيرفعال سازي سامانه‌ي پيام‌دهي و تقويم',
521
-	'item_non_publier_articles' => 'مقالات را پيش از تعيين تاريخ قطعى انتشار منتشر نكنيد',
522
-	'item_nouvel_auteur' => 'نويسنده جديد',
523
-	'item_nouvelle_rubrique' => 'بخش جديد',
524
-	'item_oui' => 'آرى',
525
-	'item_publier_articles' => '.مقالات را عليرغم تاريخ نشرشان منتشر كنيد',
526
-	'item_reponse_article' => 'پاسخ به مقاله',
527
-	'item_visiteur' => 'بازديد كننده',
148
+    // I
149
+    'ical_info1' => 'اين صفحه شيوه هاى گوناگونى را براى آگاهى از مسايل روزانه سايت معرفى ميكند.',
150
+    'ical_info2' => 'براى آگاهى بيشتر از جزييات فنى به, <a href="@spipnet@">اسناد اسپيپ </a> مراجعه كنيد.',
151
+    'ical_info_calendrier' => '٢ روزشمار در دسترس شما ميباشد.  روزشمار اول وضعيت سايت را همراه با خبرهاى مربوط به مقالات منتشره نشان ميدهد. روزشمار دوم حاوى مقالات تحريريه و آخرين پيامهاى خصوصى شما كه بواسطه يك كد شخصى تنها در درسترس شما ميباشد است. شما ميتوانيد آنرا در هر زمانى كه مايل باشيد تغيير دهيد. ',
152
+    'ical_methode_http' => 'بارگذارى',
153
+    'ical_methode_webcal' => 'مقارن كردن (webcal://)',
154
+    'ical_texte_prive' => 'اين روزشمار شما را در جريان فعاليتهاى تحريريه ويژه سايت ميگذارد (كار, ملاقات هاى شخصى,  مقالات ...). ',
155
+    'ical_texte_public' => 'اين روزشمار بشما امكان پيگيرى فعاليت هاى همگانى سايت را ميدهد (مقالات,...). ',
156
+    'ical_texte_rss' => ' شما ميتوانيد تازه هاى اين سايت را با فايلهاى XML/RSS (Rich Site Summary)  بديگر سايتها پيوند دهيد.همچنين اين نوع فايل به اسپيپ امكان خواندن تازه هاى ديگر سايتها را ميدهد.',
157
+    'ical_titre_js' => 'جاوا اسكريپت',
158
+    'ical_titre_mailing' => 'ليست ايميلها',
159
+    'ical_titre_rss' => ' فايل syndication',
160
+    'icone_accueil' => 'خانه',
161
+    'icone_activer_cookie' => 'كوكى مكاتبه را فعال كنيد',
162
+    'icone_activite' => 'بازخورد',
163
+    'icone_admin_plugin' => 'اداره ی plugins',
164
+    'icone_administration' => 'نگه‌داري',
165
+    'icone_afficher_auteurs' => 'فهرست نويسند گان را بروى صفحه نشان دهيد ',
166
+    'icone_afficher_visiteurs' => ' فهرست بازديدكنند گان را بروى صفحه نشان دهيد ',
167
+    'icone_arret_discussion' => 'ديگر در اين بحث شركت نكنيد',
168
+    'icone_calendrier' => 'تقويم',
169
+    'icone_configuration' => 'پيكربندي',
170
+    'icone_creer_auteur' => 'يك نويسنده جديد اضافه و به اين مقاله مرتبطش كنيد',
171
+    'icone_creer_mot_cle' => 'يك كليد-واژه نو بسازيد و به اين مقاله مرتبطش كنيد',
172
+    'icone_creer_rubrique_2' => 'يك بخش جديد بسازيد',
173
+    'icone_edition' => 'ويرايش',
174
+    'icone_ma_langue' => 'زبان من',
175
+    'icone_mes_infos' => 'اطلاعات من',
176
+    'icone_mes_preferences' => 'ترجيح‌هاي من',
177
+    'icone_modifier_article' => 'اين مقاله را اصلاح كنيد',
178
+    'icone_modifier_rubrique' => 'اين بخش را اصلاح كنيد',
179
+    'icone_publication' => 'انتشار',
180
+    'icone_relancer_signataire' => 'بازنشر امضاء',
181
+    'icone_retour' => 'بازگشت',
182
+    'icone_retour_article' => 'بازگشت به مقاله',
183
+    'icone_squelette' => 'اسكلت',
184
+    'icone_suivi_publication' => 'پيگيري انتشارات',
185
+    'icone_supprimer_cookie' => 'كوكى مكاتبه را حذف كنيد',
186
+    'icone_supprimer_rubrique' => 'اين بخش را حذف كنيد',
187
+    'icone_supprimer_signature' => 'اين امضاء را حذف كنيد',
188
+    'icone_valider_signature' => 'اين امضاء را معتبر كنيد',
189
+    'image_administrer_rubrique' => 'شما ميتوانيد اين بخش را اداره كنيد',
190
+    'impossible_modifier_login_auteur' => 'تغيير لاگين ممكن نيست.', # MODIF
191
+    'impossible_modifier_pass_auteur' => 'تغيير گذرواژه ممكن نيست.', # MODIF
192
+    'info_1_article' => '١ مقاله',
193
+    'info_1_auteur' => 'نويسنده‌ي 1',
194
+    'info_1_message' => 'پيام 1',
195
+    'info_1_mot_cle' => 'كليدواژه‌ي 1',
196
+    'info_1_rubrique' => 'بخش 1',
197
+    'info_1_visiteur' => 'بازديد‌كننده‌ي 1',
198
+    'info_activer_cookie' => ' شما ميتوانيد  كوكى مكاتبه  را فعال نماپيد اينكار به شما اجازه خواهد داد كه براحتى از سايت همگانى به سايت خصوصى برويد',
199
+    'info_admin_etre_webmestre' => 'دادن حق وب مستر به من',
200
+    'info_admin_je_suis_webmestre' => 'من <b>webmestre</b> هستم',
201
+    'info_admin_statuer_webmestre' => 'تفويض حق وب مستري به اين مدير',
202
+    'info_admin_webmestre' => 'اين مدير <b>webmestre</b> است',
203
+    'info_administrateur' => 'گردانند سايت',
204
+    'info_administrateur_1' => 'گرداننده  ',
205
+    'info_administrateur_2' => '(<i>با احتياط استفاده كنيد </i>) سايت ',
206
+    'info_administrateur_site_01' => 'اگر شما از گردانند گان سايت هستيد، خواهشمند است',
207
+    'info_administrateur_site_02' => 'روى اين پيوند كليك كنيد',
208
+    'info_administrateurs' => 'گردانند گان سايت',
209
+    'info_administrer_rubrique' => 'شما ميتوانيد اين بخش را اداره كنيد',
210
+    'info_adresse' => ': به آدرس',
211
+    'info_adresse_desinscription' => 'نساني قطع آبونمان: ',
212
+    'info_adresse_url' => '(URL) آدرس سايت همگانى      ',
213
+    'info_afficher_par_nb' => 'نشان دادن با',
214
+    'info_aide_en_ligne' => 'SPIP كمك در تارنما',
215
+    'info_ajout_image' => '  هنگامى كه تصاويرى را ضميمه مقاله اى ميكنيد، اسپيپ ميتواند بطور خودكار آنها را بصورت كوچك شده اضافه كند. با اين روش ميتوان براى مثال نمايى از مجموع تصاوير را بطور خودكار درست كرد ',
216
+    'info_ajouter_rubrique' => 'يك بخش ديگر را براى اداه كردن اضافه كنيد',
217
+    'info_annonce_nouveautes' => 'خبر تازه ها',
218
+    'info_article' => 'مقاله',
219
+    'info_article_2' => 'مقاله',
220
+    'info_article_a_paraitre' => 'مقالات با تاريخ آينده منتشر شوند',
221
+    'info_articles_02' => 'مقالات',
222
+    'info_articles_2' => 'مقالات',
223
+    'info_articles_auteur' => 'مقالات اين نويسنده',
224
+    'info_articles_miens' => 'مقالات من',
225
+    'info_articles_tous' => 'تمام مقاله‌ها',
226
+    'info_articles_trouves' => 'مقالات پيدا شده',
227
+    'info_attente_validation' => 'مقاله هايتان در انتظار تأئيد شدن',
228
+    'info_aucun_article' => 'مقاله‌اي نيست',
229
+    'info_aucun_auteur' => 'هيچ مؤلفي موجود نيست',
230
+    'info_aucun_message' => 'هيچ پيامي موجود نيست',
231
+    'info_aucun_rubrique' => 'هيچ بخش',
232
+    'info_aujourdhui' => ': امروز',
233
+    'info_auteur_gere_toutes_rubriques_2' => 'من <b> تمام بخش‌ها را اداره مي‌كنم</b>', # MODIF
234
+    'info_auteurs' => 'نويسندگان ',
235
+    'info_auteurs_par_tri' => '@partri@ نويسنده گان',
236
+    'info_auteurs_trouves' => 'نويسنده گان پيدا شده   ',
237
+    'info_authentification_externe' => 'تأئيد از خارج',
238
+    'info_avertissement' => 'تذكر',
239
+    'info_barre_outils' => 'با ميل ابزار آن؟',
240
+    'info_base_installee' => '.ساختار داده پى هايتان نصب شده',
241
+    'info_bio' => 'زندگي‌نامه',
242
+    'info_cache_desactive' => 'حفاظه پنهان موقتاً غيرفعال است.',
243
+    'info_chapeau' => 'سر متن',
244
+    'info_chapeau_2' => ':سر متن',
245
+    'info_chemin_acces_1' => 'گزینش: <b>مسير ورود به راهنما</b>',
246
+    'info_chemin_acces_2' => 'شما بايد پس از اين مسير دسترسى به اطلاعات را در راهنما تنظيم كنيد. اين اطلاعات براى شناسائى كاربرانى كه در راهنما هستند ضرورى ميباشد',
247
+    'info_chemin_acces_annuaire' => 'گزینش : <b>مسير ورود به راهنما',
248
+    'info_choix_base' => ': سومين مرحله',
249
+    'info_classement_1' => '<sup>ين</sup>در @liste@',
250
+    'info_classement_2' => '<sup>ين</sup>در@liste@',
251
+    'info_code_acces' => '! كد ها ى وردي تان را فراموش نكنيد',
252
+    'info_config_suivi' => 'اگر اين آدرس به فهرست ايميل ها mailing-list مربوط ميشود, ميتوانيد در زير آدرسى را كه شركت كنندگان سايت ميتوانند در آن ثبت نام كنند را مشخص كنيد. اين آدرس ميتواند يك  URL( مانند صفحه ثبت نام در فهرست) و يا ميتواند بدين صورت باشد : <tt>@adresse_suivi@?subject=subscribe</tt>):',
253
+    'info_config_suivi_explication' => ' شما ميتوانيد بطور خودكار بوسيله ايميل خبرهاى مربوط به فعاليت تحريريه سايت را دريافت كنيد. براى اين منظور شما بايد در فهرست ايميلها mailing-list ثبت نام كنيد.',
254
+    'info_confirmer_passe' => ':كلمه ورودى جديدتان را تأئيد كنيد',
255
+    'info_conflit_edition_avis_non_sauvegarde' => 'توجه: ميدان‌هاي بعدي از جاهاي ديگر اصلاح شده است. در نتيجه اصلاحات شما ثبت نشده است. ',
256
+    'info_conflit_edition_differences' => 'تفاوت‌ها:',
257
+    'info_conflit_edition_version_enregistree' => 'نسخه ثبت شده:',
258
+    'info_conflit_edition_votre_version' => 'نسخه شما:',
259
+    'info_connexion_base' => '<b>آزمايش ارتباط با پايگاه</b>',
260
+    'info_connexion_base_donnee' => 'اتصال با پايگاه داده‌هاي شما',
261
+    'info_connexion_ldap_ok' => '<b>ارتباط ال.دي.اي.پي موفقيت آميز است.</b><p> مي‌توانيد به مرحله بعد برويد.</p>',
262
+    'info_connexion_mysql' => 'ارتباط شما با SQL',
263
+    'info_connexion_ok' => '.ارتباط برقرار شد',
264
+    'info_contact' => 'تماس',
265
+    'info_contenu_articles' => 'محتوى مقاله ها',
266
+    'info_contributions' => 'مشاركت‌ها',
267
+    'info_creation_paragraphe' => 'براى درست كردن پاراگراف، كافيست كه خط  خالى ايجاد كنيد.',
268
+    'info_creation_rubrique' => 'پيش از نوشتن مقاله ,<br />شما بايد دست كم يك بخش درست كنيد <br />',
269
+    'info_creation_tables' => '<b>درست كردن جداول پايگاه</b>',
270
+    'info_creer_base' => 'يك داده پى جديد <b>بسازيد</b>:',
271
+    'info_dans_rubrique' => ':درون بخش',
272
+    'info_date_publication_anterieure' => 'تاريخ نگارش قبلى :',
273
+    'info_date_referencement' => ': تاريخ پيوند اين سايت',
274
+    'info_derniere_etape' => 'پايان !',
275
+    'info_descriptif' => ':توصيف',
276
+    'info_desinstaller_plugin' => 'داده ها را حذف و plugin را غیر فعال کنید',
277
+    'info_discussion_cours' => 'در حال بحث',
278
+    'info_ecrire_article' => 'پيش از نوشتن مقاله، شما ميبايد دست كم يك بخش درست كنيد.',
279
+    'info_email_envoi' => 'آدرس ايميل برای ارسال (اختياری)',
280
+    'info_email_envoi_txt' => 'آدرس مورد استفاده تان را برای ارسال ايميل در اينجا درج کنيد  (وگرنه از آدرس گيرنده استفاده خواهد شد)',
281
+    'info_email_webmestre' => 'آدرس ايميل وب مستر ',
282
+    'info_envoi_email_automatique' => 'ارسال نامه ها بطور خودكار',
283
+    'info_envoyer_maintenant' => 'الان بفرستيد',
284
+    'info_etape_suivante' => 'به مرحله بعدى برويد',
285
+    'info_etape_suivante_1' => 'شما ميتوانيد به مرحله بعدى برويد',
286
+    'info_etape_suivante_2' => 'شما ميتوانيد به مرحله بعدى برويد',
287
+    'info_exceptions_proxy' => 'استثناءها براي پراكسي',
288
+    'info_exportation_base' => 'صدور پايگاه به@archive@',
289
+    'info_facilite_suivi_activite' => 'براى آسان شدن مداوم فعاليت تحريريه، سيستم  ميتواند براى مثال، خبر درخواستهاى انتشار و اعتبار مقالات را به فهرست پيكهاى نويسند گان بفرستد', # MODIF
290
+    'info_fichiers_authent' => 'فايل هاى تأئيدى« .htpasswd »',
291
+    'info_forums_abo_invites' => 'سايتتان داراى سخنگاه براى مشتركين ميباشد: از بازديد كنندگان دعوت ميشود كه در قسمت همگانى سايت ثبت نام  كنند.',
292
+    'info_gauche_admin_tech' => '<b>اين صفحه فقط براى مسئولان سايت قابل دسترسى ميباشد.</b><p>  ورود به آن اجازه دسترسى به كاركردهاى گوناگون تعمير ونگهدارى فنى را ميدهد. از جمله روند باز شناسى و تأئيد ويژه اى كه لازمه اش داشتن حق ورود به تارنما است (FTP)',
293
+    'info_gauche_admin_vider' => '<b>اين صفحه فقط براى مسئولان سايت قابل دسترسى ميباشد.</b><p>  ورود به آن اجازه دسترسى به كاركرهاى گوناگون تعمير ونگهداى فنى را ميدهد. از جمله روند باز شناسى و تأئيد ويژه اى كه لازمه اش داشتن حق ورود به تارنما است (FTP)',
294
+    'info_gauche_auteurs' => 'شما نام تمام نگارند گان را در اينجا خواهيد يافت. نوع مسئوليتشان با رنگهاى ايكونها مشخص شده است (نگارنده=آيكون سبز، گردانند سايت=آيكون زرد )',
295
+    'info_gauche_auteurs_exterieurs' => 'نويسندگان بازديدكننده، بدون دسترسي به سايت، با علامت آبي مشخص شده‌اند؛ نويسندگان حذف شده با علامت خاكتسري. ',
296
+    'info_gauche_messagerie' => 'پيام گير بشما اجازه رد و بدل پيام را با ديگر نويسند گان، نگهدارى يادداشتها (براى استفاده شخصى ) همچنين اعلان خبر در صفحه پذيرش را (در صورتى كه از گردانند گان سايت باشيد )ميدهد.',
297
+    'info_gauche_statistiques_referers' => 'اين صفحه, فهرست سايتهاى مرجع را ارائه ميدهد، بعبارتى سايتهايى كه داراى پيوند با سايت شما هستند، (فقط براى ديروز و امروز) : در واقع اين فهرست هر ٢٤ ساعت يكبار نو ميشود',
298
+    'info_gauche_visiteurs_enregistres' => 'شما, در اينجا, همه بازديد كنند گان ثبت شده در قسمت همگانى را خواهيد يافت  (براى مشتركين).',
299
+    'info_generation_miniatures_images' => 'ساخت تصاوير كوچك شده',
300
+    'info_gerer_trad_objets' => '@objets@ :مديريت پيوند‌هاي ترجمه',
301
+    'info_hebergeur_desactiver_envoi_email' => 'تعدادى از ميزبانان ارسال خودكار نامه ها را از سرورهايشان غير فعال ميكنند. در اين صورت،  عملكردهاى بعدى اسپيپ  كار نخوهند كرد. ',
302
+    'info_hier' => ': ديروز',
303
+    'info_identification_publique' => '...شناسنامه شما',
304
+    'info_image_process' => 'خواهشمند است بهترين شيوه ساخت تصاوير كوچك را با كليك كردن بروي تصوير مربوطه انتخاب نماييد.',
305
+    'info_images_auto' => 'تصاوير بطور خودكار محاسبه شده اند',
306
+    'info_informations_personnelles' => 'اطلاعات شخصى',
307
+    'info_inscription' => 'ثبت شده در ',
308
+    'info_inscription_automatique' => 'ثبت نام خوكار نويسند گان جديد',
309
+    'info_jeu_caractere' => 'انتخاب نوع و شكل حروف سايت',
310
+    'info_jours' => 'روز',
311
+    'info_laisser_champs_vides' => 'اين قسمتها را خالى بگذاريد)',
312
+    'info_langues' => 'زبانهاى سايت',
313
+    'info_ldap_ok' => 'گواهى درستى LDAP مستقر شده',
314
+    'info_lien_hypertexte' => ': پيوند هايپرتكست',
315
+    'info_liste_nouveautes_envoyee' => 'فهرست تازه‌ها ارسال شده است',
316
+    'info_liste_redacteurs_connectes' => 'فهرست نويسنده گان روى خط',
317
+    'info_login_existant' => '.موجود ميباشد login اين',
318
+    'info_login_trop_court' => 'بيش از اندازه كوتاه Login .',
319
+    'info_login_trop_court_car_pluriel' => 'لاگين بايد دست كم @nb@ كاراكتر داشته باشد.',
320
+    'info_logos' => 'لوگوها',
321
+    'info_maximum' => ': حداكثر',
322
+    'info_meme_rubrique' => 'در همان بخش',
323
+    'info_message_en_redaction' => 'پيام هايتان در حال نگارش',
324
+    'info_message_technique' => ':پيام فنى',
325
+    'info_messagerie_interne' => 'پيام گير داخلى',
326
+    'info_mise_a_niveau_base' => 'تراز گذارى پايگاه SQL',
327
+    'info_mise_a_niveau_base_2' => '{{!توجه}}شما نسخه { قديمى} اسپيپ را نصب كرده ايد براى داده پى هايتان خطر  از بين رفتن وجود دارد و همچنين از كار افتاد گى سايتتان   .<br />{{فايلهاى اسپيپ را دوباره نصب كنيد}}',
328
+    'info_modification_enregistree' => 'تغييرها ثبت شد',
329
+    'info_modifier_auteur' => 'اصلاح نويسنده',
330
+    'info_modifier_rubrique' => ':اصلاح بخش ',
331
+    'info_modifier_titre' => '@titre@ : اصلاح       ',
332
+    'info_mon_site_spip' => 'SPIP سايت من',
333
+    'info_moyenne' => ': متوسط',
334
+    'info_multi_cet_article' => ' زبان اين مقاله :',
335
+    'info_multi_langues_choisies' => 'خواهشمند است كه زبانهاى موجود براى نويسند گان سايتتان را در زير انتخاب كنيد. زبانهاى از پيش استفاده شده نميتوانند غير فعال شوند.',
336
+    'info_multi_objets' => '@objets@ :فعال‌سازي منوي زبان',
337
+    'info_multi_secteurs' => '...تنها براى بخشهاى واقع در ريشه؟',
338
+    'info_nb_articles' => '@nb@ مقاله',
339
+    'info_nb_auteurs' => '@nb@ نويسنده',
340
+    'info_nb_messages' => '@nb@ پيام',
341
+    'info_nb_mots_cles' => '@nb@ كليدواژه',
342
+    'info_nb_rubriques' => '@nb@ بخش',
343
+    'info_nb_visiteurs' => '@nb@ بازديد‌كننده',
344
+    'info_nom' => 'نام',
345
+    'info_nom_destinataire' => 'نام گيرنده',
346
+    'info_nom_pas_conforme' => 'تگ‌هاي اچ.تي.ام.ال مجاز نيستند',
347
+    'info_nom_site' => 'نام سايتتان',
348
+    'info_nombre_articles' => 'مقاله @nb_articles@ ',
349
+    'info_nombre_rubriques' => 'بخش @nb_rubriques@ ',
350
+    'info_nombre_sites' => 'سايت @nb_sites@',
351
+    'info_non_deplacer' => '...جابجا نكنيد',
352
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'اسپيپ ميتواند بطور منظم اخبار تازه هاى سايت را مانند مقاله ها، مقاله هاى كوتاه تازه منتشر شده و... را بفرستد ',
353
+    'info_non_envoi_liste_nouveautes' => 'فهرست تازه ها را نفرستيد',
354
+    'info_non_modifiable' => 'نميتواند اصلاح شود',
355
+    'info_non_suppression_mot_cle' => 'نميخواهم اين كليد-واژه را حذف كنم',
356
+    'info_notes' => 'يادداشت ',
357
+    'info_nouvel_article' => 'مقاله جديد',
358
+    'info_nouvelle_traduction' => 'برگردان جديد',
359
+    'info_numero_article' => ': مقاله شماره',
360
+    'info_obligatoire_02' => '(اجباري)', # MODIF
361
+    'info_option_accepter_visiteurs' => 'پذيرفتن ثبت نام بازديد كنندگان سايت همگانى',
362
+    'info_option_ne_pas_accepter_visiteurs' => 'رد ثبت نام بازديدكنندگان',
363
+    'info_options_avancees' => 'گزينش هاى پيشرفته',
364
+    'info_ou' => '...يا',
365
+    'info_page_interdite' => 'صفحه ممنوع',
366
+    'info_par_nom' => 'توسط نام',
367
+    'info_par_nombre_article' => 'توسط شمار مقالها',
368
+    'info_par_statut' => 'توسط نوع',
369
+    'info_par_tri' => '’(بترتيب@tri@)’',
370
+    'info_passe_trop_court' => 'كلمه ورود خيلى كوتاه',
371
+    'info_passe_trop_court_car_pluriel' => 'گذرواژه‌ دست كم بايد @nb@ كاراكتر داشته باشد.',
372
+    'info_passes_identiques' => 'دو كلمه ورود با هم يكسان نيستند',
373
+    'info_plus_cinq_car' => 'بيش از پنج حرف',
374
+    'info_plus_cinq_car_2' => '(بيش از پنج حرف)',
375
+    'info_plus_trois_car' => '(بيش از سه حرف)',
376
+    'info_popularite' => '@popularite@ : محبوبيت@visites@ : بازديد',
377
+    'info_post_scriptum' => 'نوشتار پس از متن اصلى',
378
+    'info_post_scriptum_2' => ':نوشتار پس از متن اصلى',
379
+    'info_pour' => 'براى',
380
+    'info_preview_texte' => 'اين امكان وجود دارد كه سايت را پيش از آماده شدن (پيش از پيشنهاد مقالات) بازبينى كرد مانند زمانيكه همه ى مقالات و اخبار منتشر شده اند.اين امكان ميتواند تنها براى گردانند گان سايت يا نويسندگان يا براى هيچكس نباشد.', # MODIF
381
+    'info_procedez_par_etape' => 'مرحله به مرحله اقدام كنيد',
382
+    'info_procedure_maj_version' => 'روند به روز كردن بايد به جريان بيفتد تا داده پى ها بتوانند با نسخه جديد منطبق شوند.',
383
+    'info_proxy_ok' => 'آزمایش پروکسی با موفقیت انجام شد.',
384
+    'info_ps' => 'P.-S.',
385
+    'info_publier' => 'منتشر کنید',
386
+    'info_publies' => 'مقاله هاى منتشر شده تان روى تارنما',
387
+    'info_question_accepter_visiteurs' => 'اگر اسكلت سايتتان ثبت شمار بازديدكنندگان  را بى آنكه اجازه ى ورود به قسمت خصوصى سايت را داشته باشند را  داراست خواهشمند است گزينه ى زير را فعال كنيد:',
388
+    'info_question_inscription_nouveaux_redacteurs' => 'آيا ثبت نام نويسند گان جديد را از سايت همگانى قبول ميكنيد؟ اگر ميكنيد، كاربران ميتوانند با پر كردن يك پرسشنامه ثبت نام كنند و به محوطه خصوصى راه يابند. آنها ميتوانند مقالاتشان را مطرح كنند <blockquote><i>در هنگام ثبت نام كاربران يك ايميل دريافت خواهند كرد كه شامل كد ورودي شان به سايت خصوصى خواهد بود. تعدادى از ميزبانان، ارسال ايميل را از سرورها غير فعال كرده اند: دراينصورت ثبت نام خودكار غير ممكن خواهد بود..</i></blockquote>',
389
+    'info_qui_edite' => '@nom_auteur_modif@ روي اين مطلب @date_diff@ كار كرده است.',
390
+    'info_racine_site' => 'ريشه سايت',
391
+    'info_recharger_page' => 'خواهشمند است اين صفحه را تا چند لحظه بعد دوباره شارژ كنيد',
392
+    'info_recherche_auteur_zero' => '"@cherche_auteur@" : جستجوى بدون نتيجه براى',
393
+    'info_recommencer' => '.خواهشمند است دوباره شروع كنيد',
394
+    'info_redacteur_1' => 'نويسنده',
395
+    'info_redacteur_2' => 'به بخش خصوصى دسترسى دارد(<i>توصيه ميشود</i>)',
396
+    'info_redacteurs' => 'نويسندگان',
397
+    'info_redaction_en_cours' => 'در حال نگارش',
398
+    'info_redirection' => 'هدايت دوباره آدرس ',
399
+    'info_redirection_activee' => 'باز سو دهي فعال است. ',
400
+    'info_redirection_desactivee' => 'باز سو دهي حذف شده. ',
401
+    'info_refuses' => 'مقاله هايتان كه پذيرفته نشده اند',
402
+    'info_reglage_ldap' => ' گزينش :<b> تنظيم ورود LDAP</b>',
403
+    'info_renvoi_article' => 'تغییر محل. اين مقاله به این صفحه برمیگردد:',
404
+    'info_reserve_admin' => 'تنها گردانندگان سايت حق اصلاح اين آدرس را دارند',
405
+    'info_restreindre_rubrique' => ':محدوديت در اداره بخش',
406
+    'info_resultat_recherche' => ':نتيجه جستجو',
407
+    'info_rubriques' => 'بخش ها',
408
+    'info_rubriques_02' => 'بخش ها',
409
+    'info_rubriques_trouvees' => 'بخش هاى پيدا شده',
410
+    'info_sans_titre' => 'بدون عنوان',
411
+    'info_selection_chemin_acces' => '<b>انتخاب كنيد</b> راه ورودى را در راهنما',
412
+    'info_signatures' => 'امضاء',
413
+    'info_site' => 'سايت',
414
+    'info_site_2' => ':سايت',
415
+    'info_site_min' => 'سايت',
416
+    'info_site_reference_2' => 'سايت مرجع',
417
+    'info_site_web' => 'وب سايت:',
418
+    'info_sites' => 'سايت',
419
+    'info_sites_lies_mot' => 'سايتهاى پيوندى مربوط به اين واژه-كليد',
420
+    'info_sites_proxy' => 'از پروكسى استفاده كنيد',
421
+    'info_sites_trouves' => 'سايت هاى پيدا شده',
422
+    'info_sous_titre' => ':عنوان فرعى',
423
+    'info_statut_administrateur' => 'گرداننده سايت',
424
+    'info_statut_auteur' => 'وضعيت اين نويسنده:',
425
+    'info_statut_auteur_2' => 'من هستم',
426
+    'info_statut_auteur_a_confirmer' => 'ثبت نام تائید شود',
427
+    'info_statut_auteur_autre' => 'وضعیت دیگر:',
428
+    'info_statut_redacteur' => 'نويسنده',
429
+    'info_statut_utilisateurs_1' => 'وضعيت كاربران ورودى',
430
+    'info_statut_utilisateurs_2' => 'وضعيت اشخاص حاضر در راهنماى ال دى ا پى را كه براى اولين بار به سايت ميپيوندند مشخص كنيد. شما ميتوانيد پس از آن  براى هر نويسنده آنرا مورد به مورد اصلاح كنيد',
431
+    'info_suivi_activite' => 'دنباله سر مقاله',
432
+    'info_surtitre' => ':سر عنوان',
433
+    'info_syndication_integrale_1' => 'سایتتان فایلهای syndication را پیشنهاد میکند (voir « <a href="@url@">@titre@</a> »). ',
434
+    'info_syndication_integrale_2' => 'آیا مایلید که مقاله ها را بطور کامل یا فقط خلاصه ای از آنها را بفرستید؟',
435
+    'info_table_prefix' => 'شما میتوانید پیشوند نام جدولهای داده ها را اصلاح کنید زیرا هنگامیکه از یک داده پی برای چند سایت استفاده میکنید اینکار اجباری است. پیشوند باید با حروف کوچک بدون اکسان و بی فاصله باشد.',
436
+    'info_taille_maximale_images' => 'اسپيپ برش‌ بالاتر تصاوير را كه مي‌تواند نشان دهد(در ميليون‌ها پيكشل) آزمايش مي‌كند. <br /> تصاوير بزرگتر كاهش نمي‌يابند.',
437
+    'info_taille_maximale_vignette' => 'حد اكثر اندازه براى توليد تصاوير كوچك توسط سيستم',
438
+    'info_terminer_installation' => 'شما اكنون ميتوانيد روند استقرار برنامه را پايان دهيد.',
439
+    'info_texte' => 'متن',
440
+    'info_texte_explicatif' => 'متن توضيحى',
441
+    'info_texte_long' => 'متن بيش از اندازه بلند ميباشد : در ابتدا به چند قسمت تقسيم و پس از تائيد، قطعات به هم متصل خواهند شد.',
442
+    'info_texte_message' => 'متن پيام شما',
443
+    'info_texte_message_02' => 'متن پيام',
444
+    'info_titre' => ':عنوان',
445
+    'info_total' => ':كل',
446
+    'info_tous_articles_en_redaction' => 'تمام مقالات در حال نگارش',
447
+    'info_tous_articles_presents' => 'تمام مقالات منتشر شده در اين بخش',
448
+    'info_tous_articles_refuses' => 'تمام مقالات رد شده',
449
+    'info_tous_les' => 'تمام :',
450
+    'info_tout_site' => 'همه سايت',
451
+    'info_tout_site2' => 'مقاله به اين زبان ترجمه نشده.',
452
+    'info_tout_site3' => 'مقاله به اين زبان ترجمه شده,  سپس تغييراتى در مقاله ى اصلى صورت گرفته, بدين جهت بايد برگردان آنرا بروز كرد.',
453
+    'info_tout_site4' => 'مقاله به اين زبان ترجمه و برگردان آن بروز شده.',
454
+    'info_tout_site5' => 'مقاله ى اصلى',
455
+    'info_tout_site6' => ' :<b>توجه<b/> تنها مقالات اصلى اعلان ميشوند و برگردانهايشان با رنگهايى كه گوياى وضعيت آنهاست به آنها متصلند.',
456
+    'info_traductions' => 'ترجمه‌ها',
457
+    'info_travail_colaboratif' => 'مقالات حاصل كار دست جمعى',
458
+    'info_un_article' => 'يك مقاله',
459
+    'info_un_site' => ',يك سايت',
460
+    'info_une_rubrique' => ',يك بخش',
461
+    'info_une_rubrique_02' => '١ بخش',
462
+    'info_url' => ':URL',
463
+    'info_url_proxy' => 'پراكسي URL',
464
+    'info_url_site_pas_conforme' => 'يو.آر.ال سايت معتبر نيست. ',
465
+    'info_url_test_proxy' => 'تست URL',
466
+    'info_urlref' => 'پيوند هايپرتکست:',
467
+    'info_utilisation_spip' => 'شما اكنون ميتوانيد از سيستم انتشار حضورى استفاده كنيد',
468
+    'info_visites_par_mois' => ':نمودار ماهانه',
469
+    'info_visiteur_1' => 'بازديد كننده',
470
+    'info_visiteur_2' => 'سايت همگانى',
471
+    'info_visiteurs' => 'بازديد كنندگان',
472
+    'info_visiteurs_02' => 'بازديد كنندگان سايت همگانى',
473
+    'info_webmestre_forces' => 'وب مستر‌ها در حال حاضر در <  tt>@file_options@</tt تعريف مي‌شوند.',
474
+    'install_adresse_base_hebergeur' => 'آدرس داده ها که توسط میزبان وب اعطا شده',
475
+    'install_connect_ok' => 'پايگاه داده‌هاي جديد اعلام كرده از سرور با نام @connect@استفاده مي‌كند. ',
476
+    'install_echec_annonce' => 'نصب احتمالا موفق آميز نخواهد بود يا به يك سايت غير كاربردى خاتمه ميابد...',
477
+    'install_extension_php_obligatoire' => 'اسپيپ به فايلهاى php نياز دارد:',
478
+    'install_login_base_hebergeur' => 'Login ورودی به سایت که توسط میزبان وب داده شده',
479
+    'install_nom_base_hebergeur' => 'نام پایگاه داده ها که توسط میزبان وب داده شده:',
480
+    'install_pas_table' => 'پايگاه عملاً بدون جدول‌ها',
481
+    'install_pass_base_hebergeur' => 'کد ورودی به سایت که توسط میزبان وب داده شده',
482
+    'install_php_version' => 'نسخه @version@ PHP ناکافیست  دستکم= @minimum@',
483
+    'install_select_langue' => 'يك زبان را انتخاب كنيد سپس روى دكمه "بعدى" كليك كنيد، روند استقرار برنامه بكار خواهد افتاد',
484
+    'install_select_type_db' => 'نوع پايگاه داده‌ها را تعيين كردن',
485
+    'install_select_type_mysql' => 'MySQL',
486
+    'install_select_type_pg' => 'PostgreSQL',
487
+    'install_select_type_sqlite2' => 'SQLite 2',
488
+    'install_select_type_sqlite3' => 'SQLite 3',
489
+    'install_serveur_hebergeur' => 'Serveur de base de données attribué par l’hébergeur ',
490
+    'install_table_prefix_hebergeur' => 'پیشوند جدولها که توسط میزبان وب داده شده:',
491
+    'install_tables_base' => 'جدول‌هاي پايگاه',
492
+    'install_types_db_connus' => 'اسپيپ مي‌تواند<b>MySQL</b> (رايج‌تر)و <b>SQLite</b> را استفاده كند.',
493
+    'install_types_db_connus_avertissement' => 'حمايت از <b>PostgreSQL</b> عملاً به صورت تجربي پيشنهاد شده است.',
494
+    'instituer_erreur_statut_a_change' => 'وضعيت همين الأن اصلاح شده',
495
+    'instituer_erreur_statut_non_autorise' => 'نمي‌توانيد اين وضعيت را انتخاب كنيد',
496
+    'intem_redacteur' => 'نويسنده',
497
+    'intitule_licence' => 'مجوز',
498
+    'item_accepter_inscriptions' => 'ثبت نامها را بپذيريد',
499
+    'item_activer_messages_avertissement' => 'پيامهاى اخطار را فعال كنيد',
500
+    'item_administrateur_2' => 'گرداننده سايت',
501
+    'item_afficher_calendrier' => 'در بخش تقويم نمايش دهيد',
502
+    'item_autoriser_syndication_integrale' => 'پخش کامل مقاله ها در فایل های syndication',
503
+    'item_choix_administrateurs' => 'گردانندگان سايت',
504
+    'item_choix_generation_miniature' => '.تصاوير كوچك را بطور خودكار بسازيد',
505
+    'item_choix_non_generation_miniature' => '.تصاوير كوچك را بطور خودكار نسازيد',
506
+    'item_choix_redacteurs' => 'نويسندگان',
507
+    'item_choix_visiteurs' => 'بازديد كنندگان سايت همگانى',
508
+    'item_creer_fichiers_authent' => '.htpasswd : از اين فايلها بسازيد',
509
+    'item_login' => 'Login',
510
+    'item_messagerie_agenda' => 'فعال سازي سامانه‌ي پيام‌دهي و تقويم',
511
+    'item_mots_cles_association_articles' => 'به مقالات',
512
+    'item_mots_cles_association_rubriques' => 'به بخشها ',
513
+    'item_mots_cles_association_sites' => 'به سايتهاى مرجع يا پيوندى',
514
+    'item_non' => 'خير',
515
+    'item_non_accepter_inscriptions' => 'ثبت نامها را نپذيريد',
516
+    'item_non_activer_messages_avertissement' => 'بدون پيام اخطار',
517
+    'item_non_afficher_calendrier' => 'در تقويم نيايد',
518
+    'item_non_autoriser_syndication_integrale' => 'تنها خلاصه ی آنرا منتشر کنید',
519
+    'item_non_creer_fichiers_authent' => 'اين فايلها را درست نكنيد',
520
+    'item_non_messagerie_agenda' => 'غيرفعال سازي سامانه‌ي پيام‌دهي و تقويم',
521
+    'item_non_publier_articles' => 'مقالات را پيش از تعيين تاريخ قطعى انتشار منتشر نكنيد',
522
+    'item_nouvel_auteur' => 'نويسنده جديد',
523
+    'item_nouvelle_rubrique' => 'بخش جديد',
524
+    'item_oui' => 'آرى',
525
+    'item_publier_articles' => '.مقالات را عليرغم تاريخ نشرشان منتشر كنيد',
526
+    'item_reponse_article' => 'پاسخ به مقاله',
527
+    'item_visiteur' => 'بازديد كننده',
528 528
 
529
-	// J
530
-	'jour_non_connu_nc' => 'n.c.',
529
+    // J
530
+    'jour_non_connu_nc' => 'n.c.',
531 531
 
532
-	// L
533
-	'label_bando_outils' => 'ميل ابزار ',
534
-	'label_bando_outils_afficher' => 'نمايش ابزارها',
535
-	'label_bando_outils_masquer' => 'پوشاندن ابزارها',
536
-	'label_choix_langue' => 'زبان خود را انتخاب كنيد',
537
-	'label_nom_fichier_connect' => 'اعلام نام مورد استفاده براي اين سرور ',
538
-	'label_slogan_site' => 'شعار سايت',
539
-	'label_taille_ecran' => 'پهناي پرده‌ي نمايش', # MODIF
540
-	'label_texte_et_icones_navigation' => 'منوي ناوبري ',
541
-	'label_texte_et_icones_page' => 'صفحه‌ي نمايش ',
542
-	'ldap_correspondance' => 'ميدان موروثي @champ@',
543
-	'ldap_correspondance_1' => 'ميدان‌هاي موروثي LDAP',
544
-	'ldap_correspondance_2' => 'براي هر يك از ميدان‌هاي بعدي اسپيپ، نام متناسب با ميدان LDAP را وارد كنيد. اگر نمي‌خواهيد پر كنيد آن را خالي بگذاريد، براي پركردن چندين ميدان LDAP  با كاما يا فاصله جداشان كنيد.',
545
-	'lien_ajouter_auteur' => 'نام اين نويسنده را اضافه كنيد',
546
-	'lien_ajouter_une_rubrique' => 'افزودن اين بخش',
547
-	'lien_email' => 'ايميل',
548
-	'lien_nom_site' => ':نام سايت',
549
-	'lien_retirer_auteur' => 'خارج كردن نام نويسنده',
550
-	'lien_retirer_rubrique' => 'حذف كردن بخش',
551
-	'lien_retirer_tous_auteurs' => 'حذف تمام مؤلفان',
552
-	'lien_retirer_toutes_rubriques' => 'حذف تمام بخش‌ها',
553
-	'lien_site' => 'سايت',
554
-	'lien_tout_deplier' => 'همه را باز كنيد',
555
-	'lien_tout_replier' => 'همه را ببنديد',
556
-	'lien_tout_supprimer' => 'همه را حذف کنید',
557
-	'lien_trier_nom' => 'بترتيب نام',
558
-	'lien_trier_nombre_articles' => 'بترتيب تعداد مقالات',
559
-	'lien_trier_statut' => 'بترتيب موقعيت',
560
-	'lien_voir_en_ligne' => 'روى شبكه ببينيد :',
561
-	'logo_article' => 'لوگوي مقاله',
562
-	'logo_auteur' => 'لوگوي نويسنده',
563
-	'logo_rubrique' => 'لوگوي بخش',
564
-	'logo_site' => 'لوگوي اين سايت',
565
-	'logo_standard_rubrique' => 'لوگوي استاندارد بخش‌ها',
566
-	'logo_survol' => 'لوگوي موش‌ روش!',
532
+    // L
533
+    'label_bando_outils' => 'ميل ابزار ',
534
+    'label_bando_outils_afficher' => 'نمايش ابزارها',
535
+    'label_bando_outils_masquer' => 'پوشاندن ابزارها',
536
+    'label_choix_langue' => 'زبان خود را انتخاب كنيد',
537
+    'label_nom_fichier_connect' => 'اعلام نام مورد استفاده براي اين سرور ',
538
+    'label_slogan_site' => 'شعار سايت',
539
+    'label_taille_ecran' => 'پهناي پرده‌ي نمايش', # MODIF
540
+    'label_texte_et_icones_navigation' => 'منوي ناوبري ',
541
+    'label_texte_et_icones_page' => 'صفحه‌ي نمايش ',
542
+    'ldap_correspondance' => 'ميدان موروثي @champ@',
543
+    'ldap_correspondance_1' => 'ميدان‌هاي موروثي LDAP',
544
+    'ldap_correspondance_2' => 'براي هر يك از ميدان‌هاي بعدي اسپيپ، نام متناسب با ميدان LDAP را وارد كنيد. اگر نمي‌خواهيد پر كنيد آن را خالي بگذاريد، براي پركردن چندين ميدان LDAP  با كاما يا فاصله جداشان كنيد.',
545
+    'lien_ajouter_auteur' => 'نام اين نويسنده را اضافه كنيد',
546
+    'lien_ajouter_une_rubrique' => 'افزودن اين بخش',
547
+    'lien_email' => 'ايميل',
548
+    'lien_nom_site' => ':نام سايت',
549
+    'lien_retirer_auteur' => 'خارج كردن نام نويسنده',
550
+    'lien_retirer_rubrique' => 'حذف كردن بخش',
551
+    'lien_retirer_tous_auteurs' => 'حذف تمام مؤلفان',
552
+    'lien_retirer_toutes_rubriques' => 'حذف تمام بخش‌ها',
553
+    'lien_site' => 'سايت',
554
+    'lien_tout_deplier' => 'همه را باز كنيد',
555
+    'lien_tout_replier' => 'همه را ببنديد',
556
+    'lien_tout_supprimer' => 'همه را حذف کنید',
557
+    'lien_trier_nom' => 'بترتيب نام',
558
+    'lien_trier_nombre_articles' => 'بترتيب تعداد مقالات',
559
+    'lien_trier_statut' => 'بترتيب موقعيت',
560
+    'lien_voir_en_ligne' => 'روى شبكه ببينيد :',
561
+    'logo_article' => 'لوگوي مقاله',
562
+    'logo_auteur' => 'لوگوي نويسنده',
563
+    'logo_rubrique' => 'لوگوي بخش',
564
+    'logo_site' => 'لوگوي اين سايت',
565
+    'logo_standard_rubrique' => 'لوگوي استاندارد بخش‌ها',
566
+    'logo_survol' => 'لوگوي موش‌ روش!',
567 567
 
568
-	// M
569
-	'menu_aide_installation_choix_base' => 'انتخاب پايگاه',
570
-	'module_fichier_langue' => 'فايل زبان',
571
-	'module_raccourci' => 'راه كوتاه',
572
-	'module_texte_affiche' => 'متن اعلانى',
573
-	'module_texte_explicatif' => 'شما ميتوانيد راه هاى كوتاه زير را در اسكلتهاى سايتتان بگنجانيد. آنها بطور خودكار به زبانهايى كه داراى فايل زبان هستند, ترجمه ميشوند.',
574
-	'module_texte_traduction' => 'فايل زبان« @module@ »بصورت زير در دسترس ميباشد:',
575
-	'mois_non_connu' => 'شناخته نشده',
568
+    // M
569
+    'menu_aide_installation_choix_base' => 'انتخاب پايگاه',
570
+    'module_fichier_langue' => 'فايل زبان',
571
+    'module_raccourci' => 'راه كوتاه',
572
+    'module_texte_affiche' => 'متن اعلانى',
573
+    'module_texte_explicatif' => 'شما ميتوانيد راه هاى كوتاه زير را در اسكلتهاى سايتتان بگنجانيد. آنها بطور خودكار به زبانهايى كه داراى فايل زبان هستند, ترجمه ميشوند.',
574
+    'module_texte_traduction' => 'فايل زبان« @module@ »بصورت زير در دسترس ميباشد:',
575
+    'mois_non_connu' => 'شناخته نشده',
576 576
 
577
-	// N
578
-	'nouvelle_version_spip' => 'اسپيپ نسخه‌ي @version@ در دسترس است  ', # MODIF
577
+    // N
578
+    'nouvelle_version_spip' => 'اسپيپ نسخه‌ي @version@ در دسترس است  ', # MODIF
579 579
 
580
-	// O
581
-	'onglet_contenu' => 'محتوا',
582
-	'onglet_declarer_une_autre_base' => 'اعلام يك پايگاه ديگر',
583
-	'onglet_discuter' => 'بحث',
584
-	'onglet_interactivite' => 'تعامل',
585
-	'onglet_proprietes' => 'خصوصيات',
586
-	'onglet_repartition_actuelle' => 'در حال حاضر',
587
-	'onglet_sous_rubriques' => 'زيربخش‌ها',
580
+    // O
581
+    'onglet_contenu' => 'محتوا',
582
+    'onglet_declarer_une_autre_base' => 'اعلام يك پايگاه ديگر',
583
+    'onglet_discuter' => 'بحث',
584
+    'onglet_interactivite' => 'تعامل',
585
+    'onglet_proprietes' => 'خصوصيات',
586
+    'onglet_repartition_actuelle' => 'در حال حاضر',
587
+    'onglet_sous_rubriques' => 'زيربخش‌ها',
588 588
 
589
-	// P
590
-	'page_pas_proxy' => 'اين صفحه نبايد از طريق پراكسي بگذرد',
591
-	'pas_de_proxy_pour' => 'در صورت لزوم نام ماشینها یا موضوعاتی که باید در برابر این پروکسی بی اثر باشد را مشخص کنید (برای مثال:@مثال@)',
592
-	'plugin_charge_paquet' => 'باربرداري فايل آرشيوي @name@',
593
-	'plugin_charger' => 'بارگذاري ',
594
-	'plugin_erreur_charger' => 'خطا: بارگذاري @zip@ ممكن نيست',
595
-	'plugin_erreur_droit1' => 'نوشتن در ديركتوري <code>@dest@</code> ممكن نيست.',
596
-	'plugin_erreur_droit2' => 'لطفاً مجوز‌هاي نوشتن در اين ديركتوري را چك كنيد (و اگر لازم بود آن را ايجاد كنيد)، در غير اين صورت، فايل‌ها را با اف.تي.پي نصب كنيد. ',
597
-	'plugin_erreur_zip' => 'اشكال pclzip: خطا @status@',
598
-	'plugin_etat_developpement' => 'در حال تکمیل',
599
-	'plugin_etat_experimental' => 'آزمایشی',
600
-	'plugin_etat_stable' => 'ثابت',
601
-	'plugin_etat_test' => 'در حال آزمایش',
602
-	'plugin_impossible_activer' => 'فعال کردن plugin @plugin@ غیر ممکن میباشد',
603
-	'plugin_info_automatique1' => 'اگر مي‌خواهيد نصب خودكار پلاكنين‌ها را مجاز كنيد، لطفاً: ',
604
-	'plugin_info_automatique1_lib' => 'اگر مي‌خواهيد نصب خودكار اين مجموعه‌فايل را مجاز كنيد، لطفاً: ',
605
-	'plugin_info_automatique2' => 'يك ديركتوري <code>@rep@</code> ايجاد كنيد؛',
606
-	'plugin_info_automatique3' => 'بررسي كنيد كه سرور مجوز‌ نوشتن در اين ديركتوري را دارد.',
607
-	'plugin_info_automatique_creer' => 'ايجاد در ريشه‌ي سايت.',
608
-	'plugin_info_automatique_exemples' => 'نمونه‌ها:',
609
-	'plugin_info_automatique_ftp' => 'مي‌توانيد پلاگين‌ها را با FTP در ديركتوري  <tt>@rep@</tt> نصب كنيد',
610
-	'plugin_info_automatique_lib' => 'بعضي پلاگين‌ها لازم است بتوانند فايل‌ها را در ديركتوري <code>lib/</code> بارگذاري كنند. در اين صورت، اين ديركتوري بايد در ريشه‌ي سايت ايجاد شود.  ',
611
-	'plugin_info_automatique_liste' => 'فهرست‌هاي پلاگين‌هايتان: ',
612
-	'plugin_info_automatique_liste_officielle' => 'پلاگين‌هاي رسمي',
613
-	'plugin_info_automatique_liste_update' => 'روزآمدسازي فهرست‌ها',
614
-	'plugin_info_automatique_ou' => 'يا...',
615
-	'plugin_info_automatique_select' => 'يكي از پلاگين‌هاي زير را انتخاب كنيد: اسپيپ آن را در ديركتوري <code>@rep@</code> بارگذاري مي‌كند؛ اگر آن پلاگين آنجا باشد آن را به روز مي‌كند.',
616
-	'plugin_info_credit' => 'معتبر',
617
-	'plugin_info_erreur_xml' => 'اعلام پلاگين علط',
618
-	'plugin_info_install_ok' => 'نصب موفق',
619
-	'plugin_info_necessite' => 'الزام‌ها:‌',
620
-	'plugin_info_non_compatible_spip' => 'اين پلاگن با اين نسخه‌ي اسپيپ نمي‌خواند',
621
-	'plugin_info_plugins_dist_1' => 'پلاگين‌هاي زير در پوشه‌ي @plugins_dist@ بارگذاري و فعال‌ شده‌اند. ',
622
-	'plugin_info_plugins_dist_2' => 'غيرفعال نمي‌شوند',
623
-	'plugin_info_telecharger' => 'باربرداري از @url@ و نصب در @rep@',
624
-	'plugin_info_upgrade_ok' => ' روزآمدسازي موفق',
625
-	'plugin_librairies_installees' => 'آرشيو‌هاي نصب‌ شده',
626
-	'plugin_necessite_lib' => 'اين پلاگين به آرشيو @lib@ نياز دارد',
627
-	'plugin_necessite_plugin' => 'به plugin @plugin@ نسخه ی @version@ نیاز دارید', # MODIF
628
-	'plugin_necessite_plugin_sans_version' => 'پلاگين @plugin@ لازم است ',
629
-	'plugin_necessite_spip' => 'به اسپیپ نسخه ی @version@ نیاز دارید.',
630
-	'plugin_source' => 'منبع: ',
631
-	'plugin_titre_automatique' => 'نصب خودكار ',
632
-	'plugin_titre_automatique_ajouter' => 'افرودن پلاگين‌ها',
633
-	'plugin_titre_installation' => 'نصب پلاگين  @plugin@',
634
-	'plugin_titre_modifier' => 'پلاگين‌هاي من ',
635
-	'plugin_zip_active' => 'براي فعال سازي ادامه دهيد',
636
-	'plugin_zip_adresse' => 'در زير، نشاني فايل زيپ پلاگين يا نشاني فهرست پلاگين‌ها را مشخص كنيد تا بارگذاري شود',
637
-	'plugin_zip_adresse_champ' => 'نشاني پلاگين يا فهرست',
638
-	'plugin_zip_content' => 'شامل فايل‌هاي (@taille@) آماده براي بازگذاري در ديركتوري <code>@rep@</code> ',
639
-	'plugin_zip_installe_finie' => 'فايل @zip@ باز و نصب شده است.',
640
-	'plugin_zip_installe_rep_finie' => 'فايل @zip@ باز و در ديركتوري @zip@ نصب شده است',
641
-	'plugin_zip_installer' => 'اكنون مي‌توانيد نصبش كنيد.',
642
-	'plugin_zip_telecharge' => 'فايل @zip@ بارگذاري شده',
643
-	'plugins_actif_aucun' => 'هيچ پلاگيني فعال نيست.',
644
-	'plugins_actif_un' => 'يك پلاگين فعال است. ',
645
-	'plugins_actifs' => ' @count@ پلاگين فعال است.',
646
-	'plugins_actifs_liste' => 'فعال‌سازي شده',
647
-	'plugins_compte' => '@count@ پلاگين ',
648
-	'plugins_disponible_un' => 'يك پلاگين در دصترس.',
649
-	'plugins_disponibles' => '@count@ پلاگين در دسترس.',
650
-	'plugins_erreur' => 'خطا در پلاگين‌ها: @plugins@',
651
-	'plugins_liste' => 'فهرست plugins',
652
-	'plugins_liste_dist' => 'پلاگين‌هاي قفل شده ',
653
-	'plugins_recents' => 'پلاگين‌هاي اخير.',
654
-	'plugins_tous_liste' => 'همه',
655
-	'plugins_vue_hierarchie' => 'سلسله مراتب ',
656
-	'plugins_vue_liste' => 'فهرست',
657
-	'protocole_ldap' => 'نسخه ی پروتکل:',
589
+    // P
590
+    'page_pas_proxy' => 'اين صفحه نبايد از طريق پراكسي بگذرد',
591
+    'pas_de_proxy_pour' => 'در صورت لزوم نام ماشینها یا موضوعاتی که باید در برابر این پروکسی بی اثر باشد را مشخص کنید (برای مثال:@مثال@)',
592
+    'plugin_charge_paquet' => 'باربرداري فايل آرشيوي @name@',
593
+    'plugin_charger' => 'بارگذاري ',
594
+    'plugin_erreur_charger' => 'خطا: بارگذاري @zip@ ممكن نيست',
595
+    'plugin_erreur_droit1' => 'نوشتن در ديركتوري <code>@dest@</code> ممكن نيست.',
596
+    'plugin_erreur_droit2' => 'لطفاً مجوز‌هاي نوشتن در اين ديركتوري را چك كنيد (و اگر لازم بود آن را ايجاد كنيد)، در غير اين صورت، فايل‌ها را با اف.تي.پي نصب كنيد. ',
597
+    'plugin_erreur_zip' => 'اشكال pclzip: خطا @status@',
598
+    'plugin_etat_developpement' => 'در حال تکمیل',
599
+    'plugin_etat_experimental' => 'آزمایشی',
600
+    'plugin_etat_stable' => 'ثابت',
601
+    'plugin_etat_test' => 'در حال آزمایش',
602
+    'plugin_impossible_activer' => 'فعال کردن plugin @plugin@ غیر ممکن میباشد',
603
+    'plugin_info_automatique1' => 'اگر مي‌خواهيد نصب خودكار پلاكنين‌ها را مجاز كنيد، لطفاً: ',
604
+    'plugin_info_automatique1_lib' => 'اگر مي‌خواهيد نصب خودكار اين مجموعه‌فايل را مجاز كنيد، لطفاً: ',
605
+    'plugin_info_automatique2' => 'يك ديركتوري <code>@rep@</code> ايجاد كنيد؛',
606
+    'plugin_info_automatique3' => 'بررسي كنيد كه سرور مجوز‌ نوشتن در اين ديركتوري را دارد.',
607
+    'plugin_info_automatique_creer' => 'ايجاد در ريشه‌ي سايت.',
608
+    'plugin_info_automatique_exemples' => 'نمونه‌ها:',
609
+    'plugin_info_automatique_ftp' => 'مي‌توانيد پلاگين‌ها را با FTP در ديركتوري  <tt>@rep@</tt> نصب كنيد',
610
+    'plugin_info_automatique_lib' => 'بعضي پلاگين‌ها لازم است بتوانند فايل‌ها را در ديركتوري <code>lib/</code> بارگذاري كنند. در اين صورت، اين ديركتوري بايد در ريشه‌ي سايت ايجاد شود.  ',
611
+    'plugin_info_automatique_liste' => 'فهرست‌هاي پلاگين‌هايتان: ',
612
+    'plugin_info_automatique_liste_officielle' => 'پلاگين‌هاي رسمي',
613
+    'plugin_info_automatique_liste_update' => 'روزآمدسازي فهرست‌ها',
614
+    'plugin_info_automatique_ou' => 'يا...',
615
+    'plugin_info_automatique_select' => 'يكي از پلاگين‌هاي زير را انتخاب كنيد: اسپيپ آن را در ديركتوري <code>@rep@</code> بارگذاري مي‌كند؛ اگر آن پلاگين آنجا باشد آن را به روز مي‌كند.',
616
+    'plugin_info_credit' => 'معتبر',
617
+    'plugin_info_erreur_xml' => 'اعلام پلاگين علط',
618
+    'plugin_info_install_ok' => 'نصب موفق',
619
+    'plugin_info_necessite' => 'الزام‌ها:‌',
620
+    'plugin_info_non_compatible_spip' => 'اين پلاگن با اين نسخه‌ي اسپيپ نمي‌خواند',
621
+    'plugin_info_plugins_dist_1' => 'پلاگين‌هاي زير در پوشه‌ي @plugins_dist@ بارگذاري و فعال‌ شده‌اند. ',
622
+    'plugin_info_plugins_dist_2' => 'غيرفعال نمي‌شوند',
623
+    'plugin_info_telecharger' => 'باربرداري از @url@ و نصب در @rep@',
624
+    'plugin_info_upgrade_ok' => ' روزآمدسازي موفق',
625
+    'plugin_librairies_installees' => 'آرشيو‌هاي نصب‌ شده',
626
+    'plugin_necessite_lib' => 'اين پلاگين به آرشيو @lib@ نياز دارد',
627
+    'plugin_necessite_plugin' => 'به plugin @plugin@ نسخه ی @version@ نیاز دارید', # MODIF
628
+    'plugin_necessite_plugin_sans_version' => 'پلاگين @plugin@ لازم است ',
629
+    'plugin_necessite_spip' => 'به اسپیپ نسخه ی @version@ نیاز دارید.',
630
+    'plugin_source' => 'منبع: ',
631
+    'plugin_titre_automatique' => 'نصب خودكار ',
632
+    'plugin_titre_automatique_ajouter' => 'افرودن پلاگين‌ها',
633
+    'plugin_titre_installation' => 'نصب پلاگين  @plugin@',
634
+    'plugin_titre_modifier' => 'پلاگين‌هاي من ',
635
+    'plugin_zip_active' => 'براي فعال سازي ادامه دهيد',
636
+    'plugin_zip_adresse' => 'در زير، نشاني فايل زيپ پلاگين يا نشاني فهرست پلاگين‌ها را مشخص كنيد تا بارگذاري شود',
637
+    'plugin_zip_adresse_champ' => 'نشاني پلاگين يا فهرست',
638
+    'plugin_zip_content' => 'شامل فايل‌هاي (@taille@) آماده براي بازگذاري در ديركتوري <code>@rep@</code> ',
639
+    'plugin_zip_installe_finie' => 'فايل @zip@ باز و نصب شده است.',
640
+    'plugin_zip_installe_rep_finie' => 'فايل @zip@ باز و در ديركتوري @zip@ نصب شده است',
641
+    'plugin_zip_installer' => 'اكنون مي‌توانيد نصبش كنيد.',
642
+    'plugin_zip_telecharge' => 'فايل @zip@ بارگذاري شده',
643
+    'plugins_actif_aucun' => 'هيچ پلاگيني فعال نيست.',
644
+    'plugins_actif_un' => 'يك پلاگين فعال است. ',
645
+    'plugins_actifs' => ' @count@ پلاگين فعال است.',
646
+    'plugins_actifs_liste' => 'فعال‌سازي شده',
647
+    'plugins_compte' => '@count@ پلاگين ',
648
+    'plugins_disponible_un' => 'يك پلاگين در دصترس.',
649
+    'plugins_disponibles' => '@count@ پلاگين در دسترس.',
650
+    'plugins_erreur' => 'خطا در پلاگين‌ها: @plugins@',
651
+    'plugins_liste' => 'فهرست plugins',
652
+    'plugins_liste_dist' => 'پلاگين‌هاي قفل شده ',
653
+    'plugins_recents' => 'پلاگين‌هاي اخير.',
654
+    'plugins_tous_liste' => 'همه',
655
+    'plugins_vue_hierarchie' => 'سلسله مراتب ',
656
+    'plugins_vue_liste' => 'فهرست',
657
+    'protocole_ldap' => 'نسخه ی پروتکل:',
658 658
 
659
-	// Q
660
-	'queue_executer_maintenant' => 'اجرا حالا',
661
-	'queue_info_purger' => 'مي‌‌توانيد تمام كارهاي در دست انجام را حذف كنيد و فهرست  كارهاي دوره‌اي را بازتنظيم (ريست) كنيد', # MODIF
662
-	'queue_nb_jobs_in_queue' => '@nb@ وظيفه در صف ', # MODIF
663
-	'queue_next_job_in_nb_sec' => 'وظيفه‌ي بعدي در  @nb@ امين', # MODIF
664
-	'queue_no_job_in_queue' => 'وظيفه‌اي در دست اجرا نيست', # MODIF
665
-	'queue_one_job_in_queue' => '1 وظيفه در صف', # MODIF
666
-	'queue_purger_queue' => 'بازتنظيم فهرست كارها', # MODIF
667
-	'queue_titre' => 'فهرست وظيفه‌ها', # MODIF
659
+    // Q
660
+    'queue_executer_maintenant' => 'اجرا حالا',
661
+    'queue_info_purger' => 'مي‌‌توانيد تمام كارهاي در دست انجام را حذف كنيد و فهرست  كارهاي دوره‌اي را بازتنظيم (ريست) كنيد', # MODIF
662
+    'queue_nb_jobs_in_queue' => '@nb@ وظيفه در صف ', # MODIF
663
+    'queue_next_job_in_nb_sec' => 'وظيفه‌ي بعدي در  @nb@ امين', # MODIF
664
+    'queue_no_job_in_queue' => 'وظيفه‌اي در دست اجرا نيست', # MODIF
665
+    'queue_one_job_in_queue' => '1 وظيفه در صف', # MODIF
666
+    'queue_purger_queue' => 'بازتنظيم فهرست كارها', # MODIF
667
+    'queue_titre' => 'فهرست وظيفه‌ها', # MODIF
668 668
 
669
-	// R
670
-	'repertoire_plugins' => 'رپرتوار:',
671
-	'required' => '(اجباري)', # MODIF
669
+    // R
670
+    'repertoire_plugins' => 'رپرتوار:',
671
+    'required' => '(اجباري)', # MODIF
672 672
 
673
-	// S
674
-	'sans_heure' => 'زمان نامشخص',
675
-	'statut_admin_restreint' => 'ادمين محدود',
676
-	'statut_webmestre' => 'وب مستر ',
673
+    // S
674
+    'sans_heure' => 'زمان نامشخص',
675
+    'statut_admin_restreint' => 'ادمين محدود',
676
+    'statut_webmestre' => 'وب مستر ',
677 677
 
678
-	// T
679
-	'tache_cron_asap' => 'وظيفه‌ي CRON @function@ (ASAP)', # MODIF
680
-	'tache_cron_secondes' => 'وظيفه‌ي CRON @function@ (تمام @nb@)', # MODIF
681
-	'taille_cache_image' => 'اندازه ى تصاوير, كه توسط اسپيپ حساب شده ( تصاوير كوچك اسناد, عناوين گرافيكى عرضه شده, كاربردهاى رياضى با فرمهاى TeX...) در رپرتوار @dir@جمعا @taille@ را اشغال ميكنند.',
682
-	'taille_cache_moins_de' => 'اندازه‌ي حافظه‌ي پنهان كمتر از@octets@ است.',
683
-	'taille_cache_octets' => ' اندازه ى فايل پنهان در حال حاضر تقريبا @octets@ است.  ',
684
-	'taille_cache_vide' => 'فايل پنهان خالى است.',
685
-	'taille_repertoire_cache' => 'اندازه ى فايل پنهان',
686
-	'text_article_propose_publication' => ' مقاله‌ى پيشنهادى براى انتشار.',
687
-	'texte_acces_ldap_anonyme_1' => 'تعدادى از سرورهاى ال دى اپى ورود بدون نام را نميپذيرند. در اينصورت شما بايد يك نام شناسايى را مشخص كنيد تا بتوانيد به اطلاعات راهنما دسترسى داشته باشيد. در بيشتر موارد ميادين بعدى را ميتوان خالى گذاشت.',
688
-	'texte_admin_effacer_01' => 'اين فرمان محتوى داده پى ها، همچنين دسترسى نويسندگان و گردانندگان به سايت را كاملأ پاك خواهد كرد، در صورت اجراى آن شما بايد اسپيپ را دوباره نصب كنيد تا بتوانيد پايگاه جديدى همراه با حق استفاده براى گردانندگان را داشته باشيد.',
689
-	'texte_adresse_annuaire_1' => 'اگر راهنماتان در همان رايانه اى نصب شده كه سايت تارنما، احتمالا مربوط است به :«localhost» ',
690
-	'texte_ajout_auteur' => 'نام نويسنده بعدى به مقاله اضافه شد :',
691
-	'texte_annuaire_ldap_1' => 'اگر شما به راهنماى ال دى ا پى دسترسى داريد، ميتوانيد بطور خودكار كاربران را به اسپيپ اضافه كنيد',
692
-	'texte_article_statut' => 'اين مقاله :',
693
-	'texte_article_virtuel' => 'مقاله مجازى',
694
-	'texte_article_virtuel_reference' => ' <b>مقاله مجازى :</b> مقاله پيوندى شما در سايت اسپيپ است، اما شما ميتوانيد آنرا به آدرس ديگرى هدايت كنيد.براى اينكار بايد آدرس زيرى را حذف كنيد (URL)',
695
-	'texte_aucun_resultat_auteur' => 'جستجوى بى نتيجه براى"@cherche_auteur@"',
696
-	'texte_auteur_messagerie' => ' اين سايت ميتواند ليست نويسندگان متصل به سايت را بطور دائم نشان دهد اين بشما امكان رد و بدل كردن پيام را بطور مستقيم ميدهد. شما همچنين ميتوانيد گزينش «نامرئي» را انتخاب كنيد',
697
-	'texte_auteurs' => 'نويسندگان',
698
-	'texte_choix_base_1' => 'پايگاه تان را انتخاب كنيد :',
699
-	'texte_choix_base_2' => 'سرور اس كيوال حاوى چند داده پى است.',
700
-	'texte_choix_base_3' => 'پايگاهى را كه توسط ميزبانتان بشما داده شده <b>انتخاب كنيد</b>:',
701
-	'texte_choix_table_prefix' => 'پیشوند جدولها:',
702
-	'texte_compte_element' => 'عنصر @count@ ',
703
-	'texte_compte_elements' => ' @count@ عنصر',
704
-	'texte_conflit_edition_correction' => 'لطفاً تفاوت‌هاي دو متن زير را چك كنيد؛ نيز مي‌توانيد اصلاحات خود را روبرداري كرده و سپس از نو شروع كنيد.',
705
-	'texte_connexion_mysql' => 'اطلاعات داده شده توسط ميزبانتان را بخوانيد: اين اطلاعات بايد كدهاي ارتباطي با سرور ماي‌اسكيو‌ال شما را داشته باشد.',
706
-	'texte_contenu_article' => '(محتوى مقاله در چند كلمه)',
707
-	'texte_contenu_articles' => 'بنابر ماكت مورد استفاده سايتتان، شما ميتوانيد تصميم به استفاده تنها تعدادى از اجزاى مقالات را بگيريد. از ليست زير براى انتخاب اجزاى مورد نيازتان استفاده كنيد.',
708
-	'texte_crash_base' => 'اگر داده پى هايتان از بين رفتند، ميتوانيد گزينش ترميم خودكار را آزمايش كنيد',
709
-	'texte_creer_rubrique' => 'پيش از نوشتن مقاله، شما بايد يك بخش بسازيد',
710
-	'texte_date_creation_article' => ' تاريخ نوشتن مقاله',
711
-	'texte_date_creation_objet' => 'تاريخ ايجاد', # on ajoute le &quot;:&quot;
712
-	'texte_date_publication_anterieure' => 'تاريخ نگارش قبلى:',
713
-	'texte_date_publication_anterieure_nonaffichee' => 'تاريخ نگارش قبلى را اعلان نكنيد.',
714
-	'texte_date_publication_article' => 'تاريخ انتشار بروى تارنما:',
715
-	'texte_date_publication_objet' => 'تاريخ نشر وصل‌خط:',
716
-	'texte_descriptif_rapide' => 'توصيف سريع',
717
-	'texte_effacer_base' => 'داده پى هاى اسپيپ را پاك كنيد',
718
-	'texte_effacer_statistiques' => 'حذف آمارها',
719
-	'texte_en_cours_validation' => 'مطالب زير در انتظار تأييد هستند. ',
720
-	'texte_enrichir_mise_a_jour' => 'شما ميتوانيد صفحه بندى متن تان را با بعضى از علائم آراسته كنيد (مانند كروشه، آكولاد،...)',
721
-	'texte_fichier_authent' => '<b>آيا سپيپ بايد فايل‌هاى <tt>.htpasswd</tt>
678
+    // T
679
+    'tache_cron_asap' => 'وظيفه‌ي CRON @function@ (ASAP)', # MODIF
680
+    'tache_cron_secondes' => 'وظيفه‌ي CRON @function@ (تمام @nb@)', # MODIF
681
+    'taille_cache_image' => 'اندازه ى تصاوير, كه توسط اسپيپ حساب شده ( تصاوير كوچك اسناد, عناوين گرافيكى عرضه شده, كاربردهاى رياضى با فرمهاى TeX...) در رپرتوار @dir@جمعا @taille@ را اشغال ميكنند.',
682
+    'taille_cache_moins_de' => 'اندازه‌ي حافظه‌ي پنهان كمتر از@octets@ است.',
683
+    'taille_cache_octets' => ' اندازه ى فايل پنهان در حال حاضر تقريبا @octets@ است.  ',
684
+    'taille_cache_vide' => 'فايل پنهان خالى است.',
685
+    'taille_repertoire_cache' => 'اندازه ى فايل پنهان',
686
+    'text_article_propose_publication' => ' مقاله‌ى پيشنهادى براى انتشار.',
687
+    'texte_acces_ldap_anonyme_1' => 'تعدادى از سرورهاى ال دى اپى ورود بدون نام را نميپذيرند. در اينصورت شما بايد يك نام شناسايى را مشخص كنيد تا بتوانيد به اطلاعات راهنما دسترسى داشته باشيد. در بيشتر موارد ميادين بعدى را ميتوان خالى گذاشت.',
688
+    'texte_admin_effacer_01' => 'اين فرمان محتوى داده پى ها، همچنين دسترسى نويسندگان و گردانندگان به سايت را كاملأ پاك خواهد كرد، در صورت اجراى آن شما بايد اسپيپ را دوباره نصب كنيد تا بتوانيد پايگاه جديدى همراه با حق استفاده براى گردانندگان را داشته باشيد.',
689
+    'texte_adresse_annuaire_1' => 'اگر راهنماتان در همان رايانه اى نصب شده كه سايت تارنما، احتمالا مربوط است به :«localhost» ',
690
+    'texte_ajout_auteur' => 'نام نويسنده بعدى به مقاله اضافه شد :',
691
+    'texte_annuaire_ldap_1' => 'اگر شما به راهنماى ال دى ا پى دسترسى داريد، ميتوانيد بطور خودكار كاربران را به اسپيپ اضافه كنيد',
692
+    'texte_article_statut' => 'اين مقاله :',
693
+    'texte_article_virtuel' => 'مقاله مجازى',
694
+    'texte_article_virtuel_reference' => ' <b>مقاله مجازى :</b> مقاله پيوندى شما در سايت اسپيپ است، اما شما ميتوانيد آنرا به آدرس ديگرى هدايت كنيد.براى اينكار بايد آدرس زيرى را حذف كنيد (URL)',
695
+    'texte_aucun_resultat_auteur' => 'جستجوى بى نتيجه براى"@cherche_auteur@"',
696
+    'texte_auteur_messagerie' => ' اين سايت ميتواند ليست نويسندگان متصل به سايت را بطور دائم نشان دهد اين بشما امكان رد و بدل كردن پيام را بطور مستقيم ميدهد. شما همچنين ميتوانيد گزينش «نامرئي» را انتخاب كنيد',
697
+    'texte_auteurs' => 'نويسندگان',
698
+    'texte_choix_base_1' => 'پايگاه تان را انتخاب كنيد :',
699
+    'texte_choix_base_2' => 'سرور اس كيوال حاوى چند داده پى است.',
700
+    'texte_choix_base_3' => 'پايگاهى را كه توسط ميزبانتان بشما داده شده <b>انتخاب كنيد</b>:',
701
+    'texte_choix_table_prefix' => 'پیشوند جدولها:',
702
+    'texte_compte_element' => 'عنصر @count@ ',
703
+    'texte_compte_elements' => ' @count@ عنصر',
704
+    'texte_conflit_edition_correction' => 'لطفاً تفاوت‌هاي دو متن زير را چك كنيد؛ نيز مي‌توانيد اصلاحات خود را روبرداري كرده و سپس از نو شروع كنيد.',
705
+    'texte_connexion_mysql' => 'اطلاعات داده شده توسط ميزبانتان را بخوانيد: اين اطلاعات بايد كدهاي ارتباطي با سرور ماي‌اسكيو‌ال شما را داشته باشد.',
706
+    'texte_contenu_article' => '(محتوى مقاله در چند كلمه)',
707
+    'texte_contenu_articles' => 'بنابر ماكت مورد استفاده سايتتان، شما ميتوانيد تصميم به استفاده تنها تعدادى از اجزاى مقالات را بگيريد. از ليست زير براى انتخاب اجزاى مورد نيازتان استفاده كنيد.',
708
+    'texte_crash_base' => 'اگر داده پى هايتان از بين رفتند، ميتوانيد گزينش ترميم خودكار را آزمايش كنيد',
709
+    'texte_creer_rubrique' => 'پيش از نوشتن مقاله، شما بايد يك بخش بسازيد',
710
+    'texte_date_creation_article' => ' تاريخ نوشتن مقاله',
711
+    'texte_date_creation_objet' => 'تاريخ ايجاد', # on ajoute le &quot;:&quot;
712
+    'texte_date_publication_anterieure' => 'تاريخ نگارش قبلى:',
713
+    'texte_date_publication_anterieure_nonaffichee' => 'تاريخ نگارش قبلى را اعلان نكنيد.',
714
+    'texte_date_publication_article' => 'تاريخ انتشار بروى تارنما:',
715
+    'texte_date_publication_objet' => 'تاريخ نشر وصل‌خط:',
716
+    'texte_descriptif_rapide' => 'توصيف سريع',
717
+    'texte_effacer_base' => 'داده پى هاى اسپيپ را پاك كنيد',
718
+    'texte_effacer_statistiques' => 'حذف آمارها',
719
+    'texte_en_cours_validation' => 'مطالب زير در انتظار تأييد هستند. ',
720
+    'texte_enrichir_mise_a_jour' => 'شما ميتوانيد صفحه بندى متن تان را با بعضى از علائم آراسته كنيد (مانند كروشه، آكولاد،...)',
721
+    'texte_fichier_authent' => '<b>آيا سپيپ بايد فايل‌هاى <tt>.htpasswd</tt>
722 722
 و <tt>.htpasswd-admin</tt> را در دايركتوري @dossier@ بسازد؟</b><p>
723 723
 اين فايل‌ها مي‌توانند بشما در محدود كردن دسترسى نويسندگان وگردانندگان سايت در جاهاى ديگر( براى مثال برنامه خارجى آمار) كمك كنند).</p><p>
724 724
 اگر به اين گزينه نياز نيست، اسپيپ خودبخود آنرا اداره ميكند (بدون  ساخت فايل‌ها)</p>.', # MODIF
725
-	'texte_informations_personnelles_1' => 'اكنون سيستم براى شما دسترسى انحصارى به سايت را درست ميكند.',
726
-	'texte_informations_personnelles_2' => 'تذكر : اگر  نصب دوباره است، اگر دسترسى شما به سايت برقرار است، مي‌توانيد',
727
-	'texte_introductif_article' => '(متن مقدمه اى مقاله.)',
728
-	'texte_jeu_caractere' => 'بشما توصیه میشود برای سایتتان از الفبای جهانی (<tt>utf-8</tt> استفاده کنید زیرا امکان خواندن متنها در تمامی زبانها را میدهد و مشکلی هم برای مرورگرهای جدید پدید نمیآورد. ',
729
-	'texte_jeu_caractere_3' => 'سایت شما اکنون نویسه ها را مستقر کرد.',
730
-	'texte_jeu_caractere_4' => 'اگر این نویسه ها با سایت شما مطابق نیست (برای مثال پس از بازسازی داده پی ها) یا اینکه شما مایل به بکارگیری نویسه های دیگری هستید آنرا در اینجا مشخص کنید:',
731
-	'texte_login_ldap_1' => '(براى ورود بى نام، خالى بگذاريد، يا تمام مسير را درج كنيد، براى مثال« <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)',
732
-	'texte_login_precaution' => 'توجه ! شما با اين كد متصل شديد. از اين پرسشنامه با احتياط استفاده كنيد.',
733
-	'texte_messagerie_agenda' => 'يك سامانه‌ي پيام‌دهي به نويسندگان سايت امكان مي‌دهد تا در قسمت شخصي به صورت مستقيم با يكديگر ارتباط برقرار كنند. اين سامانه به تقويم نيز لينك مي‌شود. ',
734
-	'texte_mise_a_niveau_base_1' => 'شما فايلهاى اسپيپ را نو كرديد.
725
+    'texte_informations_personnelles_1' => 'اكنون سيستم براى شما دسترسى انحصارى به سايت را درست ميكند.',
726
+    'texte_informations_personnelles_2' => 'تذكر : اگر  نصب دوباره است، اگر دسترسى شما به سايت برقرار است، مي‌توانيد',
727
+    'texte_introductif_article' => '(متن مقدمه اى مقاله.)',
728
+    'texte_jeu_caractere' => 'بشما توصیه میشود برای سایتتان از الفبای جهانی (<tt>utf-8</tt> استفاده کنید زیرا امکان خواندن متنها در تمامی زبانها را میدهد و مشکلی هم برای مرورگرهای جدید پدید نمیآورد. ',
729
+    'texte_jeu_caractere_3' => 'سایت شما اکنون نویسه ها را مستقر کرد.',
730
+    'texte_jeu_caractere_4' => 'اگر این نویسه ها با سایت شما مطابق نیست (برای مثال پس از بازسازی داده پی ها) یا اینکه شما مایل به بکارگیری نویسه های دیگری هستید آنرا در اینجا مشخص کنید:',
731
+    'texte_login_ldap_1' => '(براى ورود بى نام، خالى بگذاريد، يا تمام مسير را درج كنيد، براى مثال« <tt>uid=dupont, ou=users, dc=mon-domaine, dc=com</tt> ».)',
732
+    'texte_login_precaution' => 'توجه ! شما با اين كد متصل شديد. از اين پرسشنامه با احتياط استفاده كنيد.',
733
+    'texte_messagerie_agenda' => 'يك سامانه‌ي پيام‌دهي به نويسندگان سايت امكان مي‌دهد تا در قسمت شخصي به صورت مستقيم با يكديگر ارتباط برقرار كنند. اين سامانه به تقويم نيز لينك مي‌شود. ',
734
+    'texte_mise_a_niveau_base_1' => 'شما فايلهاى اسپيپ را نو كرديد.
735 735
 اكنون بايد داده پى هاى سايت را ميزان كنيد.
736 736
  ',
737
-	'texte_modifier_article' => 'مقاله را اصلاح كنيد :',
738
-	'texte_multilinguisme' => 'اگر مايل به اداره موضوع‌ها به چند زبان هستيد، با ناوبري پيچيده، ميتوانيد، بر اساس سازماندهي سايت خود، يك منوي بخش زبان براي اين موضوع‌ها اضافه كنيد.',
739
-	'texte_multilinguisme_trad' => 'شما همچنين ميتوانيد يك سيستم اداره پيوندهاى بين ترجمه‌هاي  گوناگون اين موضوع‌ها را فعال كنيد.',
740
-	'texte_non_compresse' => '<i>فشرده نشده</i> (سرور شما اين عملكرد را قبول نميكند)',
741
-	'texte_nouvelle_version_spip_1' => 'شما نسخه جديد اسپيپ را نصب كرده ايد.',
742
-	'texte_nouvelle_version_spip_2' => 'اين نسخه جديد نياز به روزآمدسازي كامل تر دارد. اگر شما وب مستر سايت هستيد لطفا فايل @connect@ را پاك كنيد و دوباره نصب اسپيپ را از سر بگيريد تا پارامترهاى اتصال داده پى ها نو شوند.<p>(اگر شما پارامترهاى اتصال را فراموش كرده‌ايد، ميتوانيد به فايل زير مراجعه كنيد @connect@ (پيش از اينكه آنرا حذف كنيد...)</p>',
743
-	'texte_operation_echec' => 'به صفحه پيشين برگرديد، يك پايگاه انتخاب كنيد يا اينكه جديدش را بسازيد.اطلاعات داده شده توسط ميزبانتان را در مدنظر داشته باشيد.',
744
-	'texte_plus_trois_car' => 'بيش از سه حرف',
745
-	'texte_plusieurs_articles' => 'براى اين جستجو چندين نويسنده پيدا شده: "@cherche_auteur@"',
746
-	'texte_port_annuaire' => '(ارزش مشخص شده عموما مناسب است)',
747
-	'texte_presente_plugin' => 'این صفحه فهرست plugins موجود را نشان میدهد. برای فعال کردن آنها مربع مربوطه را علامت بزنید.',
748
-	'texte_proposer_publication' => 'هنگاميكه مقاله تان تمام شد ميتوانيد پيشنهاد انتشارش را بكنيد.',
749
-	'texte_proxy' => 'در بعضى موارد (اينترانت، شبكه هاى محافظت شده،...) براى دسترسى به سايتهاى پيوندى نياز به پروكسى داريد. <i>proxy HTTP</i> در اينصورت آدرسها را در زير به اين شكل مشخص كنيد
737
+    'texte_modifier_article' => 'مقاله را اصلاح كنيد :',
738
+    'texte_multilinguisme' => 'اگر مايل به اداره موضوع‌ها به چند زبان هستيد، با ناوبري پيچيده، ميتوانيد، بر اساس سازماندهي سايت خود، يك منوي بخش زبان براي اين موضوع‌ها اضافه كنيد.',
739
+    'texte_multilinguisme_trad' => 'شما همچنين ميتوانيد يك سيستم اداره پيوندهاى بين ترجمه‌هاي  گوناگون اين موضوع‌ها را فعال كنيد.',
740
+    'texte_non_compresse' => '<i>فشرده نشده</i> (سرور شما اين عملكرد را قبول نميكند)',
741
+    'texte_nouvelle_version_spip_1' => 'شما نسخه جديد اسپيپ را نصب كرده ايد.',
742
+    'texte_nouvelle_version_spip_2' => 'اين نسخه جديد نياز به روزآمدسازي كامل تر دارد. اگر شما وب مستر سايت هستيد لطفا فايل @connect@ را پاك كنيد و دوباره نصب اسپيپ را از سر بگيريد تا پارامترهاى اتصال داده پى ها نو شوند.<p>(اگر شما پارامترهاى اتصال را فراموش كرده‌ايد، ميتوانيد به فايل زير مراجعه كنيد @connect@ (پيش از اينكه آنرا حذف كنيد...)</p>',
743
+    'texte_operation_echec' => 'به صفحه پيشين برگرديد، يك پايگاه انتخاب كنيد يا اينكه جديدش را بسازيد.اطلاعات داده شده توسط ميزبانتان را در مدنظر داشته باشيد.',
744
+    'texte_plus_trois_car' => 'بيش از سه حرف',
745
+    'texte_plusieurs_articles' => 'براى اين جستجو چندين نويسنده پيدا شده: "@cherche_auteur@"',
746
+    'texte_port_annuaire' => '(ارزش مشخص شده عموما مناسب است)',
747
+    'texte_presente_plugin' => 'این صفحه فهرست plugins موجود را نشان میدهد. برای فعال کردن آنها مربع مربوطه را علامت بزنید.',
748
+    'texte_proposer_publication' => 'هنگاميكه مقاله تان تمام شد ميتوانيد پيشنهاد انتشارش را بكنيد.',
749
+    'texte_proxy' => 'در بعضى موارد (اينترانت، شبكه هاى محافظت شده،...) براى دسترسى به سايتهاى پيوندى نياز به پروكسى داريد. <i>proxy HTTP</i> در اينصورت آدرسها را در زير به اين شكل مشخص كنيد
750 750
   <tt><html>http://proxy:8080</html></tt>معمولا بهتر است اين مربع را خالى بگذاريد ',
751
-	'texte_publication_articles_post_dates' => 'اسپيپ بايد چه واكنشى را در مورد مقالاتى كه موعد تاريخ انتشارشان در آينده منقضى ميشود بپذيرد؟',
752
-	'texte_rappel_selection_champs' => '[اين موارد را درست انتخاب كنيد.]',
753
-	'texte_recalcul_page' => 'اگر ميخواهيد تنها يك صفحه را نو كنيد، بهتر است كه به قسمت همگانى رويد و بروى دكمه «تازه كنيد» كليك كنيد.',
754
-	'texte_recuperer_base' => 'داده پى ها را ترميم كنيد',
755
-	'texte_reference_mais_redirige' => 'مقاله پيوندى در سايت اسپيپ، كه به آدرس ديگرى هدايت شده.',
756
-	'texte_requetes_echouent' => '<b>هنگاميكه بعضى از جويش‌هاي اس كيو ال بدون هيچ دليلى به صورت سيستماتيك پذيرفته نميشوند، اين احتمال وجود دارد كه از پايگاه داده‌‌ها باشد.</b><p>
751
+    'texte_publication_articles_post_dates' => 'اسپيپ بايد چه واكنشى را در مورد مقالاتى كه موعد تاريخ انتشارشان در آينده منقضى ميشود بپذيرد؟',
752
+    'texte_rappel_selection_champs' => '[اين موارد را درست انتخاب كنيد.]',
753
+    'texte_recalcul_page' => 'اگر ميخواهيد تنها يك صفحه را نو كنيد، بهتر است كه به قسمت همگانى رويد و بروى دكمه «تازه كنيد» كليك كنيد.',
754
+    'texte_recuperer_base' => 'داده پى ها را ترميم كنيد',
755
+    'texte_reference_mais_redirige' => 'مقاله پيوندى در سايت اسپيپ، كه به آدرس ديگرى هدايت شده.',
756
+    'texte_requetes_echouent' => '<b>هنگاميكه بعضى از جويش‌هاي اس كيو ال بدون هيچ دليلى به صورت سيستماتيك پذيرفته نميشوند، اين احتمال وجود دارد كه از پايگاه داده‌‌ها باشد.</b><p>
757 757
 سرور اس كيوال توانائى ترميم جداولش را هنگاميكه براثر حادثه خراب شده باشند دارد.شما ميتوانيد اقدام به ترميم آنها كنيد، در صورت شكست، يك كپى از فهرست اشكالات را نگه داريد ...</p><p>
758 758
 اگر مشكل حل نشد، با ميزبانتان تماس بگيريد.</p>',
759
-	'texte_selection_langue_principale' => 'شما ميتوانيد در زير زبان اصلى سايت را انتخاب كنيد.اين گزينش شما را مجبور به نوشتن در زبان انتخابى نميكند،<ul><li> ولى امكان تعيين تاريخ، نوع موتورى كه اسپيپ بايد استفاده كند تا متون قابل رويت باشند، زبان پرسشنامه ها در قسمت همگانى سايت و همچنين زبان قسمت خصوصى را ميدهد.<ul><li>',
760
-	'texte_sous_titre' => 'عنوان فرعى',
761
-	'texte_statistiques_visites' => 'خطوط پررنگ : يكشنبه /    منحنى پررنگ : ميانگين تحولات  ',
762
-	'texte_statut_attente_validation' => 'در انتظار تائيد',
763
-	'texte_statut_publies' => 'برروى تارنما منتشر شود',
764
-	'texte_statut_refuses' => 'پذيرفته نشده',
765
-	'texte_suppression_fichiers' => 'از اين فرمان براى حذف تمام فايلها موجود در فايلهاى موقت اسپيپ استفاده كنيد.
759
+    'texte_selection_langue_principale' => 'شما ميتوانيد در زير زبان اصلى سايت را انتخاب كنيد.اين گزينش شما را مجبور به نوشتن در زبان انتخابى نميكند،<ul><li> ولى امكان تعيين تاريخ، نوع موتورى كه اسپيپ بايد استفاده كند تا متون قابل رويت باشند، زبان پرسشنامه ها در قسمت همگانى سايت و همچنين زبان قسمت خصوصى را ميدهد.<ul><li>',
760
+    'texte_sous_titre' => 'عنوان فرعى',
761
+    'texte_statistiques_visites' => 'خطوط پررنگ : يكشنبه /    منحنى پررنگ : ميانگين تحولات  ',
762
+    'texte_statut_attente_validation' => 'در انتظار تائيد',
763
+    'texte_statut_publies' => 'برروى تارنما منتشر شود',
764
+    'texte_statut_refuses' => 'پذيرفته نشده',
765
+    'texte_suppression_fichiers' => 'از اين فرمان براى حذف تمام فايلها موجود در فايلهاى موقت اسپيپ استفاده كنيد.
766 766
 اين بشما امكان نو كردن تمام صفحات را ميدهد بويژه اگر شما تغييرات مهمى در نما يا در ساختار سايت داده باشيد.',
767
-	'texte_sur_titre' => 'سر عنوان',
768
-	'texte_table_ok' => 'اين جدول درست است :',
769
-	'texte_tentative_recuperation' => 'كوشش براى تعمير',
770
-	'texte_tenter_reparation' => 'اقدام به ترميم داده پى ها كنيد',
771
-	'texte_test_proxy' => 'براى امتحان اين پروكسى، آدرس سايت تارنماى مورد دلخواهتان را در اينجا درج كنيد.',
772
-	'texte_titre_02' => 'عنوان :',
773
-	'texte_titre_obligatoire' => '<b>عنوان</b> [اجبارى]',
774
-	'texte_travail_article' => '@nom_auteur_modif@ بروى اين مقاله @date_diff@ پيش كار كرده است.',
775
-	'texte_travail_collaboratif' => 'اين امكان وجود دارد كه يك مقاله توسط چند نويسنده نوشته شده باشد. اسپيپ ميتواند مقالات تازه وارد شده را نشان دهد تا از تغييرات همزمان جلوگيرى كند.
767
+    'texte_sur_titre' => 'سر عنوان',
768
+    'texte_table_ok' => 'اين جدول درست است :',
769
+    'texte_tentative_recuperation' => 'كوشش براى تعمير',
770
+    'texte_tenter_reparation' => 'اقدام به ترميم داده پى ها كنيد',
771
+    'texte_test_proxy' => 'براى امتحان اين پروكسى، آدرس سايت تارنماى مورد دلخواهتان را در اينجا درج كنيد.',
772
+    'texte_titre_02' => 'عنوان :',
773
+    'texte_titre_obligatoire' => '<b>عنوان</b> [اجبارى]',
774
+    'texte_travail_article' => '@nom_auteur_modif@ بروى اين مقاله @date_diff@ پيش كار كرده است.',
775
+    'texte_travail_collaboratif' => 'اين امكان وجود دارد كه يك مقاله توسط چند نويسنده نوشته شده باشد. اسپيپ ميتواند مقالات تازه وارد شده را نشان دهد تا از تغييرات همزمان جلوگيرى كند.
776 776
 اين گزينش معمولا غير فعال ميباشد تا از اعلان خبرهاى بيموقع جلوگيرى كند.
777 777
 ',
778
-	'texte_vide' => 'خالى',
779
-	'texte_vider_cache' => 'فايل هاى موقت را خالى كنيد',
780
-	'titre_admin_tech' => 'نگهدارى و تعميرات فنى',
781
-	'titre_admin_vider' => 'نگهدارى و تعميرات فنى',
782
-	'titre_ajouter_un_auteur' => 'افزودن يك مؤلف',
783
-	'titre_ajouter_un_mot' => 'افزودن يك كليد-واژه',
784
-	'titre_cadre_afficher_article' => 'مقالات را نمايش دهيد',
785
-	'titre_cadre_afficher_traductions' => ' وضعيت برگردانها را براى زبانهاي زير نشان دهيد :',
786
-	'titre_cadre_ajouter_auteur' => 'يك نويسنده اضافه كنيد :',
787
-	'titre_cadre_interieur_rubrique' => 'در داخل بخش',
788
-	'titre_cadre_numero_auteur' => 'نويسنده شماره',
789
-	'titre_cadre_numero_objet' => '@objet@ شماره‌ي: ',
790
-	'titre_cadre_signature_obligatoire' => '<b>امضا</b> [اجبارى]<br />',
791
-	'titre_config_contenu_notifications' => 'اخطاريه‌ها',
792
-	'titre_config_contenu_prive' => 'در قسمت شخصي',
793
-	'titre_config_contenu_public' => 'در سايت همگاني',
794
-	'titre_config_fonctions' => 'پيكربندى سايت',
795
-	'titre_config_langage' => 'پيكربندي زبان',
796
-	'titre_configuration' => 'پيكربندى سايت',
797
-	'titre_configurer_preferences' => 'پيكربندي ترجيح‌هاي شما',
798
-	'titre_conflit_edition' => 'ناسازگاري هنگام ويرايش ',
799
-	'titre_connexion_ldap' => 'گزينش : <b>اتصال LDAP</b>',
800
-	'titre_groupe_mots' => 'گروه واژه ها :',
801
-	'titre_identite_site' => 'هويت سايت',
802
-	'titre_langue_article' => 'زبان مقاله',
803
-	'titre_langue_rubrique' => 'زبان بخش',
804
-	'titre_langue_trad_article' => 'زبان و ترجمه هاى مقاله ',
805
-	'titre_les_articles' => 'مقالات',
806
-	'titre_messagerie_agenda' => 'سامانه پيام‌دهي و روزنويسي ',
807
-	'titre_naviguer_dans_le_site' => 'در سايت گردش كنيد',
808
-	'titre_nouvelle_rubrique' => 'بخش جديد',
809
-	'titre_numero_rubrique' => 'بخش شماره :',
810
-	'titre_page_articles_edit' => 'اصلاح كنيد :@titre@',
811
-	'titre_page_articles_page' => 'مقالات',
812
-	'titre_page_articles_tous' => 'تمام سايت',
813
-	'titre_page_calendrier' => 'سالنما @nom_mois@ @annee@',
814
-	'titre_page_config_contenu' => 'پيكربندى سايت',
815
-	'titre_page_delete_all' => 'حذف كامل و غير قابل برگشت',
816
-	'titre_page_recherche' => 'نتايج جستجوى@recherche@',
817
-	'titre_page_statistiques_referers' => 'آمار (پيوندهاى وارد شده)',
818
-	'titre_page_upgrade' => 'همسان كردن اسپيپ',
819
-	'titre_publication_articles_post_dates' => 'انتشار مقالات با تاريخ آينده',
820
-	'titre_reparation' => 'تعمير',
821
-	'titre_suivi_petition' => 'دنباله درخواستها',
822
-	'tls_ldap' => 'Transport Layer Security :',
823
-	'trad_article_traduction' => 'تمام ترجمه هاى اين مقاله :',
824
-	'trad_delier' => 'پيوند به اين ترجمه‌هاي متوقف شود',
825
-	'trad_lier' => 'اين مقاله برگردان مقاله شماره زير ميباشد :',
826
-	'trad_new' => 'ترجمه‌ي جديد',
778
+    'texte_vide' => 'خالى',
779
+    'texte_vider_cache' => 'فايل هاى موقت را خالى كنيد',
780
+    'titre_admin_tech' => 'نگهدارى و تعميرات فنى',
781
+    'titre_admin_vider' => 'نگهدارى و تعميرات فنى',
782
+    'titre_ajouter_un_auteur' => 'افزودن يك مؤلف',
783
+    'titre_ajouter_un_mot' => 'افزودن يك كليد-واژه',
784
+    'titre_cadre_afficher_article' => 'مقالات را نمايش دهيد',
785
+    'titre_cadre_afficher_traductions' => ' وضعيت برگردانها را براى زبانهاي زير نشان دهيد :',
786
+    'titre_cadre_ajouter_auteur' => 'يك نويسنده اضافه كنيد :',
787
+    'titre_cadre_interieur_rubrique' => 'در داخل بخش',
788
+    'titre_cadre_numero_auteur' => 'نويسنده شماره',
789
+    'titre_cadre_numero_objet' => '@objet@ شماره‌ي: ',
790
+    'titre_cadre_signature_obligatoire' => '<b>امضا</b> [اجبارى]<br />',
791
+    'titre_config_contenu_notifications' => 'اخطاريه‌ها',
792
+    'titre_config_contenu_prive' => 'در قسمت شخصي',
793
+    'titre_config_contenu_public' => 'در سايت همگاني',
794
+    'titre_config_fonctions' => 'پيكربندى سايت',
795
+    'titre_config_langage' => 'پيكربندي زبان',
796
+    'titre_configuration' => 'پيكربندى سايت',
797
+    'titre_configurer_preferences' => 'پيكربندي ترجيح‌هاي شما',
798
+    'titre_conflit_edition' => 'ناسازگاري هنگام ويرايش ',
799
+    'titre_connexion_ldap' => 'گزينش : <b>اتصال LDAP</b>',
800
+    'titre_groupe_mots' => 'گروه واژه ها :',
801
+    'titre_identite_site' => 'هويت سايت',
802
+    'titre_langue_article' => 'زبان مقاله',
803
+    'titre_langue_rubrique' => 'زبان بخش',
804
+    'titre_langue_trad_article' => 'زبان و ترجمه هاى مقاله ',
805
+    'titre_les_articles' => 'مقالات',
806
+    'titre_messagerie_agenda' => 'سامانه پيام‌دهي و روزنويسي ',
807
+    'titre_naviguer_dans_le_site' => 'در سايت گردش كنيد',
808
+    'titre_nouvelle_rubrique' => 'بخش جديد',
809
+    'titre_numero_rubrique' => 'بخش شماره :',
810
+    'titre_page_articles_edit' => 'اصلاح كنيد :@titre@',
811
+    'titre_page_articles_page' => 'مقالات',
812
+    'titre_page_articles_tous' => 'تمام سايت',
813
+    'titre_page_calendrier' => 'سالنما @nom_mois@ @annee@',
814
+    'titre_page_config_contenu' => 'پيكربندى سايت',
815
+    'titre_page_delete_all' => 'حذف كامل و غير قابل برگشت',
816
+    'titre_page_recherche' => 'نتايج جستجوى@recherche@',
817
+    'titre_page_statistiques_referers' => 'آمار (پيوندهاى وارد شده)',
818
+    'titre_page_upgrade' => 'همسان كردن اسپيپ',
819
+    'titre_publication_articles_post_dates' => 'انتشار مقالات با تاريخ آينده',
820
+    'titre_reparation' => 'تعمير',
821
+    'titre_suivi_petition' => 'دنباله درخواستها',
822
+    'tls_ldap' => 'Transport Layer Security :',
823
+    'trad_article_traduction' => 'تمام ترجمه هاى اين مقاله :',
824
+    'trad_delier' => 'پيوند به اين ترجمه‌هاي متوقف شود',
825
+    'trad_lier' => 'اين مقاله برگردان مقاله شماره زير ميباشد :',
826
+    'trad_new' => 'ترجمه‌ي جديد',
827 827
 
828
-	// U
829
-	'utf8_convert_erreur_orig' => 'اشتباه: نویسه های @charset@ پذیرفته نمیشود.',
828
+    // U
829
+    'utf8_convert_erreur_orig' => 'اشتباه: نویسه های @charset@ پذیرفته نمیشود.',
830 830
 
831
-	// V
832
-	'version' => 'نسخه:',
831
+    // V
832
+    'version' => 'نسخه:',
833 833
 ];
Please login to merge, or discard this patch.
ecrire/lang/spip_pt.php 1 patch
Indentation   +643 added lines, -643 removed lines patch added patch discarded remove patch
@@ -5,566 +5,566 @@  discard block
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'access_interface_graphique' => 'Voltar à interface gráfica completa',
10
-	'access_mode_texte' => 'Exibir a interface textual simplificada',
11
-	'admin_debug' => 'debug',
12
-	'admin_modifier_article' => 'Modificar este artigo',
13
-	'admin_modifier_auteur' => 'Modificar este autor',
14
-	'admin_modifier_breve' => 'Modificar esta notícia',
15
-	'admin_modifier_mot' => 'Modificar esta palavra-chave',
16
-	'admin_modifier_rubrique' => 'Modificar esta rubrica',
17
-	'admin_recalculer' => 'Recompor esta página',
18
-	'afficher_calendrier' => 'Exibir o calendário',
19
-	'afficher_trad' => 'exibir as traduções',
20
-	'alerte_maj_impossible' => '<b>Alerta !</b> A actualização da base de dados SQL para a versão @version@ é impossível, talvez por causa de um problema de permissão de modificação na base de dados. Por favor contacte o seu serviço de hospedagem.',
21
-	'alerte_modif_info_concourante' => 'ATTENÇÃO : Esta informação já foi modificada noutro menu. O valor actual é :',
22
-	'analyse_xml' => 'Análise XML',
23
-	'annuler' => 'Cancelar',
24
-	'antispam_champ_vide' => 'Por favor deixe este campo vazio :',
25
-	'articles_recents' => 'Artigos mais recentes',
26
-	'avis_archive_incorrect' => 'o ficheiro arquivo não é um ficheiro SPIP',
27
-	'avis_archive_invalide' => 'o ficheiro arquivo não é válido ',
28
-	'avis_attention' => ' ATENÇÂO!',
29
-	'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para objecto de tipo @type@',
30
-	'avis_colonne_inexistante' => 'A coluna  @col@ não existe',
31
-	'avis_erreur' => 'Erro: ver mais abaixo',
32
-	'avis_erreur_connexion' => 'Erro de ligação ',
33
-	'avis_erreur_cookie' => 'problema de cookie',
34
-	'avis_erreur_fonction_contexte' => 'Erro de programação. Não se pode chamar esta função neste contexto.',
35
-	'avis_erreur_mysql' => 'Erro SQL',
36
-	'avis_erreur_sauvegarde' => 'Erro na cópia de segurança  (@type@ @id_objet@) !',
37
-	'avis_erreur_visiteur' => 'Problema de acesso à área privada',
8
+    // A
9
+    'access_interface_graphique' => 'Voltar à interface gráfica completa',
10
+    'access_mode_texte' => 'Exibir a interface textual simplificada',
11
+    'admin_debug' => 'debug',
12
+    'admin_modifier_article' => 'Modificar este artigo',
13
+    'admin_modifier_auteur' => 'Modificar este autor',
14
+    'admin_modifier_breve' => 'Modificar esta notícia',
15
+    'admin_modifier_mot' => 'Modificar esta palavra-chave',
16
+    'admin_modifier_rubrique' => 'Modificar esta rubrica',
17
+    'admin_recalculer' => 'Recompor esta página',
18
+    'afficher_calendrier' => 'Exibir o calendário',
19
+    'afficher_trad' => 'exibir as traduções',
20
+    'alerte_maj_impossible' => '<b>Alerta !</b> A actualização da base de dados SQL para a versão @version@ é impossível, talvez por causa de um problema de permissão de modificação na base de dados. Por favor contacte o seu serviço de hospedagem.',
21
+    'alerte_modif_info_concourante' => 'ATTENÇÃO : Esta informação já foi modificada noutro menu. O valor actual é :',
22
+    'analyse_xml' => 'Análise XML',
23
+    'annuler' => 'Cancelar',
24
+    'antispam_champ_vide' => 'Por favor deixe este campo vazio :',
25
+    'articles_recents' => 'Artigos mais recentes',
26
+    'avis_archive_incorrect' => 'o ficheiro arquivo não é um ficheiro SPIP',
27
+    'avis_archive_invalide' => 'o ficheiro arquivo não é válido ',
28
+    'avis_attention' => ' ATENÇÂO!',
29
+    'avis_champ_incorrect_type_objet' => 'Nome de campo incorrecto @name@ para objecto de tipo @type@',
30
+    'avis_colonne_inexistante' => 'A coluna  @col@ não existe',
31
+    'avis_erreur' => 'Erro: ver mais abaixo',
32
+    'avis_erreur_connexion' => 'Erro de ligação ',
33
+    'avis_erreur_cookie' => 'problema de cookie',
34
+    'avis_erreur_fonction_contexte' => 'Erro de programação. Não se pode chamar esta função neste contexto.',
35
+    'avis_erreur_mysql' => 'Erro SQL',
36
+    'avis_erreur_sauvegarde' => 'Erro na cópia de segurança  (@type@ @id_objet@) !',
37
+    'avis_erreur_visiteur' => 'Problema de acesso à área privada',
38 38
 
39
-	// B
40
-	'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
41
-	'barre_aide' => 'Utilize as abreviaturas tipográficas para enriquecer a sua paginação.',
42
-	'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo ',
43
-	'barre_eo' => 'Inserir um E no O',
44
-	'barre_eo_maj' => 'Inserir um E no O maiúsculo',
45
-	'barre_euro' => 'Inserir o símbolo €',
46
-	'barre_gras' => '  Escrever em {{negro}}',
47
-	'barre_guillemets' => 'Colocar entre "aspas" ',
48
-	'barre_guillemets_simples' => 'Colocar entre ’aspas simples’',
49
-	'barre_intertitre' => 'Transfomar em  {{{intertítulo}}} ',
50
-	'barre_italic' => 'Pôr em itálico ',
51
-	'barre_lien' => 'Transformar em [ligação hipertexto->http://...]',
52
-	'barre_lien_input' => 'Por favor indique o endereço da sua ligação (pode indicar um endereço Web sob a forma  http://www.monsite/com ou simplesmente indicar o número de um artigo deste sítio.) ',
53
-	'barre_note' => 'Transformar em  [[Nota de rodapé ]]',
54
-	'barre_paragraphe' => 'Criar um parágrafo',
55
-	'barre_quote' => '<quote>Citar uma  mensagem</quote>',
56
-	'bouton_changer' => 'Modificar',
57
-	'bouton_chercher' => 'Procurar',
58
-	'bouton_choisir' => 'Seleccionar',
59
-	'bouton_deplacer' => 'Mover',
60
-	'bouton_download' => 'Download',
61
-	'bouton_enregistrer' => 'Guardar',
62
-	'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a caixa de correio interno',
63
-	'bouton_radio_envoi_annonces' => 'Enviar os anúncios editoriais',
64
-	'bouton_radio_non_envoi_annonces' => 'Não enviar anúncios',
65
-	'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista das novidades',
66
-	'bouton_recharger_page' => 'recarregar esta página',
67
-	'bouton_telecharger' => 'Carregar',
68
-	'bouton_upload' => 'Carregar',
69
-	'bouton_valider' => 'Submeter',
39
+    // B
40
+    'barre_a_accent_grave' => 'Inserir um A maiúsculo com acento grave',
41
+    'barre_aide' => 'Utilize as abreviaturas tipográficas para enriquecer a sua paginação.',
42
+    'barre_e_accent_aigu' => 'Inserir um E maiúsculo com acento agudo ',
43
+    'barre_eo' => 'Inserir um E no O',
44
+    'barre_eo_maj' => 'Inserir um E no O maiúsculo',
45
+    'barre_euro' => 'Inserir o símbolo €',
46
+    'barre_gras' => '  Escrever em {{negro}}',
47
+    'barre_guillemets' => 'Colocar entre "aspas" ',
48
+    'barre_guillemets_simples' => 'Colocar entre ’aspas simples’',
49
+    'barre_intertitre' => 'Transfomar em  {{{intertítulo}}} ',
50
+    'barre_italic' => 'Pôr em itálico ',
51
+    'barre_lien' => 'Transformar em [ligação hipertexto->http://...]',
52
+    'barre_lien_input' => 'Por favor indique o endereço da sua ligação (pode indicar um endereço Web sob a forma  http://www.monsite/com ou simplesmente indicar o número de um artigo deste sítio.) ',
53
+    'barre_note' => 'Transformar em  [[Nota de rodapé ]]',
54
+    'barre_paragraphe' => 'Criar um parágrafo',
55
+    'barre_quote' => '<quote>Citar uma  mensagem</quote>',
56
+    'bouton_changer' => 'Modificar',
57
+    'bouton_chercher' => 'Procurar',
58
+    'bouton_choisir' => 'Seleccionar',
59
+    'bouton_deplacer' => 'Mover',
60
+    'bouton_download' => 'Download',
61
+    'bouton_enregistrer' => 'Guardar',
62
+    'bouton_radio_desactiver_messagerie_interne' => 'Desactivar a caixa de correio interno',
63
+    'bouton_radio_envoi_annonces' => 'Enviar os anúncios editoriais',
64
+    'bouton_radio_non_envoi_annonces' => 'Não enviar anúncios',
65
+    'bouton_radio_non_envoi_liste_nouveautes' => 'Não enviar a lista das novidades',
66
+    'bouton_recharger_page' => 'recarregar esta página',
67
+    'bouton_telecharger' => 'Carregar',
68
+    'bouton_upload' => 'Carregar',
69
+    'bouton_valider' => 'Submeter',
70 70
 
71
-	// C
72
-	'cal_apresmidi' => 'tarde',
73
-	'cal_jour_entier' => 'dia todo',
74
-	'cal_matin' => 'manhã',
75
-	'cal_par_jour' => 'calendário por dia',
76
-	'cal_par_mois' => 'calendário por mês',
77
-	'cal_par_semaine' => 'calendário por semana',
78
-	'choix_couleur_interface' => 'cor',
79
-	'choix_interface' => 'escolha da interface',
80
-	'colonne' => 'Coluna',
81
-	'confirm_changer_statut' => 'Atenção, solicitou a alteração do estatuto deste elemento. Deseja continuar?',
82
-	'correcte' => 'correcto',
71
+    // C
72
+    'cal_apresmidi' => 'tarde',
73
+    'cal_jour_entier' => 'dia todo',
74
+    'cal_matin' => 'manhã',
75
+    'cal_par_jour' => 'calendário por dia',
76
+    'cal_par_mois' => 'calendário por mês',
77
+    'cal_par_semaine' => 'calendário por semana',
78
+    'choix_couleur_interface' => 'cor',
79
+    'choix_interface' => 'escolha da interface',
80
+    'colonne' => 'Coluna',
81
+    'confirm_changer_statut' => 'Atenção, solicitou a alteração do estatuto deste elemento. Deseja continuar?',
82
+    'correcte' => 'correcto',
83 83
 
84
-	// D
85
-	'date_aujourdhui' => 'hoje',
86
-	'date_avant_jc' => 'a. J.C.',
87
-	'date_dans' => 'entre @delai@',
88
-	'date_de_mois_1' => '@j@ de @nommois@',
89
-	'date_de_mois_10' => '@j@ de @nommois@',
90
-	'date_de_mois_11' => '@j@ de @nommois@',
91
-	'date_de_mois_12' => '@j@ de @nommois@',
92
-	'date_de_mois_2' => '@j@ de @nommois@',
93
-	'date_de_mois_3' => '@j@ de @nommois@',
94
-	'date_de_mois_4' => '@j@ de @nommois@',
95
-	'date_de_mois_5' => '@j@ de @nommois@',
96
-	'date_de_mois_6' => '@j@ de @nommois@',
97
-	'date_de_mois_7' => '@j@ de @nommois@',
98
-	'date_de_mois_8' => '@j@ de @nommois@',
99
-	'date_de_mois_9' => '@j@ de @nommois@',
100
-	'date_demain' => 'amanhã',
101
-	'date_fmt_heures_minutes' => '@h@h@m@min',
102
-	'date_fmt_heures_minutes_court' => '@h@:@m@',
103
-	'date_fmt_jour' => '@nomjour@ @jour@',
104
-	'date_fmt_jour_heure' => '@jour@ a @heure@',
105
-	'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ a @heure_fin@', # MODIF
106
-	'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@', # MODIF
107
-	'date_fmt_jour_mois' => '@jour@ de @nommois@',
108
-	'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
109
-	'date_fmt_mois_annee' => '@nommois@ de @annee@',
110
-	'date_fmt_nomjour' => '@nomjour@ @date@',
111
-	'date_fmt_nomjour_date' => ' @nomjour@ @date@',
112
-	'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
113
-	'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
114
-	'date_fmt_periode_from' => 'De',
115
-	'date_fmt_periode_to' => 'a',
116
-	'date_heures' => 'horas',
117
-	'date_hier' => 'ontem',
118
-	'date_il_y_a' => 'há @delai@',
119
-	'date_jnum1' => '1',
120
-	'date_jnum10' => '10',
121
-	'date_jnum11' => '11',
122
-	'date_jnum12' => '12',
123
-	'date_jnum13' => '13',
124
-	'date_jnum14' => '14',
125
-	'date_jnum15' => '15',
126
-	'date_jnum16' => '16',
127
-	'date_jnum17' => '17',
128
-	'date_jnum18' => '18',
129
-	'date_jnum19' => '19',
130
-	'date_jnum2' => '2',
131
-	'date_jnum20' => '20',
132
-	'date_jnum21' => '21',
133
-	'date_jnum22' => '22',
134
-	'date_jnum23' => '23',
135
-	'date_jnum24' => '24',
136
-	'date_jnum25' => '25',
137
-	'date_jnum26' => '26',
138
-	'date_jnum27' => '27',
139
-	'date_jnum28' => '28',
140
-	'date_jnum29' => '29',
141
-	'date_jnum3' => '3',
142
-	'date_jnum30' => '30',
143
-	'date_jnum31' => '31',
144
-	'date_jnum4' => '4',
145
-	'date_jnum5' => '5',
146
-	'date_jnum6' => '6',
147
-	'date_jnum7' => '7',
148
-	'date_jnum8' => '8',
149
-	'date_jnum9' => '9',
150
-	'date_jour_1' => 'domingo',
151
-	'date_jour_1_abbr' => 'Dom.',
152
-	'date_jour_1_initiale' => 'D.',
153
-	'date_jour_2' => 'segunda-feira',
154
-	'date_jour_2_abbr' => 'Seg.',
155
-	'date_jour_2_initiale' => 'S.',
156
-	'date_jour_3' => 'terça-feira',
157
-	'date_jour_3_abbr' => 'Ter.',
158
-	'date_jour_3_initiale' => 'T.',
159
-	'date_jour_4' => 'quarta-feira',
160
-	'date_jour_4_abbr' => 'Qua.',
161
-	'date_jour_4_initiale' => 'Q.',
162
-	'date_jour_5' => 'quinta-feira',
163
-	'date_jour_5_abbr' => 'Qui.',
164
-	'date_jour_5_initiale' => 'Q.',
165
-	'date_jour_6' => 'sexta-feira',
166
-	'date_jour_6_abbr' => 'Sex.',
167
-	'date_jour_6_initiale' => 'S.',
168
-	'date_jour_7' => 'sábado',
169
-	'date_jour_7_abbr' => 'Sab.',
170
-	'date_jour_7_initiale' => 'S.',
171
-	'date_jours' => 'dias',
172
-	'date_minutes' => 'minutos',
173
-	'date_mois' => 'meses',
174
-	'date_mois_1' => 'Janeiro',
175
-	'date_mois_10' => 'Outubro',
176
-	'date_mois_10_abbr' => 'Out.',
177
-	'date_mois_11' => 'Novembro',
178
-	'date_mois_11_abbr' => 'Nov.',
179
-	'date_mois_12' => 'Dezembro',
180
-	'date_mois_12_abbr' => 'Dez.',
181
-	'date_mois_1_abbr' => 'Jan.',
182
-	'date_mois_2' => 'Fevereiro',
183
-	'date_mois_2_abbr' => 'Feb.',
184
-	'date_mois_3' => 'Março',
185
-	'date_mois_3_abbr' => 'Mar',
186
-	'date_mois_4' => 'Abril',
187
-	'date_mois_4_abbr' => 'Abr.',
188
-	'date_mois_5' => 'Maio',
189
-	'date_mois_5_abbr' => 'Mai',
190
-	'date_mois_6' => 'Junho',
191
-	'date_mois_6_abbr' => 'Jun',
192
-	'date_mois_7' => 'Julho',
193
-	'date_mois_7_abbr' => 'Jul',
194
-	'date_mois_8' => 'Agosto',
195
-	'date_mois_8_abbr' => 'Ago',
196
-	'date_mois_9' => 'Setembro',
197
-	'date_mois_9_abbr' => 'Set',
198
-	'date_saison_1' => 'inverno',
199
-	'date_saison_2' => 'primavera',
200
-	'date_saison_3' => 'verão',
201
-	'date_saison_4' => 'outono',
202
-	'date_secondes' => 'segundos',
203
-	'date_semaines' => 'semanas',
204
-	'date_un_mois' => 'mês',
205
-	'date_une_heure' => 'hora',
206
-	'date_une_minute' => 'minuto',
207
-	'date_une_seconde' => 'segundo',
208
-	'date_une_semaine' => 'semana',
209
-	'dirs_commencer' => 'a fim de começar realmente a instalação',
210
-	'dirs_preliminaire' => 'Preliminar : <b>Configurar os direitos de acesso</b>',
211
-	'dirs_probleme_droits' => 'Problema de direitos de acesso',
212
-	'dirs_repertoires_absents' => '<b>Os seguintes directórios não foram encontrados : <ul>@bad_dirs@.</ul> </b>
84
+    // D
85
+    'date_aujourdhui' => 'hoje',
86
+    'date_avant_jc' => 'a. J.C.',
87
+    'date_dans' => 'entre @delai@',
88
+    'date_de_mois_1' => '@j@ de @nommois@',
89
+    'date_de_mois_10' => '@j@ de @nommois@',
90
+    'date_de_mois_11' => '@j@ de @nommois@',
91
+    'date_de_mois_12' => '@j@ de @nommois@',
92
+    'date_de_mois_2' => '@j@ de @nommois@',
93
+    'date_de_mois_3' => '@j@ de @nommois@',
94
+    'date_de_mois_4' => '@j@ de @nommois@',
95
+    'date_de_mois_5' => '@j@ de @nommois@',
96
+    'date_de_mois_6' => '@j@ de @nommois@',
97
+    'date_de_mois_7' => '@j@ de @nommois@',
98
+    'date_de_mois_8' => '@j@ de @nommois@',
99
+    'date_de_mois_9' => '@j@ de @nommois@',
100
+    'date_demain' => 'amanhã',
101
+    'date_fmt_heures_minutes' => '@h@h@m@min',
102
+    'date_fmt_heures_minutes_court' => '@h@:@m@',
103
+    'date_fmt_jour' => '@nomjour@ @jour@',
104
+    'date_fmt_jour_heure' => '@jour@ a @heure@',
105
+    'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ a @heure_fin@', # MODIF
106
+    'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ a @dtstart@@heure_fin@@dtend@', # MODIF
107
+    'date_fmt_jour_mois' => '@jour@ de @nommois@',
108
+    'date_fmt_jour_mois_annee' => '@jour@ de @nommois@ de @annee@',
109
+    'date_fmt_mois_annee' => '@nommois@ de @annee@',
110
+    'date_fmt_nomjour' => '@nomjour@ @date@',
111
+    'date_fmt_nomjour_date' => ' @nomjour@ @date@',
112
+    'date_fmt_periode' => 'De @date_debut@ a @date_fin@',
113
+    'date_fmt_periode_abbr' => 'De @dtart@@date_debut@@dtabbr@ a @dtend@@date_fin@@dtabbr@',
114
+    'date_fmt_periode_from' => 'De',
115
+    'date_fmt_periode_to' => 'a',
116
+    'date_heures' => 'horas',
117
+    'date_hier' => 'ontem',
118
+    'date_il_y_a' => 'há @delai@',
119
+    'date_jnum1' => '1',
120
+    'date_jnum10' => '10',
121
+    'date_jnum11' => '11',
122
+    'date_jnum12' => '12',
123
+    'date_jnum13' => '13',
124
+    'date_jnum14' => '14',
125
+    'date_jnum15' => '15',
126
+    'date_jnum16' => '16',
127
+    'date_jnum17' => '17',
128
+    'date_jnum18' => '18',
129
+    'date_jnum19' => '19',
130
+    'date_jnum2' => '2',
131
+    'date_jnum20' => '20',
132
+    'date_jnum21' => '21',
133
+    'date_jnum22' => '22',
134
+    'date_jnum23' => '23',
135
+    'date_jnum24' => '24',
136
+    'date_jnum25' => '25',
137
+    'date_jnum26' => '26',
138
+    'date_jnum27' => '27',
139
+    'date_jnum28' => '28',
140
+    'date_jnum29' => '29',
141
+    'date_jnum3' => '3',
142
+    'date_jnum30' => '30',
143
+    'date_jnum31' => '31',
144
+    'date_jnum4' => '4',
145
+    'date_jnum5' => '5',
146
+    'date_jnum6' => '6',
147
+    'date_jnum7' => '7',
148
+    'date_jnum8' => '8',
149
+    'date_jnum9' => '9',
150
+    'date_jour_1' => 'domingo',
151
+    'date_jour_1_abbr' => 'Dom.',
152
+    'date_jour_1_initiale' => 'D.',
153
+    'date_jour_2' => 'segunda-feira',
154
+    'date_jour_2_abbr' => 'Seg.',
155
+    'date_jour_2_initiale' => 'S.',
156
+    'date_jour_3' => 'terça-feira',
157
+    'date_jour_3_abbr' => 'Ter.',
158
+    'date_jour_3_initiale' => 'T.',
159
+    'date_jour_4' => 'quarta-feira',
160
+    'date_jour_4_abbr' => 'Qua.',
161
+    'date_jour_4_initiale' => 'Q.',
162
+    'date_jour_5' => 'quinta-feira',
163
+    'date_jour_5_abbr' => 'Qui.',
164
+    'date_jour_5_initiale' => 'Q.',
165
+    'date_jour_6' => 'sexta-feira',
166
+    'date_jour_6_abbr' => 'Sex.',
167
+    'date_jour_6_initiale' => 'S.',
168
+    'date_jour_7' => 'sábado',
169
+    'date_jour_7_abbr' => 'Sab.',
170
+    'date_jour_7_initiale' => 'S.',
171
+    'date_jours' => 'dias',
172
+    'date_minutes' => 'minutos',
173
+    'date_mois' => 'meses',
174
+    'date_mois_1' => 'Janeiro',
175
+    'date_mois_10' => 'Outubro',
176
+    'date_mois_10_abbr' => 'Out.',
177
+    'date_mois_11' => 'Novembro',
178
+    'date_mois_11_abbr' => 'Nov.',
179
+    'date_mois_12' => 'Dezembro',
180
+    'date_mois_12_abbr' => 'Dez.',
181
+    'date_mois_1_abbr' => 'Jan.',
182
+    'date_mois_2' => 'Fevereiro',
183
+    'date_mois_2_abbr' => 'Feb.',
184
+    'date_mois_3' => 'Março',
185
+    'date_mois_3_abbr' => 'Mar',
186
+    'date_mois_4' => 'Abril',
187
+    'date_mois_4_abbr' => 'Abr.',
188
+    'date_mois_5' => 'Maio',
189
+    'date_mois_5_abbr' => 'Mai',
190
+    'date_mois_6' => 'Junho',
191
+    'date_mois_6_abbr' => 'Jun',
192
+    'date_mois_7' => 'Julho',
193
+    'date_mois_7_abbr' => 'Jul',
194
+    'date_mois_8' => 'Agosto',
195
+    'date_mois_8_abbr' => 'Ago',
196
+    'date_mois_9' => 'Setembro',
197
+    'date_mois_9_abbr' => 'Set',
198
+    'date_saison_1' => 'inverno',
199
+    'date_saison_2' => 'primavera',
200
+    'date_saison_3' => 'verão',
201
+    'date_saison_4' => 'outono',
202
+    'date_secondes' => 'segundos',
203
+    'date_semaines' => 'semanas',
204
+    'date_un_mois' => 'mês',
205
+    'date_une_heure' => 'hora',
206
+    'date_une_minute' => 'minuto',
207
+    'date_une_seconde' => 'segundo',
208
+    'date_une_semaine' => 'semana',
209
+    'dirs_commencer' => 'a fim de começar realmente a instalação',
210
+    'dirs_preliminaire' => 'Preliminar : <b>Configurar os direitos de acesso</b>',
211
+    'dirs_probleme_droits' => 'Problema de direitos de acesso',
212
+    'dirs_repertoires_absents' => '<b>Os seguintes directórios não foram encontrados : <ul>@bad_dirs@.</ul> </b>
213 213
   <p>É provável que resulte de um problema de má colocação de maiúsculas ou minúsculas.
214 214
   Verifique que as minúsculas e maiúsculas destes directórios concordam com o que está exibido
215 215
  acima; se não for o caso, renomeie os repertórios com o seu software FTP de modo a corrigir o erro.
216 216
   <p>Terminada esta operação, poderá</p>',
217
-	'dirs_repertoires_suivants' => '<b>Os seguintes directórios não estão acessíveis para escrita: <ul>@bad_dirs@.</ul> </b>
217
+    'dirs_repertoires_suivants' => '<b>Os seguintes directórios não estão acessíveis para escrita: <ul>@bad_dirs@.</ul> </b>
218 218
   <p>Para corrigir, utilize o seu programa de FTP para configurar os direitos de acesso de cada um
219 219
   destes directórios. O procedimento está explicado em detalhe no manual de instalação.
220 220
   <p>Uma vez efectuada esta alteração, poderá',
221
-	'double_occurrence' => 'Dupla ocorrência de @balise@',
221
+    'double_occurrence' => 'Dupla ocorrência de @balise@',
222 222
 
223
-	// E
224
-	'en_cours' => 'em curso',
225
-	'envoi_via_le_site' => 'Envio pelo sítio',
226
-	'erreur' => 'Erro',
227
-	'erreur_balise_non_fermee' => 'última tag não fechada :',
228
-	'erreur_technique_ajaxform' => 'Ooops. Uum erro inesperado impediu o formulário de ser enviado. Por favor tente novamente.',
229
-	'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu o registo correcto do campo @champs@.',
230
-	'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu o registo.',
231
-	'erreur_texte' => 'erro(s)',
232
-	'etape' => 'Etapa',
223
+    // E
224
+    'en_cours' => 'em curso',
225
+    'envoi_via_le_site' => 'Envio pelo sítio',
226
+    'erreur' => 'Erro',
227
+    'erreur_balise_non_fermee' => 'última tag não fechada :',
228
+    'erreur_technique_ajaxform' => 'Ooops. Uum erro inesperado impediu o formulário de ser enviado. Por favor tente novamente.',
229
+    'erreur_technique_enregistrement_champs' => 'Um erro técnico impediu o registo correcto do campo @champs@.',
230
+    'erreur_technique_enregistrement_impossible' => 'Um erro técnico impediu o registo.',
231
+    'erreur_texte' => 'erro(s)',
232
+    'etape' => 'Etapa',
233 233
 
234
-	// F
235
-	'fichier_introuvable' => 'Ficheiro @fichier@ não localizado', # MODIF
236
-	'form_auteur_confirmation' => 'Confirme o seu endereço e-mail',
237
-	'form_auteur_email_modifie' => 'O seu endereço e-mail foi alterado.',
238
-	'form_auteur_envoi_mail_confirmation' => 'Um e-mail de confirmação foi enviado para @email@. Para validar o seu endereço de e-mail, deve abrir o endereço Web mencionado na mensagem.',
239
-	'form_auteur_mail_confirmation' => 'Olá,
234
+    // F
235
+    'fichier_introuvable' => 'Ficheiro @fichier@ não localizado', # MODIF
236
+    'form_auteur_confirmation' => 'Confirme o seu endereço e-mail',
237
+    'form_auteur_email_modifie' => 'O seu endereço e-mail foi alterado.',
238
+    'form_auteur_envoi_mail_confirmation' => 'Um e-mail de confirmação foi enviado para @email@. Para validar o seu endereço de e-mail, deve abrir o endereço Web mencionado na mensagem.',
239
+    'form_auteur_mail_confirmation' => 'Olá,
240 240
 
241 241
 Pediu para alterar o seu endereço e-mail. Para confirmar o seu novo endereço, precisa de se conectar ao endereço abaixo (caso contrário, o seu pedido será ignorado) :
242 242
 
243 243
     @url@
244 244
 ',
245
-	'form_deja_inscrit' => 'Já está inscrito.',
246
-	'form_email_non_valide' => 'O seu endereço email não é válido',
247
-	'form_forum_access_refuse' => 'Você já não tem acesso a este sítio',
248
-	'form_forum_bonjour' => 'Bom dia @nom@,',
249
-	'form_forum_confirmer_email' => 'Para confirmar o seu endereço e-maill, abra esta ligação : @url_confirm@',
250
-	'form_forum_email_deja_enregistre' => 'Este endereço e-mail já está registado,pode portanto utilizar a sua palavra-passe habitual',
251
-	'form_forum_identifiant_mail' => 'O seu novo identificador acabou de lhe ser enviado por email.',
252
-	'form_forum_identifiants' => 'Identificadores pessoais',
253
-	'form_forum_indiquer_nom_email' => 'Indicar aqui o seu nome e o seu endereço email. O seu identificador pessoal ser-lhe-á enviado rapidamente por correio electrónico.',
254
-	'form_forum_login' => 'login:',
255
-	'form_forum_message_auto' => '(esta é uma mensagem automática)',
256
-	'form_forum_pass' => 'palavra-passe',
257
-	'form_forum_probleme_mail' => 'Problema de mail :o identificador não pôde ser enviado',
258
-	'form_forum_voici1' => 'Aqui estão os seus dados para poder aceder ao sítio Internet do  "@nom_site_spip@" (@adresse_site@):',
259
-	'form_forum_voici2' => 'Eis os seus identificadores para propor artigos no
245
+    'form_deja_inscrit' => 'Já está inscrito.',
246
+    'form_email_non_valide' => 'O seu endereço email não é válido',
247
+    'form_forum_access_refuse' => 'Você já não tem acesso a este sítio',
248
+    'form_forum_bonjour' => 'Bom dia @nom@,',
249
+    'form_forum_confirmer_email' => 'Para confirmar o seu endereço e-maill, abra esta ligação : @url_confirm@',
250
+    'form_forum_email_deja_enregistre' => 'Este endereço e-mail já está registado,pode portanto utilizar a sua palavra-passe habitual',
251
+    'form_forum_identifiant_mail' => 'O seu novo identificador acabou de lhe ser enviado por email.',
252
+    'form_forum_identifiants' => 'Identificadores pessoais',
253
+    'form_forum_indiquer_nom_email' => 'Indicar aqui o seu nome e o seu endereço email. O seu identificador pessoal ser-lhe-á enviado rapidamente por correio electrónico.',
254
+    'form_forum_login' => 'login:',
255
+    'form_forum_message_auto' => '(esta é uma mensagem automática)',
256
+    'form_forum_pass' => 'palavra-passe',
257
+    'form_forum_probleme_mail' => 'Problema de mail :o identificador não pôde ser enviado',
258
+    'form_forum_voici1' => 'Aqui estão os seus dados para poder aceder ao sítio Internet do  "@nom_site_spip@" (@adresse_site@):',
259
+    'form_forum_voici2' => 'Eis os seus identificadores para propor artigos no
260 260
  sítio "@nom_site_spip@" (@adresse_login@):',
261
-	'form_indiquer_email' => 'Por favor indique o seu endereço email.',
262
-	'form_indiquer_nom' => 'Por favor indique o seu nome.',
263
-	'form_indiquer_nom_site' => 'Por favor indique o nome do seu sítio.',
264
-	'form_pet_deja_enregistre' => 'Este sítio já está registado',
265
-	'form_pet_signature_pasprise' => 'A sua assinatura não está tomada em conta.',
266
-	'form_prop_confirmer_envoi' => 'Confirmar o envio',
267
-	'form_prop_description' => 'Descrição/comentário',
268
-	'form_prop_enregistre' => 'A sua proposta foi registada. Aparecerá online após a validação pelos responsáveis deste sítio.',
269
-	'form_prop_envoyer' => 'Enviar uma mensagem',
270
-	'form_prop_indiquer_email' => 'Por favor indique um endereço email válido',
271
-	'form_prop_indiquer_nom_site' => 'Por favor indique o nome do sítio.',
272
-	'form_prop_indiquer_sujet' => 'Por favor indique um tema',
273
-	'form_prop_message_envoye' => 'Mensagem enviada',
274
-	'form_prop_non_enregistre' => 'A sua proposta não foi registada.',
275
-	'form_prop_sujet' => 'Tema',
276
-	'form_prop_url_site' => 'Endereço (URL) do sítio',
277
-	'forum_non_inscrit' => 'Não está inscrito, ou o endereço ou a palavra-passe estão errados.',
278
-	'forum_par_auteur' => 'por @auteur@',
279
-	'forum_titre_erreur' => 'Erro...',
261
+    'form_indiquer_email' => 'Por favor indique o seu endereço email.',
262
+    'form_indiquer_nom' => 'Por favor indique o seu nome.',
263
+    'form_indiquer_nom_site' => 'Por favor indique o nome do seu sítio.',
264
+    'form_pet_deja_enregistre' => 'Este sítio já está registado',
265
+    'form_pet_signature_pasprise' => 'A sua assinatura não está tomada em conta.',
266
+    'form_prop_confirmer_envoi' => 'Confirmar o envio',
267
+    'form_prop_description' => 'Descrição/comentário',
268
+    'form_prop_enregistre' => 'A sua proposta foi registada. Aparecerá online após a validação pelos responsáveis deste sítio.',
269
+    'form_prop_envoyer' => 'Enviar uma mensagem',
270
+    'form_prop_indiquer_email' => 'Por favor indique um endereço email válido',
271
+    'form_prop_indiquer_nom_site' => 'Por favor indique o nome do sítio.',
272
+    'form_prop_indiquer_sujet' => 'Por favor indique um tema',
273
+    'form_prop_message_envoye' => 'Mensagem enviada',
274
+    'form_prop_non_enregistre' => 'A sua proposta não foi registada.',
275
+    'form_prop_sujet' => 'Tema',
276
+    'form_prop_url_site' => 'Endereço (URL) do sítio',
277
+    'forum_non_inscrit' => 'Não está inscrito, ou o endereço ou a palavra-passe estão errados.',
278
+    'forum_par_auteur' => 'por @auteur@',
279
+    'forum_titre_erreur' => 'Erro...',
280 280
 
281
-	// I
282
-	'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste sítio encontra-se neste endereço:',
283
-	'ical_texte_rss_articles2' => 'Pode igualmente obter os ficheiros «backend» para os artigos de cada rubrica do sítio:',
284
-	'ical_texte_rss_breves' => 'Existe também um ficheiro contendo notícias do sítio. Especificando um número de rubrica, obterá unicamente as notícias dessa rubrica.',
285
-	'icone_a_suivre' => 'Continua',
286
-	'icone_admin_site' => 'Administração do sítio',
287
-	'icone_agenda' => 'Agenda e correio',
288
-	'icone_aide_ligne' => 'Ajuda',
289
-	'icone_articles' => 'Artigos',
290
-	'icone_auteurs' => 'Autores',
291
-	'icone_brouteur' => 'Navegação rápida',
292
-	'icone_configuration_site' => 'Configuração',
293
-	'icone_configurer_site' => 'Configurar o seu sítio',
294
-	'icone_creer_nouvel_auteur' => 'Criar um novo autor',
295
-	'icone_creer_rubrique' => 'Criar uma rubrica',
296
-	'icone_creer_sous_rubrique' => 'Criar uma sub-rubrica',
297
-	'icone_deconnecter' => 'Sair',
298
-	'icone_discussions' => 'Discussões',
299
-	'icone_doc_rubrique' => 'Documentos das rubricas',
300
-	'icone_ecrire_article' => 'Escrever um novo artigo',
301
-	'icone_edition_site' => 'Edição',
302
-	'icone_gestion_langues' => 'Opções de idiomas',
303
-	'icone_informations_personnelles' => 'Informações pessoais',
304
-	'icone_interface_complet' => 'interface completa',
305
-	'icone_interface_simple' => 'Interface simplificada',
306
-	'icone_maintenance_site' => 'Manutenção do sítio',
307
-	'icone_messagerie_personnelle' => 'Mensagens privadas',
308
-	'icone_repartition_debut' => 'Exibir a distribuição desde o início',
309
-	'icone_rubriques' => 'Rubricas',
310
-	'icone_sauver_site' => 'Cópia de segurança do sítio',
311
-	'icone_site_entier' => 'Todo o sítio',
312
-	'icone_sites_references' => 'Sítios referenciados',
313
-	'icone_statistiques' => 'Estatísticas do sítio',
314
-	'icone_suivi_activite' => 'Acompanhar a actividade do sítio',
315
-	'icone_suivi_actualite' => 'Evolução do sítio',
316
-	'icone_suivi_pettions' => 'Seguir/gerir os abaixo-assinados',
317
-	'icone_suivi_revisions' => 'Modificações dos artigos',
318
-	'icone_supprimer_document' => 'Suprimir este documento',
319
-	'icone_supprimer_image' => 'Suprimir esta imagem',
320
-	'icone_tous_articles' => 'Todos os seus artigos',
321
-	'icone_tous_auteur' => 'Todos os autores',
322
-	'icone_tous_visiteur' => 'Todos os visitantes',
323
-	'icone_visiter_site' => 'Visitar o sítio público',
324
-	'icone_voir_en_ligne' => 'Ver online',
325
-	'img_indisponible' => 'imagem indisponível',
326
-	'impossible' => 'impossível',
327
-	'info_a_suivre' => 'A SEGUIR »',
328
-	'info_acces_interdit' => 'Acesso proibido',
329
-	'info_acces_refuse' => 'Acesso recusado',
330
-	'info_action' => 'Acção : @action@',
331
-	'info_administrer_rubriques' => 'Pode administrar esta rubrica e as suas sub-rubricas',
332
-	'info_adresse_non_indiquee' => 'Não indicou endereço a testar !',
333
-	'info_aide' => 'AJUDA',
334
-	'info_ajouter_mot' => 'Acrescentar esta palavra',
335
-	'info_annonce' => 'ANÚNCIO',
336
-	'info_annonces_generales' => 'Anúncios gerais :',
337
-	'info_article_propose' => 'Artigo proposto',
338
-	'info_article_publie' => 'Artigo publicado',
339
-	'info_article_redaction' => 'Artigo em curso de redacção',
340
-	'info_article_refuse' => 'Artigo recusado',
341
-	'info_article_supprime' => 'Artigo suprimido',
342
-	'info_articles' => 'Artigos',
343
-	'info_articles_a_valider' => 'Os artigos a validar',
344
-	'info_articles_nb' => '@nb@ artigos',
345
-	'info_articles_proposes' => 'Artigos propostos',
346
-	'info_articles_un' => '1 artigo',
347
-	'info_auteurs_nombre' => 'autor(es) :',
348
-	'info_authentification_ftp' => 'Autenticação (por FTP)',
349
-	'info_breves_2' => 'notícias',
350
-	'info_breves_nb' => '@nb@ notícias',
351
-	'info_breves_un' => '1 notícia',
352
-	'info_connexion_refusee' => 'Ligação recusada',
353
-	'info_contact_developpeur' => 'Por favor contacte um programador',
354
-	'info_contenance' => 'Este sítio contém:',
355
-	'info_contribution' => 'contribuições de fórum',
356
-	'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
357
-	'info_copyright_doc' => 'Para mais informações, visite o sítio <a href="@spipnet@">@spipnet_affiche@</a',
358
-	'info_copyright_gpl' => 'sob licença GPL',
359
-	'info_cours_edition' => 'Os seus artigos em curso de redacção', # MODIF
360
-	'info_creer_repertoire' => 'Por favor crie um ficheiro ou um directório chamado :',
361
-	'info_creer_repertoire_2' => 'dentro do sub-directório <b>@repertoire@</b>, depois :',
362
-	'info_creer_vignette' => 'criação automática de miniatura',
363
-	'info_creerdansrubrique_non_autorise' => 'Não tem direitos suficientes para criar conteúdo nesta rubrica.',
364
-	'info_deplier' => 'Desenvolver',
365
-	'info_descriptif_nombre' => 'descritivo(s) :',
366
-	'info_description' => 'Descrição :',
367
-	'info_description_2' => 'Descrição :',
368
-	'info_dimension' => 'Dimensões :',
369
-	'info_documents_nb' => '@nb@ documentos',
370
-	'info_documents_un' => '1 documento',
371
-	'info_ecire_message_prive' => 'Escrever uma mensagem privada',
372
-	'info_email_invalide' => 'Endereço email inválido.',
373
-	'info_en_cours_validation' => 'Os seus artigos em curso de redação',
374
-	'info_en_ligne' => 'Actualmente online:',
375
-	'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
376
-	'info_erreur_requete' => 'Erro no pedido :',
377
-	'info_erreur_squelette2' => 'Modelo <b>@fichier@</b> não disponível...',
378
-	'info_erreur_systeme' => 'Erro de Sistema (errno @errsys@)',
379
-	'info_erreur_systeme2' => 'O disco rígido poderá estar cheio, ou a base de dados danificada.<br />
281
+    // I
282
+    'ical_texte_rss_articles' => 'O ficheiro «backend» dos artigos deste sítio encontra-se neste endereço:',
283
+    'ical_texte_rss_articles2' => 'Pode igualmente obter os ficheiros «backend» para os artigos de cada rubrica do sítio:',
284
+    'ical_texte_rss_breves' => 'Existe também um ficheiro contendo notícias do sítio. Especificando um número de rubrica, obterá unicamente as notícias dessa rubrica.',
285
+    'icone_a_suivre' => 'Continua',
286
+    'icone_admin_site' => 'Administração do sítio',
287
+    'icone_agenda' => 'Agenda e correio',
288
+    'icone_aide_ligne' => 'Ajuda',
289
+    'icone_articles' => 'Artigos',
290
+    'icone_auteurs' => 'Autores',
291
+    'icone_brouteur' => 'Navegação rápida',
292
+    'icone_configuration_site' => 'Configuração',
293
+    'icone_configurer_site' => 'Configurar o seu sítio',
294
+    'icone_creer_nouvel_auteur' => 'Criar um novo autor',
295
+    'icone_creer_rubrique' => 'Criar uma rubrica',
296
+    'icone_creer_sous_rubrique' => 'Criar uma sub-rubrica',
297
+    'icone_deconnecter' => 'Sair',
298
+    'icone_discussions' => 'Discussões',
299
+    'icone_doc_rubrique' => 'Documentos das rubricas',
300
+    'icone_ecrire_article' => 'Escrever um novo artigo',
301
+    'icone_edition_site' => 'Edição',
302
+    'icone_gestion_langues' => 'Opções de idiomas',
303
+    'icone_informations_personnelles' => 'Informações pessoais',
304
+    'icone_interface_complet' => 'interface completa',
305
+    'icone_interface_simple' => 'Interface simplificada',
306
+    'icone_maintenance_site' => 'Manutenção do sítio',
307
+    'icone_messagerie_personnelle' => 'Mensagens privadas',
308
+    'icone_repartition_debut' => 'Exibir a distribuição desde o início',
309
+    'icone_rubriques' => 'Rubricas',
310
+    'icone_sauver_site' => 'Cópia de segurança do sítio',
311
+    'icone_site_entier' => 'Todo o sítio',
312
+    'icone_sites_references' => 'Sítios referenciados',
313
+    'icone_statistiques' => 'Estatísticas do sítio',
314
+    'icone_suivi_activite' => 'Acompanhar a actividade do sítio',
315
+    'icone_suivi_actualite' => 'Evolução do sítio',
316
+    'icone_suivi_pettions' => 'Seguir/gerir os abaixo-assinados',
317
+    'icone_suivi_revisions' => 'Modificações dos artigos',
318
+    'icone_supprimer_document' => 'Suprimir este documento',
319
+    'icone_supprimer_image' => 'Suprimir esta imagem',
320
+    'icone_tous_articles' => 'Todos os seus artigos',
321
+    'icone_tous_auteur' => 'Todos os autores',
322
+    'icone_tous_visiteur' => 'Todos os visitantes',
323
+    'icone_visiter_site' => 'Visitar o sítio público',
324
+    'icone_voir_en_ligne' => 'Ver online',
325
+    'img_indisponible' => 'imagem indisponível',
326
+    'impossible' => 'impossível',
327
+    'info_a_suivre' => 'A SEGUIR »',
328
+    'info_acces_interdit' => 'Acesso proibido',
329
+    'info_acces_refuse' => 'Acesso recusado',
330
+    'info_action' => 'Acção : @action@',
331
+    'info_administrer_rubriques' => 'Pode administrar esta rubrica e as suas sub-rubricas',
332
+    'info_adresse_non_indiquee' => 'Não indicou endereço a testar !',
333
+    'info_aide' => 'AJUDA',
334
+    'info_ajouter_mot' => 'Acrescentar esta palavra',
335
+    'info_annonce' => 'ANÚNCIO',
336
+    'info_annonces_generales' => 'Anúncios gerais :',
337
+    'info_article_propose' => 'Artigo proposto',
338
+    'info_article_publie' => 'Artigo publicado',
339
+    'info_article_redaction' => 'Artigo em curso de redacção',
340
+    'info_article_refuse' => 'Artigo recusado',
341
+    'info_article_supprime' => 'Artigo suprimido',
342
+    'info_articles' => 'Artigos',
343
+    'info_articles_a_valider' => 'Os artigos a validar',
344
+    'info_articles_nb' => '@nb@ artigos',
345
+    'info_articles_proposes' => 'Artigos propostos',
346
+    'info_articles_un' => '1 artigo',
347
+    'info_auteurs_nombre' => 'autor(es) :',
348
+    'info_authentification_ftp' => 'Autenticação (por FTP)',
349
+    'info_breves_2' => 'notícias',
350
+    'info_breves_nb' => '@nb@ notícias',
351
+    'info_breves_un' => '1 notícia',
352
+    'info_connexion_refusee' => 'Ligação recusada',
353
+    'info_contact_developpeur' => 'Por favor contacte um programador',
354
+    'info_contenance' => 'Este sítio contém:',
355
+    'info_contribution' => 'contribuições de fórum',
356
+    'info_copyright' => '@spip@ é um software livre distribuído @lien_gpl@.',
357
+    'info_copyright_doc' => 'Para mais informações, visite o sítio <a href="@spipnet@">@spipnet_affiche@</a',
358
+    'info_copyright_gpl' => 'sob licença GPL',
359
+    'info_cours_edition' => 'Os seus artigos em curso de redacção', # MODIF
360
+    'info_creer_repertoire' => 'Por favor crie um ficheiro ou um directório chamado :',
361
+    'info_creer_repertoire_2' => 'dentro do sub-directório <b>@repertoire@</b>, depois :',
362
+    'info_creer_vignette' => 'criação automática de miniatura',
363
+    'info_creerdansrubrique_non_autorise' => 'Não tem direitos suficientes para criar conteúdo nesta rubrica.',
364
+    'info_deplier' => 'Desenvolver',
365
+    'info_descriptif_nombre' => 'descritivo(s) :',
366
+    'info_description' => 'Descrição :',
367
+    'info_description_2' => 'Descrição :',
368
+    'info_dimension' => 'Dimensões :',
369
+    'info_documents_nb' => '@nb@ documentos',
370
+    'info_documents_un' => '1 documento',
371
+    'info_ecire_message_prive' => 'Escrever uma mensagem privada',
372
+    'info_email_invalide' => 'Endereço email inválido.',
373
+    'info_en_cours_validation' => 'Os seus artigos em curso de redação',
374
+    'info_en_ligne' => 'Actualmente online:',
375
+    'info_envoyer_message_prive' => 'Enviar uma mensagem privada a este autor',
376
+    'info_erreur_requete' => 'Erro no pedido :',
377
+    'info_erreur_squelette2' => 'Modelo <b>@fichier@</b> não disponível...',
378
+    'info_erreur_systeme' => 'Erro de Sistema (errno @errsys@)',
379
+    'info_erreur_systeme2' => 'O disco rígido poderá estar cheio, ou a base de dados danificada.<br />
380 380
 <span style="color:red;">Tente <a href=\'@script@\'>reparar a base de dados </a>, ou contacte o seu fornecedor de internet.</span>',
381
-	'info_fini' => 'Terminou !',
382
-	'info_format_image' => 'Formatos de imagens que podem ser utilizadas para criar vinhetas : @gd_formats@.',
383
-	'info_format_non_defini' => 'formato não definido',
384
-	'info_grand_ecran' => 'Ecrã total',
385
-	'info_image_aide' => 'AJUDA',
386
-	'info_image_process_titre' => 'Como criar miniaturas',
387
-	'info_impossible_lire_page' => '<b>Erro !</b> Impossível ler a página<tt><html>@test_proxy@</html></tt> através do proxy <tt>',
388
-	'info_installation_systeme_publication' => 'Instalação do sistema de publicação',
389
-	'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos na pasta @upload@.',
390
-	'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) ficheiros na pasta @upload@ para depois seleccioná-los directamente aqui.',
391
-	'info_installer_images' => 'Pode instalar imagens nos formatos JPEG, GIF e PNG.',
392
-	'info_installer_images_dossier' => 'Instalar imagens na pasta @upload@ para poder seleccioná-los aqui.',
393
-	'info_interface_complete' => 'Interface completa',
394
-	'info_interface_simple' => 'Interface simplificada',
395
-	'info_joindre_document_article' => 'Pode juntar a este artigo documentos de tipo',
396
-	'info_joindre_document_rubrique' => 'Pode acrescentar a esta rubrica documentos de tipo',
397
-	'info_joindre_documents_article' => 'Pode juntar ao seu artigo documentos de tipo :',
398
-	'info_l_article' => 'o artigo',
399
-	'info_la_breve' => 'a notícia',
400
-	'info_la_rubrique' => 'a rubrica',
401
-	'info_langue_principale' => 'Idioma principal do sítio',
402
-	'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
403
-	'info_les_auteurs_1' => 'por @les_auteurs@',
404
-	'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
405
-	'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
406
-	'info_mail_fournisseur' => 'você@seucorreio.com',
407
-	'info_message_2' => 'MENSAGEM',
408
-	'info_message_supprime' => 'MENSAGEM ELIMINADA',
409
-	'info_messages_nb' => '@nb@ mensagens',
410
-	'info_messages_un' => '1 mensagem',
411
-	'info_mise_en_ligne' => 'Data de colocação online :',
412
-	'info_modification_parametres_securite' => 'modificação dos parâmetros de segurança',
413
-	'info_mois_courant' => 'Durante o mês :',
414
-	'info_mot_cle_ajoute' => 'A seguinte palavra-chave foi acrescentada a',
415
-	'info_multi_herit' => 'Idioma por defeito',
416
-	'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhadas</u> beneficiam de uma tradução de todos os textos da interface. Se seleccionar esses idiomas, muitos elementos do sítio público (datas, formulários) serão automaticamente traduzidos. Para os idiomas não sublinhadas, esses elementos aparecerão no idioma principal do sítio.',
417
-	'info_multilinguisme' => 'Multilinguismo',
418
-	'info_nom_non_utilisateurs_connectes' => 'O seu nome não aparece na lista dos utilizadores ligados.',
419
-	'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista dos utilizadores ligados.',
420
-	'info_nombre_en_ligne' => 'Actualmente online :',
421
-	'info_non_resultat' => 'Nenhum resultado para "@cherche_mot@"',
422
-	'info_non_utilisation_messagerie' => 'Não utiliza o correio interno deste sítio.',
423
-	'info_nouveau_message' => 'TEM UMA NOVA MENSAGEM',
424
-	'info_nouveaux_messages' => 'TEM @total_messages@ NOVAS MENSAGENS',
425
-	'info_numero_abbreviation' => '<N° >',
426
-	'info_obligatoire' => 'Esta informação é obrigatória',
427
-	'info_pense_bete' => 'MEMORANDO',
428
-	'info_petit_ecran' => 'Ecrã Pequeno',
429
-	'info_petition_close' => 'Petição encerrada',
430
-	'info_pixels' => 'pixels',
431
-	'info_plusieurs_mots_trouves' => 'Muitas palavras-chave encontradas para "@cherche_mot@":',
432
-	'info_portfolio_automatique' => 'Portfolio automático :',
433
-	'info_premier_resultat' => '[@debut_limit@ primeiros resultados em @total@]',
434
-	'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados em @total@]',
435
-	'info_propose_1' => '[@nom_site_spip@] Proposto : @titre@',
436
-	'info_propose_2' => 'Artigos propostos
381
+    'info_fini' => 'Terminou !',
382
+    'info_format_image' => 'Formatos de imagens que podem ser utilizadas para criar vinhetas : @gd_formats@.',
383
+    'info_format_non_defini' => 'formato não definido',
384
+    'info_grand_ecran' => 'Ecrã total',
385
+    'info_image_aide' => 'AJUDA',
386
+    'info_image_process_titre' => 'Como criar miniaturas',
387
+    'info_impossible_lire_page' => '<b>Erro !</b> Impossível ler a página<tt><html>@test_proxy@</html></tt> através do proxy <tt>',
388
+    'info_installation_systeme_publication' => 'Instalação do sistema de publicação',
389
+    'info_installer_documents' => 'Pode instalar automaticamente todos os documentos contidos na pasta @upload@.',
390
+    'info_installer_ftp' => 'Como administrador, pode instalar (por FTP) ficheiros na pasta @upload@ para depois seleccioná-los directamente aqui.',
391
+    'info_installer_images' => 'Pode instalar imagens nos formatos JPEG, GIF e PNG.',
392
+    'info_installer_images_dossier' => 'Instalar imagens na pasta @upload@ para poder seleccioná-los aqui.',
393
+    'info_interface_complete' => 'Interface completa',
394
+    'info_interface_simple' => 'Interface simplificada',
395
+    'info_joindre_document_article' => 'Pode juntar a este artigo documentos de tipo',
396
+    'info_joindre_document_rubrique' => 'Pode acrescentar a esta rubrica documentos de tipo',
397
+    'info_joindre_documents_article' => 'Pode juntar ao seu artigo documentos de tipo :',
398
+    'info_l_article' => 'o artigo',
399
+    'info_la_breve' => 'a notícia',
400
+    'info_la_rubrique' => 'a rubrica',
401
+    'info_langue_principale' => 'Idioma principal do sítio',
402
+    'info_largeur_vignette' => '@largeur_vignette@ x @hauteur_vignette@ pixels',
403
+    'info_les_auteurs_1' => 'por @les_auteurs@',
404
+    'info_logo_format_interdit' => 'Apenas os ícones nos formatos @formats@ estão autorizados.',
405
+    'info_logo_max_poids' => 'Os ícones devem obrigatoriamente ter menos de @maxi@ (este arquivo tem @actuel@).',
406
+    'info_mail_fournisseur' => 'você@seucorreio.com',
407
+    'info_message_2' => 'MENSAGEM',
408
+    'info_message_supprime' => 'MENSAGEM ELIMINADA',
409
+    'info_messages_nb' => '@nb@ mensagens',
410
+    'info_messages_un' => '1 mensagem',
411
+    'info_mise_en_ligne' => 'Data de colocação online :',
412
+    'info_modification_parametres_securite' => 'modificação dos parâmetros de segurança',
413
+    'info_mois_courant' => 'Durante o mês :',
414
+    'info_mot_cle_ajoute' => 'A seguinte palavra-chave foi acrescentada a',
415
+    'info_multi_herit' => 'Idioma por defeito',
416
+    'info_multi_langues_soulignees' => 'Os <u>idiomas sublinhadas</u> beneficiam de uma tradução de todos os textos da interface. Se seleccionar esses idiomas, muitos elementos do sítio público (datas, formulários) serão automaticamente traduzidos. Para os idiomas não sublinhadas, esses elementos aparecerão no idioma principal do sítio.',
417
+    'info_multilinguisme' => 'Multilinguismo',
418
+    'info_nom_non_utilisateurs_connectes' => 'O seu nome não aparece na lista dos utilizadores ligados.',
419
+    'info_nom_utilisateurs_connectes' => 'O seu nome aparece na lista dos utilizadores ligados.',
420
+    'info_nombre_en_ligne' => 'Actualmente online :',
421
+    'info_non_resultat' => 'Nenhum resultado para "@cherche_mot@"',
422
+    'info_non_utilisation_messagerie' => 'Não utiliza o correio interno deste sítio.',
423
+    'info_nouveau_message' => 'TEM UMA NOVA MENSAGEM',
424
+    'info_nouveaux_messages' => 'TEM @total_messages@ NOVAS MENSAGENS',
425
+    'info_numero_abbreviation' => '<N° >',
426
+    'info_obligatoire' => 'Esta informação é obrigatória',
427
+    'info_pense_bete' => 'MEMORANDO',
428
+    'info_petit_ecran' => 'Ecrã Pequeno',
429
+    'info_petition_close' => 'Petição encerrada',
430
+    'info_pixels' => 'pixels',
431
+    'info_plusieurs_mots_trouves' => 'Muitas palavras-chave encontradas para "@cherche_mot@":',
432
+    'info_portfolio_automatique' => 'Portfolio automático :',
433
+    'info_premier_resultat' => '[@debut_limit@ primeiros resultados em @total@]',
434
+    'info_premier_resultat_sur' => '[@debut_limit@ primeiros resultados em @total@]',
435
+    'info_propose_1' => '[@nom_site_spip@] Proposto : @titre@',
436
+    'info_propose_2' => 'Artigos propostos
437 437
 ----------------',
438
-	'info_propose_3' => 'O artigo "@titre@" é proposto para publicação.',
439
-	'info_propose_4' => 'Está convidado a vir consultá-lo e a dar a sua opinião',
440
-	'info_propose_5' => 'no fórum que lhe está ligado. Está disponível no endereço:',
441
-	'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
442
-	'info_publie_1' => '[@nom_site_spip@] PUBLICADO : @titre@',
443
-	'info_publie_2' => 'Artigo publicado
438
+    'info_propose_3' => 'O artigo "@titre@" é proposto para publicação.',
439
+    'info_propose_4' => 'Está convidado a vir consultá-lo e a dar a sua opinião',
440
+    'info_propose_5' => 'no fórum que lhe está ligado. Está disponível no endereço:',
441
+    'info_publie_01' => 'O artigo "@titre@" foi validado por @connect_nom@.',
442
+    'info_publie_1' => '[@nom_site_spip@] PUBLICADO : @titre@',
443
+    'info_publie_2' => 'Artigo publicado
444 444
 --------------',
445
-	'info_rechercher' => 'Procurar',
446
-	'info_rechercher_02' => 'Procurar :',
447
-	'info_remplacer_vignette' => 'Substituir a miniatura por defeito por um logotipo personalizado :',
448
-	'info_rubriques_nb' => '@nb@ rubricas',
449
-	'info_rubriques_un' => '1 rubrica',
450
-	'info_sans_titre_2' => 'sem título',
451
-	'info_selectionner_fichier' => 'Pode seleccionar um ficheiro da pasta @upload@',
452
-	'info_selectionner_fichier_2' => 'Seleccionar um ficheiro :',
453
-	'info_sites_nb' => '@nb@ sítios',
454
-	'info_sites_un' => '1 sítio',
455
-	'info_supprimer_vignette' => 'suprimir a miniatura',
456
-	'info_symbole_bleu' => 'O símbolo <b>azul</b> indica um<b>memorando </b>: isto é uma mensagem para o seu uso pessoal.',
457
-	'info_symbole_jaune' => 'O símbolo<b>amarelo</b> indica um <b>anúncio a todos os redactores</b> : modificável por todos os administradores, e visível por todos os redactores.',
458
-	'info_symbole_vert' => 'O símbolo<b>verde</b> indica as <b>mensagens trocadas com outros utilizadores</b> do sítio.',
459
-	'info_telecharger_nouveau_logo' => 'Telecarregar um novo logotipo :',
460
-	'info_telecharger_ordinateur' => 'Telecarregar do seu computador :',
461
-	'info_tous_resultats_enregistres' => '[todos os  resultados estão registados]',
462
-	'info_tout_afficher' => 'Exibir tudo',
463
-	'info_travaux_texte' => 'Este sítio ainda não está configurado. Volte mais tarde...',
464
-	'info_travaux_titre' => 'Sítio em construção',
465
-	'info_trop_resultat' => 'Demasiado resultados para "@cherche_mot@". Por favor afine a pesquisa.',
466
-	'info_utilisation_messagerie_interne' => 'Você utiliza o correio interno deste sítio.',
467
-	'info_valider_lien' => 'validar esta ligação',
468
-	'info_verifier_image' => ', Por favor verifique se as suas imagens foram transferidas correctamente.',
469
-	'info_vignette_defaut' => 'Miniatura por defeito',
470
-	'info_vignette_personnalisee' => 'Miniatura personalizada',
471
-	'info_visite' => 'visita :',
472
-	'info_vos_rendez_vous' => 'Os seus futuros encontros',
473
-	'infos_vos_pense_bete' => 'Os seus memorandos',
445
+    'info_rechercher' => 'Procurar',
446
+    'info_rechercher_02' => 'Procurar :',
447
+    'info_remplacer_vignette' => 'Substituir a miniatura por defeito por um logotipo personalizado :',
448
+    'info_rubriques_nb' => '@nb@ rubricas',
449
+    'info_rubriques_un' => '1 rubrica',
450
+    'info_sans_titre_2' => 'sem título',
451
+    'info_selectionner_fichier' => 'Pode seleccionar um ficheiro da pasta @upload@',
452
+    'info_selectionner_fichier_2' => 'Seleccionar um ficheiro :',
453
+    'info_sites_nb' => '@nb@ sítios',
454
+    'info_sites_un' => '1 sítio',
455
+    'info_supprimer_vignette' => 'suprimir a miniatura',
456
+    'info_symbole_bleu' => 'O símbolo <b>azul</b> indica um<b>memorando </b>: isto é uma mensagem para o seu uso pessoal.',
457
+    'info_symbole_jaune' => 'O símbolo<b>amarelo</b> indica um <b>anúncio a todos os redactores</b> : modificável por todos os administradores, e visível por todos os redactores.',
458
+    'info_symbole_vert' => 'O símbolo<b>verde</b> indica as <b>mensagens trocadas com outros utilizadores</b> do sítio.',
459
+    'info_telecharger_nouveau_logo' => 'Telecarregar um novo logotipo :',
460
+    'info_telecharger_ordinateur' => 'Telecarregar do seu computador :',
461
+    'info_tous_resultats_enregistres' => '[todos os  resultados estão registados]',
462
+    'info_tout_afficher' => 'Exibir tudo',
463
+    'info_travaux_texte' => 'Este sítio ainda não está configurado. Volte mais tarde...',
464
+    'info_travaux_titre' => 'Sítio em construção',
465
+    'info_trop_resultat' => 'Demasiado resultados para "@cherche_mot@". Por favor afine a pesquisa.',
466
+    'info_utilisation_messagerie_interne' => 'Você utiliza o correio interno deste sítio.',
467
+    'info_valider_lien' => 'validar esta ligação',
468
+    'info_verifier_image' => ', Por favor verifique se as suas imagens foram transferidas correctamente.',
469
+    'info_vignette_defaut' => 'Miniatura por defeito',
470
+    'info_vignette_personnalisee' => 'Miniatura personalizada',
471
+    'info_visite' => 'visita :',
472
+    'info_vos_rendez_vous' => 'Os seus futuros encontros',
473
+    'infos_vos_pense_bete' => 'Os seus memorandos',
474 474
 
475
-	// L
476
-	'label_ajout_id_rapide' => 'Adição rápida',
477
-	'label_poids_fichier' => 'Dimensões',
478
-	'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
479
-	'lien_afficher_texte_icones' => 'Exibir ícones e o texto',
480
-	'lien_afficher_texte_seul' => 'Exibir apenas o texto',
481
-	'lien_liberer' => 'desbloquear',
482
-	'lien_liberer_tous' => 'desbloquear estes artigos',
483
-	'lien_nouvea_pense_bete' => 'NOVO MEMORANDO',
484
-	'lien_nouveau_message' => 'NOVA MENSAGEM',
485
-	'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
486
-	'lien_petitions' => 'PETIÇÃO',
487
-	'lien_popularite' => 'popularidade : @popularite@%',
488
-	'lien_racine_site' => 'RAIZ DO SÍTIO',
489
-	'lien_reessayer' => 'tentar de novo',
490
-	'lien_repondre_message' => 'Responder a esta mensagem',
491
-	'lien_supprimer' => 'eliminar',
492
-	'lien_tout_afficher' => 'Exibir tudo',
493
-	'lien_visite_site' => 'visitar este sítio',
494
-	'lien_visites' => '@visites@ visitas',
495
-	'lien_voir_auteur' => 'Ver este autor',
496
-	'ligne' => 'Linha',
497
-	'login' => 'Ligação',
498
-	'login_acces_prive' => 'acesso ao espaço privado',
499
-	'login_autre_identifiant' => 'ligar-se sob um outro identificador',
500
-	'login_cookie_accepte' => 'Por favor configure o seu navegador para que os aceite (pelo menos para este sítio).',
501
-	'login_cookie_oblige' => 'Para se identificar de maneira segura neste sítio, deve aceitar os cookies.',
502
-	'login_deconnexion_ok' => 'Ligação terminada.',
503
-	'login_erreur_pass' => 'Erro de palavra-passe',
504
-	'login_espace_prive' => 'área privada',
505
-	'login_identifiant_inconnu' => 'O identificador « @login@ » é desconhecido.',
506
-	'login_login' => 'Login :',
507
-	'login_login2' => 'Login ou endereço de e-mail :',
508
-	'login_login_pass_incorrect' => '(Login ou palavra-passe incorrecta.)',
509
-	'login_motpasseoublie' => 'palavra - passe esquecida ?',
510
-	'login_non_securise' => 'Atenção, este formulário não é seguro.
475
+    // L
476
+    'label_ajout_id_rapide' => 'Adição rápida',
477
+    'label_poids_fichier' => 'Dimensões',
478
+    'lien_afficher_icones_seuls' => 'Exibir apenas os ícones',
479
+    'lien_afficher_texte_icones' => 'Exibir ícones e o texto',
480
+    'lien_afficher_texte_seul' => 'Exibir apenas o texto',
481
+    'lien_liberer' => 'desbloquear',
482
+    'lien_liberer_tous' => 'desbloquear estes artigos',
483
+    'lien_nouvea_pense_bete' => 'NOVO MEMORANDO',
484
+    'lien_nouveau_message' => 'NOVA MENSAGEM',
485
+    'lien_nouvelle_annonce' => 'NOVO ANÚNCIO',
486
+    'lien_petitions' => 'PETIÇÃO',
487
+    'lien_popularite' => 'popularidade : @popularite@%',
488
+    'lien_racine_site' => 'RAIZ DO SÍTIO',
489
+    'lien_reessayer' => 'tentar de novo',
490
+    'lien_repondre_message' => 'Responder a esta mensagem',
491
+    'lien_supprimer' => 'eliminar',
492
+    'lien_tout_afficher' => 'Exibir tudo',
493
+    'lien_visite_site' => 'visitar este sítio',
494
+    'lien_visites' => '@visites@ visitas',
495
+    'lien_voir_auteur' => 'Ver este autor',
496
+    'ligne' => 'Linha',
497
+    'login' => 'Ligação',
498
+    'login_acces_prive' => 'acesso ao espaço privado',
499
+    'login_autre_identifiant' => 'ligar-se sob um outro identificador',
500
+    'login_cookie_accepte' => 'Por favor configure o seu navegador para que os aceite (pelo menos para este sítio).',
501
+    'login_cookie_oblige' => 'Para se identificar de maneira segura neste sítio, deve aceitar os cookies.',
502
+    'login_deconnexion_ok' => 'Ligação terminada.',
503
+    'login_erreur_pass' => 'Erro de palavra-passe',
504
+    'login_espace_prive' => 'área privada',
505
+    'login_identifiant_inconnu' => 'O identificador « @login@ » é desconhecido.',
506
+    'login_login' => 'Login :',
507
+    'login_login2' => 'Login ou endereço de e-mail :',
508
+    'login_login_pass_incorrect' => '(Login ou palavra-passe incorrecta.)',
509
+    'login_motpasseoublie' => 'palavra - passe esquecida ?',
510
+    'login_non_securise' => 'Atenção, este formulário não é seguro.
511 511
  Se não quiser que a sua palavra-passe seja
512 512
  interceptada na rede, por favor active Javascript
513 513
  no seu navegador e',
514
-	'login_nouvelle_tentative' => 'Nova tentativa',
515
-	'login_par_ici' => 'Você está registado... por aqui....',
516
-	'login_pass2' => 'Palavra-passe :',
517
-	'login_preferez_refuser' => '<b>Se prefere recusar os cookies</b>, um outro método de ligação (menos seguro) está à sua disposição',
518
-	'login_recharger' => 'carregar de novo esta página ',
519
-	'login_rester_identifie' => 'Permanecer identificado durante alguns dias ', # MODIF
520
-	'login_retour_public' => 'Regresso ao sítio público',
521
-	'login_retour_site' => 'Regresso ao sítio público',
522
-	'login_retoursitepublic' => 'Regresso ao sítio público',
523
-	'login_securise' => 'Login seguro',
524
-	'login_sinscrire' => 'inscrever-se', # MODIF
525
-	'login_test_navigateur' => 'teste navegação/nova ligação',
526
-	'login_verifiez_navigateur' => '(Verifique, porém, que o seu navegador não memorizou a sua palavra-passe...)',
514
+    'login_nouvelle_tentative' => 'Nova tentativa',
515
+    'login_par_ici' => 'Você está registado... por aqui....',
516
+    'login_pass2' => 'Palavra-passe :',
517
+    'login_preferez_refuser' => '<b>Se prefere recusar os cookies</b>, um outro método de ligação (menos seguro) está à sua disposição',
518
+    'login_recharger' => 'carregar de novo esta página ',
519
+    'login_rester_identifie' => 'Permanecer identificado durante alguns dias ', # MODIF
520
+    'login_retour_public' => 'Regresso ao sítio público',
521
+    'login_retour_site' => 'Regresso ao sítio público',
522
+    'login_retoursitepublic' => 'Regresso ao sítio público',
523
+    'login_securise' => 'Login seguro',
524
+    'login_sinscrire' => 'inscrever-se', # MODIF
525
+    'login_test_navigateur' => 'teste navegação/nova ligação',
526
+    'login_verifiez_navigateur' => '(Verifique, porém, que o seu navegador não memorizou a sua palavra-passe...)',
527 527
 
528
-	// M
529
-	'masquer_colonne' => 'Ocultar esta coluna',
530
-	'masquer_trad' => 'ocultar as traduções',
531
-	'module_fichiers_langues' => 'Ficheiros de idioma',
528
+    // M
529
+    'masquer_colonne' => 'Ocultar esta coluna',
530
+    'masquer_trad' => 'ocultar as traduções',
531
+    'module_fichiers_langues' => 'Ficheiros de idioma',
532 532
 
533
-	// N
534
-	'navigateur_pas_redirige' => 'Se o seu navegador não está redireccionado, clique aqui para continuar.',
535
-	'numero' => 'Número',
533
+    // N
534
+    'navigateur_pas_redirige' => 'Se o seu navegador não está redireccionado, clique aqui para continuar.',
535
+    'numero' => 'Número',
536 536
 
537
-	// O
538
-	'occurence' => 'Ocorrência',
539
-	'onglet_affacer_base' => 'Apagar a base de dados',
540
-	'onglet_auteur' => 'O autor',
541
-	'onglet_contenu_site' => 'Conteúdo do sítio',
542
-	'onglet_evolution_visite_mod' => 'Evolução',
543
-	'onglet_fonctions_avances' => 'Funções avançadas',
544
-	'onglet_informations_personnelles' => 'Informações pessoais',
545
-	'onglet_interactivite' => 'Interactividade',
546
-	'onglet_messagerie' => 'Correio',
547
-	'onglet_repartition_rubrique' => 'Distribuição das rubricas',
548
-	'onglet_save_restaur_base' => 'Guardar uma cópia/restaurar a base',
549
-	'onglet_vider_cache' => 'Esvaziar a cache',
537
+    // O
538
+    'occurence' => 'Ocorrência',
539
+    'onglet_affacer_base' => 'Apagar a base de dados',
540
+    'onglet_auteur' => 'O autor',
541
+    'onglet_contenu_site' => 'Conteúdo do sítio',
542
+    'onglet_evolution_visite_mod' => 'Evolução',
543
+    'onglet_fonctions_avances' => 'Funções avançadas',
544
+    'onglet_informations_personnelles' => 'Informações pessoais',
545
+    'onglet_interactivite' => 'Interactividade',
546
+    'onglet_messagerie' => 'Correio',
547
+    'onglet_repartition_rubrique' => 'Distribuição das rubricas',
548
+    'onglet_save_restaur_base' => 'Guardar uma cópia/restaurar a base',
549
+    'onglet_vider_cache' => 'Esvaziar a cache',
550 550
 
551
-	// P
552
-	'pass_choix_pass' => 'Por favor escolha a sua nova palavra-passe',
553
-	'pass_erreur' => 'Erro',
554
-	'pass_erreur_acces_refuse' => '<b>Erro :</b> já não tem acesso a este sítio.',
555
-	'pass_erreur_code_inconnu' => '<b>Erro :</b> este código não corresponde a nenhum dos visitantes com acesso a este sítio.',
556
-	'pass_erreur_non_enregistre' => '<b>Erro :</b> o endereço <tt>@email_oubli@</tt> não está registado neste sítio. ',
557
-	'pass_erreur_non_valide' => '<b>Erro :</b> este email <tt>@email_oubli@</tt> não é válido !  ',
558
-	'pass_erreur_probleme_technique' => '<b>Erro :</b> por causa de um problema técnico, o email não pôde ser enviado.',
559
-	'pass_espace_prive_bla' => 'O espaço privado deste sítio está aberto aos
551
+    // P
552
+    'pass_choix_pass' => 'Por favor escolha a sua nova palavra-passe',
553
+    'pass_erreur' => 'Erro',
554
+    'pass_erreur_acces_refuse' => '<b>Erro :</b> já não tem acesso a este sítio.',
555
+    'pass_erreur_code_inconnu' => '<b>Erro :</b> este código não corresponde a nenhum dos visitantes com acesso a este sítio.',
556
+    'pass_erreur_non_enregistre' => '<b>Erro :</b> o endereço <tt>@email_oubli@</tt> não está registado neste sítio. ',
557
+    'pass_erreur_non_valide' => '<b>Erro :</b> este email <tt>@email_oubli@</tt> não é válido !  ',
558
+    'pass_erreur_probleme_technique' => '<b>Erro :</b> por causa de um problema técnico, o email não pôde ser enviado.',
559
+    'pass_espace_prive_bla' => 'O espaço privado deste sítio está aberto aos
560 560
  visitantes, após inscrição. Uma vez registado poderá consultar os artigos em curso de redacção,
561 561
 propor artigos e participar em todos os fóruns.',
562
-	'pass_forum_bla' => 'Pediu para intervir num fórum
562
+    'pass_forum_bla' => 'Pediu para intervir num fórum
563 563
  reservado aos visitadores registados.',
564
-	'pass_indiquez_cidessous' => 'Indique abaixo o endereço email sob o qual se registou. Receberá
564
+    'pass_indiquez_cidessous' => 'Indique abaixo o endereço email sob o qual se registou. Receberá
565 565
  um mail que indicará o procedimento a seguir para
566 566
         recuperar o seu acesso.',
567
-	'pass_mail_passcookie' => '(esta é uma mensagem automática)
567
+    'pass_mail_passcookie' => '(esta é uma mensagem automática)
568 568
 Para recuperar o seu acesso ao sítio
569 569
 @nom_site_spip@ (@adresse_site@)
570 570
 
@@ -574,137 +574,137 @@  discard block
 block discarded – undo
574 574
 
575 575
 Poderá então introduzir uma nova palavra-passe e reconectar-se ao sítio.
576 576
 ',
577
-	'pass_mot_oublie' => 'Palavra-passe esquecida',
578
-	'pass_nouveau_enregistre' => 'A sua nova palavra-passe foi registada',
579
-	'pass_nouveau_pass' => 'Nova palavra-passe',
580
-	'pass_ok' => 'OK',
581
-	'pass_oubli_mot' => 'Palavra-passe esquecida',
582
-	'pass_procedure_changer' => 'Para alterar a sua palavra-passe, temos primeiro de verificar a sua identidade. Por favor escreva o endereço e-mail associado a esta conta.', # MODIF
583
-	'pass_quitter_fenetre' => 'Fechar esta janela',
584
-	'pass_rappel_login' => 'Recorde : o seu identificador (login) é « @login@ ».',
585
-	'pass_recevoir_mail' => 'Vai receber um email que indica como recuperar o seu acesso ao sítio.', # MODIF
586
-	'pass_retour_public' => 'Regresso ao sítio público',
587
-	'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
588
-	'pass_vousinscrire' => 'Inscrever-se neste sítio',
589
-	'precedent' => 'anterior',
590
-	'previsualisation' => 'Visualização',
591
-	'previsualiser' => 'Pré-visualizar',
577
+    'pass_mot_oublie' => 'Palavra-passe esquecida',
578
+    'pass_nouveau_enregistre' => 'A sua nova palavra-passe foi registada',
579
+    'pass_nouveau_pass' => 'Nova palavra-passe',
580
+    'pass_ok' => 'OK',
581
+    'pass_oubli_mot' => 'Palavra-passe esquecida',
582
+    'pass_procedure_changer' => 'Para alterar a sua palavra-passe, temos primeiro de verificar a sua identidade. Por favor escreva o endereço e-mail associado a esta conta.', # MODIF
583
+    'pass_quitter_fenetre' => 'Fechar esta janela',
584
+    'pass_rappel_login' => 'Recorde : o seu identificador (login) é « @login@ ».',
585
+    'pass_recevoir_mail' => 'Vai receber um email que indica como recuperar o seu acesso ao sítio.', # MODIF
586
+    'pass_retour_public' => 'Regresso ao sítio público',
587
+    'pass_rien_a_faire_ici' => 'Nada a fazer aqui.',
588
+    'pass_vousinscrire' => 'Inscrever-se neste sítio',
589
+    'precedent' => 'anterior',
590
+    'previsualisation' => 'Visualização',
591
+    'previsualiser' => 'Pré-visualizar',
592 592
 
593
-	// R
594
-	'retour' => 'Retroceder',
593
+    // R
594
+    'retour' => 'Retroceder',
595 595
 
596
-	// S
597
-	'spip_conforme_dtd' => 'SPIP considera esta página em conforme com o seu DOCTYPE :',
598
-	'squelette' => 'modelo',
599
-	'squelette_inclus_ligne' => 'modelo incluído, linha',
600
-	'squelette_ligne' => 'modelo, linha',
601
-	'stats_visites_et_popularite' => '@visites@ visitas ; popularidade : @popularite@',
602
-	'suivant' => 'seguinte',
596
+    // S
597
+    'spip_conforme_dtd' => 'SPIP considera esta página em conforme com o seu DOCTYPE :',
598
+    'squelette' => 'modelo',
599
+    'squelette_inclus_ligne' => 'modelo incluído, linha',
600
+    'squelette_ligne' => 'modelo, linha',
601
+    'stats_visites_et_popularite' => '@visites@ visitas ; popularidade : @popularite@',
602
+    'suivant' => 'seguinte',
603 603
 
604
-	// T
605
-	'taille_go' => '@taille@ Gb',
606
-	'taille_ko' => '@taille@ kb',
607
-	'taille_mo' => '@taille@ Mb',
608
-	'taille_octets' => ' @taille@ bytes',
609
-	'taille_octets_bi' => ' @taille@ bytes',
610
-	'texte_actualite_site_1' => 'Quando estiver familiarizado(a) com a interface, poderá clicar em «',
611
-	'texte_actualite_site_2' => 'interface completa',
612
-	'texte_actualite_site_3' => '» para abrir mais possibilidades.',
613
-	'texte_creation_automatique_vignette' => 'A criação automática de miniaturas de pré-visualização está activada neste sítio. Se instalar a partir deste formulário imagens de formato(s) @gd_formats@, serão acompanhadas de uma miniatura de um tamanho máximo de @taille_preview@ pixels.',
614
-	'texte_documents_associes' => 'Os documentos seguintes estão associados ao artigo,
604
+    // T
605
+    'taille_go' => '@taille@ Gb',
606
+    'taille_ko' => '@taille@ kb',
607
+    'taille_mo' => '@taille@ Mb',
608
+    'taille_octets' => ' @taille@ bytes',
609
+    'taille_octets_bi' => ' @taille@ bytes',
610
+    'texte_actualite_site_1' => 'Quando estiver familiarizado(a) com a interface, poderá clicar em «',
611
+    'texte_actualite_site_2' => 'interface completa',
612
+    'texte_actualite_site_3' => '» para abrir mais possibilidades.',
613
+    'texte_creation_automatique_vignette' => 'A criação automática de miniaturas de pré-visualização está activada neste sítio. Se instalar a partir deste formulário imagens de formato(s) @gd_formats@, serão acompanhadas de uma miniatura de um tamanho máximo de @taille_preview@ pixels.',
614
+    'texte_documents_associes' => 'Os documentos seguintes estão associados ao artigo,
615 615
   mas não foram directamente
616 616
  inseridos nele. Conforme a paginação do sítio público,
617 617
   poderão aparecer sob forma de documentos anexados.',
618
-	'texte_erreur_mise_niveau_base' => 'Erro de base de dados por ocasião do nivelamento.
618
+    'texte_erreur_mise_niveau_base' => 'Erro de base de dados por ocasião do nivelamento.
619 619
    A imagem <b>@fichier@</b> não passou (artigo @id_article@).
620 620
   Note bem esta referência, volte a tentar o nivelamento, e verifique se as imagens aparecem sempre nos artigos.',
621
-	'texte_erreur_visiteur' => 'Tentou aceder à área privada usando um login não autorizado.',
622
-	'texte_inc_auth_1' => 'Você está identificado sob o
621
+    'texte_erreur_visiteur' => 'Tentou aceder à área privada usando um login não autorizado.',
622
+    'texte_inc_auth_1' => 'Você está identificado sob o
623 623
    login <b>@auth_login@</b>, mas este já/ não existe na base de dados.
624 624
  Tente',
625
-	'texte_inc_auth_2' => 'refazer a ligação',
626
-	'texte_inc_auth_3' => ', depois de eventualmente ter fechado e
625
+    'texte_inc_auth_2' => 'refazer a ligação',
626
+    'texte_inc_auth_3' => ', depois de eventualmente ter fechado e
627 627
  voltado a abrir o seu navegador.',
628
-	'texte_inc_config' => 'As modificações efectuadas nestas páginas influenciam muito o
628
+    'texte_inc_config' => 'As modificações efectuadas nestas páginas influenciam muito o
629 629
  funcionamento do seu sítio. Recomendamos que não intervenha enquanto não estiver familiarizado com o funcionamento do sistema SPIP. <br /><br /><b> Em
630 630
  geral, é fortemente recomendado
631 631
  deixar a responsabilidade dessas páginas ao webmaster principal do seu sítio. <b>',
632
-	'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do sítio, por favor,',
633
-	'texte_inc_meta_2' => 'verificar as permissões de escrita',
634
-	'texte_inc_meta_3' => 'no directório <code>@repertoire@</code>.',
635
-	'texte_statut_en_cours_redaction' => 'em curso de redacção',
636
-	'texte_statut_poubelle' => 'para o caixote de lixo',
637
-	'texte_statut_propose_evaluation' => 'proposto para avaliação',
638
-	'texte_statut_publie' => 'publicado online',
639
-	'texte_statut_refuse' => 'recusado',
640
-	'titre_ajouter_mot_cle' => 'ACRESCENTAR UMA PALAVRA-CHAVE',
641
-	'titre_cadre_raccourcis' => 'ATALHOS :',
642
-	'titre_changer_couleur_interface' => 'Mudar a cor da interface',
643
-	'titre_image_admin_article' => 'Pode administrar este artigo',
644
-	'titre_image_administrateur' => 'Administrador',
645
-	'titre_image_aide' => 'Ajuda sobre este elemento',
646
-	'titre_image_auteur_supprime' => 'Autor eliminado',
647
-	'titre_image_redacteur' => 'Redactor sem acesso',
648
-	'titre_image_redacteur_02' => 'Redactor',
649
-	'titre_image_selecteur' => 'Exibir a lista',
650
-	'titre_image_visiteur' => 'Visitante',
651
-	'titre_joindre_document' => 'ANEXAR UM DOCUMENTO',
652
-	'titre_mots_cles' => 'PALAVRAS-CHAVE',
653
-	'titre_probleme_technique' => 'Atenção : um problema técnico (servidor SQL) impede o acesso a esta parte do sítio. Obrigado pela sua compreensão.',
654
-	'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA RUBRICA',
655
-	'titre_signatures_attente' => 'Assinaturas aguardando validação',
656
-	'titre_signatures_confirmees' => 'Assinaturas confirmadas',
657
-	'titre_statistiques' => 'Estatísticas do sítio',
658
-	'titre_titre_document' => 'Título do documento :',
659
-	'todo' => 'a caminho',
660
-	'trad_reference' => '(referência para as traduções)',
632
+    'texte_inc_meta_1' => 'O sistema encontrou um erro durante a escrita do arquivo <code>@fichier@</code>. Como administrador do sítio, por favor,',
633
+    'texte_inc_meta_2' => 'verificar as permissões de escrita',
634
+    'texte_inc_meta_3' => 'no directório <code>@repertoire@</code>.',
635
+    'texte_statut_en_cours_redaction' => 'em curso de redacção',
636
+    'texte_statut_poubelle' => 'para o caixote de lixo',
637
+    'texte_statut_propose_evaluation' => 'proposto para avaliação',
638
+    'texte_statut_publie' => 'publicado online',
639
+    'texte_statut_refuse' => 'recusado',
640
+    'titre_ajouter_mot_cle' => 'ACRESCENTAR UMA PALAVRA-CHAVE',
641
+    'titre_cadre_raccourcis' => 'ATALHOS :',
642
+    'titre_changer_couleur_interface' => 'Mudar a cor da interface',
643
+    'titre_image_admin_article' => 'Pode administrar este artigo',
644
+    'titre_image_administrateur' => 'Administrador',
645
+    'titre_image_aide' => 'Ajuda sobre este elemento',
646
+    'titre_image_auteur_supprime' => 'Autor eliminado',
647
+    'titre_image_redacteur' => 'Redactor sem acesso',
648
+    'titre_image_redacteur_02' => 'Redactor',
649
+    'titre_image_selecteur' => 'Exibir a lista',
650
+    'titre_image_visiteur' => 'Visitante',
651
+    'titre_joindre_document' => 'ANEXAR UM DOCUMENTO',
652
+    'titre_mots_cles' => 'PALAVRAS-CHAVE',
653
+    'titre_probleme_technique' => 'Atenção : um problema técnico (servidor SQL) impede o acesso a esta parte do sítio. Obrigado pela sua compreensão.',
654
+    'titre_publier_document' => 'PUBLICAR UM DOCUMENTO NESTA RUBRICA',
655
+    'titre_signatures_attente' => 'Assinaturas aguardando validação',
656
+    'titre_signatures_confirmees' => 'Assinaturas confirmadas',
657
+    'titre_statistiques' => 'Estatísticas do sítio',
658
+    'titre_titre_document' => 'Título do documento :',
659
+    'todo' => 'a caminho',
660
+    'trad_reference' => '(referência para as traduções)',
661 661
 
662
-	// Z
663
-	'zbug_balise_b_aval' => ': tag B colocada demasiado tarde no laço infinito',
664
-	'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
665
-	'zbug_balise_sans_argument' => 'Argumento em falta na tag @balise@',
666
-	'zbug_boucle' => 'laço infinito',
667
-	'zbug_boucle_recursive_undef' => 'laço recursivo não definido @nom@',
668
-	'zbug_calcul' => 'cálculo',
669
-	'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço infinito',
670
-	'zbug_champ_hors_motif' => 'Campo @champ@ fora de contexto @motif@',
671
-	'zbug_code' => 'código',
672
-	'zbug_critere_inconnu' => 'critério desconhecido @critere@ ',
673
-	'zbug_distant_interdit' => 'Dados externos interditos',
674
-	'zbug_doublon_table_sans_cle_primaire' => 'Entradas duplas numa tabela que não tem uma chave primária simples',
675
-	'zbug_doublon_table_sans_index' => 'Entradas duplas numa tabela sem índice',
676
-	'zbug_erreur_boucle_double' => 'laço @id@: Dupla definição ',
677
-	'zbug_erreur_boucle_fermant' => 'laço @id@: tag final em falta   ',
678
-	'zbug_erreur_boucle_syntaxe' => 'Laço com sintaxe incorrecta @id@',
679
-	'zbug_erreur_compilation' => 'Erro de compilação',
680
-	'zbug_erreur_execution_page' => 'erro de execução da página',
681
-	'zbug_erreur_filtre' => 'Erro : filtro indefinido @filtre@ ',
682
-	'zbug_erreur_meme_parent' => '{meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
683
-	'zbug_erreur_squelette' => 'Erro(s) no modelo',
684
-	'zbug_hors_compilation' => 'Não compilado',
685
-	'zbug_info_erreur_squelette' => 'Erro no sítio',
686
-	'zbug_inversion_ordre_inexistant' => 'inversão de uma ordem inexistente',
687
-	'zbug_pagination_sans_critere' => '#PAGINAÇÃO sem critério {paginação} ou usada num laço recursivo',
688
-	'zbug_parametres_inclus_incorrects' => 'Parâmetros de inclusão incorrectos: @param@',
689
-	'zbug_profile' => 'Cálculo de tempo : @time@',
690
-	'zbug_resultat' => 'resultado',
691
-	'zbug_serveur_indefini' => 'Sevidor SQL não definido',
692
-	'zbug_statistiques' => 'Estatísticas das consulta SQL classificadas por duração',
693
-	'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
694
-	'zxml_connus_attributs' => 'attributos conhecidos',
695
-	'zxml_de' => 'de',
696
-	'zxml_inconnu_attribut' => 'atributo desconhecido',
697
-	'zxml_inconnu_balise' => 'tag desconhecida',
698
-	'zxml_inconnu_entite' => 'entidade desconhecida',
699
-	'zxml_inconnu_id' => 'ID desconhecido',
700
-	'zxml_mais_de' => 'mas de',
701
-	'zxml_non_conforme' => 'não está de acordo com o princípio',
702
-	'zxml_non_fils' => 'não é um filho de ',
703
-	'zxml_nonvide_balise' => 'a tag não está vazia',
704
-	'zxml_obligatoire_attribut' => 'atributo obrigatório está em falta',
705
-	'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorrecta',
706
-	'zxml_survoler' => 'para visualizar os correctos, mover o rato por cima',
707
-	'zxml_valeur_attribut' => 'valor do atributo',
708
-	'zxml_vide_balise' => 'tag vazia',
709
-	'zxml_vu' => 'visualizado antes',
662
+    // Z
663
+    'zbug_balise_b_aval' => ': tag B colocada demasiado tarde no laço infinito',
664
+    'zbug_balise_inexistante' => 'Tag @balise@ mal declarada para @from@',
665
+    'zbug_balise_sans_argument' => 'Argumento em falta na tag @balise@',
666
+    'zbug_boucle' => 'laço infinito',
667
+    'zbug_boucle_recursive_undef' => 'laço recursivo não definido @nom@',
668
+    'zbug_calcul' => 'cálculo',
669
+    'zbug_champ_hors_boucle' => 'Campo @champ@ fora do laço infinito',
670
+    'zbug_champ_hors_motif' => 'Campo @champ@ fora de contexto @motif@',
671
+    'zbug_code' => 'código',
672
+    'zbug_critere_inconnu' => 'critério desconhecido @critere@ ',
673
+    'zbug_distant_interdit' => 'Dados externos interditos',
674
+    'zbug_doublon_table_sans_cle_primaire' => 'Entradas duplas numa tabela que não tem uma chave primária simples',
675
+    'zbug_doublon_table_sans_index' => 'Entradas duplas numa tabela sem índice',
676
+    'zbug_erreur_boucle_double' => 'laço @id@: Dupla definição ',
677
+    'zbug_erreur_boucle_fermant' => 'laço @id@: tag final em falta   ',
678
+    'zbug_erreur_boucle_syntaxe' => 'Laço com sintaxe incorrecta @id@',
679
+    'zbug_erreur_compilation' => 'Erro de compilação',
680
+    'zbug_erreur_execution_page' => 'erro de execução da página',
681
+    'zbug_erreur_filtre' => 'Erro : filtro indefinido @filtre@ ',
682
+    'zbug_erreur_meme_parent' => '{meme_parent} aplica-se exclusivamente aos laços (FORUMS) ou (RUBRIQUES)',
683
+    'zbug_erreur_squelette' => 'Erro(s) no modelo',
684
+    'zbug_hors_compilation' => 'Não compilado',
685
+    'zbug_info_erreur_squelette' => 'Erro no sítio',
686
+    'zbug_inversion_ordre_inexistant' => 'inversão de uma ordem inexistente',
687
+    'zbug_pagination_sans_critere' => '#PAGINAÇÃO sem critério {paginação} ou usada num laço recursivo',
688
+    'zbug_parametres_inclus_incorrects' => 'Parâmetros de inclusão incorrectos: @param@',
689
+    'zbug_profile' => 'Cálculo de tempo : @time@',
690
+    'zbug_resultat' => 'resultado',
691
+    'zbug_serveur_indefini' => 'Sevidor SQL não definido',
692
+    'zbug_statistiques' => 'Estatísticas das consulta SQL classificadas por duração',
693
+    'zbug_table_inconnue' => 'Tabela SQL «@table@» desconhecida',
694
+    'zxml_connus_attributs' => 'attributos conhecidos',
695
+    'zxml_de' => 'de',
696
+    'zxml_inconnu_attribut' => 'atributo desconhecido',
697
+    'zxml_inconnu_balise' => 'tag desconhecida',
698
+    'zxml_inconnu_entite' => 'entidade desconhecida',
699
+    'zxml_inconnu_id' => 'ID desconhecido',
700
+    'zxml_mais_de' => 'mas de',
701
+    'zxml_non_conforme' => 'não está de acordo com o princípio',
702
+    'zxml_non_fils' => 'não é um filho de ',
703
+    'zxml_nonvide_balise' => 'a tag não está vazia',
704
+    'zxml_obligatoire_attribut' => 'atributo obrigatório está em falta',
705
+    'zxml_succession_fils_incorrecte' => 'sucessão de filhos incorrecta',
706
+    'zxml_survoler' => 'para visualizar os correctos, mover o rato por cima',
707
+    'zxml_valeur_attribut' => 'valor do atributo',
708
+    'zxml_vide_balise' => 'tag vazia',
709
+    'zxml_vu' => 'visualizado antes',
710 710
 ];
Please login to merge, or discard this patch.
ecrire/lang/public_fr.php 1 patch
Indentation   +114 added lines, -114 removed lines patch added patch discarded remove patch
@@ -4,118 +4,118 @@
 block discarded – undo
4 4
 
5 5
 return [
6 6
 
7
-	// A
8
-	'accueil_site' => 'Accueil',
9
-	'article' => 'Article',
10
-	'articles' => 'Articles',
11
-	'articles_auteur' => 'Articles de cet auteur',
12
-	'articles_populaires' => 'Articles les plus populaires',
13
-	'articles_rubrique' => 'Articles de cette rubrique',
14
-	'aucun_article' => 'Il n’y a pas d’article à cette adresse',
15
-	'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse',
16
-	'aucun_site' => 'Il n’y a pas de site à cette adresse',
17
-	'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
18
-	'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
19
-	'auteur' => 'Auteur',
20
-	'autres' => 'Autres',
21
-	'autres_breves' => 'Autres brèves',
22
-	'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
23
-	'autres_sites' => 'Autres sites',
24
-
25
-	// B
26
-	'bonjour' => 'Bonjour',
27
-
28
-	// C
29
-	'commenter_site' => 'Commenter ce site',
30
-	'contact' => 'Contact',
31
-	'copie_document_impossible' => 'Impossible de copier le document',
32
-
33
-	// D
34
-	'date' => 'Date',
35
-	'dernier_ajout' => 'Dernier ajout',
36
-	'dernieres_breves' => 'Dernières brèves',
37
-	'derniers_articles' => 'Derniers articles',
38
-	'derniers_commentaires' => 'Derniers commentaires',
39
-	'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
40
-
41
-	// E
42
-	'edition_mode_texte' => 'Édition en mode texte de',
43
-	'en_reponse' => 'En réponse à :',
44
-	'en_resume' => 'En résumé',
45
-	'envoyer_message' => 'Envoyer un message',
46
-	'espace_prive' => 'Espace privé',
47
-
48
-	// F
49
-	'formats_acceptes' => 'Formats acceptés : @formats@.',
50
-
51
-	// H
52
-	'hierarchie_site' => 'Hiérarchie du site',
53
-
54
-	// J
55
-	'jours' => 'jours',
56
-
57
-	// L
58
-	'lien_connecter' => 'Se connecter',
59
-
60
-	// M
61
-	'meme_auteur' => 'Du même auteur',
62
-	'meme_rubrique' => 'Dans la même rubrique',
63
-	'memes_auteurs' => 'Des mêmes auteurs',
64
-	'message' => 'Message',
65
-	'messages_forum' => 'Messages',
66
-	'messages_recents' => 'Messages de forums les plus récents',
67
-	'mots_clef' => 'Mot-clé',
68
-	'mots_clefs' => 'Mots-clés',
69
-	'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
70
-
71
-	// N
72
-	'navigation' => 'Navigation',
73
-	'nom' => 'Nom',
74
-	'nouveautes' => 'Les nouveautés',
75
-	'nouveautes_web' => 'Nouveautés sur le Web',
76
-	'nouveaux_articles' => 'Nouveaux articles',
77
-	'nouvelles_breves' => 'Nouvelles brèves',
78
-
79
-	// P
80
-	'page_precedente' => 'page précédente',
81
-	'page_suivante' => 'page suivante',
82
-	'par_auteur' => 'par ',
83
-	'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.',
84
-	'plan_site' => 'Plan du site',
85
-	'popularite' => 'Popularité',
86
-	'poster_message' => 'Poster un message',
87
-	'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
88
-
89
-	// R
90
-	'repondre_article' => 'Répondre à cet article',
91
-	'repondre_breve' => 'Répondre à cette brève',
92
-	'resultats_recherche' => 'Résultats de la recherche',
93
-	'retour_debut_forums' => 'Retour au début des forums',
94
-	'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
95
-	'rss_abonnement_titre' => 'S’abonner',
96
-	'rss_abonnement_titre_page' => 'S’abonner à',
97
-	'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.',
98
-	'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
99
-	'rubrique' => 'Rubrique',
100
-	'rubriques' => 'Rubriques',
101
-
102
-	// S
103
-	'signatures_petition' => 'Signatures',
104
-	'site_realise_avec_spip' => 'Site réalisé avec SPIP',
105
-	'sites_web' => 'Sites Web',
106
-	'sous_rubriques' => 'Sous-rubriques',
107
-	'spam' => 'Spam',
108
-	'suite' => 'suite',
109
-	'sur_web' => 'Sur le Web',
110
-	'syndiquer_rubrique' => 'Syndiquer cette rubrique',
111
-	'syndiquer_site' => 'Syndiquer tout le site',
112
-
113
-	// T
114
-	'texte_lettre_information' => 'Voici la lettre d’information du site',
115
-	'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
116
-
117
-	// V
118
-	'ver_imprimer' => 'Version à imprimer',
119
-	'voir_en_ligne' => 'Voir en ligne',
120
-	'voir_squelette' => 'voir le squelette de cette page',
7
+    // A
8
+    'accueil_site' => 'Accueil',
9
+    'article' => 'Article',
10
+    'articles' => 'Articles',
11
+    'articles_auteur' => 'Articles de cet auteur',
12
+    'articles_populaires' => 'Articles les plus populaires',
13
+    'articles_rubrique' => 'Articles de cette rubrique',
14
+    'aucun_article' => 'Il n’y a pas d’article à cette adresse',
15
+    'aucun_auteur' => 'Il n’y a pas d’auteur à cette adresse',
16
+    'aucun_site' => 'Il n’y a pas de site à cette adresse',
17
+    'aucune_breve' => 'Il n’y a pas de brève à cette adresse',
18
+    'aucune_rubrique' => 'Il n’y a pas de rubrique à cette adresse',
19
+    'auteur' => 'Auteur',
20
+    'autres' => 'Autres',
21
+    'autres_breves' => 'Autres brèves',
22
+    'autres_groupes_mots_clefs' => 'Autres groupes de mots-clés',
23
+    'autres_sites' => 'Autres sites',
24
+
25
+    // B
26
+    'bonjour' => 'Bonjour',
27
+
28
+    // C
29
+    'commenter_site' => 'Commenter ce site',
30
+    'contact' => 'Contact',
31
+    'copie_document_impossible' => 'Impossible de copier le document',
32
+
33
+    // D
34
+    'date' => 'Date',
35
+    'dernier_ajout' => 'Dernier ajout',
36
+    'dernieres_breves' => 'Dernières brèves',
37
+    'derniers_articles' => 'Derniers articles',
38
+    'derniers_commentaires' => 'Derniers commentaires',
39
+    'derniers_messages_forum' => 'Derniers messages publiés dans les forums',
40
+
41
+    // E
42
+    'edition_mode_texte' => 'Édition en mode texte de',
43
+    'en_reponse' => 'En réponse à :',
44
+    'en_resume' => 'En résumé',
45
+    'envoyer_message' => 'Envoyer un message',
46
+    'espace_prive' => 'Espace privé',
47
+
48
+    // F
49
+    'formats_acceptes' => 'Formats acceptés : @formats@.',
50
+
51
+    // H
52
+    'hierarchie_site' => 'Hiérarchie du site',
53
+
54
+    // J
55
+    'jours' => 'jours',
56
+
57
+    // L
58
+    'lien_connecter' => 'Se connecter',
59
+
60
+    // M
61
+    'meme_auteur' => 'Du même auteur',
62
+    'meme_rubrique' => 'Dans la même rubrique',
63
+    'memes_auteurs' => 'Des mêmes auteurs',
64
+    'message' => 'Message',
65
+    'messages_forum' => 'Messages',
66
+    'messages_recents' => 'Messages de forums les plus récents',
67
+    'mots_clef' => 'Mot-clé',
68
+    'mots_clefs' => 'Mots-clés',
69
+    'mots_clefs_meme_groupe' => 'Mots-clés dans le même groupe',
70
+
71
+    // N
72
+    'navigation' => 'Navigation',
73
+    'nom' => 'Nom',
74
+    'nouveautes' => 'Les nouveautés',
75
+    'nouveautes_web' => 'Nouveautés sur le Web',
76
+    'nouveaux_articles' => 'Nouveaux articles',
77
+    'nouvelles_breves' => 'Nouvelles brèves',
78
+
79
+    // P
80
+    'page_precedente' => 'page précédente',
81
+    'page_suivante' => 'page suivante',
82
+    'par_auteur' => 'par ',
83
+    '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.',
84
+    'plan_site' => 'Plan du site',
85
+    'popularite' => 'Popularité',
86
+    'poster_message' => 'Poster un message',
87
+    'proposer_site' => 'Vous pouvez proposer un site à ajouter dans cette rubrique :',
88
+
89
+    // R
90
+    'repondre_article' => 'Répondre à cet article',
91
+    'repondre_breve' => 'Répondre à cette brève',
92
+    'resultats_recherche' => 'Résultats de la recherche',
93
+    'retour_debut_forums' => 'Retour au début des forums',
94
+    'rss_abonnement' => 'Copiez l’URL suivante dans votre agrégateur :',
95
+    'rss_abonnement_titre' => 'S’abonner',
96
+    'rss_abonnement_titre_page' => 'S’abonner à',
97
+    '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.',
98
+    'rss_explication_titre' => 'Qu’est-ce qu’un flux RSS ?',
99
+    'rubrique' => 'Rubrique',
100
+    'rubriques' => 'Rubriques',
101
+
102
+    // S
103
+    'signatures_petition' => 'Signatures',
104
+    'site_realise_avec_spip' => 'Site réalisé avec SPIP',
105
+    'sites_web' => 'Sites Web',
106
+    'sous_rubriques' => 'Sous-rubriques',
107
+    'spam' => 'Spam',
108
+    'suite' => 'suite',
109
+    'sur_web' => 'Sur le Web',
110
+    'syndiquer_rubrique' => 'Syndiquer cette rubrique',
111
+    'syndiquer_site' => 'Syndiquer tout le site',
112
+
113
+    // T
114
+    'texte_lettre_information' => 'Voici la lettre d’information du site',
115
+    'texte_lettre_information_2' => 'Cette lettre recense les nouveautés publiées depuis',
116
+
117
+    // V
118
+    'ver_imprimer' => 'Version à imprimer',
119
+    'voir_en_ligne' => 'Voir en ligne',
120
+    'voir_squelette' => 'voir le squelette de cette page',
121 121
 ];
Please login to merge, or discard this patch.
ecrire/inc/queue.php 2 patches
Indentation   +474 added lines, -474 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * @package SPIP\Core\Queue
16 16
  **/
17 17
 if (!defined('_ECRIRE_INC_VERSION')) {
18
-	return;
18
+    return;
19 19
 }
20 20
 
21 21
 define('_JQ_SCHEDULED', 1);
@@ -49,101 +49,101 @@  discard block
 block discarded – undo
49 49
  *  id of job
50 50
  */
51 51
 function queue_add_job(
52
-	$function,
53
-	$description,
54
-	$arguments = [],
55
-	$file = '',
56
-	$no_duplicate = false,
57
-	$time = 0,
58
-	$priority = 0
52
+    $function,
53
+    $description,
54
+    $arguments = [],
55
+    $file = '',
56
+    $no_duplicate = false,
57
+    $time = 0,
58
+    $priority = 0
59 59
 ) {
60
-	include_spip('base/abstract_sql');
61
-
62
-	// cas pourri de ecrire/action/editer_site avec l'option reload=oui
63
-	if (defined('_GENIE_SYNDIC_NOW')) {
64
-		$arguments['id_syndic'] = _GENIE_SYNDIC_NOW;
65
-	}
66
-
67
-	// serialiser les arguments
68
-	$arguments = serialize($arguments);
69
-	$md5args = md5($arguments);
70
-
71
-	// si pas de date programee, des que possible
72
-	$duplicate_where = 'status=' . intval(_JQ_SCHEDULED) . ' AND ';
73
-	if (!$time) {
74
-		$time = time();
75
-		$duplicate_where = ''; // ne pas dupliquer si deja le meme job en cours d'execution
76
-	}
77
-	$date = date('Y-m-d H:i:s', $time);
78
-
79
-	$set_job = [
80
-		'fonction' => $function,
81
-		'descriptif' => $description,
82
-		'args' => $arguments,
83
-		'md5args' => $md5args,
84
-		'inclure' => $file,
85
-		'priorite' => max(-10, min(10, intval($priority))),
86
-		'date' => $date,
87
-		'status' => _JQ_SCHEDULED,
88
-	];
89
-	// si option ne pas dupliquer, regarder si la fonction existe deja
90
-	// avec les memes args et file
91
-	if (
92
-		$no_duplicate
93
-		&& ($id_job = sql_getfetsel(
94
-			'id_job',
95
-			'spip_jobs',
96
-			$duplicate_where =
97
-				$duplicate_where . 'fonction=' . sql_quote($function)
98
-				. (($no_duplicate === 'function_only') ? '' :
99
-			' AND md5args=' . sql_quote($md5args) . ' AND inclure=' . sql_quote($file))
100
-		))
101
-	) {
102
-		return $id_job;
103
-	}
104
-
105
-	$id_job = sql_insertq('spip_jobs', $set_job);
106
-	// en cas de concurrence, deux process peuvent arriver jusqu'ici en parallele
107
-	// avec le meme job unique a inserer. Dans ce cas, celui qui a eu l'id le plus grand
108
-	// doit s'effacer
109
-	if (
110
-		$no_duplicate
111
-		&& ($id_prev = sql_getfetsel('id_job', 'spip_jobs', 'id_job<' . intval($id_job) . " AND $duplicate_where"))
112
-	) {
113
-		sql_delete('spip_jobs', 'id_job=' . intval($id_job));
114
-
115
-		return $id_prev;
116
-	}
117
-
118
-	// verifier la non duplication qui peut etre problematique en cas de concurence
119
-	// il faut dans ce cas que seul le dernier ajoute se supprime !
120
-
121
-	// une option de debug pour verifier que les arguments en base sont bons
122
-	// ie cas d'un char non acceptables sur certains type de champs
123
-	// qui coupe la valeur
124
-	if (defined('_JQ_INSERT_CHECK_ARGS') && $id_job) {
125
-		$args = sql_getfetsel('args', 'spip_jobs', 'id_job=' . intval($id_job));
126
-		if ($args !== $arguments) {
127
-			spip_log('arguments job errones / longueur ' . strlen($args) . ' vs ' . strlen($arguments) . ' / valeur : ' . var_export(
128
-				$arguments,
129
-				true
130
-			), 'queue');
131
-		}
132
-	}
133
-
134
-	if ($id_job) {
135
-		queue_update_next_job_time($time);
136
-	}
137
-	// si la mise en file d'attente du job echoue,
138
-	// il ne faut pas perdre l'execution de la fonction
139
-	// on la lance immediatement, c'est un fallback
140
-	// sauf en cas d'upgrade necessaire (table spip_jobs inexistante)
141
-	elseif ($GLOBALS['meta']['version_installee'] == $GLOBALS['spip_version_base']) {
142
-		$set_job['id_job'] = 0;
143
-		queue_start_job($set_job);
144
-	}
145
-
146
-	return $id_job;
60
+    include_spip('base/abstract_sql');
61
+
62
+    // cas pourri de ecrire/action/editer_site avec l'option reload=oui
63
+    if (defined('_GENIE_SYNDIC_NOW')) {
64
+        $arguments['id_syndic'] = _GENIE_SYNDIC_NOW;
65
+    }
66
+
67
+    // serialiser les arguments
68
+    $arguments = serialize($arguments);
69
+    $md5args = md5($arguments);
70
+
71
+    // si pas de date programee, des que possible
72
+    $duplicate_where = 'status=' . intval(_JQ_SCHEDULED) . ' AND ';
73
+    if (!$time) {
74
+        $time = time();
75
+        $duplicate_where = ''; // ne pas dupliquer si deja le meme job en cours d'execution
76
+    }
77
+    $date = date('Y-m-d H:i:s', $time);
78
+
79
+    $set_job = [
80
+        'fonction' => $function,
81
+        'descriptif' => $description,
82
+        'args' => $arguments,
83
+        'md5args' => $md5args,
84
+        'inclure' => $file,
85
+        'priorite' => max(-10, min(10, intval($priority))),
86
+        'date' => $date,
87
+        'status' => _JQ_SCHEDULED,
88
+    ];
89
+    // si option ne pas dupliquer, regarder si la fonction existe deja
90
+    // avec les memes args et file
91
+    if (
92
+        $no_duplicate
93
+        && ($id_job = sql_getfetsel(
94
+            'id_job',
95
+            'spip_jobs',
96
+            $duplicate_where =
97
+                $duplicate_where . 'fonction=' . sql_quote($function)
98
+                . (($no_duplicate === 'function_only') ? '' :
99
+            ' AND md5args=' . sql_quote($md5args) . ' AND inclure=' . sql_quote($file))
100
+        ))
101
+    ) {
102
+        return $id_job;
103
+    }
104
+
105
+    $id_job = sql_insertq('spip_jobs', $set_job);
106
+    // en cas de concurrence, deux process peuvent arriver jusqu'ici en parallele
107
+    // avec le meme job unique a inserer. Dans ce cas, celui qui a eu l'id le plus grand
108
+    // doit s'effacer
109
+    if (
110
+        $no_duplicate
111
+        && ($id_prev = sql_getfetsel('id_job', 'spip_jobs', 'id_job<' . intval($id_job) . " AND $duplicate_where"))
112
+    ) {
113
+        sql_delete('spip_jobs', 'id_job=' . intval($id_job));
114
+
115
+        return $id_prev;
116
+    }
117
+
118
+    // verifier la non duplication qui peut etre problematique en cas de concurence
119
+    // il faut dans ce cas que seul le dernier ajoute se supprime !
120
+
121
+    // une option de debug pour verifier que les arguments en base sont bons
122
+    // ie cas d'un char non acceptables sur certains type de champs
123
+    // qui coupe la valeur
124
+    if (defined('_JQ_INSERT_CHECK_ARGS') && $id_job) {
125
+        $args = sql_getfetsel('args', 'spip_jobs', 'id_job=' . intval($id_job));
126
+        if ($args !== $arguments) {
127
+            spip_log('arguments job errones / longueur ' . strlen($args) . ' vs ' . strlen($arguments) . ' / valeur : ' . var_export(
128
+                $arguments,
129
+                true
130
+            ), 'queue');
131
+        }
132
+    }
133
+
134
+    if ($id_job) {
135
+        queue_update_next_job_time($time);
136
+    }
137
+    // si la mise en file d'attente du job echoue,
138
+    // il ne faut pas perdre l'execution de la fonction
139
+    // on la lance immediatement, c'est un fallback
140
+    // sauf en cas d'upgrade necessaire (table spip_jobs inexistante)
141
+    elseif ($GLOBALS['meta']['version_installee'] == $GLOBALS['spip_version_base']) {
142
+        $set_job['id_job'] = 0;
143
+        queue_start_job($set_job);
144
+    }
145
+
146
+    return $id_job;
147 147
 }
148 148
 
149 149
 /**
@@ -152,11 +152,11 @@  discard block
 block discarded – undo
152 152
  * @return void
153 153
  */
154 154
 function queue_purger() {
155
-	include_spip('base/abstract_sql');
156
-	sql_delete('spip_jobs');
157
-	sql_delete('spip_jobs_liens', 'id_job NOT IN (' . sql_get_select('id_job', 'spip_jobs') . ')');
158
-	include_spip('inc/genie');
159
-	genie_queue_watch_dist();
155
+    include_spip('base/abstract_sql');
156
+    sql_delete('spip_jobs');
157
+    sql_delete('spip_jobs_liens', 'id_job NOT IN (' . sql_get_select('id_job', 'spip_jobs') . ')');
158
+    include_spip('inc/genie');
159
+    genie_queue_watch_dist();
160 160
 }
161 161
 
162 162
 /**
@@ -167,25 +167,25 @@  discard block
 block discarded – undo
167 167
  * @return int|bool
168 168
  */
169 169
 function queue_remove_job($id_job) {
170
-	include_spip('base/abstract_sql');
171
-
172
-	if (
173
-		($row = sql_fetsel('fonction,inclure,date', 'spip_jobs', 'id_job=' . intval($id_job)))
174
-		&& ($res = sql_delete('spip_jobs', 'id_job=' . intval($id_job)))
175
-	) {
176
-		queue_unlink_job($id_job);
177
-		// est-ce une tache cron qu'il faut relancer ?
178
-		if ($periode = queue_is_cron_job($row['fonction'], $row['inclure'])) {
179
-			// relancer avec les nouveaux arguments de temps
180
-			include_spip('inc/genie');
181
-			// relancer avec la periode prevue
182
-			queue_genie_replan_job($row['fonction'], $periode, strtotime($row['date']));
183
-		}
184
-		queue_update_next_job_time();
185
-		return $res;
186
-	}
187
-
188
-	return false;
170
+    include_spip('base/abstract_sql');
171
+
172
+    if (
173
+        ($row = sql_fetsel('fonction,inclure,date', 'spip_jobs', 'id_job=' . intval($id_job)))
174
+        && ($res = sql_delete('spip_jobs', 'id_job=' . intval($id_job)))
175
+    ) {
176
+        queue_unlink_job($id_job);
177
+        // est-ce une tache cron qu'il faut relancer ?
178
+        if ($periode = queue_is_cron_job($row['fonction'], $row['inclure'])) {
179
+            // relancer avec les nouveaux arguments de temps
180
+            include_spip('inc/genie');
181
+            // relancer avec la periode prevue
182
+            queue_genie_replan_job($row['fonction'], $periode, strtotime($row['date']));
183
+        }
184
+        queue_update_next_job_time();
185
+        return $res;
186
+    }
187
+
188
+    return false;
189 189
 }
190 190
 
191 191
 /**
@@ -198,18 +198,18 @@  discard block
 block discarded – undo
198 198
  *  ou un tableau composé de tableaux simples pour lieur plusieurs objets en une fois
199 199
  */
200 200
 function queue_link_job($id_job, $objets) {
201
-	include_spip('base/abstract_sql');
202
-
203
-	if (is_array($objets) && count($objets)) {
204
-		if (is_array(reset($objets))) {
205
-			foreach ($objets as $k => $o) {
206
-				$objets[$k]['id_job'] = $id_job;
207
-			}
208
-			sql_insertq_multi('spip_jobs_liens', $objets);
209
-		} else {
210
-			sql_insertq('spip_jobs_liens', array_merge(['id_job' => $id_job], $objets));
211
-		}
212
-	}
201
+    include_spip('base/abstract_sql');
202
+
203
+    if (is_array($objets) && count($objets)) {
204
+        if (is_array(reset($objets))) {
205
+            foreach ($objets as $k => $o) {
206
+                $objets[$k]['id_job'] = $id_job;
207
+            }
208
+            sql_insertq_multi('spip_jobs_liens', $objets);
209
+        } else {
210
+            sql_insertq('spip_jobs_liens', array_merge(['id_job' => $id_job], $objets));
211
+        }
212
+    }
213 213
 }
214 214
 
215 215
 /**
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
  *  resultat du sql_delete
222 222
  */
223 223
 function queue_unlink_job($id_job) {
224
-	return sql_delete('spip_jobs_liens', 'id_job=' . intval($id_job));
224
+    return sql_delete('spip_jobs_liens', 'id_job=' . intval($id_job));
225 225
 }
226 226
 
227 227
 /**
@@ -234,36 +234,36 @@  discard block
 block discarded – undo
234 234
  */
235 235
 function queue_start_job($row) {
236 236
 
237
-	// deserialiser les arguments
238
-	$args = unserialize($row['args']);
239
-	if (!is_array($args)) {
240
-		spip_log('arguments job errones ' . var_export($row, true), 'queue');
241
-		return false;
242
-	}
243
-
244
-	$fonction = $row['fonction'];
245
-	if (strlen($inclure = trim($row['inclure']))) {
246
-		if (str_ends_with($inclure, '/')) { // c'est un chemin pour charger_fonction
247
-			$f = charger_fonction($fonction, rtrim($inclure, '/'), false);
248
-			if ($f) {
249
-				$fonction = $f;
250
-			}
251
-		} else {
252
-			include_spip($inclure);
253
-		}
254
-	}
255
-
256
-	if (!function_exists($fonction)) {
257
-		spip_log("fonction $fonction ($inclure) inexistante " . var_export($row, true), 'queue');
258
-
259
-		return false;
260
-	}
261
-
262
-	spip_log('queue [' . $row['id_job'] . "]: $fonction() start", 'queue');
263
-	$res = $fonction(...$args);
264
-	spip_log('queue [' . $row['id_job'] . "]: $fonction() end", 'queue');
265
-
266
-	return $res;
237
+    // deserialiser les arguments
238
+    $args = unserialize($row['args']);
239
+    if (!is_array($args)) {
240
+        spip_log('arguments job errones ' . var_export($row, true), 'queue');
241
+        return false;
242
+    }
243
+
244
+    $fonction = $row['fonction'];
245
+    if (strlen($inclure = trim($row['inclure']))) {
246
+        if (str_ends_with($inclure, '/')) { // c'est un chemin pour charger_fonction
247
+            $f = charger_fonction($fonction, rtrim($inclure, '/'), false);
248
+            if ($f) {
249
+                $fonction = $f;
250
+            }
251
+        } else {
252
+            include_spip($inclure);
253
+        }
254
+    }
255
+
256
+    if (!function_exists($fonction)) {
257
+        spip_log("fonction $fonction ($inclure) inexistante " . var_export($row, true), 'queue');
258
+
259
+        return false;
260
+    }
261
+
262
+    spip_log('queue [' . $row['id_job'] . "]: $fonction() start", 'queue');
263
+    $res = $fonction(...$args);
264
+    spip_log('queue [' . $row['id_job'] . "]: $fonction() end", 'queue');
265
+
266
+    return $res;
267 267
 }
268 268
 
269 269
 /**
@@ -290,89 +290,89 @@  discard block
 block discarded – undo
290 290
  *     - true : une planification a été faite.
291 291
  */
292 292
 function queue_schedule($force_jobs = null) {
293
-	$time = time();
294
-	if (defined('_DEBUG_BLOCK_QUEUE')) {
295
-		spip_log('_DEBUG_BLOCK_QUEUE : schedule stop', 'jq' . _LOG_DEBUG);
296
-
297
-		return;
298
-	}
299
-
300
-	// rien a faire si le prochain job est encore dans le futur
301
-	if (queue_sleep_time_to_next_job() > 0 && (!$force_jobs || !count($force_jobs))) {
302
-		spip_log('queue_sleep_time_to_next_job', 'jq' . _LOG_DEBUG);
303
-
304
-		return;
305
-	}
306
-
307
-	include_spip('base/abstract_sql');
308
-	// on ne peut rien faire si pas de connexion SQL
309
-	if (!spip_connect()) {
310
-		return false;
311
-	}
312
-
313
-	if (!defined('_JQ_MAX_JOBS_TIME_TO_EXECUTE')) {
314
-		$max_time = ini_get('max_execution_time') / 2;
315
-		// valeur conservatrice si on a pas reussi a lire le max_execution_time
316
-		if (!$max_time) {
317
-			$max_time = 5;
318
-		}
319
-		define('_JQ_MAX_JOBS_TIME_TO_EXECUTE', min($max_time, 15)); // une valeur maxi en temps.
320
-	}
321
-	$end_time = $time + _JQ_MAX_JOBS_TIME_TO_EXECUTE;
322
-
323
-	spip_log("JQ schedule $time / $end_time", 'jq' . _LOG_DEBUG);
324
-
325
-	if (!defined('_JQ_MAX_JOBS_EXECUTE')) {
326
-		define('_JQ_MAX_JOBS_EXECUTE', 200);
327
-	}
328
-	$nbj = 0;
329
-	// attraper les jobs
330
-	// dont la date est passee (echus en attente),
331
-	// par ordre :
332
-	//	- de priorite
333
-	//	- de date
334
-	// lorsqu'un job cron n'a pas fini, sa priorite est descendue
335
-	// pour qu'il ne bloque pas les autres jobs en attente
336
-	if (is_array($force_jobs) && count($force_jobs)) {
337
-		$cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND ' . sql_in('id_job', $force_jobs);
338
-	} else {
339
-		$now = date('Y-m-d H:i:s', $time);
340
-		$cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND date<=' . sql_quote($now);
341
-	}
342
-
343
-	register_shutdown_function('queue_error_handler'); // recuperer les erreurs auant que possible
344
-	$res = sql_allfetsel('*', 'spip_jobs', $cond, '', 'priorite DESC,date', '0,' . (_JQ_MAX_JOBS_EXECUTE + 1));
345
-	do {
346
-		if ($row = array_shift($res)) {
347
-			$nbj++;
348
-			// il faut un verrou, a base de sql_delete
349
-			if (sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']) . ' AND status=' . intval(_JQ_SCHEDULED))) {
350
-				#spip_log("JQ schedule job ".$nbj." OK",'jq');
351
-				// on reinsert dans la base aussitot avec un status=_JQ_PENDING
352
-				$row['status'] = _JQ_PENDING;
353
-				$row['date'] = date('Y-m-d H:i:s', $time);
354
-				sql_insertq('spip_jobs', $row);
355
-
356
-				// on a la main sur le job :
357
-				// l'executer
358
-				$result = queue_start_job($row);
359
-
360
-				$time = time();
361
-				queue_close_job($row, $time, $result);
362
-			}
363
-		}
364
-		spip_log('JQ schedule job end time ' . $time, 'jq' . _LOG_DEBUG);
365
-	} while ($nbj < _JQ_MAX_JOBS_EXECUTE && $row && $time < $end_time);
366
-	spip_log('JQ schedule end time ' . time(), 'jq' . _LOG_DEBUG);
367
-
368
-	if ($row = array_shift($res)) {
369
-		queue_update_next_job_time(0); // on sait qu'il y a encore des jobs a lancer ASAP
370
-		spip_log('JQ encore !', 'jq' . _LOG_DEBUG);
371
-	} else {
372
-		queue_update_next_job_time();
373
-	}
374
-
375
-	return true;
293
+    $time = time();
294
+    if (defined('_DEBUG_BLOCK_QUEUE')) {
295
+        spip_log('_DEBUG_BLOCK_QUEUE : schedule stop', 'jq' . _LOG_DEBUG);
296
+
297
+        return;
298
+    }
299
+
300
+    // rien a faire si le prochain job est encore dans le futur
301
+    if (queue_sleep_time_to_next_job() > 0 && (!$force_jobs || !count($force_jobs))) {
302
+        spip_log('queue_sleep_time_to_next_job', 'jq' . _LOG_DEBUG);
303
+
304
+        return;
305
+    }
306
+
307
+    include_spip('base/abstract_sql');
308
+    // on ne peut rien faire si pas de connexion SQL
309
+    if (!spip_connect()) {
310
+        return false;
311
+    }
312
+
313
+    if (!defined('_JQ_MAX_JOBS_TIME_TO_EXECUTE')) {
314
+        $max_time = ini_get('max_execution_time') / 2;
315
+        // valeur conservatrice si on a pas reussi a lire le max_execution_time
316
+        if (!$max_time) {
317
+            $max_time = 5;
318
+        }
319
+        define('_JQ_MAX_JOBS_TIME_TO_EXECUTE', min($max_time, 15)); // une valeur maxi en temps.
320
+    }
321
+    $end_time = $time + _JQ_MAX_JOBS_TIME_TO_EXECUTE;
322
+
323
+    spip_log("JQ schedule $time / $end_time", 'jq' . _LOG_DEBUG);
324
+
325
+    if (!defined('_JQ_MAX_JOBS_EXECUTE')) {
326
+        define('_JQ_MAX_JOBS_EXECUTE', 200);
327
+    }
328
+    $nbj = 0;
329
+    // attraper les jobs
330
+    // dont la date est passee (echus en attente),
331
+    // par ordre :
332
+    //	- de priorite
333
+    //	- de date
334
+    // lorsqu'un job cron n'a pas fini, sa priorite est descendue
335
+    // pour qu'il ne bloque pas les autres jobs en attente
336
+    if (is_array($force_jobs) && count($force_jobs)) {
337
+        $cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND ' . sql_in('id_job', $force_jobs);
338
+    } else {
339
+        $now = date('Y-m-d H:i:s', $time);
340
+        $cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND date<=' . sql_quote($now);
341
+    }
342
+
343
+    register_shutdown_function('queue_error_handler'); // recuperer les erreurs auant que possible
344
+    $res = sql_allfetsel('*', 'spip_jobs', $cond, '', 'priorite DESC,date', '0,' . (_JQ_MAX_JOBS_EXECUTE + 1));
345
+    do {
346
+        if ($row = array_shift($res)) {
347
+            $nbj++;
348
+            // il faut un verrou, a base de sql_delete
349
+            if (sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']) . ' AND status=' . intval(_JQ_SCHEDULED))) {
350
+                #spip_log("JQ schedule job ".$nbj." OK",'jq');
351
+                // on reinsert dans la base aussitot avec un status=_JQ_PENDING
352
+                $row['status'] = _JQ_PENDING;
353
+                $row['date'] = date('Y-m-d H:i:s', $time);
354
+                sql_insertq('spip_jobs', $row);
355
+
356
+                // on a la main sur le job :
357
+                // l'executer
358
+                $result = queue_start_job($row);
359
+
360
+                $time = time();
361
+                queue_close_job($row, $time, $result);
362
+            }
363
+        }
364
+        spip_log('JQ schedule job end time ' . $time, 'jq' . _LOG_DEBUG);
365
+    } while ($nbj < _JQ_MAX_JOBS_EXECUTE && $row && $time < $end_time);
366
+    spip_log('JQ schedule end time ' . time(), 'jq' . _LOG_DEBUG);
367
+
368
+    if ($row = array_shift($res)) {
369
+        queue_update_next_job_time(0); // on sait qu'il y a encore des jobs a lancer ASAP
370
+        spip_log('JQ encore !', 'jq' . _LOG_DEBUG);
371
+    } else {
372
+        queue_update_next_job_time();
373
+    }
374
+
375
+    return true;
376 376
 }
377 377
 
378 378
 /**
@@ -390,21 +390,21 @@  discard block
 block discarded – undo
390 390
  * @param int $result
391 391
  */
392 392
 function queue_close_job(&$row, $time, $result = 0) {
393
-	// est-ce une tache cron qu'il faut relancer ?
394
-	if ($periode = queue_is_cron_job($row['fonction'], $row['inclure'])) {
395
-		// relancer avec les nouveaux arguments de temps
396
-		include_spip('inc/genie');
397
-		if ($result < 0) { // relancer tout de suite, mais en baissant la priorite
398
-		queue_genie_replan_job($row['fonction'], $periode, 0 - $result, null, $row['priorite'] - 1);
399
-		} else // relancer avec la periode prevue
400
-		{
401
-			queue_genie_replan_job($row['fonction'], $periode, $time);
402
-		}
403
-	}
404
-	// purger ses liens eventuels avec des objets
405
-	sql_delete('spip_jobs_liens', 'id_job=' . intval($row['id_job']));
406
-	// supprimer le job fini
407
-	sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']));
393
+    // est-ce une tache cron qu'il faut relancer ?
394
+    if ($periode = queue_is_cron_job($row['fonction'], $row['inclure'])) {
395
+        // relancer avec les nouveaux arguments de temps
396
+        include_spip('inc/genie');
397
+        if ($result < 0) { // relancer tout de suite, mais en baissant la priorite
398
+        queue_genie_replan_job($row['fonction'], $periode, 0 - $result, null, $row['priorite'] - 1);
399
+        } else // relancer avec la periode prevue
400
+        {
401
+            queue_genie_replan_job($row['fonction'], $periode, $time);
402
+        }
403
+    }
404
+    // purger ses liens eventuels avec des objets
405
+    sql_delete('spip_jobs_liens', 'id_job=' . intval($row['id_job']));
406
+    // supprimer le job fini
407
+    sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']));
408 408
 }
409 409
 
410 410
 /**
@@ -414,10 +414,10 @@  discard block
 block discarded – undo
414 414
  * @uses queue_update_next_job_time()
415 415
  */
416 416
 function queue_error_handler() {
417
-	// se remettre dans le bon dossier, car Apache le change parfois (toujours?)
418
-	chdir(_ROOT_CWD);
417
+    // se remettre dans le bon dossier, car Apache le change parfois (toujours?)
418
+    chdir(_ROOT_CWD);
419 419
 
420
-	queue_update_next_job_time();
420
+    queue_update_next_job_time();
421 421
 }
422 422
 
423 423
 
@@ -434,18 +434,18 @@  discard block
 block discarded – undo
434 434
  *     Périodicité de la tâche en secondes, si tâche périodique, sinon false.
435 435
  */
436 436
 function queue_is_cron_job($function, $inclure) {
437
-	static $taches = null;
438
-	if (str_starts_with($inclure, 'genie/')) {
439
-		if (is_null($taches)) {
440
-			include_spip('inc/genie');
441
-			$taches = taches_generales();
442
-		}
443
-		if (isset($taches[$function])) {
444
-			return $taches[$function];
445
-		}
446
-	}
447
-
448
-	return false;
437
+    static $taches = null;
438
+    if (str_starts_with($inclure, 'genie/')) {
439
+        if (is_null($taches)) {
440
+            include_spip('inc/genie');
441
+            $taches = taches_generales();
442
+        }
443
+        if (isset($taches[$function])) {
444
+            return $taches[$function];
445
+        }
446
+    }
447
+
448
+    return false;
449 449
 }
450 450
 
451 451
 /**
@@ -459,62 +459,62 @@  discard block
 block discarded – undo
459 459
  *  temps de la tache ajoutee ou 0 pour ASAP
460 460
  */
461 461
 function queue_update_next_job_time($next_time = null) {
462
-	static $nb_jobs_scheduled = null;
463
-	static $deja_la = false;
464
-	// prendre le min des $next_time que l'on voit passer ici, en cas de reentrance
465
-	static $next = null;
466
-	// queue_close_job peut etre reentrant ici
467
-	if ($deja_la) {
468
-		return;
469
-	}
470
-	$deja_la = true;
471
-
472
-	include_spip('base/abstract_sql');
473
-	$time = time();
474
-
475
-	// traiter les jobs morts au combat (_JQ_PENDING depuis plus de 180s)
476
-	// pour cause de timeout ou autre erreur fatale
477
-	$res = sql_allfetsel(
478
-		'*',
479
-		'spip_jobs',
480
-		'status=' . intval(_JQ_PENDING) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time - 180))
481
-	);
482
-	if (is_array($res)) {
483
-		foreach ($res as $row) {
484
-			queue_close_job($row, $time);
485
-			spip_log('queue_close_job car _JQ_PENDING depuis +180s : ' . print_r($row, true), 'job_mort' . _LOG_ERREUR);
486
-		}
487
-	}
488
-
489
-	// chercher la date du prochain job si pas connu
490
-	if (is_null($next) || is_null(queue_sleep_time_to_next_job())) {
491
-		$date = sql_getfetsel('date', 'spip_jobs', 'status=' . intval(_JQ_SCHEDULED), '', 'date', '0,1');
492
-		$next = strtotime($date);
493
-	}
494
-	if (!is_null($next_time)) {
495
-		if (is_null($next) || $next > $next_time) {
496
-			$next = $next_time;
497
-		}
498
-	}
499
-
500
-	if ($next) {
501
-		if (is_null($nb_jobs_scheduled)) {
502
-			$nb_jobs_scheduled = sql_countsel(
503
-				'spip_jobs',
504
-				'status=' . intval(_JQ_SCHEDULED) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time))
505
-			);
506
-		} elseif ($next <= $time) {
507
-			$nb_jobs_scheduled++;
508
-		}
509
-		// si trop de jobs en attente, on force la purge en fin de hit
510
-		// pour assurer le coup
511
-		if ($nb_jobs_scheduled > (defined('_JQ_NB_JOBS_OVERFLOW') ? _JQ_NB_JOBS_OVERFLOW : 10000)) {
512
-			define('_DIRECT_CRON_FORCE', true);
513
-		}
514
-	}
515
-
516
-	queue_set_next_job_time($next);
517
-	$deja_la = false;
462
+    static $nb_jobs_scheduled = null;
463
+    static $deja_la = false;
464
+    // prendre le min des $next_time que l'on voit passer ici, en cas de reentrance
465
+    static $next = null;
466
+    // queue_close_job peut etre reentrant ici
467
+    if ($deja_la) {
468
+        return;
469
+    }
470
+    $deja_la = true;
471
+
472
+    include_spip('base/abstract_sql');
473
+    $time = time();
474
+
475
+    // traiter les jobs morts au combat (_JQ_PENDING depuis plus de 180s)
476
+    // pour cause de timeout ou autre erreur fatale
477
+    $res = sql_allfetsel(
478
+        '*',
479
+        'spip_jobs',
480
+        'status=' . intval(_JQ_PENDING) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time - 180))
481
+    );
482
+    if (is_array($res)) {
483
+        foreach ($res as $row) {
484
+            queue_close_job($row, $time);
485
+            spip_log('queue_close_job car _JQ_PENDING depuis +180s : ' . print_r($row, true), 'job_mort' . _LOG_ERREUR);
486
+        }
487
+    }
488
+
489
+    // chercher la date du prochain job si pas connu
490
+    if (is_null($next) || is_null(queue_sleep_time_to_next_job())) {
491
+        $date = sql_getfetsel('date', 'spip_jobs', 'status=' . intval(_JQ_SCHEDULED), '', 'date', '0,1');
492
+        $next = strtotime($date);
493
+    }
494
+    if (!is_null($next_time)) {
495
+        if (is_null($next) || $next > $next_time) {
496
+            $next = $next_time;
497
+        }
498
+    }
499
+
500
+    if ($next) {
501
+        if (is_null($nb_jobs_scheduled)) {
502
+            $nb_jobs_scheduled = sql_countsel(
503
+                'spip_jobs',
504
+                'status=' . intval(_JQ_SCHEDULED) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time))
505
+            );
506
+        } elseif ($next <= $time) {
507
+            $nb_jobs_scheduled++;
508
+        }
509
+        // si trop de jobs en attente, on force la purge en fin de hit
510
+        // pour assurer le coup
511
+        if ($nb_jobs_scheduled > (defined('_JQ_NB_JOBS_OVERFLOW') ? _JQ_NB_JOBS_OVERFLOW : 10000)) {
512
+            define('_DIRECT_CRON_FORCE', true);
513
+        }
514
+    }
515
+
516
+    queue_set_next_job_time($next);
517
+    $deja_la = false;
518 518
 }
519 519
 
520 520
 
@@ -525,26 +525,26 @@  discard block
 block discarded – undo
525 525
  */
526 526
 function queue_set_next_job_time($next) {
527 527
 
528
-	// utiliser le temps courant reel plutot que temps de la requete ici
529
-	$time = time();
530
-
531
-	// toujours relire la valeur pour comparer, pour tenir compte des maj concourrantes
532
-	// et ne mettre a jour que si il y a un interet a le faire
533
-	// permet ausis d'initialiser le nom de fichier a coup sur
534
-	$curr_next = $_SERVER['REQUEST_TIME'] + max(0, queue_sleep_time_to_next_job(true));
535
-	if (
536
-		$curr_next <= $time && $next > $time // le prochain job est dans le futur mais pas la date planifiee actuelle
537
-		|| $curr_next > $next // le prochain job est plus tot que la date planifiee actuelle
538
-	) {
539
-		if (function_exists('cache_set') && defined('_MEMOIZE_MEMORY') && _MEMOIZE_MEMORY) {
540
-			cache_set(_JQ_NEXT_JOB_TIME_FILENAME, intval($next));
541
-		} else {
542
-			ecrire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, intval($next));
543
-		}
544
-		queue_sleep_time_to_next_job($next);
545
-	}
546
-
547
-	return queue_sleep_time_to_next_job();
528
+    // utiliser le temps courant reel plutot que temps de la requete ici
529
+    $time = time();
530
+
531
+    // toujours relire la valeur pour comparer, pour tenir compte des maj concourrantes
532
+    // et ne mettre a jour que si il y a un interet a le faire
533
+    // permet ausis d'initialiser le nom de fichier a coup sur
534
+    $curr_next = $_SERVER['REQUEST_TIME'] + max(0, queue_sleep_time_to_next_job(true));
535
+    if (
536
+        $curr_next <= $time && $next > $time // le prochain job est dans le futur mais pas la date planifiee actuelle
537
+        || $curr_next > $next // le prochain job est plus tot que la date planifiee actuelle
538
+    ) {
539
+        if (function_exists('cache_set') && defined('_MEMOIZE_MEMORY') && _MEMOIZE_MEMORY) {
540
+            cache_set(_JQ_NEXT_JOB_TIME_FILENAME, intval($next));
541
+        } else {
542
+            ecrire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, intval($next));
543
+        }
544
+        queue_sleep_time_to_next_job($next);
545
+    }
546
+
547
+    return queue_sleep_time_to_next_job();
548 548
 }
549 549
 
550 550
 /**
@@ -561,60 +561,60 @@  discard block
 block discarded – undo
561 561
  * @return string
562 562
  */
563 563
 function queue_affichage_cron() {
564
-	$texte = '';
565
-
566
-	$time_to_next = queue_sleep_time_to_next_job();
567
-	// rien a faire si le prochain job est encore dans le futur
568
-	if ($time_to_next > 0 || defined('_DEBUG_BLOCK_QUEUE')) {
569
-		return $texte;
570
-	}
571
-
572
-	// ne pas relancer si on vient de lancer dans la meme seconde par un hit concurent
573
-	if (file_exists($lock = _DIR_TMP . 'cron.lock') && !(@filemtime($lock) < $_SERVER['REQUEST_TIME'])) {
574
-		return $texte;
575
-	}
576
-
577
-	@touch($lock);
578
-
579
-	// il y a des taches en attentes
580
-	// si depuis plus de 5min, on essaye de lancer le cron par tous les moyens pour rattraper le coup
581
-	// on est sans doute sur un site qui n'autorise pas http sortant ou avec peu de trafic
582
-	$urgent = false;
583
-	if ($time_to_next < -300) {
584
-		$urgent = true;
585
-	}
586
-
587
-	$url_cron = generer_url_action('cron', '', false, true);
588
-
589
-	if (!defined('_HTML_BG_CRON_FORCE') || !_HTML_BG_CRON_FORCE) {
590
-		if (queue_lancer_url_http_async($url_cron) && !$urgent) {
591
-			return $texte;
592
-		}
593
-	}
594
-
595
-	// si deja force, on retourne sans rien
596
-	if (defined('_DIRECT_CRON_FORCE')) {
597
-		return $texte;
598
-	}
599
-
600
-	// si c'est un bot
601
-	// inutile de faire un appel par image background,
602
-	// on force un appel direct en fin de hit
603
-	if ((defined('_IS_BOT') && _IS_BOT)) {
604
-		define('_DIRECT_CRON_FORCE', true);
605
-
606
-		return $texte;
607
-	}
608
-
609
-	if (!defined('_HTML_BG_CRON_INHIB') || !_HTML_BG_CRON_INHIB) {
610
-		// en derniere solution, on insere un appel xhr non bloquant ou une image background dans la page si pas de JS
611
-		$url_cron = generer_url_action('cron');
612
-		$texte = '<!-- SPIP-CRON -->'
613
-		  . "<script>setTimeout(function(){var xo = new XMLHttpRequest();xo.open('GET', '$url_cron', true);xo.send('');},100);</script>"
614
-		  . "<noscript><div style=\"background-image: url('$url_cron');\"></div></noscript>";
615
-	}
616
-
617
-	return $texte;
564
+    $texte = '';
565
+
566
+    $time_to_next = queue_sleep_time_to_next_job();
567
+    // rien a faire si le prochain job est encore dans le futur
568
+    if ($time_to_next > 0 || defined('_DEBUG_BLOCK_QUEUE')) {
569
+        return $texte;
570
+    }
571
+
572
+    // ne pas relancer si on vient de lancer dans la meme seconde par un hit concurent
573
+    if (file_exists($lock = _DIR_TMP . 'cron.lock') && !(@filemtime($lock) < $_SERVER['REQUEST_TIME'])) {
574
+        return $texte;
575
+    }
576
+
577
+    @touch($lock);
578
+
579
+    // il y a des taches en attentes
580
+    // si depuis plus de 5min, on essaye de lancer le cron par tous les moyens pour rattraper le coup
581
+    // on est sans doute sur un site qui n'autorise pas http sortant ou avec peu de trafic
582
+    $urgent = false;
583
+    if ($time_to_next < -300) {
584
+        $urgent = true;
585
+    }
586
+
587
+    $url_cron = generer_url_action('cron', '', false, true);
588
+
589
+    if (!defined('_HTML_BG_CRON_FORCE') || !_HTML_BG_CRON_FORCE) {
590
+        if (queue_lancer_url_http_async($url_cron) && !$urgent) {
591
+            return $texte;
592
+        }
593
+    }
594
+
595
+    // si deja force, on retourne sans rien
596
+    if (defined('_DIRECT_CRON_FORCE')) {
597
+        return $texte;
598
+    }
599
+
600
+    // si c'est un bot
601
+    // inutile de faire un appel par image background,
602
+    // on force un appel direct en fin de hit
603
+    if ((defined('_IS_BOT') && _IS_BOT)) {
604
+        define('_DIRECT_CRON_FORCE', true);
605
+
606
+        return $texte;
607
+    }
608
+
609
+    if (!defined('_HTML_BG_CRON_INHIB') || !_HTML_BG_CRON_INHIB) {
610
+        // en derniere solution, on insere un appel xhr non bloquant ou une image background dans la page si pas de JS
611
+        $url_cron = generer_url_action('cron');
612
+        $texte = '<!-- SPIP-CRON -->'
613
+            . "<script>setTimeout(function(){var xo = new XMLHttpRequest();xo.open('GET', '$url_cron', true);xo.send('');},100);</script>"
614
+            . "<noscript><div style=\"background-image: url('$url_cron');\"></div></noscript>";
615
+    }
616
+
617
+    return $texte;
618 618
 }
619 619
 
620 620
 /**
@@ -623,73 +623,73 @@  discard block
 block discarded – undo
623 623
  * @return bool : true si l'url a pu être appelée en asynchrone, false sinon
624 624
  */
625 625
 function queue_lancer_url_http_async($url_cron) {
626
-	// methode la plus rapide :
627
-	// Si fsockopen est possible, on lance le cron via un socket en asynchrone
628
-	// si fsockopen echoue (disponibilite serveur, firewall) on essaye pas cURL
629
-	// car on a toutes les chances d'echouer pareil mais sans moyen de le savoir
630
-	// mais on renvoie false direct
631
-	if (function_exists('fsockopen')) {
632
-		$parts = parse_url($url_cron);
633
-
634
-		switch ($parts['scheme']) {
635
-			case 'https':
636
-				$scheme = 'ssl://';
637
-				$port = 443;
638
-				break;
639
-			case 'http':
640
-			default:
641
-				$scheme = '';
642
-				$port = 80;
643
-		}
644
-		$fp = @fsockopen(
645
-			$scheme . $parts['host'],
646
-			$parts['port'] ?? $port,
647
-			$errno,
648
-			$errstr,
649
-			1
650
-		);
651
-
652
-		if ($fp) {
653
-			$host_sent = $parts['host'];
654
-			if (isset($parts['port']) && $parts['port'] !== $port) {
655
-				$host_sent .= ':' . $parts['port'];
656
-			}
657
-			$timeout = 200; // ms
658
-			stream_set_timeout($fp, 0, $timeout * 1000);
659
-			$query = $parts['path'] . ($parts['query'] ? '?' . $parts['query'] : '');
660
-			$out = 'GET ' . $query . " HTTP/1.1\r\n";
661
-			$out .= 'Host: ' . $host_sent . "\r\n";
662
-			$out .= "Connection: Close\r\n\r\n";
663
-			fwrite($fp, $out);
664
-			spip_timer('read');
665
-			$t = 0;
666
-			// on lit la reponse si possible pour fermer proprement la connexion
667
-			// avec un timeout total de 200ms pour ne pas se bloquer
668
-			while (!feof($fp) && $t < $timeout) {
669
-				@fgets($fp, 1024);
670
-				$t += spip_timer('read', true);
671
-				spip_timer('read');
672
-			}
673
-			fclose($fp);
674
-			return true;
675
-		}
676
-	}
677
-	// si fsockopen n'est pas dispo on essaye cURL :
678
-	// lancer le cron par un cURL asynchrone si cURL est present
679
-	elseif (function_exists('curl_init')) {
680
-		//setting the curl parameters.
681
-		$ch = curl_init($url_cron);
682
-		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
683
-		// cf bug : http://www.php.net/manual/en/function.curl-setopt.php#104597
684
-		curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
685
-		// valeur mini pour que la requete soit lancee
686
-		curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);
687
-		// lancer
688
-		curl_exec($ch);
689
-		// fermer
690
-		curl_close($ch);
691
-		return true;
692
-	}
693
-
694
-	return false;
626
+    // methode la plus rapide :
627
+    // Si fsockopen est possible, on lance le cron via un socket en asynchrone
628
+    // si fsockopen echoue (disponibilite serveur, firewall) on essaye pas cURL
629
+    // car on a toutes les chances d'echouer pareil mais sans moyen de le savoir
630
+    // mais on renvoie false direct
631
+    if (function_exists('fsockopen')) {
632
+        $parts = parse_url($url_cron);
633
+
634
+        switch ($parts['scheme']) {
635
+            case 'https':
636
+                $scheme = 'ssl://';
637
+                $port = 443;
638
+                break;
639
+            case 'http':
640
+            default:
641
+                $scheme = '';
642
+                $port = 80;
643
+        }
644
+        $fp = @fsockopen(
645
+            $scheme . $parts['host'],
646
+            $parts['port'] ?? $port,
647
+            $errno,
648
+            $errstr,
649
+            1
650
+        );
651
+
652
+        if ($fp) {
653
+            $host_sent = $parts['host'];
654
+            if (isset($parts['port']) && $parts['port'] !== $port) {
655
+                $host_sent .= ':' . $parts['port'];
656
+            }
657
+            $timeout = 200; // ms
658
+            stream_set_timeout($fp, 0, $timeout * 1000);
659
+            $query = $parts['path'] . ($parts['query'] ? '?' . $parts['query'] : '');
660
+            $out = 'GET ' . $query . " HTTP/1.1\r\n";
661
+            $out .= 'Host: ' . $host_sent . "\r\n";
662
+            $out .= "Connection: Close\r\n\r\n";
663
+            fwrite($fp, $out);
664
+            spip_timer('read');
665
+            $t = 0;
666
+            // on lit la reponse si possible pour fermer proprement la connexion
667
+            // avec un timeout total de 200ms pour ne pas se bloquer
668
+            while (!feof($fp) && $t < $timeout) {
669
+                @fgets($fp, 1024);
670
+                $t += spip_timer('read', true);
671
+                spip_timer('read');
672
+            }
673
+            fclose($fp);
674
+            return true;
675
+        }
676
+    }
677
+    // si fsockopen n'est pas dispo on essaye cURL :
678
+    // lancer le cron par un cURL asynchrone si cURL est present
679
+    elseif (function_exists('curl_init')) {
680
+        //setting the curl parameters.
681
+        $ch = curl_init($url_cron);
682
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
683
+        // cf bug : http://www.php.net/manual/en/function.curl-setopt.php#104597
684
+        curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
685
+        // valeur mini pour que la requete soit lancee
686
+        curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);
687
+        // lancer
688
+        curl_exec($ch);
689
+        // fermer
690
+        curl_close($ch);
691
+        return true;
692
+    }
693
+
694
+    return false;
695 695
 }
Please login to merge, or discard this patch.
Spacing   +37 added lines, -38 removed lines patch added patch discarded remove patch
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 	$md5args = md5($arguments);
70 70
 
71 71
 	// si pas de date programee, des que possible
72
-	$duplicate_where = 'status=' . intval(_JQ_SCHEDULED) . ' AND ';
72
+	$duplicate_where = 'status='.intval(_JQ_SCHEDULED).' AND ';
73 73
 	if (!$time) {
74 74
 		$time = time();
75 75
 		$duplicate_where = ''; // ne pas dupliquer si deja le meme job en cours d'execution
@@ -94,9 +94,8 @@  discard block
 block discarded – undo
94 94
 			'id_job',
95 95
 			'spip_jobs',
96 96
 			$duplicate_where =
97
-				$duplicate_where . 'fonction=' . sql_quote($function)
98
-				. (($no_duplicate === 'function_only') ? '' :
99
-			' AND md5args=' . sql_quote($md5args) . ' AND inclure=' . sql_quote($file))
97
+				$duplicate_where.'fonction='.sql_quote($function)
98
+				. (($no_duplicate === 'function_only') ? '' : ' AND md5args='.sql_quote($md5args).' AND inclure='.sql_quote($file))
100 99
 		))
101 100
 	) {
102 101
 		return $id_job;
@@ -108,9 +107,9 @@  discard block
 block discarded – undo
108 107
 	// doit s'effacer
109 108
 	if (
110 109
 		$no_duplicate
111
-		&& ($id_prev = sql_getfetsel('id_job', 'spip_jobs', 'id_job<' . intval($id_job) . " AND $duplicate_where"))
110
+		&& ($id_prev = sql_getfetsel('id_job', 'spip_jobs', 'id_job<'.intval($id_job)." AND $duplicate_where"))
112 111
 	) {
113
-		sql_delete('spip_jobs', 'id_job=' . intval($id_job));
112
+		sql_delete('spip_jobs', 'id_job='.intval($id_job));
114 113
 
115 114
 		return $id_prev;
116 115
 	}
@@ -122,9 +121,9 @@  discard block
 block discarded – undo
122 121
 	// ie cas d'un char non acceptables sur certains type de champs
123 122
 	// qui coupe la valeur
124 123
 	if (defined('_JQ_INSERT_CHECK_ARGS') && $id_job) {
125
-		$args = sql_getfetsel('args', 'spip_jobs', 'id_job=' . intval($id_job));
124
+		$args = sql_getfetsel('args', 'spip_jobs', 'id_job='.intval($id_job));
126 125
 		if ($args !== $arguments) {
127
-			spip_log('arguments job errones / longueur ' . strlen($args) . ' vs ' . strlen($arguments) . ' / valeur : ' . var_export(
126
+			spip_log('arguments job errones / longueur '.strlen($args).' vs '.strlen($arguments).' / valeur : '.var_export(
128 127
 				$arguments,
129 128
 				true
130 129
 			), 'queue');
@@ -154,7 +153,7 @@  discard block
 block discarded – undo
154 153
 function queue_purger() {
155 154
 	include_spip('base/abstract_sql');
156 155
 	sql_delete('spip_jobs');
157
-	sql_delete('spip_jobs_liens', 'id_job NOT IN (' . sql_get_select('id_job', 'spip_jobs') . ')');
156
+	sql_delete('spip_jobs_liens', 'id_job NOT IN ('.sql_get_select('id_job', 'spip_jobs').')');
158 157
 	include_spip('inc/genie');
159 158
 	genie_queue_watch_dist();
160 159
 }
@@ -170,8 +169,8 @@  discard block
 block discarded – undo
170 169
 	include_spip('base/abstract_sql');
171 170
 
172 171
 	if (
173
-		($row = sql_fetsel('fonction,inclure,date', 'spip_jobs', 'id_job=' . intval($id_job)))
174
-		&& ($res = sql_delete('spip_jobs', 'id_job=' . intval($id_job)))
172
+		($row = sql_fetsel('fonction,inclure,date', 'spip_jobs', 'id_job='.intval($id_job)))
173
+		&& ($res = sql_delete('spip_jobs', 'id_job='.intval($id_job)))
175 174
 	) {
176 175
 		queue_unlink_job($id_job);
177 176
 		// est-ce une tache cron qu'il faut relancer ?
@@ -221,7 +220,7 @@  discard block
 block discarded – undo
221 220
  *  resultat du sql_delete
222 221
  */
223 222
 function queue_unlink_job($id_job) {
224
-	return sql_delete('spip_jobs_liens', 'id_job=' . intval($id_job));
223
+	return sql_delete('spip_jobs_liens', 'id_job='.intval($id_job));
225 224
 }
226 225
 
227 226
 /**
@@ -237,7 +236,7 @@  discard block
 block discarded – undo
237 236
 	// deserialiser les arguments
238 237
 	$args = unserialize($row['args']);
239 238
 	if (!is_array($args)) {
240
-		spip_log('arguments job errones ' . var_export($row, true), 'queue');
239
+		spip_log('arguments job errones '.var_export($row, true), 'queue');
241 240
 		return false;
242 241
 	}
243 242
 
@@ -254,14 +253,14 @@  discard block
 block discarded – undo
254 253
 	}
255 254
 
256 255
 	if (!function_exists($fonction)) {
257
-		spip_log("fonction $fonction ($inclure) inexistante " . var_export($row, true), 'queue');
256
+		spip_log("fonction $fonction ($inclure) inexistante ".var_export($row, true), 'queue');
258 257
 
259 258
 		return false;
260 259
 	}
261 260
 
262
-	spip_log('queue [' . $row['id_job'] . "]: $fonction() start", 'queue');
261
+	spip_log('queue ['.$row['id_job']."]: $fonction() start", 'queue');
263 262
 	$res = $fonction(...$args);
264
-	spip_log('queue [' . $row['id_job'] . "]: $fonction() end", 'queue');
263
+	spip_log('queue ['.$row['id_job']."]: $fonction() end", 'queue');
265 264
 
266 265
 	return $res;
267 266
 }
@@ -292,14 +291,14 @@  discard block
 block discarded – undo
292 291
 function queue_schedule($force_jobs = null) {
293 292
 	$time = time();
294 293
 	if (defined('_DEBUG_BLOCK_QUEUE')) {
295
-		spip_log('_DEBUG_BLOCK_QUEUE : schedule stop', 'jq' . _LOG_DEBUG);
294
+		spip_log('_DEBUG_BLOCK_QUEUE : schedule stop', 'jq'._LOG_DEBUG);
296 295
 
297 296
 		return;
298 297
 	}
299 298
 
300 299
 	// rien a faire si le prochain job est encore dans le futur
301 300
 	if (queue_sleep_time_to_next_job() > 0 && (!$force_jobs || !count($force_jobs))) {
302
-		spip_log('queue_sleep_time_to_next_job', 'jq' . _LOG_DEBUG);
301
+		spip_log('queue_sleep_time_to_next_job', 'jq'._LOG_DEBUG);
303 302
 
304 303
 		return;
305 304
 	}
@@ -320,7 +319,7 @@  discard block
 block discarded – undo
320 319
 	}
321 320
 	$end_time = $time + _JQ_MAX_JOBS_TIME_TO_EXECUTE;
322 321
 
323
-	spip_log("JQ schedule $time / $end_time", 'jq' . _LOG_DEBUG);
322
+	spip_log("JQ schedule $time / $end_time", 'jq'._LOG_DEBUG);
324 323
 
325 324
 	if (!defined('_JQ_MAX_JOBS_EXECUTE')) {
326 325
 		define('_JQ_MAX_JOBS_EXECUTE', 200);
@@ -334,19 +333,19 @@  discard block
 block discarded – undo
334 333
 	// lorsqu'un job cron n'a pas fini, sa priorite est descendue
335 334
 	// pour qu'il ne bloque pas les autres jobs en attente
336 335
 	if (is_array($force_jobs) && count($force_jobs)) {
337
-		$cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND ' . sql_in('id_job', $force_jobs);
336
+		$cond = 'status='.intval(_JQ_SCHEDULED).' AND '.sql_in('id_job', $force_jobs);
338 337
 	} else {
339 338
 		$now = date('Y-m-d H:i:s', $time);
340
-		$cond = 'status=' . intval(_JQ_SCHEDULED) . ' AND date<=' . sql_quote($now);
339
+		$cond = 'status='.intval(_JQ_SCHEDULED).' AND date<='.sql_quote($now);
341 340
 	}
342 341
 
343 342
 	register_shutdown_function('queue_error_handler'); // recuperer les erreurs auant que possible
344
-	$res = sql_allfetsel('*', 'spip_jobs', $cond, '', 'priorite DESC,date', '0,' . (_JQ_MAX_JOBS_EXECUTE + 1));
343
+	$res = sql_allfetsel('*', 'spip_jobs', $cond, '', 'priorite DESC,date', '0,'.(_JQ_MAX_JOBS_EXECUTE + 1));
345 344
 	do {
346 345
 		if ($row = array_shift($res)) {
347 346
 			$nbj++;
348 347
 			// il faut un verrou, a base de sql_delete
349
-			if (sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']) . ' AND status=' . intval(_JQ_SCHEDULED))) {
348
+			if (sql_delete('spip_jobs', 'id_job='.intval($row['id_job']).' AND status='.intval(_JQ_SCHEDULED))) {
350 349
 				#spip_log("JQ schedule job ".$nbj." OK",'jq');
351 350
 				// on reinsert dans la base aussitot avec un status=_JQ_PENDING
352 351
 				$row['status'] = _JQ_PENDING;
@@ -361,13 +360,13 @@  discard block
 block discarded – undo
361 360
 				queue_close_job($row, $time, $result);
362 361
 			}
363 362
 		}
364
-		spip_log('JQ schedule job end time ' . $time, 'jq' . _LOG_DEBUG);
363
+		spip_log('JQ schedule job end time '.$time, 'jq'._LOG_DEBUG);
365 364
 	} while ($nbj < _JQ_MAX_JOBS_EXECUTE && $row && $time < $end_time);
366
-	spip_log('JQ schedule end time ' . time(), 'jq' . _LOG_DEBUG);
365
+	spip_log('JQ schedule end time '.time(), 'jq'._LOG_DEBUG);
367 366
 
368 367
 	if ($row = array_shift($res)) {
369 368
 		queue_update_next_job_time(0); // on sait qu'il y a encore des jobs a lancer ASAP
370
-		spip_log('JQ encore !', 'jq' . _LOG_DEBUG);
369
+		spip_log('JQ encore !', 'jq'._LOG_DEBUG);
371 370
 	} else {
372 371
 		queue_update_next_job_time();
373 372
 	}
@@ -402,9 +401,9 @@  discard block
 block discarded – undo
402 401
 		}
403 402
 	}
404 403
 	// purger ses liens eventuels avec des objets
405
-	sql_delete('spip_jobs_liens', 'id_job=' . intval($row['id_job']));
404
+	sql_delete('spip_jobs_liens', 'id_job='.intval($row['id_job']));
406 405
 	// supprimer le job fini
407
-	sql_delete('spip_jobs', 'id_job=' . intval($row['id_job']));
406
+	sql_delete('spip_jobs', 'id_job='.intval($row['id_job']));
408 407
 }
409 408
 
410 409
 /**
@@ -477,18 +476,18 @@  discard block
 block discarded – undo
477 476
 	$res = sql_allfetsel(
478 477
 		'*',
479 478
 		'spip_jobs',
480
-		'status=' . intval(_JQ_PENDING) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time - 180))
479
+		'status='.intval(_JQ_PENDING).' AND date<'.sql_quote(date('Y-m-d H:i:s', $time - 180))
481 480
 	);
482 481
 	if (is_array($res)) {
483 482
 		foreach ($res as $row) {
484 483
 			queue_close_job($row, $time);
485
-			spip_log('queue_close_job car _JQ_PENDING depuis +180s : ' . print_r($row, true), 'job_mort' . _LOG_ERREUR);
484
+			spip_log('queue_close_job car _JQ_PENDING depuis +180s : '.print_r($row, true), 'job_mort'._LOG_ERREUR);
486 485
 		}
487 486
 	}
488 487
 
489 488
 	// chercher la date du prochain job si pas connu
490 489
 	if (is_null($next) || is_null(queue_sleep_time_to_next_job())) {
491
-		$date = sql_getfetsel('date', 'spip_jobs', 'status=' . intval(_JQ_SCHEDULED), '', 'date', '0,1');
490
+		$date = sql_getfetsel('date', 'spip_jobs', 'status='.intval(_JQ_SCHEDULED), '', 'date', '0,1');
492 491
 		$next = strtotime($date);
493 492
 	}
494 493
 	if (!is_null($next_time)) {
@@ -501,7 +500,7 @@  discard block
 block discarded – undo
501 500
 		if (is_null($nb_jobs_scheduled)) {
502 501
 			$nb_jobs_scheduled = sql_countsel(
503 502
 				'spip_jobs',
504
-				'status=' . intval(_JQ_SCHEDULED) . ' AND date<' . sql_quote(date('Y-m-d H:i:s', $time))
503
+				'status='.intval(_JQ_SCHEDULED).' AND date<'.sql_quote(date('Y-m-d H:i:s', $time))
505 504
 			);
506 505
 		} elseif ($next <= $time) {
507 506
 			$nb_jobs_scheduled++;
@@ -570,7 +569,7 @@  discard block
 block discarded – undo
570 569
 	}
571 570
 
572 571
 	// ne pas relancer si on vient de lancer dans la meme seconde par un hit concurent
573
-	if (file_exists($lock = _DIR_TMP . 'cron.lock') && !(@filemtime($lock) < $_SERVER['REQUEST_TIME'])) {
572
+	if (file_exists($lock = _DIR_TMP.'cron.lock') && !(@filemtime($lock) < $_SERVER['REQUEST_TIME'])) {
574 573
 		return $texte;
575 574
 	}
576 575
 
@@ -642,7 +641,7 @@  discard block
 block discarded – undo
642 641
 				$port = 80;
643 642
 		}
644 643
 		$fp = @fsockopen(
645
-			$scheme . $parts['host'],
644
+			$scheme.$parts['host'],
646 645
 			$parts['port'] ?? $port,
647 646
 			$errno,
648 647
 			$errstr,
@@ -652,13 +651,13 @@  discard block
 block discarded – undo
652 651
 		if ($fp) {
653 652
 			$host_sent = $parts['host'];
654 653
 			if (isset($parts['port']) && $parts['port'] !== $port) {
655
-				$host_sent .= ':' . $parts['port'];
654
+				$host_sent .= ':'.$parts['port'];
656 655
 			}
657 656
 			$timeout = 200; // ms
658 657
 			stream_set_timeout($fp, 0, $timeout * 1000);
659
-			$query = $parts['path'] . ($parts['query'] ? '?' . $parts['query'] : '');
660
-			$out = 'GET ' . $query . " HTTP/1.1\r\n";
661
-			$out .= 'Host: ' . $host_sent . "\r\n";
658
+			$query = $parts['path'].($parts['query'] ? '?'.$parts['query'] : '');
659
+			$out = 'GET '.$query." HTTP/1.1\r\n";
660
+			$out .= 'Host: '.$host_sent."\r\n";
662 661
 			$out .= "Connection: Close\r\n\r\n";
663 662
 			fwrite($fp, $out);
664 663
 			spip_timer('read');
Please login to merge, or discard this patch.
ecrire/inc/plugin.php 3 patches
Indentation   +976 added lines, -976 removed lines patch added patch discarded remove patch
@@ -16,12 +16,12 @@  discard block
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /** l'adresse du repertoire de telechargement et de decompactage des plugins */
23 23
 if (!defined('_DIR_PLUGINS_AUTO')) {
24
-	define('_DIR_PLUGINS_AUTO', _DIR_PLUGINS . 'auto/');
24
+    define('_DIR_PLUGINS_AUTO', _DIR_PLUGINS . 'auto/');
25 25
 }
26 26
 
27 27
 #include_spip('inc/texte'); // ????? Appelle public/parametrer trop tot avant la reconstruction du chemin des plugins.
@@ -46,27 +46,27 @@  discard block
 block discarded – undo
46 46
  * @return array
47 47
 **/
48 48
 function liste_plugin_files($dir_plugins = null) {
49
-	static $plugin_files = [];
50
-	if (is_null($dir_plugins)) {
51
-		$dir_plugins = _DIR_PLUGINS;
52
-	}
53
-	if (
54
-		!isset($plugin_files[$dir_plugins])
55
-		|| (is_countable($plugin_files[$dir_plugins]) ? count($plugin_files[$dir_plugins]) : 0) == 0
56
-	) {
57
-		$plugin_files[$dir_plugins] = [];
58
-		foreach (fast_find_plugin_dirs($dir_plugins) as $plugin) {
59
-			$plugin_files[$dir_plugins][] = substr($plugin, strlen($dir_plugins));
60
-		}
61
-
62
-		sort($plugin_files[$dir_plugins]);
63
-		// et on lit le XML de tous les plugins pour le mettre en cache
64
-		// et en profiter pour nettoyer ceux qui n'existent plus du cache
65
-		$get_infos = charger_fonction('get_infos', 'plugins');
66
-		$get_infos($plugin_files[$dir_plugins], false, $dir_plugins, true);
67
-	}
68
-
69
-	return $plugin_files[$dir_plugins];
49
+    static $plugin_files = [];
50
+    if (is_null($dir_plugins)) {
51
+        $dir_plugins = _DIR_PLUGINS;
52
+    }
53
+    if (
54
+        !isset($plugin_files[$dir_plugins])
55
+        || (is_countable($plugin_files[$dir_plugins]) ? count($plugin_files[$dir_plugins]) : 0) == 0
56
+    ) {
57
+        $plugin_files[$dir_plugins] = [];
58
+        foreach (fast_find_plugin_dirs($dir_plugins) as $plugin) {
59
+            $plugin_files[$dir_plugins][] = substr($plugin, strlen($dir_plugins));
60
+        }
61
+
62
+        sort($plugin_files[$dir_plugins]);
63
+        // et on lit le XML de tous les plugins pour le mettre en cache
64
+        // et en profiter pour nettoyer ceux qui n'existent plus du cache
65
+        $get_infos = charger_fonction('get_infos', 'plugins');
66
+        $get_infos($plugin_files[$dir_plugins], false, $dir_plugins, true);
67
+    }
68
+
69
+    return $plugin_files[$dir_plugins];
70 70
 }
71 71
 
72 72
 /**
@@ -82,44 +82,44 @@  discard block
 block discarded – undo
82 82
  *     Liste complète des répeertoires
83 83
 **/
84 84
 function fast_find_plugin_dirs($dir, $max_prof = 100) {
85
-	$fichiers = [];
86
-	// revenir au repertoire racine si on a recu dossier/truc
87
-	// pour regarder dossier/truc/ ne pas oublier le / final
88
-	$dir = preg_replace(',/[^/]*$,', '', $dir);
89
-	if ($dir == '') {
90
-		$dir = '.';
91
-	}
92
-
93
-	if (!is_dir($dir)) {
94
-		return $fichiers;
95
-	}
96
-	if (is_plugin_dir($dir, '')) {
97
-		$fichiers[] = $dir;
98
-
99
-		return $fichiers;
100
-	}
101
-	if ($max_prof <= 0) {
102
-		return $fichiers;
103
-	}
104
-
105
-	$subdirs = [];
106
-	if (@is_dir($dir) && is_readable($dir) && ($d = opendir($dir))) {
107
-		while (($f = readdir($d)) !== false) {
108
-			if (
109
-				$f[0] != '.'
110
-				&& is_dir($f = "$dir/$f")
111
-			) {
112
-				$subdirs[] = $f;
113
-			}
114
-		}
115
-		closedir($d);
116
-	}
117
-
118
-	foreach ($subdirs as $d) {
119
-		$fichiers = array_merge($fichiers, fast_find_plugin_dirs("$d/", $max_prof - 1));
120
-	}
121
-
122
-	return $fichiers;
85
+    $fichiers = [];
86
+    // revenir au repertoire racine si on a recu dossier/truc
87
+    // pour regarder dossier/truc/ ne pas oublier le / final
88
+    $dir = preg_replace(',/[^/]*$,', '', $dir);
89
+    if ($dir == '') {
90
+        $dir = '.';
91
+    }
92
+
93
+    if (!is_dir($dir)) {
94
+        return $fichiers;
95
+    }
96
+    if (is_plugin_dir($dir, '')) {
97
+        $fichiers[] = $dir;
98
+
99
+        return $fichiers;
100
+    }
101
+    if ($max_prof <= 0) {
102
+        return $fichiers;
103
+    }
104
+
105
+    $subdirs = [];
106
+    if (@is_dir($dir) && is_readable($dir) && ($d = opendir($dir))) {
107
+        while (($f = readdir($d)) !== false) {
108
+            if (
109
+                $f[0] != '.'
110
+                && is_dir($f = "$dir/$f")
111
+            ) {
112
+                $subdirs[] = $f;
113
+            }
114
+        }
115
+        closedir($d);
116
+    }
117
+
118
+    foreach ($subdirs as $d) {
119
+        $fichiers = array_merge($fichiers, fast_find_plugin_dirs("$d/", $max_prof - 1));
120
+    }
121
+
122
+    return $fichiers;
123 123
 }
124 124
 
125 125
 /**
@@ -140,27 +140,27 @@  discard block
 block discarded – undo
140 140
 **/
141 141
 function is_plugin_dir($dir, $dir_plugins = null) {
142 142
 
143
-	if (is_array($dir)) {
144
-		foreach ($dir as $k => $d) {
145
-			if (!is_plugin_dir($d, $dir_plugins)) {
146
-				unset($dir[$k]);
147
-			}
148
-		}
149
-
150
-		return $dir;
151
-	}
152
-	if (is_null($dir_plugins)) {
153
-		$dir_plugins = _DIR_PLUGINS;
154
-	}
155
-	$search = ["$dir_plugins$dir/paquet.xml"];
156
-
157
-	foreach ($search as $s) {
158
-		if (file_exists($s)) {
159
-			return $dir;
160
-		}
161
-	}
162
-
163
-	return '';
143
+    if (is_array($dir)) {
144
+        foreach ($dir as $k => $d) {
145
+            if (!is_plugin_dir($d, $dir_plugins)) {
146
+                unset($dir[$k]);
147
+            }
148
+        }
149
+
150
+        return $dir;
151
+    }
152
+    if (is_null($dir_plugins)) {
153
+        $dir_plugins = _DIR_PLUGINS;
154
+    }
155
+    $search = ["$dir_plugins$dir/paquet.xml"];
156
+
157
+    foreach ($search as $s) {
158
+        if (file_exists($s)) {
159
+            return $dir;
160
+        }
161
+    }
162
+
163
+    return '';
164 164
 }
165 165
 
166 166
 /** Regexp d'extraction des informations d'un intervalle de compatibilité */
@@ -187,51 +187,51 @@  discard block
 block discarded – undo
187 187
  **/
188 188
 function plugin_version_compatible($intervalle, $version, $avec_quoi = '') {
189 189
 
190
-	if (!strlen($intervalle)) {
191
-		return true;
192
-	}
193
-	if (!preg_match(_EXTRAIRE_INTERVALLE, $intervalle, $regs)) {
194
-		return false;
195
-	}
196
-	// Extraction des bornes et traitement de * pour la borne sup :
197
-	// -- on autorise uniquement les ecritures 3.0.*, 3.*
198
-	$minimum = $regs[1];
199
-	$maximum = $regs[2];
200
-
201
-	//  si une version SPIP de compatibilité a été définie (dans
202
-	//  mes_options.php, sous la forme : define('_DEV_VERSION_SPIP_COMPAT', '3.1.0');
203
-	//  on l'utilise (phase de dev, de test...) mais *que* en cas de comparaison
204
-	//  avec la version de SPIP (ne nuit donc pas aux tests de necessite
205
-	//  entre plugins)
206
-	if (defined('_DEV_VERSION_SPIP_COMPAT') && $avec_quoi == 'spip' && $version !== _DEV_VERSION_SPIP_COMPAT) {
207
-		if (plugin_version_compatible($intervalle, _DEV_VERSION_SPIP_COMPAT, $avec_quoi)) {
208
-			return true;
209
-		}
210
-		// si pas de compatibilite avec _DEV_VERSION_SPIP_COMPAT, on essaye quand meme avec la vrai version
211
-		// cas du plugin qui n'est compatible qu'avec cette nouvelle version
212
-	}
213
-
214
-	$minimum_inc = $intervalle[0] == '[';
215
-	$maximum_inc = str_ends_with($intervalle, ']');
216
-
217
-	if (strlen($minimum)) {
218
-		if ($minimum_inc && spip_version_compare($version, $minimum, '<')) {
219
-			return false;
220
-		}
221
-		if (!$minimum_inc && spip_version_compare($version, $minimum, '<=')) {
222
-			return false;
223
-		}
224
-	}
225
-	if (strlen($maximum)) {
226
-		if ($maximum_inc && spip_version_compare($version, $maximum, '>')) {
227
-			return false;
228
-		}
229
-		if (!$maximum_inc && spip_version_compare($version, $maximum, '>=')) {
230
-			return false;
231
-		}
232
-	}
233
-
234
-	return true;
190
+    if (!strlen($intervalle)) {
191
+        return true;
192
+    }
193
+    if (!preg_match(_EXTRAIRE_INTERVALLE, $intervalle, $regs)) {
194
+        return false;
195
+    }
196
+    // Extraction des bornes et traitement de * pour la borne sup :
197
+    // -- on autorise uniquement les ecritures 3.0.*, 3.*
198
+    $minimum = $regs[1];
199
+    $maximum = $regs[2];
200
+
201
+    //  si une version SPIP de compatibilité a été définie (dans
202
+    //  mes_options.php, sous la forme : define('_DEV_VERSION_SPIP_COMPAT', '3.1.0');
203
+    //  on l'utilise (phase de dev, de test...) mais *que* en cas de comparaison
204
+    //  avec la version de SPIP (ne nuit donc pas aux tests de necessite
205
+    //  entre plugins)
206
+    if (defined('_DEV_VERSION_SPIP_COMPAT') && $avec_quoi == 'spip' && $version !== _DEV_VERSION_SPIP_COMPAT) {
207
+        if (plugin_version_compatible($intervalle, _DEV_VERSION_SPIP_COMPAT, $avec_quoi)) {
208
+            return true;
209
+        }
210
+        // si pas de compatibilite avec _DEV_VERSION_SPIP_COMPAT, on essaye quand meme avec la vrai version
211
+        // cas du plugin qui n'est compatible qu'avec cette nouvelle version
212
+    }
213
+
214
+    $minimum_inc = $intervalle[0] == '[';
215
+    $maximum_inc = str_ends_with($intervalle, ']');
216
+
217
+    if (strlen($minimum)) {
218
+        if ($minimum_inc && spip_version_compare($version, $minimum, '<')) {
219
+            return false;
220
+        }
221
+        if (!$minimum_inc && spip_version_compare($version, $minimum, '<=')) {
222
+            return false;
223
+        }
224
+    }
225
+    if (strlen($maximum)) {
226
+        if ($maximum_inc && spip_version_compare($version, $maximum, '>')) {
227
+            return false;
228
+        }
229
+        if (!$maximum_inc && spip_version_compare($version, $maximum, '>=')) {
230
+            return false;
231
+        }
232
+    }
233
+
234
+    return true;
235 235
 }
236 236
 
237 237
 /**
@@ -248,62 +248,62 @@  discard block
 block discarded – undo
248 248
  * @return array
249 249
  */
250 250
 function liste_plugin_valides($liste_plug, $force = false) {
251
-	$liste_ext = liste_plugin_files(_DIR_PLUGINS_DIST);
252
-	$get_infos = charger_fonction('get_infos', 'plugins');
253
-	$infos = [
254
-		// lister les extensions qui sont automatiquement actives
255
-		'_DIR_PLUGINS_DIST' => $get_infos($liste_ext, $force, _DIR_PLUGINS_DIST),
256
-		'_DIR_PLUGINS' => $get_infos($liste_plug, $force, _DIR_PLUGINS)
257
-	];
258
-
259
-	// creer une premiere liste non ordonnee mais qui ne retient
260
-	// que les plugins valides, et dans leur derniere version en cas de doublon
261
-	$infos['_DIR_RESTREINT'][''] = $get_infos('./', $force, _DIR_RESTREINT);
262
-	$infos['_DIR_RESTREINT']['SPIP']['version'] = $GLOBALS['spip_version_branche'];
263
-	$infos['_DIR_RESTREINT']['SPIP']['chemin'] = [];
264
-	$liste_non_classee = [
265
-		'SPIP' => [
266
-			'nom' => 'SPIP',
267
-			'etat' => 'stable',
268
-			'version' => $GLOBALS['spip_version_branche'],
269
-			'dir_type' => '_DIR_RESTREINT',
270
-			'dir' => '',
271
-		]
272
-	];
273
-
274
-	$invalides = [];
275
-	foreach ($liste_ext as $plug) {
276
-		if (isset($infos['_DIR_PLUGINS_DIST'][$plug])) {
277
-			plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS_DIST');
278
-		}
279
-	}
280
-	foreach ($liste_plug as $plug) {
281
-		if (isset($infos['_DIR_PLUGINS'][$plug])) {
282
-			$r = plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS');
283
-			if (is_array($r)) {
284
-				$invalides = array_merge($invalides, $r);
285
-			}
286
-		}
287
-	}
288
-
289
-	if (defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
290
-		$infos['_DIR_PLUGINS_SUPPL'] = $get_infos($liste_plug, false, _DIR_PLUGINS_SUPPL);
291
-		foreach ($liste_plug as $plug) {
292
-			if (isset($infos['_DIR_PLUGINS_SUPPL'][$plug])) {
293
-				$r = plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS_SUPPL');
294
-				if (is_array($r)) {
295
-					$invalides = array_merge($invalides, $r);
296
-				}
297
-			}
298
-		}
299
-	}
300
-
301
-	plugin_fixer_procure($liste_non_classee, $infos);
302
-
303
-	// les plugins qui sont dans $liste_non_classee ne sont pas invalides (on a trouve un autre version valide)
304
-	$invalides = array_diff_key($invalides, $liste_non_classee);
305
-
306
-	return [$infos, $liste_non_classee, $invalides];
251
+    $liste_ext = liste_plugin_files(_DIR_PLUGINS_DIST);
252
+    $get_infos = charger_fonction('get_infos', 'plugins');
253
+    $infos = [
254
+        // lister les extensions qui sont automatiquement actives
255
+        '_DIR_PLUGINS_DIST' => $get_infos($liste_ext, $force, _DIR_PLUGINS_DIST),
256
+        '_DIR_PLUGINS' => $get_infos($liste_plug, $force, _DIR_PLUGINS)
257
+    ];
258
+
259
+    // creer une premiere liste non ordonnee mais qui ne retient
260
+    // que les plugins valides, et dans leur derniere version en cas de doublon
261
+    $infos['_DIR_RESTREINT'][''] = $get_infos('./', $force, _DIR_RESTREINT);
262
+    $infos['_DIR_RESTREINT']['SPIP']['version'] = $GLOBALS['spip_version_branche'];
263
+    $infos['_DIR_RESTREINT']['SPIP']['chemin'] = [];
264
+    $liste_non_classee = [
265
+        'SPIP' => [
266
+            'nom' => 'SPIP',
267
+            'etat' => 'stable',
268
+            'version' => $GLOBALS['spip_version_branche'],
269
+            'dir_type' => '_DIR_RESTREINT',
270
+            'dir' => '',
271
+        ]
272
+    ];
273
+
274
+    $invalides = [];
275
+    foreach ($liste_ext as $plug) {
276
+        if (isset($infos['_DIR_PLUGINS_DIST'][$plug])) {
277
+            plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS_DIST');
278
+        }
279
+    }
280
+    foreach ($liste_plug as $plug) {
281
+        if (isset($infos['_DIR_PLUGINS'][$plug])) {
282
+            $r = plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS');
283
+            if (is_array($r)) {
284
+                $invalides = array_merge($invalides, $r);
285
+            }
286
+        }
287
+    }
288
+
289
+    if (defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
290
+        $infos['_DIR_PLUGINS_SUPPL'] = $get_infos($liste_plug, false, _DIR_PLUGINS_SUPPL);
291
+        foreach ($liste_plug as $plug) {
292
+            if (isset($infos['_DIR_PLUGINS_SUPPL'][$plug])) {
293
+                $r = plugin_valide_resume($liste_non_classee, $plug, $infos, '_DIR_PLUGINS_SUPPL');
294
+                if (is_array($r)) {
295
+                    $invalides = array_merge($invalides, $r);
296
+                }
297
+            }
298
+        }
299
+    }
300
+
301
+    plugin_fixer_procure($liste_non_classee, $infos);
302
+
303
+    // les plugins qui sont dans $liste_non_classee ne sont pas invalides (on a trouve un autre version valide)
304
+    $invalides = array_diff_key($invalides, $liste_non_classee);
305
+
306
+    return [$infos, $liste_non_classee, $invalides];
307 307
 }
308 308
 
309 309
 /**
@@ -323,37 +323,37 @@  discard block
 block discarded – undo
323 323
  *   array description short si on ne le retient pas (pour memorisation dans une table des erreurs)
324 324
  */
325 325
 function plugin_valide_resume(&$liste, $plug, $infos, $dir_type) {
326
-	$i = $infos[$dir_type][$plug];
327
-	// minimum syndical pour afficher si le xml avait des erreurs éventuelles
328
-	$short_desc = [
329
-		'dir' => $plug,
330
-		'dir_type' => $dir_type
331
-	];
332
-	if (empty($i['prefix'])) {
333
-		// erreur xml ? mais sans connaissance du prefix, on retourne le chemin…
334
-		$short_desc['erreur'] = $i['erreur'] ?? ['?'];
335
-		return [$plug => $short_desc];
336
-	}
337
-
338
-	$p = strtoupper($i['prefix']);
339
-	$short_desc['nom'] = $i['nom'];
340
-	$short_desc['etat'] = $i['etat'];
341
-	$short_desc['version'] = $i['version'];
342
-
343
-	if (isset($i['erreur']) && $i['erreur']) {
344
-		$short_desc['erreur'] = $i['erreur'];
345
-		return [$p => $short_desc];
346
-	}
347
-	if (!plugin_version_compatible($i['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
348
-		return [$p => $short_desc];
349
-	}
350
-	if (
351
-		!isset($liste[$p]) || spip_version_compare($i['version'], $liste[$p]['version'], '>')
352
-	) {
353
-		$liste[$p] = $short_desc;
354
-	}
355
-	// ok le plugin etait deja dans la liste ou on a choisi une version plus recente
356
-	return $p;
326
+    $i = $infos[$dir_type][$plug];
327
+    // minimum syndical pour afficher si le xml avait des erreurs éventuelles
328
+    $short_desc = [
329
+        'dir' => $plug,
330
+        'dir_type' => $dir_type
331
+    ];
332
+    if (empty($i['prefix'])) {
333
+        // erreur xml ? mais sans connaissance du prefix, on retourne le chemin…
334
+        $short_desc['erreur'] = $i['erreur'] ?? ['?'];
335
+        return [$plug => $short_desc];
336
+    }
337
+
338
+    $p = strtoupper($i['prefix']);
339
+    $short_desc['nom'] = $i['nom'];
340
+    $short_desc['etat'] = $i['etat'];
341
+    $short_desc['version'] = $i['version'];
342
+
343
+    if (isset($i['erreur']) && $i['erreur']) {
344
+        $short_desc['erreur'] = $i['erreur'];
345
+        return [$p => $short_desc];
346
+    }
347
+    if (!plugin_version_compatible($i['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
348
+        return [$p => $short_desc];
349
+    }
350
+    if (
351
+        !isset($liste[$p]) || spip_version_compare($i['version'], $liste[$p]['version'], '>')
352
+    ) {
353
+        $liste[$p] = $short_desc;
354
+    }
355
+    // ok le plugin etait deja dans la liste ou on a choisi une version plus recente
356
+    return $p;
357 357
 }
358 358
 
359 359
 /**
@@ -369,47 +369,47 @@  discard block
 block discarded – undo
369 369
  * @param array $infos
370 370
  */
371 371
 function plugin_fixer_procure(&$liste, &$infos) {
372
-	foreach ($liste as $p => $resume) {
373
-		$i = $infos[$resume['dir_type']][$resume['dir']];
374
-		if (isset($i['procure']) && $i['procure']) {
375
-			foreach ($i['procure'] as $procure) {
376
-				$p = strtoupper($procure['nom']);
377
-				$dir = $resume['dir'];
378
-				if ($dir) {
379
-					$dir .= '/';
380
-				}
381
-				$dir .= 'procure:' . $procure['nom'];
382
-
383
-				$procure['etat'] = '?';
384
-				$procure['dir_type'] = $resume['dir_type'];
385
-				$procure['dir'] = $dir;
386
-
387
-				// si ce plugin n'est pas deja procure, ou dans une version plus ancienne
388
-				// on ajoute cette version a la liste
389
-				if (
390
-					!isset($liste[$p])
391
-					|| spip_version_compare($procure['version'], $liste[$p]['version'], '>')
392
-				) {
393
-					$liste[$p] = $procure;
394
-
395
-					// on fournit une information minimale pour ne pas perturber la compilation
396
-					$infos[$resume['dir_type']][$dir] = [
397
-						'prefix' => $procure['nom'],
398
-						'nom' => $procure['nom'],
399
-						'etat' => $procure['etat'],
400
-						'version' => $procure['version'],
401
-						'chemin' => [],
402
-						'necessite' => [],
403
-						'utilise' => [],
404
-						'lib' => [],
405
-						'menu' => [],
406
-						'onglet' => [],
407
-						'procure' => [],
408
-					];
409
-				}
410
-			}
411
-		}
412
-	}
372
+    foreach ($liste as $p => $resume) {
373
+        $i = $infos[$resume['dir_type']][$resume['dir']];
374
+        if (isset($i['procure']) && $i['procure']) {
375
+            foreach ($i['procure'] as $procure) {
376
+                $p = strtoupper($procure['nom']);
377
+                $dir = $resume['dir'];
378
+                if ($dir) {
379
+                    $dir .= '/';
380
+                }
381
+                $dir .= 'procure:' . $procure['nom'];
382
+
383
+                $procure['etat'] = '?';
384
+                $procure['dir_type'] = $resume['dir_type'];
385
+                $procure['dir'] = $dir;
386
+
387
+                // si ce plugin n'est pas deja procure, ou dans une version plus ancienne
388
+                // on ajoute cette version a la liste
389
+                if (
390
+                    !isset($liste[$p])
391
+                    || spip_version_compare($procure['version'], $liste[$p]['version'], '>')
392
+                ) {
393
+                    $liste[$p] = $procure;
394
+
395
+                    // on fournit une information minimale pour ne pas perturber la compilation
396
+                    $infos[$resume['dir_type']][$dir] = [
397
+                        'prefix' => $procure['nom'],
398
+                        'nom' => $procure['nom'],
399
+                        'etat' => $procure['etat'],
400
+                        'version' => $procure['version'],
401
+                        'chemin' => [],
402
+                        'necessite' => [],
403
+                        'utilise' => [],
404
+                        'lib' => [],
405
+                        'menu' => [],
406
+                        'onglet' => [],
407
+                        'procure' => [],
408
+                    ];
409
+                }
410
+            }
411
+        }
412
+    }
413 413
 }
414 414
 
415 415
 /**
@@ -423,17 +423,17 @@  discard block
 block discarded – undo
423 423
  * @return array
424 424
  */
425 425
 function liste_chemin_plugin($liste, $dir_plugins = _DIR_PLUGINS) {
426
-	foreach ($liste as $prefix => $infos) {
427
-		if (
428
-			!$dir_plugins || defined($infos['dir_type']) && constant($infos['dir_type']) == $dir_plugins
429
-		) {
430
-			$liste[$prefix] = $infos['dir'];
431
-		} else {
432
-			unset($liste[$prefix]);
433
-		}
434
-	}
435
-
436
-	return $liste;
426
+    foreach ($liste as $prefix => $infos) {
427
+        if (
428
+            !$dir_plugins || defined($infos['dir_type']) && constant($infos['dir_type']) == $dir_plugins
429
+        ) {
430
+            $liste[$prefix] = $infos['dir'];
431
+        } else {
432
+            unset($liste[$prefix]);
433
+        }
434
+    }
435
+
436
+    return $liste;
437 437
 }
438 438
 
439 439
 /**
@@ -448,9 +448,9 @@  discard block
 block discarded – undo
448 448
  * @return array
449 449
  */
450 450
 function liste_chemin_plugin_actifs($dir_plugins = _DIR_PLUGINS) {
451
-	include_spip('plugins/installer');
451
+    include_spip('plugins/installer');
452 452
 
453
-	return liste_chemin_plugin(liste_plugin_actifs(), $dir_plugins);
453
+    return liste_chemin_plugin(liste_plugin_actifs(), $dir_plugins);
454 454
 }
455 455
 
456 456
 /**
@@ -481,53 +481,53 @@  discard block
 block discarded – undo
481 481
  *                qui n'ont pas satisfait leurs dépendances
482 482
 **/
483 483
 function plugin_trier($infos, $liste_non_classee) {
484
-	$toute_la_liste = $liste_non_classee;
485
-	$liste = $ordre = [];
486
-	$count = 0;
487
-
488
-	while (($c = count($liste_non_classee)) && $c != $count) { // tant qu'il reste des plugins a classer, et qu'on ne stagne pas
489
-		#echo "tour::";var_dump($liste_non_classee);
490
-		$count = $c;
491
-		foreach ($liste_non_classee as $p => $resume) {
492
-			$plug = $resume['dir'];
493
-			$dir_type = $resume['dir_type'];
494
-			$info1 = $infos[$dir_type][$plug];
495
-			// si des plugins sont necessaires,
496
-			// on ne peut inserer qu'apres eux
497
-			foreach ($info1['necessite'] as $need) {
498
-				$nom = strtoupper($need['nom']);
499
-				$compat = $need['compatibilite'] ?? '';
500
-				if (!isset($liste[$nom]) || !plugin_version_compatible($compat, $liste[$nom]['version'])) {
501
-					$info1 = false;
502
-					break;
503
-				}
504
-			}
505
-			if (!$info1) {
506
-				continue;
507
-			}
508
-			// idem si des plugins sont utiles,
509
-			// sauf si ils sont de toute facon absents de la liste
510
-			foreach ($info1['utilise'] as $need) {
511
-				$nom = strtoupper($need['nom']);
512
-				$compat = $need['compatibilite'] ?? '';
513
-				if (isset($toute_la_liste[$nom])) {
514
-					if (
515
-						!isset($liste[$nom]) || !plugin_version_compatible($compat, $liste[$nom]['version'])
516
-					) {
517
-						$info1 = false;
518
-						break;
519
-					}
520
-				}
521
-			}
522
-			if ($info1) {
523
-				$ordre[$p] = $info1;
524
-				$liste[$p] = $liste_non_classee[$p];
525
-				unset($liste_non_classee[$p]);
526
-			}
527
-		}
528
-	}
529
-
530
-	return [$liste, $ordre, $liste_non_classee];
484
+    $toute_la_liste = $liste_non_classee;
485
+    $liste = $ordre = [];
486
+    $count = 0;
487
+
488
+    while (($c = count($liste_non_classee)) && $c != $count) { // tant qu'il reste des plugins a classer, et qu'on ne stagne pas
489
+        #echo "tour::";var_dump($liste_non_classee);
490
+        $count = $c;
491
+        foreach ($liste_non_classee as $p => $resume) {
492
+            $plug = $resume['dir'];
493
+            $dir_type = $resume['dir_type'];
494
+            $info1 = $infos[$dir_type][$plug];
495
+            // si des plugins sont necessaires,
496
+            // on ne peut inserer qu'apres eux
497
+            foreach ($info1['necessite'] as $need) {
498
+                $nom = strtoupper($need['nom']);
499
+                $compat = $need['compatibilite'] ?? '';
500
+                if (!isset($liste[$nom]) || !plugin_version_compatible($compat, $liste[$nom]['version'])) {
501
+                    $info1 = false;
502
+                    break;
503
+                }
504
+            }
505
+            if (!$info1) {
506
+                continue;
507
+            }
508
+            // idem si des plugins sont utiles,
509
+            // sauf si ils sont de toute facon absents de la liste
510
+            foreach ($info1['utilise'] as $need) {
511
+                $nom = strtoupper($need['nom']);
512
+                $compat = $need['compatibilite'] ?? '';
513
+                if (isset($toute_la_liste[$nom])) {
514
+                    if (
515
+                        !isset($liste[$nom]) || !plugin_version_compatible($compat, $liste[$nom]['version'])
516
+                    ) {
517
+                        $info1 = false;
518
+                        break;
519
+                    }
520
+                }
521
+            }
522
+            if ($info1) {
523
+                $ordre[$p] = $info1;
524
+                $liste[$p] = $liste_non_classee[$p];
525
+                unset($liste_non_classee[$p]);
526
+            }
527
+        }
528
+    }
529
+
530
+    return [$liste, $ordre, $liste_non_classee];
531 531
 }
532 532
 
533 533
 /**
@@ -544,40 +544,40 @@  discard block
 block discarded – undo
544 544
  *     Répertoire (plugins, plugins-dist, ...) => Couples (prefixes => infos completes) des plugins qu'ils contiennent
545 545
 **/
546 546
 function plugins_erreurs($liste_non_classee, $liste, $infos, $msg = []) {
547
-	static $erreurs = [];
548
-
549
-	if (!is_array($liste)) {
550
-		$liste = [];
551
-	}
552
-
553
-	// les plugins en erreur ne sont pas actifs ; ils ne doivent pas être dans la liste
554
-	$liste = array_diff_key($liste, $liste_non_classee);
555
-
556
-	foreach ($liste_non_classee as $p => $resume) {
557
-		$dir_type = $resume['dir_type'];
558
-		$plug = $resume['dir'];
559
-		$k = $infos[$dir_type][$plug];
560
-
561
-		$plug = constant($dir_type) . $plug;
562
-		if (!isset($msg[$p])) {
563
-			if (isset($resume['erreur']) && $resume['erreur']) {
564
-				$msg[$p] = [$resume['erreur']];
565
-			}
566
-			elseif (!plugin_version_compatible($k['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
567
-				$msg[$p] = [plugin_message_incompatibilite($k['compatibilite'], $GLOBALS['spip_version_branche'], 'SPIP', 'necessite')];
568
-			}
569
-			elseif (!$msg[$p] = plugin_necessite($k['necessite'], $liste, 'necessite')) {
570
-				$msg[$p] = plugin_necessite($k['utilise'], $liste, 'utilise');
571
-			}
572
-		} else {
573
-			foreach ($msg[$p] as $c => $l) {
574
-				$msg[$p][$c] = plugin_controler_lib($l['nom'], $l['lien']);
575
-			}
576
-		}
577
-		$erreurs[$plug] = $msg[$p];
578
-	}
579
-
580
-	ecrire_meta('plugin_erreur_activation', serialize($erreurs));
547
+    static $erreurs = [];
548
+
549
+    if (!is_array($liste)) {
550
+        $liste = [];
551
+    }
552
+
553
+    // les plugins en erreur ne sont pas actifs ; ils ne doivent pas être dans la liste
554
+    $liste = array_diff_key($liste, $liste_non_classee);
555
+
556
+    foreach ($liste_non_classee as $p => $resume) {
557
+        $dir_type = $resume['dir_type'];
558
+        $plug = $resume['dir'];
559
+        $k = $infos[$dir_type][$plug];
560
+
561
+        $plug = constant($dir_type) . $plug;
562
+        if (!isset($msg[$p])) {
563
+            if (isset($resume['erreur']) && $resume['erreur']) {
564
+                $msg[$p] = [$resume['erreur']];
565
+            }
566
+            elseif (!plugin_version_compatible($k['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
567
+                $msg[$p] = [plugin_message_incompatibilite($k['compatibilite'], $GLOBALS['spip_version_branche'], 'SPIP', 'necessite')];
568
+            }
569
+            elseif (!$msg[$p] = plugin_necessite($k['necessite'], $liste, 'necessite')) {
570
+                $msg[$p] = plugin_necessite($k['utilise'], $liste, 'utilise');
571
+            }
572
+        } else {
573
+            foreach ($msg[$p] as $c => $l) {
574
+                $msg[$p][$c] = plugin_controler_lib($l['nom'], $l['lien']);
575
+            }
576
+        }
577
+        $erreurs[$plug] = $msg[$p];
578
+    }
579
+
580
+    ecrire_meta('plugin_erreur_activation', serialize($erreurs));
581 581
 }
582 582
 
583 583
 /**
@@ -592,25 +592,25 @@  discard block
 block discarded – undo
592 592
  *     - Liste des erreurs ou code HTML des erreurs
593 593
 **/
594 594
 function plugin_donne_erreurs($raw = false, $raz = true) {
595
-	if (!isset($GLOBALS['meta']['plugin_erreur_activation'])) {
596
-		return $raw ? [] : '';
597
-	}
598
-	$list = @unserialize($GLOBALS['meta']['plugin_erreur_activation']);
599
-	// Compat ancienne version
600
-	if (!$list) {
601
-		$list = $raw ? [] : $GLOBALS['meta']['plugin_erreur_activation'];
602
-	} elseif (!$raw) {
603
-		foreach ($list as $plug => $msg) {
604
-			$list[$plug] = '<li>' . _T('plugin_impossible_activer', ['plugin' => $plug])
605
-				. '<ul><li>' . implode('</li><li>', $msg) . '</li></ul></li>';
606
-		}
607
-		$list = '<ul>' . join("\n", $list) . '</ul>';
608
-	}
609
-	if ($raz) {
610
-		effacer_meta('plugin_erreur_activation');
611
-	}
612
-
613
-	return $list;
595
+    if (!isset($GLOBALS['meta']['plugin_erreur_activation'])) {
596
+        return $raw ? [] : '';
597
+    }
598
+    $list = @unserialize($GLOBALS['meta']['plugin_erreur_activation']);
599
+    // Compat ancienne version
600
+    if (!$list) {
601
+        $list = $raw ? [] : $GLOBALS['meta']['plugin_erreur_activation'];
602
+    } elseif (!$raw) {
603
+        foreach ($list as $plug => $msg) {
604
+            $list[$plug] = '<li>' . _T('plugin_impossible_activer', ['plugin' => $plug])
605
+                . '<ul><li>' . implode('</li><li>', $msg) . '</li></ul></li>';
606
+        }
607
+        $list = '<ul>' . join("\n", $list) . '</ul>';
608
+    }
609
+    if ($raz) {
610
+        effacer_meta('plugin_erreur_activation');
611
+    }
612
+
613
+    return $list;
614 614
 }
615 615
 
616 616
 /**
@@ -630,21 +630,21 @@  discard block
 block discarded – undo
630 630
  *
631 631
  **/
632 632
 function plugin_necessite($n, $liste, $balise = 'necessite') {
633
-	$msg = [];
634
-	foreach ($n as $need) {
635
-		$id = strtoupper($need['nom']);
636
-		$r = plugin_controler_necessite(
637
-			$liste,
638
-			$id,
639
-			$need['compatibilite'] ?? '',
640
-			$balise
641
-		);
642
-		if ($r) {
643
-			$msg[] = $r;
644
-		}
645
-	}
646
-
647
-	return $msg;
633
+    $msg = [];
634
+    foreach ($n as $need) {
635
+        $id = strtoupper($need['nom']);
636
+        $r = plugin_controler_necessite(
637
+            $liste,
638
+            $id,
639
+            $need['compatibilite'] ?? '',
640
+            $balise
641
+        );
642
+        if ($r) {
643
+            $msg[] = $r;
644
+        }
645
+    }
646
+
647
+    return $msg;
648 648
 }
649 649
 
650 650
 /**
@@ -666,19 +666,19 @@  discard block
 block discarded – undo
666 666
  *    Message d'erreur lorsque la dépendance est absente.
667 667
  **/
668 668
 function plugin_controler_necessite($liste, $nom, $intervalle, $balise) {
669
-	if (isset($liste[$nom]) && plugin_version_compatible($intervalle, $liste[$nom]['version'])) {
670
-		return '';
671
-	}
672
-	// Si l'on a un <utilise="plugin non actif" />, ne pas renvoyer d'erreur
673
-	if ($balise === 'utilise' && !isset($liste[$nom])) {
674
-		return '';
675
-	}
676
-	return plugin_message_incompatibilite(
677
-		$intervalle,
678
-		(isset($liste[$nom]) ? $liste[$nom]['version'] : ''),
679
-		$nom,
680
-		$balise
681
-	);
669
+    if (isset($liste[$nom]) && plugin_version_compatible($intervalle, $liste[$nom]['version'])) {
670
+        return '';
671
+    }
672
+    // Si l'on a un <utilise="plugin non actif" />, ne pas renvoyer d'erreur
673
+    if ($balise === 'utilise' && !isset($liste[$nom])) {
674
+        return '';
675
+    }
676
+    return plugin_message_incompatibilite(
677
+        $intervalle,
678
+        (isset($liste[$nom]) ? $liste[$nom]['version'] : ''),
679
+        $nom,
680
+        $balise
681
+    );
682 682
 }
683 683
 
684 684
 /**
@@ -695,70 +695,70 @@  discard block
 block discarded – undo
695 695
  */
696 696
 function plugin_message_incompatibilite($intervalle, $version, $nom, $balise) {
697 697
 
698
-	// prendre en compte les erreurs de dépendances à PHP
699
-	// ou à une extension PHP avec des messages d'erreurs dédiés.
700
-	$type = 'plugin';
701
-	if ($nom === 'SPIP') {
702
-		$type = 'spip';
703
-	} elseif ($nom === 'PHP') {
704
-		$type = 'php';
705
-	} elseif (str_starts_with($nom, 'PHP:')) {
706
-		$type = 'extension_php';
707
-		[, $nom] = explode(':', $nom, 2);
708
-	}
709
-
710
-	if (preg_match(_EXTRAIRE_INTERVALLE, $intervalle, $regs)) {
711
-		$minimum = $regs[1];
712
-		$maximum = $regs[2];
713
-
714
-		$minimum_inclus = $intervalle[0] == '[';
715
-		$maximum_inclus = str_ends_with($intervalle, ']');
716
-
717
-		if (strlen($minimum)) {
718
-			if ($minimum_inclus && spip_version_compare($version, $minimum, '<')) {
719
-				return _T("plugin_{$balise}_{$type}", [
720
-					'plugin' => $nom,
721
-					'version' => ' &ge; ' . $minimum
722
-				]);
723
-			}
724
-			if (!$minimum_inclus && spip_version_compare($version, $minimum, '<=')) {
725
-				return _T("plugin_{$balise}_{$type}", [
726
-					'plugin' => $nom,
727
-					'version' => ' &gt; ' . $minimum
728
-				]);
729
-			}
730
-		}
731
-
732
-		if (strlen($maximum)) {
733
-			if ($maximum_inclus && spip_version_compare($version, $maximum, '>')) {
734
-				return _T("plugin_{$balise}_{$type}", [
735
-					'plugin' => $nom,
736
-					'version' => ' &le; ' . $maximum
737
-				]);
738
-			}
739
-			if (!$maximum_inclus && spip_version_compare($version, $maximum, '>=')) {
740
-				return _T("plugin_{$balise}_plugin", [
741
-					'plugin' => $nom,
742
-					'version' => ' &lt; ' . $maximum
743
-				]);
744
-			}
745
-		}
746
-	}
747
-
748
-	// note : il ne peut pas y avoir d'erreur sur
749
-	// - un 'utilise' sans version.
750
-	// - un 'php' sans version.
751
-	return _T("plugin_necessite_{$type}_sans_version", ['plugin' => $nom]);
698
+    // prendre en compte les erreurs de dépendances à PHP
699
+    // ou à une extension PHP avec des messages d'erreurs dédiés.
700
+    $type = 'plugin';
701
+    if ($nom === 'SPIP') {
702
+        $type = 'spip';
703
+    } elseif ($nom === 'PHP') {
704
+        $type = 'php';
705
+    } elseif (str_starts_with($nom, 'PHP:')) {
706
+        $type = 'extension_php';
707
+        [, $nom] = explode(':', $nom, 2);
708
+    }
709
+
710
+    if (preg_match(_EXTRAIRE_INTERVALLE, $intervalle, $regs)) {
711
+        $minimum = $regs[1];
712
+        $maximum = $regs[2];
713
+
714
+        $minimum_inclus = $intervalle[0] == '[';
715
+        $maximum_inclus = str_ends_with($intervalle, ']');
716
+
717
+        if (strlen($minimum)) {
718
+            if ($minimum_inclus && spip_version_compare($version, $minimum, '<')) {
719
+                return _T("plugin_{$balise}_{$type}", [
720
+                    'plugin' => $nom,
721
+                    'version' => ' &ge; ' . $minimum
722
+                ]);
723
+            }
724
+            if (!$minimum_inclus && spip_version_compare($version, $minimum, '<=')) {
725
+                return _T("plugin_{$balise}_{$type}", [
726
+                    'plugin' => $nom,
727
+                    'version' => ' &gt; ' . $minimum
728
+                ]);
729
+            }
730
+        }
731
+
732
+        if (strlen($maximum)) {
733
+            if ($maximum_inclus && spip_version_compare($version, $maximum, '>')) {
734
+                return _T("plugin_{$balise}_{$type}", [
735
+                    'plugin' => $nom,
736
+                    'version' => ' &le; ' . $maximum
737
+                ]);
738
+            }
739
+            if (!$maximum_inclus && spip_version_compare($version, $maximum, '>=')) {
740
+                return _T("plugin_{$balise}_plugin", [
741
+                    'plugin' => $nom,
742
+                    'version' => ' &lt; ' . $maximum
743
+                ]);
744
+            }
745
+        }
746
+    }
747
+
748
+    // note : il ne peut pas y avoir d'erreur sur
749
+    // - un 'utilise' sans version.
750
+    // - un 'php' sans version.
751
+    return _T("plugin_necessite_{$type}_sans_version", ['plugin' => $nom]);
752 752
 }
753 753
 
754 754
 
755 755
 function plugin_controler_lib($lib, $url) {
756
-	/* Feature sortie du core, voir STP
756
+    /* Feature sortie du core, voir STP
757 757
 	 * if ($url) {
758 758
 		include_spip('inc/charger_plugin');
759 759
 		$url = '<br />'	. bouton_telechargement_plugin($url, 'lib');
760 760
 	}*/
761
-	return _T('plugin_necessite_lib', ['lib' => $lib]) . " <a href='$url'>$url</a>";
761
+    return _T('plugin_necessite_lib', ['lib' => $lib]) . " <a href='$url'>$url</a>";
762 762
 }
763 763
 
764 764
 
@@ -773,7 +773,7 @@  discard block
 block discarded – undo
773 773
  *     true si il y a eu des modifications sur la liste des plugins actifs, false sinon
774 774
  **/
775 775
 function actualise_plugins_actifs($pipe_recherche = false) {
776
-	return ecrire_plugin_actifs('', $pipe_recherche, 'force');
776
+    return ecrire_plugin_actifs('', $pipe_recherche, 'force');
777 777
 }
778 778
 
779 779
 
@@ -800,115 +800,115 @@  discard block
 block discarded – undo
800 800
  **/
801 801
 function ecrire_plugin_actifs($plugin, $pipe_recherche = false, $operation = 'raz') {
802 802
 
803
-	// creer le repertoire cache/ si necessaire ! (installation notamment)
804
-	$cache = sous_repertoire(_DIR_CACHE, '', false, true);
805
-
806
-	// Si on n'a ni cache accessible, ni connexion SQL, on ne peut pas faire grand chose encore.
807
-	if (!$cache && !spip_connect()) {
808
-		return false;
809
-	}
810
-
811
-	if ($operation != 'raz') {
812
-		$plugin_valides = liste_chemin_plugin_actifs();
813
-		$plugin_valides = is_plugin_dir($plugin_valides);
814
-		if (defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
815
-			$plugin_valides_supp = liste_chemin_plugin_actifs(_DIR_PLUGINS_SUPPL);
816
-			$plugin_valides_supp = is_plugin_dir($plugin_valides_supp, _DIR_PLUGINS_SUPPL);
817
-			$plugin_valides = array_merge($plugin_valides, $plugin_valides_supp);
818
-		}
819
-		// si des plugins sont en attentes (coches mais impossible a activer)
820
-		// on les reinjecte ici
821
-		if (
822
-			isset($GLOBALS['meta']['plugin_attente']) && ($a = unserialize($GLOBALS['meta']['plugin_attente']))
823
-		) {
824
-			$plugin_valides = $plugin_valides + liste_chemin_plugin($a);
825
-		}
826
-
827
-		if ($operation == 'ajoute') {
828
-			$plugin = array_merge($plugin_valides, $plugin);
829
-		} elseif ($operation == 'enleve') {
830
-			$plugin = array_diff($plugin_valides, $plugin);
831
-		} else {
832
-			$plugin = $plugin_valides;
833
-		}
834
-	}
835
-	$actifs_avant = $GLOBALS['meta']['plugin'] ?? '';
836
-
837
-	// si une fonction de gestion de dependances existe, l'appeler ici
838
-	if ($ajouter_dependances = charger_fonction('ajouter_dependances', 'plugins', true)) {
839
-		$plugin = $ajouter_dependances($plugin);
840
-	}
841
-
842
-	// recharger le xml des plugins a activer
843
-	// on force le reload ici, meme si le fichier xml n'a pas change
844
-	// pour ne pas rater l'ajout ou la suppression d'un fichier fonctions/options/administrations
845
-	// pourra etre evite quand on ne supportera plus les plugin.xml
846
-	// en deplacant la detection de ces fichiers dans la compilation ci dessous
847
-	[$infos, $liste, $invalides] = liste_plugin_valides($plugin, true);
848
-	// trouver l'ordre d'activation
849
-	[$plugin_valides, $ordre, $reste] = plugin_trier($infos, $liste);
850
-	if ($invalides || $reste) {
851
-		plugins_erreurs(array_merge($invalides, $reste), $liste, $infos);
852
-	}
853
-
854
-	// Ignorer les plugins necessitant une lib absente
855
-	// et preparer la meta d'entete Http
856
-	$err = $msg = $header = [];
857
-	foreach ($plugin_valides as $p => $resume) {
858
-		// Les headers ne doivent pas indiquer les versions des extensions PHP, ni la version PHP
859
-		if (!str_starts_with($p, 'PHP:') && $p !== 'PHP') {
860
-			$header[] = $p . ($resume['version'] ? '(' . $resume['version'] . ')' : '');
861
-		}
862
-		if ($resume['dir']) {
863
-			foreach ($infos[$resume['dir_type']][$resume['dir']]['lib'] as $l) {
864
-				if (!find_in_path($l['nom'], 'lib/')) {
865
-					$err[$p] = $resume;
866
-					$msg[$p][] = $l;
867
-					unset($plugin_valides[$p]);
868
-				}
869
-			}
870
-		}
871
-	}
872
-	if ($err) {
873
-		plugins_erreurs($err, '', $infos, $msg);
874
-	}
875
-
876
-	if (isset($GLOBALS['meta']['message_crash_plugins'])) {
877
-		effacer_meta('message_crash_plugins');
878
-	}
879
-	ecrire_meta('plugin', serialize($plugin_valides));
880
-	$liste = array_diff_key($liste, $plugin_valides);
881
-	ecrire_meta('plugin_attente', serialize($liste));
882
-	$header = strtolower(implode(',', $header));
883
-	if (!isset($GLOBALS['spip_header_silencieux']) || !$GLOBALS['spip_header_silencieux']) {
884
-		ecrire_fichier(
885
-			_DIR_VAR . 'config.txt',
886
-			(defined('_HEADER_COMPOSED_BY') ? _HEADER_COMPOSED_BY : 'Composed-By: SPIP') . ' ' . $GLOBALS['spip_version_affichee'] . ' @ www.spip.net + ' . $header
887
-		);
888
-	} else {
889
-		@unlink(_DIR_VAR . 'config.txt');
890
-	}
891
-	// generer charger_plugins_chemin.php
892
-	plugins_precompile_chemin($plugin_valides, $ordre);
893
-	// generer les fichiers
894
-	// - charger_plugins_options.php
895
-	// - charger_plugins_fonctions.php
896
-	plugins_precompile_xxxtions($plugin_valides, $ordre);
897
-	// charger les chemins des plugins et les fichiers d'options
898
-	// (qui peuvent déclarer / utiliser des pipelines, ajouter d'autres chemins)
899
-	plugins_amorcer_plugins_actifs();
900
-	// mise a jour de la matrice des pipelines
901
-	$prepend_code = pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche);
902
-	// generer le fichier _CACHE_PIPELINE
903
-	pipeline_precompile($prepend_code);
904
-
905
-	if (spip_connect()) {
906
-		// lancer et initialiser les nouveaux crons !
907
-		include_spip('inc/genie');
908
-		genie_queue_watch_dist();
909
-	}
910
-
911
-	return ($GLOBALS['meta']['plugin'] != $actifs_avant);
803
+    // creer le repertoire cache/ si necessaire ! (installation notamment)
804
+    $cache = sous_repertoire(_DIR_CACHE, '', false, true);
805
+
806
+    // Si on n'a ni cache accessible, ni connexion SQL, on ne peut pas faire grand chose encore.
807
+    if (!$cache && !spip_connect()) {
808
+        return false;
809
+    }
810
+
811
+    if ($operation != 'raz') {
812
+        $plugin_valides = liste_chemin_plugin_actifs();
813
+        $plugin_valides = is_plugin_dir($plugin_valides);
814
+        if (defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
815
+            $plugin_valides_supp = liste_chemin_plugin_actifs(_DIR_PLUGINS_SUPPL);
816
+            $plugin_valides_supp = is_plugin_dir($plugin_valides_supp, _DIR_PLUGINS_SUPPL);
817
+            $plugin_valides = array_merge($plugin_valides, $plugin_valides_supp);
818
+        }
819
+        // si des plugins sont en attentes (coches mais impossible a activer)
820
+        // on les reinjecte ici
821
+        if (
822
+            isset($GLOBALS['meta']['plugin_attente']) && ($a = unserialize($GLOBALS['meta']['plugin_attente']))
823
+        ) {
824
+            $plugin_valides = $plugin_valides + liste_chemin_plugin($a);
825
+        }
826
+
827
+        if ($operation == 'ajoute') {
828
+            $plugin = array_merge($plugin_valides, $plugin);
829
+        } elseif ($operation == 'enleve') {
830
+            $plugin = array_diff($plugin_valides, $plugin);
831
+        } else {
832
+            $plugin = $plugin_valides;
833
+        }
834
+    }
835
+    $actifs_avant = $GLOBALS['meta']['plugin'] ?? '';
836
+
837
+    // si une fonction de gestion de dependances existe, l'appeler ici
838
+    if ($ajouter_dependances = charger_fonction('ajouter_dependances', 'plugins', true)) {
839
+        $plugin = $ajouter_dependances($plugin);
840
+    }
841
+
842
+    // recharger le xml des plugins a activer
843
+    // on force le reload ici, meme si le fichier xml n'a pas change
844
+    // pour ne pas rater l'ajout ou la suppression d'un fichier fonctions/options/administrations
845
+    // pourra etre evite quand on ne supportera plus les plugin.xml
846
+    // en deplacant la detection de ces fichiers dans la compilation ci dessous
847
+    [$infos, $liste, $invalides] = liste_plugin_valides($plugin, true);
848
+    // trouver l'ordre d'activation
849
+    [$plugin_valides, $ordre, $reste] = plugin_trier($infos, $liste);
850
+    if ($invalides || $reste) {
851
+        plugins_erreurs(array_merge($invalides, $reste), $liste, $infos);
852
+    }
853
+
854
+    // Ignorer les plugins necessitant une lib absente
855
+    // et preparer la meta d'entete Http
856
+    $err = $msg = $header = [];
857
+    foreach ($plugin_valides as $p => $resume) {
858
+        // Les headers ne doivent pas indiquer les versions des extensions PHP, ni la version PHP
859
+        if (!str_starts_with($p, 'PHP:') && $p !== 'PHP') {
860
+            $header[] = $p . ($resume['version'] ? '(' . $resume['version'] . ')' : '');
861
+        }
862
+        if ($resume['dir']) {
863
+            foreach ($infos[$resume['dir_type']][$resume['dir']]['lib'] as $l) {
864
+                if (!find_in_path($l['nom'], 'lib/')) {
865
+                    $err[$p] = $resume;
866
+                    $msg[$p][] = $l;
867
+                    unset($plugin_valides[$p]);
868
+                }
869
+            }
870
+        }
871
+    }
872
+    if ($err) {
873
+        plugins_erreurs($err, '', $infos, $msg);
874
+    }
875
+
876
+    if (isset($GLOBALS['meta']['message_crash_plugins'])) {
877
+        effacer_meta('message_crash_plugins');
878
+    }
879
+    ecrire_meta('plugin', serialize($plugin_valides));
880
+    $liste = array_diff_key($liste, $plugin_valides);
881
+    ecrire_meta('plugin_attente', serialize($liste));
882
+    $header = strtolower(implode(',', $header));
883
+    if (!isset($GLOBALS['spip_header_silencieux']) || !$GLOBALS['spip_header_silencieux']) {
884
+        ecrire_fichier(
885
+            _DIR_VAR . 'config.txt',
886
+            (defined('_HEADER_COMPOSED_BY') ? _HEADER_COMPOSED_BY : 'Composed-By: SPIP') . ' ' . $GLOBALS['spip_version_affichee'] . ' @ www.spip.net + ' . $header
887
+        );
888
+    } else {
889
+        @unlink(_DIR_VAR . 'config.txt');
890
+    }
891
+    // generer charger_plugins_chemin.php
892
+    plugins_precompile_chemin($plugin_valides, $ordre);
893
+    // generer les fichiers
894
+    // - charger_plugins_options.php
895
+    // - charger_plugins_fonctions.php
896
+    plugins_precompile_xxxtions($plugin_valides, $ordre);
897
+    // charger les chemins des plugins et les fichiers d'options
898
+    // (qui peuvent déclarer / utiliser des pipelines, ajouter d'autres chemins)
899
+    plugins_amorcer_plugins_actifs();
900
+    // mise a jour de la matrice des pipelines
901
+    $prepend_code = pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche);
902
+    // generer le fichier _CACHE_PIPELINE
903
+    pipeline_precompile($prepend_code);
904
+
905
+    if (spip_connect()) {
906
+        // lancer et initialiser les nouveaux crons !
907
+        include_spip('inc/genie');
908
+        genie_queue_watch_dist();
909
+    }
910
+
911
+    return ($GLOBALS['meta']['plugin'] != $actifs_avant);
912 912
 }
913 913
 
914 914
 /**
@@ -927,75 +927,75 @@  discard block
 block discarded – undo
927 927
  *     Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances
928 928
 **/
929 929
 function plugins_precompile_chemin($plugin_valides, $ordre) {
930
-	$chemins = [
931
-		'public' => [],
932
-		'prive' => []
933
-	];
934
-	$contenu = '';
935
-	foreach ($ordre as $p => $info) {
936
-		// $ordre peur contenir des plugins en attente et non valides pour ce hit
937
-		if (isset($plugin_valides[$p])) {
938
-			$dir_type = $plugin_valides[$p]['dir_type'];
939
-			$plug = $plugin_valides[$p]['dir'];
940
-			// definir le plugin, donc le path avant l'include du fichier options
941
-			// permet de faire des include_spip pour attraper un inc_ du plugin
942
-
943
-			$dir = $dir_type . ".'" . $plug . "/'";
944
-
945
-			$prefix = strtoupper(preg_replace(',\W,', '_', $info['prefix']));
946
-			if (
947
-				$prefix !== 'SPIP'
948
-				&& !str_contains($dir, ':') // exclure le cas des procure:
949
-			) {
950
-				$contenu .= "define('_DIR_PLUGIN_$prefix',$dir);\n";
951
-				if (!$info['chemin']) {
952
-					$chemins['public'][] = "_DIR_PLUGIN_$prefix";
953
-					$chemins['prive'][] = "_DIR_PLUGIN_$prefix";
954
-					if (is_dir(constant($dir_type) . $plug . '/squelettes/')) {
955
-						$chemins['public'][] = "_DIR_PLUGIN_{$prefix}.'squelettes/'";
956
-					}
957
-				}
958
-				else {
959
-					foreach ($info['chemin'] as $chemin) {
960
-						if (
961
-							!isset($chemin['version'])
962
-							|| plugin_version_compatible(
963
-								$chemin['version'],
964
-								$GLOBALS['spip_version_branche'],
965
-								'spip'
966
-							)
967
-						) {
968
-							$dir = $chemin['path'];
969
-							if (strlen($dir) && $dir[0] == '/') {
970
-								$dir = substr($dir, 1);
971
-							}
972
-							if (strlen($dir) && $dir == './') {
973
-								$dir = '';
974
-							}
975
-							if (strlen($dir)) {
976
-								$dir = rtrim($dir, '/') . '/';
977
-							}
978
-							if (!isset($chemin['type']) || $chemin['type'] == 'public') {
979
-								$chemins['public'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
980
-							}
981
-							if (!isset($chemin['type']) || $chemin['type'] == 'prive') {
982
-								$chemins['prive'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
983
-							}
984
-						}
985
-					}
986
-				}
987
-			}
988
-		}
989
-	}
990
-	if (count($chemins['public']) || count($chemins['prive'])) {
991
-		$contenu .= 'if (_DIR_RESTREINT) _chemin([' . implode(
992
-			',',
993
-			array_reverse($chemins['public'])
994
-		) . "]);\n"
995
-			. 'else _chemin([' . implode(',', array_reverse($chemins['prive'])) . "]);\n";
996
-	}
997
-
998
-	ecrire_fichier_php(_CACHE_PLUGINS_PATH, $contenu);
930
+    $chemins = [
931
+        'public' => [],
932
+        'prive' => []
933
+    ];
934
+    $contenu = '';
935
+    foreach ($ordre as $p => $info) {
936
+        // $ordre peur contenir des plugins en attente et non valides pour ce hit
937
+        if (isset($plugin_valides[$p])) {
938
+            $dir_type = $plugin_valides[$p]['dir_type'];
939
+            $plug = $plugin_valides[$p]['dir'];
940
+            // definir le plugin, donc le path avant l'include du fichier options
941
+            // permet de faire des include_spip pour attraper un inc_ du plugin
942
+
943
+            $dir = $dir_type . ".'" . $plug . "/'";
944
+
945
+            $prefix = strtoupper(preg_replace(',\W,', '_', $info['prefix']));
946
+            if (
947
+                $prefix !== 'SPIP'
948
+                && !str_contains($dir, ':') // exclure le cas des procure:
949
+            ) {
950
+                $contenu .= "define('_DIR_PLUGIN_$prefix',$dir);\n";
951
+                if (!$info['chemin']) {
952
+                    $chemins['public'][] = "_DIR_PLUGIN_$prefix";
953
+                    $chemins['prive'][] = "_DIR_PLUGIN_$prefix";
954
+                    if (is_dir(constant($dir_type) . $plug . '/squelettes/')) {
955
+                        $chemins['public'][] = "_DIR_PLUGIN_{$prefix}.'squelettes/'";
956
+                    }
957
+                }
958
+                else {
959
+                    foreach ($info['chemin'] as $chemin) {
960
+                        if (
961
+                            !isset($chemin['version'])
962
+                            || plugin_version_compatible(
963
+                                $chemin['version'],
964
+                                $GLOBALS['spip_version_branche'],
965
+                                'spip'
966
+                            )
967
+                        ) {
968
+                            $dir = $chemin['path'];
969
+                            if (strlen($dir) && $dir[0] == '/') {
970
+                                $dir = substr($dir, 1);
971
+                            }
972
+                            if (strlen($dir) && $dir == './') {
973
+                                $dir = '';
974
+                            }
975
+                            if (strlen($dir)) {
976
+                                $dir = rtrim($dir, '/') . '/';
977
+                            }
978
+                            if (!isset($chemin['type']) || $chemin['type'] == 'public') {
979
+                                $chemins['public'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
980
+                            }
981
+                            if (!isset($chemin['type']) || $chemin['type'] == 'prive') {
982
+                                $chemins['prive'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
983
+                            }
984
+                        }
985
+                    }
986
+                }
987
+            }
988
+        }
989
+    }
990
+    if (count($chemins['public']) || count($chemins['prive'])) {
991
+        $contenu .= 'if (_DIR_RESTREINT) _chemin([' . implode(
992
+            ',',
993
+            array_reverse($chemins['public'])
994
+        ) . "]);\n"
995
+            . 'else _chemin([' . implode(',', array_reverse($chemins['prive'])) . "]);\n";
996
+    }
997
+
998
+    ecrire_fichier_php(_CACHE_PLUGINS_PATH, $contenu);
999 999
 }
1000 1000
 
1001 1001
 /**
@@ -1013,65 +1013,65 @@  discard block
 block discarded – undo
1013 1013
  *     Couples (prefixe => infos complètes) des plugins qui seront actifs, dans l'ordre de leurs dépendances
1014 1014
 **/
1015 1015
 function plugins_precompile_xxxtions($plugin_valides, $ordre) {
1016
-	$contenu = ['options' => '', 'fonctions' => ''];
1017
-	$boutons = [];
1018
-	$onglets = [];
1019
-	$sign = '';
1020
-
1021
-	foreach ($ordre as $p => $info) {
1022
-		// $ordre peur contenir des plugins en attente et non valides pour ce hit
1023
-		if (isset($plugin_valides[$p])) {
1024
-			$dir_type = $plugin_valides[$p]['dir_type'];
1025
-			$plug = $plugin_valides[$p]['dir'];
1026
-			$dir = constant($dir_type);
1027
-			$root_dir_type = str_replace('_DIR_', '_ROOT_', $dir_type);
1028
-			if ($info['menu']) {
1029
-				$boutons = array_merge($boutons, $info['menu']);
1030
-			}
1031
-			if ($info['onglet']) {
1032
-				$onglets = array_merge($onglets, $info['onglet']);
1033
-			}
1034
-			foreach ($contenu as $charge => $v) {
1035
-				// si pas declare/detecte a la lecture du paquet.xml,
1036
-				// detecer a nouveau ici puisque son ajout ne provoque pas une modif du paquet.xml
1037
-				// donc ni sa relecture, ni sa detection
1038
-				if (
1039
-					!isset($info[$charge])
1040
-					&& $dir
1041
-					&& !str_contains($dir, ':')
1042
-					&& file_exists("$dir$plug/paquet.xml") // uniquement pour les paquet.xml
1043
-				) {
1044
-					if (is_readable("$dir$plug/" . ($file = $info['prefix'] . '_' . $charge . '.php'))) {
1045
-						$info[$charge] = [$file];
1046
-					}
1047
-				}
1048
-				if (isset($info[$charge])) {
1049
-					$files = $info[$charge];
1050
-					foreach ($files as $k => $file) {
1051
-						// on genere un if file_exists devant chaque include
1052
-						// pour pouvoir garder le meme niveau d'erreur general
1053
-						$file = trim($file);
1054
-						if (
1055
-							!is_readable("$dir$plug/$file") && file_exists("$dir$plug/paquet.xml")
1056
-						) {
1057
-							unset($info[$charge][$k]);
1058
-						} else {
1059
-							$_file = $root_dir_type . ".'$plug/$file'";
1060
-							$contenu[$charge] .= "include_once_check($_file);\n";
1061
-						}
1062
-					}
1063
-				}
1064
-			}
1065
-			$sign .= md5(serialize($info));
1066
-		}
1067
-	}
1068
-
1069
-	$contenu['options'] = "define('_PLUGINS_HASH','" . md5($sign) . "');\n" . $contenu['options'];
1070
-	$contenu['fonctions'] .= plugin_ongletbouton('boutons_plugins', $boutons)
1071
-		. plugin_ongletbouton('onglets_plugins', $onglets);
1072
-
1073
-	ecrire_fichier_php(_CACHE_PLUGINS_OPT, $contenu['options']);
1074
-	ecrire_fichier_php(_CACHE_PLUGINS_FCT, $contenu['fonctions']);
1016
+    $contenu = ['options' => '', 'fonctions' => ''];
1017
+    $boutons = [];
1018
+    $onglets = [];
1019
+    $sign = '';
1020
+
1021
+    foreach ($ordre as $p => $info) {
1022
+        // $ordre peur contenir des plugins en attente et non valides pour ce hit
1023
+        if (isset($plugin_valides[$p])) {
1024
+            $dir_type = $plugin_valides[$p]['dir_type'];
1025
+            $plug = $plugin_valides[$p]['dir'];
1026
+            $dir = constant($dir_type);
1027
+            $root_dir_type = str_replace('_DIR_', '_ROOT_', $dir_type);
1028
+            if ($info['menu']) {
1029
+                $boutons = array_merge($boutons, $info['menu']);
1030
+            }
1031
+            if ($info['onglet']) {
1032
+                $onglets = array_merge($onglets, $info['onglet']);
1033
+            }
1034
+            foreach ($contenu as $charge => $v) {
1035
+                // si pas declare/detecte a la lecture du paquet.xml,
1036
+                // detecer a nouveau ici puisque son ajout ne provoque pas une modif du paquet.xml
1037
+                // donc ni sa relecture, ni sa detection
1038
+                if (
1039
+                    !isset($info[$charge])
1040
+                    && $dir
1041
+                    && !str_contains($dir, ':')
1042
+                    && file_exists("$dir$plug/paquet.xml") // uniquement pour les paquet.xml
1043
+                ) {
1044
+                    if (is_readable("$dir$plug/" . ($file = $info['prefix'] . '_' . $charge . '.php'))) {
1045
+                        $info[$charge] = [$file];
1046
+                    }
1047
+                }
1048
+                if (isset($info[$charge])) {
1049
+                    $files = $info[$charge];
1050
+                    foreach ($files as $k => $file) {
1051
+                        // on genere un if file_exists devant chaque include
1052
+                        // pour pouvoir garder le meme niveau d'erreur general
1053
+                        $file = trim($file);
1054
+                        if (
1055
+                            !is_readable("$dir$plug/$file") && file_exists("$dir$plug/paquet.xml")
1056
+                        ) {
1057
+                            unset($info[$charge][$k]);
1058
+                        } else {
1059
+                            $_file = $root_dir_type . ".'$plug/$file'";
1060
+                            $contenu[$charge] .= "include_once_check($_file);\n";
1061
+                        }
1062
+                    }
1063
+                }
1064
+            }
1065
+            $sign .= md5(serialize($info));
1066
+        }
1067
+    }
1068
+
1069
+    $contenu['options'] = "define('_PLUGINS_HASH','" . md5($sign) . "');\n" . $contenu['options'];
1070
+    $contenu['fonctions'] .= plugin_ongletbouton('boutons_plugins', $boutons)
1071
+        . plugin_ongletbouton('onglets_plugins', $onglets);
1072
+
1073
+    ecrire_fichier_php(_CACHE_PLUGINS_OPT, $contenu['options']);
1074
+    ecrire_fichier_php(_CACHE_PLUGINS_FCT, $contenu['fonctions']);
1075 1075
 }
1076 1076
 
1077 1077
 /**
@@ -1090,24 +1090,24 @@  discard block
 block discarded – undo
1090 1090
  * @return string Code php
1091 1091
  */
1092 1092
 function plugin_ongletbouton($nom, $val) {
1093
-	if (!$val) {
1094
-		$val = [];
1095
-	}
1096
-
1097
-	$val = serialize($val);
1098
-	$md5 = md5($val);
1099
-
1100
-	if (!defined("_UPDATED_$nom")) {
1101
-		define("_UPDATED_$nom", $val);
1102
-		define("_UPDATED_md5_$nom", $md5);
1103
-	}
1104
-	$val = "unserialize('" . str_replace("'", "\'", $val) . "')";
1105
-
1106
-	return
1107
-		"if (!function_exists('$nom')) {\n"
1108
-		. "function $nom(){return defined('_UPDATED_$nom')?unserialize(_UPDATED_$nom):$val;}\n"
1109
-		. "function md5_$nom(){return defined('_UPDATED_md5_$nom')?_UPDATED_md5_$nom:'" . $md5 . "';}\n"
1110
-		. "}\n";
1093
+    if (!$val) {
1094
+        $val = [];
1095
+    }
1096
+
1097
+    $val = serialize($val);
1098
+    $md5 = md5($val);
1099
+
1100
+    if (!defined("_UPDATED_$nom")) {
1101
+        define("_UPDATED_$nom", $val);
1102
+        define("_UPDATED_md5_$nom", $md5);
1103
+    }
1104
+    $val = "unserialize('" . str_replace("'", "\'", $val) . "')";
1105
+
1106
+    return
1107
+        "if (!function_exists('$nom')) {\n"
1108
+        . "function $nom(){return defined('_UPDATED_$nom')?unserialize(_UPDATED_$nom):$val;}\n"
1109
+        . "function md5_$nom(){return defined('_UPDATED_md5_$nom')?_UPDATED_md5_$nom:'" . $md5 . "';}\n"
1110
+        . "}\n";
1111 1111
 }
1112 1112
 
1113 1113
 /**
@@ -1122,15 +1122,15 @@  discard block
 block discarded – undo
1122 1122
 **/
1123 1123
 function plugins_amorcer_plugins_actifs() {
1124 1124
 
1125
-	if (@is_readable(_CACHE_PLUGINS_PATH)) {
1126
-		include_once(_CACHE_PLUGINS_PATH);
1127
-	}
1125
+    if (@is_readable(_CACHE_PLUGINS_PATH)) {
1126
+        include_once(_CACHE_PLUGINS_PATH);
1127
+    }
1128 1128
 
1129
-	if (@is_readable(_CACHE_PLUGINS_OPT)) {
1130
-		include_once(_CACHE_PLUGINS_OPT);
1131
-	} else {
1132
-		spip_log('pipelines desactives: impossible de produire ' . _CACHE_PLUGINS_OPT);
1133
-	}
1129
+    if (@is_readable(_CACHE_PLUGINS_OPT)) {
1130
+        include_once(_CACHE_PLUGINS_OPT);
1131
+    } else {
1132
+        spip_log('pipelines desactives: impossible de produire ' . _CACHE_PLUGINS_OPT);
1133
+    }
1134 1134
 }
1135 1135
 
1136 1136
 /**
@@ -1153,140 +1153,140 @@  discard block
 block discarded – undo
1153 1153
  *     Couples (nom du pipeline => Code PHP à insérer au début du pipeline)
1154 1154
 **/
1155 1155
 function pipeline_matrice_precompile($plugin_valides, $ordre, $pipe_recherche) {
1156
-	static $liste_pipe_manquants = [];
1157
-	if (($pipe_recherche) && (!in_array($pipe_recherche, $liste_pipe_manquants))) {
1158
-		$liste_pipe_manquants[] = $pipe_recherche;
1159
-	}
1160
-
1161
-	$prepend_code = [];
1162
-
1163
-	foreach ($ordre as $p => $info) {
1164
-		// $ordre peur contenir des plugins en attente et non valides pour ce hit
1165
-		if (isset($plugin_valides[$p])) {
1166
-			$dir_type = $plugin_valides[$p]['dir_type'];
1167
-			$root_dir_type = str_replace('_DIR_', '_ROOT_', $dir_type);
1168
-			$plug = $plugin_valides[$p]['dir'];
1169
-			$prefix = (($info['prefix'] == 'spip') ? '' : $info['prefix'] . '_');
1170
-			if (isset($info['pipeline']) && is_array($info['pipeline'])) {
1171
-				foreach ($info['pipeline'] as $pipe) {
1172
-					$nom = $pipe['nom'];
1173
-					if (isset($pipe['action'])) {
1174
-						$action = $pipe['action'];
1175
-					} else {
1176
-						$action = $nom;
1177
-					}
1178
-					$nomlower = strtolower($nom);
1179
-					if (
1180
-						$nomlower != $nom
1181
-						&& isset($GLOBALS['spip_pipeline'][$nom])
1182
-						&& !isset($GLOBALS['spip_pipeline'][$nomlower])
1183
-					) {
1184
-						$GLOBALS['spip_pipeline'][$nomlower] = $GLOBALS['spip_pipeline'][$nom];
1185
-						unset($GLOBALS['spip_pipeline'][$nom]);
1186
-					}
1187
-					$nom = $nomlower;
1188
-					// une action vide est une declaration qui ne doit pas etre compilee !
1189
-					if (!isset($GLOBALS['spip_pipeline'][$nom])) { // creer le pipeline eventuel
1190
-					$GLOBALS['spip_pipeline'][$nom] = '';
1191
-					}
1192
-					if ($action) {
1193
-						if (!str_contains($GLOBALS['spip_pipeline'][$nom], (string) "|$prefix$action")) {
1194
-							$GLOBALS['spip_pipeline'][$nom] = preg_replace(
1195
-								',(\|\||$),',
1196
-								"|$prefix$action\\1",
1197
-								$GLOBALS['spip_pipeline'][$nom],
1198
-								1
1199
-							);
1200
-						}
1201
-						if (isset($pipe['inclure'])) {
1202
-							$GLOBALS['spip_matrice']["$prefix$action"] =
1203
-								"$root_dir_type:$plug/" . $pipe['inclure'];
1204
-						}
1205
-					}
1206
-				}
1207
-			}
1208
-			if (isset($info['genie']) && (is_countable($info['genie']) ? count($info['genie']) : 0)) {
1209
-				if (!isset($prepend_code['taches_generales_cron'])) {
1210
-					$prepend_code['taches_generales_cron'] = '';
1211
-				}
1212
-				foreach ($info['genie'] as $genie) {
1213
-					$nom = $prefix . $genie['nom'];
1214
-					$periode = max(60, intval($genie['periode']));
1215
-					if (charger_fonction($nom, 'genie', true)) {
1216
-						$prepend_code['taches_generales_cron'] .= "\$val['$nom'] = $periode;\n";
1217
-					} else {
1218
-						spip_log("Fonction genie_$nom introuvable", _LOG_ERREUR);
1219
-					}
1220
-				}
1221
-			}
1222
-			if (isset($info['style']) && (is_countable($info['style']) ? count($info['style']) : 0)) {
1223
-				if (!isset($prepend_code['insert_head_css'])) {
1224
-					$prepend_code['insert_head_css'] = '';
1225
-				}
1226
-				if (!isset($prepend_code['header_prive_css'])) {
1227
-					$prepend_code['header_prive_css'] = '';
1228
-				}
1229
-				foreach ($info['style'] as $style) {
1230
-					if (isset($style['path']) && $style['path']) {
1231
-						$code = "if (\$f=timestamp(direction_css(find_in_path('" . addslashes($style['path']) . "')))) ";
1232
-					} else {
1233
-						$code = "if (\$f='" . addslashes($style['url']) . "') ";
1234
-					}
1235
-					$code .= "\$val .= '<link rel=\"stylesheet\" href=\"'.\$f.'\" type=\"text/css\"";
1236
-					if (isset($style['media']) && strlen($style['media'])) {
1237
-						$code .= ' media="' . addslashes($style['media']) . '"';
1238
-					}
1239
-					$code .= "/>';\n";
1240
-					if ($style['type'] != 'prive') {
1241
-						$prepend_code['insert_head_css'] .= $code;
1242
-					}
1243
-					if ($style['type'] != 'public') {
1244
-						$prepend_code['header_prive_css'] .= $code;
1245
-					}
1246
-				}
1247
-			}
1248
-			if (!isset($prepend_code['insert_head'])) {
1249
-				$prepend_code['insert_head'] = '';
1250
-			}
1251
-			if (!isset($prepend_code['header_prive'])) {
1252
-				$prepend_code['header_prive'] = '';
1253
-			}
1254
-			if (isset($info['script']) && (is_countable($info['script']) ? count($info['script']) : 0)) {
1255
-				foreach ($info['script'] as $script) {
1256
-					if (isset($script['path']) && $script['path']) {
1257
-						$code = "if (\$f=timestamp(find_in_path('" . addslashes($script['path']) . "'))) ";
1258
-					} else {
1259
-						$code = "if (\$f='" . addslashes($script['url']) . "') ";
1260
-					}
1261
-					$code .= "\$val .= '<script src=\"'.\$f.'\" type=\"text/javascript\"></script>';\n";
1262
-					if ($script['type'] != 'prive') {
1263
-						$prepend_code['insert_head'] .= $code;
1264
-					}
1265
-					if ($script['type'] != 'public') {
1266
-						$prepend_code['header_prive'] .= $code;
1267
-					}
1268
-				}
1269
-			}
1270
-		}
1271
-	}
1272
-
1273
-	$prepend_code['insert_head'] =
1274
-		"include_once_check(_DIR_RESTREINT . 'inc/pipelines.php');\n"
1275
-		. "\$val = minipipe('f_jQuery', \$val);\n"
1276
-		. $prepend_code['insert_head'];
1277
-	$prepend_code['header_prive'] =
1278
-		"include_once_check(_DIR_RESTREINT . 'inc/pipelines_ecrire.php');\n"
1279
-		. "\$val = minipipe('f_jQuery_prive', \$val);\n"
1280
-		. $prepend_code['header_prive'];
1281
-
1282
-	// on ajoute les pipe qui ont ete recenses manquants
1283
-	foreach ($liste_pipe_manquants as $add_pipe) {
1284
-		if (!isset($GLOBALS['spip_pipeline'][$add_pipe])) {
1285
-			$GLOBALS['spip_pipeline'][$add_pipe] = '';
1286
-		}
1287
-	}
1288
-
1289
-	return $prepend_code;
1156
+    static $liste_pipe_manquants = [];
1157
+    if (($pipe_recherche) && (!in_array($pipe_recherche, $liste_pipe_manquants))) {
1158
+        $liste_pipe_manquants[] = $pipe_recherche;
1159
+    }
1160
+
1161
+    $prepend_code = [];
1162
+
1163
+    foreach ($ordre as $p => $info) {
1164
+        // $ordre peur contenir des plugins en attente et non valides pour ce hit
1165
+        if (isset($plugin_valides[$p])) {
1166
+            $dir_type = $plugin_valides[$p]['dir_type'];
1167
+            $root_dir_type = str_replace('_DIR_', '_ROOT_', $dir_type);
1168
+            $plug = $plugin_valides[$p]['dir'];
1169
+            $prefix = (($info['prefix'] == 'spip') ? '' : $info['prefix'] . '_');
1170
+            if (isset($info['pipeline']) && is_array($info['pipeline'])) {
1171
+                foreach ($info['pipeline'] as $pipe) {
1172
+                    $nom = $pipe['nom'];
1173
+                    if (isset($pipe['action'])) {
1174
+                        $action = $pipe['action'];
1175
+                    } else {
1176
+                        $action = $nom;
1177
+                    }
1178
+                    $nomlower = strtolower($nom);
1179
+                    if (
1180
+                        $nomlower != $nom
1181
+                        && isset($GLOBALS['spip_pipeline'][$nom])
1182
+                        && !isset($GLOBALS['spip_pipeline'][$nomlower])
1183
+                    ) {
1184
+                        $GLOBALS['spip_pipeline'][$nomlower] = $GLOBALS['spip_pipeline'][$nom];
1185
+                        unset($GLOBALS['spip_pipeline'][$nom]);
1186
+                    }
1187
+                    $nom = $nomlower;
1188
+                    // une action vide est une declaration qui ne doit pas etre compilee !
1189
+                    if (!isset($GLOBALS['spip_pipeline'][$nom])) { // creer le pipeline eventuel
1190
+                    $GLOBALS['spip_pipeline'][$nom] = '';
1191
+                    }
1192
+                    if ($action) {
1193
+                        if (!str_contains($GLOBALS['spip_pipeline'][$nom], (string) "|$prefix$action")) {
1194
+                            $GLOBALS['spip_pipeline'][$nom] = preg_replace(
1195
+                                ',(\|\||$),',
1196
+                                "|$prefix$action\\1",
1197
+                                $GLOBALS['spip_pipeline'][$nom],
1198
+                                1
1199
+                            );
1200
+                        }
1201
+                        if (isset($pipe['inclure'])) {
1202
+                            $GLOBALS['spip_matrice']["$prefix$action"] =
1203
+                                "$root_dir_type:$plug/" . $pipe['inclure'];
1204
+                        }
1205
+                    }
1206
+                }
1207
+            }
1208
+            if (isset($info['genie']) && (is_countable($info['genie']) ? count($info['genie']) : 0)) {
1209
+                if (!isset($prepend_code['taches_generales_cron'])) {
1210
+                    $prepend_code['taches_generales_cron'] = '';
1211
+                }
1212
+                foreach ($info['genie'] as $genie) {
1213
+                    $nom = $prefix . $genie['nom'];
1214
+                    $periode = max(60, intval($genie['periode']));
1215
+                    if (charger_fonction($nom, 'genie', true)) {
1216
+                        $prepend_code['taches_generales_cron'] .= "\$val['$nom'] = $periode;\n";
1217
+                    } else {
1218
+                        spip_log("Fonction genie_$nom introuvable", _LOG_ERREUR);
1219
+                    }
1220
+                }
1221
+            }
1222
+            if (isset($info['style']) && (is_countable($info['style']) ? count($info['style']) : 0)) {
1223
+                if (!isset($prepend_code['insert_head_css'])) {
1224
+                    $prepend_code['insert_head_css'] = '';
1225
+                }
1226
+                if (!isset($prepend_code['header_prive_css'])) {
1227
+                    $prepend_code['header_prive_css'] = '';
1228
+                }
1229
+                foreach ($info['style'] as $style) {
1230
+                    if (isset($style['path']) && $style['path']) {
1231
+                        $code = "if (\$f=timestamp(direction_css(find_in_path('" . addslashes($style['path']) . "')))) ";
1232
+                    } else {
1233
+                        $code = "if (\$f='" . addslashes($style['url']) . "') ";
1234
+                    }
1235
+                    $code .= "\$val .= '<link rel=\"stylesheet\" href=\"'.\$f.'\" type=\"text/css\"";
1236
+                    if (isset($style['media']) && strlen($style['media'])) {
1237
+                        $code .= ' media="' . addslashes($style['media']) . '"';
1238
+                    }
1239
+                    $code .= "/>';\n";
1240
+                    if ($style['type'] != 'prive') {
1241
+                        $prepend_code['insert_head_css'] .= $code;
1242
+                    }
1243
+                    if ($style['type'] != 'public') {
1244
+                        $prepend_code['header_prive_css'] .= $code;
1245
+                    }
1246
+                }
1247
+            }
1248
+            if (!isset($prepend_code['insert_head'])) {
1249
+                $prepend_code['insert_head'] = '';
1250
+            }
1251
+            if (!isset($prepend_code['header_prive'])) {
1252
+                $prepend_code['header_prive'] = '';
1253
+            }
1254
+            if (isset($info['script']) && (is_countable($info['script']) ? count($info['script']) : 0)) {
1255
+                foreach ($info['script'] as $script) {
1256
+                    if (isset($script['path']) && $script['path']) {
1257
+                        $code = "if (\$f=timestamp(find_in_path('" . addslashes($script['path']) . "'))) ";
1258
+                    } else {
1259
+                        $code = "if (\$f='" . addslashes($script['url']) . "') ";
1260
+                    }
1261
+                    $code .= "\$val .= '<script src=\"'.\$f.'\" type=\"text/javascript\"></script>';\n";
1262
+                    if ($script['type'] != 'prive') {
1263
+                        $prepend_code['insert_head'] .= $code;
1264
+                    }
1265
+                    if ($script['type'] != 'public') {
1266
+                        $prepend_code['header_prive'] .= $code;
1267
+                    }
1268
+                }
1269
+            }
1270
+        }
1271
+    }
1272
+
1273
+    $prepend_code['insert_head'] =
1274
+        "include_once_check(_DIR_RESTREINT . 'inc/pipelines.php');\n"
1275
+        . "\$val = minipipe('f_jQuery', \$val);\n"
1276
+        . $prepend_code['insert_head'];
1277
+    $prepend_code['header_prive'] =
1278
+        "include_once_check(_DIR_RESTREINT . 'inc/pipelines_ecrire.php');\n"
1279
+        . "\$val = minipipe('f_jQuery_prive', \$val);\n"
1280
+        . $prepend_code['header_prive'];
1281
+
1282
+    // on ajoute les pipe qui ont ete recenses manquants
1283
+    foreach ($liste_pipe_manquants as $add_pipe) {
1284
+        if (!isset($GLOBALS['spip_pipeline'][$add_pipe])) {
1285
+            $GLOBALS['spip_pipeline'][$add_pipe] = '';
1286
+        }
1287
+    }
1288
+
1289
+    return $prepend_code;
1290 1290
 }
1291 1291
 
1292 1292
 /**
@@ -1313,62 +1313,62 @@  discard block
 block discarded – undo
1313 1313
 **/
1314 1314
 function pipeline_precompile($prepend_code = []) {
1315 1315
 
1316
-	$all_pipes = $all_pipes_end = '';
1317
-	if (!empty($GLOBALS['spip_pipeline']['all'])) {
1318
-		$a = explode('||', $GLOBALS['spip_pipeline']['all'], 2);
1319
-		unset($GLOBALS['spip_pipeline']['all']);
1320
-		$all_pipes = trim(array_shift($a));
1321
-		if ($all_pipes) {
1322
-			$all_pipes = '|' . ltrim($all_pipes, '|');
1323
-		}
1324
-		if (count($a)) {
1325
-			$all_pipes_end = '||' . array_shift($a);
1326
-		}
1327
-	}
1328
-	$content = '';
1329
-	foreach ($GLOBALS['spip_pipeline'] as $action => $pipeline) {
1330
-		$s_inc = '';
1331
-		$s_call = '';
1332
-		if ($all_pipes) {
1333
-			$pipeline = preg_replace(',(\|\||$),', "$all_pipes\\1", $pipeline, 1);
1334
-		}
1335
-		if ($all_pipes_end) {
1336
-			$pipeline .= $all_pipes_end;
1337
-		}
1338
-		$pipe = array_filter(explode('|', $pipeline));
1339
-		// Eclater le pipeline en filtres et appliquer chaque filtre
1340
-		foreach ($pipe as $fonc) {
1341
-			$fonc = trim($fonc);
1342
-			$s_call .= '$val = minipipe(\'' . $fonc . '\', $val);' . "\n";
1343
-			if (isset($GLOBALS['spip_matrice'][$fonc])) {
1344
-				$file = $GLOBALS['spip_matrice'][$fonc];
1345
-				$file = "'$file'";
1346
-				// si un _DIR_XXX: est dans la chaine, on extrait la constante
1347
-				if (preg_match(',(_(DIR|ROOT)_[A-Z_]+):,Ums', $file, $regs)) {
1348
-					$dir = $regs[1];
1349
-					$root_dir = str_replace('_DIR_', '_ROOT_', $dir);
1350
-					if (defined($root_dir)) {
1351
-						$dir = $root_dir;
1352
-					}
1353
-					$file = str_replace($regs[0], "'." . $dir . ".'", $file);
1354
-					$file = str_replace("''.", '', $file);
1355
-					$file = str_replace(constant($dir), '', $file);
1356
-				}
1357
-				$s_inc .= "include_once_check($file);\n";
1358
-			}
1359
-		}
1360
-		if (strlen($s_inc)) {
1361
-			$s_inc = "static \$inc=null;\nif (!\$inc){\n$s_inc\$inc=true;\n}\n";
1362
-		}
1363
-		$content .= "// Pipeline $action \n"
1364
-			. "function execute_pipeline_$action(&\$val){\n"
1365
-			. $s_inc
1366
-			. ((isset($prepend_code[$action]) && strlen($prepend_code[$action])) ? trim($prepend_code[$action]) . "\n" : '')
1367
-			. $s_call
1368
-			. "return \$val;\n}\n";
1369
-	}
1370
-	ecrire_fichier_php(_CACHE_PIPELINES, $content);
1371
-	clear_path_cache();
1316
+    $all_pipes = $all_pipes_end = '';
1317
+    if (!empty($GLOBALS['spip_pipeline']['all'])) {
1318
+        $a = explode('||', $GLOBALS['spip_pipeline']['all'], 2);
1319
+        unset($GLOBALS['spip_pipeline']['all']);
1320
+        $all_pipes = trim(array_shift($a));
1321
+        if ($all_pipes) {
1322
+            $all_pipes = '|' . ltrim($all_pipes, '|');
1323
+        }
1324
+        if (count($a)) {
1325
+            $all_pipes_end = '||' . array_shift($a);
1326
+        }
1327
+    }
1328
+    $content = '';
1329
+    foreach ($GLOBALS['spip_pipeline'] as $action => $pipeline) {
1330
+        $s_inc = '';
1331
+        $s_call = '';
1332
+        if ($all_pipes) {
1333
+            $pipeline = preg_replace(',(\|\||$),', "$all_pipes\\1", $pipeline, 1);
1334
+        }
1335
+        if ($all_pipes_end) {
1336
+            $pipeline .= $all_pipes_end;
1337
+        }
1338
+        $pipe = array_filter(explode('|', $pipeline));
1339
+        // Eclater le pipeline en filtres et appliquer chaque filtre
1340
+        foreach ($pipe as $fonc) {
1341
+            $fonc = trim($fonc);
1342
+            $s_call .= '$val = minipipe(\'' . $fonc . '\', $val);' . "\n";
1343
+            if (isset($GLOBALS['spip_matrice'][$fonc])) {
1344
+                $file = $GLOBALS['spip_matrice'][$fonc];
1345
+                $file = "'$file'";
1346
+                // si un _DIR_XXX: est dans la chaine, on extrait la constante
1347
+                if (preg_match(',(_(DIR|ROOT)_[A-Z_]+):,Ums', $file, $regs)) {
1348
+                    $dir = $regs[1];
1349
+                    $root_dir = str_replace('_DIR_', '_ROOT_', $dir);
1350
+                    if (defined($root_dir)) {
1351
+                        $dir = $root_dir;
1352
+                    }
1353
+                    $file = str_replace($regs[0], "'." . $dir . ".'", $file);
1354
+                    $file = str_replace("''.", '', $file);
1355
+                    $file = str_replace(constant($dir), '', $file);
1356
+                }
1357
+                $s_inc .= "include_once_check($file);\n";
1358
+            }
1359
+        }
1360
+        if (strlen($s_inc)) {
1361
+            $s_inc = "static \$inc=null;\nif (!\$inc){\n$s_inc\$inc=true;\n}\n";
1362
+        }
1363
+        $content .= "// Pipeline $action \n"
1364
+            . "function execute_pipeline_$action(&\$val){\n"
1365
+            . $s_inc
1366
+            . ((isset($prepend_code[$action]) && strlen($prepend_code[$action])) ? trim($prepend_code[$action]) . "\n" : '')
1367
+            . $s_call
1368
+            . "return \$val;\n}\n";
1369
+    }
1370
+    ecrire_fichier_php(_CACHE_PIPELINES, $content);
1371
+    clear_path_cache();
1372 1372
 }
1373 1373
 
1374 1374
 
@@ -1381,12 +1381,12 @@  discard block
 block discarded – undo
1381 1381
  *     true si le plugin est actif, false sinon
1382 1382
 **/
1383 1383
 function plugin_est_installe($plug_path) {
1384
-	$plugin_installes = isset($GLOBALS['meta']['plugin_installes']) ? unserialize($GLOBALS['meta']['plugin_installes']) : [];
1385
-	if (!$plugin_installes) {
1386
-		return false;
1387
-	}
1384
+    $plugin_installes = isset($GLOBALS['meta']['plugin_installes']) ? unserialize($GLOBALS['meta']['plugin_installes']) : [];
1385
+    if (!$plugin_installes) {
1386
+        return false;
1387
+    }
1388 1388
 
1389
-	return in_array($plug_path, $plugin_installes);
1389
+    return in_array($plug_path, $plugin_installes);
1390 1390
 }
1391 1391
 
1392 1392
 
@@ -1399,46 +1399,46 @@  discard block
 block discarded – undo
1399 1399
  * @uses plugins_installer_dist()
1400 1400
  **/
1401 1401
 function plugin_installes_meta() {
1402
-	if (isset($GLOBALS['fichier_php_compile_recent'])) {
1403
-		// attendre eventuellement l'invalidation du cache opcode
1404
-		spip_attend_invalidation_opcode_cache($GLOBALS['fichier_php_compile_recent']);
1405
-	}
1406
-
1407
-	$installer_plugins = charger_fonction('installer', 'plugins');
1408
-	$meta_plug_installes = [];
1409
-	foreach (unserialize($GLOBALS['meta']['plugin']) as $prefix => $resume) {
1410
-		if ($plug = $resume['dir']) {
1411
-			$infos = $installer_plugins($plug, 'install', $resume['dir_type']);
1412
-			if ($infos) {
1413
-				if (!is_array($infos) || $infos['install_test'][0]) {
1414
-					$meta_plug_installes[] = $plug;
1415
-				}
1416
-				if (is_array($infos)) {
1417
-					[$ok, $trace] = $infos['install_test'];
1418
-					$titre = _T('plugin_titre_installation', ['plugin' => typo($infos['nom'])]);
1419
-					$result = ($ok ? ((isset($infos['upgrade']) && $infos['upgrade']) ? _T('plugin_info_upgrade_ok') : _T('plugin_info_install_ok')) : _T('avis_operation_echec'));
1420
-					if (_IS_CLI) {
1421
-						include_spip('inc/filtres');
1422
-						$trace = ltrim(textebrut($trace) . "\n" . $result);
1423
-						$trace = '    ' . str_replace("\n", "\n    ", $trace);
1424
-						echo "\n" . ($ok ? 'OK  ' : '/!\ ') . textebrut($titre) . "\n",
1425
-						  $trace,
1426
-						  "\n";
1427
-					}
1428
-					else {
1429
-						include_spip('inc/filtres_boites');
1430
-						echo "<div class='install-plugins svp_retour'>"
1431
-							. boite_ouvrir($titre, ($ok ? 'success' : 'error'))
1432
-							. $trace
1433
-							. "<div class='result'>$result</div>"
1434
-							. boite_fermer()
1435
-							. '</div>';
1436
-					}
1437
-				}
1438
-			}
1439
-		}
1440
-	}
1441
-	ecrire_meta('plugin_installes', serialize($meta_plug_installes), 'non');
1402
+    if (isset($GLOBALS['fichier_php_compile_recent'])) {
1403
+        // attendre eventuellement l'invalidation du cache opcode
1404
+        spip_attend_invalidation_opcode_cache($GLOBALS['fichier_php_compile_recent']);
1405
+    }
1406
+
1407
+    $installer_plugins = charger_fonction('installer', 'plugins');
1408
+    $meta_plug_installes = [];
1409
+    foreach (unserialize($GLOBALS['meta']['plugin']) as $prefix => $resume) {
1410
+        if ($plug = $resume['dir']) {
1411
+            $infos = $installer_plugins($plug, 'install', $resume['dir_type']);
1412
+            if ($infos) {
1413
+                if (!is_array($infos) || $infos['install_test'][0]) {
1414
+                    $meta_plug_installes[] = $plug;
1415
+                }
1416
+                if (is_array($infos)) {
1417
+                    [$ok, $trace] = $infos['install_test'];
1418
+                    $titre = _T('plugin_titre_installation', ['plugin' => typo($infos['nom'])]);
1419
+                    $result = ($ok ? ((isset($infos['upgrade']) && $infos['upgrade']) ? _T('plugin_info_upgrade_ok') : _T('plugin_info_install_ok')) : _T('avis_operation_echec'));
1420
+                    if (_IS_CLI) {
1421
+                        include_spip('inc/filtres');
1422
+                        $trace = ltrim(textebrut($trace) . "\n" . $result);
1423
+                        $trace = '    ' . str_replace("\n", "\n    ", $trace);
1424
+                        echo "\n" . ($ok ? 'OK  ' : '/!\ ') . textebrut($titre) . "\n",
1425
+                            $trace,
1426
+                            "\n";
1427
+                    }
1428
+                    else {
1429
+                        include_spip('inc/filtres_boites');
1430
+                        echo "<div class='install-plugins svp_retour'>"
1431
+                            . boite_ouvrir($titre, ($ok ? 'success' : 'error'))
1432
+                            . $trace
1433
+                            . "<div class='result'>$result</div>"
1434
+                            . boite_fermer()
1435
+                            . '</div>';
1436
+                    }
1437
+                }
1438
+            }
1439
+        }
1440
+    }
1441
+    ecrire_meta('plugin_installes', serialize($meta_plug_installes), 'non');
1442 1442
 }
1443 1443
 
1444 1444
 /**
@@ -1452,29 +1452,29 @@  discard block
 block discarded – undo
1452 1452
  *     Commentaire : code écrit en tout début de fichier, après la balise PHP ouvrante
1453 1453
 **/
1454 1454
 function ecrire_fichier_php($nom, $contenu, $comment = '') {
1455
-	if (!isset($GLOBALS['fichier_php_compile_recent'])) {
1456
-		$GLOBALS['fichier_php_compile_recent'] = 0;
1457
-	}
1458
-
1459
-	$contenu = '<' . '?php' . "\n" . $comment . "\nif (defined('_ECRIRE_INC_VERSION')) {\n" . $contenu . "}\n?" . '>';
1460
-	// si un fichier existe deja on verifie que son contenu change avant de l'ecraser
1461
-	// si pas de modif on ne touche pas au fichier initial
1462
-	if (file_exists($nom)) {
1463
-		if (str_ends_with($nom, '.php')) {
1464
-			$fichier_tmp = substr($nom, 0, -4) . '.tmp.php';
1465
-		}
1466
-		else {
1467
-			$fichier_tmp = $nom . '.tmp';
1468
-		}
1469
-		file_put_contents($fichier_tmp, $contenu);
1470
-		if (md5_file($nom) == md5_file($fichier_tmp)) {
1471
-			$GLOBALS['fichier_php_compile_recent'] = max($GLOBALS['fichier_php_compile_recent'], filemtime($nom));
1472
-			@unlink($fichier_tmp);
1473
-			return;
1474
-		}
1475
-		@unlink($fichier_tmp);
1476
-	}
1477
-	ecrire_fichier($nom, $contenu);
1478
-	$GLOBALS['fichier_php_compile_recent'] = max($GLOBALS['fichier_php_compile_recent'], filemtime($nom));
1479
-	spip_clear_opcode_cache(realpath($nom));
1455
+    if (!isset($GLOBALS['fichier_php_compile_recent'])) {
1456
+        $GLOBALS['fichier_php_compile_recent'] = 0;
1457
+    }
1458
+
1459
+    $contenu = '<' . '?php' . "\n" . $comment . "\nif (defined('_ECRIRE_INC_VERSION')) {\n" . $contenu . "}\n?" . '>';
1460
+    // si un fichier existe deja on verifie que son contenu change avant de l'ecraser
1461
+    // si pas de modif on ne touche pas au fichier initial
1462
+    if (file_exists($nom)) {
1463
+        if (str_ends_with($nom, '.php')) {
1464
+            $fichier_tmp = substr($nom, 0, -4) . '.tmp.php';
1465
+        }
1466
+        else {
1467
+            $fichier_tmp = $nom . '.tmp';
1468
+        }
1469
+        file_put_contents($fichier_tmp, $contenu);
1470
+        if (md5_file($nom) == md5_file($fichier_tmp)) {
1471
+            $GLOBALS['fichier_php_compile_recent'] = max($GLOBALS['fichier_php_compile_recent'], filemtime($nom));
1472
+            @unlink($fichier_tmp);
1473
+            return;
1474
+        }
1475
+        @unlink($fichier_tmp);
1476
+    }
1477
+    ecrire_fichier($nom, $contenu);
1478
+    $GLOBALS['fichier_php_compile_recent'] = max($GLOBALS['fichier_php_compile_recent'], filemtime($nom));
1479
+    spip_clear_opcode_cache(realpath($nom));
1480 1480
 }
Please login to merge, or discard this patch.
Spacing   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
 
22 22
 /** l'adresse du repertoire de telechargement et de decompactage des plugins */
23 23
 if (!defined('_DIR_PLUGINS_AUTO')) {
24
-	define('_DIR_PLUGINS_AUTO', _DIR_PLUGINS . 'auto/');
24
+	define('_DIR_PLUGINS_AUTO', _DIR_PLUGINS.'auto/');
25 25
 }
26 26
 
27 27
 #include_spip('inc/texte'); // ????? Appelle public/parametrer trop tot avant la reconstruction du chemin des plugins.
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
 				if ($dir) {
379 379
 					$dir .= '/';
380 380
 				}
381
-				$dir .= 'procure:' . $procure['nom'];
381
+				$dir .= 'procure:'.$procure['nom'];
382 382
 
383 383
 				$procure['etat'] = '?';
384 384
 				$procure['dir_type'] = $resume['dir_type'];
@@ -558,7 +558,7 @@  discard block
 block discarded – undo
558 558
 		$plug = $resume['dir'];
559 559
 		$k = $infos[$dir_type][$plug];
560 560
 
561
-		$plug = constant($dir_type) . $plug;
561
+		$plug = constant($dir_type).$plug;
562 562
 		if (!isset($msg[$p])) {
563 563
 			if (isset($resume['erreur']) && $resume['erreur']) {
564 564
 				$msg[$p] = [$resume['erreur']];
@@ -601,10 +601,10 @@  discard block
 block discarded – undo
601 601
 		$list = $raw ? [] : $GLOBALS['meta']['plugin_erreur_activation'];
602 602
 	} elseif (!$raw) {
603 603
 		foreach ($list as $plug => $msg) {
604
-			$list[$plug] = '<li>' . _T('plugin_impossible_activer', ['plugin' => $plug])
605
-				. '<ul><li>' . implode('</li><li>', $msg) . '</li></ul></li>';
604
+			$list[$plug] = '<li>'._T('plugin_impossible_activer', ['plugin' => $plug])
605
+				. '<ul><li>'.implode('</li><li>', $msg).'</li></ul></li>';
606 606
 		}
607
-		$list = '<ul>' . join("\n", $list) . '</ul>';
607
+		$list = '<ul>'.join("\n", $list).'</ul>';
608 608
 	}
609 609
 	if ($raz) {
610 610
 		effacer_meta('plugin_erreur_activation');
@@ -718,13 +718,13 @@  discard block
 block discarded – undo
718 718
 			if ($minimum_inclus && spip_version_compare($version, $minimum, '<')) {
719 719
 				return _T("plugin_{$balise}_{$type}", [
720 720
 					'plugin' => $nom,
721
-					'version' => ' &ge; ' . $minimum
721
+					'version' => ' &ge; '.$minimum
722 722
 				]);
723 723
 			}
724 724
 			if (!$minimum_inclus && spip_version_compare($version, $minimum, '<=')) {
725 725
 				return _T("plugin_{$balise}_{$type}", [
726 726
 					'plugin' => $nom,
727
-					'version' => ' &gt; ' . $minimum
727
+					'version' => ' &gt; '.$minimum
728 728
 				]);
729 729
 			}
730 730
 		}
@@ -733,13 +733,13 @@  discard block
 block discarded – undo
733 733
 			if ($maximum_inclus && spip_version_compare($version, $maximum, '>')) {
734 734
 				return _T("plugin_{$balise}_{$type}", [
735 735
 					'plugin' => $nom,
736
-					'version' => ' &le; ' . $maximum
736
+					'version' => ' &le; '.$maximum
737 737
 				]);
738 738
 			}
739 739
 			if (!$maximum_inclus && spip_version_compare($version, $maximum, '>=')) {
740 740
 				return _T("plugin_{$balise}_plugin", [
741 741
 					'plugin' => $nom,
742
-					'version' => ' &lt; ' . $maximum
742
+					'version' => ' &lt; '.$maximum
743 743
 				]);
744 744
 			}
745 745
 		}
@@ -758,7 +758,7 @@  discard block
 block discarded – undo
758 758
 		include_spip('inc/charger_plugin');
759 759
 		$url = '<br />'	. bouton_telechargement_plugin($url, 'lib');
760 760
 	}*/
761
-	return _T('plugin_necessite_lib', ['lib' => $lib]) . " <a href='$url'>$url</a>";
761
+	return _T('plugin_necessite_lib', ['lib' => $lib])." <a href='$url'>$url</a>";
762 762
 }
763 763
 
764 764
 
@@ -857,7 +857,7 @@  discard block
 block discarded – undo
857 857
 	foreach ($plugin_valides as $p => $resume) {
858 858
 		// Les headers ne doivent pas indiquer les versions des extensions PHP, ni la version PHP
859 859
 		if (!str_starts_with($p, 'PHP:') && $p !== 'PHP') {
860
-			$header[] = $p . ($resume['version'] ? '(' . $resume['version'] . ')' : '');
860
+			$header[] = $p.($resume['version'] ? '('.$resume['version'].')' : '');
861 861
 		}
862 862
 		if ($resume['dir']) {
863 863
 			foreach ($infos[$resume['dir_type']][$resume['dir']]['lib'] as $l) {
@@ -882,11 +882,11 @@  discard block
 block discarded – undo
882 882
 	$header = strtolower(implode(',', $header));
883 883
 	if (!isset($GLOBALS['spip_header_silencieux']) || !$GLOBALS['spip_header_silencieux']) {
884 884
 		ecrire_fichier(
885
-			_DIR_VAR . 'config.txt',
886
-			(defined('_HEADER_COMPOSED_BY') ? _HEADER_COMPOSED_BY : 'Composed-By: SPIP') . ' ' . $GLOBALS['spip_version_affichee'] . ' @ www.spip.net + ' . $header
885
+			_DIR_VAR.'config.txt',
886
+			(defined('_HEADER_COMPOSED_BY') ? _HEADER_COMPOSED_BY : 'Composed-By: SPIP').' '.$GLOBALS['spip_version_affichee'].' @ www.spip.net + '.$header
887 887
 		);
888 888
 	} else {
889
-		@unlink(_DIR_VAR . 'config.txt');
889
+		@unlink(_DIR_VAR.'config.txt');
890 890
 	}
891 891
 	// generer charger_plugins_chemin.php
892 892
 	plugins_precompile_chemin($plugin_valides, $ordre);
@@ -940,7 +940,7 @@  discard block
 block discarded – undo
940 940
 			// definir le plugin, donc le path avant l'include du fichier options
941 941
 			// permet de faire des include_spip pour attraper un inc_ du plugin
942 942
 
943
-			$dir = $dir_type . ".'" . $plug . "/'";
943
+			$dir = $dir_type.".'".$plug."/'";
944 944
 
945 945
 			$prefix = strtoupper(preg_replace(',\W,', '_', $info['prefix']));
946 946
 			if (
@@ -951,7 +951,7 @@  discard block
 block discarded – undo
951 951
 				if (!$info['chemin']) {
952 952
 					$chemins['public'][] = "_DIR_PLUGIN_$prefix";
953 953
 					$chemins['prive'][] = "_DIR_PLUGIN_$prefix";
954
-					if (is_dir(constant($dir_type) . $plug . '/squelettes/')) {
954
+					if (is_dir(constant($dir_type).$plug.'/squelettes/')) {
955 955
 						$chemins['public'][] = "_DIR_PLUGIN_{$prefix}.'squelettes/'";
956 956
 					}
957 957
 				}
@@ -973,13 +973,13 @@  discard block
 block discarded – undo
973 973
 								$dir = '';
974 974
 							}
975 975
 							if (strlen($dir)) {
976
-								$dir = rtrim($dir, '/') . '/';
976
+								$dir = rtrim($dir, '/').'/';
977 977
 							}
978 978
 							if (!isset($chemin['type']) || $chemin['type'] == 'public') {
979
-								$chemins['public'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
979
+								$chemins['public'][] = "_DIR_PLUGIN_$prefix".(strlen($dir) ? ".'$dir'" : '');
980 980
 							}
981 981
 							if (!isset($chemin['type']) || $chemin['type'] == 'prive') {
982
-								$chemins['prive'][] = "_DIR_PLUGIN_$prefix" . (strlen($dir) ? ".'$dir'" : '');
982
+								$chemins['prive'][] = "_DIR_PLUGIN_$prefix".(strlen($dir) ? ".'$dir'" : '');
983 983
 							}
984 984
 						}
985 985
 					}
@@ -988,11 +988,11 @@  discard block
 block discarded – undo
988 988
 		}
989 989
 	}
990 990
 	if (count($chemins['public']) || count($chemins['prive'])) {
991
-		$contenu .= 'if (_DIR_RESTREINT) _chemin([' . implode(
991
+		$contenu .= 'if (_DIR_RESTREINT) _chemin(['.implode(
992 992
 			',',
993 993
 			array_reverse($chemins['public'])
994
-		) . "]);\n"
995
-			. 'else _chemin([' . implode(',', array_reverse($chemins['prive'])) . "]);\n";
994
+		)."]);\n"
995
+			. 'else _chemin(['.implode(',', array_reverse($chemins['prive']))."]);\n";
996 996
 	}
997 997
 
998 998
 	ecrire_fichier_php(_CACHE_PLUGINS_PATH, $contenu);
@@ -1041,7 +1041,7 @@  discard block
 block discarded – undo
1041 1041
 					&& !str_contains($dir, ':')
1042 1042
 					&& file_exists("$dir$plug/paquet.xml") // uniquement pour les paquet.xml
1043 1043
 				) {
1044
-					if (is_readable("$dir$plug/" . ($file = $info['prefix'] . '_' . $charge . '.php'))) {
1044
+					if (is_readable("$dir$plug/".($file = $info['prefix'].'_'.$charge.'.php'))) {
1045 1045
 						$info[$charge] = [$file];
1046 1046
 					}
1047 1047
 				}
@@ -1056,7 +1056,7 @@  discard block
 block discarded – undo
1056 1056
 						) {
1057 1057
 							unset($info[$charge][$k]);
1058 1058
 						} else {
1059
-							$_file = $root_dir_type . ".'$plug/$file'";
1059
+							$_file = $root_dir_type.".'$plug/$file'";
1060 1060
 							$contenu[$charge] .= "include_once_check($_file);\n";
1061 1061
 						}
1062 1062
 					}
@@ -1066,7 +1066,7 @@  discard block
 block discarded – undo
1066 1066
 		}
1067 1067
 	}
1068 1068
 
1069
-	$contenu['options'] = "define('_PLUGINS_HASH','" . md5($sign) . "');\n" . $contenu['options'];
1069
+	$contenu['options'] = "define('_PLUGINS_HASH','".md5($sign)."');\n".$contenu['options'];
1070 1070
 	$contenu['fonctions'] .= plugin_ongletbouton('boutons_plugins', $boutons)
1071 1071
 		. plugin_ongletbouton('onglets_plugins', $onglets);
1072 1072
 
@@ -1101,12 +1101,12 @@  discard block
 block discarded – undo
1101 1101
 		define("_UPDATED_$nom", $val);
1102 1102
 		define("_UPDATED_md5_$nom", $md5);
1103 1103
 	}
1104
-	$val = "unserialize('" . str_replace("'", "\'", $val) . "')";
1104
+	$val = "unserialize('".str_replace("'", "\'", $val)."')";
1105 1105
 
1106 1106
 	return
1107 1107
 		"if (!function_exists('$nom')) {\n"
1108 1108
 		. "function $nom(){return defined('_UPDATED_$nom')?unserialize(_UPDATED_$nom):$val;}\n"
1109
-		. "function md5_$nom(){return defined('_UPDATED_md5_$nom')?_UPDATED_md5_$nom:'" . $md5 . "';}\n"
1109
+		. "function md5_$nom(){return defined('_UPDATED_md5_$nom')?_UPDATED_md5_$nom:'".$md5."';}\n"
1110 1110
 		. "}\n";
1111 1111
 }
1112 1112
 
@@ -1129,7 +1129,7 @@  discard block
 block discarded – undo
1129 1129
 	if (@is_readable(_CACHE_PLUGINS_OPT)) {
1130 1130
 		include_once(_CACHE_PLUGINS_OPT);
1131 1131
 	} else {
1132
-		spip_log('pipelines desactives: impossible de produire ' . _CACHE_PLUGINS_OPT);
1132
+		spip_log('pipelines desactives: impossible de produire '._CACHE_PLUGINS_OPT);
1133 1133
 	}
1134 1134
 }
1135 1135
 
@@ -1166,7 +1166,7 @@  discard block
 block discarded – undo
1166 1166
 			$dir_type = $plugin_valides[$p]['dir_type'];
1167 1167
 			$root_dir_type = str_replace('_DIR_', '_ROOT_', $dir_type);
1168 1168
 			$plug = $plugin_valides[$p]['dir'];
1169
-			$prefix = (($info['prefix'] == 'spip') ? '' : $info['prefix'] . '_');
1169
+			$prefix = (($info['prefix'] == 'spip') ? '' : $info['prefix'].'_');
1170 1170
 			if (isset($info['pipeline']) && is_array($info['pipeline'])) {
1171 1171
 				foreach ($info['pipeline'] as $pipe) {
1172 1172
 					$nom = $pipe['nom'];
@@ -1200,7 +1200,7 @@  discard block
 block discarded – undo
1200 1200
 						}
1201 1201
 						if (isset($pipe['inclure'])) {
1202 1202
 							$GLOBALS['spip_matrice']["$prefix$action"] =
1203
-								"$root_dir_type:$plug/" . $pipe['inclure'];
1203
+								"$root_dir_type:$plug/".$pipe['inclure'];
1204 1204
 						}
1205 1205
 					}
1206 1206
 				}
@@ -1210,7 +1210,7 @@  discard block
 block discarded – undo
1210 1210
 					$prepend_code['taches_generales_cron'] = '';
1211 1211
 				}
1212 1212
 				foreach ($info['genie'] as $genie) {
1213
-					$nom = $prefix . $genie['nom'];
1213
+					$nom = $prefix.$genie['nom'];
1214 1214
 					$periode = max(60, intval($genie['periode']));
1215 1215
 					if (charger_fonction($nom, 'genie', true)) {
1216 1216
 						$prepend_code['taches_generales_cron'] .= "\$val['$nom'] = $periode;\n";
@@ -1228,13 +1228,13 @@  discard block
 block discarded – undo
1228 1228
 				}
1229 1229
 				foreach ($info['style'] as $style) {
1230 1230
 					if (isset($style['path']) && $style['path']) {
1231
-						$code = "if (\$f=timestamp(direction_css(find_in_path('" . addslashes($style['path']) . "')))) ";
1231
+						$code = "if (\$f=timestamp(direction_css(find_in_path('".addslashes($style['path'])."')))) ";
1232 1232
 					} else {
1233
-						$code = "if (\$f='" . addslashes($style['url']) . "') ";
1233
+						$code = "if (\$f='".addslashes($style['url'])."') ";
1234 1234
 					}
1235 1235
 					$code .= "\$val .= '<link rel=\"stylesheet\" href=\"'.\$f.'\" type=\"text/css\"";
1236 1236
 					if (isset($style['media']) && strlen($style['media'])) {
1237
-						$code .= ' media="' . addslashes($style['media']) . '"';
1237
+						$code .= ' media="'.addslashes($style['media']).'"';
1238 1238
 					}
1239 1239
 					$code .= "/>';\n";
1240 1240
 					if ($style['type'] != 'prive') {
@@ -1254,9 +1254,9 @@  discard block
 block discarded – undo
1254 1254
 			if (isset($info['script']) && (is_countable($info['script']) ? count($info['script']) : 0)) {
1255 1255
 				foreach ($info['script'] as $script) {
1256 1256
 					if (isset($script['path']) && $script['path']) {
1257
-						$code = "if (\$f=timestamp(find_in_path('" . addslashes($script['path']) . "'))) ";
1257
+						$code = "if (\$f=timestamp(find_in_path('".addslashes($script['path'])."'))) ";
1258 1258
 					} else {
1259
-						$code = "if (\$f='" . addslashes($script['url']) . "') ";
1259
+						$code = "if (\$f='".addslashes($script['url'])."') ";
1260 1260
 					}
1261 1261
 					$code .= "\$val .= '<script src=\"'.\$f.'\" type=\"text/javascript\"></script>';\n";
1262 1262
 					if ($script['type'] != 'prive') {
@@ -1319,10 +1319,10 @@  discard block
 block discarded – undo
1319 1319
 		unset($GLOBALS['spip_pipeline']['all']);
1320 1320
 		$all_pipes = trim(array_shift($a));
1321 1321
 		if ($all_pipes) {
1322
-			$all_pipes = '|' . ltrim($all_pipes, '|');
1322
+			$all_pipes = '|'.ltrim($all_pipes, '|');
1323 1323
 		}
1324 1324
 		if (count($a)) {
1325
-			$all_pipes_end = '||' . array_shift($a);
1325
+			$all_pipes_end = '||'.array_shift($a);
1326 1326
 		}
1327 1327
 	}
1328 1328
 	$content = '';
@@ -1339,7 +1339,7 @@  discard block
 block discarded – undo
1339 1339
 		// Eclater le pipeline en filtres et appliquer chaque filtre
1340 1340
 		foreach ($pipe as $fonc) {
1341 1341
 			$fonc = trim($fonc);
1342
-			$s_call .= '$val = minipipe(\'' . $fonc . '\', $val);' . "\n";
1342
+			$s_call .= '$val = minipipe(\''.$fonc.'\', $val);'."\n";
1343 1343
 			if (isset($GLOBALS['spip_matrice'][$fonc])) {
1344 1344
 				$file = $GLOBALS['spip_matrice'][$fonc];
1345 1345
 				$file = "'$file'";
@@ -1350,7 +1350,7 @@  discard block
 block discarded – undo
1350 1350
 					if (defined($root_dir)) {
1351 1351
 						$dir = $root_dir;
1352 1352
 					}
1353
-					$file = str_replace($regs[0], "'." . $dir . ".'", $file);
1353
+					$file = str_replace($regs[0], "'.".$dir.".'", $file);
1354 1354
 					$file = str_replace("''.", '', $file);
1355 1355
 					$file = str_replace(constant($dir), '', $file);
1356 1356
 				}
@@ -1363,7 +1363,7 @@  discard block
 block discarded – undo
1363 1363
 		$content .= "// Pipeline $action \n"
1364 1364
 			. "function execute_pipeline_$action(&\$val){\n"
1365 1365
 			. $s_inc
1366
-			. ((isset($prepend_code[$action]) && strlen($prepend_code[$action])) ? trim($prepend_code[$action]) . "\n" : '')
1366
+			. ((isset($prepend_code[$action]) && strlen($prepend_code[$action])) ? trim($prepend_code[$action])."\n" : '')
1367 1367
 			. $s_call
1368 1368
 			. "return \$val;\n}\n";
1369 1369
 	}
@@ -1419,9 +1419,9 @@  discard block
 block discarded – undo
1419 1419
 					$result = ($ok ? ((isset($infos['upgrade']) && $infos['upgrade']) ? _T('plugin_info_upgrade_ok') : _T('plugin_info_install_ok')) : _T('avis_operation_echec'));
1420 1420
 					if (_IS_CLI) {
1421 1421
 						include_spip('inc/filtres');
1422
-						$trace = ltrim(textebrut($trace) . "\n" . $result);
1423
-						$trace = '    ' . str_replace("\n", "\n    ", $trace);
1424
-						echo "\n" . ($ok ? 'OK  ' : '/!\ ') . textebrut($titre) . "\n",
1422
+						$trace = ltrim(textebrut($trace)."\n".$result);
1423
+						$trace = '    '.str_replace("\n", "\n    ", $trace);
1424
+						echo "\n".($ok ? 'OK  ' : '/!\ ').textebrut($titre)."\n",
1425 1425
 						  $trace,
1426 1426
 						  "\n";
1427 1427
 					}
@@ -1456,15 +1456,15 @@  discard block
 block discarded – undo
1456 1456
 		$GLOBALS['fichier_php_compile_recent'] = 0;
1457 1457
 	}
1458 1458
 
1459
-	$contenu = '<' . '?php' . "\n" . $comment . "\nif (defined('_ECRIRE_INC_VERSION')) {\n" . $contenu . "}\n?" . '>';
1459
+	$contenu = '<'.'?php'."\n".$comment."\nif (defined('_ECRIRE_INC_VERSION')) {\n".$contenu."}\n?".'>';
1460 1460
 	// si un fichier existe deja on verifie que son contenu change avant de l'ecraser
1461 1461
 	// si pas de modif on ne touche pas au fichier initial
1462 1462
 	if (file_exists($nom)) {
1463 1463
 		if (str_ends_with($nom, '.php')) {
1464
-			$fichier_tmp = substr($nom, 0, -4) . '.tmp.php';
1464
+			$fichier_tmp = substr($nom, 0, -4).'.tmp.php';
1465 1465
 		}
1466 1466
 		else {
1467
-			$fichier_tmp = $nom . '.tmp';
1467
+			$fichier_tmp = $nom.'.tmp';
1468 1468
 		}
1469 1469
 		file_put_contents($fichier_tmp, $contenu);
1470 1470
 		if (md5_file($nom) == md5_file($fichier_tmp)) {
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -562,11 +562,9 @@  discard block
 block discarded – undo
562 562
 		if (!isset($msg[$p])) {
563 563
 			if (isset($resume['erreur']) && $resume['erreur']) {
564 564
 				$msg[$p] = [$resume['erreur']];
565
-			}
566
-			elseif (!plugin_version_compatible($k['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
565
+			} elseif (!plugin_version_compatible($k['compatibilite'], $GLOBALS['spip_version_branche'], 'spip')) {
567 566
 				$msg[$p] = [plugin_message_incompatibilite($k['compatibilite'], $GLOBALS['spip_version_branche'], 'SPIP', 'necessite')];
568
-			}
569
-			elseif (!$msg[$p] = plugin_necessite($k['necessite'], $liste, 'necessite')) {
567
+			} elseif (!$msg[$p] = plugin_necessite($k['necessite'], $liste, 'necessite')) {
570 568
 				$msg[$p] = plugin_necessite($k['utilise'], $liste, 'utilise');
571 569
 			}
572 570
 		} else {
@@ -954,8 +952,7 @@  discard block
 block discarded – undo
954 952
 					if (is_dir(constant($dir_type) . $plug . '/squelettes/')) {
955 953
 						$chemins['public'][] = "_DIR_PLUGIN_{$prefix}.'squelettes/'";
956 954
 					}
957
-				}
958
-				else {
955
+				} else {
959 956
 					foreach ($info['chemin'] as $chemin) {
960 957
 						if (
961 958
 							!isset($chemin['version'])
@@ -1424,8 +1421,7 @@  discard block
 block discarded – undo
1424 1421
 						echo "\n" . ($ok ? 'OK  ' : '/!\ ') . textebrut($titre) . "\n",
1425 1422
 						  $trace,
1426 1423
 						  "\n";
1427
-					}
1428
-					else {
1424
+					} else {
1429 1425
 						include_spip('inc/filtres_boites');
1430 1426
 						echo "<div class='install-plugins svp_retour'>"
1431 1427
 							. boite_ouvrir($titre, ($ok ? 'success' : 'error'))
@@ -1462,8 +1458,7 @@  discard block
 block discarded – undo
1462 1458
 	if (file_exists($nom)) {
1463 1459
 		if (str_ends_with($nom, '.php')) {
1464 1460
 			$fichier_tmp = substr($nom, 0, -4) . '.tmp.php';
1465
-		}
1466
-		else {
1461
+		} else {
1467 1462
 			$fichier_tmp = $nom . '.tmp';
1468 1463
 		}
1469 1464
 		file_put_contents($fichier_tmp, $contenu);
Please login to merge, or discard this patch.
ecrire/inc/auth.php 2 patches
Indentation   +448 added lines, -448 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('base/abstract_sql');
@@ -34,33 +34,33 @@  discard block
 block discarded – undo
34 34
  *  - une chaîne vide si autorisation à pénétrer dans l'espace privé.
35 35
  */
36 36
 function inc_auth_dist() {
37
-	$row = auth_mode();
37
+    $row = auth_mode();
38 38
 
39
-	if ($row) {
40
-		return auth_init_droits($row);
41
-	}
39
+    if ($row) {
40
+        return auth_init_droits($row);
41
+    }
42 42
 
43
-	if (!$GLOBALS['connect_login']) {
44
-		return auth_a_loger();
45
-	}
43
+    if (!$GLOBALS['connect_login']) {
44
+        return auth_a_loger();
45
+    }
46 46
 
47
-	// Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
48
-	// C'est soit parce que la base est inutilisable,
49
-	// soit parce que la table des auteurs a changee (restauration etc)
50
-	// Pas la peine d'insister.
51
-	// Renvoyer le nom fautif et une URL de remise a zero
47
+    // Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
48
+    // C'est soit parce que la base est inutilisable,
49
+    // soit parce que la table des auteurs a changee (restauration etc)
50
+    // Pas la peine d'insister.
51
+    // Renvoyer le nom fautif et une URL de remise a zero
52 52
 
53
-	if (spip_connect()) {
54
-		return [
55
-			'login' => $GLOBALS['connect_login'],
56
-			'site' => generer_url_public('', 'action=logout&amp;logout=prive')
57
-		];
58
-	}
53
+    if (spip_connect()) {
54
+        return [
55
+            'login' => $GLOBALS['connect_login'],
56
+            'site' => generer_url_public('', 'action=logout&amp;logout=prive')
57
+        ];
58
+    }
59 59
 
60
-	$n = (int) sql_errno();
61
-	spip_log("Erreur base de donnees $n " . sql_error());
60
+    $n = (int) sql_errno();
61
+    spip_log("Erreur base de donnees $n " . sql_error());
62 62
 
63
-	return $n ?: 1;
63
+    return $n ?: 1;
64 64
 }
65 65
 
66 66
 /**
@@ -69,15 +69,15 @@  discard block
 block discarded – undo
69 69
  */
70 70
 function auth_controler_password_auteur_connecte(#[\SensitiveParameter] string $password): bool {
71 71
 
72
-	if (
73
-		empty($GLOBALS['visiteur_session']['id_auteur'])
74
-		|| empty($GLOBALS['visiteur_session']['login'])
75
-	) {
76
-		return false;
77
-	}
72
+    if (
73
+        empty($GLOBALS['visiteur_session']['id_auteur'])
74
+        || empty($GLOBALS['visiteur_session']['login'])
75
+    ) {
76
+        return false;
77
+    }
78 78
 
79
-	$auth = auth_identifier_login($GLOBALS['visiteur_session']['login'], $password, '', true);
80
-	return is_array($auth) && $auth['id_auteur'] == $GLOBALS['visiteur_session']['id_auteur'];
79
+    $auth = auth_identifier_login($GLOBALS['visiteur_session']['login'], $password, '', true);
80
+    return is_array($auth) && $auth['id_auteur'] == $GLOBALS['visiteur_session']['id_auteur'];
81 81
 }
82 82
 
83 83
 /**
@@ -89,47 +89,47 @@  discard block
 block discarded – undo
89 89
  * @return array|string
90 90
  */
91 91
 function auth_echec($raison) {
92
-	include_spip('inc/minipres');
93
-	include_spip('inc/headers');
94
-	// pas authentifie. Pourquoi ?
95
-	if (is_string($raison)) {
96
-		// redirection vers une page d'authentification
97
-		// on ne revient pas de cette fonction
98
-		// sauf si pb de header
99
-		$raison = redirige_formulaire($raison);
100
-	} elseif (is_int($raison)) {
101
-		// erreur SQL a afficher
102
-		$raison = minipres(
103
-			_T('info_travaux_titre'),
104
-			_T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
105
-		);
106
-	} elseif (@$raison['statut']) {
107
-		// un simple visiteur n'a pas acces a l'espace prive
108
-		spip_log('connexion refusee a ' . @$raison['id_auteur']);
109
-		$est_connecte = (!empty($GLOBALS['visiteur_session']['login']) && !empty($GLOBALS['visiteur_session']['statut'])); // idem test balise #URL_LOGOUT
110
-		$raison = minipres(
111
-			_T('avis_erreur_connexion'),
112
-			_T('avis_erreur_visiteur')
113
-				// Lien vers le site public
114
-				. '<br /><a href="' . url_de_base() . '">' . _T('login_retour_public') . '</a>'
115
-				// Si la personne est connectée, lien de déconnexion ramenant vers la page de login
116
-				. ($est_connecte ? ' | <a href="' . generer_url_public('', 'action=logout&amp;logout=prive') . '">' . _T('icone_deconnecter') . '</a>' : '')
117
-		);
118
-	} else {
119
-		// auteur en fin de droits ...
120
-		$h = $raison['site'];
121
-		$raison = minipres(
122
-			_T('avis_erreur_connexion'),
123
-			'<br /><br /><p>'
124
-			. _T('texte_inc_auth_1', ['auth_login' => $raison['login']])
125
-			. " <a href='$h'>"
126
-			. _T('texte_inc_auth_2')
127
-			. '</a>'
128
-			. _T('texte_inc_auth_3')
129
-		);
130
-	}
131
-
132
-	return $raison;
92
+    include_spip('inc/minipres');
93
+    include_spip('inc/headers');
94
+    // pas authentifie. Pourquoi ?
95
+    if (is_string($raison)) {
96
+        // redirection vers une page d'authentification
97
+        // on ne revient pas de cette fonction
98
+        // sauf si pb de header
99
+        $raison = redirige_formulaire($raison);
100
+    } elseif (is_int($raison)) {
101
+        // erreur SQL a afficher
102
+        $raison = minipres(
103
+            _T('info_travaux_titre'),
104
+            _T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
105
+        );
106
+    } elseif (@$raison['statut']) {
107
+        // un simple visiteur n'a pas acces a l'espace prive
108
+        spip_log('connexion refusee a ' . @$raison['id_auteur']);
109
+        $est_connecte = (!empty($GLOBALS['visiteur_session']['login']) && !empty($GLOBALS['visiteur_session']['statut'])); // idem test balise #URL_LOGOUT
110
+        $raison = minipres(
111
+            _T('avis_erreur_connexion'),
112
+            _T('avis_erreur_visiteur')
113
+                // Lien vers le site public
114
+                . '<br /><a href="' . url_de_base() . '">' . _T('login_retour_public') . '</a>'
115
+                // Si la personne est connectée, lien de déconnexion ramenant vers la page de login
116
+                . ($est_connecte ? ' | <a href="' . generer_url_public('', 'action=logout&amp;logout=prive') . '">' . _T('icone_deconnecter') . '</a>' : '')
117
+        );
118
+    } else {
119
+        // auteur en fin de droits ...
120
+        $h = $raison['site'];
121
+        $raison = minipres(
122
+            _T('avis_erreur_connexion'),
123
+            '<br /><br /><p>'
124
+            . _T('texte_inc_auth_1', ['auth_login' => $raison['login']])
125
+            . " <a href='$h'>"
126
+            . _T('texte_inc_auth_2')
127
+            . '</a>'
128
+            . _T('texte_inc_auth_3')
129
+        );
130
+    }
131
+
132
+    return $raison;
133 133
 }
134 134
 
135 135
 /**
@@ -139,79 +139,79 @@  discard block
 block discarded – undo
139 139
  * @return array|bool|string
140 140
  */
141 141
 function auth_mode() {
142
-	//
143
-	// Initialiser variables (eviter hacks par URL)
144
-	//
145
-	$GLOBALS['connect_login'] = '';
146
-	$id_auteur = null;
147
-	$GLOBALS['auth_can_disconnect'] = false;
148
-
149
-	//
150
-	// Recuperer les donnees d'identification
151
-	//
152
-	include_spip('inc/session');
153
-	// Session valide en cours ?
154
-	if ($cookie = lire_cookie_session()) {
155
-		$session = charger_fonction('session', 'inc');
156
-		if (
157
-			($id_auteur = $session()) || $id_auteur === 0 // reprise sur restauration
158
-		) {
159
-			$GLOBALS['auth_can_disconnect'] = true;
160
-			$GLOBALS['connect_login'] = session_get('login');
161
-		} else {
162
-			unset($_COOKIE['spip_session']);
163
-		}
164
-	}
165
-
166
-	// Essayer auth http si significatif
167
-	// (ignorer les login d'intranet independants de spip)
168
-	if (!$GLOBALS['ignore_auth_http']) {
169
-		if (
170
-			isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])
171
-				&& ($r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
172
-			// Si auth http differtente de basic, PHP_AUTH_PW
173
-			// est indisponible mais tentons quand meme pour
174
-			// autocreation via LDAP
175
-			|| isset($_SERVER['REMOTE_USER'])
176
-				&& ($r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
177
-		) {
178
-			if (!$id_auteur) {
179
-				$_SERVER['PHP_AUTH_PW'] = '';
180
-				$GLOBALS['auth_can_disconnect'] = true;
181
-				$GLOBALS['visiteur_session'] = $r;
182
-				$GLOBALS['connect_login'] = session_get('login');
183
-				$id_auteur = $r['id_auteur'];
184
-			} else {
185
-				// cas de la session en plus de PHP_AUTH
186
-				/*				  if ($id_auteur != $r['id_auteur']){
142
+    //
143
+    // Initialiser variables (eviter hacks par URL)
144
+    //
145
+    $GLOBALS['connect_login'] = '';
146
+    $id_auteur = null;
147
+    $GLOBALS['auth_can_disconnect'] = false;
148
+
149
+    //
150
+    // Recuperer les donnees d'identification
151
+    //
152
+    include_spip('inc/session');
153
+    // Session valide en cours ?
154
+    if ($cookie = lire_cookie_session()) {
155
+        $session = charger_fonction('session', 'inc');
156
+        if (
157
+            ($id_auteur = $session()) || $id_auteur === 0 // reprise sur restauration
158
+        ) {
159
+            $GLOBALS['auth_can_disconnect'] = true;
160
+            $GLOBALS['connect_login'] = session_get('login');
161
+        } else {
162
+            unset($_COOKIE['spip_session']);
163
+        }
164
+    }
165
+
166
+    // Essayer auth http si significatif
167
+    // (ignorer les login d'intranet independants de spip)
168
+    if (!$GLOBALS['ignore_auth_http']) {
169
+        if (
170
+            isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])
171
+                && ($r = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))
172
+            // Si auth http differtente de basic, PHP_AUTH_PW
173
+            // est indisponible mais tentons quand meme pour
174
+            // autocreation via LDAP
175
+            || isset($_SERVER['REMOTE_USER'])
176
+                && ($r = lire_php_auth($_SERVER['PHP_AUTH_USER'] = $_SERVER['REMOTE_USER'], ''))
177
+        ) {
178
+            if (!$id_auteur) {
179
+                $_SERVER['PHP_AUTH_PW'] = '';
180
+                $GLOBALS['auth_can_disconnect'] = true;
181
+                $GLOBALS['visiteur_session'] = $r;
182
+                $GLOBALS['connect_login'] = session_get('login');
183
+                $id_auteur = $r['id_auteur'];
184
+            } else {
185
+                // cas de la session en plus de PHP_AUTH
186
+                /*				  if ($id_auteur != $r['id_auteur']){
187 187
 					spip_log("vol de session $id_auteur" . join(', ', $r));
188 188
 				unset($_COOKIE['spip_session']);
189 189
 				$id_auteur = '';
190 190
 				} */
191
-			}
192
-		} else {
193
-			// Authentification .htaccess old style, car .htaccess semble
194
-			// souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
195
-			if (isset($_SERVER['REMOTE_USER'])) {
196
-				$GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
197
-			}
198
-		}
199
-	}
200
-
201
-	$where = (is_numeric($id_auteur)
202
-		/*AND $id_auteur>0*/ // reprise lors des restaurations
203
-	) ?
204
-		"id_auteur=$id_auteur" :
205
-		(strlen((string) $GLOBALS['connect_login']) ? 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text') : '');
206
-
207
-	if (!$where) {
208
-		return '';
209
-	}
210
-
211
-	// Trouver les autres infos dans la table auteurs.
212
-	// le champ 'quand' est utilise par l'agenda
213
-
214
-	return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
191
+            }
192
+        } else {
193
+            // Authentification .htaccess old style, car .htaccess semble
194
+            // souvent definir *aussi* PHP_AUTH_USER et PHP_AUTH_PW
195
+            if (isset($_SERVER['REMOTE_USER'])) {
196
+                $GLOBALS['connect_login'] = $_SERVER['REMOTE_USER'];
197
+            }
198
+        }
199
+    }
200
+
201
+    $where = (is_numeric($id_auteur)
202
+        /*AND $id_auteur>0*/ // reprise lors des restaurations
203
+    ) ?
204
+        "id_auteur=$id_auteur" :
205
+        (strlen((string) $GLOBALS['connect_login']) ? 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text') : '');
206
+
207
+    if (!$where) {
208
+        return '';
209
+    }
210
+
211
+    // Trouver les autres infos dans la table auteurs.
212
+    // le champ 'quand' est utilise par l'agenda
213
+
214
+    return sql_fetsel('*, en_ligne AS quand', 'spip_auteurs', "$where AND statut!='5poubelle'");
215 215
 }
216 216
 
217 217
 /**
@@ -229,96 +229,96 @@  discard block
 block discarded – undo
229 229
  */
230 230
 function auth_init_droits($row) {
231 231
 
232
-	include_spip('inc/autoriser');
233
-	if (!autoriser('loger', '', 0, $row)) {
234
-		return false;
235
-	}
236
-
237
-
238
-	if ($row['statut'] == 'nouveau') {
239
-		include_spip('action/inscrire_auteur');
240
-		$row = confirmer_statut_inscription($row);
241
-	}
242
-
243
-	$GLOBALS['connect_id_auteur'] = $row['id_auteur'];
244
-	$GLOBALS['connect_login'] = $row['login'];
245
-	$GLOBALS['connect_statut'] = $row['statut'];
246
-
247
-	$GLOBALS['visiteur_session'] = array_merge((array) $GLOBALS['visiteur_session'], $row);
248
-
249
-	// au cas ou : ne pas memoriser les champs sensibles
250
-	$GLOBALS['visiteur_session'] = auth_desensibiliser_session($GLOBALS['visiteur_session']);
251
-
252
-	// creer la session au besoin
253
-	include_spip('inc/session');
254
-	if (!lire_cookie_session()) {
255
-		$session = charger_fonction('session', 'inc');
256
-		$spip_session = $session($row);
257
-	}
258
-
259
-	// reinjecter les preferences_auteur apres le reset de spip_session
260
-	// car utilisees au retour par auth_loger()
261
-	$r = @unserialize($row['prefs']);
262
-	$GLOBALS['visiteur_session']['prefs'] = ($r ?: []);
263
-	// si prefs pas definies, les definir par defaut
264
-	if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
265
-		$GLOBALS['visiteur_session']['prefs']['couleur'] = 2;
266
-		$GLOBALS['visiteur_session']['prefs']['display'] = 2;
267
-		$GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
268
-	}
269
-
270
-	$GLOBALS['visiteur_session'] = pipeline(
271
-		'preparer_visiteur_session',
272
-		['args' => ['row' => $row],
273
-		'data' => $GLOBALS['visiteur_session']]
274
-	);
275
-
276
-	// Etablir les droits selon le codage attendu
277
-	// dans ecrire/index.php ecrire/prive.php
278
-
279
-	// Pas autorise a acceder a ecrire ? renvoyer le tableau
280
-	// A noter : le premier appel a autoriser() a le bon gout
281
-	// d'initialiser $GLOBALS['visiteur_session']['restreint'],
282
-	// qui ne figure pas dans le fichier de session
283
-
284
-	if (!autoriser('ecrire')) {
285
-		return $row;
286
-	}
287
-
288
-	// autoriser('ecrire') ne laisse passer que les Admin et les Redac
289
-
290
-	auth_trace($row);
291
-
292
-	// Administrateurs
293
-	if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
294
-		if (
295
-			isset($GLOBALS['visiteur_session']['restreint'])
296
-			&& is_array($GLOBALS['visiteur_session']['restreint'])
297
-		) {
298
-			$GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
299
-		}
300
-		if ($GLOBALS['connect_statut'] == '0minirezo') {
301
-			$GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
302
-		}
303
-	}
304
-
305
-	// Pour les redacteurs, inc_version a fait l'initialisation minimale
306
-
307
-	return ''; // i.e. pas de pb.
232
+    include_spip('inc/autoriser');
233
+    if (!autoriser('loger', '', 0, $row)) {
234
+        return false;
235
+    }
236
+
237
+
238
+    if ($row['statut'] == 'nouveau') {
239
+        include_spip('action/inscrire_auteur');
240
+        $row = confirmer_statut_inscription($row);
241
+    }
242
+
243
+    $GLOBALS['connect_id_auteur'] = $row['id_auteur'];
244
+    $GLOBALS['connect_login'] = $row['login'];
245
+    $GLOBALS['connect_statut'] = $row['statut'];
246
+
247
+    $GLOBALS['visiteur_session'] = array_merge((array) $GLOBALS['visiteur_session'], $row);
248
+
249
+    // au cas ou : ne pas memoriser les champs sensibles
250
+    $GLOBALS['visiteur_session'] = auth_desensibiliser_session($GLOBALS['visiteur_session']);
251
+
252
+    // creer la session au besoin
253
+    include_spip('inc/session');
254
+    if (!lire_cookie_session()) {
255
+        $session = charger_fonction('session', 'inc');
256
+        $spip_session = $session($row);
257
+    }
258
+
259
+    // reinjecter les preferences_auteur apres le reset de spip_session
260
+    // car utilisees au retour par auth_loger()
261
+    $r = @unserialize($row['prefs']);
262
+    $GLOBALS['visiteur_session']['prefs'] = ($r ?: []);
263
+    // si prefs pas definies, les definir par defaut
264
+    if (!isset($GLOBALS['visiteur_session']['prefs']['couleur'])) {
265
+        $GLOBALS['visiteur_session']['prefs']['couleur'] = 2;
266
+        $GLOBALS['visiteur_session']['prefs']['display'] = 2;
267
+        $GLOBALS['visiteur_session']['prefs']['display_navigation'] = 'navigation_avec_icones';
268
+    }
269
+
270
+    $GLOBALS['visiteur_session'] = pipeline(
271
+        'preparer_visiteur_session',
272
+        ['args' => ['row' => $row],
273
+        'data' => $GLOBALS['visiteur_session']]
274
+    );
275
+
276
+    // Etablir les droits selon le codage attendu
277
+    // dans ecrire/index.php ecrire/prive.php
278
+
279
+    // Pas autorise a acceder a ecrire ? renvoyer le tableau
280
+    // A noter : le premier appel a autoriser() a le bon gout
281
+    // d'initialiser $GLOBALS['visiteur_session']['restreint'],
282
+    // qui ne figure pas dans le fichier de session
283
+
284
+    if (!autoriser('ecrire')) {
285
+        return $row;
286
+    }
287
+
288
+    // autoriser('ecrire') ne laisse passer que les Admin et les Redac
289
+
290
+    auth_trace($row);
291
+
292
+    // Administrateurs
293
+    if (in_array($GLOBALS['connect_statut'], explode(',', _STATUT_AUTEUR_RUBRIQUE))) {
294
+        if (
295
+            isset($GLOBALS['visiteur_session']['restreint'])
296
+            && is_array($GLOBALS['visiteur_session']['restreint'])
297
+        ) {
298
+            $GLOBALS['connect_id_rubrique'] = $GLOBALS['visiteur_session']['restreint'];
299
+        }
300
+        if ($GLOBALS['connect_statut'] == '0minirezo') {
301
+            $GLOBALS['connect_toutes_rubriques'] = !$GLOBALS['connect_id_rubrique'];
302
+        }
303
+    }
304
+
305
+    // Pour les redacteurs, inc_version a fait l'initialisation minimale
306
+
307
+    return ''; // i.e. pas de pb.
308 308
 }
309 309
 
310 310
 /**
311 311
  * Enlever les clés sensibles d'une ligne auteur
312 312
  */
313 313
 function auth_desensibiliser_session(array $auteur): array {
314
-	$cles_sensibles = ['pass', 'htpass', 'low_sec', 'alea_actuel', 'alea_futur', 'ldap_password', 'backup_cles'];
315
-	foreach ($cles_sensibles as $cle) {
316
-		if (array_key_exists($cle, $auteur)) {
317
-			unset($auteur[$cle]);
318
-		}
319
-	}
320
-
321
-	return $auteur;
314
+    $cles_sensibles = ['pass', 'htpass', 'low_sec', 'alea_actuel', 'alea_futur', 'ldap_password', 'backup_cles'];
315
+    foreach ($cles_sensibles as $cle) {
316
+        if (array_key_exists($cle, $auteur)) {
317
+            unset($auteur[$cle]);
318
+        }
319
+    }
320
+
321
+    return $auteur;
322 322
 }
323 323
 
324 324
 /**
@@ -327,23 +327,23 @@  discard block
 block discarded – undo
327 327
  * @return string
328 328
  */
329 329
 function auth_a_loger() {
330
-	$redirect = generer_url_public('login', 'url=' . rawurlencode((string) self('&', true)), true);
331
-
332
-	// un echec au "bonjour" (login initial) quand le statut est
333
-	// inconnu signale sans doute un probleme de cookies
334
-	if (isset($_GET['bonjour'])) {
335
-		$redirect = parametre_url(
336
-			$redirect,
337
-			'var_erreur',
338
-			(isset($GLOBALS['visiteur_session']['statut'])
339
-				? 'statut'
340
-				: 'cookie'
341
-			),
342
-			'&'
343
-		);
344
-	}
345
-
346
-	return $redirect;
330
+    $redirect = generer_url_public('login', 'url=' . rawurlencode((string) self('&', true)), true);
331
+
332
+    // un echec au "bonjour" (login initial) quand le statut est
333
+    // inconnu signale sans doute un probleme de cookies
334
+    if (isset($_GET['bonjour'])) {
335
+        $redirect = parametre_url(
336
+            $redirect,
337
+            'var_erreur',
338
+            (isset($GLOBALS['visiteur_session']['statut'])
339
+                ? 'statut'
340
+                : 'cookie'
341
+            ),
342
+            '&'
343
+        );
344
+    }
345
+
346
+    return $redirect;
347 347
 }
348 348
 
349 349
 /**
@@ -355,19 +355,19 @@  discard block
 block discarded – undo
355 355
  * @param null|string $date
356 356
  */
357 357
 function auth_trace($row, $date = null) {
358
-	// Indiquer la connexion. A la minute pres ca suffit.
359
-	if (!is_numeric($connect_quand = $row['quand'] ?? '')) {
360
-		$connect_quand = strtotime((string) $connect_quand);
361
-	}
358
+    // Indiquer la connexion. A la minute pres ca suffit.
359
+    if (!is_numeric($connect_quand = $row['quand'] ?? '')) {
360
+        $connect_quand = strtotime((string) $connect_quand);
361
+    }
362 362
 
363
-	$date ??= date('Y-m-d H:i:s');
363
+    $date ??= date('Y-m-d H:i:s');
364 364
 
365
-	if (abs(strtotime($date) - $connect_quand) >= 60) {
366
-		sql_updateq('spip_auteurs', ['en_ligne' => $date], 'id_auteur=' . (int) $row['id_auteur']);
367
-		$row['en_ligne'] = $date;
368
-	}
365
+    if (abs(strtotime($date) - $connect_quand) >= 60) {
366
+        sql_updateq('spip_auteurs', ['en_ligne' => $date], 'id_auteur=' . (int) $row['id_auteur']);
367
+        $row['en_ligne'] = $date;
368
+    }
369 369
 
370
-	pipeline('trig_auth_trace', ['args' => ['row' => $row, 'date' => $date]]);
370
+    pipeline('trig_auth_trace', ['args' => ['row' => $row, 'date' => $date]]);
371 371
 }
372 372
 
373 373
 
@@ -393,27 +393,27 @@  discard block
 block discarded – undo
393 393
  * @return mixed
394 394
  */
395 395
 function auth_administrer($fonction, $args, mixed $defaut = false) {
396
-	$auth_methode = array_shift($args);
397
-	$auth_methode = $auth_methode ?: 'spip'; // valeur par defaut au cas ou
398
-	if (
399
-		($auth = charger_fonction($auth_methode, 'auth', true))
400
-		&& function_exists($f = "auth_{$auth_methode}_$fonction")
401
-	) {
402
-		$res = $f(...$args);
403
-	} else {
404
-		$res = $defaut;
405
-	}
406
-	return pipeline(
407
-		'auth_administrer',
408
-		[
409
-			'args' => [
410
-				'fonction' => $fonction,
411
-				'methode' => $auth_methode,
412
-				'args' => $args
413
-			],
414
-			'data' => $res
415
-		]
416
-	);
396
+    $auth_methode = array_shift($args);
397
+    $auth_methode = $auth_methode ?: 'spip'; // valeur par defaut au cas ou
398
+    if (
399
+        ($auth = charger_fonction($auth_methode, 'auth', true))
400
+        && function_exists($f = "auth_{$auth_methode}_$fonction")
401
+    ) {
402
+        $res = $f(...$args);
403
+    } else {
404
+        $res = $defaut;
405
+    }
406
+    return pipeline(
407
+        'auth_administrer',
408
+        [
409
+            'args' => [
410
+                'fonction' => $fonction,
411
+                'methode' => $auth_methode,
412
+                'args' => $args
413
+            ],
414
+            'data' => $res
415
+        ]
416
+    );
417 417
 }
418 418
 
419 419
 /**
@@ -423,11 +423,11 @@  discard block
 block discarded – undo
423 423
  * @return array
424 424
  */
425 425
 function auth_formulaire_login($flux) {
426
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
427
-		$flux = auth_administrer('formulaire_login', [$methode, $flux], $flux);
428
-	}
426
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
427
+        $flux = auth_administrer('formulaire_login', [$methode, $flux], $flux);
428
+    }
429 429
 
430
-	return $flux;
430
+    return $flux;
431 431
 }
432 432
 
433 433
 
@@ -441,19 +441,19 @@  discard block
 block discarded – undo
441 441
  * @return string/bool
442 442
  */
443 443
 function auth_retrouver_login($login, $serveur = '') {
444
-	if (!spip_connect($serveur)) {
445
-		include_spip('inc/minipres');
446
-		echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
447
-		exit;
448
-	}
449
-
450
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
451
-		if ($auteur = auth_administrer('retrouver_login', [$methode, $login, $serveur])) {
452
-			return $auteur;
453
-		}
454
-	}
455
-
456
-	return false;
444
+    if (!spip_connect($serveur)) {
445
+        include_spip('inc/minipres');
446
+        echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
447
+        exit;
448
+    }
449
+
450
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
451
+        if ($auteur = auth_administrer('retrouver_login', [$methode, $login, $serveur])) {
452
+            return $auteur;
453
+        }
454
+    }
455
+
456
+    return false;
457 457
 }
458 458
 
459 459
 /**
@@ -468,35 +468,35 @@  discard block
 block discarded – undo
468 468
  * @return array
469 469
  */
470 470
 function auth_informer_login($login, $serveur = '') {
471
-	if (
472
-		!$login
473
-		|| !($login_base = auth_retrouver_login($login, $serveur))
474
-		|| !($row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur))
475
-	) {
476
-		// generer de fausses infos, mais credibles, pour eviter une attaque
477
-		// https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
478
-
479
-		$row = [
480
-			'login' => $login,
481
-			'cnx' => '0',
482
-			'logo' => '',
483
-		];
484
-
485
-		return $row;
486
-	}
487
-
488
-	$prefs = @unserialize($row['prefs']);
489
-	$row = auth_desensibiliser_session($row);
490
-	$infos = [
491
-		'id_auteur' => $row['id_auteur'],
492
-		'login' => $row['login'],
493
-		'cnx' => (isset($prefs['cnx']) && $prefs['cnx'] === 'perma') ? '1' : '0',
494
-		'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
495
-	];
496
-
497
-	verifier_visiteur();
498
-
499
-	return auth_administrer('informer_login', [$row['source'], $infos, $row, $serveur], $infos);
471
+    if (
472
+        !$login
473
+        || !($login_base = auth_retrouver_login($login, $serveur))
474
+        || !($row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur))
475
+    ) {
476
+        // generer de fausses infos, mais credibles, pour eviter une attaque
477
+        // https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
478
+
479
+        $row = [
480
+            'login' => $login,
481
+            'cnx' => '0',
482
+            'logo' => '',
483
+        ];
484
+
485
+        return $row;
486
+    }
487
+
488
+    $prefs = @unserialize($row['prefs']);
489
+    $row = auth_desensibiliser_session($row);
490
+    $infos = [
491
+        'id_auteur' => $row['id_auteur'],
492
+        'login' => $row['login'],
493
+        'cnx' => (isset($prefs['cnx']) && $prefs['cnx'] === 'perma') ? '1' : '0',
494
+        'logo' => recuperer_fond('formulaires/inc-logo_auteur', $row),
495
+    ];
496
+
497
+    verifier_visiteur();
498
+
499
+    return auth_administrer('informer_login', [$row['source'], $infos, $row, $serveur], $infos);
500 500
 }
501 501
 
502 502
 
@@ -510,21 +510,21 @@  discard block
 block discarded – undo
510 510
  * @return mixed
511 511
  */
512 512
 function auth_identifier_login($login, #[\SensitiveParameter] $password, $serveur = '', bool $phpauth = false) {
513
-	$erreur = '';
514
-	foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
515
-		if ($auth = charger_fonction($methode, 'auth', true)) {
516
-			$auteur = $auth($login, $password, $serveur, $phpauth);
517
-			if (is_array($auteur) && count($auteur)) {
518
-				spip_log("connexion de $login par methode $methode");
519
-				$auteur['auth'] = $methode;
520
-				return $auteur;
521
-			} elseif (is_string($auteur)) {
522
-				$erreur .= "$auteur ";
523
-			}
524
-		}
525
-	}
526
-
527
-	return $erreur;
513
+    $erreur = '';
514
+    foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
515
+        if ($auth = charger_fonction($methode, 'auth', true)) {
516
+            $auteur = $auth($login, $password, $serveur, $phpauth);
517
+            if (is_array($auteur) && count($auteur)) {
518
+                spip_log("connexion de $login par methode $methode");
519
+                $auteur['auth'] = $methode;
520
+                return $auteur;
521
+            } elseif (is_string($auteur)) {
522
+                $erreur .= "$auteur ";
523
+            }
524
+        }
525
+    }
526
+
527
+    return $erreur;
528 528
 }
529 529
 
530 530
 /**
@@ -538,8 +538,8 @@  discard block
 block discarded – undo
538 538
  * @return string
539 539
  */
540 540
 function auth_url_retour_login($auth_methode, $login, $redirect = '', $serveur = '') {
541
-	$securiser_action = charger_fonction('securiser_action', 'inc');
542
-	return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
541
+    $securiser_action = charger_fonction('securiser_action', 'inc');
542
+    return $securiser_action('auth', "$auth_methode/$login", $redirect, true);
543 543
 }
544 544
 
545 545
 /**
@@ -553,8 +553,8 @@  discard block
 block discarded – undo
553 553
  * @return mixed
554 554
  */
555 555
 function auth_terminer_identifier_login($auth_methode, $login, $serveur = '') {
556
-	$args = func_get_args();
557
-	return auth_administrer('terminer_identifier_login', $args);
556
+    $args = func_get_args();
557
+    return auth_administrer('terminer_identifier_login', $args);
558 558
 }
559 559
 
560 560
 /**
@@ -564,29 +564,29 @@  discard block
 block discarded – undo
564 564
  * @return bool
565 565
  */
566 566
 function auth_loger($auteur) {
567
-	if (!is_array($auteur) || $auteur === []) {
568
-		return false;
569
-	}
570
-
571
-	// initialiser et poser le cookie de session
572
-	unset($_COOKIE['spip_session']);
573
-	if (auth_init_droits($auteur) === false) {
574
-		return false;
575
-	}
576
-
577
-	// initialiser les prefs
578
-	$p = $GLOBALS['visiteur_session']['prefs'];
579
-	$p['cnx'] = (isset($auteur['cookie']) && $auteur['cookie'] == 'oui') ? 'perma' : '';
580
-
581
-	sql_updateq(
582
-		'spip_auteurs',
583
-		['prefs' => serialize($p)],
584
-		'id_auteur=' . (int) $auteur['id_auteur']
585
-	);
586
-
587
-	//  bloquer ici le visiteur qui tente d'abuser de ses droits
588
-	verifier_visiteur();
589
-	return true;
567
+    if (!is_array($auteur) || $auteur === []) {
568
+        return false;
569
+    }
570
+
571
+    // initialiser et poser le cookie de session
572
+    unset($_COOKIE['spip_session']);
573
+    if (auth_init_droits($auteur) === false) {
574
+        return false;
575
+    }
576
+
577
+    // initialiser les prefs
578
+    $p = $GLOBALS['visiteur_session']['prefs'];
579
+    $p['cnx'] = (isset($auteur['cookie']) && $auteur['cookie'] == 'oui') ? 'perma' : '';
580
+
581
+    sql_updateq(
582
+        'spip_auteurs',
583
+        ['prefs' => serialize($p)],
584
+        'id_auteur=' . (int) $auteur['id_auteur']
585
+    );
586
+
587
+    //  bloquer ici le visiteur qui tente d'abuser de ses droits
588
+    verifier_visiteur();
589
+    return true;
590 590
 }
591 591
 
592 592
 /**
@@ -596,8 +596,8 @@  discard block
 block discarded – undo
596 596
  * return void
597 597
  **/
598 598
 function auth_deloger() {
599
-	$logout = charger_fonction('logout', 'action');
600
-	$logout();
599
+    $logout = charger_fonction('logout', 'action');
600
+    $logout();
601 601
 }
602 602
 
603 603
 /**
@@ -611,8 +611,8 @@  discard block
 block discarded – undo
611 611
  * @return bool
612 612
  */
613 613
 function auth_autoriser_modifier_login($auth_methode, $serveur = '') {
614
-	$args = func_get_args();
615
-	return auth_administrer('autoriser_modifier_login', $args);
614
+    $args = func_get_args();
615
+    return auth_administrer('autoriser_modifier_login', $args);
616 616
 }
617 617
 
618 618
 /**
@@ -627,8 +627,8 @@  discard block
 block discarded – undo
627 627
  *  message d'erreur ou chaine vide si pas d'erreur
628 628
  */
629 629
 function auth_verifier_login($auth_methode, $new_login, $id_auteur = 0, $serveur = '') {
630
-	$args = func_get_args();
631
-	return auth_administrer('verifier_login', $args, '');
630
+    $args = func_get_args();
631
+    return auth_administrer('verifier_login', $args, '');
632 632
 }
633 633
 
634 634
 /**
@@ -641,8 +641,8 @@  discard block
 block discarded – undo
641 641
  * @return bool
642 642
  */
643 643
 function auth_modifier_login($auth_methode, $new_login, $id_auteur, $serveur = '') {
644
-	$args = func_get_args();
645
-	return auth_administrer('modifier_login', $args);
644
+    $args = func_get_args();
645
+    return auth_administrer('modifier_login', $args);
646 646
 }
647 647
 
648 648
 /**
@@ -657,8 +657,8 @@  discard block
 block discarded – undo
657 657
  *  succès ou échec
658 658
  */
659 659
 function auth_autoriser_modifier_pass($auth_methode, $serveur = '') {
660
-	$args = func_get_args();
661
-	return auth_administrer('autoriser_modifier_pass', $args);
660
+    $args = func_get_args();
661
+    return auth_administrer('autoriser_modifier_pass', $args);
662 662
 }
663 663
 
664 664
 /**
@@ -674,8 +674,8 @@  discard block
 block discarded – undo
674 674
  *  message d'erreur ou chaine vide si pas d'erreur
675 675
  */
676 676
 function auth_verifier_pass($auth_methode, $login, #[\SensitiveParameter] $new_pass, $id_auteur = 0, $serveur = '') {
677
-	$args = func_get_args();
678
-	return auth_administrer('verifier_pass', $args, '');
677
+    $args = func_get_args();
678
+    return auth_administrer('verifier_pass', $args, '');
679 679
 }
680 680
 
681 681
 /**
@@ -691,8 +691,8 @@  discard block
 block discarded – undo
691 691
  *  succes ou echec
692 692
  */
693 693
 function auth_modifier_pass($auth_methode, $login, #[\SensitiveParameter] $new_pass, $id_auteur, $serveur = '') {
694
-	$args = func_get_args();
695
-	return auth_administrer('modifier_pass', $args);
694
+    $args = func_get_args();
695
+    return auth_administrer('modifier_pass', $args);
696 696
 }
697 697
 
698 698
 /**
@@ -708,24 +708,24 @@  discard block
 block discarded – undo
708 708
  * @return void
709 709
  */
710 710
 function auth_synchroniser_distant(
711
-	$auth_methode = true,
712
-	$id_auteur = 0,
713
-	$champs = [],
714
-	$options = [],
715
-	$serveur = ''
711
+    $auth_methode = true,
712
+    $id_auteur = 0,
713
+    $champs = [],
714
+    $options = [],
715
+    $serveur = ''
716 716
 ) {
717
-	$args = func_get_args();
718
-	if ($auth_methode === true || isset($options['all']) && $options['all'] == true) {
719
-		$options['all'] = true; // ajouter une option all=>true pour chaque auth
720
-		$args = [true, $id_auteur, $champs, $options, $serveur];
721
-		foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
722
-			array_shift($args);
723
-			array_unshift($args, $methode);
724
-			auth_administrer('synchroniser_distant', $args);
725
-		}
726
-	} else {
727
-		auth_administrer('synchroniser_distant', $args);
728
-	}
717
+    $args = func_get_args();
718
+    if ($auth_methode === true || isset($options['all']) && $options['all'] == true) {
719
+        $options['all'] = true; // ajouter une option all=>true pour chaque auth
720
+        $args = [true, $id_auteur, $champs, $options, $serveur];
721
+        foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
722
+            array_shift($args);
723
+            array_unshift($args, $methode);
724
+            auth_administrer('synchroniser_distant', $args);
725
+        }
726
+    } else {
727
+        auth_administrer('synchroniser_distant', $args);
728
+    }
729 729
 }
730 730
 
731 731
 
@@ -738,46 +738,46 @@  discard block
 block discarded – undo
738 738
  * @return array|bool
739 739
  */
740 740
 function lire_php_auth($login, #[\SensitiveParameter] $pw, $serveur = '') {
741
-	if (
742
-		!$login
743
-		|| !$login_base = auth_retrouver_login($login, $serveur)
744
-	) {
745
-		return false;
746
-	}
747
-
748
-	$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur);
749
-
750
-	if (!$row) {
751
-		if (
752
-			include_spip('inc/auth')
753
-			&& auth_ldap_connect($serveur)
754
-			&& ($auth_ldap = charger_fonction('ldap', 'auth', true))
755
-		) {
756
-			return $auth_ldap($login_base, $pw, $serveur, true);
757
-		}
758
-
759
-		return false;
760
-	}
761
-
762
-	// si pas de source definie
763
-	// ou auth/xxx introuvable, utiliser 'spip' ou autre et avec le login passé par PHP_AUTH_USER
764
-	if (
765
-		!($auth_methode = $row['source'])
766
-		|| !($auth = charger_fonction($auth_methode, 'auth', true))
767
-	) {
768
-		$auth = charger_fonction('spip', 'auth', true);
769
-	}
770
-
771
-	$auteur = '';
772
-	if ($auth) {
773
-		$auteur = $auth($login, $pw, $serveur, true);
774
-	}
775
-	// verifier que ce n'est pas un message d'erreur
776
-	if (is_array($auteur) && count($auteur)) {
777
-		return $auteur;
778
-	}
779
-
780
-	return false;
741
+    if (
742
+        !$login
743
+        || !$login_base = auth_retrouver_login($login, $serveur)
744
+    ) {
745
+        return false;
746
+    }
747
+
748
+    $row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur);
749
+
750
+    if (!$row) {
751
+        if (
752
+            include_spip('inc/auth')
753
+            && auth_ldap_connect($serveur)
754
+            && ($auth_ldap = charger_fonction('ldap', 'auth', true))
755
+        ) {
756
+            return $auth_ldap($login_base, $pw, $serveur, true);
757
+        }
758
+
759
+        return false;
760
+    }
761
+
762
+    // si pas de source definie
763
+    // ou auth/xxx introuvable, utiliser 'spip' ou autre et avec le login passé par PHP_AUTH_USER
764
+    if (
765
+        !($auth_methode = $row['source'])
766
+        || !($auth = charger_fonction($auth_methode, 'auth', true))
767
+    ) {
768
+        $auth = charger_fonction('spip', 'auth', true);
769
+    }
770
+
771
+    $auteur = '';
772
+    if ($auth) {
773
+        $auteur = $auth($login, $pw, $serveur, true);
774
+    }
775
+    // verifier que ce n'est pas un message d'erreur
776
+    if (is_array($auteur) && count($auteur)) {
777
+        return $auteur;
778
+    }
779
+
780
+    return false;
781 781
 }
782 782
 
783 783
 /**
@@ -793,21 +793,21 @@  discard block
 block discarded – undo
793 793
  * @param string $lien
794 794
  */
795 795
 function ask_php_auth($pb, $raison, $retour = '', $url = '', $re = '', $lien = '') {
796
-	@Header('WWW-Authenticate: Basic realm="espace prive"');
797
-	@Header('HTTP/1.0 401 Unauthorized');
798
-	$corps = '';
799
-	$public = generer_url_public();
800
-	$ecrire = generer_url_ecrire();
801
-	$retour = $retour ?: _T('icone_retour');
802
-	$corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
803
-	if ($url) {
804
-		$corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
805
-	}
806
-
807
-	if ($lien) {
808
-		$corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
809
-	}
810
-	include_spip('inc/minipres');
811
-	echo minipres($pb, $corps);
812
-	exit;
796
+    @Header('WWW-Authenticate: Basic realm="espace prive"');
797
+    @Header('HTTP/1.0 401 Unauthorized');
798
+    $corps = '';
799
+    $public = generer_url_public();
800
+    $ecrire = generer_url_ecrire();
801
+    $retour = $retour ?: _T('icone_retour');
802
+    $corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
803
+    if ($url) {
804
+        $corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
805
+    }
806
+
807
+    if ($lien) {
808
+        $corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
809
+    }
810
+    include_spip('inc/minipres');
811
+    echo minipres($pb, $corps);
812
+    exit;
813 813
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -14 removed lines patch added patch discarded remove patch
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
 	}
59 59
 
60 60
 	$n = (int) sql_errno();
61
-	spip_log("Erreur base de donnees $n " . sql_error());
61
+	spip_log("Erreur base de donnees $n ".sql_error());
62 62
 
63 63
 	return $n ?: 1;
64 64
 }
@@ -101,19 +101,19 @@  discard block
 block discarded – undo
101 101
 		// erreur SQL a afficher
102 102
 		$raison = minipres(
103 103
 			_T('info_travaux_titre'),
104
-			_T('titre_probleme_technique') . '<p><tt>' . sql_errno() . ' ' . sql_error() . '</tt></p>'
104
+			_T('titre_probleme_technique').'<p><tt>'.sql_errno().' '.sql_error().'</tt></p>'
105 105
 		);
106 106
 	} elseif (@$raison['statut']) {
107 107
 		// un simple visiteur n'a pas acces a l'espace prive
108
-		spip_log('connexion refusee a ' . @$raison['id_auteur']);
108
+		spip_log('connexion refusee a '.@$raison['id_auteur']);
109 109
 		$est_connecte = (!empty($GLOBALS['visiteur_session']['login']) && !empty($GLOBALS['visiteur_session']['statut'])); // idem test balise #URL_LOGOUT
110 110
 		$raison = minipres(
111 111
 			_T('avis_erreur_connexion'),
112 112
 			_T('avis_erreur_visiteur')
113 113
 				// Lien vers le site public
114
-				. '<br /><a href="' . url_de_base() . '">' . _T('login_retour_public') . '</a>'
114
+				. '<br /><a href="'.url_de_base().'">'._T('login_retour_public').'</a>'
115 115
 				// Si la personne est connectée, lien de déconnexion ramenant vers la page de login
116
-				. ($est_connecte ? ' | <a href="' . generer_url_public('', 'action=logout&amp;logout=prive') . '">' . _T('icone_deconnecter') . '</a>' : '')
116
+				. ($est_connecte ? ' | <a href="'.generer_url_public('', 'action=logout&amp;logout=prive').'">'._T('icone_deconnecter').'</a>' : '')
117 117
 		);
118 118
 	} else {
119 119
 		// auteur en fin de droits ...
@@ -201,8 +201,7 @@  discard block
 block discarded – undo
201 201
 	$where = (is_numeric($id_auteur)
202 202
 		/*AND $id_auteur>0*/ // reprise lors des restaurations
203 203
 	) ?
204
-		"id_auteur=$id_auteur" :
205
-		(strlen((string) $GLOBALS['connect_login']) ? 'login=' . sql_quote($GLOBALS['connect_login'], '', 'text') : '');
204
+		"id_auteur=$id_auteur" : (strlen((string) $GLOBALS['connect_login']) ? 'login='.sql_quote($GLOBALS['connect_login'], '', 'text') : '');
206 205
 
207 206
 	if (!$where) {
208 207
 		return '';
@@ -327,7 +326,7 @@  discard block
 block discarded – undo
327 326
  * @return string
328 327
  */
329 328
 function auth_a_loger() {
330
-	$redirect = generer_url_public('login', 'url=' . rawurlencode((string) self('&', true)), true);
329
+	$redirect = generer_url_public('login', 'url='.rawurlencode((string) self('&', true)), true);
331 330
 
332 331
 	// un echec au "bonjour" (login initial) quand le statut est
333 332
 	// inconnu signale sans doute un probleme de cookies
@@ -363,7 +362,7 @@  discard block
 block discarded – undo
363 362
 	$date ??= date('Y-m-d H:i:s');
364 363
 
365 364
 	if (abs(strtotime($date) - $connect_quand) >= 60) {
366
-		sql_updateq('spip_auteurs', ['en_ligne' => $date], 'id_auteur=' . (int) $row['id_auteur']);
365
+		sql_updateq('spip_auteurs', ['en_ligne' => $date], 'id_auteur='.(int) $row['id_auteur']);
367 366
 		$row['en_ligne'] = $date;
368 367
 	}
369 368
 
@@ -471,7 +470,7 @@  discard block
 block discarded – undo
471 470
 	if (
472 471
 		!$login
473 472
 		|| !($login_base = auth_retrouver_login($login, $serveur))
474
-		|| !($row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur))
473
+		|| !($row = sql_fetsel('*', 'spip_auteurs', 'login='.sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur))
475 474
 	) {
476 475
 		// generer de fausses infos, mais credibles, pour eviter une attaque
477 476
 		// https://core.spip.net/issues/1758 + https://core.spip.net/issues/3691
@@ -581,7 +580,7 @@  discard block
 block discarded – undo
581 580
 	sql_updateq(
582 581
 		'spip_auteurs',
583 582
 		['prefs' => serialize($p)],
584
-		'id_auteur=' . (int) $auteur['id_auteur']
583
+		'id_auteur='.(int) $auteur['id_auteur']
585 584
 	);
586 585
 
587 586
 	//  bloquer ici le visiteur qui tente d'abuser de ses droits
@@ -745,7 +744,7 @@  discard block
 block discarded – undo
745 744
 		return false;
746 745
 	}
747 746
 
748
-	$row = sql_fetsel('*', 'spip_auteurs', 'login=' . sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur);
747
+	$row = sql_fetsel('*', 'spip_auteurs', 'login='.sql_quote($login_base, $serveur, 'text'), '', '', '', '', $serveur);
749 748
 
750 749
 	if (!$row) {
751 750
 		if (
@@ -801,11 +800,11 @@  discard block
 block discarded – undo
801 800
 	$retour = $retour ?: _T('icone_retour');
802 801
 	$corps .= "<p>$raison</p>[<a href='$public'>$retour</a>] ";
803 802
 	if ($url) {
804
-		$corps .= "[<a href='" . generer_url_action('cookie', "essai_auth_http=oui&$url") . "'>$re</a>]";
803
+		$corps .= "[<a href='".generer_url_action('cookie', "essai_auth_http=oui&$url")."'>$re</a>]";
805 804
 	}
806 805
 
807 806
 	if ($lien) {
808
-		$corps .= " [<a href='$ecrire'>" . _T('login_espace_prive') . '</a>]';
807
+		$corps .= " [<a href='$ecrire'>"._T('login_espace_prive').'</a>]';
809 808
 	}
810 809
 	include_spip('inc/minipres');
811 810
 	echo minipres($pb, $corps);
Please login to merge, or discard this patch.
ecrire/inc/minipres.php 1 patch
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  * @package SPIP\Core\Minipres
18 18
  **/
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -37,19 +37,19 @@  discard block
 block discarded – undo
37 37
  */
38 38
 function install_debut_html($titre = 'AUTO', $onLoad = '', $all_inline = false) {
39 39
 
40
-	if ($onLoad) {
41
-		include_spip('inc/filtres');
42
-		$onLoad = extraire_attribut("<body $onLoad>", 'onload');
43
-	}
40
+    if ($onLoad) {
41
+        include_spip('inc/filtres');
42
+        $onLoad = extraire_attribut("<body $onLoad>", 'onload');
43
+    }
44 44
 
45
-	$options = [
46
-		'all_inline' => $all_inline,
47
-		'onload' => $onLoad,
48
-		'titre' => $titre,
49
-	];
45
+    $options = [
46
+        'all_inline' => $all_inline,
47
+        'onload' => $onLoad,
48
+        'titre' => $titre,
49
+    ];
50 50
 
51
-	$minipage = new Admin();
52
-	return $minipage->installDebutPage($options);
51
+    $minipage = new Admin();
52
+    return $minipage->installDebutPage($options);
53 53
 }
54 54
 
55 55
 /**
@@ -61,8 +61,8 @@  discard block
 block discarded – undo
61 61
  * @return string Code HTML
62 62
  */
63 63
 function install_fin_html() {
64
-	$minipage = new Admin();
65
-	return $minipage->installFinPage();
64
+    $minipage = new Admin();
65
+    return $minipage->installFinPage();
66 66
 }
67 67
 
68 68
 
@@ -101,23 +101,23 @@  discard block
 block discarded – undo
101 101
  */
102 102
 function minipres($titre = '', $corps = '', $options = []) {
103 103
 
104
-	// compat signature old
105
-	// minipres($titre='', $corps="", $onload='', $all_inline = false)
106
-	$args = func_get_args();
107
-	if (isset($args[2]) && is_string($args[2])) {
108
-		$options = ['onload' => $args[2]];
109
-	}
110
-	if (isset($args[3])) {
111
-		$options['all_inline'] = $args[3];
112
-	}
104
+    // compat signature old
105
+    // minipres($titre='', $corps="", $onload='', $all_inline = false)
106
+    $args = func_get_args();
107
+    if (isset($args[2]) && is_string($args[2])) {
108
+        $options = ['onload' => $args[2]];
109
+    }
110
+    if (isset($args[3])) {
111
+        $options['all_inline'] = $args[3];
112
+    }
113 113
 
114
-	$options = array_merge([
115
-		'onload' => '',
116
-		'all_inline' => false,
117
-	], $options);
114
+    $options = array_merge([
115
+        'onload' => '',
116
+        'all_inline' => false,
117
+    ], $options);
118 118
 
119
-	$options['titre'] = $titre;
119
+    $options['titre'] = $titre;
120 120
 
121
-	$minipage = new Admin();
122
-	return $minipage->page($corps, $options);
121
+    $minipage = new Admin();
122
+    return $minipage->page($corps, $options);
123 123
 }
Please login to merge, or discard this patch.