Completed
Push — master ( f2008e...da65df )
by cam
02:08
created
ecrire/lang/public_ro.php 1 patch
Indentation   +108 added lines, -108 removed lines patch added patch discarded remove patch
@@ -5,112 +5,112 @@
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'accueil_site' => 'Prima pagină', # MODIF
10
-	'article' => 'Articol',
11
-	'articles' => 'Articole',
12
-	'articles_auteur' => 'Articole de acelaşi autor',
13
-	'articles_populaires' => 'Cele mai populare articole',
14
-	'articles_rubrique' => 'Articolele acestei rubrici',
15
-	'aucun_article' => 'Nu există nici un articol la această adresă',
16
-	'aucun_auteur' => 'Nu există nici un autor la această adresă',
17
-	'aucun_site' => 'Nu există nici un site la această adresă',
18
-	'aucune_breve' => 'Nu există nici o ştire la această adresă',
19
-	'aucune_rubrique' => 'Nu există nici o rubrică la această adresă',
20
-	'auteur' => 'Autor',
21
-	'autres' => 'Altele',
22
-	'autres_breves' => 'Alte ştiri',
23
-	'autres_groupes_mots_clefs' => 'Alte grupuri de cuvinte-cheie',
24
-	'autres_sites' => 'Alte site-uri',
25
-
26
-	// B
27
-	'bonjour' => 'Bună ziua',
28
-
29
-	// C
30
-	'commenter_site' => 'Comentaţi acest site',
31
-	'copie_document_impossible' => 'Imposibil de copiat documentul',
32
-
33
-	// D
34
-	'date' => 'Data',
35
-	'dernier_ajout' => 'Ultima adăugare',
36
-	'dernieres_breves' => 'Ultimele ştiri',
37
-	'derniers_articles' => 'Ultimele articole',
38
-	'derniers_commentaires' => 'Ultimele comentarii',
39
-	'derniers_messages_forum' => 'Ultimele mesaje publicate în forum-uri',
40
-
41
-	// E
42
-	'edition_mode_texte' => 'Editare în mod text a',
43
-	'en_reponse' => 'Răspuns la :',
44
-	'en_resume' => 'Pe scurt',
45
-	'envoyer_message' => 'Trimiteţi un mesaj',
46
-	'espace_prive' => 'Secţiunea protejată',
47
-
48
-	// F
49
-	'formats_acceptes' => 'Formate acceptate : @formats@.',
50
-
51
-	// H
52
-	'hierarchie_site' => 'Ierarhia site-ului',
53
-
54
-	// J
55
-	'jours' => 'zile',
56
-
57
-	// L
58
-	'lien_connecter' => 'Conectare',
59
-
60
-	// M
61
-	'meme_auteur' => 'De acelaşi autor',
62
-	'meme_rubrique' => 'În aceaşi rubrică',
63
-	'memes_auteurs' => 'De aceaşi autori',
64
-	'message' => 'Mesaj',
65
-	'messages_forum' => 'Mesajele forum-ului', # MODIF
66
-	'messages_recents' => 'Cele mai recente mesaje de forum',
67
-	'mots_clef' => 'Cuvânt-cheie',
68
-	'mots_clefs' => 'Cuvinte-cheie',
69
-	'mots_clefs_meme_groupe' => 'Cuvinte-cheie în acelaşi grup',
70
-
71
-	// N
72
-	'navigation' => 'Navigare',
73
-	'nom' => 'Nume',
74
-	'nouveautes' => 'Noutăţi',
75
-	'nouveautes_web' => 'Noutăţi pe Web',
76
-	'nouveaux_articles' => 'Articole noi',
77
-	'nouvelles_breves' => 'Ştiri noi',
78
-
79
-	// P
80
-	'page_precedente' => 'pagina anterioară',
81
-	'page_suivante' => 'pagina următoare',
82
-	'par_auteur' => 'de ',
83
-	'participer_site' => 'Puteţi deveni o parte activă a acestui site şi puteţi să vă scrieţi propriile articole înregistrându-vă cu ajutorul formularului de mai jos. Veţi primi în scurt timp un email conţinând un cod de acces la secţiunea protejată a acestui site.',
84
-	'plan_site' => 'Harta site-ului',
85
-	'popularite' => 'Popularitate',
86
-	'poster_message' => 'Trimiteţi un mesaj',
87
-	'proposer_site' => 'Puteţi propune un site de adăugat în această rubrică :',
88
-
89
-	// R
90
-	'repondre_article' => 'Răspundeţi la acest articol',
91
-	'repondre_breve' => 'Răspundeţi la acestă ştire',
92
-	'resultats_recherche' => 'Rezultatele căutarii',
93
-	'retour_debut_forums' => 'Înapoi la începutul forum-urilor',
94
-	'rubrique' => 'Rubrică',
95
-	'rubriques' => 'Rubrici',
96
-
97
-	// S
98
-	'signatures_petition' => 'Semnături',
99
-	'site_realise_avec_spip' => 'Site realizat cu SPIP',
100
-	'sites_web' => 'Site-uri Web',
101
-	'sous_rubriques' => 'Sub-rubrici',
102
-	'spam' => 'Spam',
103
-	'suite' => 'continuă',
104
-	'sur_web' => 'Pe Web',
105
-	'syndiquer_rubrique' => 'Sindicalizaţi această rubrică',
106
-	'syndiquer_site' => 'Sindicalizaţi întregul site',
107
-
108
-	// T
109
-	'texte_lettre_information' => 'Iată scrisoarea de informaţii a site-ului',
110
-	'texte_lettre_information_2' => 'Această scrisoare conţine lista noutatilor publicate de la',
111
-
112
-	// V
113
-	'ver_imprimer' => 'Versiunea imprimabilă',
114
-	'voir_en_ligne' => 'Vedeţi în direct',
115
-	'voir_squelette' => 'vedeţi scheletul acestei pagini',
8
+    // A
9
+    'accueil_site' => 'Prima pagină', # MODIF
10
+    'article' => 'Articol',
11
+    'articles' => 'Articole',
12
+    'articles_auteur' => 'Articole de acelaşi autor',
13
+    'articles_populaires' => 'Cele mai populare articole',
14
+    'articles_rubrique' => 'Articolele acestei rubrici',
15
+    'aucun_article' => 'Nu există nici un articol la această adresă',
16
+    'aucun_auteur' => 'Nu există nici un autor la această adresă',
17
+    'aucun_site' => 'Nu există nici un site la această adresă',
18
+    'aucune_breve' => 'Nu există nici o ştire la această adresă',
19
+    'aucune_rubrique' => 'Nu există nici o rubrică la această adresă',
20
+    'auteur' => 'Autor',
21
+    'autres' => 'Altele',
22
+    'autres_breves' => 'Alte ştiri',
23
+    'autres_groupes_mots_clefs' => 'Alte grupuri de cuvinte-cheie',
24
+    'autres_sites' => 'Alte site-uri',
25
+
26
+    // B
27
+    'bonjour' => 'Bună ziua',
28
+
29
+    // C
30
+    'commenter_site' => 'Comentaţi acest site',
31
+    'copie_document_impossible' => 'Imposibil de copiat documentul',
32
+
33
+    // D
34
+    'date' => 'Data',
35
+    'dernier_ajout' => 'Ultima adăugare',
36
+    'dernieres_breves' => 'Ultimele ştiri',
37
+    'derniers_articles' => 'Ultimele articole',
38
+    'derniers_commentaires' => 'Ultimele comentarii',
39
+    'derniers_messages_forum' => 'Ultimele mesaje publicate în forum-uri',
40
+
41
+    // E
42
+    'edition_mode_texte' => 'Editare în mod text a',
43
+    'en_reponse' => 'Răspuns la :',
44
+    'en_resume' => 'Pe scurt',
45
+    'envoyer_message' => 'Trimiteţi un mesaj',
46
+    'espace_prive' => 'Secţiunea protejată',
47
+
48
+    // F
49
+    'formats_acceptes' => 'Formate acceptate : @formats@.',
50
+
51
+    // H
52
+    'hierarchie_site' => 'Ierarhia site-ului',
53
+
54
+    // J
55
+    'jours' => 'zile',
56
+
57
+    // L
58
+    'lien_connecter' => 'Conectare',
59
+
60
+    // M
61
+    'meme_auteur' => 'De acelaşi autor',
62
+    'meme_rubrique' => 'În aceaşi rubrică',
63
+    'memes_auteurs' => 'De aceaşi autori',
64
+    'message' => 'Mesaj',
65
+    'messages_forum' => 'Mesajele forum-ului', # MODIF
66
+    'messages_recents' => 'Cele mai recente mesaje de forum',
67
+    'mots_clef' => 'Cuvânt-cheie',
68
+    'mots_clefs' => 'Cuvinte-cheie',
69
+    'mots_clefs_meme_groupe' => 'Cuvinte-cheie în acelaşi grup',
70
+
71
+    // N
72
+    'navigation' => 'Navigare',
73
+    'nom' => 'Nume',
74
+    'nouveautes' => 'Noutăţi',
75
+    'nouveautes_web' => 'Noutăţi pe Web',
76
+    'nouveaux_articles' => 'Articole noi',
77
+    'nouvelles_breves' => 'Ştiri noi',
78
+
79
+    // P
80
+    'page_precedente' => 'pagina anterioară',
81
+    'page_suivante' => 'pagina următoare',
82
+    'par_auteur' => 'de ',
83
+    'participer_site' => 'Puteţi deveni o parte activă a acestui site şi puteţi să vă scrieţi propriile articole înregistrându-vă cu ajutorul formularului de mai jos. Veţi primi în scurt timp un email conţinând un cod de acces la secţiunea protejată a acestui site.',
84
+    'plan_site' => 'Harta site-ului',
85
+    'popularite' => 'Popularitate',
86
+    'poster_message' => 'Trimiteţi un mesaj',
87
+    'proposer_site' => 'Puteţi propune un site de adăugat în această rubrică :',
88
+
89
+    // R
90
+    'repondre_article' => 'Răspundeţi la acest articol',
91
+    'repondre_breve' => 'Răspundeţi la acestă ştire',
92
+    'resultats_recherche' => 'Rezultatele căutarii',
93
+    'retour_debut_forums' => 'Înapoi la începutul forum-urilor',
94
+    'rubrique' => 'Rubrică',
95
+    'rubriques' => 'Rubrici',
96
+
97
+    // S
98
+    'signatures_petition' => 'Semnături',
99
+    'site_realise_avec_spip' => 'Site realizat cu SPIP',
100
+    'sites_web' => 'Site-uri Web',
101
+    'sous_rubriques' => 'Sub-rubrici',
102
+    'spam' => 'Spam',
103
+    'suite' => 'continuă',
104
+    'sur_web' => 'Pe Web',
105
+    'syndiquer_rubrique' => 'Sindicalizaţi această rubrică',
106
+    'syndiquer_site' => 'Sindicalizaţi întregul site',
107
+
108
+    // T
109
+    'texte_lettre_information' => 'Iată scrisoarea de informaţii a site-ului',
110
+    'texte_lettre_information_2' => 'Această scrisoare conţine lista noutatilor publicate de la',
111
+
112
+    // V
113
+    'ver_imprimer' => 'Versiunea imprimabilă',
114
+    'voir_en_ligne' => 'Vedeţi în direct',
115
+    'voir_squelette' => 'vedeţi scheletul acestei pagini',
116 116
 ];
Please login to merge, or discard this patch.
ecrire/lang/ecrire_id.php 1 patch
Indentation   +549 added lines, -549 removed lines patch added patch discarded remove patch
@@ -5,304 +5,304 @@  discard block
 block discarded – undo
5 5
 
6 6
 return [
7 7
 
8
-	// A
9
-	'activer_plugin' => 'Aktifkan plugin',
10
-	'aide_non_disponible' => 'Bagian dari bantuan online ini belum tersedia dalam bahasa pengantar yang digunakan sekarang.',
11
-	'auteur' => 'Penulis:',
12
-	'avis_acces_interdit' => 'Dilarang mengakses.',
13
-	'avis_article_modifie' => 'Perhatian, @nom_auteur_modif@ telah mengedit artikel ini @date_diff@ menit yang lalu',
14
-	'avis_aucun_resultat' => 'Tidak ditemukan hasil apa-apa.',
15
-	'avis_chemin_invalide_1' => 'Path yang telah anda pilih',
16
-	'avis_chemin_invalide_2' => 'sepertinya tidak benar. Silakan kembali ke halaman sebelumnya dan verifikasi informasi yang diberikan.',
17
-	'avis_connexion_echec_1' => 'Koneksi ke server SQL gagal.', # MODIF
18
-	'avis_connexion_echec_2' => 'Kembali ke halaman sebelumnya, dan verifikasi informasi yang anda telah berikan.',
19
-	'avis_connexion_echec_3' => '<b>Catatan:</b> Pada sejumlah server, anda harus <b>memohon</b> aktivasi akses ke database SQL sebelum anda dapat menggunakannya. Jika anda tidak berhasil mengakses database anda, pastikan anda telah mengajukan permohonan ini.', # MODIF
20
-	'avis_connexion_ldap_echec_1' => 'Koneksi ke server LDAP gagal.',
21
-	'avis_connexion_ldap_echec_2' => 'Kembali ke halaman sebelumnya, dan verifikasi informasi yang anda telah berikan.',
22
-	'avis_connexion_ldap_echec_3' => 'Alternatif lainnya, jangan gunakan dukungan LDAP untuk mengimpor pengguna.',
23
-	'avis_deplacement_rubrique' => 'Peringatan! Bagian ini mengandung @contient_breves@ berita@scb@: jika anda memindahkannya, silakan cek kotak ini untuk konfirmasi.',
24
-	'avis_erreur_connexion_mysql' => 'Kesalahan koneksi SQL',
25
-	'avis_espace_interdit' => '<b>Area terlarang</b><p>SPIP telah diinstal.', # MODIF
26
-	'avis_lecture_noms_bases_1' => 'Sistem instalasi tidak dapat membaca nama-nama database yang terinstal.',
27
-	'avis_lecture_noms_bases_2' => 'Bisa jadi tidak ada database yang tersedia, atau fitur yang mengizinkan penampilan daftar database dinonaktifkan
8
+    // A
9
+    'activer_plugin' => 'Aktifkan plugin',
10
+    'aide_non_disponible' => 'Bagian dari bantuan online ini belum tersedia dalam bahasa pengantar yang digunakan sekarang.',
11
+    'auteur' => 'Penulis:',
12
+    'avis_acces_interdit' => 'Dilarang mengakses.',
13
+    'avis_article_modifie' => 'Perhatian, @nom_auteur_modif@ telah mengedit artikel ini @date_diff@ menit yang lalu',
14
+    'avis_aucun_resultat' => 'Tidak ditemukan hasil apa-apa.',
15
+    'avis_chemin_invalide_1' => 'Path yang telah anda pilih',
16
+    'avis_chemin_invalide_2' => 'sepertinya tidak benar. Silakan kembali ke halaman sebelumnya dan verifikasi informasi yang diberikan.',
17
+    'avis_connexion_echec_1' => 'Koneksi ke server SQL gagal.', # MODIF
18
+    'avis_connexion_echec_2' => 'Kembali ke halaman sebelumnya, dan verifikasi informasi yang anda telah berikan.',
19
+    'avis_connexion_echec_3' => '<b>Catatan:</b> Pada sejumlah server, anda harus <b>memohon</b> aktivasi akses ke database SQL sebelum anda dapat menggunakannya. Jika anda tidak berhasil mengakses database anda, pastikan anda telah mengajukan permohonan ini.', # MODIF
20
+    'avis_connexion_ldap_echec_1' => 'Koneksi ke server LDAP gagal.',
21
+    'avis_connexion_ldap_echec_2' => 'Kembali ke halaman sebelumnya, dan verifikasi informasi yang anda telah berikan.',
22
+    'avis_connexion_ldap_echec_3' => 'Alternatif lainnya, jangan gunakan dukungan LDAP untuk mengimpor pengguna.',
23
+    'avis_deplacement_rubrique' => 'Peringatan! Bagian ini mengandung @contient_breves@ berita@scb@: jika anda memindahkannya, silakan cek kotak ini untuk konfirmasi.',
24
+    'avis_erreur_connexion_mysql' => 'Kesalahan koneksi SQL',
25
+    'avis_espace_interdit' => '<b>Area terlarang</b><p>SPIP telah diinstal.', # MODIF
26
+    'avis_lecture_noms_bases_1' => 'Sistem instalasi tidak dapat membaca nama-nama database yang terinstal.',
27
+    'avis_lecture_noms_bases_2' => 'Bisa jadi tidak ada database yang tersedia, atau fitur yang mengizinkan penampilan daftar database dinonaktifkan
28 28
   dengan alasan keamanan (yang sering ditemui pada banyak hosting).',
29
-	'avis_lecture_noms_bases_3' => 'Jika alternatif kedua benar, sangat mungkin sebuah database dinamai sama dengan log masuk anda:',
30
-	'avis_non_acces_page' => 'Anda tidak memiliki akses ke halaman ini.',
31
-	'avis_operation_echec' => 'Operasi gagal.',
32
-	'avis_operation_impossible' => 'Operasi tidak mungkin dijalankn',
33
-	'avis_suppression_base' => 'PERINGATAN, data yang dihapus tidak dapat dikembalikan lagi',
29
+    'avis_lecture_noms_bases_3' => 'Jika alternatif kedua benar, sangat mungkin sebuah database dinamai sama dengan log masuk anda:',
30
+    'avis_non_acces_page' => 'Anda tidak memiliki akses ke halaman ini.',
31
+    'avis_operation_echec' => 'Operasi gagal.',
32
+    'avis_operation_impossible' => 'Operasi tidak mungkin dijalankn',
33
+    'avis_suppression_base' => 'PERINGATAN, data yang dihapus tidak dapat dikembalikan lagi',
34 34
 
35
-	// B
36
-	'bouton_acces_ldap' => 'Tambah sebuah akses ke LDAP >>',
37
-	'bouton_ajouter' => 'Tambah',
38
-	'bouton_annuler' => 'Batal',
39
-	'bouton_demande_publication' => 'Permohonan publikasi artikel ini',
40
-	'bouton_desactive_tout' => 'Non aktifkan semua',
41
-	'bouton_effacer_tout' => 'Hapus SEMUA',
42
-	'bouton_envoyer_message' => 'Pesan terakhir: kirim',
43
-	'bouton_modifier' => 'Modifikasi',
44
-	'bouton_radio_afficher' => 'Tampilkan',
45
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Muncul di daftar editor-editor yang terkoneksi',
46
-	'bouton_radio_envoi_annonces_adresse' => 'Kirim pengumuman ke alamat:',
47
-	'bouton_radio_envoi_liste_nouveautes' => 'Kirim daftar berita terbaru',
48
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Jangan muncul di daftar editor-editor yang terkoneksi',
49
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Jangan kirim pengumuman editorial apapun juga',
50
-	'bouton_redirection' => 'MENGALIHKAN TUJUAN	',
51
-	'bouton_relancer_installation' => 'Menjalankan instalasi kembali',
52
-	'bouton_suivant' => 'Selanjutnya',
53
-	'bouton_tenter_recuperation' => 'Usaha perbaikan',
54
-	'bouton_test_proxy' => 'Tes proxy',
55
-	'bouton_vider_cache' => 'Kosongkan cache',
35
+    // B
36
+    'bouton_acces_ldap' => 'Tambah sebuah akses ke LDAP >>',
37
+    'bouton_ajouter' => 'Tambah',
38
+    'bouton_annuler' => 'Batal',
39
+    'bouton_demande_publication' => 'Permohonan publikasi artikel ini',
40
+    'bouton_desactive_tout' => 'Non aktifkan semua',
41
+    'bouton_effacer_tout' => 'Hapus SEMUA',
42
+    'bouton_envoyer_message' => 'Pesan terakhir: kirim',
43
+    'bouton_modifier' => 'Modifikasi',
44
+    'bouton_radio_afficher' => 'Tampilkan',
45
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Muncul di daftar editor-editor yang terkoneksi',
46
+    'bouton_radio_envoi_annonces_adresse' => 'Kirim pengumuman ke alamat:',
47
+    'bouton_radio_envoi_liste_nouveautes' => 'Kirim daftar berita terbaru',
48
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Jangan muncul di daftar editor-editor yang terkoneksi',
49
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Jangan kirim pengumuman editorial apapun juga',
50
+    'bouton_redirection' => 'MENGALIHKAN TUJUAN	',
51
+    'bouton_relancer_installation' => 'Menjalankan instalasi kembali',
52
+    'bouton_suivant' => 'Selanjutnya',
53
+    'bouton_tenter_recuperation' => 'Usaha perbaikan',
54
+    'bouton_test_proxy' => 'Tes proxy',
55
+    'bouton_vider_cache' => 'Kosongkan cache',
56 56
 
57
-	// C
58
-	'cache_modifiable_webmestre' => 'Parameter ini dapat dimodifikasi oleh webmaster.',
59
-	'calendrier_synchro' => 'Jika anda menggunakan aplikasi kalender yang kompatibel dengan <b>iCal</b>, anda dapat mensinkronisasikannya dengan informasi situs ini.',
60
-	'connexion_ldap' => 'Koneksi:',
57
+    // C
58
+    'cache_modifiable_webmestre' => 'Parameter ini dapat dimodifikasi oleh webmaster.',
59
+    'calendrier_synchro' => 'Jika anda menggunakan aplikasi kalender yang kompatibel dengan <b>iCal</b>, anda dapat mensinkronisasikannya dengan informasi situs ini.',
60
+    'connexion_ldap' => 'Koneksi:',
61 61
 
62
-	// D
63
-	'date_mot_heures' => 'H',
62
+    // D
63
+    'date_mot_heures' => 'H',
64 64
 
65
-	// E
66
-	'email' => 'e-mail',
67
-	'email_2' => 'e-mail:',
68
-	'entree_adresse_annuaire' => 'Alamat direktori',
69
-	'entree_adresse_email' => 'Alamat e-mail anda',
70
-	'entree_base_donnee_1' => 'Alamat database',
71
-	'entree_base_donnee_2' => '(Sering kali, alamat ini sesuai dengan alamat situs anda, kadangkala ia berkaitan dengan nama «localhost», dan bisa juga dibiarkan tidak terisi sama sekali.)',
72
-	'entree_biographie' => 'Biografi singkat dalam beberapa kata.',
73
-	'entree_chemin_acces' => '<b>Isi</B> path:',
74
-	'entree_cle_pgp' => 'Kunci PGP anda',
75
-	'entree_contenu_rubrique' => '(Isi bagian dalam beberapa kata.)',
76
-	'entree_identifiants_connexion' => 'Pengidentifikasi koneksi anda...',
77
-	'entree_informations_connexion_ldap' => 'Silakan isi formulir ini dengan informasi koneksi LDAP. Anda akan memperoleh informasi yang diminta melalui administrator jaringan atau sistem anda.',
78
-	'entree_infos_perso' => 'Siapa anda?',
79
-	'entree_interieur_rubrique' => 'Dalam bagian:',
80
-	'entree_liens_sites' => '<b>Tautan web</B> (referensi, situs yang dapat dikunjungi...)',
81
-	'entree_login' => 'Log masuk anda',
82
-	'entree_login_connexion_1' => 'Log masuk koneksi',
83
-	'entree_login_connexion_2' => '(Kadang kala sesuai dengan log masuk akses FTP anda dan bisa jadi juga dibiarkan tidak terisi)',
84
-	'entree_mot_passe' => 'Kata sandi anda',
85
-	'entree_mot_passe_1' => 'Kata sandi koneksi',
86
-	'entree_mot_passe_2' => '(Kadang kala sesuai dengan kata sandi akses FTP anda dan bisa jadi juga dibiarkan tidak terisi)',
87
-	'entree_nom_fichier' => 'Silakan isi nama berkas @texte_compresse@:',
88
-	'entree_nom_pseudo' => 'Nama atau alias anda',
89
-	'entree_nom_pseudo_1' => '(Nama atau alias anda)',
90
-	'entree_nom_site' => 'Nama situs anda',
91
-	'entree_nouveau_passe' => 'Kata sandi baru',
92
-	'entree_passe_ldap' => 'Kata sandi',
93
-	'entree_port_annuaire' => 'Nomor port direktori',
94
-	'entree_signature' => 'Tanda tangan',
95
-	'entree_titre_obligatoire' => '<b>Judul</b> [Dibutuhkan]<br />',
96
-	'entree_url' => 'URL situs anda',
97
-	'erreur_plugin_fichier_absent' => 'Berkas hilang',
98
-	'erreur_plugin_fichier_def_absent' => 'Berkas definisi hilang',
99
-	'erreur_plugin_nom_fonction_interdit' => 'Nama fungsi yang dilarang',
100
-	'erreur_plugin_nom_manquant' => 'Nama plugin yang hilang',
101
-	'erreur_plugin_prefix_manquant' => 'Nama plugin tidak terdefinisi',
102
-	'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; hilang dalam berkas definisi',
103
-	'erreur_plugin_version_manquant' => 'Versi plugin yang hilang',
65
+    // E
66
+    'email' => 'e-mail',
67
+    'email_2' => 'e-mail:',
68
+    'entree_adresse_annuaire' => 'Alamat direktori',
69
+    'entree_adresse_email' => 'Alamat e-mail anda',
70
+    'entree_base_donnee_1' => 'Alamat database',
71
+    'entree_base_donnee_2' => '(Sering kali, alamat ini sesuai dengan alamat situs anda, kadangkala ia berkaitan dengan nama «localhost», dan bisa juga dibiarkan tidak terisi sama sekali.)',
72
+    'entree_biographie' => 'Biografi singkat dalam beberapa kata.',
73
+    'entree_chemin_acces' => '<b>Isi</B> path:',
74
+    'entree_cle_pgp' => 'Kunci PGP anda',
75
+    'entree_contenu_rubrique' => '(Isi bagian dalam beberapa kata.)',
76
+    'entree_identifiants_connexion' => 'Pengidentifikasi koneksi anda...',
77
+    'entree_informations_connexion_ldap' => 'Silakan isi formulir ini dengan informasi koneksi LDAP. Anda akan memperoleh informasi yang diminta melalui administrator jaringan atau sistem anda.',
78
+    'entree_infos_perso' => 'Siapa anda?',
79
+    'entree_interieur_rubrique' => 'Dalam bagian:',
80
+    'entree_liens_sites' => '<b>Tautan web</B> (referensi, situs yang dapat dikunjungi...)',
81
+    'entree_login' => 'Log masuk anda',
82
+    'entree_login_connexion_1' => 'Log masuk koneksi',
83
+    'entree_login_connexion_2' => '(Kadang kala sesuai dengan log masuk akses FTP anda dan bisa jadi juga dibiarkan tidak terisi)',
84
+    'entree_mot_passe' => 'Kata sandi anda',
85
+    'entree_mot_passe_1' => 'Kata sandi koneksi',
86
+    'entree_mot_passe_2' => '(Kadang kala sesuai dengan kata sandi akses FTP anda dan bisa jadi juga dibiarkan tidak terisi)',
87
+    'entree_nom_fichier' => 'Silakan isi nama berkas @texte_compresse@:',
88
+    'entree_nom_pseudo' => 'Nama atau alias anda',
89
+    'entree_nom_pseudo_1' => '(Nama atau alias anda)',
90
+    'entree_nom_site' => 'Nama situs anda',
91
+    'entree_nouveau_passe' => 'Kata sandi baru',
92
+    'entree_passe_ldap' => 'Kata sandi',
93
+    'entree_port_annuaire' => 'Nomor port direktori',
94
+    'entree_signature' => 'Tanda tangan',
95
+    'entree_titre_obligatoire' => '<b>Judul</b> [Dibutuhkan]<br />',
96
+    'entree_url' => 'URL situs anda',
97
+    'erreur_plugin_fichier_absent' => 'Berkas hilang',
98
+    'erreur_plugin_fichier_def_absent' => 'Berkas definisi hilang',
99
+    'erreur_plugin_nom_fonction_interdit' => 'Nama fungsi yang dilarang',
100
+    'erreur_plugin_nom_manquant' => 'Nama plugin yang hilang',
101
+    'erreur_plugin_prefix_manquant' => 'Nama plugin tidak terdefinisi',
102
+    'erreur_plugin_tag_plugin_absent' => '&lt;plugin&gt; hilang dalam berkas definisi',
103
+    'erreur_plugin_version_manquant' => 'Versi plugin yang hilang',
104 104
 
105
-	// I
106
-	'ical_info1' => 'Halaman ini memberikan sejumlah metode untuk mengetahui dan berhubungan dengan aktivitas situs ini.',
107
-	'ical_info2' => 'Untuk informasi lebih lanjut, jangan segan-segan untuk mengunjungi <a href="@spipnet@">dokumentasi SPIP</a>.', # MODIF
108
-	'ical_info_calendrier' => 'Dua kalender berada di tangan anda siap untuk dipakai. Yang pertama adalah peta situs yang menampilkan semua artikel yang dipublikasi. Yang kedua berisikan pengumuman editorial sekaligus pesan-pesan pribadi terbaru anda: semuanya dapat disimpan berkat kunci pribadi yang bisa anda modifikasi setiap saat dengan jalan memperbaharui kata sandi.',
109
-	'ical_methode_http' => 'Mengunduh',
110
-	'ical_methode_webcal' => 'Sinkronisasi (webcal://)', # MODIF
111
-	'ical_texte_prive' => 'Kalender ini, yang sifatnya pribadi sekali, menginformasikan anda seluruh aktivitas editorial pribadi situs ini (tugas-tugas, janji-janji pribadi, artikel-artikel dan berita-berita yang dikirimkan...).',
112
-	'ical_texte_public' => 'Kalender ini memperbolehkan anda mengikuti aktivitas umum situs ini (artikel-artikel dan berita-berita yang dipublikasi).',
113
-	'ical_texte_rss' => 'Anda dapat mensindikasi berita-berita terbaru situs ini melalui pembaca berkas XML/RSS (Rich Site Summary) apa saja. Ini juga merupakan format yang mengizinkan SPIP untuk membaca berita-berita terbaru yang dipublikasi oleh situs-situs lainnya menggunakan format yang kompatibel (situs-situs tersindikasi).',
114
-	'ical_titre_js' => 'Javascript',
115
-	'ical_titre_mailing' => 'Daftar Surat',
116
-	'ical_titre_rss' => 'Berkas-berkas sindikasi',
117
-	'icone_activer_cookie' => 'Meletakkan sebuah cookie',
118
-	'icone_admin_plugin' => 'Mengelola plugin',
119
-	'icone_afficher_auteurs' => 'Tampilkan penulis',
120
-	'icone_afficher_visiteurs' => 'Tampilkan pengunjung',
121
-	'icone_arret_discussion' => 'Berhenti berpartisipasi dalam diskusi ini',
122
-	'icone_calendrier' => 'Kalender',
123
-	'icone_creer_auteur' => 'Buat seorang penulis baru dan asosiasikan dia dengan artikel ini',
124
-	'icone_creer_mot_cle' => 'Buat sebuah kata kunci baru dan tautkan ia ke artikel ini',
125
-	'icone_creer_rubrique_2' => 'Buat sebuah bagian baru',
126
-	'icone_modifier_article' => 'Modifikasi artikel ini',
127
-	'icone_modifier_rubrique' => 'Modifikasi bagian ini',
128
-	'icone_retour' => 'Kembali',
129
-	'icone_retour_article' => 'Kembali ke artikel',
130
-	'icone_supprimer_cookie' => 'Hapus cookie',
131
-	'icone_supprimer_rubrique' => 'Hapus bagian ini',
132
-	'icone_supprimer_signature' => 'Hapus tanda tangan ini',
133
-	'icone_valider_signature' => 'Validasi tanda tangan ini',
134
-	'image_administrer_rubrique' => 'Anda dapat mengelola bagian ini',
135
-	'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
136
-	'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
137
-	'info_1_article' => '1 artikel',
138
-	'info_activer_cookie' => 'Anda apat mengaktifkan <b>cookie administrasi</b>, yang memperbolehkan anda
105
+    // I
106
+    'ical_info1' => 'Halaman ini memberikan sejumlah metode untuk mengetahui dan berhubungan dengan aktivitas situs ini.',
107
+    'ical_info2' => 'Untuk informasi lebih lanjut, jangan segan-segan untuk mengunjungi <a href="@spipnet@">dokumentasi SPIP</a>.', # MODIF
108
+    'ical_info_calendrier' => 'Dua kalender berada di tangan anda siap untuk dipakai. Yang pertama adalah peta situs yang menampilkan semua artikel yang dipublikasi. Yang kedua berisikan pengumuman editorial sekaligus pesan-pesan pribadi terbaru anda: semuanya dapat disimpan berkat kunci pribadi yang bisa anda modifikasi setiap saat dengan jalan memperbaharui kata sandi.',
109
+    'ical_methode_http' => 'Mengunduh',
110
+    'ical_methode_webcal' => 'Sinkronisasi (webcal://)', # MODIF
111
+    'ical_texte_prive' => 'Kalender ini, yang sifatnya pribadi sekali, menginformasikan anda seluruh aktivitas editorial pribadi situs ini (tugas-tugas, janji-janji pribadi, artikel-artikel dan berita-berita yang dikirimkan...).',
112
+    'ical_texte_public' => 'Kalender ini memperbolehkan anda mengikuti aktivitas umum situs ini (artikel-artikel dan berita-berita yang dipublikasi).',
113
+    'ical_texte_rss' => 'Anda dapat mensindikasi berita-berita terbaru situs ini melalui pembaca berkas XML/RSS (Rich Site Summary) apa saja. Ini juga merupakan format yang mengizinkan SPIP untuk membaca berita-berita terbaru yang dipublikasi oleh situs-situs lainnya menggunakan format yang kompatibel (situs-situs tersindikasi).',
114
+    'ical_titre_js' => 'Javascript',
115
+    'ical_titre_mailing' => 'Daftar Surat',
116
+    'ical_titre_rss' => 'Berkas-berkas sindikasi',
117
+    'icone_activer_cookie' => 'Meletakkan sebuah cookie',
118
+    'icone_admin_plugin' => 'Mengelola plugin',
119
+    'icone_afficher_auteurs' => 'Tampilkan penulis',
120
+    'icone_afficher_visiteurs' => 'Tampilkan pengunjung',
121
+    'icone_arret_discussion' => 'Berhenti berpartisipasi dalam diskusi ini',
122
+    'icone_calendrier' => 'Kalender',
123
+    'icone_creer_auteur' => 'Buat seorang penulis baru dan asosiasikan dia dengan artikel ini',
124
+    'icone_creer_mot_cle' => 'Buat sebuah kata kunci baru dan tautkan ia ke artikel ini',
125
+    'icone_creer_rubrique_2' => 'Buat sebuah bagian baru',
126
+    'icone_modifier_article' => 'Modifikasi artikel ini',
127
+    'icone_modifier_rubrique' => 'Modifikasi bagian ini',
128
+    'icone_retour' => 'Kembali',
129
+    'icone_retour_article' => 'Kembali ke artikel',
130
+    'icone_supprimer_cookie' => 'Hapus cookie',
131
+    'icone_supprimer_rubrique' => 'Hapus bagian ini',
132
+    'icone_supprimer_signature' => 'Hapus tanda tangan ini',
133
+    'icone_valider_signature' => 'Validasi tanda tangan ini',
134
+    'image_administrer_rubrique' => 'Anda dapat mengelola bagian ini',
135
+    'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
136
+    'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
137
+    'info_1_article' => '1 artikel',
138
+    'info_activer_cookie' => 'Anda apat mengaktifkan <b>cookie administrasi</b>, yang memperbolehkan anda
139 139
  untuk berpindah-pindah dengan mudah antara situs umum dan area pribadi.',
140
-	'info_administrateur' => 'Administrator',
141
-	'info_administrateur_1' => 'Administrator',
142
-	'info_administrateur_2' => 'situs (<i>gunakan dengan penuh kehati-hatian</i>)',
143
-	'info_administrateur_site_01' => 'Jika anda adalah seorang administrator situs, silakan',
144
-	'info_administrateur_site_02' => 'klik tautan ini',
145
-	'info_administrateurs' => 'Administrator',
146
-	'info_administrer_rubrique' => 'Anda dapat mengelola bagian ini',
147
-	'info_adresse' => 'ke alamat:',
148
-	'info_adresse_url' => 'URL situs umum anda',
149
-	'info_aide_en_ligne' => 'Bantuan Online SPIP',
150
-	'info_ajout_image' => 'Ketika anda menambahkan gambar sebagai lampiran pada sebuah artikel,
140
+    'info_administrateur' => 'Administrator',
141
+    'info_administrateur_1' => 'Administrator',
142
+    'info_administrateur_2' => 'situs (<i>gunakan dengan penuh kehati-hatian</i>)',
143
+    'info_administrateur_site_01' => 'Jika anda adalah seorang administrator situs, silakan',
144
+    'info_administrateur_site_02' => 'klik tautan ini',
145
+    'info_administrateurs' => 'Administrator',
146
+    'info_administrer_rubrique' => 'Anda dapat mengelola bagian ini',
147
+    'info_adresse' => 'ke alamat:',
148
+    'info_adresse_url' => 'URL situs umum anda',
149
+    'info_aide_en_ligne' => 'Bantuan Online SPIP',
150
+    'info_ajout_image' => 'Ketika anda menambahkan gambar sebagai lampiran pada sebuah artikel,
151 151
 		SPIP dapat secara otomatis membuat gambar kecil dari
152 152
 		gambar yang dimasukkan. Ini bermanfaat ,sebagai contoh, untuk membuat
153 153
 		sebuah galeri gambar atau portfolio.',
154
-	'info_ajouter_rubrique' => 'Tambah sebuah bagian untuk dikelola:',
155
-	'info_annonce_nouveautes' => 'Pengumuman-pengumuman berita terbaru',
156
-	'info_article' => 'artikel',
157
-	'info_article_2' => 'artikel',
158
-	'info_article_a_paraitre' => 'Artikel-artikel bertanggal yang akan dipublikasikan',
159
-	'info_articles_02' => 'Artikel',
160
-	'info_articles_2' => 'Artikel',
161
-	'info_articles_auteur' => 'Artikel-artikel penulis ini',
162
-	'info_articles_trouves' => 'Artikel ditemukan',
163
-	'info_attente_validation' => 'Validasi tertunda artikel-artikel anda',
164
-	'info_aujourdhui' => 'hari ini:',
165
-	'info_auteurs' => 'Penulis',
166
-	'info_auteurs_par_tri' => 'Penulis@partri@',
167
-	'info_auteurs_trouves' => 'Penulis ditemukan',
168
-	'info_authentification_externe' => 'Ototentikasi eksternal',
169
-	'info_avertissement' => 'Peringatan',
170
-	'info_base_installee' => 'Struktur database anda telah diinstal.',
171
-	'info_chapeau' => 'Dek',
172
-	'info_chapeau_2' => 'Introduksi:',
173
-	'info_chemin_acces_1' => 'Pilihan: <b>Path akses dalam direktori</b>',
174
-	'info_chemin_acces_2' => 'Mulai sekarang, anda harus mengkonfigurasi path akses ke informasi direktori. Informasi ini penting untuk membaca profil pengguna yang disimpan dalam direktori.',
175
-	'info_chemin_acces_annuaire' => 'Pilihan: <b>Path akses dalam direktori</B>',
176
-	'info_choix_base' => 'Langkah ketiga:',
177
-	'info_classement_1' => ' dari @liste@',
178
-	'info_classement_2' => ' dari @liste@',
179
-	'info_code_acces' => 'Jangan lupa kode akses anda!',
180
-	'info_config_suivi' => 'Jika alamat ini berkaitan dengan suatu daftar surat, anda dapat mengindikasikan di bawah alamat di mana pengunjung situs dapat mendaftarkan diri. Alamat ini dapat berupa URL (sebagai contoh halaman registrasi daftar surat melalui web), atau alamat e-mail dengan subyek yang spesifik (contoh: <tt>@adresse_suivi@?subject=subscribe</tt>):',
181
-	'info_config_suivi_explication' => 'Anda dapat berlangganan daftar surat situs ini. Anda akan menerima melalui e-mail secara otomatis, pengumuman-pengumuman yang berkenaan dengan artikel-artikel dan berita-berita yang dikirim untuk publikasi.',
182
-	'info_confirmer_passe' => 'Konfirmasi kata sandi baru:',
183
-	'info_connexion_base' => 'Langkah kedua: <b>Percobaan untuk koneksi ke database</B>',
184
-	'info_connexion_ldap_ok' => 'Koneksi LDAP anda berhasil.</b><p> Anda dapat meneruskan ke langkah selanjutnya.</p>', # MODIF
185
-	'info_connexion_mysql' => 'Langkah pertama: <b>Koneksi SQL anda</b>',
186
-	'info_connexion_ok' => 'Koneksi berhasil.',
187
-	'info_contact' => 'Kontak',
188
-	'info_contenu_articles' => 'Isi artikel',
189
-	'info_creation_paragraphe' => '(Untuk membuat paragraf, anda cukup meninggalkan baris-baris kosong.)', # MODIF
190
-	'info_creation_rubrique' => 'Sebelum bisa menulis artikel,<br /> anda harus membuat paling tidak satu bagian.<br />',
191
-	'info_creation_tables' => 'Langkah keempat: <b>Pembuatan tabel-tabel database</b>',
192
-	'info_creer_base' => '<b>Buat</b> sebuah database baru:',
193
-	'info_dans_rubrique' => 'Dalam bagian:',
194
-	'info_date_publication_anterieure' => 'Tanggal publikasi sebelumnya:',
195
-	'info_date_referencement' => 'TANGGAL REFERENSI SITUS INI:',
196
-	'info_derniere_etape' => 'Langkah terakhir: <b>Selesai!',
197
-	'info_descriptif' => 'Deskripsi:',
198
-	'info_discussion_cours' => 'Diskusi-diskusi yang sedang berlangsung',
199
-	'info_ecrire_article' => 'Sebelum dapat menulis artikel, anda harus membuat paling tidak satu bagian.',
200
-	'info_email_envoi' => 'Alamat e-mail pengirim (opsional)',
201
-	'info_email_envoi_txt' => 'Masukkan alamat e-mail pengirim yang digunakan untuk mengirim e-mail (secara standar, alamat penerima digunakan sebagai alamat pengirim) :',
202
-	'info_email_webmestre' => 'Alamat e-mail webmaster (opsional)', # MODIF
203
-	'info_envoi_email_automatique' => 'Pengiriman otomatis',
204
-	'info_envoyer_maintenant' => 'Kirim sekarang',
205
-	'info_etape_suivante' => 'Lanjut ke langkah berikutnya',
206
-	'info_etape_suivante_1' => 'Anda dapat pindah ke langkah selanjutnya.',
207
-	'info_etape_suivante_2' => 'Anda dapat pindah ke langkah selanjutnya.',
208
-	'info_exportation_base' => 'ekspor database ke @archive@',
209
-	'info_facilite_suivi_activite' => 'Untuk menfasilitasi tindak lanjut dari aktivitas editorial situs;
154
+    'info_ajouter_rubrique' => 'Tambah sebuah bagian untuk dikelola:',
155
+    'info_annonce_nouveautes' => 'Pengumuman-pengumuman berita terbaru',
156
+    'info_article' => 'artikel',
157
+    'info_article_2' => 'artikel',
158
+    'info_article_a_paraitre' => 'Artikel-artikel bertanggal yang akan dipublikasikan',
159
+    'info_articles_02' => 'Artikel',
160
+    'info_articles_2' => 'Artikel',
161
+    'info_articles_auteur' => 'Artikel-artikel penulis ini',
162
+    'info_articles_trouves' => 'Artikel ditemukan',
163
+    'info_attente_validation' => 'Validasi tertunda artikel-artikel anda',
164
+    'info_aujourdhui' => 'hari ini:',
165
+    'info_auteurs' => 'Penulis',
166
+    'info_auteurs_par_tri' => 'Penulis@partri@',
167
+    'info_auteurs_trouves' => 'Penulis ditemukan',
168
+    'info_authentification_externe' => 'Ototentikasi eksternal',
169
+    'info_avertissement' => 'Peringatan',
170
+    'info_base_installee' => 'Struktur database anda telah diinstal.',
171
+    'info_chapeau' => 'Dek',
172
+    'info_chapeau_2' => 'Introduksi:',
173
+    'info_chemin_acces_1' => 'Pilihan: <b>Path akses dalam direktori</b>',
174
+    'info_chemin_acces_2' => 'Mulai sekarang, anda harus mengkonfigurasi path akses ke informasi direktori. Informasi ini penting untuk membaca profil pengguna yang disimpan dalam direktori.',
175
+    'info_chemin_acces_annuaire' => 'Pilihan: <b>Path akses dalam direktori</B>',
176
+    'info_choix_base' => 'Langkah ketiga:',
177
+    'info_classement_1' => ' dari @liste@',
178
+    'info_classement_2' => ' dari @liste@',
179
+    'info_code_acces' => 'Jangan lupa kode akses anda!',
180
+    'info_config_suivi' => 'Jika alamat ini berkaitan dengan suatu daftar surat, anda dapat mengindikasikan di bawah alamat di mana pengunjung situs dapat mendaftarkan diri. Alamat ini dapat berupa URL (sebagai contoh halaman registrasi daftar surat melalui web), atau alamat e-mail dengan subyek yang spesifik (contoh: <tt>@adresse_suivi@?subject=subscribe</tt>):',
181
+    'info_config_suivi_explication' => 'Anda dapat berlangganan daftar surat situs ini. Anda akan menerima melalui e-mail secara otomatis, pengumuman-pengumuman yang berkenaan dengan artikel-artikel dan berita-berita yang dikirim untuk publikasi.',
182
+    'info_confirmer_passe' => 'Konfirmasi kata sandi baru:',
183
+    'info_connexion_base' => 'Langkah kedua: <b>Percobaan untuk koneksi ke database</B>',
184
+    'info_connexion_ldap_ok' => 'Koneksi LDAP anda berhasil.</b><p> Anda dapat meneruskan ke langkah selanjutnya.</p>', # MODIF
185
+    'info_connexion_mysql' => 'Langkah pertama: <b>Koneksi SQL anda</b>',
186
+    'info_connexion_ok' => 'Koneksi berhasil.',
187
+    'info_contact' => 'Kontak',
188
+    'info_contenu_articles' => 'Isi artikel',
189
+    'info_creation_paragraphe' => '(Untuk membuat paragraf, anda cukup meninggalkan baris-baris kosong.)', # MODIF
190
+    'info_creation_rubrique' => 'Sebelum bisa menulis artikel,<br /> anda harus membuat paling tidak satu bagian.<br />',
191
+    'info_creation_tables' => 'Langkah keempat: <b>Pembuatan tabel-tabel database</b>',
192
+    'info_creer_base' => '<b>Buat</b> sebuah database baru:',
193
+    'info_dans_rubrique' => 'Dalam bagian:',
194
+    'info_date_publication_anterieure' => 'Tanggal publikasi sebelumnya:',
195
+    'info_date_referencement' => 'TANGGAL REFERENSI SITUS INI:',
196
+    'info_derniere_etape' => 'Langkah terakhir: <b>Selesai!',
197
+    'info_descriptif' => 'Deskripsi:',
198
+    'info_discussion_cours' => 'Diskusi-diskusi yang sedang berlangsung',
199
+    'info_ecrire_article' => 'Sebelum dapat menulis artikel, anda harus membuat paling tidak satu bagian.',
200
+    'info_email_envoi' => 'Alamat e-mail pengirim (opsional)',
201
+    'info_email_envoi_txt' => 'Masukkan alamat e-mail pengirim yang digunakan untuk mengirim e-mail (secara standar, alamat penerima digunakan sebagai alamat pengirim) :',
202
+    'info_email_webmestre' => 'Alamat e-mail webmaster (opsional)', # MODIF
203
+    'info_envoi_email_automatique' => 'Pengiriman otomatis',
204
+    'info_envoyer_maintenant' => 'Kirim sekarang',
205
+    'info_etape_suivante' => 'Lanjut ke langkah berikutnya',
206
+    'info_etape_suivante_1' => 'Anda dapat pindah ke langkah selanjutnya.',
207
+    'info_etape_suivante_2' => 'Anda dapat pindah ke langkah selanjutnya.',
208
+    'info_exportation_base' => 'ekspor database ke @archive@',
209
+    'info_facilite_suivi_activite' => 'Untuk menfasilitasi tindak lanjut dari aktivitas editorial situs;
210 210
   SPIP dapat mengirimkan notifikasi melalui e-mail, ke daftar surat seorang editor,
211 211
   sebagai contoh permohonan publikasi dan validasi artikel.', # MODIF
212
-	'info_fichiers_authent' => 'Berkas ototentikasi ".htpasswd"',
213
-	'info_forums_abo_invites' => 'Situs anda berisikan forum-forum berlangganan; pengunjung dapat mendaftarkan diri pada forum-forum tersebut di situs umum.',
214
-	'info_gauche_admin_tech' => '<b>Hanya administrator yang memiliki akses ke halaman ini.</b><p> Halaman ini memberikan akses ke berbagai tugas pemeliharaan teknis. Beberapa di antaranya memerlukan proses ototentikasi tersendiri yang membutuhkan akses FTP ke situs web.</p>', # MODIF
215
-	'info_gauche_admin_vider' => '<b>Hanya administrator yang memiliki akses ke halaman ini.</b><p> Halaman ini memberikan akses ke berbagai tugas pemeliharaan teknis. Beberapa di antaranya memerlukan proses ototentikasi tersendiri yang membutuhkan akses FTP ke situs web.</p>', # MODIF
216
-	'info_gauche_auteurs' => 'Anda akan menemukan seluruh penulis situs di sini.
212
+    'info_fichiers_authent' => 'Berkas ototentikasi ".htpasswd"',
213
+    'info_forums_abo_invites' => 'Situs anda berisikan forum-forum berlangganan; pengunjung dapat mendaftarkan diri pada forum-forum tersebut di situs umum.',
214
+    'info_gauche_admin_tech' => '<b>Hanya administrator yang memiliki akses ke halaman ini.</b><p> Halaman ini memberikan akses ke berbagai tugas pemeliharaan teknis. Beberapa di antaranya memerlukan proses ototentikasi tersendiri yang membutuhkan akses FTP ke situs web.</p>', # MODIF
215
+    'info_gauche_admin_vider' => '<b>Hanya administrator yang memiliki akses ke halaman ini.</b><p> Halaman ini memberikan akses ke berbagai tugas pemeliharaan teknis. Beberapa di antaranya memerlukan proses ototentikasi tersendiri yang membutuhkan akses FTP ke situs web.</p>', # MODIF
216
+    'info_gauche_auteurs' => 'Anda akan menemukan seluruh penulis situs di sini.
217 217
  Status dari setiap penulis ditunjukkan oleh warna icon (administrator = hijau; editor = kuning).',
218
-	'info_gauche_auteurs_exterieurs' => 'Penulis eksternal, tanpa akses ke situs, ditunjukkan oleh icon biru; penulis yang dihapus oleh icon warna keranjang sampah.', # MODIF
219
-	'info_gauche_messagerie' => 'Sistem pesan mengizinkan anda bertukar pesan dengan sesama editor, untuk menyimpan memo (untuk keperluan pribadi anda) atau untuk menampilkan pengumuman di halaman depan area pribadi (jika anda seorang administrator).',
220
-	'info_gauche_statistiques_referers' => 'Halaman ini menampilkan daftar <i>pereferensi</I>, yakni situs-situs yang memuat tautan ke situs anda, hanya untuk kemarin dan hari ini: sesungguhnya daftar ini diperbaharui setiap 24 jam.',
221
-	'info_gauche_visiteurs_enregistres' => 'Anda akan menemukan di sini para pengunjung
218
+    'info_gauche_auteurs_exterieurs' => 'Penulis eksternal, tanpa akses ke situs, ditunjukkan oleh icon biru; penulis yang dihapus oleh icon warna keranjang sampah.', # MODIF
219
+    'info_gauche_messagerie' => 'Sistem pesan mengizinkan anda bertukar pesan dengan sesama editor, untuk menyimpan memo (untuk keperluan pribadi anda) atau untuk menampilkan pengumuman di halaman depan area pribadi (jika anda seorang administrator).',
220
+    'info_gauche_statistiques_referers' => 'Halaman ini menampilkan daftar <i>pereferensi</I>, yakni situs-situs yang memuat tautan ke situs anda, hanya untuk kemarin dan hari ini: sesungguhnya daftar ini diperbaharui setiap 24 jam.',
221
+    'info_gauche_visiteurs_enregistres' => 'Anda akan menemukan di sini para pengunjung
222 222
 	terdaftar di area umum situs (forum-forum berlangganan).',
223
-	'info_generation_miniatures_images' => 'Membuat gambar-gambar kecil',
224
-	'info_hebergeur_desactiver_envoi_email' => 'Sejumlah hosting menonaktifkan pengiriman e-mail
223
+    'info_generation_miniatures_images' => 'Membuat gambar-gambar kecil',
224
+    'info_hebergeur_desactiver_envoi_email' => 'Sejumlah hosting menonaktifkan pengiriman e-mail
225 225
   otomatis di server mereka. Dalam hal ini fitur-fitur SPIP berikut tidak
226 226
   dapat diimplementasikan.',
227
-	'info_hier' => 'kemarin:',
228
-	'info_identification_publique' => 'Identitas umum anda...',
229
-	'info_image_process' => 'Pilih metode terbaik untuk membuat gambar kecil dengan mengklik gambar yang terkait.',
230
-	'info_images_auto' => 'Gambar secara otomatis dikalkulasi',
231
-	'info_informations_personnelles' => 'Langkah kelima: <b>Informasi pribadi</B>',
232
-	'info_inscription_automatique' => 'Registrasi otomatis editor-editor baru',
233
-	'info_jeu_caractere' => 'Set karakter situs',
234
-	'info_jours' => 'hari',
235
-	'info_laisser_champs_vides' => 'biarkan kolom-kolom ini kosong)',
236
-	'info_langues' => 'Bahasa-bahasa situs',
237
-	'info_ldap_ok' => 'Ototentikasi LDAP diinstal.',
238
-	'info_lien_hypertexte' => 'Tautan web:',
239
-	'info_liste_redacteurs_connectes' => 'Daftar editor-editor terkoneksi',
240
-	'info_login_existant' => 'Log masuk ini sudah ada.',
241
-	'info_login_trop_court' => 'Log masuk terlalu pendek.',
242
-	'info_maximum' => 'maksimum:',
243
-	'info_meme_rubrique' => 'Dalam bagian yang sama',
244
-	'info_message_en_redaction' => 'Pesan-pesan anda dalam proses',
245
-	'info_message_technique' => 'Pesan teknis:',
246
-	'info_messagerie_interne' => 'Sistem pesan internal',
247
-	'info_mise_a_niveau_base' => 'Pembaharuan database SQL',
248
-	'info_mise_a_niveau_base_2' => '{{Peringatan!}} Anda telah menginstal berkas SPIP
227
+    'info_hier' => 'kemarin:',
228
+    'info_identification_publique' => 'Identitas umum anda...',
229
+    'info_image_process' => 'Pilih metode terbaik untuk membuat gambar kecil dengan mengklik gambar yang terkait.',
230
+    'info_images_auto' => 'Gambar secara otomatis dikalkulasi',
231
+    'info_informations_personnelles' => 'Langkah kelima: <b>Informasi pribadi</B>',
232
+    'info_inscription_automatique' => 'Registrasi otomatis editor-editor baru',
233
+    'info_jeu_caractere' => 'Set karakter situs',
234
+    'info_jours' => 'hari',
235
+    'info_laisser_champs_vides' => 'biarkan kolom-kolom ini kosong)',
236
+    'info_langues' => 'Bahasa-bahasa situs',
237
+    'info_ldap_ok' => 'Ototentikasi LDAP diinstal.',
238
+    'info_lien_hypertexte' => 'Tautan web:',
239
+    'info_liste_redacteurs_connectes' => 'Daftar editor-editor terkoneksi',
240
+    'info_login_existant' => 'Log masuk ini sudah ada.',
241
+    'info_login_trop_court' => 'Log masuk terlalu pendek.',
242
+    'info_maximum' => 'maksimum:',
243
+    'info_meme_rubrique' => 'Dalam bagian yang sama',
244
+    'info_message_en_redaction' => 'Pesan-pesan anda dalam proses',
245
+    'info_message_technique' => 'Pesan teknis:',
246
+    'info_messagerie_interne' => 'Sistem pesan internal',
247
+    'info_mise_a_niveau_base' => 'Pembaharuan database SQL',
248
+    'info_mise_a_niveau_base_2' => '{{Peringatan!}} Anda telah menginstal berkas SPIP
249 249
   {yang lebih tua} daripada berkas yang terdapat sebelumnya
250 250
   di situs ini: database anda terancam hilang dan situs anda
251 251
   tidak akan bekerja sebagaimana mestinya lagi.<br />{{Instal kembali
252 252
   berkas-berkas SPIP}}',
253
-	'info_modifier_rubrique' => 'Modifikasi bagian:',
254
-	'info_modifier_titre' => 'Modifikasi: @titre@',
255
-	'info_mon_site_spip' => 'Situs SPIP saya',
256
-	'info_moyenne' => 'rata-rata:',
257
-	'info_multi_cet_article' => 'Bahasa artikel ini:',
258
-	'info_multi_langues_choisies' => 'Silakan pilih di bawah bahasa yang tersedia untuk editor situs anda.
253
+    'info_modifier_rubrique' => 'Modifikasi bagian:',
254
+    'info_modifier_titre' => 'Modifikasi: @titre@',
255
+    'info_mon_site_spip' => 'Situs SPIP saya',
256
+    'info_moyenne' => 'rata-rata:',
257
+    'info_multi_cet_article' => 'Bahasa artikel ini:',
258
+    'info_multi_langues_choisies' => 'Silakan pilih di bawah bahasa yang tersedia untuk editor situs anda.
259 259
   Bahasa-bahasa yang telah digunakan oleh situs anda (di daftar paling atas) tidak dapat dinonaktifkan.',
260
-	'info_multi_secteurs' => '... hanya untuk bagian-bagian yang berlokasi di root?',
261
-	'info_nom' => 'Nama',
262
-	'info_nom_destinataire' => 'Nama penerima',
263
-	'info_nom_site' => 'Nama situs anda',
264
-	'info_nombre_articles' => '@nb_articles@ artikel,',
265
-	'info_nombre_rubriques' => '@nb_rubriques@ bagian,',
266
-	'info_nombre_sites' => '@nb_sites@ situs,',
267
-	'info_non_deplacer' => 'Jangan pindahkan...',
268
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP dapat mengirimkan pengumuman-pengumuman terbaru situs secara teratur.
260
+    'info_multi_secteurs' => '... hanya untuk bagian-bagian yang berlokasi di root?',
261
+    'info_nom' => 'Nama',
262
+    'info_nom_destinataire' => 'Nama penerima',
263
+    'info_nom_site' => 'Nama situs anda',
264
+    'info_nombre_articles' => '@nb_articles@ artikel,',
265
+    'info_nombre_rubriques' => '@nb_rubriques@ bagian,',
266
+    'info_nombre_sites' => '@nb_sites@ situs,',
267
+    'info_non_deplacer' => 'Jangan pindahkan...',
268
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP dapat mengirimkan pengumuman-pengumuman terbaru situs secara teratur.
269 269
 		(artikel-artikel dan berita-berita yang baru saja dipublikasi).',
270
-	'info_non_envoi_liste_nouveautes' => 'Jangan kirim daftar berita-berita terbaru',
271
-	'info_non_modifiable' => 'tidak dapat dimodifikasi',
272
-	'info_non_suppression_mot_cle' => 'Saya tidak ingin menghapus kata kunci ini.',
273
-	'info_notes' => 'Catatan kaki',
274
-	'info_nouvel_article' => 'Artikel baru',
275
-	'info_nouvelle_traduction' => 'Terjemahan baru:',
276
-	'info_numero_article' => 'NOMOR ARTIKEL:',
277
-	'info_obligatoire_02' => '[Dibutuhkan]', # MODIF
278
-	'info_option_accepter_visiteurs' => 'Izinkan registrasi pengunjung dari situs umum',
279
-	'info_option_ne_pas_accepter_visiteurs' => 'Tolak registrasi pengunjung',
280
-	'info_options_avancees' => 'OPSI-OPSI LANJUTAN',
281
-	'info_ou' => 'atau...',
282
-	'info_page_interdite' => 'Halaman terlarang',
283
-	'info_par_nom' => 'berdasarkan nama',
284
-	'info_par_nombre_article' => '(berdasarkan jumlah artikel)',
285
-	'info_par_statut' => 'berdasarkan status',
286
-	'info_par_tri' => '(Oleh @tri@)',
287
-	'info_passe_trop_court' => 'Kata sandi terlalu pendek.',
288
-	'info_passes_identiques' => 'Dua kata sandi tidak identik.',
289
-	'info_plus_cinq_car' => 'lebih dari 5 karakter',
290
-	'info_plus_cinq_car_2' => '(Lebih dari 5 karakter)',
291
-	'info_plus_trois_car' => '(Lebih dari 3 karakter)',
292
-	'info_popularite' => 'popularitas: @popularite@; kunjungan: @visites@',
293
-	'info_post_scriptum' => 'Postscript',
294
-	'info_post_scriptum_2' => 'Postscript:',
295
-	'info_pour' => 'untuk',
296
-	'info_preview_texte' => 'Ada kemungkinan melihat situs terlebih dahulu seolah-olah semua artikel dan berita (yang paling tidak memiliki status "terkirim") telah dipublikasi. Apakah mode preview ini sebaiknya dibatasi hanya kepada administrator, terbuka untuk semua penulis atau dinonaktifkan selama-lamanya?', # MODIF
297
-	'info_procedez_par_etape' => 'silakan dilanjutkan langkah demi langkah',
298
-	'info_procedure_maj_version' => 'prosedur pembaharuan hendaknya dijalankan untuk
270
+    'info_non_envoi_liste_nouveautes' => 'Jangan kirim daftar berita-berita terbaru',
271
+    'info_non_modifiable' => 'tidak dapat dimodifikasi',
272
+    'info_non_suppression_mot_cle' => 'Saya tidak ingin menghapus kata kunci ini.',
273
+    'info_notes' => 'Catatan kaki',
274
+    'info_nouvel_article' => 'Artikel baru',
275
+    'info_nouvelle_traduction' => 'Terjemahan baru:',
276
+    'info_numero_article' => 'NOMOR ARTIKEL:',
277
+    'info_obligatoire_02' => '[Dibutuhkan]', # MODIF
278
+    'info_option_accepter_visiteurs' => 'Izinkan registrasi pengunjung dari situs umum',
279
+    'info_option_ne_pas_accepter_visiteurs' => 'Tolak registrasi pengunjung',
280
+    'info_options_avancees' => 'OPSI-OPSI LANJUTAN',
281
+    'info_ou' => 'atau...',
282
+    'info_page_interdite' => 'Halaman terlarang',
283
+    'info_par_nom' => 'berdasarkan nama',
284
+    'info_par_nombre_article' => '(berdasarkan jumlah artikel)',
285
+    'info_par_statut' => 'berdasarkan status',
286
+    'info_par_tri' => '(Oleh @tri@)',
287
+    'info_passe_trop_court' => 'Kata sandi terlalu pendek.',
288
+    'info_passes_identiques' => 'Dua kata sandi tidak identik.',
289
+    'info_plus_cinq_car' => 'lebih dari 5 karakter',
290
+    'info_plus_cinq_car_2' => '(Lebih dari 5 karakter)',
291
+    'info_plus_trois_car' => '(Lebih dari 3 karakter)',
292
+    'info_popularite' => 'popularitas: @popularite@; kunjungan: @visites@',
293
+    'info_post_scriptum' => 'Postscript',
294
+    'info_post_scriptum_2' => 'Postscript:',
295
+    'info_pour' => 'untuk',
296
+    'info_preview_texte' => 'Ada kemungkinan melihat situs terlebih dahulu seolah-olah semua artikel dan berita (yang paling tidak memiliki status "terkirim") telah dipublikasi. Apakah mode preview ini sebaiknya dibatasi hanya kepada administrator, terbuka untuk semua penulis atau dinonaktifkan selama-lamanya?', # MODIF
297
+    'info_procedez_par_etape' => 'silakan dilanjutkan langkah demi langkah',
298
+    'info_procedure_maj_version' => 'prosedur pembaharuan hendaknya dijalankan untuk
299 299
 	mengadaptasi database degan versi terbaru SPIP.',
300
-	'info_proxy_ok' => 'Percobaan proxy berhasil.',
301
-	'info_ps' => 'P.S.',
302
-	'info_publier' => 'publikasi',
303
-	'info_publies' => 'Artikel anda dipublikasi secara online',
304
-	'info_question_accepter_visiteurs' => 'Jika templat situs anda mengizinkan pengunjung untuk mendaftar tanpa perlu memasuki area pribadi, silakan aktifkan opsi berikut:',
305
-	'info_question_inscription_nouveaux_redacteurs' => 'Apakah anda mengizinkan registrasi editor baru dari
300
+    'info_proxy_ok' => 'Percobaan proxy berhasil.',
301
+    'info_ps' => 'P.S.',
302
+    'info_publier' => 'publikasi',
303
+    'info_publies' => 'Artikel anda dipublikasi secara online',
304
+    'info_question_accepter_visiteurs' => 'Jika templat situs anda mengizinkan pengunjung untuk mendaftar tanpa perlu memasuki area pribadi, silakan aktifkan opsi berikut:',
305
+    'info_question_inscription_nouveaux_redacteurs' => 'Apakah anda mengizinkan registrasi editor baru dari
306 306
   situs yang dipublikasi? Jika anda setuju, pengunjung dapat mendaftar
307 307
   melalui formulir terotomasi, dan akan mengakses area pribadi untuk
308 308
   melihat artikel-artikel mereka. <blockquote><i>Selama proses registrasi,
@@ -311,210 +311,210 @@  discard block
 block discarded – undo
311 311
   hosting menonaktifkan pengiriman e-mail di server mereka:
312 312
   dalam hal ini ini registrasi terotomasi tidak dapat
313 313
   diimplementasikan.', # MODIF
314
-	'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', # MODIF
315
-	'info_racine_site' => 'Root situs',
316
-	'info_recharger_page' => 'Silakan buka kembali halaman ini beberapa saat lagi.',
317
-	'info_recherche_auteur_zero' => 'Tidak ada hasil untuk "@cherche_auteur@".',
318
-	'info_recommencer' => 'Silakan coba lagi.',
319
-	'info_redacteur_1' => 'Redaktur',
320
-	'info_redacteur_2' => 'memiliki akses ke area pribadi (<i>disarankan</i>)',
321
-	'info_redacteurs' => 'Editor',
322
-	'info_redaction_en_cours' => 'PENGEDITAN DALAM PROSES',
323
-	'info_redirection' => 'Pengalihan tujuan',
324
-	'info_refuses' => 'Artikel anda ditolak',
325
-	'info_reglage_ldap' => 'Pilihan: <b>Menyesuaikan impor LDAP</b>',
326
-	'info_renvoi_article' => '<b>Pengalihan tujuan.</B> Artikel ini mengarah pada halaman:',
327
-	'info_reserve_admin' => 'Hanya administrator yang dapat memodifikasi alamat ini.',
328
-	'info_restreindre_rubrique' => 'Batasi manajemen ke bagian:',
329
-	'info_resultat_recherche' => 'Hasil-hasil pencarian:',
330
-	'info_rubriques' => 'Bagian',
331
-	'info_rubriques_02' => 'bagian',
332
-	'info_rubriques_trouvees' => 'Bagian ditemukan',
333
-	'info_sans_titre' => 'Tidak berjudul',
334
-	'info_selection_chemin_acces' => '<b>Pilih</b> di bawah path akses dalam direktori:',
335
-	'info_signatures' => 'tanda tangan',
336
-	'info_site' => 'Situs',
337
-	'info_site_2' => 'situs:',
338
-	'info_site_min' => 'situs',
339
-	'info_site_reference_2' => 'Situs referensi',
340
-	'info_site_web' => 'SITUS WEB:', # MODIF
341
-	'info_sites' => 'situs',
342
-	'info_sites_lies_mot' => 'Situs-situs referensi yang terasosiasi dengan kata kunci ini',
343
-	'info_sites_proxy' => 'Menggunakan proxy',
344
-	'info_sites_trouves' => 'Situs ditemukan',
345
-	'info_sous_titre' => 'Sub judul:',
346
-	'info_statut_administrateur' => 'Administrator',
347
-	'info_statut_auteur' => 'Status penulis ini:', # MODIF
348
-	'info_statut_auteur_a_confirmer' => 'Pendaftaran yang perlu dikonfirmasi',
349
-	'info_statut_auteur_autre' => 'Status lainnya:',
350
-	'info_statut_redacteur' => 'Editor',
351
-	'info_statut_utilisateurs_1' => 'Status standar para pengguna yang diimpor',
352
-	'info_statut_utilisateurs_2' => 'Pilih status yang diberikan kepada orang-orang yang terdapat di direktori LDAP ketika terkoneksi pertama kali. Nanti anda dapat memodifikasi status tersebut untuk setiap penulis berdasarkan kasus per kasus.',
353
-	'info_suivi_activite' => 'Tindak lanjut aktivitas editorial',
354
-	'info_surtitre' => 'Judul atas:',
355
-	'info_syndication_integrale_1' => 'Situs anda menyediakan berkas-berkas sindikasi (lihat “<a href="@url@">@titre@</a>”).',
356
-	'info_syndication_integrale_2' => 'Apakah anda ingin mengirim seluruh artikel atau ringkasannya saja yang terdiri dari beberapa ratus karakter?',
357
-	'info_table_prefix' => 'Data situs ini disimpan di tabel bernama <tt><b>spip</b>_articles</tt>, <tt><b>spip</b>_rubriques</tt>, dst. Jika anda menginstal sejumlah situs dalam database yang sama, anda dapat mengubah prefiks dari nama tabel (Catatan: Gunakan hanya huruf-huruf kecil dan tidak beraksen.).',
358
-	'info_taille_maximale_vignette' => 'Ukuran maksimum gambar-gambar kecil yang dihasilkan oleh sistem:',
359
-	'info_terminer_installation' => 'Anda dapat menyelesaikan sekarang proses instalasi standar.',
360
-	'info_texte' => 'Teks',
361
-	'info_texte_explicatif' => 'Teks penjelasan',
362
-	'info_texte_long' => '(Teks terlalu panjang: akan muncul dalam beberapa bagian yang akan disusun kembali setelah validasi.)',
363
-	'info_texte_message' => 'Teks pesan anda:', # MODIF
364
-	'info_texte_message_02' => 'Teks pesan',
365
-	'info_titre' => 'Judul:',
366
-	'info_total' => 'total:',
367
-	'info_tous_articles_en_redaction' => 'Semua artikel dalam proses',
368
-	'info_tous_articles_presents' => 'Semua artikel yang dipublikasi dalam bagian ini',
369
-	'info_tous_les' => 'setiap:',
370
-	'info_tout_site' => 'Seluruh situs',
371
-	'info_tout_site2' => 'Artikel-artikel belum diterjemahkan ke dalam bahasa ini.',
372
-	'info_tout_site3' => 'Artikel telah diterjemahkan ke dalam bahasa ini, tapi sejumlah modifikasi telah dibuat untuk artikel referensi. Oleh karenanya terjemahan memerlukan pembaharuan.',
373
-	'info_tout_site4' => 'Artikel telah diterjemahkan ke dalam bahasa ini, dan ini merupakan terjemahan yang terbaru.',
374
-	'info_tout_site5' => 'Artikel asli.',
375
-	'info_tout_site6' => '<b>Peringatan:</b> hanya artikel-artikel asli yang ditampilkan.
314
+    'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', # MODIF
315
+    'info_racine_site' => 'Root situs',
316
+    'info_recharger_page' => 'Silakan buka kembali halaman ini beberapa saat lagi.',
317
+    'info_recherche_auteur_zero' => 'Tidak ada hasil untuk "@cherche_auteur@".',
318
+    'info_recommencer' => 'Silakan coba lagi.',
319
+    'info_redacteur_1' => 'Redaktur',
320
+    'info_redacteur_2' => 'memiliki akses ke area pribadi (<i>disarankan</i>)',
321
+    'info_redacteurs' => 'Editor',
322
+    'info_redaction_en_cours' => 'PENGEDITAN DALAM PROSES',
323
+    'info_redirection' => 'Pengalihan tujuan',
324
+    'info_refuses' => 'Artikel anda ditolak',
325
+    'info_reglage_ldap' => 'Pilihan: <b>Menyesuaikan impor LDAP</b>',
326
+    'info_renvoi_article' => '<b>Pengalihan tujuan.</B> Artikel ini mengarah pada halaman:',
327
+    'info_reserve_admin' => 'Hanya administrator yang dapat memodifikasi alamat ini.',
328
+    'info_restreindre_rubrique' => 'Batasi manajemen ke bagian:',
329
+    'info_resultat_recherche' => 'Hasil-hasil pencarian:',
330
+    'info_rubriques' => 'Bagian',
331
+    'info_rubriques_02' => 'bagian',
332
+    'info_rubriques_trouvees' => 'Bagian ditemukan',
333
+    'info_sans_titre' => 'Tidak berjudul',
334
+    'info_selection_chemin_acces' => '<b>Pilih</b> di bawah path akses dalam direktori:',
335
+    'info_signatures' => 'tanda tangan',
336
+    'info_site' => 'Situs',
337
+    'info_site_2' => 'situs:',
338
+    'info_site_min' => 'situs',
339
+    'info_site_reference_2' => 'Situs referensi',
340
+    'info_site_web' => 'SITUS WEB:', # MODIF
341
+    'info_sites' => 'situs',
342
+    'info_sites_lies_mot' => 'Situs-situs referensi yang terasosiasi dengan kata kunci ini',
343
+    'info_sites_proxy' => 'Menggunakan proxy',
344
+    'info_sites_trouves' => 'Situs ditemukan',
345
+    'info_sous_titre' => 'Sub judul:',
346
+    'info_statut_administrateur' => 'Administrator',
347
+    'info_statut_auteur' => 'Status penulis ini:', # MODIF
348
+    'info_statut_auteur_a_confirmer' => 'Pendaftaran yang perlu dikonfirmasi',
349
+    'info_statut_auteur_autre' => 'Status lainnya:',
350
+    'info_statut_redacteur' => 'Editor',
351
+    'info_statut_utilisateurs_1' => 'Status standar para pengguna yang diimpor',
352
+    'info_statut_utilisateurs_2' => 'Pilih status yang diberikan kepada orang-orang yang terdapat di direktori LDAP ketika terkoneksi pertama kali. Nanti anda dapat memodifikasi status tersebut untuk setiap penulis berdasarkan kasus per kasus.',
353
+    'info_suivi_activite' => 'Tindak lanjut aktivitas editorial',
354
+    'info_surtitre' => 'Judul atas:',
355
+    'info_syndication_integrale_1' => 'Situs anda menyediakan berkas-berkas sindikasi (lihat “<a href="@url@">@titre@</a>”).',
356
+    'info_syndication_integrale_2' => 'Apakah anda ingin mengirim seluruh artikel atau ringkasannya saja yang terdiri dari beberapa ratus karakter?',
357
+    'info_table_prefix' => 'Data situs ini disimpan di tabel bernama <tt><b>spip</b>_articles</tt>, <tt><b>spip</b>_rubriques</tt>, dst. Jika anda menginstal sejumlah situs dalam database yang sama, anda dapat mengubah prefiks dari nama tabel (Catatan: Gunakan hanya huruf-huruf kecil dan tidak beraksen.).',
358
+    'info_taille_maximale_vignette' => 'Ukuran maksimum gambar-gambar kecil yang dihasilkan oleh sistem:',
359
+    'info_terminer_installation' => 'Anda dapat menyelesaikan sekarang proses instalasi standar.',
360
+    'info_texte' => 'Teks',
361
+    'info_texte_explicatif' => 'Teks penjelasan',
362
+    'info_texte_long' => '(Teks terlalu panjang: akan muncul dalam beberapa bagian yang akan disusun kembali setelah validasi.)',
363
+    'info_texte_message' => 'Teks pesan anda:', # MODIF
364
+    'info_texte_message_02' => 'Teks pesan',
365
+    'info_titre' => 'Judul:',
366
+    'info_total' => 'total:',
367
+    'info_tous_articles_en_redaction' => 'Semua artikel dalam proses',
368
+    'info_tous_articles_presents' => 'Semua artikel yang dipublikasi dalam bagian ini',
369
+    'info_tous_les' => 'setiap:',
370
+    'info_tout_site' => 'Seluruh situs',
371
+    'info_tout_site2' => 'Artikel-artikel belum diterjemahkan ke dalam bahasa ini.',
372
+    'info_tout_site3' => 'Artikel telah diterjemahkan ke dalam bahasa ini, tapi sejumlah modifikasi telah dibuat untuk artikel referensi. Oleh karenanya terjemahan memerlukan pembaharuan.',
373
+    'info_tout_site4' => 'Artikel telah diterjemahkan ke dalam bahasa ini, dan ini merupakan terjemahan yang terbaru.',
374
+    'info_tout_site5' => 'Artikel asli.',
375
+    'info_tout_site6' => '<b>Peringatan:</b> hanya artikel-artikel asli yang ditampilkan.
376 376
 Terjemahan diasosiasikan dengan yang asli,
377 377
 dalam warna yang menunjukkan statusnya:',
378
-	'info_travail_colaboratif' => 'Kolaborasi kerja pada artikel',
379
-	'info_un_article' => 'sebuah artikel,',
380
-	'info_un_site' => 'sebuah situs,',
381
-	'info_une_rubrique' => 'sebuah bagian,',
382
-	'info_une_rubrique_02' => '1 bagian',
383
-	'info_url' => 'URL:',
384
-	'info_urlref' => 'Tautan web:',
385
-	'info_utilisation_spip' => 'SPIP siap untuk digunakan...',
386
-	'info_visites_par_mois' => 'Tampilan bulanan:',
387
-	'info_visiteur_1' => 'Pengunjung',
388
-	'info_visiteur_2' => 'situs umum',
389
-	'info_visiteurs' => 'Pengunjung',
390
-	'info_visiteurs_02' => 'Pengunjung situs umum',
391
-	'install_echec_annonce' => 'Instalasi ini tidak akan bekerja, atau akan menghasilkan situs yang tidak berfungsi sebagaimana mestinya...',
392
-	'install_extension_php_obligatoire' => 'SPIP membutuhkan sebuah ekstensi php:',
393
-	'install_php_version' => 'Versi PHP @version@ terlalu tua (minimum = @minimum@)',
394
-	'install_select_langue' => 'Pilih sebuah bahasa dengan mengklik tombol "selanjutnya" untuk memulasi prosedur instalasi.',
395
-	'intem_redacteur' => 'editor',
396
-	'item_accepter_inscriptions' => 'Izinkan pendaftaran',
397
-	'item_activer_messages_avertissement' => 'Aktifkan pesan-pesan peringatan',
398
-	'item_administrateur_2' => 'administrator',
399
-	'item_afficher_calendrier' => 'Tampilkan dalam kalender',
400
-	'item_autoriser_syndication_integrale' => 'Ikut sertakan semua artikel dalam berkas sindikasi',
401
-	'item_choix_administrateurs' => 'administrator',
402
-	'item_choix_generation_miniature' => 'Buat gambar-gambar kecil secara otomatis.',
403
-	'item_choix_non_generation_miniature' => 'Jangan buat gambar-gambar kecil.',
404
-	'item_choix_redacteurs' => 'editor',
405
-	'item_choix_visiteurs' => 'pengunjung situs umum',
406
-	'item_creer_fichiers_authent' => 'Buat berkas .htpasswd',
407
-	'item_login' => 'Log masuk',
408
-	'item_mots_cles_association_articles' => 'artikel',
409
-	'item_mots_cles_association_rubriques' => 'bagian',
410
-	'item_mots_cles_association_sites' => 'situs-situs referensi atau tersindikasi.',
411
-	'item_non' => 'No',
412
-	'item_non_accepter_inscriptions' => 'Jangan izinkan pendaftaran',
413
-	'item_non_activer_messages_avertissement' => 'Tidak ada pesan-pesan kesalahan',
414
-	'item_non_afficher_calendrier' => 'Jangan tampilkan dalam kalender',
415
-	'item_non_autoriser_syndication_integrale' => 'Kirim ringkasan saja',
416
-	'item_non_creer_fichiers_authent' => 'Jangan buat berkas-berkas ini',
417
-	'item_non_publier_articles' => 'Jangan publikasi artikel sebelum tanggal publikasinya.',
418
-	'item_nouvel_auteur' => 'Penulis baru',
419
-	'item_nouvelle_rubrique' => 'Bagian baru',
420
-	'item_oui' => 'Ya',
421
-	'item_publier_articles' => 'Publikasi artikel tanpa menghiraukan tanggal publikasinya.',
422
-	'item_reponse_article' => 'Balasan pada artikel',
423
-	'item_visiteur' => 'pengunjung',
378
+    'info_travail_colaboratif' => 'Kolaborasi kerja pada artikel',
379
+    'info_un_article' => 'sebuah artikel,',
380
+    'info_un_site' => 'sebuah situs,',
381
+    'info_une_rubrique' => 'sebuah bagian,',
382
+    'info_une_rubrique_02' => '1 bagian',
383
+    'info_url' => 'URL:',
384
+    'info_urlref' => 'Tautan web:',
385
+    'info_utilisation_spip' => 'SPIP siap untuk digunakan...',
386
+    'info_visites_par_mois' => 'Tampilan bulanan:',
387
+    'info_visiteur_1' => 'Pengunjung',
388
+    'info_visiteur_2' => 'situs umum',
389
+    'info_visiteurs' => 'Pengunjung',
390
+    'info_visiteurs_02' => 'Pengunjung situs umum',
391
+    'install_echec_annonce' => 'Instalasi ini tidak akan bekerja, atau akan menghasilkan situs yang tidak berfungsi sebagaimana mestinya...',
392
+    'install_extension_php_obligatoire' => 'SPIP membutuhkan sebuah ekstensi php:',
393
+    'install_php_version' => 'Versi PHP @version@ terlalu tua (minimum = @minimum@)',
394
+    'install_select_langue' => 'Pilih sebuah bahasa dengan mengklik tombol "selanjutnya" untuk memulasi prosedur instalasi.',
395
+    'intem_redacteur' => 'editor',
396
+    'item_accepter_inscriptions' => 'Izinkan pendaftaran',
397
+    'item_activer_messages_avertissement' => 'Aktifkan pesan-pesan peringatan',
398
+    'item_administrateur_2' => 'administrator',
399
+    'item_afficher_calendrier' => 'Tampilkan dalam kalender',
400
+    'item_autoriser_syndication_integrale' => 'Ikut sertakan semua artikel dalam berkas sindikasi',
401
+    'item_choix_administrateurs' => 'administrator',
402
+    'item_choix_generation_miniature' => 'Buat gambar-gambar kecil secara otomatis.',
403
+    'item_choix_non_generation_miniature' => 'Jangan buat gambar-gambar kecil.',
404
+    'item_choix_redacteurs' => 'editor',
405
+    'item_choix_visiteurs' => 'pengunjung situs umum',
406
+    'item_creer_fichiers_authent' => 'Buat berkas .htpasswd',
407
+    'item_login' => 'Log masuk',
408
+    'item_mots_cles_association_articles' => 'artikel',
409
+    'item_mots_cles_association_rubriques' => 'bagian',
410
+    'item_mots_cles_association_sites' => 'situs-situs referensi atau tersindikasi.',
411
+    'item_non' => 'No',
412
+    'item_non_accepter_inscriptions' => 'Jangan izinkan pendaftaran',
413
+    'item_non_activer_messages_avertissement' => 'Tidak ada pesan-pesan kesalahan',
414
+    'item_non_afficher_calendrier' => 'Jangan tampilkan dalam kalender',
415
+    'item_non_autoriser_syndication_integrale' => 'Kirim ringkasan saja',
416
+    'item_non_creer_fichiers_authent' => 'Jangan buat berkas-berkas ini',
417
+    'item_non_publier_articles' => 'Jangan publikasi artikel sebelum tanggal publikasinya.',
418
+    'item_nouvel_auteur' => 'Penulis baru',
419
+    'item_nouvelle_rubrique' => 'Bagian baru',
420
+    'item_oui' => 'Ya',
421
+    'item_publier_articles' => 'Publikasi artikel tanpa menghiraukan tanggal publikasinya.',
422
+    'item_reponse_article' => 'Balasan pada artikel',
423
+    'item_visiteur' => 'pengunjung',
424 424
 
425
-	// J
426
-	'jour_non_connu_nc' => 'tidak dikenal',
425
+    // J
426
+    'jour_non_connu_nc' => 'tidak dikenal',
427 427
 
428
-	// L
429
-	'lien_ajouter_auteur' => 'Tambahkan penulis ini',
430
-	'lien_email' => 'e-mail',
431
-	'lien_nom_site' => 'NAMA SITUS:',
432
-	'lien_retirer_auteur' => 'Hapus penulis',
433
-	'lien_site' => 'situs',
434
-	'lien_tout_deplier' => 'Buka semuanya',
435
-	'lien_tout_replier' => 'Tutup semuanya',
436
-	'lien_tout_supprimer' => 'Hapus semua',
437
-	'lien_trier_nom' => 'Disusun berdasarkan nama',
438
-	'lien_trier_nombre_articles' => 'Disusun berdasarkan jumlah artikel',
439
-	'lien_trier_statut' => 'Disusun berdasarkan status',
440
-	'lien_voir_en_ligne' => 'LIHAT ONLINE:',
441
-	'logo_article' => 'LOGO ARTIKEL', # MODIF
442
-	'logo_auteur' => 'LOGO PENULIS', # MODIF
443
-	'logo_rubrique' => 'LOGO BAGIAN', # MODIF
444
-	'logo_site' => 'LOGO SITUS INI', # MODIF
445
-	'logo_standard_rubrique' => 'LOGO STANDAR UNTUK BAGIAN', # MODIF
446
-	'logo_survol' => 'LOGO SAMARAN', # MODIF
428
+    // L
429
+    'lien_ajouter_auteur' => 'Tambahkan penulis ini',
430
+    'lien_email' => 'e-mail',
431
+    'lien_nom_site' => 'NAMA SITUS:',
432
+    'lien_retirer_auteur' => 'Hapus penulis',
433
+    'lien_site' => 'situs',
434
+    'lien_tout_deplier' => 'Buka semuanya',
435
+    'lien_tout_replier' => 'Tutup semuanya',
436
+    'lien_tout_supprimer' => 'Hapus semua',
437
+    'lien_trier_nom' => 'Disusun berdasarkan nama',
438
+    'lien_trier_nombre_articles' => 'Disusun berdasarkan jumlah artikel',
439
+    'lien_trier_statut' => 'Disusun berdasarkan status',
440
+    'lien_voir_en_ligne' => 'LIHAT ONLINE:',
441
+    'logo_article' => 'LOGO ARTIKEL', # MODIF
442
+    'logo_auteur' => 'LOGO PENULIS', # MODIF
443
+    'logo_rubrique' => 'LOGO BAGIAN', # MODIF
444
+    'logo_site' => 'LOGO SITUS INI', # MODIF
445
+    'logo_standard_rubrique' => 'LOGO STANDAR UNTUK BAGIAN', # MODIF
446
+    'logo_survol' => 'LOGO SAMARAN', # MODIF
447 447
 
448
-	// M
449
-	'menu_aide_installation_choix_base' => 'Pilih database anda',
450
-	'module_fichier_langue' => 'Berkas bahasa',
451
-	'module_raccourci' => 'Jalan pintas',
452
-	'module_texte_affiche' => 'Teks tampilan',
453
-	'module_texte_explicatif' => 'Anda dapat memasukkan jalan-jalan pintas berikut ke dalam templat situs anda. Mereka akan diterjemahkan secara otomatis dalam berbagai bahasa bila berkas bahasanya telah tersedia.',
454
-	'module_texte_traduction' => 'Berkas bahasa « @module@ » tersedia di:',
455
-	'mois_non_connu' => 'tidak dikenal',
448
+    // M
449
+    'menu_aide_installation_choix_base' => 'Pilih database anda',
450
+    'module_fichier_langue' => 'Berkas bahasa',
451
+    'module_raccourci' => 'Jalan pintas',
452
+    'module_texte_affiche' => 'Teks tampilan',
453
+    'module_texte_explicatif' => 'Anda dapat memasukkan jalan-jalan pintas berikut ke dalam templat situs anda. Mereka akan diterjemahkan secara otomatis dalam berbagai bahasa bila berkas bahasanya telah tersedia.',
454
+    'module_texte_traduction' => 'Berkas bahasa « @module@ » tersedia di:',
455
+    'mois_non_connu' => 'tidak dikenal',
456 456
 
457
-	// O
458
-	'onglet_repartition_actuelle' => 'sekarang',
457
+    // O
458
+    'onglet_repartition_actuelle' => 'sekarang',
459 459
 
460
-	// P
461
-	'plugin_etat_developpement' => 'dalam pengembangan',
462
-	'plugin_etat_experimental' => 'eksperimental',
463
-	'plugin_etat_stable' => 'stabil',
464
-	'plugin_etat_test' => 'sedang dites',
465
-	'plugins_liste' => 'Daftar plugin',
466
-	'protocole_ldap' => 'Versi protokol:',
460
+    // P
461
+    'plugin_etat_developpement' => 'dalam pengembangan',
462
+    'plugin_etat_experimental' => 'eksperimental',
463
+    'plugin_etat_stable' => 'stabil',
464
+    'plugin_etat_test' => 'sedang dites',
465
+    'plugins_liste' => 'Daftar plugin',
466
+    'protocole_ldap' => 'Versi protokol:',
467 467
 
468
-	// R
469
-	'repertoire_plugins' => 'Directori:',
470
-	'required' => '[Dibutuhkan]', # MODIF
468
+    // R
469
+    'repertoire_plugins' => 'Directori:',
470
+    'required' => '[Dibutuhkan]', # MODIF
471 471
 
472
-	// S
473
-	'statut_admin_restreint' => '(admin terbatas)', # MODIF
472
+    // S
473
+    'statut_admin_restreint' => '(admin terbatas)', # MODIF
474 474
 
475
-	// T
476
-	'taille_cache_image' => 'Gambar-gambar dikalkulasi secara otomatis oleh SPIP (gambar kecil, judul yang ditransformasi ke dalam grafik, formula matematika dalam format Tex, dll.) dengan jumlah keseluruhan @taille@ di direktori @dir@ .',
477
-	'taille_cache_octets' => 'Ukuran cache sekarang adalah @octets@.', # MODIF
478
-	'taille_cache_vide' => 'Cache kosong.',
479
-	'taille_repertoire_cache' => 'Ukuran cache saat ini',
480
-	'text_article_propose_publication' => 'Artikel yang dikirimkan untuk publikasi. Jangan segan-segan memberikan opini anda melalui forum yang yang terlampir di artikel ini (di bagian bawah halaman).', # MODIF
481
-	'texte_acces_ldap_anonyme_1' => 'Sejumlah server LDAP tidak mengizinkan akses anonim. Dalam hal ini anda harus memberikan satu pengidentifikasi akses awal agar bisa mencari informasi dalam direktori setelahnya. Walaupun demikian, dalam banyak kasus kolom-kolom berikut dapat dibiarkan kosong tidak terisi.',
482
-	'texte_admin_effacer_01' => 'Perintah ini menghapus <i>semua</i> isi database,
475
+    // T
476
+    'taille_cache_image' => 'Gambar-gambar dikalkulasi secara otomatis oleh SPIP (gambar kecil, judul yang ditransformasi ke dalam grafik, formula matematika dalam format Tex, dll.) dengan jumlah keseluruhan @taille@ di direktori @dir@ .',
477
+    'taille_cache_octets' => 'Ukuran cache sekarang adalah @octets@.', # MODIF
478
+    'taille_cache_vide' => 'Cache kosong.',
479
+    'taille_repertoire_cache' => 'Ukuran cache saat ini',
480
+    'text_article_propose_publication' => 'Artikel yang dikirimkan untuk publikasi. Jangan segan-segan memberikan opini anda melalui forum yang yang terlampir di artikel ini (di bagian bawah halaman).', # MODIF
481
+    'texte_acces_ldap_anonyme_1' => 'Sejumlah server LDAP tidak mengizinkan akses anonim. Dalam hal ini anda harus memberikan satu pengidentifikasi akses awal agar bisa mencari informasi dalam direktori setelahnya. Walaupun demikian, dalam banyak kasus kolom-kolom berikut dapat dibiarkan kosong tidak terisi.',
482
+    'texte_admin_effacer_01' => 'Perintah ini menghapus <i>semua</i> isi database,
483 483
 termasuk <i>semua</i> parameter akses untuk editor dan administrator. Setelah mengeksekusinya, anda sebaiknya
484 484
 menginstal kembali SPIP untuk membuat database baru dan akses administrator pertama.',
485
-	'texte_adresse_annuaire_1' => '( Jika direktori anda diinstal di mesin yang sama dengan situs web anda, kemungkinan besar ini adalah «localhost».)',
486
-	'texte_ajout_auteur' => 'Penulis berikut telah ditambahkan ke artikel:',
487
-	'texte_annuaire_ldap_1' => 'Jika anda memiliki akses ke sebuah direktori (LDAP), anda dapat menggunakannya untuk mengimpor pengguna secara otomatis di bawah SPIP.',
488
-	'texte_article_statut' => 'Status artikel:',
489
-	'texte_article_virtuel' => 'Artikel maya',
490
-	'texte_article_virtuel_reference' => '<b>Artikel maya:</b> artikel referensi di situs SPIP anda, yang dialihkan ke lain URL. Untuk menghapus pengalihan, hapuslah URL di atas.',
491
-	'texte_aucun_resultat_auteur' => 'Tidak ada hasil untuk "@cherche_auteur@".',
492
-	'texte_auteur_messagerie' => 'Situs ini dapat memonitor secara terus-menerus daftar editor-editor yang terkoneksi, yang mengizinkan anda untuk bertukar pesan secara langsung. Anda dapat memilih untuk tidak muncul dalam daftar ini (yang membuat anda kemudian, "tak terlihat" di hadapan pengguna lainnya).',
493
-	'texte_auteurs' => 'PENULIS',
494
-	'texte_choix_base_1' => 'Pilih database anda:',
495
-	'texte_choix_base_2' => 'Server SQL berisikan sejumlah database.',
496
-	'texte_choix_base_3' => '<b>Pilih</B> di bawah salah satu yang diberikan hosting anda kepada anda:',
497
-	'texte_choix_table_prefix' => 'Prefiks untuk tabel:',
498
-	'texte_compte_element' => '@count@ elemen',
499
-	'texte_compte_elements' => '@count@ elemen',
500
-	'texte_connexion_mysql' => 'Merujuk kepada informasi yang diberikan hosting anda kepada anda: mereka seharusnya memberikan anda, jika hosting anda mendukung SQL, kode koneksi ke server SQL.', # MODIF
501
-	'texte_contenu_article' => '(Isi artikel dalam beberapa kata.)',
502
-	'texte_contenu_articles' => 'Berdasarkan tampilan yang dipilih untuk situs anda, anda dapat memilih
485
+    'texte_adresse_annuaire_1' => '( Jika direktori anda diinstal di mesin yang sama dengan situs web anda, kemungkinan besar ini adalah «localhost».)',
486
+    'texte_ajout_auteur' => 'Penulis berikut telah ditambahkan ke artikel:',
487
+    'texte_annuaire_ldap_1' => 'Jika anda memiliki akses ke sebuah direktori (LDAP), anda dapat menggunakannya untuk mengimpor pengguna secara otomatis di bawah SPIP.',
488
+    'texte_article_statut' => 'Status artikel:',
489
+    'texte_article_virtuel' => 'Artikel maya',
490
+    'texte_article_virtuel_reference' => '<b>Artikel maya:</b> artikel referensi di situs SPIP anda, yang dialihkan ke lain URL. Untuk menghapus pengalihan, hapuslah URL di atas.',
491
+    'texte_aucun_resultat_auteur' => 'Tidak ada hasil untuk "@cherche_auteur@".',
492
+    'texte_auteur_messagerie' => 'Situs ini dapat memonitor secara terus-menerus daftar editor-editor yang terkoneksi, yang mengizinkan anda untuk bertukar pesan secara langsung. Anda dapat memilih untuk tidak muncul dalam daftar ini (yang membuat anda kemudian, "tak terlihat" di hadapan pengguna lainnya).',
493
+    'texte_auteurs' => 'PENULIS',
494
+    'texte_choix_base_1' => 'Pilih database anda:',
495
+    'texte_choix_base_2' => 'Server SQL berisikan sejumlah database.',
496
+    'texte_choix_base_3' => '<b>Pilih</B> di bawah salah satu yang diberikan hosting anda kepada anda:',
497
+    'texte_choix_table_prefix' => 'Prefiks untuk tabel:',
498
+    'texte_compte_element' => '@count@ elemen',
499
+    'texte_compte_elements' => '@count@ elemen',
500
+    'texte_connexion_mysql' => 'Merujuk kepada informasi yang diberikan hosting anda kepada anda: mereka seharusnya memberikan anda, jika hosting anda mendukung SQL, kode koneksi ke server SQL.', # MODIF
501
+    'texte_contenu_article' => '(Isi artikel dalam beberapa kata.)',
502
+    'texte_contenu_articles' => 'Berdasarkan tampilan yang dipilih untuk situs anda, anda dapat memilih
503 503
   sejumlah elemen artikel tidak digunakan.
504 504
   Gunakan daftar berikut untuk memilih elemen mana yang akan dipakai.',
505
-	'texte_crash_base' => 'Jika database anda
505
+    'texte_crash_base' => 'Jika database anda
506 506
 			rusak, anda dapat mencoba memperbaikinya
507 507
 			secara otomatis.',
508
-	'texte_creer_rubrique' => 'Sebelum dapat menulis artikel,<br /> anda harus membuat sebuah bagian.',
509
-	'texte_date_creation_article' => 'TANGGAL PENULISAN ARTIKEL:',
510
-	'texte_date_publication_anterieure' => 'Tanggal publikasi awal:',
511
-	'texte_date_publication_anterieure_nonaffichee' => 'Sembunyikan data publikasi awal.',
512
-	'texte_date_publication_article' => 'TANGGAL PUBLIKASI ONLINE:',
513
-	'texte_descriptif_rapide' => 'Deskripsi singkat',
514
-	'texte_effacer_base' => 'Hapus database SPIP',
515
-	'texte_en_cours_validation' => 'Artikel-artikel dan berita-berita berikut dikirim untuk publikasi. Jangan segan-segan memberikan opini anda melalui forum yang terlampir di dalamnya.', # MODIF
516
-	'texte_enrichir_mise_a_jour' => 'Anda dapat memperkaya tampilan teks anda dengan menggunakan «jalan pintas typografis».',
517
-	'texte_fichier_authent' => '<b>Haruskah SPIP membuat berkas <tt>.htpasswd</tt>
508
+    'texte_creer_rubrique' => 'Sebelum dapat menulis artikel,<br /> anda harus membuat sebuah bagian.',
509
+    'texte_date_creation_article' => 'TANGGAL PENULISAN ARTIKEL:',
510
+    'texte_date_publication_anterieure' => 'Tanggal publikasi awal:',
511
+    'texte_date_publication_anterieure_nonaffichee' => 'Sembunyikan data publikasi awal.',
512
+    'texte_date_publication_article' => 'TANGGAL PUBLIKASI ONLINE:',
513
+    'texte_descriptif_rapide' => 'Deskripsi singkat',
514
+    'texte_effacer_base' => 'Hapus database SPIP',
515
+    'texte_en_cours_validation' => 'Artikel-artikel dan berita-berita berikut dikirim untuk publikasi. Jangan segan-segan memberikan opini anda melalui forum yang terlampir di dalamnya.', # MODIF
516
+    'texte_enrichir_mise_a_jour' => 'Anda dapat memperkaya tampilan teks anda dengan menggunakan «jalan pintas typografis».',
517
+    'texte_fichier_authent' => '<b>Haruskah SPIP membuat berkas <tt>.htpasswd</tt>
518 518
   dan <tt>.htpasswd-admin</tt> dalam direktori @dossier@?</b><p>
519 519
   Berkas-berkas ini dapat digunakan untuk membatasi akses penulis
520 520
   dan administrator di bagian lain situs anda
@@ -522,43 +522,43 @@  discard block
 block discarded – undo
522 522
   Jika anda tidak memerlukan berkas-berkas tersebut, anda dapat
523 523
   membiarkannya dengan nilai standar yang diberikan (tidak ada 
524 524
   pemmbuat berkas-berkas baru).</p>', # MODIF
525
-	'texte_informations_personnelles_1' => 'Sistem akan memberikan anda sekarang akses tersendiri ke situs.',
526
-	'texte_informations_personnelles_2' => '(Catatan: jika ini adalah instalasi kembali, dan akses anda masih berlaku, anda dapat', # MODIF
527
-	'texte_introductif_article' => '(Teks Pengantar artikel.)',
528
-	'texte_jeu_caractere' => 'Anda disarankan menggunakan aksara universal (<tt>utf-8</tt>) di situs anda. Ini memungkinkan untuk menampilkan teks dalam segala bahsa. Browser modern tidak akan mengalami kesulitan dalam menangani set karakter ini.',
529
-	'texte_jeu_caractere_3' => 'Situs anda saat ini menggunakan set karakter ini:',
530
-	'texte_jeu_caractere_4' => 'Jika itu tidak berkaitan dengan situasi yang anda miliki dengan data anda (sebagai contoh, setelah pemulihan database anda dari backup), atau jika <em>anda mengkonfigurasi situs ini</em> dan berkeinginan menggunakan set karakter yang berbeda, silakan tunjukkan set karakter di sini:',
531
-	'texte_login_ldap_1' => '(Biarkan kosong untuk akses anonim atau masukkan path lengkap, sebagai contoh «<tt>uid=smith, ou=users, dc=my-domain, dc=com</tt>».)',
532
-	'texte_login_precaution' => 'Peringatan! Ini adalah log masuk yang anda gunakan untuk terkoneksi sekarang.
525
+    'texte_informations_personnelles_1' => 'Sistem akan memberikan anda sekarang akses tersendiri ke situs.',
526
+    'texte_informations_personnelles_2' => '(Catatan: jika ini adalah instalasi kembali, dan akses anda masih berlaku, anda dapat', # MODIF
527
+    'texte_introductif_article' => '(Teks Pengantar artikel.)',
528
+    'texte_jeu_caractere' => 'Anda disarankan menggunakan aksara universal (<tt>utf-8</tt>) di situs anda. Ini memungkinkan untuk menampilkan teks dalam segala bahsa. Browser modern tidak akan mengalami kesulitan dalam menangani set karakter ini.',
529
+    'texte_jeu_caractere_3' => 'Situs anda saat ini menggunakan set karakter ini:',
530
+    'texte_jeu_caractere_4' => 'Jika itu tidak berkaitan dengan situasi yang anda miliki dengan data anda (sebagai contoh, setelah pemulihan database anda dari backup), atau jika <em>anda mengkonfigurasi situs ini</em> dan berkeinginan menggunakan set karakter yang berbeda, silakan tunjukkan set karakter di sini:',
531
+    'texte_login_ldap_1' => '(Biarkan kosong untuk akses anonim atau masukkan path lengkap, sebagai contoh «<tt>uid=smith, ou=users, dc=my-domain, dc=com</tt>».)',
532
+    'texte_login_precaution' => 'Peringatan! Ini adalah log masuk yang anda gunakan untuk terkoneksi sekarang.
533 533
 	Gunakan formulir ini dengan hati-hati...',
534
-	'texte_mise_a_niveau_base_1' => 'Anda harus memperbaharui berkas-berkas SPIP.
534
+    'texte_mise_a_niveau_base_1' => 'Anda harus memperbaharui berkas-berkas SPIP.
535 535
 	Sekarang anda harus memperbaharui database situs.',
536
-	'texte_modifier_article' => 'Modifikasi artikel:',
537
-	'texte_multilinguisme' => 'Jika anda ingin mengelola artikel-artikel dalam beberapa bahasa, dengan navigasi yang kompleks, anda dapat menambah sebuah menu pemilih bahasa di artikel dan/atau bagian, sesuai dengan organisasi dari situs anda.', # MODIF
538
-	'texte_multilinguisme_trad' => 'Selain itu, anda juga dapat mengaktifkan sistem manajemen tautan di antara terjemahan yang berbeda dari sebuah artikel.', # MODIF
539
-	'texte_non_compresse' => '<i>tidak dikompresi</i> (server anda tidak mendukung fitur ini)',
540
-	'texte_nouvelle_version_spip_1' => 'Anda baru saja menginstal versi terbaru SPIP.',
541
-	'texte_nouvelle_version_spip_2' => 'Versi terbaru ini membutuhkan pembaharuan secara menyeluruh daripada biasanya. Jika anda adalah webmaster situs ini, silakan hapus berkas @connect@ dan jalankan kembali instalasi untuk memperbaharui paramater-parameter koneksi database anda. <p>(Catatan: Jika anda lupa paramater-parameter koneksi database anda, silakan lihat berkas @connect@ sebelum menghapusnya!)</p>', # MODIF
542
-	'texte_operation_echec' => 'Kembali ke halaman sebelumnya, pilih database lain atau buat yang baru. Verifikasi informasi yang diberikan oleh hosting anda.',
543
-	'texte_plus_trois_car' => 'lebih dari 3 karakter',
544
-	'texte_plusieurs_articles' => 'Sejumla penulis ditemukan untuk "@cherche_auteur@":',
545
-	'texte_port_annuaire' => '(Nilai standar dipakai pada umumnya.)',
546
-	'texte_presente_plugin' => 'Halaman ini menampilkan daftar plugin yang tersedia di situs. Aktifkan plugin yang anda butuhkan dengan memberi tanda di kotak yang bersangkutan.',
547
-	'texte_proposer_publication' => 'Ketika artikel anda selesai ditulis,<br /> anda dapat mengirimkannya untuk publikasi.',
548
-	'texte_proxy' => 'Dalam beberapa kasus (intranet, jaringan pribadi...),
536
+    'texte_modifier_article' => 'Modifikasi artikel:',
537
+    'texte_multilinguisme' => 'Jika anda ingin mengelola artikel-artikel dalam beberapa bahasa, dengan navigasi yang kompleks, anda dapat menambah sebuah menu pemilih bahasa di artikel dan/atau bagian, sesuai dengan organisasi dari situs anda.', # MODIF
538
+    'texte_multilinguisme_trad' => 'Selain itu, anda juga dapat mengaktifkan sistem manajemen tautan di antara terjemahan yang berbeda dari sebuah artikel.', # MODIF
539
+    'texte_non_compresse' => '<i>tidak dikompresi</i> (server anda tidak mendukung fitur ini)',
540
+    'texte_nouvelle_version_spip_1' => 'Anda baru saja menginstal versi terbaru SPIP.',
541
+    'texte_nouvelle_version_spip_2' => 'Versi terbaru ini membutuhkan pembaharuan secara menyeluruh daripada biasanya. Jika anda adalah webmaster situs ini, silakan hapus berkas @connect@ dan jalankan kembali instalasi untuk memperbaharui paramater-parameter koneksi database anda. <p>(Catatan: Jika anda lupa paramater-parameter koneksi database anda, silakan lihat berkas @connect@ sebelum menghapusnya!)</p>', # MODIF
542
+    'texte_operation_echec' => 'Kembali ke halaman sebelumnya, pilih database lain atau buat yang baru. Verifikasi informasi yang diberikan oleh hosting anda.',
543
+    'texte_plus_trois_car' => 'lebih dari 3 karakter',
544
+    'texte_plusieurs_articles' => 'Sejumla penulis ditemukan untuk "@cherche_auteur@":',
545
+    'texte_port_annuaire' => '(Nilai standar dipakai pada umumnya.)',
546
+    'texte_presente_plugin' => 'Halaman ini menampilkan daftar plugin yang tersedia di situs. Aktifkan plugin yang anda butuhkan dengan memberi tanda di kotak yang bersangkutan.',
547
+    'texte_proposer_publication' => 'Ketika artikel anda selesai ditulis,<br /> anda dapat mengirimkannya untuk publikasi.',
548
+    'texte_proxy' => 'Dalam beberapa kasus (intranet, jaringan pribadi...),
549 549
 		<i>proxy HTTP</i> perlu digunakan untuk menjangkau situs-situs tersindikasi.
550 550
 		Kalau memang ada proxy, masukkan alamat di bawah,
551 551
 		<tt><html>http://proxy:8080</html></tt>. Pada umumnya,
552 552
 		anda akan membiarkan kotak ini kosong.',
553
-	'texte_publication_articles_post_dates' => 'Perilaku apa SPIP seharusnya terapkan berkaitan dengan artikel-artikel
553
+    'texte_publication_articles_post_dates' => 'Perilaku apa SPIP seharusnya terapkan berkaitan dengan artikel-artikel
554 554
 		yang publikasinya diset untuk
555 555
 		sebuah tanggal di masa depan?',
556
-	'texte_rappel_selection_champs' => '[Ingat untuk memilih kolom ini dengan benar.]',
557
-	'texte_recalcul_page' => 'Jika anda hanya ingin
556
+    'texte_rappel_selection_champs' => '[Ingat untuk memilih kolom ini dengan benar.]',
557
+    'texte_recalcul_page' => 'Jika anda hanya ingin
558 558
 memperbaharui satu halaman, anda sebaiknya melakukannya dari area umum dan gunakan tombol « perbaharui ».',
559
-	'texte_recuperer_base' => 'Perbaiki database',
560
-	'texte_reference_mais_redirige' => 'artikel referensi di situs SPIP anda, tapi mengarah ke URL lain.',
561
-	'texte_requetes_echouent' => '<b>Wetika sejumlah query SQL gagal
559
+    'texte_recuperer_base' => 'Perbaiki database',
560
+    'texte_reference_mais_redirige' => 'artikel referensi di situs SPIP anda, tapi mengarah ke URL lain.',
561
+    'texte_requetes_echouent' => '<b>Wetika sejumlah query SQL gagal
562 562
   secara sistematis dan tanpa alasan yang jelas, bisa jadi
563 563
   permasalahannya adalah database itu sendiri.</b><p>
564 564
   SQL memiliki fitur yang dapat memperbaiki tabel-tabelnya
@@ -567,7 +567,7 @@  discard block
 block discarded – undo
567 567
   jika gagal, anda sebaiknya menyimpan salinan dari tampilan
568 568
   yang mungkin dapat dijadikan petunjuk apa yang salah...</p><p>
569 569
   Jika permasalahan ini msih berlanjut, hubungi hosting anda.</p>', # MODIF
570
-	'texte_selection_langue_principale' => 'Anda dapat memilih di bawah "bahasa utama" situs. Untungnya, pilihan ini tidak membatasi anda menulis artikel dalam bahasa yang dipilih, tapi mengizinkan anda untuk menentukan
570
+    'texte_selection_langue_principale' => 'Anda dapat memilih di bawah "bahasa utama" situs. Untungnya, pilihan ini tidak membatasi anda menulis artikel dalam bahasa yang dipilih, tapi mengizinkan anda untuk menentukan
571 571
 
572 572
 <ul><li> format tanggal standar di situs umum</li>
573 573
 
@@ -576,67 +576,67 @@  discard block
 block discarded – undo
576 576
 <li> bahasa yang digunakan di formulir-formulir situs umum</li>
577 577
 
578 578
 <li> bahasa standar yang ditampilkan di area pribadi.</li></ul>',
579
-	'texte_sous_titre' => 'Sub judul',
580
-	'texte_statistiques_visites' => '(balok gelap:  Minggu / kurva gelap: tingkat rata-rata)',
581
-	'texte_statut_attente_validation' => 'validasi yang tertunda',
582
-	'texte_statut_publies' => 'dipublikasi online',
583
-	'texte_statut_refuses' => 'ditolak',
584
-	'texte_suppression_fichiers' => 'Gunakan perintah ini untuk menghapus semua berkas
579
+    'texte_sous_titre' => 'Sub judul',
580
+    'texte_statistiques_visites' => '(balok gelap:  Minggu / kurva gelap: tingkat rata-rata)',
581
+    'texte_statut_attente_validation' => 'validasi yang tertunda',
582
+    'texte_statut_publies' => 'dipublikasi online',
583
+    'texte_statut_refuses' => 'ditolak',
584
+    'texte_suppression_fichiers' => 'Gunakan perintah ini untuk menghapus semua berkas
585 585
 dalam cache SPIP. Ini mengizinkan anda, antara lain, untuk memaksa semua halaman diperbaharui jika
586 586
 anda memasukkan modifikasi yang penting di grafik atau struktur situs.',
587
-	'texte_sur_titre' => 'Judul atas',
588
-	'texte_table_ok' => ': tabel ini OK.',
589
-	'texte_tentative_recuperation' => 'Usaha perbaikan',
590
-	'texte_tenter_reparation' => 'Usaha untuk memperbaiki database.',
591
-	'texte_test_proxy' => 'Untuk mencoba proxy ini, masukkan alamat sebuah situs web di sini
587
+    'texte_sur_titre' => 'Judul atas',
588
+    'texte_table_ok' => ': tabel ini OK.',
589
+    'texte_tentative_recuperation' => 'Usaha perbaikan',
590
+    'texte_tenter_reparation' => 'Usaha untuk memperbaiki database.',
591
+    'texte_test_proxy' => 'Untuk mencoba proxy ini, masukkan alamat sebuah situs web di sini
592 592
 				yang ingin anda tes.',
593
-	'texte_titre_02' => 'Subyek:',
594
-	'texte_titre_obligatoire' => '<b>Judul</b> [Dibutuhkan]',
595
-	'texte_travail_article' => '@nom_auteur_modif@ telah bekerja di artikel ini @date_diff@ menit yang lalu',
596
-	'texte_travail_collaboratif' => 'Jika beberapa editor sering bekerja sama dalam artikel yang sama, sistem dapat menandai artikel-artikel yang saat itu sedang «dibuka» guna menghindari konflik saat diedit.
593
+    'texte_titre_02' => 'Subyek:',
594
+    'texte_titre_obligatoire' => '<b>Judul</b> [Dibutuhkan]',
595
+    'texte_travail_article' => '@nom_auteur_modif@ telah bekerja di artikel ini @date_diff@ menit yang lalu',
596
+    'texte_travail_collaboratif' => 'Jika beberapa editor sering bekerja sama dalam artikel yang sama, sistem dapat menandai artikel-artikel yang saat itu sedang «dibuka» guna menghindari konflik saat diedit.
597 597
   Opsi ini dinonaktifkan secara standar untuk menghindri pesan-pesan peringatan yang tidak perlu.',
598
-	'texte_vide' => 'kosong',
599
-	'texte_vider_cache' => 'Kosongkan cache',
600
-	'titre_admin_tech' => 'Pemeliharaan teknis',
601
-	'titre_admin_vider' => 'Pemeliharaan teknis',
602
-	'titre_cadre_afficher_article' => 'Tampilkan artikel:',
603
-	'titre_cadre_afficher_traductions' => 'Tampikan status terjemahan dari bahasa-bahasa berikut:',
604
-	'titre_cadre_ajouter_auteur' => 'TAMBAH SEORANG PENULIS:',
605
-	'titre_cadre_interieur_rubrique' => 'Dalam bagian',
606
-	'titre_cadre_numero_auteur' => 'NOMOR PENULIS',
607
-	'titre_cadre_signature_obligatoire' => '<b>Tanda tangan</b> [Dibutuhkan]<br />',
608
-	'titre_config_fonctions' => 'Konfigurasi situs',
609
-	'titre_configuration' => 'Konfigurasi situs',
610
-	'titre_connexion_ldap' => 'Opsi: <b>Koneksi LDAP anda</b>',
611
-	'titre_groupe_mots' => 'KELOMPOK KATA KUNCI:',
612
-	'titre_langue_article' => 'BAHASA ARTIKEL', # MODIF
613
-	'titre_langue_rubrique' => 'BAHASA BAGIAN', # MODIF
614
-	'titre_langue_trad_article' => 'BAHASA ARTIKEL DAN TERJEMAHAN',
615
-	'titre_les_articles' => 'ARTIKEL',
616
-	'titre_naviguer_dans_le_site' => 'Jelajah situs...',
617
-	'titre_nouvelle_rubrique' => 'Bagian baru',
618
-	'titre_numero_rubrique' => 'NOMOR BAGIAN:',
619
-	'titre_page_articles_edit' => 'Modifikasi: @titre@',
620
-	'titre_page_articles_page' => 'Artikel',
621
-	'titre_page_articles_tous' => 'Seluruh situs',
622
-	'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
623
-	'titre_page_config_contenu' => 'Konfigurasi situs',
624
-	'titre_page_delete_all' => 'penghapusan menyeluruh dan tidak dapat dikembalikan lagi',
625
-	'titre_page_recherche' => 'Hasil pencarian @recherche@',
626
-	'titre_page_statistiques_referers' => 'Statistik (tautan masuk)',
627
-	'titre_page_upgrade' => 'Pembaharuan SPIP',
628
-	'titre_publication_articles_post_dates' => 'Publikasi artikel terjadwal',
629
-	'titre_reparation' => 'Perbaikan',
630
-	'titre_suivi_petition' => 'Tindak lanjut petisi',
631
-	'tls_ldap' => 'Pengamanan layer transportasi:',
632
-	'trad_article_traduction' => 'Semua versi artikel ini:',
633
-	'trad_delier' => 'Berhenti menautkan artikel ini ke terjemahannya', # MODIF
634
-	'trad_lier' => 'Artikel ini adalah terjemahan dari artikel nomor:',
635
-	'trad_new' => 'Tulis terjemahan baru untuk artikel ini', # MODIF
598
+    'texte_vide' => 'kosong',
599
+    'texte_vider_cache' => 'Kosongkan cache',
600
+    'titre_admin_tech' => 'Pemeliharaan teknis',
601
+    'titre_admin_vider' => 'Pemeliharaan teknis',
602
+    'titre_cadre_afficher_article' => 'Tampilkan artikel:',
603
+    'titre_cadre_afficher_traductions' => 'Tampikan status terjemahan dari bahasa-bahasa berikut:',
604
+    'titre_cadre_ajouter_auteur' => 'TAMBAH SEORANG PENULIS:',
605
+    'titre_cadre_interieur_rubrique' => 'Dalam bagian',
606
+    'titre_cadre_numero_auteur' => 'NOMOR PENULIS',
607
+    'titre_cadre_signature_obligatoire' => '<b>Tanda tangan</b> [Dibutuhkan]<br />',
608
+    'titre_config_fonctions' => 'Konfigurasi situs',
609
+    'titre_configuration' => 'Konfigurasi situs',
610
+    'titre_connexion_ldap' => 'Opsi: <b>Koneksi LDAP anda</b>',
611
+    'titre_groupe_mots' => 'KELOMPOK KATA KUNCI:',
612
+    'titre_langue_article' => 'BAHASA ARTIKEL', # MODIF
613
+    'titre_langue_rubrique' => 'BAHASA BAGIAN', # MODIF
614
+    'titre_langue_trad_article' => 'BAHASA ARTIKEL DAN TERJEMAHAN',
615
+    'titre_les_articles' => 'ARTIKEL',
616
+    'titre_naviguer_dans_le_site' => 'Jelajah situs...',
617
+    'titre_nouvelle_rubrique' => 'Bagian baru',
618
+    'titre_numero_rubrique' => 'NOMOR BAGIAN:',
619
+    'titre_page_articles_edit' => 'Modifikasi: @titre@',
620
+    'titre_page_articles_page' => 'Artikel',
621
+    'titre_page_articles_tous' => 'Seluruh situs',
622
+    'titre_page_calendrier' => 'Kalender @nom_mois@ @annee@',
623
+    'titre_page_config_contenu' => 'Konfigurasi situs',
624
+    'titre_page_delete_all' => 'penghapusan menyeluruh dan tidak dapat dikembalikan lagi',
625
+    'titre_page_recherche' => 'Hasil pencarian @recherche@',
626
+    'titre_page_statistiques_referers' => 'Statistik (tautan masuk)',
627
+    'titre_page_upgrade' => 'Pembaharuan SPIP',
628
+    'titre_publication_articles_post_dates' => 'Publikasi artikel terjadwal',
629
+    'titre_reparation' => 'Perbaikan',
630
+    'titre_suivi_petition' => 'Tindak lanjut petisi',
631
+    'tls_ldap' => 'Pengamanan layer transportasi:',
632
+    'trad_article_traduction' => 'Semua versi artikel ini:',
633
+    'trad_delier' => 'Berhenti menautkan artikel ini ke terjemahannya', # MODIF
634
+    'trad_lier' => 'Artikel ini adalah terjemahan dari artikel nomor:',
635
+    'trad_new' => 'Tulis terjemahan baru untuk artikel ini', # MODIF
636 636
 
637
-	// U
638
-	'utf8_convert_erreur_orig' => 'Kesalahan: set karakter @charset@ tidak didukung.',
637
+    // U
638
+    'utf8_convert_erreur_orig' => 'Kesalahan: set karakter @charset@ tidak didukung.',
639 639
 
640
-	// V
641
-	'version' => 'Versi:',
640
+    // V
641
+    'version' => 'Versi:',
642 642
 ];
Please login to merge, or discard this patch.
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/utils.php 3 patches
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -368,8 +368,7 @@  discard block
 block discarded – undo
368 368
 	}
369 369
 	if (!isset($regs[2])) {
370 370
 		$niveau = _LOG_INFO;
371
-	}
372
-	else {
371
+	} else {
373 372
 		$niveau = intval($regs[2]);
374 373
 	}
375 374
 
@@ -1490,8 +1489,7 @@  discard block
 block discarded – undo
1490 1489
 	) {
1491 1490
 		if (($fsize = substr($f, 0, -6) . $m[1] . '.svg') && file_exists($fsize)) {
1492 1491
 			return $themefiles["$subdir$file"] = $fsize;
1493
-		}
1494
-		else {
1492
+		} else {
1495 1493
 			return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1496 1494
 		}
1497 1495
 	}
Please login to merge, or discard this patch.
Spacing   +127 added lines, -128 removed lines patch added patch discarded remove patch
@@ -52,12 +52,12 @@  discard block
 block discarded – undo
52 52
 	if (strlen($dossier) && !str_ends_with($dossier, '/')) {
53 53
 		$dossier .= '/';
54 54
 	}
55
-	$f = str_replace('/', '_', $dossier) . $nom;
55
+	$f = str_replace('/', '_', $dossier).$nom;
56 56
 
57 57
 	if (function_exists($f)) {
58 58
 		return $f;
59 59
 	}
60
-	if (function_exists($g = $f . '_dist')) {
60
+	if (function_exists($g = $f.'_dist')) {
61 61
 		return $g;
62 62
 	}
63 63
 
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
 	// passer en minuscules (cf les balises de formulaires)
79 79
 	// et inclure le fichier
80 80
 	if (
81
-		!($inc = include_spip($dossier . ($d = strtolower($nom))))
81
+		!($inc = include_spip($dossier.($d = strtolower($nom))))
82 82
 		&& strlen(dirname($dossier))
83 83
 		&& dirname($dossier) != '.'
84 84
 	) {
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
 	}
97 97
 
98 98
 	// Echec : message d'erreur
99
-	spip_log("fonction $nom ($f ou $g) indisponible" .
99
+	spip_log("fonction $nom ($f ou $g) indisponible".
100 100
 		($inc ? '' : " (fichier $d absent de $dossier)"));
101 101
 
102 102
 	include_spip('inc/minipres');
@@ -104,12 +104,12 @@  discard block
 block discarded – undo
104 104
 	echo minipres(
105 105
 		_T('forum_titre_erreur'),
106 106
 		$inc ?
107
-			_T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($f) . '</code>'])
107
+			_T('fonction_introuvable', ['fonction' => '<code>'.spip_htmlentities($f).'</code>'])
108 108
 			. '<br />'
109
-			. _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($g) . '</code>'])
109
+			. _T('fonction_introuvable', ['fonction' => '<code>'.spip_htmlentities($g).'</code>'])
110 110
 			:
111
-			_T('fichier_introuvable', ['fichier' => '<code>' . spip_htmlentities($d) . '</code>']),
112
-		['all_inline' => true,'status' => 404]
111
+			_T('fichier_introuvable', ['fichier' => '<code>'.spip_htmlentities($d).'</code>']),
112
+		['all_inline' => true, 'status' => 404]
113 113
 	);
114 114
 	exit;
115 115
 }
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
  *     - string : chemin du fichier trouvé
156 156
  **/
157 157
 function include_spip($f, $include = true) {
158
-	return find_in_path($f . '.php', '', $include);
158
+	return find_in_path($f.'.php', '', $include);
159 159
 }
160 160
 
161 161
 /**
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
  *     - string : chemin du fichier trouvé
176 176
  **/
177 177
 function require_spip($f) {
178
-	return find_in_path($f . '.php', '', 'required');
178
+	return find_in_path($f.'.php', '', 'required');
179 179
 }
180 180
 
181 181
 
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 		// donc il faut l'inclure "en globals"
193 193
 		if ($f = find_in_path('mes_fonctions.php')) {
194 194
 			global $dossier_squelettes;
195
-			include_once(_ROOT_CWD . $f);
195
+			include_once(_ROOT_CWD.$f);
196 196
 		}
197 197
 
198 198
 		if (@is_readable(_CACHE_PLUGINS_FCT)) {
@@ -297,7 +297,7 @@  discard block
 block discarded – undo
297 297
 	}
298 298
 
299 299
 	// appliquer notre fonction si elle existe
300
-	$fonc = 'execute_pipeline_' . strtolower($action);
300
+	$fonc = 'execute_pipeline_'.strtolower($action);
301 301
 	if (function_exists($fonc)) {
302 302
 		$val = $fonc($val);
303 303
 	} // plantage ?
@@ -362,7 +362,7 @@  discard block
 block discarded – undo
362 362
 function spip_log($message = null, $name = null) {
363 363
 	static $pre = [];
364 364
 	static $log;
365
-	preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string)$name, $regs);
365
+	preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string) $name, $regs);
366 366
 	if (!isset($regs[1]) || !$logname = $regs[1]) {
367 367
 		$logname = null;
368 368
 	}
@@ -390,7 +390,7 @@  discard block
 block discarded – undo
390 390
 		if (!is_string($message)) {
391 391
 			$message = print_r($message, true);
392 392
 		}
393
-		$log($pre[$niveau] . ' ' . $message, $logname);
393
+		$log($pre[$niveau].' '.$message, $logname);
394 394
 	}
395 395
 }
396 396
 
@@ -597,7 +597,7 @@  discard block
 block discarded – undo
597 597
 	foreach ($regexp as $r => $e) {
598 598
 		$regexp[$r] = str_replace('[]', '\[\]', preg_replace(',[^\w\d\[\]-],', '', $e));
599 599
 	}
600
-	$regexp = ',^(' . implode('|', $regexp) . '[[]?[]]?)(=.*)?$,';
600
+	$regexp = ',^('.implode('|', $regexp).'[[]?[]]?)(=.*)?$,';
601 601
 	$ajouts = array_flip(explode('|', $c));
602 602
 	$u = is_array($v) ? $v : rawurlencode((string) $v);
603 603
 	$testv = (is_array($v) ? count($v) : strlen((string) $v));
@@ -624,7 +624,7 @@  discard block
 block discarded – undo
624 624
 			// Ajout. Pour une variable, remplacer au meme endroit,
625 625
 			// pour un tableau ce sera fait dans la prochaine boucle
626 626
 			elseif (!str_ends_with($r[1], '[]')) {
627
-				$url[$n] = $r[1] . '=' . $u;
627
+				$url[$n] = $r[1].'='.$u;
628 628
 				unset($ajouts[$r[1]]);
629 629
 			}
630 630
 			// Pour les tableaux on laisse tomber les valeurs de
@@ -645,11 +645,11 @@  discard block
 block discarded – undo
645 645
 	} elseif ($testv) {
646 646
 		foreach ($ajouts as $k => $n) {
647 647
 			if (!is_array($v)) {
648
-				$url[] = $k . '=' . $u;
648
+				$url[] = $k.'='.$u;
649 649
 			} else {
650
-				$id = (str_ends_with($k, '[]')) ? $k : ($k . '[]');
650
+				$id = (str_ends_with($k, '[]')) ? $k : ($k.'[]');
651 651
 				foreach ($v as $w) {
652
-					$url[] = $id . '=' . (is_array($w) ? 'Array' : rawurlencode($w));
652
+					$url[] = $id.'='.(is_array($w) ? 'Array' : rawurlencode($w));
653 653
 				}
654 654
 			}
655 655
 		}
@@ -660,10 +660,10 @@  discard block
 block discarded – undo
660 660
 
661 661
 	// recomposer l'adresse
662 662
 	if ($url) {
663
-		$a .= '?' . join($sep, $url);
663
+		$a .= '?'.join($sep, $url);
664 664
 	}
665 665
 
666
-	return $a . $ancre;
666
+	return $a.$ancre;
667 667
 }
668 668
 
669 669
 /**
@@ -693,7 +693,7 @@  discard block
 block discarded – undo
693 693
 			translitteration($ancre)
694 694
 		);
695 695
 	}
696
-	return $url . (strlen($ancre) ? '#' . $ancre : '');
696
+	return $url.(strlen($ancre) ? '#'.$ancre : '');
697 697
 }
698 698
 
699 699
 /**
@@ -738,7 +738,7 @@  discard block
 block discarded – undo
738 738
 			if (str_starts_with($var, '^')) {
739 739
 				$var = substr($var, 1);
740 740
 			} else {
741
-				$var = '[^=&]*' . $var;
741
+				$var = '[^=&]*'.$var;
742 742
 			}
743 743
 			if (str_ends_with($var, '$')) {
744 744
 				$var = substr($var, 0, -1);
@@ -746,7 +746,7 @@  discard block
 block discarded – undo
746 746
 				$var .= '[^=&]*';
747 747
 			}
748 748
 		}
749
-		$preg_nettoyer = ',([?&])(' . implode('|', $preg_nettoyer_vars) . ')=[^&]*(&|$),i';
749
+		$preg_nettoyer = ',([?&])('.implode('|', $preg_nettoyer_vars).')=[^&]*(&|$),i';
750 750
 	}
751 751
 	if (empty($request_uri)) {
752 752
 		return $request_uri;
@@ -833,7 +833,7 @@  discard block
 block discarded – undo
833 833
  * @return bool
834 834
  */
835 835
 function test_plugin_actif($plugin) {
836
-	return ($plugin && defined('_DIR_PLUGIN_' . strtoupper($plugin))) ? true : false;
836
+	return ($plugin && defined('_DIR_PLUGIN_'.strtoupper($plugin))) ? true : false;
837 837
 }
838 838
 
839 839
 /**
@@ -965,7 +965,7 @@  discard block
 block discarded – undo
965 965
 					$value = interdire_scripts($value, -1);
966 966
 				}
967 967
 				if (!empty($options['class'])) {
968
-					$value = "<span class='" . $options['class'] . "'>$value</span>";
968
+					$value = "<span class='".$options['class']."'>$value</span>";
969 969
 				}
970 970
 				$text = str_replace("@$name@", (string) $value, (string) $text);
971 971
 				unset($args[$name]);
@@ -974,7 +974,7 @@  discard block
 block discarded – undo
974 974
 		// Si des variables n'ont pas ete inserees, le signaler
975 975
 		// (chaines de langues pas a jour)
976 976
 		if ($args) {
977
-			spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)), _LOG_DEBUG);
977
+			spip_log("$f:  variables inutilisees ".join(', ', array_keys($args)), _LOG_DEBUG);
978 978
 		}
979 979
 	}
980 980
 
@@ -998,7 +998,7 @@  discard block
 block discarded – undo
998 998
 function joli_repertoire($rep) {
999 999
 	$a = substr($rep, 0, 1);
1000 1000
 	if ($a <> '.' && $a <> '/') {
1001
-		$rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS) . $rep;
1001
+		$rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS).$rep;
1002 1002
 	}
1003 1003
 	$rep = preg_replace(',(^\.\.\/),', '', $rep);
1004 1004
 
@@ -1052,7 +1052,7 @@  discard block
 block discarded – undo
1052 1052
 			$p -= ($x * 1000);
1053 1053
 		}
1054 1054
 
1055
-		return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1055
+		return $s.sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1056 1056
 	}
1057 1057
 }
1058 1058
 
@@ -1119,7 +1119,7 @@  discard block
 block discarded – undo
1119 1119
 	if ($taches && count($taches) && !spip_connect()) {
1120 1120
 		return false;
1121 1121
 	}
1122
-	spip_log('cron !', 'jq' . _LOG_DEBUG);
1122
+	spip_log('cron !', 'jq'._LOG_DEBUG);
1123 1123
 	if ($genie = charger_fonction('genie', 'inc', true)) {
1124 1124
 		return $genie($taches);
1125 1125
 	}
@@ -1222,7 +1222,7 @@  discard block
 block discarded – undo
1222 1222
 
1223 1223
 	if ($queue_next_job_time == -1) {
1224 1224
 		if (!defined('_JQ_NEXT_JOB_TIME_FILENAME')) {
1225
-			define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP . 'job_queue_next.txt');
1225
+			define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP.'job_queue_next.txt');
1226 1226
 		}
1227 1227
 		// utiliser un cache memoire si dispo
1228 1228
 		if (function_exists('cache_get') && defined('_MEMOIZE_MEMORY') && _MEMOIZE_MEMORY) {
@@ -1292,8 +1292,8 @@  discard block
 block discarded – undo
1292 1292
 		$src = '';
1293 1293
 	}
1294 1294
 	if ($script) {
1295
-		$script = ("/*<![CDATA[*/\n" .
1296
-			preg_replace(',</([^>]*)>,', '<\/\1>', $script) .
1295
+		$script = ("/*<![CDATA[*/\n".
1296
+			preg_replace(',</([^>]*)>,', '<\/\1>', $script).
1297 1297
 			'/*]]>*/');
1298 1298
 	}
1299 1299
 	if ($noscript) {
@@ -1382,13 +1382,13 @@  discard block
 block discarded – undo
1382 1382
 	if ($path_base == null) {
1383 1383
 		// Chemin standard depuis l'espace public
1384 1384
 		$path = defined('_SPIP_PATH') ? _SPIP_PATH :
1385
-			_DIR_RACINE . ':' .
1386
-			_DIR_RACINE . 'squelettes-dist/:' .
1387
-			_DIR_RACINE . 'prive/:' .
1385
+			_DIR_RACINE.':'.
1386
+			_DIR_RACINE.'squelettes-dist/:'.
1387
+			_DIR_RACINE.'prive/:'.
1388 1388
 			_DIR_RESTREINT;
1389 1389
 		// Ajouter squelettes/
1390
-		if (@is_dir(_DIR_RACINE . 'squelettes')) {
1391
-			$path = _DIR_RACINE . 'squelettes/:' . $path;
1390
+		if (@is_dir(_DIR_RACINE.'squelettes')) {
1391
+			$path = _DIR_RACINE.'squelettes/:'.$path;
1392 1392
 		}
1393 1393
 		foreach (explode(':', $path) as $dir) {
1394 1394
 			if (strlen($dir) && !str_ends_with($dir, '/')) {
@@ -1400,7 +1400,7 @@  discard block
 block discarded – undo
1400 1400
 		// Et le(s) dossier(s) des squelettes nommes
1401 1401
 		if (strlen($GLOBALS['dossier_squelettes'])) {
1402 1402
 			foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1403
-				array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
1403
+				array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE).$d.'/');
1404 1404
 			}
1405 1405
 		}
1406 1406
 		$GLOBALS['path_sig'] = md5(serialize($path_full));
@@ -1411,7 +1411,7 @@  discard block
 block discarded – undo
1411 1411
 
1412 1412
 	if (is_array($dir_path) || strlen($dir_path)) {
1413 1413
 		$tete = '';
1414
-		if (reset($path_base) == _DIR_RACINE . 'squelettes/') {
1414
+		if (reset($path_base) == _DIR_RACINE.'squelettes/') {
1415 1415
 			$tete = array_shift($path_base);
1416 1416
 		}
1417 1417
 		$dirs = (is_array($dir_path) ? $dir_path : explode(':', $dir_path));
@@ -1432,7 +1432,7 @@  discard block
 block discarded – undo
1432 1432
 	// Et le(s) dossier(s) des squelettes nommes
1433 1433
 	if (strlen($GLOBALS['dossier_squelettes'])) {
1434 1434
 		foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1435
-			array_unshift($path_full, ((isset($d[0]) && $d[0] == '/') ? '' : _DIR_RACINE) . $d . '/');
1435
+			array_unshift($path_full, ((isset($d[0]) && $d[0] == '/') ? '' : _DIR_RACINE).$d.'/');
1436 1436
 		}
1437 1437
 	}
1438 1438
 
@@ -1508,14 +1508,14 @@  discard block
 block discarded – undo
1508 1508
 	// si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png
1509 1509
 	if (
1510 1510
 		preg_match(',-(\d+)[.](png|gif|svg)$,', $file, $m)
1511
-		&& ($file_svg_generique = substr($file, 0, -strlen($m[0])) . '-xx.svg')
1511
+		&& ($file_svg_generique = substr($file, 0, -strlen($m[0])).'-xx.svg')
1512 1512
 		&& ($f = find_in_theme("$file_svg_generique"))
1513 1513
 	) {
1514
-		if (($fsize = substr($f, 0, -6) . $m[1] . '.svg') && file_exists($fsize)) {
1514
+		if (($fsize = substr($f, 0, -6).$m[1].'.svg') && file_exists($fsize)) {
1515 1515
 			return $themefiles["$subdir$file"] = $fsize;
1516 1516
 		}
1517 1517
 		else {
1518
-			return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1518
+			return $themefiles["$subdir$file"] = "$f?".$m[1].'px';
1519 1519
 		}
1520 1520
 	}
1521 1521
 
@@ -1525,7 +1525,7 @@  discard block
 block discarded – undo
1525 1525
 			return $themefiles["$subdir$file"] = $f;
1526 1526
 		}
1527 1527
 	}
1528
-	spip_log("$file introuvable dans le theme prive " . reset($themes), 'theme');
1528
+	spip_log("$file introuvable dans le theme prive ".reset($themes), 'theme');
1529 1529
 
1530 1530
 	return $themefiles["$subdir$file"] = '';
1531 1531
 }
@@ -1633,8 +1633,8 @@  discard block
 block discarded – undo
1633 1633
 			return false;
1634 1634
 		}
1635 1635
 		if ($include && !isset($inc[$dirname][$file])) {
1636
-			include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1637
-			$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1636
+			include_once _ROOT_CWD.$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1637
+			$inc[$dirname][$file] = $inc[''][$dirname.$file] = true;
1638 1638
 		}
1639 1639
 
1640 1640
 		return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
@@ -1647,14 +1647,14 @@  discard block
 block discarded – undo
1647 1647
 	}
1648 1648
 
1649 1649
 	foreach (creer_chemin() as $dir) {
1650
-		if (!isset($dirs[$a = $dir . $dirname])) {
1651
-			$dirs[$a] = (is_dir(_ROOT_CWD . $a) || !$a);
1650
+		if (!isset($dirs[$a = $dir.$dirname])) {
1651
+			$dirs[$a] = (is_dir(_ROOT_CWD.$a) || !$a);
1652 1652
 		}
1653 1653
 		if ($dirs[$a]) {
1654
-			if (file_exists(_ROOT_CWD . ($a .= $file))) {
1654
+			if (file_exists(_ROOT_CWD.($a .= $file))) {
1655 1655
 				if ($include && !isset($inc[$dirname][$file])) {
1656
-					include_once _ROOT_CWD . $a;
1657
-					$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1656
+					include_once _ROOT_CWD.$a;
1657
+					$inc[$dirname][$file] = $inc[''][$dirname.$file] = true;
1658 1658
 				}
1659 1659
 				if (!defined('_SAUVER_CHEMIN')) {
1660 1660
 					// si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
@@ -1664,7 +1664,7 @@  discard block
 block discarded – undo
1664 1664
 					define('_SAUVER_CHEMIN', true);
1665 1665
 				}
1666 1666
 
1667
-				return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
1667
+				return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname.$file] = $a;
1668 1668
 			}
1669 1669
 		}
1670 1670
 	}
@@ -1690,7 +1690,7 @@  discard block
 block discarded – undo
1690 1690
 		define('_SAUVER_CHEMIN', true);
1691 1691
 	}
1692 1692
 
1693
-	return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
1693
+	return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname.$file] = false;
1694 1694
 }
1695 1695
 
1696 1696
 function clear_path_cache() {
@@ -1760,12 +1760,12 @@  discard block
 block discarded – undo
1760 1760
 	// cas borderline si dans mes_options on appelle redirige_par_entete qui utilise _T et charge un fichier de langue
1761 1761
 	// on a pas encore inclus flock.php
1762 1762
 	if (!function_exists('preg_files')) {
1763
-		include_once _ROOT_RESTREINT . 'inc/flock.php';
1763
+		include_once _ROOT_RESTREINT.'inc/flock.php';
1764 1764
 	}
1765 1765
 
1766 1766
 	// Parcourir le chemin
1767 1767
 	foreach (creer_chemin() as $d) {
1768
-		$f = $d . $dir;
1768
+		$f = $d.$dir;
1769 1769
 		if (@is_dir($f)) {
1770 1770
 			$liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
1771 1771
 			foreach ($liste as $chemin) {
@@ -1817,8 +1817,8 @@  discard block
 block discarded – undo
1817 1817
 	if ($type === 'defaut') {
1818 1818
 		$objet = objet_type($quoi);
1819 1819
 		if (
1820
-			($f = charger_fonction('generer_' . $objet . '_url', 'urls', true))
1821
-			|| ($f = charger_fonction('generer_url_' . $objet, 'urls', true)) // deprecated
1820
+			($f = charger_fonction('generer_'.$objet.'_url', 'urls', true))
1821
+			|| ($f = charger_fonction('generer_url_'.$objet, 'urls', true)) // deprecated
1822 1822
 		) {
1823 1823
 			return $f;
1824 1824
 		}
@@ -1831,7 +1831,7 @@  discard block
 block discarded – undo
1831 1831
 	}
1832 1832
 
1833 1833
 	// inclure le module d'url
1834
-	include_spip('urls/' . $url_type);
1834
+	include_spip('urls/'.$url_type);
1835 1835
 
1836 1836
 	switch ($quoi) {
1837 1837
 		case 'page':
@@ -1931,7 +1931,7 @@  discard block
 block discarded – undo
1931 1931
 	}
1932 1932
 
1933 1933
 	// On a ete gentil mais la ....
1934
-	spip_log("generer_objet_url: entite $entite " . ($public ? "($f)" : '') . " inconnue $type $public $connect", _LOG_ERREUR);
1934
+	spip_log("generer_objet_url: entite $entite ".($public ? "($f)" : '')." inconnue $type $public $connect", _LOG_ERREUR);
1935 1935
 
1936 1936
 	return '';
1937 1937
 }
@@ -1982,8 +1982,8 @@  discard block
 block discarded – undo
1982 1982
 	include_spip('base/connect_sql');
1983 1983
 	$id_type = id_table_objet($entite, $public);
1984 1984
 
1985
-	return _DIR_RACINE . get_spip_script('./')
1986
-	. '?' . _SPIP_PAGE . "=$entite&$id_type=$i&connect=$public"
1985
+	return _DIR_RACINE.get_spip_script('./')
1986
+	. '?'._SPIP_PAGE."=$entite&$id_type=$i&connect=$public"
1987 1987
 	. (!$args ? '' : "&$args")
1988 1988
 	. (!$ancre ? '' : "#$ancre");
1989 1989
 }
@@ -2152,7 +2152,7 @@  discard block
 block discarded – undo
2152 2152
 				!empty($_SERVER['QUERY_STRING'])
2153 2153
 				&& !str_contains($_SERVER['REQUEST_URI'], '?')
2154 2154
 			) {
2155
-				$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2155
+				$GLOBALS['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
2156 2156
 			}
2157 2157
 		}
2158 2158
 	}
@@ -2190,9 +2190,9 @@  discard block
 block discarded – undo
2190 2190
 		array_shift($myself);
2191 2191
 		$myself = implode('/', $myself);
2192 2192
 	}
2193
-	$url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)) . '/';
2193
+	$url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)).'/';
2194 2194
 
2195
-	$url = $http . '://' . rtrim($host, '/') . '/' . ltrim($url, '/');
2195
+	$url = $http.'://'.rtrim($host, '/').'/'.ltrim($url, '/');
2196 2196
 
2197 2197
 	return $url;
2198 2198
 }
@@ -2231,16 +2231,16 @@  discard block
 block discarded – undo
2231 2231
 function generer_url_ecrire(?string $script = '', $args = '', $no_entities = false, $rel = false) {
2232 2232
 	$script ??= '';
2233 2233
 	if (!$rel) {
2234
-		$rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT;
2234
+		$rel = url_de_base()._DIR_RESTREINT_ABS._SPIP_ECRIRE_SCRIPT;
2235 2235
 	} else {
2236 2236
 		if (!is_string($rel)) {
2237
-			$rel = _DIR_RESTREINT ?: './' . _SPIP_ECRIRE_SCRIPT;
2237
+			$rel = _DIR_RESTREINT ?: './'._SPIP_ECRIRE_SCRIPT;
2238 2238
 		}
2239 2239
 	}
2240 2240
 
2241 2241
 	[$script, $ancre] = array_pad(explode('#', $script), 2, null);
2242 2242
 	if ($script && ($script <> 'accueil' || $rel)) {
2243
-		$args = "?exec=$script" . (!$args ? '' : "&$args");
2243
+		$args = "?exec=$script".(!$args ? '' : "&$args");
2244 2244
 	} elseif ($args) {
2245 2245
 		$args = "?$args";
2246 2246
 	}
@@ -2248,7 +2248,7 @@  discard block
 block discarded – undo
2248 2248
 		$args .= "#$ancre";
2249 2249
 	}
2250 2250
 
2251
-	return $rel . ($no_entities ? $args : str_replace('&', '&amp;', $args));
2251
+	return $rel.($no_entities ? $args : str_replace('&', '&amp;', $args));
2252 2252
 }
2253 2253
 
2254 2254
 //
@@ -2330,10 +2330,10 @@  discard block
 block discarded – undo
2330 2330
 			$action = parametre_url($action, _SPIP_PAGE, $script, '&');
2331 2331
 		}
2332 2332
 		if ($args) {
2333
-			$action .= (str_contains($action, '?') ? '&' : '?') . $args;
2333
+			$action .= (str_contains($action, '?') ? '&' : '?').$args;
2334 2334
 		}
2335 2335
 		// ne pas generer une url avec /./?page= en cas d'url absolue et de _SPIP_SCRIPT vide
2336
-		$url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/') . preg_replace(',^/[.]/,', '/', "/$action"));
2336
+		$url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/').preg_replace(',^/[.]/,', '/', "/$action"));
2337 2337
 	}
2338 2338
 
2339 2339
 	if (!$no_entities) {
@@ -2345,7 +2345,7 @@  discard block
 block discarded – undo
2345 2345
 
2346 2346
 function generer_url_prive($script, $args = '', $no_entities = false) {
2347 2347
 
2348
-	return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS . 'prive.php');
2348
+	return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS.'prive.php');
2349 2349
 }
2350 2350
 
2351 2351
 // Pour les formulaires en methode POST,
@@ -2380,8 +2380,7 @@  discard block
 block discarded – undo
2380 2380
 	. "><div>\n"
2381 2381
 	. "<input type='hidden' name='exec' value='$script1' />"
2382 2382
 	. $corps
2383
-	. (!$submit ? '' :
2384
-		("<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><input class='fondo submit btn' type='submit' value=\"" . entites_html($submit) . '" /></div>'))
2383
+	. (!$submit ? '' : ("<div style='text-align: ".$GLOBALS['spip_lang_right']."'><input class='fondo submit btn' type='submit' value=\"".entites_html($submit).'" /></div>'))
2385 2384
 	. "</div></form>\n";
2386 2385
 }
2387 2386
 
@@ -2406,14 +2405,14 @@  discard block
 block discarded – undo
2406 2405
 		? generer_url_ecrire(_request('exec'))
2407 2406
 		: generer_url_public();
2408 2407
 
2409
-	return "\n<form action='" .
2410
-	$h .
2411
-	"'" .
2412
-	$atts .
2413
-	">\n" .
2414
-	'<div>' .
2415
-	"\n<input type='hidden' name='action' value='$script' />" .
2416
-	$corps .
2408
+	return "\n<form action='".
2409
+	$h.
2410
+	"'".
2411
+	$atts.
2412
+	">\n".
2413
+	'<div>'.
2414
+	"\n<input type='hidden' name='action' value='$script' />".
2415
+	$corps.
2417 2416
 	'</div></form>';
2418 2417
 }
2419 2418
 
@@ -2441,7 +2440,7 @@  discard block
 block discarded – undo
2441 2440
 		: generer_url_public('', '', false, false);
2442 2441
 	$url = parametre_url($url, 'action', $script);
2443 2442
 	if ($args) {
2444
-		$url .= quote_amp('&' . $args);
2443
+		$url .= quote_amp('&'.$args);
2445 2444
 	}
2446 2445
 
2447 2446
 	if ($no_entities) {
@@ -2475,9 +2474,9 @@  discard block
 block discarded – undo
2475 2474
 	}
2476 2475
 	$url =
2477 2476
 		(($public ? _DIR_RACINE : _DIR_RESTREINT) ?: './')
2478
-	. $script . '/'
2477
+	. $script.'/'
2479 2478
 	. ($path ? trim($path, '/') : '')
2480
-	. ($args ? '?' . quote_amp($args) : '');
2479
+	. ($args ? '?'.quote_amp($args) : '');
2481 2480
 
2482 2481
 	if ($no_entities) {
2483 2482
 		$url = str_replace('&amp;', '&', $url);
@@ -2526,22 +2525,22 @@  discard block
 block discarded – undo
2526 2525
 
2527 2526
 	// le nom du repertoire plugins/ activables/desactivables
2528 2527
 	if (!defined('_DIR_PLUGINS')) {
2529
-		define('_DIR_PLUGINS', _DIR_RACINE . 'plugins/');
2528
+		define('_DIR_PLUGINS', _DIR_RACINE.'plugins/');
2530 2529
 	}
2531 2530
 
2532 2531
 	// le nom du repertoire des extensions/ permanentes du core, toujours actives
2533 2532
 	if (!defined('_DIR_PLUGINS_DIST')) {
2534
-		define('_DIR_PLUGINS_DIST', _DIR_RACINE . 'plugins-dist/');
2533
+		define('_DIR_PLUGINS_DIST', _DIR_RACINE.'plugins-dist/');
2535 2534
 	}
2536 2535
 
2537 2536
 	// le nom du repertoire des librairies
2538 2537
 	if (!defined('_DIR_LIB')) {
2539
-		define('_DIR_LIB', _DIR_RACINE . 'lib/');
2538
+		define('_DIR_LIB', _DIR_RACINE.'lib/');
2540 2539
 	}
2541 2540
 
2542 2541
 	// répertoire des libs via Composer
2543 2542
 	if (!defined('_DIR_VENDOR')) {
2544
-		define('_DIR_VENDOR', _DIR_RACINE . 'vendor/');
2543
+		define('_DIR_VENDOR', _DIR_RACINE.'vendor/');
2545 2544
 	}
2546 2545
 
2547 2546
 	if (!defined('_DIR_IMG')) {
@@ -2551,29 +2550,29 @@  discard block
 block discarded – undo
2551 2550
 		define('_DIR_LOGOS', $pa);
2552 2551
 	}
2553 2552
 	if (!defined('_DIR_IMG_ICONES')) {
2554
-		define('_DIR_IMG_ICONES', _DIR_LOGOS . 'icones/');
2553
+		define('_DIR_IMG_ICONES', _DIR_LOGOS.'icones/');
2555 2554
 	}
2556 2555
 
2557 2556
 	if (!defined('_DIR_DUMP')) {
2558
-		define('_DIR_DUMP', $ti . 'dump/');
2557
+		define('_DIR_DUMP', $ti.'dump/');
2559 2558
 	}
2560 2559
 	if (!defined('_DIR_SESSIONS')) {
2561
-		define('_DIR_SESSIONS', $ti . 'sessions/');
2560
+		define('_DIR_SESSIONS', $ti.'sessions/');
2562 2561
 	}
2563 2562
 	if (!defined('_DIR_TRANSFERT')) {
2564
-		define('_DIR_TRANSFERT', $ti . 'upload/');
2563
+		define('_DIR_TRANSFERT', $ti.'upload/');
2565 2564
 	}
2566 2565
 	if (!defined('_DIR_CACHE')) {
2567
-		define('_DIR_CACHE', $ti . 'cache/');
2566
+		define('_DIR_CACHE', $ti.'cache/');
2568 2567
 	}
2569 2568
 	if (!defined('_DIR_CACHE_XML')) {
2570
-		define('_DIR_CACHE_XML', _DIR_CACHE . 'xml/');
2569
+		define('_DIR_CACHE_XML', _DIR_CACHE.'xml/');
2571 2570
 	}
2572 2571
 	if (!defined('_DIR_SKELS')) {
2573
-		define('_DIR_SKELS', _DIR_CACHE . 'skel/');
2572
+		define('_DIR_SKELS', _DIR_CACHE.'skel/');
2574 2573
 	}
2575 2574
 	if (!defined('_DIR_AIDE')) {
2576
-		define('_DIR_AIDE', _DIR_CACHE . 'aide/');
2575
+		define('_DIR_AIDE', _DIR_CACHE.'aide/');
2577 2576
 	}
2578 2577
 	if (!defined('_DIR_TMP')) {
2579 2578
 		define('_DIR_TMP', $ti);
@@ -2602,27 +2601,27 @@  discard block
 block discarded – undo
2602 2601
 	// Declaration des fichiers
2603 2602
 
2604 2603
 	if (!defined('_CACHE_PLUGINS_PATH')) {
2605
-		define('_CACHE_PLUGINS_PATH', _DIR_CACHE . 'charger_plugins_chemins.php');
2604
+		define('_CACHE_PLUGINS_PATH', _DIR_CACHE.'charger_plugins_chemins.php');
2606 2605
 	}
2607 2606
 	if (!defined('_CACHE_PLUGINS_OPT')) {
2608
-		define('_CACHE_PLUGINS_OPT', _DIR_CACHE . 'charger_plugins_options.php');
2607
+		define('_CACHE_PLUGINS_OPT', _DIR_CACHE.'charger_plugins_options.php');
2609 2608
 	}
2610 2609
 	if (!defined('_CACHE_PLUGINS_FCT')) {
2611
-		define('_CACHE_PLUGINS_FCT', _DIR_CACHE . 'charger_plugins_fonctions.php');
2610
+		define('_CACHE_PLUGINS_FCT', _DIR_CACHE.'charger_plugins_fonctions.php');
2612 2611
 	}
2613 2612
 	if (!defined('_CACHE_PIPELINES')) {
2614
-		define('_CACHE_PIPELINES', _DIR_CACHE . 'charger_pipelines.php');
2613
+		define('_CACHE_PIPELINES', _DIR_CACHE.'charger_pipelines.php');
2615 2614
 	}
2616 2615
 	if (!defined('_CACHE_CHEMIN')) {
2617
-		define('_CACHE_CHEMIN', _DIR_CACHE . 'chemin.txt');
2616
+		define('_CACHE_CHEMIN', _DIR_CACHE.'chemin.txt');
2618 2617
 	}
2619 2618
 
2620 2619
 	# attention .php obligatoire pour ecrire_fichier_securise
2621 2620
 	if (!defined('_FILE_META')) {
2622
-		define('_FILE_META', $ti . 'meta_cache.php');
2621
+		define('_FILE_META', $ti.'meta_cache.php');
2623 2622
 	}
2624 2623
 	if (!defined('_DIR_LOG')) {
2625
-		define('_DIR_LOG', _DIR_TMP . 'log/');
2624
+		define('_DIR_LOG', _DIR_TMP.'log/');
2626 2625
 	}
2627 2626
 	if (!defined('_FILE_LOG')) {
2628 2627
 		define('_FILE_LOG', 'spip');
@@ -2638,7 +2637,7 @@  discard block
 block discarded – undo
2638 2637
 	if (!defined('_FILE_CONNECT')) {
2639 2638
 		define(
2640 2639
 			'_FILE_CONNECT',
2641
-			@is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f : false
2640
+			@is_readable($f = _DIR_CONNECT._FILE_CONNECT_INS.'.php') ? $f : false
2642 2641
 		);
2643 2642
 	}
2644 2643
 
@@ -2649,7 +2648,7 @@  discard block
 block discarded – undo
2649 2648
 	if (!defined('_FILE_CHMOD')) {
2650 2649
 		define(
2651 2650
 			'_FILE_CHMOD',
2652
-			@is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f : false
2651
+			@is_readable($f = _DIR_CHMOD._FILE_CHMOD_INS.'.php') ? $f : false
2653 2652
 		);
2654 2653
 	}
2655 2654
 
@@ -2661,10 +2660,10 @@  discard block
 block discarded – undo
2661 2660
 		define('_FILE_TMP_SUFFIX', '.tmp.php');
2662 2661
 	}
2663 2662
 	if (!defined('_FILE_CONNECT_TMP')) {
2664
-		define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
2663
+		define('_FILE_CONNECT_TMP', _DIR_CONNECT._FILE_CONNECT_INS._FILE_TMP_SUFFIX);
2665 2664
 	}
2666 2665
 	if (!defined('_FILE_CHMOD_TMP')) {
2667
-		define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
2666
+		define('_FILE_CHMOD_TMP', _DIR_CHMOD._FILE_CHMOD_INS._FILE_TMP_SUFFIX);
2668 2667
 	}
2669 2668
 
2670 2669
 	// Definition des droits d'acces en ecriture
@@ -2682,13 +2681,13 @@  discard block
 block discarded – undo
2682 2681
 		define('_DEFAULT_CHARSET', 'utf-8');
2683 2682
 	}
2684 2683
 	if (!defined('_ROOT_PLUGINS')) {
2685
-		define('_ROOT_PLUGINS', _ROOT_RACINE . 'plugins/');
2684
+		define('_ROOT_PLUGINS', _ROOT_RACINE.'plugins/');
2686 2685
 	}
2687 2686
 	if (!defined('_ROOT_PLUGINS_DIST')) {
2688
-		define('_ROOT_PLUGINS_DIST', _ROOT_RACINE . 'plugins-dist/');
2687
+		define('_ROOT_PLUGINS_DIST', _ROOT_RACINE.'plugins-dist/');
2689 2688
 	}
2690 2689
 	if (!defined('_ROOT_PLUGINS_SUPPL') && defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
2691
-		define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2690
+		define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE.str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2692 2691
 	}
2693 2692
 
2694 2693
 	// La taille des Log
@@ -2725,7 +2724,7 @@  discard block
 block discarded – undo
2725 2724
 	// (non surchargeable en l'etat ; attention si on utilise include_spip()
2726 2725
 	// pour le rendre surchargeable, on va provoquer un reecriture
2727 2726
 	// systematique du noyau ou une baisse de perfs => a etudier)
2728
-	include_once _ROOT_RESTREINT . 'inc/flock.php';
2727
+	include_once _ROOT_RESTREINT.'inc/flock.php';
2729 2728
 
2730 2729
 	// charger tout de suite le path et son cache
2731 2730
 	load_path_cache();
@@ -2761,7 +2760,7 @@  discard block
 block discarded – undo
2761 2760
 			!empty($_SERVER['QUERY_STRING'])
2762 2761
 			&& !strpos($_SERVER['REQUEST_URI'], '?')
2763 2762
 		) {
2764
-			$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2763
+			$GLOBALS['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
2765 2764
 		}
2766 2765
 	}
2767 2766
 
@@ -2797,7 +2796,7 @@  discard block
 block discarded – undo
2797 2796
 		) {
2798 2797
 			if (isset($GLOBALS['meta']['adresse_site'])) {
2799 2798
 				$uri_ref = parse_url($GLOBALS['meta']['adresse_site']);
2800
-				$uri_ref = ($uri_ref['path'] ?? '') . '/';
2799
+				$uri_ref = ($uri_ref['path'] ?? '').'/';
2801 2800
 			} else {
2802 2801
 				$uri_ref = '';
2803 2802
 			}
@@ -2891,7 +2890,7 @@  discard block
 block discarded – undo
2891 2890
 	}
2892 2891
 	if (!defined('_CACHE_RUBRIQUES')) {
2893 2892
 		/** Fichier cache pour le navigateur de rubrique du bandeau */
2894
-		define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
2893
+		define('_CACHE_RUBRIQUES', _DIR_TMP.'menu-rubriques-cache.txt');
2895 2894
 	}
2896 2895
 	if (!defined('_CACHE_RUBRIQUES_MAX')) {
2897 2896
 		/** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
@@ -3114,7 +3113,7 @@  discard block
 block discarded – undo
3114 3113
 					}
3115 3114
 					if (isset($GLOBALS['visiteur_session']['nom'])) {
3116 3115
 						spip_log($GLOBALS['visiteur_session']['nom']
3117
-							. ' ' . _VAR_MODE);
3116
+							. ' '._VAR_MODE);
3118 3117
 					}
3119 3118
 				} // pas autorise ?
3120 3119
 				else {
@@ -3129,7 +3128,7 @@  discard block
 block discarded – undo
3129 3128
 						if (!str_contains($self, 'page=login')) {
3130 3129
 							include_spip('inc/headers');
3131 3130
 							$redirect = parametre_url(self('&', true), 'var_mode', $_GET['var_mode'], '&');
3132
-							redirige_par_entete(generer_url_public('login', 'url=' . rawurlencode($redirect), true));
3131
+							redirige_par_entete(generer_url_public('login', 'url='.rawurlencode($redirect), true));
3133 3132
 						}
3134 3133
 					}
3135 3134
 					// sinon tant pis
@@ -3179,10 +3178,10 @@  discard block
 block discarded – undo
3179 3178
 **/
3180 3179
 function verifier_visiteur() {
3181 3180
 	@spip_initialisation_core(
3182
-		(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
3183
-		(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
3184
-		(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
3185
-		(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
3181
+		(_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES),
3182
+		(_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES),
3183
+		(_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES),
3184
+		(_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES)
3186 3185
 	);
3187 3186
 
3188 3187
 	// Demarrer une session NON AUTHENTIFIEE si on donne son nom
@@ -3215,7 +3214,7 @@  discard block
 block discarded – undo
3215 3214
 	}
3216 3215
 
3217 3216
 	$h = (isset($_SERVER['PHP_AUTH_USER']) && !$GLOBALS['ignore_auth_http']);
3218
-	if ($h || isset($_COOKIE['spip_session']) || isset($_COOKIE[$GLOBALS['cookie_prefix'] . '_session'])) {
3217
+	if ($h || isset($_COOKIE['spip_session']) || isset($_COOKIE[$GLOBALS['cookie_prefix'].'_session'])) {
3219 3218
 		$session = charger_fonction('session', 'inc');
3220 3219
 		if ($session()) {
3221 3220
 			return $GLOBALS['visiteur_session']['statut'];
@@ -3295,7 +3294,7 @@  discard block
 block discarded – undo
3295 3294
 		if (!empty($GLOBALS['visiteur_session'])) {
3296 3295
 			include_spip('inc/session');
3297 3296
 			$cookie = lire_cookie_session();
3298
-			$s = serialize($GLOBALS['visiteur_session']) . '_' . ($cookie ?: '');
3297
+			$s = serialize($GLOBALS['visiteur_session']).'_'.($cookie ?: '');
3299 3298
 		}
3300 3299
 		$s = pipeline('definir_session', $s);
3301 3300
 		$session = ($s ? substr(md5($s), 0, 8) : '');
@@ -3343,8 +3342,8 @@  discard block
 block discarded – undo
3343 3342
 		foreach ($cookies_masques as $k) {
3344 3343
 			if (!empty($_COOKIE[$k])) {
3345 3344
 				$cookies_backup[$k] = $_COOKIE[$k];
3346
-				$_SERVER['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3347
-				$_ENV['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3345
+				$_SERVER['HTTP_COOKIE'] = str_replace("$k=".$_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3346
+				$_ENV['HTTP_COOKIE'] = str_replace("$k=".$_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3348 3347
 				$_COOKIE[$k] = $mask;
3349 3348
 			}
3350 3349
 		}
@@ -3462,11 +3461,11 @@  discard block
 block discarded – undo
3462 3461
 	$GLOBALS['_INC_PUBLIC']++;
3463 3462
 
3464 3463
 	// fix #4235
3465
-	$cache_utilise_session_appelant	= ($GLOBALS['cache_utilise_session'] ?? null);
3464
+	$cache_utilise_session_appelant = ($GLOBALS['cache_utilise_session'] ?? null);
3466 3465
 
3467 3466
 
3468 3467
 	foreach (is_array($fond) ? $fond : [$fond] as $f) {
3469
-		unset($GLOBALS['cache_utilise_session']);	// fix #4235
3468
+		unset($GLOBALS['cache_utilise_session']); // fix #4235
3470 3469
 
3471 3470
 		$page = evaluer_fond($f, $contexte, $connect);
3472 3471
 		if ($page === '') {
@@ -3551,7 +3550,7 @@  discard block
 block discarded – undo
3551 3550
  * @return array|string
3552 3551
  */
3553 3552
 function trouver_fond($nom, $dir = '', $pathinfo = false) {
3554
-	$f = find_in_path($nom . '.' . _EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/') . '/' : '');
3553
+	$f = find_in_path($nom.'.'._EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/').'/' : '');
3555 3554
 	if (!$pathinfo) {
3556 3555
 		return $f;
3557 3556
 	}
Please login to merge, or discard this patch.
Indentation   +2292 added lines, -2293 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
 
@@ -47,71 +47,71 @@  discard block
 block discarded – undo
47 47
  *     Nom de la fonction, ou false.
48 48
  */
49 49
 function charger_fonction($nom, $dossier = 'exec', $continue = false) {
50
-	static $echecs = [];
51
-
52
-	if (strlen($dossier) && !str_ends_with($dossier, '/')) {
53
-		$dossier .= '/';
54
-	}
55
-	$f = str_replace('/', '_', $dossier) . $nom;
56
-
57
-	if (function_exists($f)) {
58
-		return $f;
59
-	}
60
-	if (function_exists($g = $f . '_dist')) {
61
-		return $g;
62
-	}
63
-
64
-	if (isset($echecs[$f])) {
65
-		return $echecs[$f];
66
-	}
67
-	// Sinon charger le fichier de declaration si plausible
68
-
69
-	if (!preg_match(',^\w+$,', $f)) {
70
-		if ($continue) {
71
-			return false;
72
-		} //appel interne, on passe
73
-		include_spip('inc/minipres');
74
-		echo minipres();
75
-		exit;
76
-	}
77
-
78
-	// passer en minuscules (cf les balises de formulaires)
79
-	// et inclure le fichier
80
-	if (
81
-		!($inc = include_spip($dossier . ($d = strtolower($nom))))
82
-		&& strlen(dirname($dossier))
83
-		&& dirname($dossier) != '.'
84
-	) {
85
-		include_spip(substr($dossier, 0, -1));
86
-	}
87
-	if (function_exists($f)) {
88
-		return $f;
89
-	}
90
-	if (function_exists($g)) {
91
-		return $g;
92
-	}
93
-
94
-	if ($continue) {
95
-		return $echecs[$f] = false;
96
-	}
97
-
98
-	// Echec : message d'erreur
99
-	spip_log("fonction $nom ($f ou $g) indisponible" .
100
-		($inc ? '' : " (fichier $d absent de $dossier)"));
101
-
102
-	include_spip('inc/minipres');
103
-	include_spip('inc/filtres_mini');
104
-	echo minipres(
105
-		_T('forum_titre_erreur'),
106
-		$inc ?
107
-			_T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($f) . '</code>'])
108
-			. '<br />'
109
-			. _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($g) . '</code>'])
110
-			:
111
-			_T('fichier_introuvable', ['fichier' => '<code>' . spip_htmlentities($d) . '</code>']),
112
-		['all_inline' => true,'status' => 404]
113
-	);
114
-	exit;
50
+    static $echecs = [];
51
+
52
+    if (strlen($dossier) && !str_ends_with($dossier, '/')) {
53
+        $dossier .= '/';
54
+    }
55
+    $f = str_replace('/', '_', $dossier) . $nom;
56
+
57
+    if (function_exists($f)) {
58
+        return $f;
59
+    }
60
+    if (function_exists($g = $f . '_dist')) {
61
+        return $g;
62
+    }
63
+
64
+    if (isset($echecs[$f])) {
65
+        return $echecs[$f];
66
+    }
67
+    // Sinon charger le fichier de declaration si plausible
68
+
69
+    if (!preg_match(',^\w+$,', $f)) {
70
+        if ($continue) {
71
+            return false;
72
+        } //appel interne, on passe
73
+        include_spip('inc/minipres');
74
+        echo minipres();
75
+        exit;
76
+    }
77
+
78
+    // passer en minuscules (cf les balises de formulaires)
79
+    // et inclure le fichier
80
+    if (
81
+        !($inc = include_spip($dossier . ($d = strtolower($nom))))
82
+        && strlen(dirname($dossier))
83
+        && dirname($dossier) != '.'
84
+    ) {
85
+        include_spip(substr($dossier, 0, -1));
86
+    }
87
+    if (function_exists($f)) {
88
+        return $f;
89
+    }
90
+    if (function_exists($g)) {
91
+        return $g;
92
+    }
93
+
94
+    if ($continue) {
95
+        return $echecs[$f] = false;
96
+    }
97
+
98
+    // Echec : message d'erreur
99
+    spip_log("fonction $nom ($f ou $g) indisponible" .
100
+        ($inc ? '' : " (fichier $d absent de $dossier)"));
101
+
102
+    include_spip('inc/minipres');
103
+    include_spip('inc/filtres_mini');
104
+    echo minipres(
105
+        _T('forum_titre_erreur'),
106
+        $inc ?
107
+            _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($f) . '</code>'])
108
+            . '<br />'
109
+            . _T('fonction_introuvable', ['fonction' => '<code>' . spip_htmlentities($g) . '</code>'])
110
+            :
111
+            _T('fichier_introuvable', ['fichier' => '<code>' . spip_htmlentities($d) . '</code>']),
112
+        ['all_inline' => true,'status' => 404]
113
+    );
114
+    exit;
115 115
 }
116 116
 
117 117
 /**
@@ -121,17 +121,17 @@  discard block
 block discarded – undo
121 121
  * @return bool
122 122
  */
123 123
 function include_once_check($file) {
124
-	if (file_exists($file)) {
125
-		include_once $file;
124
+    if (file_exists($file)) {
125
+        include_once $file;
126 126
 
127
-		return true;
128
-	}
129
-	$crash = (isset($GLOBALS['meta']['message_crash_plugins']) ? unserialize($GLOBALS['meta']['message_crash_plugins']) : '');
130
-	$crash = ($crash ?: []);
131
-	$crash[$file] = true;
132
-	ecrire_meta('message_crash_plugins', serialize($crash));
127
+        return true;
128
+    }
129
+    $crash = (isset($GLOBALS['meta']['message_crash_plugins']) ? unserialize($GLOBALS['meta']['message_crash_plugins']) : '');
130
+    $crash = ($crash ?: []);
131
+    $crash[$file] = true;
132
+    ecrire_meta('message_crash_plugins', serialize($crash));
133 133
 
134
-	return false;
134
+    return false;
135 135
 }
136 136
 
137 137
 
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
  *     - string : chemin du fichier trouvé
156 156
  **/
157 157
 function include_spip($f, $include = true) {
158
-	return find_in_path($f . '.php', '', $include);
158
+    return find_in_path($f . '.php', '', $include);
159 159
 }
160 160
 
161 161
 /**
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
  *     - string : chemin du fichier trouvé
176 176
  **/
177 177
 function require_spip($f) {
178
-	return find_in_path($f . '.php', '', 'required');
178
+    return find_in_path($f . '.php', '', 'required');
179 179
 }
180 180
 
181 181
 
@@ -184,27 +184,27 @@  discard block
 block discarded – undo
184 184
  * quand on a besoin dans le PHP de filtres/fonctions qui y sont definis
185 185
  */
186 186
 function include_fichiers_fonctions() {
187
-	static $done = false;
188
-	if (!$done) {
189
-		include_spip('inc/lang');
190
-
191
-		// NB: mes_fonctions peut initialiser $dossier_squelettes (old-style)
192
-		// donc il faut l'inclure "en globals"
193
-		if ($f = find_in_path('mes_fonctions.php')) {
194
-			global $dossier_squelettes;
195
-			include_once(_ROOT_CWD . $f);
196
-		}
197
-
198
-		if (@is_readable(_CACHE_PLUGINS_FCT)) {
199
-			// chargement optimise precompile
200
-			include_once(_CACHE_PLUGINS_FCT);
201
-		}
202
-		if (test_espace_prive()) {
203
-			include_spip('inc/filtres_ecrire');
204
-		}
205
-		include_spip('public/fonctions'); // charger les fichiers fonctions associes aux criteres, balises..
206
-		$done = true;
207
-	}
187
+    static $done = false;
188
+    if (!$done) {
189
+        include_spip('inc/lang');
190
+
191
+        // NB: mes_fonctions peut initialiser $dossier_squelettes (old-style)
192
+        // donc il faut l'inclure "en globals"
193
+        if ($f = find_in_path('mes_fonctions.php')) {
194
+            global $dossier_squelettes;
195
+            include_once(_ROOT_CWD . $f);
196
+        }
197
+
198
+        if (@is_readable(_CACHE_PLUGINS_FCT)) {
199
+            // chargement optimise precompile
200
+            include_once(_CACHE_PLUGINS_FCT);
201
+        }
202
+        if (test_espace_prive()) {
203
+            include_spip('inc/filtres_ecrire');
204
+        }
205
+        include_spip('public/fonctions'); // charger les fichiers fonctions associes aux criteres, balises..
206
+        $done = true;
207
+    }
208 208
 }
209 209
 
210 210
 /**
@@ -230,23 +230,23 @@  discard block
 block discarded – undo
230 230
  *     Les paramètres du pipeline modifiés
231 231
  **/
232 232
 function minipipe($fonc, &$val) {
233
-	// fonction
234
-	if (function_exists($fonc)) {
235
-		$val = $fonc($val);
236
-	} // Class::Methode
237
-	else {
238
-		if (
239
-			preg_match('/^(\w*)::(\w*)$/S', $fonc, $regs)
240
-			&& ($methode = [$regs[1], $regs[2]])
241
-			&& is_callable($methode)
242
-		) {
243
-			$val = $methode($val);
244
-		} else {
245
-			spip_log("Erreur - '$fonc' non definie !");
246
-		}
247
-	}
248
-
249
-	return $val;
233
+    // fonction
234
+    if (function_exists($fonc)) {
235
+        $val = $fonc($val);
236
+    } // Class::Methode
237
+    else {
238
+        if (
239
+            preg_match('/^(\w*)::(\w*)$/S', $fonc, $regs)
240
+            && ($methode = [$regs[1], $regs[2]])
241
+            && is_callable($methode)
242
+        ) {
243
+            $val = $methode($val);
244
+        } else {
245
+            spip_log("Erreur - '$fonc' non definie !");
246
+        }
247
+    }
248
+
249
+    return $val;
250 250
 }
251 251
 
252 252
 /**
@@ -277,46 +277,46 @@  discard block
 block discarded – undo
277 277
  *     Résultat
278 278
  */
279 279
 function pipeline($action, $val = null) {
280
-	static $charger;
281
-
282
-	// chargement initial des fonctions mises en cache, ou generation du cache
283
-	if (!$charger) {
284
-		if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
285
-			include_spip('inc/plugin');
286
-			// generer les fichiers php precompiles
287
-			// de chargement des plugins et des pipelines
288
-			actualise_plugins_actifs();
289
-			if (!($ok = @is_readable($charger))) {
290
-				spip_log("fichier $charger pas cree");
291
-			}
292
-		}
293
-
294
-		if ($ok) {
295
-			include_once $charger;
296
-		}
297
-	}
298
-
299
-	// appliquer notre fonction si elle existe
300
-	$fonc = 'execute_pipeline_' . strtolower($action);
301
-	if (function_exists($fonc)) {
302
-		$val = $fonc($val);
303
-	} // plantage ?
304
-	else {
305
-		spip_log("fonction $fonc absente : pipeline desactive", _LOG_ERREUR);
306
-	}
307
-
308
-	// si le flux est une table avec 2 cle args&data
309
-	// on ne ressort du pipe que les donnees dans 'data'
310
-	// array_key_exists pour php 4.1.0
311
-	if (
312
-		is_array($val)
313
-		&& count($val) == 2
314
-		&& array_key_exists('data', $val)
315
-	) {
316
-		$val = $val['data'];
317
-	}
318
-
319
-	return $val;
280
+    static $charger;
281
+
282
+    // chargement initial des fonctions mises en cache, ou generation du cache
283
+    if (!$charger) {
284
+        if (!($ok = @is_readable($charger = _CACHE_PIPELINES))) {
285
+            include_spip('inc/plugin');
286
+            // generer les fichiers php precompiles
287
+            // de chargement des plugins et des pipelines
288
+            actualise_plugins_actifs();
289
+            if (!($ok = @is_readable($charger))) {
290
+                spip_log("fichier $charger pas cree");
291
+            }
292
+        }
293
+
294
+        if ($ok) {
295
+            include_once $charger;
296
+        }
297
+    }
298
+
299
+    // appliquer notre fonction si elle existe
300
+    $fonc = 'execute_pipeline_' . strtolower($action);
301
+    if (function_exists($fonc)) {
302
+        $val = $fonc($val);
303
+    } // plantage ?
304
+    else {
305
+        spip_log("fonction $fonc absente : pipeline desactive", _LOG_ERREUR);
306
+    }
307
+
308
+    // si le flux est une table avec 2 cle args&data
309
+    // on ne ressort du pipe que les donnees dans 'data'
310
+    // array_key_exists pour php 4.1.0
311
+    if (
312
+        is_array($val)
313
+        && count($val) == 2
314
+        && array_key_exists('data', $val)
315
+    ) {
316
+        $val = $val['data'];
317
+    }
318
+
319
+    return $val;
320 320
 }
321 321
 
322 322
 /**
@@ -360,38 +360,38 @@  discard block
 block discarded – undo
360 360
  *     paramètre est planté pour cause de compatibilité ascendante.
361 361
  */
362 362
 function spip_log($message = null, $name = null) {
363
-	static $pre = [];
364
-	static $log;
365
-	preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string)$name, $regs);
366
-	if (!isset($regs[1]) || !$logname = $regs[1]) {
367
-		$logname = null;
368
-	}
369
-	if (!isset($regs[2])) {
370
-		$niveau = _LOG_INFO;
371
-	}
372
-	else {
373
-		$niveau = intval($regs[2]);
374
-	}
375
-
376
-	if ($niveau <= (defined('_LOG_FILTRE_GRAVITE') ? _LOG_FILTRE_GRAVITE : _LOG_INFO_IMPORTANTE)) {
377
-		if (!$pre) {
378
-			$pre = [
379
-				_LOG_HS => 'HS:',
380
-				_LOG_ALERTE_ROUGE => 'ALERTE:',
381
-				_LOG_CRITIQUE => 'CRITIQUE:',
382
-				_LOG_ERREUR => 'ERREUR:',
383
-				_LOG_AVERTISSEMENT => 'WARNING:',
384
-				_LOG_INFO_IMPORTANTE => '!INFO:',
385
-				_LOG_INFO => 'info:',
386
-				_LOG_DEBUG => 'debug:'
387
-			];
388
-			$log = charger_fonction('log', 'inc');
389
-		}
390
-		if (!is_string($message)) {
391
-			$message = print_r($message, true);
392
-		}
393
-		$log($pre[$niveau] . ' ' . $message, $logname);
394
-	}
363
+    static $pre = [];
364
+    static $log;
365
+    preg_match('/^([a-z_]*)\.?(\d)?$/iS', (string)$name, $regs);
366
+    if (!isset($regs[1]) || !$logname = $regs[1]) {
367
+        $logname = null;
368
+    }
369
+    if (!isset($regs[2])) {
370
+        $niveau = _LOG_INFO;
371
+    }
372
+    else {
373
+        $niveau = intval($regs[2]);
374
+    }
375
+
376
+    if ($niveau <= (defined('_LOG_FILTRE_GRAVITE') ? _LOG_FILTRE_GRAVITE : _LOG_INFO_IMPORTANTE)) {
377
+        if (!$pre) {
378
+            $pre = [
379
+                _LOG_HS => 'HS:',
380
+                _LOG_ALERTE_ROUGE => 'ALERTE:',
381
+                _LOG_CRITIQUE => 'CRITIQUE:',
382
+                _LOG_ERREUR => 'ERREUR:',
383
+                _LOG_AVERTISSEMENT => 'WARNING:',
384
+                _LOG_INFO_IMPORTANTE => '!INFO:',
385
+                _LOG_INFO => 'info:',
386
+                _LOG_DEBUG => 'debug:'
387
+            ];
388
+            $log = charger_fonction('log', 'inc');
389
+        }
390
+        if (!is_string($message)) {
391
+            $message = print_r($message, true);
392
+        }
393
+        $log($pre[$niveau] . ' ' . $message, $logname);
394
+    }
395 395
 }
396 396
 
397 397
 
@@ -403,8 +403,8 @@  discard block
 block discarded – undo
403 403
  * @param array $opt Tableau d'options
404 404
  **/
405 405
 function journal($phrase, $opt = []) {
406
-	$journal = charger_fonction('journal', 'inc');
407
-	$journal($phrase, $opt);
406
+    $journal = charger_fonction('journal', 'inc');
407
+    $journal($phrase, $opt);
408 408
 }
409 409
 
410 410
 
@@ -423,37 +423,37 @@  discard block
 block discarded – undo
423 423
  **/
424 424
 function _request($var, $c = false) {
425 425
 
426
-	if (is_array($c)) {
427
-		return $c[$var] ?? null;
428
-	}
429
-
430
-	if (isset($_GET[$var])) {
431
-		$a = $_GET[$var];
432
-	} elseif (isset($_POST[$var])) {
433
-		$a = $_POST[$var];
434
-	} else {
435
-		return null;
436
-	}
437
-
438
-	// Si on est en ajax et en POST tout a ete encode
439
-	// via encodeURIComponent, il faut donc repasser
440
-	// dans le charset local...
441
-	if (
442
-		defined('_AJAX')
443
-		&& _AJAX
444
-		&& isset($GLOBALS['meta']['charset'])
445
-		&& $GLOBALS['meta']['charset'] != 'utf-8'
446
-		// check rapide mais pas fiable
447
-		&& is_string($a)
448
-		&& preg_match(',[\x80-\xFF],', $a)
449
-		// check fiable
450
-		&& include_spip('inc/charsets')
451
-		&& is_utf8($a)
452
-	) {
453
-		return importer_charset($a, 'utf-8');
454
-	}
455
-
456
-	return $a;
426
+    if (is_array($c)) {
427
+        return $c[$var] ?? null;
428
+    }
429
+
430
+    if (isset($_GET[$var])) {
431
+        $a = $_GET[$var];
432
+    } elseif (isset($_POST[$var])) {
433
+        $a = $_POST[$var];
434
+    } else {
435
+        return null;
436
+    }
437
+
438
+    // Si on est en ajax et en POST tout a ete encode
439
+    // via encodeURIComponent, il faut donc repasser
440
+    // dans le charset local...
441
+    if (
442
+        defined('_AJAX')
443
+        && _AJAX
444
+        && isset($GLOBALS['meta']['charset'])
445
+        && $GLOBALS['meta']['charset'] != 'utf-8'
446
+        // check rapide mais pas fiable
447
+        && is_string($a)
448
+        && preg_match(',[\x80-\xFF],', $a)
449
+        // check fiable
450
+        && include_spip('inc/charsets')
451
+        && is_utf8($a)
452
+    ) {
453
+        return importer_charset($a, 'utf-8');
454
+    }
455
+
456
+    return $a;
457 457
 }
458 458
 
459 459
 
@@ -471,22 +471,22 @@  discard block
 block discarded – undo
471 471
  *     - false sinon
472 472
  **/
473 473
 function set_request($var, $val = null, $c = false) {
474
-	if (is_array($c)) {
475
-		unset($c[$var]);
476
-		if ($val !== null) {
477
-			$c[$var] = $val;
478
-		}
474
+    if (is_array($c)) {
475
+        unset($c[$var]);
476
+        if ($val !== null) {
477
+            $c[$var] = $val;
478
+        }
479 479
 
480
-		return $c;
481
-	}
480
+        return $c;
481
+    }
482 482
 
483
-	unset($_GET[$var]);
484
-	unset($_POST[$var]);
485
-	if ($val !== null) {
486
-		$_GET[$var] = $val;
487
-	}
483
+    unset($_GET[$var]);
484
+    unset($_POST[$var]);
485
+    if ($val !== null) {
486
+        $_GET[$var] = $val;
487
+    }
488 488
 
489
-	return false; # n'affecte pas $c
489
+    return false; # n'affecte pas $c
490 490
 }
491 491
 
492 492
 /**
@@ -506,25 +506,25 @@  discard block
 block discarded – undo
506 506
  * @return array|mixed|string
507 507
  */
508 508
 function spip_sanitize_from_request($value, $key, $sanitize_function = 'entites_html') {
509
-	if (is_array($value)) {
510
-		if ($key == '*') {
511
-			$key = array_keys($value);
512
-		}
513
-		if (!is_array($key)) {
514
-			$key = [$key];
515
-		}
516
-		foreach ($key as $k) {
517
-			if (!empty($value[$k])) {
518
-				$value[$k] = spip_sanitize_from_request($value[$k], $k, $sanitize_function);
519
-			}
520
-		}
521
-		return $value;
522
-	}
523
-	// si la valeur vient des GET ou POST on la sanitize
524
-	if (!empty($value) && $value == _request($key)) {
525
-		$value = $sanitize_function($value);
526
-	}
527
-	return $value;
509
+    if (is_array($value)) {
510
+        if ($key == '*') {
511
+            $key = array_keys($value);
512
+        }
513
+        if (!is_array($key)) {
514
+            $key = [$key];
515
+        }
516
+        foreach ($key as $k) {
517
+            if (!empty($value[$k])) {
518
+                $value[$k] = spip_sanitize_from_request($value[$k], $k, $sanitize_function);
519
+            }
520
+        }
521
+        return $value;
522
+    }
523
+    // si la valeur vient des GET ou POST on la sanitize
524
+    if (!empty($value) && $value == _request($key)) {
525
+        $value = $sanitize_function($value);
526
+    }
527
+    return $value;
528 528
 }
529 529
 
530 530
 /**
@@ -532,23 +532,22 @@  discard block
 block discarded – undo
532 532
  *
533 533
  * On est sur le web, on exclut certains protocoles,
534 534
  * notamment 'file://', 'php://' et d'autres…
535
-
536 535
  * @param string $url
537 536
  * @return bool
538 537
  */
539 538
 function tester_url_absolue($url) {
540
-	$url = trim($url ?? '');
541
-	if ($url && preg_match(';^([a-z]{3,7}:)?//;Uims', $url, $m)) {
542
-		if (
543
-			isset($m[1])
544
-			&& ($p = strtolower(rtrim($m[1], ':')))
545
-			&& in_array($p, ['file', 'php', 'zlib', 'glob', 'phar', 'ssh2', 'rar', 'ogg', 'expect', 'zip'])
546
-		) {
547
-			return false;
548
-		}
549
-		return true;
550
-	}
551
-	return false;
539
+    $url = trim($url ?? '');
540
+    if ($url && preg_match(';^([a-z]{3,7}:)?//;Uims', $url, $m)) {
541
+        if (
542
+            isset($m[1])
543
+            && ($p = strtolower(rtrim($m[1], ':')))
544
+            && in_array($p, ['file', 'php', 'zlib', 'glob', 'phar', 'ssh2', 'rar', 'ogg', 'expect', 'zip'])
545
+        ) {
546
+            return false;
547
+        }
548
+        return true;
549
+    }
550
+    return false;
552 551
 }
553 552
 
554 553
 /**
@@ -570,100 +569,100 @@  discard block
 block discarded – undo
570 569
  * @return string URL
571 570
  */
572 571
 function parametre_url($url, $c, $v = null, $sep = '&amp;') {
573
-	// requete erronnee : plusieurs variable dans $c et aucun $v
574
-	if (str_contains($c, '|') && is_null($v)) {
575
-		return null;
576
-	}
577
-
578
-	// lever l'#ancre
579
-	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
580
-		$url = $r[1];
581
-		$ancre = $r[2];
582
-	} else {
583
-		$ancre = '';
584
-	}
585
-
586
-	// eclater
587
-	$url = preg_split(',[?]|&amp;|&,', $url);
588
-
589
-	// recuperer la base
590
-	$a = array_shift($url);
591
-	if (!$a) {
592
-		$a = './';
593
-	}
594
-
595
-	// preparer la regexp de maniere securisee
596
-	$regexp = explode('|', $c);
597
-	foreach ($regexp as $r => $e) {
598
-		$regexp[$r] = str_replace('[]', '\[\]', preg_replace(',[^\w\d\[\]-],', '', $e));
599
-	}
600
-	$regexp = ',^(' . implode('|', $regexp) . '[[]?[]]?)(=.*)?$,';
601
-	$ajouts = array_flip(explode('|', $c));
602
-	$u = is_array($v) ? $v : rawurlencode((string) $v);
603
-	$testv = (is_array($v) ? count($v) : strlen((string) $v));
604
-	$v_read = null;
605
-	// lire les variables et agir
606
-	foreach ($url as $n => $val) {
607
-		if (preg_match($regexp, urldecode($val), $r)) {
608
-			$r = array_pad($r, 3, null);
609
-			if ($v === null) {
610
-				// c'est un tableau, on memorise les valeurs
611
-				if (str_ends_with($r[1], '[]')) {
612
-					if (!$v_read) {
613
-						$v_read = [];
614
-					}
615
-					$v_read[] = $r[2] ? substr($r[2], 1) : '';
616
-				} // c'est un scalaire, on retourne direct
617
-				else {
618
-					return $r[2] ? substr($r[2], 1) : '';
619
-				}
620
-			} // suppression
621
-			elseif (!$testv) {
622
-				unset($url[$n]);
623
-			}
624
-			// Ajout. Pour une variable, remplacer au meme endroit,
625
-			// pour un tableau ce sera fait dans la prochaine boucle
626
-			elseif (!str_ends_with($r[1], '[]')) {
627
-				$url[$n] = $r[1] . '=' . $u;
628
-				unset($ajouts[$r[1]]);
629
-			}
630
-			// Pour les tableaux on laisse tomber les valeurs de
631
-			// départ, on remplira à l'étape suivante
632
-			else {
633
-				unset($url[$n]);
634
-			}
635
-		}
636
-	}
637
-
638
-	// traiter les parametres pas encore trouves
639
-	if (
640
-		$v === null
641
-		&& ($args = func_get_args())
642
-		&& count($args) == 2
643
-	) {
644
-		return $v_read; // rien trouve ou un tableau
645
-	} elseif ($testv) {
646
-		foreach ($ajouts as $k => $n) {
647
-			if (!is_array($v)) {
648
-				$url[] = $k . '=' . $u;
649
-			} else {
650
-				$id = (str_ends_with($k, '[]')) ? $k : ($k . '[]');
651
-				foreach ($v as $w) {
652
-					$url[] = $id . '=' . (is_array($w) ? 'Array' : rawurlencode($w));
653
-				}
654
-			}
655
-		}
656
-	}
657
-
658
-	// eliminer les vides
659
-	$url = array_filter($url);
660
-
661
-	// recomposer l'adresse
662
-	if ($url) {
663
-		$a .= '?' . join($sep, $url);
664
-	}
665
-
666
-	return $a . $ancre;
572
+    // requete erronnee : plusieurs variable dans $c et aucun $v
573
+    if (str_contains($c, '|') && is_null($v)) {
574
+        return null;
575
+    }
576
+
577
+    // lever l'#ancre
578
+    if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
579
+        $url = $r[1];
580
+        $ancre = $r[2];
581
+    } else {
582
+        $ancre = '';
583
+    }
584
+
585
+    // eclater
586
+    $url = preg_split(',[?]|&amp;|&,', $url);
587
+
588
+    // recuperer la base
589
+    $a = array_shift($url);
590
+    if (!$a) {
591
+        $a = './';
592
+    }
593
+
594
+    // preparer la regexp de maniere securisee
595
+    $regexp = explode('|', $c);
596
+    foreach ($regexp as $r => $e) {
597
+        $regexp[$r] = str_replace('[]', '\[\]', preg_replace(',[^\w\d\[\]-],', '', $e));
598
+    }
599
+    $regexp = ',^(' . implode('|', $regexp) . '[[]?[]]?)(=.*)?$,';
600
+    $ajouts = array_flip(explode('|', $c));
601
+    $u = is_array($v) ? $v : rawurlencode((string) $v);
602
+    $testv = (is_array($v) ? count($v) : strlen((string) $v));
603
+    $v_read = null;
604
+    // lire les variables et agir
605
+    foreach ($url as $n => $val) {
606
+        if (preg_match($regexp, urldecode($val), $r)) {
607
+            $r = array_pad($r, 3, null);
608
+            if ($v === null) {
609
+                // c'est un tableau, on memorise les valeurs
610
+                if (str_ends_with($r[1], '[]')) {
611
+                    if (!$v_read) {
612
+                        $v_read = [];
613
+                    }
614
+                    $v_read[] = $r[2] ? substr($r[2], 1) : '';
615
+                } // c'est un scalaire, on retourne direct
616
+                else {
617
+                    return $r[2] ? substr($r[2], 1) : '';
618
+                }
619
+            } // suppression
620
+            elseif (!$testv) {
621
+                unset($url[$n]);
622
+            }
623
+            // Ajout. Pour une variable, remplacer au meme endroit,
624
+            // pour un tableau ce sera fait dans la prochaine boucle
625
+            elseif (!str_ends_with($r[1], '[]')) {
626
+                $url[$n] = $r[1] . '=' . $u;
627
+                unset($ajouts[$r[1]]);
628
+            }
629
+            // Pour les tableaux on laisse tomber les valeurs de
630
+            // départ, on remplira à l'étape suivante
631
+            else {
632
+                unset($url[$n]);
633
+            }
634
+        }
635
+    }
636
+
637
+    // traiter les parametres pas encore trouves
638
+    if (
639
+        $v === null
640
+        && ($args = func_get_args())
641
+        && count($args) == 2
642
+    ) {
643
+        return $v_read; // rien trouve ou un tableau
644
+    } elseif ($testv) {
645
+        foreach ($ajouts as $k => $n) {
646
+            if (!is_array($v)) {
647
+                $url[] = $k . '=' . $u;
648
+            } else {
649
+                $id = (str_ends_with($k, '[]')) ? $k : ($k . '[]');
650
+                foreach ($v as $w) {
651
+                    $url[] = $id . '=' . (is_array($w) ? 'Array' : rawurlencode($w));
652
+                }
653
+            }
654
+        }
655
+    }
656
+
657
+    // eliminer les vides
658
+    $url = array_filter($url);
659
+
660
+    // recomposer l'adresse
661
+    if ($url) {
662
+        $a .= '?' . join($sep, $url);
663
+    }
664
+
665
+    return $a . $ancre;
667 666
 }
668 667
 
669 668
 /**
@@ -678,22 +677,22 @@  discard block
 block discarded – undo
678 677
  * @uses translitteration()
679 678
  */
680 679
 function ancre_url(string $url, ?string $ancre = ''): string {
681
-	$ancre ??= '';
682
-	// lever l'#ancre
683
-	if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
684
-		$url = $r[1];
685
-	}
686
-	if (preg_match('/[^-_a-zA-Z0-9]+/S', $ancre)) {
687
-		if (!function_exists('translitteration')) {
688
-			include_spip('inc/charsets');
689
-		}
690
-		$ancre = preg_replace(
691
-			['/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'],
692
-			['', '-'],
693
-			translitteration($ancre)
694
-		);
695
-	}
696
-	return $url . (strlen($ancre) ? '#' . $ancre : '');
680
+    $ancre ??= '';
681
+    // lever l'#ancre
682
+    if (preg_match(',^([^#]*)(#.*)$,', $url, $r)) {
683
+        $url = $r[1];
684
+    }
685
+    if (preg_match('/[^-_a-zA-Z0-9]+/S', $ancre)) {
686
+        if (!function_exists('translitteration')) {
687
+            include_spip('inc/charsets');
688
+        }
689
+        $ancre = preg_replace(
690
+            ['/^[^-_a-zA-Z0-9]+/', '/[^-_a-zA-Z0-9]/'],
691
+            ['', '-'],
692
+            translitteration($ancre)
693
+        );
694
+    }
695
+    return $url . (strlen($ancre) ? '#' . $ancre : '');
697 696
 }
698 697
 
699 698
 /**
@@ -703,16 +702,16 @@  discard block
 block discarded – undo
703 702
  * @return string
704 703
  */
705 704
 function nettoyer_uri($reset = null) {
706
-	static $done = false;
707
-	static $propre = '';
708
-	if (!is_null($reset)) {
709
-		return $propre = $reset;
710
-	}
711
-	if ($done) {
712
-		return $propre;
713
-	}
714
-	$done = true;
715
-	return $propre = nettoyer_uri_var($GLOBALS['REQUEST_URI']);
705
+    static $done = false;
706
+    static $propre = '';
707
+    if (!is_null($reset)) {
708
+        return $propre = $reset;
709
+    }
710
+    if ($done) {
711
+        return $propre;
712
+    }
713
+    $done = true;
714
+    return $propre = nettoyer_uri_var($GLOBALS['REQUEST_URI']);
716 715
 }
717 716
 
718 717
 /**
@@ -727,36 +726,36 @@  discard block
 block discarded – undo
727 726
  * @return string
728 727
  */
729 728
 function nettoyer_uri_var($request_uri) {
730
-	static $preg_nettoyer;
731
-	if (!defined('_CONTEXTE_IGNORE_LISTE_VARIABLES')) {
732
-		/** @var array<string> Liste (regexp) de noms de variables à ignorer d’une URI */
733
-		define('_CONTEXTE_IGNORE_LISTE_VARIABLES', ['^var_', '^PHPSESSID$', '^fbclid$', '^utm_']);
734
-	}
735
-	if (empty($preg_nettoyer)) {
736
-		$preg_nettoyer_vars = _CONTEXTE_IGNORE_LISTE_VARIABLES;
737
-		foreach ($preg_nettoyer_vars as &$var) {
738
-			if (str_starts_with($var, '^')) {
739
-				$var = substr($var, 1);
740
-			} else {
741
-				$var = '[^=&]*' . $var;
742
-			}
743
-			if (str_ends_with($var, '$')) {
744
-				$var = substr($var, 0, -1);
745
-			} else {
746
-				$var .= '[^=&]*';
747
-			}
748
-		}
749
-		$preg_nettoyer = ',([?&])(' . implode('|', $preg_nettoyer_vars) . ')=[^&]*(&|$),i';
750
-	}
751
-	if (empty($request_uri)) {
752
-		return $request_uri;
753
-	}
754
-	$uri1 = $request_uri;
755
-	do {
756
-		$uri = $uri1;
757
-		$uri1 = preg_replace($preg_nettoyer, '\1', $uri);
758
-	} while ($uri <> $uri1);
759
-	return rtrim($uri1, '?&');
729
+    static $preg_nettoyer;
730
+    if (!defined('_CONTEXTE_IGNORE_LISTE_VARIABLES')) {
731
+        /** @var array<string> Liste (regexp) de noms de variables à ignorer d’une URI */
732
+        define('_CONTEXTE_IGNORE_LISTE_VARIABLES', ['^var_', '^PHPSESSID$', '^fbclid$', '^utm_']);
733
+    }
734
+    if (empty($preg_nettoyer)) {
735
+        $preg_nettoyer_vars = _CONTEXTE_IGNORE_LISTE_VARIABLES;
736
+        foreach ($preg_nettoyer_vars as &$var) {
737
+            if (str_starts_with($var, '^')) {
738
+                $var = substr($var, 1);
739
+            } else {
740
+                $var = '[^=&]*' . $var;
741
+            }
742
+            if (str_ends_with($var, '$')) {
743
+                $var = substr($var, 0, -1);
744
+            } else {
745
+                $var .= '[^=&]*';
746
+            }
747
+        }
748
+        $preg_nettoyer = ',([?&])(' . implode('|', $preg_nettoyer_vars) . ')=[^&]*(&|$),i';
749
+    }
750
+    if (empty($request_uri)) {
751
+        return $request_uri;
752
+    }
753
+    $uri1 = $request_uri;
754
+    do {
755
+        $uri = $uri1;
756
+        $uri1 = preg_replace($preg_nettoyer, '\1', $uri);
757
+    } while ($uri <> $uri1);
758
+    return rtrim($uri1, '?&');
760 759
 }
761 760
 
762 761
 
@@ -770,49 +769,49 @@  discard block
 block discarded – undo
770 769
  *    URL vers soi-même
771 770
  **/
772 771
 function self($amp = '&amp;', $root = false) {
773
-	$url = nettoyer_uri();
774
-	if (
775
-		!$root
776
-		&& (
777
-			// si pas de profondeur on peut tronquer
778
-			$GLOBALS['profondeur_url'] < (_DIR_RESTREINT ? 1 : 2)
779
-			// sinon c'est OK si _SET_HTML_BASE a ete force a false
780
-			|| defined('_SET_HTML_BASE') && !_SET_HTML_BASE
781
-		)
782
-	) {
783
-		$url = preg_replace(',^[^?]*/,', '', $url);
784
-	}
785
-	// ajouter le cas echeant les variables _POST['id_...']
786
-	foreach ($_POST as $v => $c) {
787
-		if (str_starts_with($v, 'id_')) {
788
-			$url = parametre_url($url, $v, $c, '&');
789
-		}
790
-	}
791
-
792
-	// supprimer les variables sans interet
793
-	if (test_espace_prive()) {
794
-		$url = preg_replace(',([?&])('
795
-			. 'lang|show_docs|'
796
-			. 'changer_lang|var_lang|action)=[^&]*,i', '\1', $url);
797
-		$url = preg_replace(',([?&])[&]+,', '\1', $url);
798
-		$url = preg_replace(',[&]$,', '\1', $url);
799
-	}
800
-
801
-	// eviter les hacks
802
-	include_spip('inc/filtres_mini');
803
-	$url = spip_htmlspecialchars($url);
804
-
805
-	$url = str_replace(["'", '"', '<', '[', ']', ':'], ['%27', '%22', '%3C', '%5B', '%5D', '%3A'], $url);
806
-
807
-	// &amp; ?
808
-	if ($amp != '&amp;') {
809
-		$url = str_replace('&amp;', $amp, $url);
810
-	}
811
-
812
-	// Si ca demarre par ? ou vide, donner './'
813
-	$url = preg_replace(',^([?].*)?$,', './\1', $url);
814
-
815
-	return $url;
772
+    $url = nettoyer_uri();
773
+    if (
774
+        !$root
775
+        && (
776
+            // si pas de profondeur on peut tronquer
777
+            $GLOBALS['profondeur_url'] < (_DIR_RESTREINT ? 1 : 2)
778
+            // sinon c'est OK si _SET_HTML_BASE a ete force a false
779
+            || defined('_SET_HTML_BASE') && !_SET_HTML_BASE
780
+        )
781
+    ) {
782
+        $url = preg_replace(',^[^?]*/,', '', $url);
783
+    }
784
+    // ajouter le cas echeant les variables _POST['id_...']
785
+    foreach ($_POST as $v => $c) {
786
+        if (str_starts_with($v, 'id_')) {
787
+            $url = parametre_url($url, $v, $c, '&');
788
+        }
789
+    }
790
+
791
+    // supprimer les variables sans interet
792
+    if (test_espace_prive()) {
793
+        $url = preg_replace(',([?&])('
794
+            . 'lang|show_docs|'
795
+            . 'changer_lang|var_lang|action)=[^&]*,i', '\1', $url);
796
+        $url = preg_replace(',([?&])[&]+,', '\1', $url);
797
+        $url = preg_replace(',[&]$,', '\1', $url);
798
+    }
799
+
800
+    // eviter les hacks
801
+    include_spip('inc/filtres_mini');
802
+    $url = spip_htmlspecialchars($url);
803
+
804
+    $url = str_replace(["'", '"', '<', '[', ']', ':'], ['%27', '%22', '%3C', '%5B', '%5D', '%3A'], $url);
805
+
806
+    // &amp; ?
807
+    if ($amp != '&amp;') {
808
+        $url = str_replace('&amp;', $amp, $url);
809
+    }
810
+
811
+    // Si ca demarre par ? ou vide, donner './'
812
+    $url = preg_replace(',^([?].*)?$,', './\1', $url);
813
+
814
+    return $url;
816 815
 }
817 816
 
818 817
 
@@ -823,7 +822,7 @@  discard block
 block discarded – undo
823 822
  *     true si c'est le cas, false sinon.
824 823
  */
825 824
 function test_espace_prive() {
826
-	return defined('_ESPACE_PRIVE') ? _ESPACE_PRIVE : false;
825
+    return defined('_ESPACE_PRIVE') ? _ESPACE_PRIVE : false;
827 826
 }
828 827
 
829 828
 /**
@@ -833,7 +832,7 @@  discard block
 block discarded – undo
833 832
  * @return bool
834 833
  */
835 834
 function test_plugin_actif($plugin) {
836
-	return ($plugin && defined('_DIR_PLUGIN_' . strtoupper($plugin))) ? true : false;
835
+    return ($plugin && defined('_DIR_PLUGIN_' . strtoupper($plugin))) ? true : false;
837 836
 }
838 837
 
839 838
 /**
@@ -864,52 +863,52 @@  discard block
 block discarded – undo
864 863
  *     texte
865 864
  */
866 865
 function _T($texte, $args = [], $options = []) {
867
-	static $traduire = false;
868
-	$o = ['class' => '', 'force' => true, 'sanitize' => true];
869
-	if ($options) {
870
-		// support de l'ancien argument $class
871
-		if (is_string($options)) {
872
-			$options = ['class' => $options];
873
-		}
874
-		$o = array_merge($o, $options);
875
-	}
876
-
877
-	if (!$traduire) {
878
-		$traduire = charger_fonction('traduire', 'inc');
879
-		include_spip('inc/lang');
880
-	}
881
-
882
-	// On peut passer explicitement la langue dans le tableau
883
-	// On utilise le même nom de variable que la globale
884
-	if (isset($args['spip_lang'])) {
885
-		$lang = $args['spip_lang'];
886
-		// On l'enleve pour ne pas le passer au remplacement
887
-		unset($args['spip_lang']);
888
-	} // Sinon on prend la langue du contexte
889
-	else {
890
-		$lang = $GLOBALS['spip_lang'];
891
-	}
892
-	$text = $traduire($texte, $lang);
893
-
894
-	if ($text === null || !strlen($text)) {
895
-		if (!$o['force']) {
896
-			return '';
897
-		}
898
-
899
-		$text = $texte;
900
-
901
-		// pour les chaines non traduites, assurer un service minimum
902
-		if (!$GLOBALS['test_i18n'] && _request('var_mode') != 'traduction') {
903
-			$n = strpos($text, ':');
904
-			if ($n !== false) {
905
-				$text = substr($text, $n + 1);
906
-			}
907
-			$text = str_replace('_', ' ', $text);
908
-		}
909
-		$o['class'] = null;
910
-	}
911
-
912
-	return _L($text, $args, $o);
866
+    static $traduire = false;
867
+    $o = ['class' => '', 'force' => true, 'sanitize' => true];
868
+    if ($options) {
869
+        // support de l'ancien argument $class
870
+        if (is_string($options)) {
871
+            $options = ['class' => $options];
872
+        }
873
+        $o = array_merge($o, $options);
874
+    }
875
+
876
+    if (!$traduire) {
877
+        $traduire = charger_fonction('traduire', 'inc');
878
+        include_spip('inc/lang');
879
+    }
880
+
881
+    // On peut passer explicitement la langue dans le tableau
882
+    // On utilise le même nom de variable que la globale
883
+    if (isset($args['spip_lang'])) {
884
+        $lang = $args['spip_lang'];
885
+        // On l'enleve pour ne pas le passer au remplacement
886
+        unset($args['spip_lang']);
887
+    } // Sinon on prend la langue du contexte
888
+    else {
889
+        $lang = $GLOBALS['spip_lang'];
890
+    }
891
+    $text = $traduire($texte, $lang);
892
+
893
+    if ($text === null || !strlen($text)) {
894
+        if (!$o['force']) {
895
+            return '';
896
+        }
897
+
898
+        $text = $texte;
899
+
900
+        // pour les chaines non traduites, assurer un service minimum
901
+        if (!$GLOBALS['test_i18n'] && _request('var_mode') != 'traduction') {
902
+            $n = strpos($text, ':');
903
+            if ($n !== false) {
904
+                $text = substr($text, $n + 1);
905
+            }
906
+            $text = str_replace('_', ' ', $text);
907
+        }
908
+        $o['class'] = null;
909
+    }
910
+
911
+    return _L($text, $args, $o);
913 912
 }
914 913
 
915 914
 
@@ -936,53 +935,53 @@  discard block
 block discarded – undo
936 935
  *     texte
937 936
  */
938 937
 function _L($text, $args = [], $options = []) {
939
-	$f = $text;
940
-	$defaut_options = [
941
-		'class' => null,
942
-		'sanitize' => true,
943
-	];
944
-	// support de l'ancien argument $class
945
-	if ($options && is_string($options)) {
946
-		$options = ['class' => $options];
947
-	}
948
-	if (is_array($options)) {
949
-		$options += $defaut_options;
950
-	} else {
951
-		$options = $defaut_options;
952
-	}
953
-
954
-	if (is_array($args) && count($args)) {
955
-		if (!function_exists('interdire_scripts')) {
956
-			include_spip('inc/texte');
957
-		}
958
-		if (!function_exists('echapper_html_suspect')) {
959
-			include_spip('inc/texte_mini');
960
-		}
961
-		foreach ($args as $name => $value) {
962
-			if (str_contains($text, (string) "@$name@")) {
963
-				if ($options['sanitize']) {
964
-					$value = echapper_html_suspect($value);
965
-					$value = interdire_scripts($value, -1);
966
-				}
967
-				if (!empty($options['class'])) {
968
-					$value = "<span class='" . $options['class'] . "'>$value</span>";
969
-				}
970
-				$text = str_replace("@$name@", (string) $value, (string) $text);
971
-				unset($args[$name]);
972
-			}
973
-		}
974
-		// Si des variables n'ont pas ete inserees, le signaler
975
-		// (chaines de langues pas a jour)
976
-		if ($args) {
977
-			spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)), _LOG_DEBUG);
978
-		}
979
-	}
980
-
981
-	if (($GLOBALS['test_i18n'] || _request('var_mode') == 'traduction') && is_null($options['class'])) {
982
-		return "<span class='debug-traduction-erreur'>$text</span>";
983
-	} else {
984
-		return $text;
985
-	}
938
+    $f = $text;
939
+    $defaut_options = [
940
+        'class' => null,
941
+        'sanitize' => true,
942
+    ];
943
+    // support de l'ancien argument $class
944
+    if ($options && is_string($options)) {
945
+        $options = ['class' => $options];
946
+    }
947
+    if (is_array($options)) {
948
+        $options += $defaut_options;
949
+    } else {
950
+        $options = $defaut_options;
951
+    }
952
+
953
+    if (is_array($args) && count($args)) {
954
+        if (!function_exists('interdire_scripts')) {
955
+            include_spip('inc/texte');
956
+        }
957
+        if (!function_exists('echapper_html_suspect')) {
958
+            include_spip('inc/texte_mini');
959
+        }
960
+        foreach ($args as $name => $value) {
961
+            if (str_contains($text, (string) "@$name@")) {
962
+                if ($options['sanitize']) {
963
+                    $value = echapper_html_suspect($value);
964
+                    $value = interdire_scripts($value, -1);
965
+                }
966
+                if (!empty($options['class'])) {
967
+                    $value = "<span class='" . $options['class'] . "'>$value</span>";
968
+                }
969
+                $text = str_replace("@$name@", (string) $value, (string) $text);
970
+                unset($args[$name]);
971
+            }
972
+        }
973
+        // Si des variables n'ont pas ete inserees, le signaler
974
+        // (chaines de langues pas a jour)
975
+        if ($args) {
976
+            spip_log("$f:  variables inutilisees " . join(', ', array_keys($args)), _LOG_DEBUG);
977
+        }
978
+    }
979
+
980
+    if (($GLOBALS['test_i18n'] || _request('var_mode') == 'traduction') && is_null($options['class'])) {
981
+        return "<span class='debug-traduction-erreur'>$text</span>";
982
+    } else {
983
+        return $text;
984
+    }
986 985
 }
987 986
 
988 987
 
@@ -996,13 +995,13 @@  discard block
 block discarded – undo
996 995
  * @return string
997 996
  */
998 997
 function joli_repertoire($rep) {
999
-	$a = substr($rep, 0, 1);
1000
-	if ($a <> '.' && $a <> '/') {
1001
-		$rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS) . $rep;
1002
-	}
1003
-	$rep = preg_replace(',(^\.\.\/),', '', $rep);
998
+    $a = substr($rep, 0, 1);
999
+    if ($a <> '.' && $a <> '/') {
1000
+        $rep = (_DIR_RESTREINT ? '' : _DIR_RESTREINT_ABS) . $rep;
1001
+    }
1002
+    $rep = preg_replace(',(^\.\.\/),', '', $rep);
1004 1003
 
1005
-	return $rep;
1004
+    return $rep;
1006 1005
 }
1007 1006
 
1008 1007
 
@@ -1027,54 +1026,54 @@  discard block
 block discarded – undo
1027 1026
  * @return float|int|string|void
1028 1027
  */
1029 1028
 function spip_timer($t = 'rien', $raw = false) {
1030
-	static $time;
1031
-	$a = time();
1032
-	$b = microtime();
1033
-	// microtime peut contenir les microsecondes et le temps
1034
-	$b = explode(' ', $b);
1035
-	if (count($b) == 2) {
1036
-		$a = end($b);
1037
-	} // plus precis !
1038
-	$b = reset($b);
1039
-	if (!isset($time[$t])) {
1040
-		$time[$t] = $a + $b;
1041
-	} else {
1042
-		$p = ($a + $b - $time[$t]) * 1000;
1043
-		unset($time[$t]);
1029
+    static $time;
1030
+    $a = time();
1031
+    $b = microtime();
1032
+    // microtime peut contenir les microsecondes et le temps
1033
+    $b = explode(' ', $b);
1034
+    if (count($b) == 2) {
1035
+        $a = end($b);
1036
+    } // plus precis !
1037
+    $b = reset($b);
1038
+    if (!isset($time[$t])) {
1039
+        $time[$t] = $a + $b;
1040
+    } else {
1041
+        $p = ($a + $b - $time[$t]) * 1000;
1042
+        unset($time[$t]);
1044 1043
 #			echo "'$p'";exit;
1045
-		if ($raw) {
1046
-			return $p;
1047
-		}
1048
-		if ($p < 1000) {
1049
-			$s = '';
1050
-		} else {
1051
-			$s = sprintf('%d ', $x = floor($p / 1000));
1052
-			$p -= ($x * 1000);
1053
-		}
1044
+        if ($raw) {
1045
+            return $p;
1046
+        }
1047
+        if ($p < 1000) {
1048
+            $s = '';
1049
+        } else {
1050
+            $s = sprintf('%d ', $x = floor($p / 1000));
1051
+            $p -= ($x * 1000);
1052
+        }
1054 1053
 
1055
-		return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1056
-	}
1054
+        return $s . sprintf($s ? '%07.3f ms' : '%.3f ms', $p);
1055
+    }
1057 1056
 }
1058 1057
 
1059 1058
 
1060 1059
 // Renvoie False si un fichier n'est pas plus vieux que $duree secondes,
1061 1060
 // sinon renvoie True et le date sauf si ca n'est pas souhaite
1062 1061
 function spip_touch($fichier, $duree = 0, $touch = true) {
1063
-	if ($duree) {
1064
-		clearstatcache();
1065
-		if (($f = @filemtime($fichier)) && $f >= time() - $duree) {
1066
-			return false;
1067
-		}
1068
-	}
1069
-	if ($touch !== false) {
1070
-		if (!@touch($fichier)) {
1071
-			spip_unlink($fichier);
1072
-			@touch($fichier);
1073
-		};
1074
-		@chmod($fichier, _SPIP_CHMOD & ~0111);
1075
-	}
1062
+    if ($duree) {
1063
+        clearstatcache();
1064
+        if (($f = @filemtime($fichier)) && $f >= time() - $duree) {
1065
+            return false;
1066
+        }
1067
+    }
1068
+    if ($touch !== false) {
1069
+        if (!@touch($fichier)) {
1070
+            spip_unlink($fichier);
1071
+            @touch($fichier);
1072
+        };
1073
+        @chmod($fichier, _SPIP_CHMOD & ~0111);
1074
+    }
1076 1075
 
1077
-	return true;
1076
+    return true;
1078 1077
 }
1079 1078
 
1080 1079
 
@@ -1085,11 +1084,11 @@  discard block
 block discarded – undo
1085 1084
  * @uses cron()
1086 1085
  **/
1087 1086
 function action_cron() {
1088
-	include_spip('inc/headers');
1089
-	http_response_code(204); // No Content
1090
-	header('Connection: close');
1091
-	define('_DIRECT_CRON_FORCE', true);
1092
-	cron();
1087
+    include_spip('inc/headers');
1088
+    http_response_code(204); // No Content
1089
+    header('Connection: close');
1090
+    define('_DIRECT_CRON_FORCE', true);
1091
+    cron();
1093 1092
 }
1094 1093
 
1095 1094
 /**
@@ -1105,26 +1104,26 @@  discard block
 block discarded – undo
1105 1104
  *     True si la tache a pu être effectuée
1106 1105
  */
1107 1106
 function cron($taches = [], $taches_old = []) {
1108
-	// si pas en mode cron force, laisser tomber.
1109
-	if (!defined('_DIRECT_CRON_FORCE')) {
1110
-		return false;
1111
-	}
1112
-	if (!is_array($taches)) {
1113
-		$taches = $taches_old;
1114
-	} // compat anciens appels
1115
-	// si taches a inserer en base et base inaccessible, laisser tomber
1116
-	// sinon on ne verifie pas la connexion tout de suite, car si ca se trouve
1117
-	// queue_sleep_time_to_next_job() dira qu'il n'y a rien a faire
1118
-	// et on evite d'ouvrir une connexion pour rien (utilisation de _DIRECT_CRON_FORCE dans mes_options.php)
1119
-	if ($taches && count($taches) && !spip_connect()) {
1120
-		return false;
1121
-	}
1122
-	spip_log('cron !', 'jq' . _LOG_DEBUG);
1123
-	if ($genie = charger_fonction('genie', 'inc', true)) {
1124
-		return $genie($taches);
1125
-	}
1126
-
1127
-	return false;
1107
+    // si pas en mode cron force, laisser tomber.
1108
+    if (!defined('_DIRECT_CRON_FORCE')) {
1109
+        return false;
1110
+    }
1111
+    if (!is_array($taches)) {
1112
+        $taches = $taches_old;
1113
+    } // compat anciens appels
1114
+    // si taches a inserer en base et base inaccessible, laisser tomber
1115
+    // sinon on ne verifie pas la connexion tout de suite, car si ca se trouve
1116
+    // queue_sleep_time_to_next_job() dira qu'il n'y a rien a faire
1117
+    // et on evite d'ouvrir une connexion pour rien (utilisation de _DIRECT_CRON_FORCE dans mes_options.php)
1118
+    if ($taches && count($taches) && !spip_connect()) {
1119
+        return false;
1120
+    }
1121
+    spip_log('cron !', 'jq' . _LOG_DEBUG);
1122
+    if ($genie = charger_fonction('genie', 'inc', true)) {
1123
+        return $genie($taches);
1124
+    }
1125
+
1126
+    return false;
1128 1127
 }
1129 1128
 
1130 1129
 /**
@@ -1156,17 +1155,17 @@  discard block
 block discarded – undo
1156 1155
  *     Le numéro de travail ajouté ou `0` si aucun travail n’a été ajouté.
1157 1156
  */
1158 1157
 function job_queue_add(
1159
-	$function,
1160
-	$description,
1161
-	$arguments = [],
1162
-	$file = '',
1163
-	$no_duplicate = false,
1164
-	$time = 0,
1165
-	$priority = 0
1158
+    $function,
1159
+    $description,
1160
+    $arguments = [],
1161
+    $file = '',
1162
+    $no_duplicate = false,
1163
+    $time = 0,
1164
+    $priority = 0
1166 1165
 ) {
1167
-	include_spip('inc/queue');
1166
+    include_spip('inc/queue');
1168 1167
 
1169
-	return queue_add_job($function, $description, $arguments, $file, $no_duplicate, $time, $priority);
1168
+    return queue_add_job($function, $description, $arguments, $file, $no_duplicate, $time, $priority);
1170 1169
 }
1171 1170
 
1172 1171
 /**
@@ -1177,9 +1176,9 @@  discard block
 block discarded – undo
1177 1176
  * @return bool
1178 1177
  */
1179 1178
 function job_queue_remove($id_job) {
1180
-	include_spip('inc/queue');
1179
+    include_spip('inc/queue');
1181 1180
 
1182
-	return queue_remove_job($id_job);
1181
+    return queue_remove_job($id_job);
1183 1182
 }
1184 1183
 
1185 1184
 /**
@@ -1192,9 +1191,9 @@  discard block
 block discarded – undo
1192 1191
  *     or an array of simple array to link multiples objet in one time
1193 1192
  */
1194 1193
 function job_queue_link($id_job, $objets) {
1195
-	include_spip('inc/queue');
1194
+    include_spip('inc/queue');
1196 1195
 
1197
-	return queue_link_job($id_job, $objets);
1196
+    return queue_link_job($id_job, $objets);
1198 1197
 }
1199 1198
 
1200 1199
 
@@ -1213,37 +1212,37 @@  discard block
 block discarded – undo
1213 1212
  *  - `null` si la queue n'est pas encore initialisée
1214 1213
  */
1215 1214
 function queue_sleep_time_to_next_job($force = null) {
1216
-	static $queue_next_job_time = -1;
1217
-	if ($force === true) {
1218
-		$queue_next_job_time = -1;
1219
-	} elseif ($force) {
1220
-		$queue_next_job_time = $force;
1221
-	}
1222
-
1223
-	if ($queue_next_job_time == -1) {
1224
-		if (!defined('_JQ_NEXT_JOB_TIME_FILENAME')) {
1225
-			define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP . 'job_queue_next.txt');
1226
-		}
1227
-		// utiliser un cache memoire si dispo
1228
-		if (function_exists('cache_get') && defined('_MEMOIZE_MEMORY') && _MEMOIZE_MEMORY) {
1229
-			$queue_next_job_time = cache_get(_JQ_NEXT_JOB_TIME_FILENAME);
1230
-		} else {
1231
-			$queue_next_job_time = null;
1232
-			$contenu = null;
1233
-			if (lire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, $contenu)) {
1234
-				$queue_next_job_time = intval($contenu);
1235
-			}
1236
-		}
1237
-	}
1238
-
1239
-	if (is_null($queue_next_job_time)) {
1240
-		return null;
1241
-	}
1242
-	if (!$_SERVER['REQUEST_TIME']) {
1243
-		$_SERVER['REQUEST_TIME'] = time();
1244
-	}
1245
-
1246
-	return $queue_next_job_time - $_SERVER['REQUEST_TIME'];
1215
+    static $queue_next_job_time = -1;
1216
+    if ($force === true) {
1217
+        $queue_next_job_time = -1;
1218
+    } elseif ($force) {
1219
+        $queue_next_job_time = $force;
1220
+    }
1221
+
1222
+    if ($queue_next_job_time == -1) {
1223
+        if (!defined('_JQ_NEXT_JOB_TIME_FILENAME')) {
1224
+            define('_JQ_NEXT_JOB_TIME_FILENAME', _DIR_TMP . 'job_queue_next.txt');
1225
+        }
1226
+        // utiliser un cache memoire si dispo
1227
+        if (function_exists('cache_get') && defined('_MEMOIZE_MEMORY') && _MEMOIZE_MEMORY) {
1228
+            $queue_next_job_time = cache_get(_JQ_NEXT_JOB_TIME_FILENAME);
1229
+        } else {
1230
+            $queue_next_job_time = null;
1231
+            $contenu = null;
1232
+            if (lire_fichier(_JQ_NEXT_JOB_TIME_FILENAME, $contenu)) {
1233
+                $queue_next_job_time = intval($contenu);
1234
+            }
1235
+        }
1236
+    }
1237
+
1238
+    if (is_null($queue_next_job_time)) {
1239
+        return null;
1240
+    }
1241
+    if (!$_SERVER['REQUEST_TIME']) {
1242
+        $_SERVER['REQUEST_TIME'] = time();
1243
+    }
1244
+
1245
+    return $queue_next_job_time - $_SERVER['REQUEST_TIME'];
1247 1246
 }
1248 1247
 
1249 1248
 
@@ -1255,11 +1254,11 @@  discard block
 block discarded – undo
1255 1254
  * @return string
1256 1255
  */
1257 1256
 function quote_amp($u) {
1258
-	return preg_replace(
1259
-		'/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,6};)/i',
1260
-		'&amp;',
1261
-		$u
1262
-	);
1257
+    return preg_replace(
1258
+        '/&(?![a-z]{0,4}\w{2,3};|#x?[0-9a-f]{2,6};)/i',
1259
+        '&amp;',
1260
+        $u
1261
+    );
1263 1262
 }
1264 1263
 
1265 1264
 
@@ -1282,27 +1281,27 @@  discard block
 block discarded – undo
1282 1281
  *     Balise HTML `<script>` et son contenu
1283 1282
  **/
1284 1283
 function http_script($script, $src = '', $noscript = '') {
1285
-	static $done = [];
1284
+    static $done = [];
1286 1285
 
1287
-	if ($src && !isset($done[$src])) {
1288
-		$done[$src] = true;
1289
-		$src = find_in_path($src, _JAVASCRIPT);
1290
-		$src = " src='$src'";
1291
-	} else {
1292
-		$src = '';
1293
-	}
1294
-	if ($script) {
1295
-		$script = ("/*<![CDATA[*/\n" .
1296
-			preg_replace(',</([^>]*)>,', '<\/\1>', $script) .
1297
-			'/*]]>*/');
1298
-	}
1299
-	if ($noscript) {
1300
-		$noscript = "<noscript>\n\t$noscript\n</noscript>\n";
1301
-	}
1286
+    if ($src && !isset($done[$src])) {
1287
+        $done[$src] = true;
1288
+        $src = find_in_path($src, _JAVASCRIPT);
1289
+        $src = " src='$src'";
1290
+    } else {
1291
+        $src = '';
1292
+    }
1293
+    if ($script) {
1294
+        $script = ("/*<![CDATA[*/\n" .
1295
+            preg_replace(',</([^>]*)>,', '<\/\1>', $script) .
1296
+            '/*]]>*/');
1297
+    }
1298
+    if ($noscript) {
1299
+        $noscript = "<noscript>\n\t$noscript\n</noscript>\n";
1300
+    }
1302 1301
 
1303
-	return ($src || $script || $noscript)
1304
-		? "<script type='text/javascript'$src>$script</script>$noscript"
1305
-		: '';
1302
+    return ($src || $script || $noscript)
1303
+        ? "<script type='text/javascript'$src>$script</script>$noscript"
1304
+        : '';
1306 1305
 }
1307 1306
 
1308 1307
 
@@ -1337,10 +1336,10 @@  discard block
 block discarded – undo
1337 1336
  *     texte échappé
1338 1337
  **/
1339 1338
 function texte_script(?string $texte): string {
1340
-	if ($texte === null || $texte === '') {
1341
-		return '';
1342
-	}
1343
-	return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte));
1339
+    if ($texte === null || $texte === '') {
1340
+        return '';
1341
+    }
1342
+    return str_replace('\'', '\\\'', str_replace('\\', '\\\\', $texte));
1344 1343
 }
1345 1344
 
1346 1345
 
@@ -1377,68 +1376,68 @@  discard block
 block discarded – undo
1377 1376
  *     Liste des chemins, par ordre de priorité.
1378 1377
  **/
1379 1378
 function _chemin($dir_path = null) {
1380
-	static $path_base = null;
1381
-	static $path_full = null;
1382
-	if ($path_base == null) {
1383
-		// Chemin standard depuis l'espace public
1384
-		$path = defined('_SPIP_PATH') ? _SPIP_PATH :
1385
-			_DIR_RACINE . ':' .
1386
-			_DIR_RACINE . 'squelettes-dist/:' .
1387
-			_DIR_RACINE . 'prive/:' .
1388
-			_DIR_RESTREINT;
1389
-		// Ajouter squelettes/
1390
-		if (@is_dir(_DIR_RACINE . 'squelettes')) {
1391
-			$path = _DIR_RACINE . 'squelettes/:' . $path;
1392
-		}
1393
-		foreach (explode(':', $path) as $dir) {
1394
-			if (strlen($dir) && !str_ends_with($dir, '/')) {
1395
-				$dir .= '/';
1396
-			}
1397
-			$path_base[] = $dir;
1398
-		}
1399
-		$path_full = $path_base;
1400
-		// Et le(s) dossier(s) des squelettes nommes
1401
-		if (strlen($GLOBALS['dossier_squelettes'])) {
1402
-			foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1403
-				array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
1404
-			}
1405
-		}
1406
-		$GLOBALS['path_sig'] = md5(serialize($path_full));
1407
-	}
1408
-	if ($dir_path === null) {
1409
-		return $path_full;
1410
-	}
1411
-
1412
-	if (is_array($dir_path) || strlen($dir_path)) {
1413
-		$tete = '';
1414
-		if (reset($path_base) == _DIR_RACINE . 'squelettes/') {
1415
-			$tete = array_shift($path_base);
1416
-		}
1417
-		$dirs = (is_array($dir_path) ? $dir_path : explode(':', $dir_path));
1418
-		$dirs = array_reverse($dirs);
1419
-		foreach ($dirs as $dir_path) {
1420
-			if (!str_ends_with($dir_path, '/')) {
1421
-				$dir_path .= '/';
1422
-			}
1423
-			if (!in_array($dir_path, $path_base)) {
1424
-				array_unshift($path_base, $dir_path);
1425
-			}
1426
-		}
1427
-		if (strlen($tete)) {
1428
-			array_unshift($path_base, $tete);
1429
-		}
1430
-	}
1431
-	$path_full = $path_base;
1432
-	// Et le(s) dossier(s) des squelettes nommes
1433
-	if (strlen($GLOBALS['dossier_squelettes'])) {
1434
-		foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1435
-			array_unshift($path_full, ((isset($d[0]) && $d[0] == '/') ? '' : _DIR_RACINE) . $d . '/');
1436
-		}
1437
-	}
1438
-
1439
-	$GLOBALS['path_sig'] = md5(serialize($path_full));
1440
-
1441
-	return $path_full;
1379
+    static $path_base = null;
1380
+    static $path_full = null;
1381
+    if ($path_base == null) {
1382
+        // Chemin standard depuis l'espace public
1383
+        $path = defined('_SPIP_PATH') ? _SPIP_PATH :
1384
+            _DIR_RACINE . ':' .
1385
+            _DIR_RACINE . 'squelettes-dist/:' .
1386
+            _DIR_RACINE . 'prive/:' .
1387
+            _DIR_RESTREINT;
1388
+        // Ajouter squelettes/
1389
+        if (@is_dir(_DIR_RACINE . 'squelettes')) {
1390
+            $path = _DIR_RACINE . 'squelettes/:' . $path;
1391
+        }
1392
+        foreach (explode(':', $path) as $dir) {
1393
+            if (strlen($dir) && !str_ends_with($dir, '/')) {
1394
+                $dir .= '/';
1395
+            }
1396
+            $path_base[] = $dir;
1397
+        }
1398
+        $path_full = $path_base;
1399
+        // Et le(s) dossier(s) des squelettes nommes
1400
+        if (strlen($GLOBALS['dossier_squelettes'])) {
1401
+            foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1402
+                array_unshift($path_full, ($d[0] == '/' ? '' : _DIR_RACINE) . $d . '/');
1403
+            }
1404
+        }
1405
+        $GLOBALS['path_sig'] = md5(serialize($path_full));
1406
+    }
1407
+    if ($dir_path === null) {
1408
+        return $path_full;
1409
+    }
1410
+
1411
+    if (is_array($dir_path) || strlen($dir_path)) {
1412
+        $tete = '';
1413
+        if (reset($path_base) == _DIR_RACINE . 'squelettes/') {
1414
+            $tete = array_shift($path_base);
1415
+        }
1416
+        $dirs = (is_array($dir_path) ? $dir_path : explode(':', $dir_path));
1417
+        $dirs = array_reverse($dirs);
1418
+        foreach ($dirs as $dir_path) {
1419
+            if (!str_ends_with($dir_path, '/')) {
1420
+                $dir_path .= '/';
1421
+            }
1422
+            if (!in_array($dir_path, $path_base)) {
1423
+                array_unshift($path_base, $dir_path);
1424
+            }
1425
+        }
1426
+        if (strlen($tete)) {
1427
+            array_unshift($path_base, $tete);
1428
+        }
1429
+    }
1430
+    $path_full = $path_base;
1431
+    // Et le(s) dossier(s) des squelettes nommes
1432
+    if (strlen($GLOBALS['dossier_squelettes'])) {
1433
+        foreach (array_reverse(explode(':', $GLOBALS['dossier_squelettes'])) as $d) {
1434
+            array_unshift($path_full, ((isset($d[0]) && $d[0] == '/') ? '' : _DIR_RACINE) . $d . '/');
1435
+        }
1436
+    }
1437
+
1438
+    $GLOBALS['path_sig'] = md5(serialize($path_full));
1439
+
1440
+    return $path_full;
1442 1441
 }
1443 1442
 
1444 1443
 /**
@@ -1451,17 +1450,17 @@  discard block
 block discarded – undo
1451 1450
  * @return array Liste de chemins
1452 1451
  **/
1453 1452
 function creer_chemin() {
1454
-	$path_a = _chemin();
1455
-	static $c = '';
1453
+    $path_a = _chemin();
1454
+    static $c = '';
1456 1455
 
1457
-	// on calcule le chemin si le dossier skel a change
1458
-	if ($c != $GLOBALS['dossier_squelettes']) {
1459
-		// assurer le non plantage lors de la montee de version :
1460
-		$c = $GLOBALS['dossier_squelettes'];
1461
-		$path_a = _chemin(''); // forcer un recalcul du chemin
1462
-	}
1456
+    // on calcule le chemin si le dossier skel a change
1457
+    if ($c != $GLOBALS['dossier_squelettes']) {
1458
+        // assurer le non plantage lors de la montee de version :
1459
+        $c = $GLOBALS['dossier_squelettes'];
1460
+        $path_a = _chemin(''); // forcer un recalcul du chemin
1461
+    }
1463 1462
 
1464
-	return $path_a;
1463
+    return $path_a;
1465 1464
 }
1466 1465
 
1467 1466
 
@@ -1473,61 +1472,61 @@  discard block
 block discarded – undo
1473 1472
  * @return string[] Nom des thèmes.
1474 1473
  */
1475 1474
 function lister_themes_prives(): array {
1476
-	static $themes = null;
1477
-	if (is_null($themes)) {
1478
-		// si pas encore definie
1479
-		if (!defined('_SPIP_THEME_PRIVE')) {
1480
-			define('_SPIP_THEME_PRIVE', 'spip');
1481
-		}
1482
-		$themes = [_SPIP_THEME_PRIVE];
1483
-		// Lors d'une installation neuve, prefs n'est pas definie ; sinon, c'est un tableau sérialisé
1484
-		// FIXME: Aussitôt après une demande d'inscription, $prefs vaut une chaine statut_tmp;
1485
-		$prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
1486
-		if (is_string($prefs) && stripos($prefs, 'a:') === 0) {
1487
-			$prefs = unserialize($prefs);
1488
-		} else {
1489
-			$prefs = [];
1490
-		}
1491
-
1492
-		$theme = $prefs['theme'] ?? $GLOBALS['theme_prive_defaut'] ?? null;
1493
-		if ($theme && $theme !== _SPIP_THEME_PRIVE) {
1494
-			// placer le theme choisi en tete
1495
-			array_unshift($themes, $theme);
1496
-		}
1497
-	}
1498
-
1499
-	return $themes;
1475
+    static $themes = null;
1476
+    if (is_null($themes)) {
1477
+        // si pas encore definie
1478
+        if (!defined('_SPIP_THEME_PRIVE')) {
1479
+            define('_SPIP_THEME_PRIVE', 'spip');
1480
+        }
1481
+        $themes = [_SPIP_THEME_PRIVE];
1482
+        // Lors d'une installation neuve, prefs n'est pas definie ; sinon, c'est un tableau sérialisé
1483
+        // FIXME: Aussitôt après une demande d'inscription, $prefs vaut une chaine statut_tmp;
1484
+        $prefs = $GLOBALS['visiteur_session']['prefs'] ?? [];
1485
+        if (is_string($prefs) && stripos($prefs, 'a:') === 0) {
1486
+            $prefs = unserialize($prefs);
1487
+        } else {
1488
+            $prefs = [];
1489
+        }
1490
+
1491
+        $theme = $prefs['theme'] ?? $GLOBALS['theme_prive_defaut'] ?? null;
1492
+        if ($theme && $theme !== _SPIP_THEME_PRIVE) {
1493
+            // placer le theme choisi en tete
1494
+            array_unshift($themes, $theme);
1495
+        }
1496
+    }
1497
+
1498
+    return $themes;
1500 1499
 }
1501 1500
 
1502 1501
 function find_in_theme($file, $subdir = '', $include = false) {
1503
-	static $themefiles = [];
1504
-	if (isset($themefiles["$subdir$file"])) {
1505
-		return $themefiles["$subdir$file"];
1506
-	}
1507
-	// on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png
1508
-	// si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png
1509
-	if (
1510
-		preg_match(',-(\d+)[.](png|gif|svg)$,', $file, $m)
1511
-		&& ($file_svg_generique = substr($file, 0, -strlen($m[0])) . '-xx.svg')
1512
-		&& ($f = find_in_theme("$file_svg_generique"))
1513
-	) {
1514
-		if (($fsize = substr($f, 0, -6) . $m[1] . '.svg') && file_exists($fsize)) {
1515
-			return $themefiles["$subdir$file"] = $fsize;
1516
-		}
1517
-		else {
1518
-			return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1519
-		}
1520
-	}
1521
-
1522
-	$themes = lister_themes_prives();
1523
-	foreach ($themes as $theme) {
1524
-		if ($f = find_in_path($file, "prive/themes/$theme/$subdir", $include)) {
1525
-			return $themefiles["$subdir$file"] = $f;
1526
-		}
1527
-	}
1528
-	spip_log("$file introuvable dans le theme prive " . reset($themes), 'theme');
1529
-
1530
-	return $themefiles["$subdir$file"] = '';
1502
+    static $themefiles = [];
1503
+    if (isset($themefiles["$subdir$file"])) {
1504
+        return $themefiles["$subdir$file"];
1505
+    }
1506
+    // on peut fournir une icone generique -xx.svg qui fera le job dans toutes les tailles, et qui est prioritaire sur le png
1507
+    // si il y a un .svg a la bonne taille (-16.svg) a cote, on l'utilise en remplacement du -16.png
1508
+    if (
1509
+        preg_match(',-(\d+)[.](png|gif|svg)$,', $file, $m)
1510
+        && ($file_svg_generique = substr($file, 0, -strlen($m[0])) . '-xx.svg')
1511
+        && ($f = find_in_theme("$file_svg_generique"))
1512
+    ) {
1513
+        if (($fsize = substr($f, 0, -6) . $m[1] . '.svg') && file_exists($fsize)) {
1514
+            return $themefiles["$subdir$file"] = $fsize;
1515
+        }
1516
+        else {
1517
+            return $themefiles["$subdir$file"] = "$f?" . $m[1] . 'px';
1518
+        }
1519
+    }
1520
+
1521
+    $themes = lister_themes_prives();
1522
+    foreach ($themes as $theme) {
1523
+        if ($f = find_in_path($file, "prive/themes/$theme/$subdir", $include)) {
1524
+            return $themefiles["$subdir$file"] = $f;
1525
+        }
1526
+    }
1527
+    spip_log("$file introuvable dans le theme prive " . reset($themes), 'theme');
1528
+
1529
+    return $themefiles["$subdir$file"] = '';
1531 1530
 }
1532 1531
 
1533 1532
 
@@ -1551,31 +1550,31 @@  discard block
 block discarded – undo
1551 1550
  *     sinon chaîne vide.
1552 1551
  **/
1553 1552
 function chemin_image($icone) {
1554
-	static $icone_renommer;
1555
-	if ($p = strpos($icone, '?')) {
1556
-		$icone = substr($icone, 0, $p);
1557
-	}
1558
-	// gerer le cas d'un double appel en evitant de refaire le travail inutilement
1559
-	if (str_contains($icone, '/') && file_exists($icone)) {
1560
-		return $icone;
1561
-	}
1562
-
1563
-	// si c'est un nom d'image complet (article-24.png) essayer de le renvoyer direct
1564
-	if (preg_match(',[.](png|gif|jpg|webp|svg)$,', $icone) && ($f = find_in_theme("images/$icone"))) {
1565
-		return $f;
1566
-	}
1567
-	// sinon passer par le module de renommage
1568
-	if (is_null($icone_renommer)) {
1569
-		$icone_renommer = charger_fonction('icone_renommer', 'inc', true);
1570
-	}
1571
-	if ($icone_renommer) {
1572
-		[$icone, $fonction] = $icone_renommer($icone, '');
1573
-		if (file_exists($icone)) {
1574
-			return $icone;
1575
-		}
1576
-	}
1577
-
1578
-	return find_in_path($icone, _NOM_IMG_PACK);
1553
+    static $icone_renommer;
1554
+    if ($p = strpos($icone, '?')) {
1555
+        $icone = substr($icone, 0, $p);
1556
+    }
1557
+    // gerer le cas d'un double appel en evitant de refaire le travail inutilement
1558
+    if (str_contains($icone, '/') && file_exists($icone)) {
1559
+        return $icone;
1560
+    }
1561
+
1562
+    // si c'est un nom d'image complet (article-24.png) essayer de le renvoyer direct
1563
+    if (preg_match(',[.](png|gif|jpg|webp|svg)$,', $icone) && ($f = find_in_theme("images/$icone"))) {
1564
+        return $f;
1565
+    }
1566
+    // sinon passer par le module de renommage
1567
+    if (is_null($icone_renommer)) {
1568
+        $icone_renommer = charger_fonction('icone_renommer', 'inc', true);
1569
+    }
1570
+    if ($icone_renommer) {
1571
+        [$icone, $fonction] = $icone_renommer($icone, '');
1572
+        if (file_exists($icone)) {
1573
+            return $icone;
1574
+        }
1575
+    }
1576
+
1577
+    return find_in_path($icone, _NOM_IMG_PACK);
1579 1578
 }
1580 1579
 
1581 1580
 //
@@ -1613,128 +1612,128 @@  discard block
 block discarded – undo
1613 1612
  *     - false : fichier introuvable
1614 1613
  **/
1615 1614
 function find_in_path($file, $dirname = '', $include = false) {
1616
-	static $dirs = [];
1617
-	static $inc = []; # cf https://git.spip.net/spip/spip/commit/42e4e028e38c839121efaee84308d08aee307eec
1618
-	static $c = '';
1619
-
1620
-	if (!$file && !strlen($file)) {
1621
-		return false;
1622
-	}
1623
-
1624
-	// on calcule le chemin si le dossier skel a change
1625
-	if ($c != $GLOBALS['dossier_squelettes']) {
1626
-		// assurer le non plantage lors de la montee de version :
1627
-		$c = $GLOBALS['dossier_squelettes'];
1628
-		creer_chemin(); // forcer un recalcul du chemin et la mise a jour de path_sig
1629
-	}
1630
-
1631
-	if (isset($GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])) {
1632
-		if (!$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file]) {
1633
-			return false;
1634
-		}
1635
-		if ($include && !isset($inc[$dirname][$file])) {
1636
-			include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1637
-			$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1638
-		}
1639
-
1640
-		return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1641
-	}
1642
-
1643
-	$a = strrpos($file, '/');
1644
-	if ($a !== false) {
1645
-		$dirname .= substr($file, 0, ++$a);
1646
-		$file = substr($file, $a);
1647
-	}
1648
-
1649
-	foreach (creer_chemin() as $dir) {
1650
-		if (!isset($dirs[$a = $dir . $dirname])) {
1651
-			$dirs[$a] = (is_dir(_ROOT_CWD . $a) || !$a);
1652
-		}
1653
-		if ($dirs[$a]) {
1654
-			if (file_exists(_ROOT_CWD . ($a .= $file))) {
1655
-				if ($include && !isset($inc[$dirname][$file])) {
1656
-					include_once _ROOT_CWD . $a;
1657
-					$inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1658
-				}
1659
-				if (!defined('_SAUVER_CHEMIN')) {
1660
-					// si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1661
-					if (is_null($GLOBALS['path_files'])) {
1662
-						return $a;
1663
-					}
1664
-					define('_SAUVER_CHEMIN', true);
1665
-				}
1666
-
1667
-				return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
1668
-			}
1669
-		}
1670
-	}
1671
-
1672
-	if ($include) {
1673
-		spip_log("include_spip $dirname$file non trouve");
1674
-		if ($include === 'required') {
1675
-			echo '<pre>',
1676
-			'<strong>Erreur Fatale</strong><br />';
1677
-			if (function_exists('debug_print_backtrace')) {
1678
-				debug_print_backtrace();
1679
-			}
1680
-			echo '</pre>';
1681
-			die("Erreur interne: ne peut inclure $dirname$file");
1682
-		}
1683
-	}
1684
-
1685
-	if (!defined('_SAUVER_CHEMIN')) {
1686
-		// si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1687
-		if (is_null($GLOBALS['path_files'])) {
1688
-			return false;
1689
-		}
1690
-		define('_SAUVER_CHEMIN', true);
1691
-	}
1692
-
1693
-	return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
1615
+    static $dirs = [];
1616
+    static $inc = []; # cf https://git.spip.net/spip/spip/commit/42e4e028e38c839121efaee84308d08aee307eec
1617
+    static $c = '';
1618
+
1619
+    if (!$file && !strlen($file)) {
1620
+        return false;
1621
+    }
1622
+
1623
+    // on calcule le chemin si le dossier skel a change
1624
+    if ($c != $GLOBALS['dossier_squelettes']) {
1625
+        // assurer le non plantage lors de la montee de version :
1626
+        $c = $GLOBALS['dossier_squelettes'];
1627
+        creer_chemin(); // forcer un recalcul du chemin et la mise a jour de path_sig
1628
+    }
1629
+
1630
+    if (isset($GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file])) {
1631
+        if (!$GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file]) {
1632
+            return false;
1633
+        }
1634
+        if ($include && !isset($inc[$dirname][$file])) {
1635
+            include_once _ROOT_CWD . $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1636
+            $inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1637
+        }
1638
+
1639
+        return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file];
1640
+    }
1641
+
1642
+    $a = strrpos($file, '/');
1643
+    if ($a !== false) {
1644
+        $dirname .= substr($file, 0, ++$a);
1645
+        $file = substr($file, $a);
1646
+    }
1647
+
1648
+    foreach (creer_chemin() as $dir) {
1649
+        if (!isset($dirs[$a = $dir . $dirname])) {
1650
+            $dirs[$a] = (is_dir(_ROOT_CWD . $a) || !$a);
1651
+        }
1652
+        if ($dirs[$a]) {
1653
+            if (file_exists(_ROOT_CWD . ($a .= $file))) {
1654
+                if ($include && !isset($inc[$dirname][$file])) {
1655
+                    include_once _ROOT_CWD . $a;
1656
+                    $inc[$dirname][$file] = $inc[''][$dirname . $file] = true;
1657
+                }
1658
+                if (!defined('_SAUVER_CHEMIN')) {
1659
+                    // si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1660
+                    if (is_null($GLOBALS['path_files'])) {
1661
+                        return $a;
1662
+                    }
1663
+                    define('_SAUVER_CHEMIN', true);
1664
+                }
1665
+
1666
+                return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a;
1667
+            }
1668
+        }
1669
+    }
1670
+
1671
+    if ($include) {
1672
+        spip_log("include_spip $dirname$file non trouve");
1673
+        if ($include === 'required') {
1674
+            echo '<pre>',
1675
+            '<strong>Erreur Fatale</strong><br />';
1676
+            if (function_exists('debug_print_backtrace')) {
1677
+                debug_print_backtrace();
1678
+            }
1679
+            echo '</pre>';
1680
+            die("Erreur interne: ne peut inclure $dirname$file");
1681
+        }
1682
+    }
1683
+
1684
+    if (!defined('_SAUVER_CHEMIN')) {
1685
+        // si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher
1686
+        if (is_null($GLOBALS['path_files'])) {
1687
+            return false;
1688
+        }
1689
+        define('_SAUVER_CHEMIN', true);
1690
+    }
1691
+
1692
+    return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = false;
1694 1693
 }
1695 1694
 
1696 1695
 function clear_path_cache() {
1697
-	$GLOBALS['path_files'] = [];
1698
-	spip_unlink(_CACHE_CHEMIN);
1696
+    $GLOBALS['path_files'] = [];
1697
+    spip_unlink(_CACHE_CHEMIN);
1699 1698
 }
1700 1699
 
1701 1700
 function load_path_cache() {
1702
-	// charger le path des plugins
1703
-	if (@is_readable(_CACHE_PLUGINS_PATH)) {
1704
-		include_once(_CACHE_PLUGINS_PATH);
1705
-	}
1706
-	$GLOBALS['path_files'] = [];
1707
-	// si le visiteur est admin,
1708
-	// on ne recharge pas le cache pour forcer sa mise a jour
1709
-	if (
1710
-		// la session n'est pas encore chargee a ce moment, on ne peut donc pas s'y fier
1711
-		//AND (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']!='0minirezo')
1712
-		// utiliser le cookie est un pis aller qui marche 'en general'
1713
-		// on blinde par un second test au moment de la lecture de la session
1714
-		// !isset($_COOKIE[$GLOBALS['cookie_prefix'].'_admin'])
1715
-		// et en ignorant ce cache en cas de recalcul explicite
1716
-		!_request('var_mode')
1717
-	) {
1718
-		// on essaye de lire directement sans verrou pour aller plus vite
1719
-		if ($contenu = spip_file_get_contents(_CACHE_CHEMIN)) {
1720
-			// mais si semble corrompu on relit avec un verrou
1721
-			if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1722
-				lire_fichier(_CACHE_CHEMIN, $contenu);
1723
-				if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1724
-					$GLOBALS['path_files'] = [];
1725
-				}
1726
-			}
1727
-		}
1728
-	}
1701
+    // charger le path des plugins
1702
+    if (@is_readable(_CACHE_PLUGINS_PATH)) {
1703
+        include_once(_CACHE_PLUGINS_PATH);
1704
+    }
1705
+    $GLOBALS['path_files'] = [];
1706
+    // si le visiteur est admin,
1707
+    // on ne recharge pas le cache pour forcer sa mise a jour
1708
+    if (
1709
+        // la session n'est pas encore chargee a ce moment, on ne peut donc pas s'y fier
1710
+        //AND (!isset($GLOBALS['visiteur_session']['statut']) OR $GLOBALS['visiteur_session']['statut']!='0minirezo')
1711
+        // utiliser le cookie est un pis aller qui marche 'en general'
1712
+        // on blinde par un second test au moment de la lecture de la session
1713
+        // !isset($_COOKIE[$GLOBALS['cookie_prefix'].'_admin'])
1714
+        // et en ignorant ce cache en cas de recalcul explicite
1715
+        !_request('var_mode')
1716
+    ) {
1717
+        // on essaye de lire directement sans verrou pour aller plus vite
1718
+        if ($contenu = spip_file_get_contents(_CACHE_CHEMIN)) {
1719
+            // mais si semble corrompu on relit avec un verrou
1720
+            if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1721
+                lire_fichier(_CACHE_CHEMIN, $contenu);
1722
+                if (!$GLOBALS['path_files'] = unserialize($contenu)) {
1723
+                    $GLOBALS['path_files'] = [];
1724
+                }
1725
+            }
1726
+        }
1727
+    }
1729 1728
 }
1730 1729
 
1731 1730
 function save_path_cache() {
1732
-	if (
1733
-		defined('_SAUVER_CHEMIN')
1734
-		&& _SAUVER_CHEMIN
1735
-	) {
1736
-		ecrire_fichier(_CACHE_CHEMIN, serialize($GLOBALS['path_files']));
1737
-	}
1731
+    if (
1732
+        defined('_SAUVER_CHEMIN')
1733
+        && _SAUVER_CHEMIN
1734
+    ) {
1735
+        ecrire_fichier(_CACHE_CHEMIN, serialize($GLOBALS['path_files']));
1736
+    }
1738 1737
 }
1739 1738
 
1740 1739
 
@@ -1754,33 +1753,33 @@  discard block
 block discarded – undo
1754 1753
  * @return array
1755 1754
  */
1756 1755
 function find_all_in_path($dir, $pattern, $recurs = false) {
1757
-	$liste_fichiers = [];
1758
-	$maxfiles = 10000;
1759
-
1760
-	// cas borderline si dans mes_options on appelle redirige_par_entete qui utilise _T et charge un fichier de langue
1761
-	// on a pas encore inclus flock.php
1762
-	if (!function_exists('preg_files')) {
1763
-		include_once _ROOT_RESTREINT . 'inc/flock.php';
1764
-	}
1765
-
1766
-	// Parcourir le chemin
1767
-	foreach (creer_chemin() as $d) {
1768
-		$f = $d . $dir;
1769
-		if (@is_dir($f)) {
1770
-			$liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
1771
-			foreach ($liste as $chemin) {
1772
-				$nom = basename($chemin);
1773
-				// ne prendre que les fichiers pas deja trouves
1774
-				// car find_in_path prend le premier qu'il trouve,
1775
-				// les autres sont donc masques
1776
-				if (!isset($liste_fichiers[$nom])) {
1777
-					$liste_fichiers[$nom] = $chemin;
1778
-				}
1779
-			}
1780
-		}
1781
-	}
1782
-
1783
-	return $liste_fichiers;
1756
+    $liste_fichiers = [];
1757
+    $maxfiles = 10000;
1758
+
1759
+    // cas borderline si dans mes_options on appelle redirige_par_entete qui utilise _T et charge un fichier de langue
1760
+    // on a pas encore inclus flock.php
1761
+    if (!function_exists('preg_files')) {
1762
+        include_once _ROOT_RESTREINT . 'inc/flock.php';
1763
+    }
1764
+
1765
+    // Parcourir le chemin
1766
+    foreach (creer_chemin() as $d) {
1767
+        $f = $d . $dir;
1768
+        if (@is_dir($f)) {
1769
+            $liste = preg_files($f, $pattern, $maxfiles - count($liste_fichiers), $recurs === true ? [] : $recurs);
1770
+            foreach ($liste as $chemin) {
1771
+                $nom = basename($chemin);
1772
+                // ne prendre que les fichiers pas deja trouves
1773
+                // car find_in_path prend le premier qu'il trouve,
1774
+                // les autres sont donc masques
1775
+                if (!isset($liste_fichiers[$nom])) {
1776
+                    $liste_fichiers[$nom] = $chemin;
1777
+                }
1778
+            }
1779
+        }
1780
+    }
1781
+
1782
+    return $liste_fichiers;
1784 1783
 }
1785 1784
 
1786 1785
 /**
@@ -1792,17 +1791,17 @@  discard block
 block discarded – undo
1792 1791
  * @return bool
1793 1792
  */
1794 1793
 function autoriser_sans_cookie($nom, $strict = false) {
1795
-	static $autsanscookie = ['install', 'base_repair'];
1794
+    static $autsanscookie = ['install', 'base_repair'];
1796 1795
 
1797
-	if (in_array($nom, $autsanscookie)) {
1798
-		if (test_espace_prive()) {
1799
-			include_spip('base/connect_sql');
1800
-			if (!$strict || !spip_connect()) {
1801
-				return true;
1802
-			}
1803
-		}
1804
-	}
1805
-	return false;
1796
+    if (in_array($nom, $autsanscookie)) {
1797
+        if (test_espace_prive()) {
1798
+            include_spip('base/connect_sql');
1799
+            if (!$strict || !spip_connect()) {
1800
+                return true;
1801
+            }
1802
+        }
1803
+    }
1804
+    return false;
1806 1805
 }
1807 1806
 
1808 1807
 /**
@@ -1814,59 +1813,59 @@  discard block
 block discarded – undo
1814 1813
  * @return string
1815 1814
  */
1816 1815
 function charger_fonction_url(string $quoi, string $type = '') {
1817
-	if ($type === 'defaut') {
1818
-		$objet = objet_type($quoi);
1819
-		if (
1820
-			($f = charger_fonction('generer_' . $objet . '_url', 'urls', true))
1821
-			|| ($f = charger_fonction('generer_url_' . $objet, 'urls', true)) // deprecated
1822
-		) {
1823
-			return $f;
1824
-		}
1825
-		return '';
1826
-	}
1827
-
1828
-	$url_type = $type;
1829
-	if (!$url_type) {
1830
-		$url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
1831
-	}
1832
-
1833
-	// inclure le module d'url
1834
-	include_spip('urls/' . $url_type);
1835
-
1836
-	switch ($quoi) {
1837
-		case 'page':
1838
-			if (
1839
-				function_exists($f = "urls_{$url_type}_generer_url_page")
1840
-				|| function_exists($f .= '_dist')
1841
-				// ou une fonction custom utilisateur independante du type d'url
1842
-				|| function_exists($f = 'generer_url_page')
1843
-				|| function_exists($f .= '_dist')
1844
-			) {
1845
-				return $f;
1846
-			}
1847
-			// pas de compat ancienne version ici, c'est une nouvelle feature
1848
-			return '';
1849
-		case 'objet':
1850
-		case 'decoder':
1851
-		default:
1852
-			$fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url');
1853
-			if (
1854
-				function_exists($f = "urls_{$url_type}_{$fquoi}")
1855
-				|| function_exists($f .= '_dist')
1856
-			) {
1857
-				return $f;
1858
-			}
1859
-			// est-ce qu'on a une ancienne fonction urls_xxx_dist() ?
1860
-			// c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout
1861
-			if ($f = charger_fonction($url_type, 'urls', true)) {
1862
-				return $f;
1863
-			}
1864
-			// sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement
1865
-			if (!$type && $url_type !== 'page') {
1866
-				return charger_fonction_url($quoi, 'page');
1867
-			}
1868
-			return '';
1869
-	}
1816
+    if ($type === 'defaut') {
1817
+        $objet = objet_type($quoi);
1818
+        if (
1819
+            ($f = charger_fonction('generer_' . $objet . '_url', 'urls', true))
1820
+            || ($f = charger_fonction('generer_url_' . $objet, 'urls', true)) // deprecated
1821
+        ) {
1822
+            return $f;
1823
+        }
1824
+        return '';
1825
+    }
1826
+
1827
+    $url_type = $type;
1828
+    if (!$url_type) {
1829
+        $url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
1830
+    }
1831
+
1832
+    // inclure le module d'url
1833
+    include_spip('urls/' . $url_type);
1834
+
1835
+    switch ($quoi) {
1836
+        case 'page':
1837
+            if (
1838
+                function_exists($f = "urls_{$url_type}_generer_url_page")
1839
+                || function_exists($f .= '_dist')
1840
+                // ou une fonction custom utilisateur independante du type d'url
1841
+                || function_exists($f = 'generer_url_page')
1842
+                || function_exists($f .= '_dist')
1843
+            ) {
1844
+                return $f;
1845
+            }
1846
+            // pas de compat ancienne version ici, c'est une nouvelle feature
1847
+            return '';
1848
+        case 'objet':
1849
+        case 'decoder':
1850
+        default:
1851
+            $fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url');
1852
+            if (
1853
+                function_exists($f = "urls_{$url_type}_{$fquoi}")
1854
+                || function_exists($f .= '_dist')
1855
+            ) {
1856
+                return $f;
1857
+            }
1858
+            // est-ce qu'on a une ancienne fonction urls_xxx_dist() ?
1859
+            // c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout
1860
+            if ($f = charger_fonction($url_type, 'urls', true)) {
1861
+                return $f;
1862
+            }
1863
+            // sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement
1864
+            if (!$type && $url_type !== 'page') {
1865
+                return charger_fonction_url($quoi, 'page');
1866
+            }
1867
+            return '';
1868
+    }
1870 1869
 }
1871 1870
 
1872 1871
 
@@ -1892,48 +1891,48 @@  discard block
 block discarded – undo
1892 1891
  *   url codee ou fonction de decodage
1893 1892
  */
1894 1893
 function generer_objet_url($id, string $entite, string $args = '', string $ancre = '', ?bool $public = null, string $type = '', string $connect = ''): string {
1895
-	if ($public === null) {
1896
-		$public = !test_espace_prive();
1897
-	}
1898
-	$id = intval($id);
1899
-	$entite = objet_type($entite); // cas particulier d'appels sur objet/id_objet...
1900
-
1901
-	if (!$public) {
1902
-		if (!$entite) {
1903
-			return '';
1904
-		}
1905
-		if (!function_exists('generer_objet_url_ecrire')) {
1906
-			include_spip('inc/urls');
1907
-		}
1908
-		$res = generer_objet_url_ecrire($id, $entite, $args, $ancre, false, $connect);
1909
-	} else {
1910
-		$f = charger_fonction_url('objet', $type ?? '');
1911
-
1912
-		// @deprecated si $entite='', on veut la fonction de passage URL ==> id
1913
-		// @see charger_fonction_url
1914
-		if (!$entite) {
1915
-			return $f;
1916
-		}
1917
-
1918
-		// mais d'abord il faut tester le cas des urls sur une
1919
-		// base distante
1920
-		if (
1921
-			$connect
1922
-			&& ($g = charger_fonction('connect', 'urls', true))
1923
-		) {
1924
-			$f = $g;
1925
-		}
1926
-
1927
-		$res = $f(intval($id), $entite, $args ?: '', $ancre ?: '', $connect);
1928
-	}
1929
-	if ($res) {
1930
-		return $res;
1931
-	}
1932
-
1933
-	// On a ete gentil mais la ....
1934
-	spip_log("generer_objet_url: entite $entite " . ($public ? "($f)" : '') . " inconnue $type $public $connect", _LOG_ERREUR);
1935
-
1936
-	return '';
1894
+    if ($public === null) {
1895
+        $public = !test_espace_prive();
1896
+    }
1897
+    $id = intval($id);
1898
+    $entite = objet_type($entite); // cas particulier d'appels sur objet/id_objet...
1899
+
1900
+    if (!$public) {
1901
+        if (!$entite) {
1902
+            return '';
1903
+        }
1904
+        if (!function_exists('generer_objet_url_ecrire')) {
1905
+            include_spip('inc/urls');
1906
+        }
1907
+        $res = generer_objet_url_ecrire($id, $entite, $args, $ancre, false, $connect);
1908
+    } else {
1909
+        $f = charger_fonction_url('objet', $type ?? '');
1910
+
1911
+        // @deprecated si $entite='', on veut la fonction de passage URL ==> id
1912
+        // @see charger_fonction_url
1913
+        if (!$entite) {
1914
+            return $f;
1915
+        }
1916
+
1917
+        // mais d'abord il faut tester le cas des urls sur une
1918
+        // base distante
1919
+        if (
1920
+            $connect
1921
+            && ($g = charger_fonction('connect', 'urls', true))
1922
+        ) {
1923
+            $f = $g;
1924
+        }
1925
+
1926
+        $res = $f(intval($id), $entite, $args ?: '', $ancre ?: '', $connect);
1927
+    }
1928
+    if ($res) {
1929
+        return $res;
1930
+    }
1931
+
1932
+    // On a ete gentil mais la ....
1933
+    spip_log("generer_objet_url: entite $entite " . ($public ? "($f)" : '') . " inconnue $type $public $connect", _LOG_ERREUR);
1934
+
1935
+    return '';
1937 1936
 }
1938 1937
 
1939 1938
 /**
@@ -1941,11 +1940,11 @@  discard block
 block discarded – undo
1941 1940
  * @see generer_objet_url
1942 1941
  */
1943 1942
 function generer_url_entite($id = 0, $entite = '', $args = '', $ancre = '', $public = null, $type = null) {
1944
-	trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url');
1945
-	if ($public && is_string($public)) {
1946
-		return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', true, $type ?? '', $public);
1947
-	}
1948
-	return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', $public, $type ?? '');
1943
+    trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url');
1944
+    if ($public && is_string($public)) {
1945
+        return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', true, $type ?? '', $public);
1946
+    }
1947
+    return generer_objet_url(intval($id), $entite, $args ?: '', $ancre ?: '', $public, $type ?? '');
1949 1948
 }
1950 1949
 
1951 1950
 /**
@@ -1953,19 +1952,19 @@  discard block
 block discarded – undo
1953 1952
  * @param int|string|null $id
1954 1953
  */
1955 1954
 function generer_objet_url_ecrire_edit($id, string $entite, string $args = '', string $ancre = ''): string {
1956
-	$id = intval($id);
1957
-	$exec = objet_info($entite, 'url_edit');
1958
-	$url = generer_url_ecrire($exec, $args);
1959
-	if (intval($id)) {
1960
-		$url = parametre_url($url, id_table_objet($entite), $id);
1961
-	} else {
1962
-		$url = parametre_url($url, 'new', 'oui');
1963
-	}
1964
-	if ($ancre) {
1965
-		$url = ancre_url($url, $ancre);
1966
-	}
1955
+    $id = intval($id);
1956
+    $exec = objet_info($entite, 'url_edit');
1957
+    $url = generer_url_ecrire($exec, $args);
1958
+    if (intval($id)) {
1959
+        $url = parametre_url($url, id_table_objet($entite), $id);
1960
+    } else {
1961
+        $url = parametre_url($url, 'new', 'oui');
1962
+    }
1963
+    if ($ancre) {
1964
+        $url = ancre_url($url, $ancre);
1965
+    }
1967 1966
 
1968
-	return $url;
1967
+    return $url;
1969 1968
 }
1970 1969
 
1971 1970
 /**
@@ -1973,19 +1972,19 @@  discard block
 block discarded – undo
1973 1972
  * @see generer_objet_url_ecrire_edit
1974 1973
  */
1975 1974
 function generer_url_ecrire_entite_edit($id, $entite, $args = '', $ancre = '') {
1976
-	trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url_ecrire_edit');
1977
-	return generer_objet_url_ecrire_edit(intval($id), $entite, $args, $ancre);
1975
+    trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url_ecrire_edit');
1976
+    return generer_objet_url_ecrire_edit(intval($id), $entite, $args, $ancre);
1978 1977
 }
1979 1978
 
1980 1979
 
1981 1980
 function urls_connect_dist($i, &$entite, $args = '', $ancre = '', $public = null) {
1982
-	include_spip('base/connect_sql');
1983
-	$id_type = id_table_objet($entite, $public);
1981
+    include_spip('base/connect_sql');
1982
+    $id_type = id_table_objet($entite, $public);
1984 1983
 
1985
-	return _DIR_RACINE . get_spip_script('./')
1986
-	. '?' . _SPIP_PAGE . "=$entite&$id_type=$i&connect=$public"
1987
-	. (!$args ? '' : "&$args")
1988
-	. (!$ancre ? '' : "#$ancre");
1984
+    return _DIR_RACINE . get_spip_script('./')
1985
+    . '?' . _SPIP_PAGE . "=$entite&$id_type=$i&connect=$public"
1986
+    . (!$args ? '' : "&$args")
1987
+    . (!$ancre ? '' : "#$ancre");
1989 1988
 }
1990 1989
 
1991 1990
 
@@ -1996,18 +1995,18 @@  discard block
 block discarded – undo
1996 1995
  * @return string
1997 1996
  */
1998 1997
 function urlencode_1738($url) {
1999
-	if (preg_match(',[^\x00-\x7E],sS', $url)) {
2000
-		$uri = '';
2001
-		for ($i = 0; $i < strlen($url); $i++) {
2002
-			if (ord($a = $url[$i]) > 127) {
2003
-				$a = rawurlencode($a);
2004
-			}
2005
-			$uri .= $a;
2006
-		}
2007
-		$url = $uri;
2008
-	}
1998
+    if (preg_match(',[^\x00-\x7E],sS', $url)) {
1999
+        $uri = '';
2000
+        for ($i = 0; $i < strlen($url); $i++) {
2001
+            if (ord($a = $url[$i]) > 127) {
2002
+                $a = rawurlencode($a);
2003
+            }
2004
+            $uri .= $a;
2005
+        }
2006
+        $url = $uri;
2007
+    }
2009 2008
 
2010
-	return quote_amp($url);
2009
+    return quote_amp($url);
2011 2010
 }
2012 2011
 
2013 2012
 /**
@@ -2016,14 +2015,14 @@  discard block
 block discarded – undo
2016 2015
  * @param int|string|null $id
2017 2016
  */
2018 2017
 function generer_objet_url_absolue($id = 0, string $entite = '', string $args = '', string $ancre = '', ?bool $public = null, string $type = '', string $connect = ''): string {
2019
-	$id = intval($id);
2020
-	$h = generer_objet_url($id, $entite, $args, $ancre, $public, $type, $connect);
2021
-	if (!preg_match(',^\w+:,', $h)) {
2022
-		include_spip('inc/filtres_mini');
2023
-		$h = url_absolue($h);
2024
-	}
2018
+    $id = intval($id);
2019
+    $h = generer_objet_url($id, $entite, $args, $ancre, $public, $type, $connect);
2020
+    if (!preg_match(',^\w+:,', $h)) {
2021
+        include_spip('inc/filtres_mini');
2022
+        $h = url_absolue($h);
2023
+    }
2025 2024
 
2026
-	return $h;
2025
+    return $h;
2027 2026
 }
2028 2027
 
2029 2028
 /**
@@ -2031,8 +2030,8 @@  discard block
 block discarded – undo
2031 2030
  * @see  generer_objet_url_absolue
2032 2031
  */
2033 2032
 function generer_url_entite_absolue($id = 0, $entite = '', $args = '', $ancre = '', $connect = null) {
2034
-	trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url_absolue');
2035
-	return generer_objet_url_absolue(intval($id), $entite, $args, $ancre, true, '', $connect ?? '');
2033
+    trigger_deprecation('spip', '4.1', 'Using "%s" is deprecated, use "%s" instead', __FUNCTION__, 'generer_objet_url_absolue');
2034
+    return generer_objet_url_absolue(intval($id), $entite, $args, $ancre, true, '', $connect ?? '');
2036 2035
 }
2037 2036
 
2038 2037
 
@@ -2048,11 +2047,11 @@  discard block
 block discarded – undo
2048 2047
  *     true si la valeur est considérée active ; false sinon.
2049 2048
  **/
2050 2049
 function test_valeur_serveur($truc) {
2051
-	if (!$truc) {
2052
-		return false;
2053
-	}
2050
+    if (!$truc) {
2051
+        return false;
2052
+    }
2054 2053
 
2055
-	return (strtolower($truc) !== 'off');
2054
+    return (strtolower($truc) !== 'off');
2056 2055
 }
2057 2056
 
2058 2057
 //
@@ -2080,89 +2079,89 @@  discard block
 block discarded – undo
2080 2079
  */
2081 2080
 function url_de_base($profondeur = null) {
2082 2081
 
2083
-	static $url = [];
2084
-	if (is_array($profondeur)) {
2085
-		return $url = $profondeur;
2086
-	}
2087
-	if ($profondeur === false) {
2088
-		return $url;
2089
-	}
2090
-
2091
-	if (is_null($profondeur)) {
2092
-		$profondeur = $GLOBALS['profondeur_url'] ?? (_DIR_RESTREINT ? 0 : 1);
2093
-	}
2094
-
2095
-	if (isset($url[$profondeur])) {
2096
-		return $url[$profondeur];
2097
-	}
2098
-
2099
-	$http = 'http';
2100
-
2101
-	if (
2102
-		isset($_SERVER['SCRIPT_URI'])
2103
-		&& str_starts_with($_SERVER['SCRIPT_URI'], 'https')
2104
-	) {
2105
-		$http = 'https';
2106
-	} elseif (
2107
-		isset($_SERVER['HTTPS'])
2108
-		&& test_valeur_serveur($_SERVER['HTTPS'])
2109
-	) {
2110
-		$http = 'https';
2111
-	}
2112
-
2113
-	// note : HTTP_HOST contient le :port si necessaire
2114
-	if ($host = $_SERVER['HTTP_HOST'] ?? null) {
2115
-		// Filtrer $host pour proteger d'attaques d'entete HTTP
2116
-		$host = (filter_var($host, FILTER_SANITIZE_URL) ?: null);
2117
-	}
2118
-
2119
-	// si on n'a pas trouvé d'hôte du tout, en dernier recours on utilise adresse_site comme fallback
2120
-	if (is_null($host) && isset($GLOBALS['meta']['adresse_site'])) {
2121
-		$host = $GLOBALS['meta']['adresse_site'];
2122
-		if ($scheme = parse_url($host, PHP_URL_SCHEME)) {
2123
-			$http = $scheme;
2124
-			$host = str_replace("{$scheme}://", '', $host);
2125
-		}
2126
-	}
2127
-	if (
2128
-		isset($_SERVER['SERVER_PORT'])
2129
-		&& ($port = $_SERVER['SERVER_PORT'])
2130
-		&& !str_contains($host, ':')
2131
-	) {
2132
-		if (!defined('_PORT_HTTP_STANDARD')) {
2133
-			define('_PORT_HTTP_STANDARD', '80');
2134
-		}
2135
-		if (!defined('_PORT_HTTPS_STANDARD')) {
2136
-			define('_PORT_HTTPS_STANDARD', '443');
2137
-		}
2138
-		if ($http == 'http' && !in_array($port, explode(',', _PORT_HTTP_STANDARD))) {
2139
-			$host .= ":$port";
2140
-		}
2141
-		if ($http == 'https' && !in_array($port, explode(',', _PORT_HTTPS_STANDARD))) {
2142
-			$host .= ":$port";
2143
-		}
2144
-	}
2145
-
2146
-	if (!$GLOBALS['REQUEST_URI']) {
2147
-		if (isset($_SERVER['REQUEST_URI'])) {
2148
-			$GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2149
-		} else {
2150
-			$GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2151
-			if (
2152
-				!empty($_SERVER['QUERY_STRING'])
2153
-				&& !str_contains($_SERVER['REQUEST_URI'], '?')
2154
-			) {
2155
-				$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2156
-			}
2157
-		}
2158
-	}
2159
-
2160
-	// Et nettoyer l'url
2161
-	$GLOBALS['REQUEST_URI'] = (filter_var($GLOBALS['REQUEST_URI'], FILTER_SANITIZE_URL) ?: '');
2162
-
2163
-	$url[$profondeur] = url_de_($http, $host, $GLOBALS['REQUEST_URI'], $profondeur);
2164
-
2165
-	return $url[$profondeur];
2082
+    static $url = [];
2083
+    if (is_array($profondeur)) {
2084
+        return $url = $profondeur;
2085
+    }
2086
+    if ($profondeur === false) {
2087
+        return $url;
2088
+    }
2089
+
2090
+    if (is_null($profondeur)) {
2091
+        $profondeur = $GLOBALS['profondeur_url'] ?? (_DIR_RESTREINT ? 0 : 1);
2092
+    }
2093
+
2094
+    if (isset($url[$profondeur])) {
2095
+        return $url[$profondeur];
2096
+    }
2097
+
2098
+    $http = 'http';
2099
+
2100
+    if (
2101
+        isset($_SERVER['SCRIPT_URI'])
2102
+        && str_starts_with($_SERVER['SCRIPT_URI'], 'https')
2103
+    ) {
2104
+        $http = 'https';
2105
+    } elseif (
2106
+        isset($_SERVER['HTTPS'])
2107
+        && test_valeur_serveur($_SERVER['HTTPS'])
2108
+    ) {
2109
+        $http = 'https';
2110
+    }
2111
+
2112
+    // note : HTTP_HOST contient le :port si necessaire
2113
+    if ($host = $_SERVER['HTTP_HOST'] ?? null) {
2114
+        // Filtrer $host pour proteger d'attaques d'entete HTTP
2115
+        $host = (filter_var($host, FILTER_SANITIZE_URL) ?: null);
2116
+    }
2117
+
2118
+    // si on n'a pas trouvé d'hôte du tout, en dernier recours on utilise adresse_site comme fallback
2119
+    if (is_null($host) && isset($GLOBALS['meta']['adresse_site'])) {
2120
+        $host = $GLOBALS['meta']['adresse_site'];
2121
+        if ($scheme = parse_url($host, PHP_URL_SCHEME)) {
2122
+            $http = $scheme;
2123
+            $host = str_replace("{$scheme}://", '', $host);
2124
+        }
2125
+    }
2126
+    if (
2127
+        isset($_SERVER['SERVER_PORT'])
2128
+        && ($port = $_SERVER['SERVER_PORT'])
2129
+        && !str_contains($host, ':')
2130
+    ) {
2131
+        if (!defined('_PORT_HTTP_STANDARD')) {
2132
+            define('_PORT_HTTP_STANDARD', '80');
2133
+        }
2134
+        if (!defined('_PORT_HTTPS_STANDARD')) {
2135
+            define('_PORT_HTTPS_STANDARD', '443');
2136
+        }
2137
+        if ($http == 'http' && !in_array($port, explode(',', _PORT_HTTP_STANDARD))) {
2138
+            $host .= ":$port";
2139
+        }
2140
+        if ($http == 'https' && !in_array($port, explode(',', _PORT_HTTPS_STANDARD))) {
2141
+            $host .= ":$port";
2142
+        }
2143
+    }
2144
+
2145
+    if (!$GLOBALS['REQUEST_URI']) {
2146
+        if (isset($_SERVER['REQUEST_URI'])) {
2147
+            $GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2148
+        } else {
2149
+            $GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2150
+            if (
2151
+                !empty($_SERVER['QUERY_STRING'])
2152
+                && !str_contains($_SERVER['REQUEST_URI'], '?')
2153
+            ) {
2154
+                $GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2155
+            }
2156
+        }
2157
+    }
2158
+
2159
+    // Et nettoyer l'url
2160
+    $GLOBALS['REQUEST_URI'] = (filter_var($GLOBALS['REQUEST_URI'], FILTER_SANITIZE_URL) ?: '');
2161
+
2162
+    $url[$profondeur] = url_de_($http, $host, $GLOBALS['REQUEST_URI'], $profondeur);
2163
+
2164
+    return $url[$profondeur];
2166 2165
 }
2167 2166
 
2168 2167
 /**
@@ -2175,26 +2174,26 @@  discard block
 block discarded – undo
2175 2174
  * @return string
2176 2175
  */
2177 2176
 function url_de_($http, $host, $request, $prof = 0) {
2178
-	$prof = max($prof, 0);
2177
+    $prof = max($prof, 0);
2179 2178
 
2180
-	$myself = ltrim($request, '/');
2181
-	# supprimer la chaine de GET
2182
-	[$myself] = explode('?', $myself);
2183
-	// vieux mode HTTP qui envoie après le nom de la methode l'URL compléte
2184
-	// protocole, "://", nom du serveur avant le path dans _SERVER["REQUEST_URI"]
2185
-	if (str_contains($myself, '://')) {
2186
-		$myself = explode('://', $myself);
2187
-		array_shift($myself);
2188
-		$myself = implode('://', $myself);
2189
-		$myself = explode('/', $myself);
2190
-		array_shift($myself);
2191
-		$myself = implode('/', $myself);
2192
-	}
2193
-	$url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)) . '/';
2179
+    $myself = ltrim($request, '/');
2180
+    # supprimer la chaine de GET
2181
+    [$myself] = explode('?', $myself);
2182
+    // vieux mode HTTP qui envoie après le nom de la methode l'URL compléte
2183
+    // protocole, "://", nom du serveur avant le path dans _SERVER["REQUEST_URI"]
2184
+    if (str_contains($myself, '://')) {
2185
+        $myself = explode('://', $myself);
2186
+        array_shift($myself);
2187
+        $myself = implode('://', $myself);
2188
+        $myself = explode('/', $myself);
2189
+        array_shift($myself);
2190
+        $myself = implode('/', $myself);
2191
+    }
2192
+    $url = join('/', array_slice(explode('/', $myself), 0, -1 - $prof)) . '/';
2194 2193
 
2195
-	$url = $http . '://' . rtrim($host, '/') . '/' . ltrim($url, '/');
2194
+    $url = $http . '://' . rtrim($host, '/') . '/' . ltrim($url, '/');
2196 2195
 
2197
-	return $url;
2196
+    return $url;
2198 2197
 }
2199 2198
 
2200 2199
 
@@ -2229,26 +2228,26 @@  discard block
 block discarded – undo
2229 2228
  * @return string URL
2230 2229
  **/
2231 2230
 function generer_url_ecrire(?string $script = '', $args = '', $no_entities = false, $rel = false) {
2232
-	$script ??= '';
2233
-	if (!$rel) {
2234
-		$rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT;
2235
-	} else {
2236
-		if (!is_string($rel)) {
2237
-			$rel = _DIR_RESTREINT ?: './' . _SPIP_ECRIRE_SCRIPT;
2238
-		}
2239
-	}
2240
-
2241
-	[$script, $ancre] = array_pad(explode('#', $script), 2, null);
2242
-	if ($script && ($script <> 'accueil' || $rel)) {
2243
-		$args = "?exec=$script" . (!$args ? '' : "&$args");
2244
-	} elseif ($args) {
2245
-		$args = "?$args";
2246
-	}
2247
-	if ($ancre) {
2248
-		$args .= "#$ancre";
2249
-	}
2250
-
2251
-	return $rel . ($no_entities ? $args : str_replace('&', '&amp;', $args));
2231
+    $script ??= '';
2232
+    if (!$rel) {
2233
+        $rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT;
2234
+    } else {
2235
+        if (!is_string($rel)) {
2236
+            $rel = _DIR_RESTREINT ?: './' . _SPIP_ECRIRE_SCRIPT;
2237
+        }
2238
+    }
2239
+
2240
+    [$script, $ancre] = array_pad(explode('#', $script), 2, null);
2241
+    if ($script && ($script <> 'accueil' || $rel)) {
2242
+        $args = "?exec=$script" . (!$args ? '' : "&$args");
2243
+    } elseif ($args) {
2244
+        $args = "?$args";
2245
+    }
2246
+    if ($ancre) {
2247
+        $args .= "#$ancre";
2248
+    }
2249
+
2250
+    return $rel . ($no_entities ? $args : str_replace('&', '&amp;', $args));
2252 2251
 }
2253 2252
 
2254 2253
 //
@@ -2270,15 +2269,15 @@  discard block
 block discarded – undo
2270 2269
  *     Nom du fichier (constante _SPIP_SCRIPT), sinon nom par défaut
2271 2270
  **/
2272 2271
 function get_spip_script($default = '') {
2273
-	if (!defined('_SPIP_SCRIPT')) {
2274
-		return 'spip.php';
2275
-	}
2276
-	# cas define('_SPIP_SCRIPT', '');
2277
-	if (_SPIP_SCRIPT) {
2278
-		return _SPIP_SCRIPT;
2279
-	} else {
2280
-		return $default;
2281
-	}
2272
+    if (!defined('_SPIP_SCRIPT')) {
2273
+        return 'spip.php';
2274
+    }
2275
+    # cas define('_SPIP_SCRIPT', '');
2276
+    if (_SPIP_SCRIPT) {
2277
+        return _SPIP_SCRIPT;
2278
+    } else {
2279
+        return $default;
2280
+    }
2282 2281
 }
2283 2282
 
2284 2283
 /**
@@ -2307,45 +2306,45 @@  discard block
 block discarded – undo
2307 2306
  * @return string URL
2308 2307
  **/
2309 2308
 function generer_url_public($script = '', $args = '', $no_entities = false, $rel = true, $action = '') {
2310
-	// si le script est une action (spip_pass, spip_inscription),
2311
-	// standardiser vers la nouvelle API
2312
-
2313
-	if (is_array($args)) {
2314
-		$args = http_build_query($args);
2315
-	}
2316
-
2317
-	$url = '';
2318
-	if ($f = charger_fonction_url('page')) {
2319
-		$url = $f($script, $args);
2320
-		if ($url && !$rel) {
2321
-			include_spip('inc/filtres_mini');
2322
-			$url = url_absolue($url);
2323
-		}
2324
-	}
2325
-	if (!$url) {
2326
-		if (!$action) {
2327
-			$action = get_spip_script();
2328
-		}
2329
-		if ($script) {
2330
-			$action = parametre_url($action, _SPIP_PAGE, $script, '&');
2331
-		}
2332
-		if ($args) {
2333
-			$action .= (str_contains($action, '?') ? '&' : '?') . $args;
2334
-		}
2335
-		// ne pas generer une url avec /./?page= en cas d'url absolue et de _SPIP_SCRIPT vide
2336
-		$url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/') . preg_replace(',^/[.]/,', '/', "/$action"));
2337
-	}
2338
-
2339
-	if (!$no_entities) {
2340
-		$url = quote_amp($url);
2341
-	}
2342
-
2343
-	return $url;
2309
+    // si le script est une action (spip_pass, spip_inscription),
2310
+    // standardiser vers la nouvelle API
2311
+
2312
+    if (is_array($args)) {
2313
+        $args = http_build_query($args);
2314
+    }
2315
+
2316
+    $url = '';
2317
+    if ($f = charger_fonction_url('page')) {
2318
+        $url = $f($script, $args);
2319
+        if ($url && !$rel) {
2320
+            include_spip('inc/filtres_mini');
2321
+            $url = url_absolue($url);
2322
+        }
2323
+    }
2324
+    if (!$url) {
2325
+        if (!$action) {
2326
+            $action = get_spip_script();
2327
+        }
2328
+        if ($script) {
2329
+            $action = parametre_url($action, _SPIP_PAGE, $script, '&');
2330
+        }
2331
+        if ($args) {
2332
+            $action .= (str_contains($action, '?') ? '&' : '?') . $args;
2333
+        }
2334
+        // ne pas generer une url avec /./?page= en cas d'url absolue et de _SPIP_SCRIPT vide
2335
+        $url = ($rel ? _DIR_RACINE . $action : rtrim(url_de_base(), '/') . preg_replace(',^/[.]/,', '/', "/$action"));
2336
+    }
2337
+
2338
+    if (!$no_entities) {
2339
+        $url = quote_amp($url);
2340
+    }
2341
+
2342
+    return $url;
2344 2343
 }
2345 2344
 
2346 2345
 function generer_url_prive($script, $args = '', $no_entities = false) {
2347 2346
 
2348
-	return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS . 'prive.php');
2347
+    return generer_url_public($script, $args, $no_entities, false, _DIR_RESTREINT_ABS . 'prive.php');
2349 2348
 }
2350 2349
 
2351 2350
 // Pour les formulaires en methode POST,
@@ -2370,19 +2369,19 @@  discard block
 block discarded – undo
2370 2369
  **/
2371 2370
 function generer_form_ecrire($script, $corps, $atts = '', $submit = '') {
2372 2371
 
2373
-	$script1 = explode('&', $script);
2374
-	$script1 = reset($script1);
2372
+    $script1 = explode('&', $script);
2373
+    $script1 = reset($script1);
2375 2374
 
2376
-	return "<form action='"
2377
-	. ($script ? generer_url_ecrire($script) : '')
2378
-	. "' "
2379
-	. ($atts ?: " method='post'")
2380
-	. "><div>\n"
2381
-	. "<input type='hidden' name='exec' value='$script1' />"
2382
-	. $corps
2383
-	. (!$submit ? '' :
2384
-		("<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><input class='fondo submit btn' type='submit' value=\"" . entites_html($submit) . '" /></div>'))
2385
-	. "</div></form>\n";
2375
+    return "<form action='"
2376
+    . ($script ? generer_url_ecrire($script) : '')
2377
+    . "' "
2378
+    . ($atts ?: " method='post'")
2379
+    . "><div>\n"
2380
+    . "<input type='hidden' name='exec' value='$script1' />"
2381
+    . $corps
2382
+    . (!$submit ? '' :
2383
+        ("<div style='text-align: " . $GLOBALS['spip_lang_right'] . "'><input class='fondo submit btn' type='submit' value=\"" . entites_html($submit) . '" /></div>'))
2384
+    . "</div></form>\n";
2386 2385
 }
2387 2386
 
2388 2387
 /**
@@ -2399,22 +2398,22 @@  discard block
 block discarded – undo
2399 2398
  * @return string
2400 2399
  */
2401 2400
 function generer_form_action($script, $corps, $atts = '', $public = false) {
2402
-	// si l'on est dans l'espace prive, on garde dans l'url
2403
-	// l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2404
-	// ou non de proceder a l'authentification (cas typique de l'install par exemple)
2405
-	$h = (_DIR_RACINE && !$public)
2406
-		? generer_url_ecrire(_request('exec'))
2407
-		: generer_url_public();
2401
+    // si l'on est dans l'espace prive, on garde dans l'url
2402
+    // l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2403
+    // ou non de proceder a l'authentification (cas typique de l'install par exemple)
2404
+    $h = (_DIR_RACINE && !$public)
2405
+        ? generer_url_ecrire(_request('exec'))
2406
+        : generer_url_public();
2408 2407
 
2409
-	return "\n<form action='" .
2410
-	$h .
2411
-	"'" .
2412
-	$atts .
2413
-	">\n" .
2414
-	'<div>' .
2415
-	"\n<input type='hidden' name='action' value='$script' />" .
2416
-	$corps .
2417
-	'</div></form>';
2408
+    return "\n<form action='" .
2409
+    $h .
2410
+    "'" .
2411
+    $atts .
2412
+    ">\n" .
2413
+    '<div>' .
2414
+    "\n<input type='hidden' name='action' value='$script' />" .
2415
+    $corps .
2416
+    '</div></form>';
2418 2417
 }
2419 2418
 
2420 2419
 /**
@@ -2433,22 +2432,22 @@  discard block
 block discarded – undo
2433 2432
  *     URL
2434 2433
  */
2435 2434
 function generer_url_action($script, $args = '', $no_entities = false, $public = false) {
2436
-	// si l'on est dans l'espace prive, on garde dans l'url
2437
-	// l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2438
-	// ou non de proceder a l'authentification (cas typique de l'install par exemple)
2439
-	$url = (_DIR_RACINE && !$public)
2440
-		? generer_url_ecrire(_request('exec'))
2441
-		: generer_url_public('', '', false, false);
2442
-	$url = parametre_url($url, 'action', $script);
2443
-	if ($args) {
2444
-		$url .= quote_amp('&' . $args);
2445
-	}
2435
+    // si l'on est dans l'espace prive, on garde dans l'url
2436
+    // l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
2437
+    // ou non de proceder a l'authentification (cas typique de l'install par exemple)
2438
+    $url = (_DIR_RACINE && !$public)
2439
+        ? generer_url_ecrire(_request('exec'))
2440
+        : generer_url_public('', '', false, false);
2441
+    $url = parametre_url($url, 'action', $script);
2442
+    if ($args) {
2443
+        $url .= quote_amp('&' . $args);
2444
+    }
2446 2445
 
2447
-	if ($no_entities) {
2448
-		$url = str_replace('&amp;', '&', $url);
2449
-	}
2446
+    if ($no_entities) {
2447
+        $url = str_replace('&amp;', '&', $url);
2448
+    }
2450 2449
 
2451
-	return $url;
2450
+    return $url;
2452 2451
 }
2453 2452
 
2454 2453
 
@@ -2467,23 +2466,23 @@  discard block
 block discarded – undo
2467 2466
  *     URL
2468 2467
  */
2469 2468
 function generer_url_api(string $script, string $path, string $args, bool $no_entities = false, ?bool $public = null) {
2470
-	if (is_null($public)) {
2471
-		$public = (_DIR_RACINE ? false : true);
2472
-	}
2473
-	if (!str_ends_with($script, '.api')) {
2474
-		$script .= '.api';
2475
-	}
2476
-	$url =
2477
-		(($public ? _DIR_RACINE : _DIR_RESTREINT) ?: './')
2478
-	. $script . '/'
2479
-	. ($path ? trim($path, '/') : '')
2480
-	. ($args ? '?' . quote_amp($args) : '');
2469
+    if (is_null($public)) {
2470
+        $public = (_DIR_RACINE ? false : true);
2471
+    }
2472
+    if (!str_ends_with($script, '.api')) {
2473
+        $script .= '.api';
2474
+    }
2475
+    $url =
2476
+        (($public ? _DIR_RACINE : _DIR_RESTREINT) ?: './')
2477
+    . $script . '/'
2478
+    . ($path ? trim($path, '/') : '')
2479
+    . ($args ? '?' . quote_amp($args) : '');
2481 2480
 
2482
-	if ($no_entities) {
2483
-		$url = str_replace('&amp;', '&', $url);
2484
-	}
2481
+    if ($no_entities) {
2482
+        $url = str_replace('&amp;', '&', $url);
2483
+    }
2485 2484
 
2486
-	return $url;
2485
+    return $url;
2487 2486
 }
2488 2487
 
2489 2488
 
@@ -2496,8 +2495,8 @@  discard block
 block discarded – undo
2496 2495
  * @param string $ta Répertoire temporaire accessible
2497 2496
  */
2498 2497
 function spip_initialisation($pi = null, $pa = null, $ti = null, $ta = null) {
2499
-	spip_initialisation_core($pi, $pa, $ti, $ta);
2500
-	spip_initialisation_suite();
2498
+    spip_initialisation_core($pi, $pa, $ti, $ta);
2499
+    spip_initialisation_suite();
2501 2500
 }
2502 2501
 
2503 2502
 /**
@@ -2517,311 +2516,311 @@  discard block
 block discarded – undo
2517 2516
  * @param string $ta Répertoire temporaire accessible
2518 2517
  */
2519 2518
 function spip_initialisation_core($pi = null, $pa = null, $ti = null, $ta = null) {
2520
-	static $too_late = 0;
2521
-	if ($too_late++) {
2522
-		return;
2523
-	}
2524
-
2525
-	// Declaration des repertoires
2526
-
2527
-	// le nom du repertoire plugins/ activables/desactivables
2528
-	if (!defined('_DIR_PLUGINS')) {
2529
-		define('_DIR_PLUGINS', _DIR_RACINE . 'plugins/');
2530
-	}
2531
-
2532
-	// le nom du repertoire des extensions/ permanentes du core, toujours actives
2533
-	if (!defined('_DIR_PLUGINS_DIST')) {
2534
-		define('_DIR_PLUGINS_DIST', _DIR_RACINE . 'plugins-dist/');
2535
-	}
2536
-
2537
-	// le nom du repertoire des librairies
2538
-	if (!defined('_DIR_LIB')) {
2539
-		define('_DIR_LIB', _DIR_RACINE . 'lib/');
2540
-	}
2541
-
2542
-	// répertoire des libs via Composer
2543
-	if (!defined('_DIR_VENDOR')) {
2544
-		define('_DIR_VENDOR', _DIR_RACINE . 'vendor/');
2545
-	}
2546
-
2547
-	if (!defined('_DIR_IMG')) {
2548
-		define('_DIR_IMG', $pa);
2549
-	}
2550
-	if (!defined('_DIR_LOGOS')) {
2551
-		define('_DIR_LOGOS', $pa);
2552
-	}
2553
-	if (!defined('_DIR_IMG_ICONES')) {
2554
-		define('_DIR_IMG_ICONES', _DIR_LOGOS . 'icones/');
2555
-	}
2556
-
2557
-	if (!defined('_DIR_DUMP')) {
2558
-		define('_DIR_DUMP', $ti . 'dump/');
2559
-	}
2560
-	if (!defined('_DIR_SESSIONS')) {
2561
-		define('_DIR_SESSIONS', $ti . 'sessions/');
2562
-	}
2563
-	if (!defined('_DIR_TRANSFERT')) {
2564
-		define('_DIR_TRANSFERT', $ti . 'upload/');
2565
-	}
2566
-	if (!defined('_DIR_CACHE')) {
2567
-		define('_DIR_CACHE', $ti . 'cache/');
2568
-	}
2569
-	if (!defined('_DIR_CACHE_XML')) {
2570
-		define('_DIR_CACHE_XML', _DIR_CACHE . 'xml/');
2571
-	}
2572
-	if (!defined('_DIR_SKELS')) {
2573
-		define('_DIR_SKELS', _DIR_CACHE . 'skel/');
2574
-	}
2575
-	if (!defined('_DIR_AIDE')) {
2576
-		define('_DIR_AIDE', _DIR_CACHE . 'aide/');
2577
-	}
2578
-	if (!defined('_DIR_TMP')) {
2579
-		define('_DIR_TMP', $ti);
2580
-	}
2581
-
2582
-	if (!defined('_DIR_VAR')) {
2583
-		define('_DIR_VAR', $ta);
2584
-	}
2585
-
2586
-	if (!defined('_DIR_ETC')) {
2587
-		define('_DIR_ETC', $pi);
2588
-	}
2589
-	if (!defined('_DIR_CONNECT')) {
2590
-		define('_DIR_CONNECT', $pi);
2591
-	}
2592
-	if (!defined('_DIR_CHMOD')) {
2593
-		define('_DIR_CHMOD', $pi);
2594
-	}
2595
-
2596
-	if (!isset($GLOBALS['test_dirs'])) {
2597
-		// Pas $pi car il est bon de le mettre hors ecriture apres intstall
2598
-		// il sera rajoute automatiquement si besoin a l'etape 2 de l'install
2599
-	$GLOBALS['test_dirs'] = [$pa, $ti, $ta];
2600
-	}
2601
-
2602
-	// Declaration des fichiers
2603
-
2604
-	if (!defined('_CACHE_PLUGINS_PATH')) {
2605
-		define('_CACHE_PLUGINS_PATH', _DIR_CACHE . 'charger_plugins_chemins.php');
2606
-	}
2607
-	if (!defined('_CACHE_PLUGINS_OPT')) {
2608
-		define('_CACHE_PLUGINS_OPT', _DIR_CACHE . 'charger_plugins_options.php');
2609
-	}
2610
-	if (!defined('_CACHE_PLUGINS_FCT')) {
2611
-		define('_CACHE_PLUGINS_FCT', _DIR_CACHE . 'charger_plugins_fonctions.php');
2612
-	}
2613
-	if (!defined('_CACHE_PIPELINES')) {
2614
-		define('_CACHE_PIPELINES', _DIR_CACHE . 'charger_pipelines.php');
2615
-	}
2616
-	if (!defined('_CACHE_CHEMIN')) {
2617
-		define('_CACHE_CHEMIN', _DIR_CACHE . 'chemin.txt');
2618
-	}
2619
-
2620
-	# attention .php obligatoire pour ecrire_fichier_securise
2621
-	if (!defined('_FILE_META')) {
2622
-		define('_FILE_META', $ti . 'meta_cache.php');
2623
-	}
2624
-	if (!defined('_DIR_LOG')) {
2625
-		define('_DIR_LOG', _DIR_TMP . 'log/');
2626
-	}
2627
-	if (!defined('_FILE_LOG')) {
2628
-		define('_FILE_LOG', 'spip');
2629
-	}
2630
-	if (!defined('_FILE_LOG_SUFFIX')) {
2631
-		define('_FILE_LOG_SUFFIX', '.log');
2632
-	}
2633
-
2634
-	// Le fichier de connexion a la base de donnees
2635
-	if (!defined('_FILE_CONNECT_INS')) {
2636
-		define('_FILE_CONNECT_INS', 'connect');
2637
-	}
2638
-	if (!defined('_FILE_CONNECT')) {
2639
-		define(
2640
-			'_FILE_CONNECT',
2641
-			@is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f : false
2642
-		);
2643
-	}
2644
-
2645
-	// Le fichier de reglages des droits
2646
-	if (!defined('_FILE_CHMOD_INS')) {
2647
-		define('_FILE_CHMOD_INS', 'chmod');
2648
-	}
2649
-	if (!defined('_FILE_CHMOD')) {
2650
-		define(
2651
-			'_FILE_CHMOD',
2652
-			@is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f : false
2653
-		);
2654
-	}
2655
-
2656
-	if (!defined('_FILE_LDAP')) {
2657
-		define('_FILE_LDAP', 'ldap.php');
2658
-	}
2659
-
2660
-	if (!defined('_FILE_TMP_SUFFIX')) {
2661
-		define('_FILE_TMP_SUFFIX', '.tmp.php');
2662
-	}
2663
-	if (!defined('_FILE_CONNECT_TMP')) {
2664
-		define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
2665
-	}
2666
-	if (!defined('_FILE_CHMOD_TMP')) {
2667
-		define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
2668
-	}
2669
-
2670
-	// Definition des droits d'acces en ecriture
2671
-	if (!defined('_SPIP_CHMOD') && _FILE_CHMOD) {
2672
-		include_once _FILE_CHMOD;
2673
-	}
2674
-
2675
-	// Se mefier des fichiers mal remplis!
2676
-	if (!defined('_SPIP_CHMOD')) {
2677
-		define('_SPIP_CHMOD', 0777);
2678
-	}
2679
-
2680
-	if (!defined('_DEFAULT_CHARSET')) {
2681
-		/** Le charset par défaut lors de l'installation */
2682
-		define('_DEFAULT_CHARSET', 'utf-8');
2683
-	}
2684
-	if (!defined('_ROOT_PLUGINS')) {
2685
-		define('_ROOT_PLUGINS', _ROOT_RACINE . 'plugins/');
2686
-	}
2687
-	if (!defined('_ROOT_PLUGINS_DIST')) {
2688
-		define('_ROOT_PLUGINS_DIST', _ROOT_RACINE . 'plugins-dist/');
2689
-	}
2690
-	if (!defined('_ROOT_PLUGINS_SUPPL') && defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
2691
-		define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2692
-	}
2693
-
2694
-	// La taille des Log
2695
-	if (!defined('_MAX_LOG')) {
2696
-		define('_MAX_LOG', 100);
2697
-	}
2698
-
2699
-	// Sommes-nous dans l'empire du Mal ?
2700
-	// (ou sous le signe du Pingouin, ascendant GNU ?)
2701
-	if (isset($_SERVER['SERVER_SOFTWARE']) && str_contains($_SERVER['SERVER_SOFTWARE'], '(Win')) {
2702
-		if (!defined('_OS_SERVEUR')) {
2703
-			define('_OS_SERVEUR', 'windows');
2704
-		}
2705
-		if (!defined('_SPIP_LOCK_MODE')) {
2706
-			define('_SPIP_LOCK_MODE', 1);
2707
-		} // utiliser le flock php
2708
-	} else {
2709
-		if (!defined('_OS_SERVEUR')) {
2710
-			define('_OS_SERVEUR', '');
2711
-		}
2712
-		if (!defined('_SPIP_LOCK_MODE')) {
2713
-			define('_SPIP_LOCK_MODE', 1);
2714
-		} // utiliser le flock php
2715
-		#if (!defined('_SPIP_LOCK_MODE')) define('_SPIP_LOCK_MODE',2); // utiliser le nfslock de spip mais link() est tres souvent interdite
2716
-	}
2717
-
2718
-	// Langue par defaut
2719
-	if (!defined('_LANGUE_PAR_DEFAUT')) {
2720
-		define('_LANGUE_PAR_DEFAUT', 'fr');
2721
-	}
2722
-
2723
-	//
2724
-	// Module de lecture/ecriture/suppression de fichiers utilisant flock()
2725
-	// (non surchargeable en l'etat ; attention si on utilise include_spip()
2726
-	// pour le rendre surchargeable, on va provoquer un reecriture
2727
-	// systematique du noyau ou une baisse de perfs => a etudier)
2728
-	include_once _ROOT_RESTREINT . 'inc/flock.php';
2729
-
2730
-	// charger tout de suite le path et son cache
2731
-	load_path_cache();
2732
-
2733
-	// *********** traiter les variables ************
2734
-
2735
-	//
2736
-	// Securite
2737
-	//
2738
-
2739
-	// Ne pas se faire manger par un bug php qui accepte ?GLOBALS[truc]=toto
2740
-	if (isset($_REQUEST['GLOBALS'])) {
2741
-		die();
2742
-	}
2743
-	// nettoyer les magic quotes \' et les caracteres nuls %00
2744
-	spip_desinfecte($_GET);
2745
-	spip_desinfecte($_POST);
2746
-	spip_desinfecte($_COOKIE);
2747
-	spip_desinfecte($_REQUEST);
2748
-
2749
-	// appliquer le cookie_prefix
2750
-	if ($GLOBALS['cookie_prefix'] != 'spip') {
2751
-		include_spip('inc/cookie');
2752
-		recuperer_cookies_spip($GLOBALS['cookie_prefix']);
2753
-	}
2754
-
2755
-	// Compatibilite avec serveurs ne fournissant pas $REQUEST_URI
2756
-	if (isset($_SERVER['REQUEST_URI'])) {
2757
-		$GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2758
-	} else {
2759
-		$GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2760
-		if (
2761
-			!empty($_SERVER['QUERY_STRING'])
2762
-			&& !strpos($_SERVER['REQUEST_URI'], '?')
2763
-		) {
2764
-			$GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2765
-		}
2766
-	}
2767
-
2768
-	// Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
2769
-	if (!defined('_RENOUVELLE_ALEA')) {
2770
-		define('_RENOUVELLE_ALEA', 12 * 3600);
2771
-	}
2772
-	if (!defined('_DUREE_COOKIE_ADMIN')) {
2773
-		define('_DUREE_COOKIE_ADMIN', 14 * 24 * 3600);
2774
-	}
2775
-
2776
-	// charger les meta si possible et renouveller l'alea au besoin
2777
-	// charge aussi effacer_meta et ecrire_meta
2778
-	$inc_meta = charger_fonction('meta', 'inc');
2779
-	$inc_meta();
2780
-
2781
-	// nombre de repertoires depuis la racine
2782
-	// on compare a l'adresse de spip.php : $_SERVER["SCRIPT_NAME"]
2783
-	// ou a defaut celle donnee en meta ; (mais si celle-ci est fausse
2784
-	// le calcul est faux)
2785
-	if (!_DIR_RESTREINT) {
2786
-		$GLOBALS['profondeur_url'] = 1;
2787
-	} else {
2788
-		$uri = isset($_SERVER['REQUEST_URI']) ? explode('?', $_SERVER['REQUEST_URI']) : '';
2789
-		$uri_ref = $_SERVER['SCRIPT_NAME'];
2790
-		if (
2791
-			!$uri_ref
2792
-			// si on est appele avec un autre ti, on est sans doute en mutu
2793
-			// si jamais c'est de la mutu avec sous rep, on est perdu si on se fie
2794
-			// a spip.php qui est a la racine du spip, et vue qu'on sait pas se reperer
2795
-			// s'en remettre a l'adresse du site. alea jacta est.
2796
-			|| $ti !== _NOM_TEMPORAIRES_INACCESSIBLES
2797
-		) {
2798
-			if (isset($GLOBALS['meta']['adresse_site'])) {
2799
-				$uri_ref = parse_url($GLOBALS['meta']['adresse_site']);
2800
-				$uri_ref = ($uri_ref['path'] ?? '') . '/';
2801
-			} else {
2802
-				$uri_ref = '';
2803
-			}
2804
-		}
2805
-		if (!$uri || !$uri_ref) {
2806
-			$GLOBALS['profondeur_url'] = 0;
2807
-		} else {
2808
-			$GLOBALS['profondeur_url'] = max(
2809
-				0,
2810
-				substr_count($uri[0], '/')
2811
-				- substr_count($uri_ref, '/')
2812
-			);
2813
-		}
2814
-	}
2815
-	// s'il y a un cookie ou PHP_AUTH, initialiser visiteur_session
2816
-	if (_FILE_CONNECT) {
2817
-		if (
2818
-			verifier_visiteur() == '0minirezo'
2819
-			// si c'est un admin sans cookie admin, il faut ignorer le cache chemin !
2820
-			&& !isset($_COOKIE['spip_admin'])
2821
-		) {
2822
-			clear_path_cache();
2823
-		}
2824
-	}
2519
+    static $too_late = 0;
2520
+    if ($too_late++) {
2521
+        return;
2522
+    }
2523
+
2524
+    // Declaration des repertoires
2525
+
2526
+    // le nom du repertoire plugins/ activables/desactivables
2527
+    if (!defined('_DIR_PLUGINS')) {
2528
+        define('_DIR_PLUGINS', _DIR_RACINE . 'plugins/');
2529
+    }
2530
+
2531
+    // le nom du repertoire des extensions/ permanentes du core, toujours actives
2532
+    if (!defined('_DIR_PLUGINS_DIST')) {
2533
+        define('_DIR_PLUGINS_DIST', _DIR_RACINE . 'plugins-dist/');
2534
+    }
2535
+
2536
+    // le nom du repertoire des librairies
2537
+    if (!defined('_DIR_LIB')) {
2538
+        define('_DIR_LIB', _DIR_RACINE . 'lib/');
2539
+    }
2540
+
2541
+    // répertoire des libs via Composer
2542
+    if (!defined('_DIR_VENDOR')) {
2543
+        define('_DIR_VENDOR', _DIR_RACINE . 'vendor/');
2544
+    }
2545
+
2546
+    if (!defined('_DIR_IMG')) {
2547
+        define('_DIR_IMG', $pa);
2548
+    }
2549
+    if (!defined('_DIR_LOGOS')) {
2550
+        define('_DIR_LOGOS', $pa);
2551
+    }
2552
+    if (!defined('_DIR_IMG_ICONES')) {
2553
+        define('_DIR_IMG_ICONES', _DIR_LOGOS . 'icones/');
2554
+    }
2555
+
2556
+    if (!defined('_DIR_DUMP')) {
2557
+        define('_DIR_DUMP', $ti . 'dump/');
2558
+    }
2559
+    if (!defined('_DIR_SESSIONS')) {
2560
+        define('_DIR_SESSIONS', $ti . 'sessions/');
2561
+    }
2562
+    if (!defined('_DIR_TRANSFERT')) {
2563
+        define('_DIR_TRANSFERT', $ti . 'upload/');
2564
+    }
2565
+    if (!defined('_DIR_CACHE')) {
2566
+        define('_DIR_CACHE', $ti . 'cache/');
2567
+    }
2568
+    if (!defined('_DIR_CACHE_XML')) {
2569
+        define('_DIR_CACHE_XML', _DIR_CACHE . 'xml/');
2570
+    }
2571
+    if (!defined('_DIR_SKELS')) {
2572
+        define('_DIR_SKELS', _DIR_CACHE . 'skel/');
2573
+    }
2574
+    if (!defined('_DIR_AIDE')) {
2575
+        define('_DIR_AIDE', _DIR_CACHE . 'aide/');
2576
+    }
2577
+    if (!defined('_DIR_TMP')) {
2578
+        define('_DIR_TMP', $ti);
2579
+    }
2580
+
2581
+    if (!defined('_DIR_VAR')) {
2582
+        define('_DIR_VAR', $ta);
2583
+    }
2584
+
2585
+    if (!defined('_DIR_ETC')) {
2586
+        define('_DIR_ETC', $pi);
2587
+    }
2588
+    if (!defined('_DIR_CONNECT')) {
2589
+        define('_DIR_CONNECT', $pi);
2590
+    }
2591
+    if (!defined('_DIR_CHMOD')) {
2592
+        define('_DIR_CHMOD', $pi);
2593
+    }
2594
+
2595
+    if (!isset($GLOBALS['test_dirs'])) {
2596
+        // Pas $pi car il est bon de le mettre hors ecriture apres intstall
2597
+        // il sera rajoute automatiquement si besoin a l'etape 2 de l'install
2598
+    $GLOBALS['test_dirs'] = [$pa, $ti, $ta];
2599
+    }
2600
+
2601
+    // Declaration des fichiers
2602
+
2603
+    if (!defined('_CACHE_PLUGINS_PATH')) {
2604
+        define('_CACHE_PLUGINS_PATH', _DIR_CACHE . 'charger_plugins_chemins.php');
2605
+    }
2606
+    if (!defined('_CACHE_PLUGINS_OPT')) {
2607
+        define('_CACHE_PLUGINS_OPT', _DIR_CACHE . 'charger_plugins_options.php');
2608
+    }
2609
+    if (!defined('_CACHE_PLUGINS_FCT')) {
2610
+        define('_CACHE_PLUGINS_FCT', _DIR_CACHE . 'charger_plugins_fonctions.php');
2611
+    }
2612
+    if (!defined('_CACHE_PIPELINES')) {
2613
+        define('_CACHE_PIPELINES', _DIR_CACHE . 'charger_pipelines.php');
2614
+    }
2615
+    if (!defined('_CACHE_CHEMIN')) {
2616
+        define('_CACHE_CHEMIN', _DIR_CACHE . 'chemin.txt');
2617
+    }
2618
+
2619
+    # attention .php obligatoire pour ecrire_fichier_securise
2620
+    if (!defined('_FILE_META')) {
2621
+        define('_FILE_META', $ti . 'meta_cache.php');
2622
+    }
2623
+    if (!defined('_DIR_LOG')) {
2624
+        define('_DIR_LOG', _DIR_TMP . 'log/');
2625
+    }
2626
+    if (!defined('_FILE_LOG')) {
2627
+        define('_FILE_LOG', 'spip');
2628
+    }
2629
+    if (!defined('_FILE_LOG_SUFFIX')) {
2630
+        define('_FILE_LOG_SUFFIX', '.log');
2631
+    }
2632
+
2633
+    // Le fichier de connexion a la base de donnees
2634
+    if (!defined('_FILE_CONNECT_INS')) {
2635
+        define('_FILE_CONNECT_INS', 'connect');
2636
+    }
2637
+    if (!defined('_FILE_CONNECT')) {
2638
+        define(
2639
+            '_FILE_CONNECT',
2640
+            @is_readable($f = _DIR_CONNECT . _FILE_CONNECT_INS . '.php') ? $f : false
2641
+        );
2642
+    }
2643
+
2644
+    // Le fichier de reglages des droits
2645
+    if (!defined('_FILE_CHMOD_INS')) {
2646
+        define('_FILE_CHMOD_INS', 'chmod');
2647
+    }
2648
+    if (!defined('_FILE_CHMOD')) {
2649
+        define(
2650
+            '_FILE_CHMOD',
2651
+            @is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f : false
2652
+        );
2653
+    }
2654
+
2655
+    if (!defined('_FILE_LDAP')) {
2656
+        define('_FILE_LDAP', 'ldap.php');
2657
+    }
2658
+
2659
+    if (!defined('_FILE_TMP_SUFFIX')) {
2660
+        define('_FILE_TMP_SUFFIX', '.tmp.php');
2661
+    }
2662
+    if (!defined('_FILE_CONNECT_TMP')) {
2663
+        define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
2664
+    }
2665
+    if (!defined('_FILE_CHMOD_TMP')) {
2666
+        define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
2667
+    }
2668
+
2669
+    // Definition des droits d'acces en ecriture
2670
+    if (!defined('_SPIP_CHMOD') && _FILE_CHMOD) {
2671
+        include_once _FILE_CHMOD;
2672
+    }
2673
+
2674
+    // Se mefier des fichiers mal remplis!
2675
+    if (!defined('_SPIP_CHMOD')) {
2676
+        define('_SPIP_CHMOD', 0777);
2677
+    }
2678
+
2679
+    if (!defined('_DEFAULT_CHARSET')) {
2680
+        /** Le charset par défaut lors de l'installation */
2681
+        define('_DEFAULT_CHARSET', 'utf-8');
2682
+    }
2683
+    if (!defined('_ROOT_PLUGINS')) {
2684
+        define('_ROOT_PLUGINS', _ROOT_RACINE . 'plugins/');
2685
+    }
2686
+    if (!defined('_ROOT_PLUGINS_DIST')) {
2687
+        define('_ROOT_PLUGINS_DIST', _ROOT_RACINE . 'plugins-dist/');
2688
+    }
2689
+    if (!defined('_ROOT_PLUGINS_SUPPL') && defined('_DIR_PLUGINS_SUPPL') && _DIR_PLUGINS_SUPPL) {
2690
+        define('_ROOT_PLUGINS_SUPPL', _ROOT_RACINE . str_replace(_DIR_RACINE, '', _DIR_PLUGINS_SUPPL));
2691
+    }
2692
+
2693
+    // La taille des Log
2694
+    if (!defined('_MAX_LOG')) {
2695
+        define('_MAX_LOG', 100);
2696
+    }
2697
+
2698
+    // Sommes-nous dans l'empire du Mal ?
2699
+    // (ou sous le signe du Pingouin, ascendant GNU ?)
2700
+    if (isset($_SERVER['SERVER_SOFTWARE']) && str_contains($_SERVER['SERVER_SOFTWARE'], '(Win')) {
2701
+        if (!defined('_OS_SERVEUR')) {
2702
+            define('_OS_SERVEUR', 'windows');
2703
+        }
2704
+        if (!defined('_SPIP_LOCK_MODE')) {
2705
+            define('_SPIP_LOCK_MODE', 1);
2706
+        } // utiliser le flock php
2707
+    } else {
2708
+        if (!defined('_OS_SERVEUR')) {
2709
+            define('_OS_SERVEUR', '');
2710
+        }
2711
+        if (!defined('_SPIP_LOCK_MODE')) {
2712
+            define('_SPIP_LOCK_MODE', 1);
2713
+        } // utiliser le flock php
2714
+        #if (!defined('_SPIP_LOCK_MODE')) define('_SPIP_LOCK_MODE',2); // utiliser le nfslock de spip mais link() est tres souvent interdite
2715
+    }
2716
+
2717
+    // Langue par defaut
2718
+    if (!defined('_LANGUE_PAR_DEFAUT')) {
2719
+        define('_LANGUE_PAR_DEFAUT', 'fr');
2720
+    }
2721
+
2722
+    //
2723
+    // Module de lecture/ecriture/suppression de fichiers utilisant flock()
2724
+    // (non surchargeable en l'etat ; attention si on utilise include_spip()
2725
+    // pour le rendre surchargeable, on va provoquer un reecriture
2726
+    // systematique du noyau ou une baisse de perfs => a etudier)
2727
+    include_once _ROOT_RESTREINT . 'inc/flock.php';
2728
+
2729
+    // charger tout de suite le path et son cache
2730
+    load_path_cache();
2731
+
2732
+    // *********** traiter les variables ************
2733
+
2734
+    //
2735
+    // Securite
2736
+    //
2737
+
2738
+    // Ne pas se faire manger par un bug php qui accepte ?GLOBALS[truc]=toto
2739
+    if (isset($_REQUEST['GLOBALS'])) {
2740
+        die();
2741
+    }
2742
+    // nettoyer les magic quotes \' et les caracteres nuls %00
2743
+    spip_desinfecte($_GET);
2744
+    spip_desinfecte($_POST);
2745
+    spip_desinfecte($_COOKIE);
2746
+    spip_desinfecte($_REQUEST);
2747
+
2748
+    // appliquer le cookie_prefix
2749
+    if ($GLOBALS['cookie_prefix'] != 'spip') {
2750
+        include_spip('inc/cookie');
2751
+        recuperer_cookies_spip($GLOBALS['cookie_prefix']);
2752
+    }
2753
+
2754
+    // Compatibilite avec serveurs ne fournissant pas $REQUEST_URI
2755
+    if (isset($_SERVER['REQUEST_URI'])) {
2756
+        $GLOBALS['REQUEST_URI'] = $_SERVER['REQUEST_URI'];
2757
+    } else {
2758
+        $GLOBALS['REQUEST_URI'] = (php_sapi_name() !== 'cli') ? $_SERVER['PHP_SELF'] : '';
2759
+        if (
2760
+            !empty($_SERVER['QUERY_STRING'])
2761
+            && !strpos($_SERVER['REQUEST_URI'], '?')
2762
+        ) {
2763
+            $GLOBALS['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
2764
+        }
2765
+    }
2766
+
2767
+    // Duree de validite de l'alea pour les cookies et ce qui s'ensuit.
2768
+    if (!defined('_RENOUVELLE_ALEA')) {
2769
+        define('_RENOUVELLE_ALEA', 12 * 3600);
2770
+    }
2771
+    if (!defined('_DUREE_COOKIE_ADMIN')) {
2772
+        define('_DUREE_COOKIE_ADMIN', 14 * 24 * 3600);
2773
+    }
2774
+
2775
+    // charger les meta si possible et renouveller l'alea au besoin
2776
+    // charge aussi effacer_meta et ecrire_meta
2777
+    $inc_meta = charger_fonction('meta', 'inc');
2778
+    $inc_meta();
2779
+
2780
+    // nombre de repertoires depuis la racine
2781
+    // on compare a l'adresse de spip.php : $_SERVER["SCRIPT_NAME"]
2782
+    // ou a defaut celle donnee en meta ; (mais si celle-ci est fausse
2783
+    // le calcul est faux)
2784
+    if (!_DIR_RESTREINT) {
2785
+        $GLOBALS['profondeur_url'] = 1;
2786
+    } else {
2787
+        $uri = isset($_SERVER['REQUEST_URI']) ? explode('?', $_SERVER['REQUEST_URI']) : '';
2788
+        $uri_ref = $_SERVER['SCRIPT_NAME'];
2789
+        if (
2790
+            !$uri_ref
2791
+            // si on est appele avec un autre ti, on est sans doute en mutu
2792
+            // si jamais c'est de la mutu avec sous rep, on est perdu si on se fie
2793
+            // a spip.php qui est a la racine du spip, et vue qu'on sait pas se reperer
2794
+            // s'en remettre a l'adresse du site. alea jacta est.
2795
+            || $ti !== _NOM_TEMPORAIRES_INACCESSIBLES
2796
+        ) {
2797
+            if (isset($GLOBALS['meta']['adresse_site'])) {
2798
+                $uri_ref = parse_url($GLOBALS['meta']['adresse_site']);
2799
+                $uri_ref = ($uri_ref['path'] ?? '') . '/';
2800
+            } else {
2801
+                $uri_ref = '';
2802
+            }
2803
+        }
2804
+        if (!$uri || !$uri_ref) {
2805
+            $GLOBALS['profondeur_url'] = 0;
2806
+        } else {
2807
+            $GLOBALS['profondeur_url'] = max(
2808
+                0,
2809
+                substr_count($uri[0], '/')
2810
+                - substr_count($uri_ref, '/')
2811
+            );
2812
+        }
2813
+    }
2814
+    // s'il y a un cookie ou PHP_AUTH, initialiser visiteur_session
2815
+    if (_FILE_CONNECT) {
2816
+        if (
2817
+            verifier_visiteur() == '0minirezo'
2818
+            // si c'est un admin sans cookie admin, il faut ignorer le cache chemin !
2819
+            && !isset($_COOKIE['spip_admin'])
2820
+        ) {
2821
+            clear_path_cache();
2822
+        }
2823
+    }
2825 2824
 }
2826 2825
 
2827 2826
 /**
@@ -2830,158 +2829,158 @@  discard block
 block discarded – undo
2830 2829
  *
2831 2830
  */
2832 2831
 function spip_initialisation_suite() {
2833
-	static $too_late = 0;
2834
-	if ($too_late++) {
2835
-		return;
2836
-	}
2837
-
2838
-	// taille mini des login
2839
-	if (!defined('_LOGIN_TROP_COURT')) {
2840
-		define('_LOGIN_TROP_COURT', 4);
2841
-	}
2842
-
2843
-	// la taille maxi des logos (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2844
-	#if (!defined('_LOGO_MAX_SIZE')) define('_LOGO_MAX_SIZE', 0); # poids en ko
2845
-	#if (!defined('_LOGO_MAX_WIDTH')) define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
2846
-	#if (!defined('_LOGO_MAX_HEIGHT')) define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels
2847
-
2848
-	// la taille maxi des images (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2849
-	#if (!defined('_DOC_MAX_SIZE')) define('_DOC_MAX_SIZE', 0); # poids en ko
2850
-	#if (!defined('_IMG_MAX_SIZE')) define('_IMG_MAX_SIZE', 0); # poids en ko
2851
-	#if (!defined('_IMG_MAX_WIDTH')) define('_IMG_MAX_WIDTH', 0); # largeur en pixels
2852
-	#if (!defined('_IMG_MAX_HEIGHT')) define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels
2853
-
2854
-	if (!defined('_PASS_LONGUEUR_MINI')) {
2855
-		define('_PASS_LONGUEUR_MINI', 6);
2856
-	}
2857
-
2858
-	// largeur maximale des images dans l'administration
2859
-	if (!defined('_IMG_ADMIN_MAX_WIDTH')) {
2860
-		define('_IMG_ADMIN_MAX_WIDTH', 768);
2861
-	}
2862
-
2863
-	// Qualite des images calculees automatiquement. C'est un nombre entre 0 et 100, meme pour imagick (on ramene a 0..1 par la suite)
2864
-	if (!defined('_IMG_QUALITE')) {
2865
-		define('_IMG_QUALITE', 85);
2866
-	} # valeur par defaut
2867
-	if (!defined('_IMG_GD_QUALITE')) {
2868
-		define('_IMG_GD_QUALITE', _IMG_QUALITE);
2869
-	} # surcharge pour la lib GD
2870
-	if (!defined('_IMG_CONVERT_QUALITE')) {
2871
-		define('_IMG_CONVERT_QUALITE', _IMG_QUALITE);
2872
-	} # surcharge pour imagick en ligne de commande
2873
-	// Historiquement la valeur pour imagick semble differente. Si ca n'est pas necessaire, il serait preferable de garder _IMG_QUALITE
2874
-	if (!defined('_IMG_IMAGICK_QUALITE')) {
2875
-		define('_IMG_IMAGICK_QUALITE', 75);
2876
-	} # surcharge pour imagick en PHP
2877
-
2878
-	if (!defined('_COPIE_LOCALE_MAX_SIZE')) {
2879
-		define('_COPIE_LOCALE_MAX_SIZE', 33_554_432);
2880
-	} // poids en octet
2881
-
2882
-	// qq chaines standard
2883
-	if (!defined('_ACCESS_FILE_NAME')) {
2884
-		define('_ACCESS_FILE_NAME', '.htaccess');
2885
-	}
2886
-	if (!defined('_AUTH_USER_FILE')) {
2887
-		define('_AUTH_USER_FILE', '.htpasswd');
2888
-	}
2889
-	if (!defined('_SPIP_DUMP')) {
2890
-		define('_SPIP_DUMP', 'dump@nom_site@@[email protected]');
2891
-	}
2892
-	if (!defined('_CACHE_RUBRIQUES')) {
2893
-		/** Fichier cache pour le navigateur de rubrique du bandeau */
2894
-		define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
2895
-	}
2896
-	if (!defined('_CACHE_RUBRIQUES_MAX')) {
2897
-		/** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
2898
-		define('_CACHE_RUBRIQUES_MAX', 500);
2899
-	}
2900
-
2901
-	if (!defined('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR')) {
2902
-		/**
2903
-		 * Basculer les contextes ajax en fichier si la longueur d’url est trop grande
2904
-		 * @var int Nombre de caractères */
2905
-		define('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR', 2000);
2906
-	}
2907
-
2908
-	if (!defined('_EXTENSION_SQUELETTES')) {
2909
-		define('_EXTENSION_SQUELETTES', 'html');
2910
-	}
2911
-
2912
-	if (!defined('_DOCTYPE_ECRIRE')) {
2913
-		/** Définit le doctype de l’espace privé */
2914
-		define('_DOCTYPE_ECRIRE', "<!DOCTYPE html>\n");
2915
-	}
2916
-	if (!defined('_DOCTYPE_AIDE')) {
2917
-		/** Définit le doctype de l’aide en ligne */
2918
-		define(
2919
-			'_DOCTYPE_AIDE',
2920
-			"<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"
2921
-		);
2922
-	}
2923
-
2924
-	if (!defined('_SPIP_SCRIPT')) {
2925
-		/** L'adresse de base du site ; on peut mettre '' si la racine est gerée par
2926
-		 * le script de l'espace public, alias index.php */
2927
-		define('_SPIP_SCRIPT', 'spip.php');
2928
-	}
2929
-	if (!defined('_SPIP_PAGE')) {
2930
-		/** Argument page, personalisable en cas de conflit avec un autre script */
2931
-		define('_SPIP_PAGE', 'page');
2932
-	}
2933
-
2934
-	// le script de l'espace prive
2935
-	// Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes:
2936
-	// les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
2937
-	// meme pb sur thttpd cf. https://forum.spip.net/fr_184153.html
2938
-	if (!defined('_SPIP_ECRIRE_SCRIPT')) {
2939
-		if (!empty($_SERVER['SERVER_SOFTWARE']) && preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE'])) {
2940
-			define('_SPIP_ECRIRE_SCRIPT', 'index.php');
2941
-		} else {
2942
-			define('_SPIP_ECRIRE_SCRIPT', '');
2943
-		}
2944
-	}
2945
-
2946
-
2947
-	if (!defined('_SPIP_AJAX')) {
2948
-		define('_SPIP_AJAX', ((!isset($_COOKIE['spip_accepte_ajax']))
2949
-			? 1
2950
-			: (($_COOKIE['spip_accepte_ajax'] != -1) ? 1 : 0)));
2951
-	}
2952
-
2953
-	// La requete est-elle en ajax ?
2954
-	if (!defined('_AJAX')) {
2955
-		define(
2956
-			'_AJAX',
2957
-			(
2958
-				isset($_SERVER['HTTP_X_REQUESTED_WITH']) # ajax jQuery
2959
-				|| !empty($_REQUEST['var_ajax_redir']) # redirection 302 apres ajax jQuer
2960
-				|| !empty($_REQUEST['var_ajaxcharset']) # compat ascendante pour plugins
2961
-				|| !empty($_REQUEST['var_ajax']) # forms ajax & inclure ajax de spip
2962
-			)
2963
-			&& empty($_REQUEST['var_noajax']) # horrible exception, car c'est pas parce que la requete est ajax jquery qu'il faut tuer tous les formulaires ajax qu'elle contient
2964
-		);
2965
-	}
2966
-
2967
-	# nombre de pixels maxi pour calcul de la vignette avec gd
2968
-	# au dela de 5500000 on considere que php n'est pas limite en memoire pour cette operation
2969
-	# les configurations limitees en memoire ont un seuil plutot vers 1MPixel
2970
-	if (!defined('_IMG_GD_MAX_PIXELS')) {
2971
-		define(
2972
-			'_IMG_GD_MAX_PIXELS',
2973
-			(isset($GLOBALS['meta']['max_taille_vignettes']) && $GLOBALS['meta']['max_taille_vignettes'])
2974
-			? $GLOBALS['meta']['max_taille_vignettes']
2975
-			: 0
2976
-		);
2977
-	}
2978
-
2979
-	// Protocoles a normaliser dans les chaines de langues
2980
-	if (!defined('_PROTOCOLES_STD')) {
2981
-		define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal');
2982
-	}
2983
-
2984
-	init_var_mode();
2832
+    static $too_late = 0;
2833
+    if ($too_late++) {
2834
+        return;
2835
+    }
2836
+
2837
+    // taille mini des login
2838
+    if (!defined('_LOGIN_TROP_COURT')) {
2839
+        define('_LOGIN_TROP_COURT', 4);
2840
+    }
2841
+
2842
+    // la taille maxi des logos (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2843
+    #if (!defined('_LOGO_MAX_SIZE')) define('_LOGO_MAX_SIZE', 0); # poids en ko
2844
+    #if (!defined('_LOGO_MAX_WIDTH')) define('_LOGO_MAX_WIDTH', 0); # largeur en pixels
2845
+    #if (!defined('_LOGO_MAX_HEIGHT')) define('_LOGO_MAX_HEIGHT', 0); # hauteur en pixels
2846
+
2847
+    // la taille maxi des images (0 : pas de limite) (pas de define par defaut, ce n'est pas utile)
2848
+    #if (!defined('_DOC_MAX_SIZE')) define('_DOC_MAX_SIZE', 0); # poids en ko
2849
+    #if (!defined('_IMG_MAX_SIZE')) define('_IMG_MAX_SIZE', 0); # poids en ko
2850
+    #if (!defined('_IMG_MAX_WIDTH')) define('_IMG_MAX_WIDTH', 0); # largeur en pixels
2851
+    #if (!defined('_IMG_MAX_HEIGHT')) define('_IMG_MAX_HEIGHT', 0); # hauteur en pixels
2852
+
2853
+    if (!defined('_PASS_LONGUEUR_MINI')) {
2854
+        define('_PASS_LONGUEUR_MINI', 6);
2855
+    }
2856
+
2857
+    // largeur maximale des images dans l'administration
2858
+    if (!defined('_IMG_ADMIN_MAX_WIDTH')) {
2859
+        define('_IMG_ADMIN_MAX_WIDTH', 768);
2860
+    }
2861
+
2862
+    // Qualite des images calculees automatiquement. C'est un nombre entre 0 et 100, meme pour imagick (on ramene a 0..1 par la suite)
2863
+    if (!defined('_IMG_QUALITE')) {
2864
+        define('_IMG_QUALITE', 85);
2865
+    } # valeur par defaut
2866
+    if (!defined('_IMG_GD_QUALITE')) {
2867
+        define('_IMG_GD_QUALITE', _IMG_QUALITE);
2868
+    } # surcharge pour la lib GD
2869
+    if (!defined('_IMG_CONVERT_QUALITE')) {
2870
+        define('_IMG_CONVERT_QUALITE', _IMG_QUALITE);
2871
+    } # surcharge pour imagick en ligne de commande
2872
+    // Historiquement la valeur pour imagick semble differente. Si ca n'est pas necessaire, il serait preferable de garder _IMG_QUALITE
2873
+    if (!defined('_IMG_IMAGICK_QUALITE')) {
2874
+        define('_IMG_IMAGICK_QUALITE', 75);
2875
+    } # surcharge pour imagick en PHP
2876
+
2877
+    if (!defined('_COPIE_LOCALE_MAX_SIZE')) {
2878
+        define('_COPIE_LOCALE_MAX_SIZE', 33_554_432);
2879
+    } // poids en octet
2880
+
2881
+    // qq chaines standard
2882
+    if (!defined('_ACCESS_FILE_NAME')) {
2883
+        define('_ACCESS_FILE_NAME', '.htaccess');
2884
+    }
2885
+    if (!defined('_AUTH_USER_FILE')) {
2886
+        define('_AUTH_USER_FILE', '.htpasswd');
2887
+    }
2888
+    if (!defined('_SPIP_DUMP')) {
2889
+        define('_SPIP_DUMP', 'dump@nom_site@@[email protected]');
2890
+    }
2891
+    if (!defined('_CACHE_RUBRIQUES')) {
2892
+        /** Fichier cache pour le navigateur de rubrique du bandeau */
2893
+        define('_CACHE_RUBRIQUES', _DIR_TMP . 'menu-rubriques-cache.txt');
2894
+    }
2895
+    if (!defined('_CACHE_RUBRIQUES_MAX')) {
2896
+        /** Nombre maxi de rubriques enfants affichées pour chaque rubrique du navigateur de rubrique du bandeau */
2897
+        define('_CACHE_RUBRIQUES_MAX', 500);
2898
+    }
2899
+
2900
+    if (!defined('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR')) {
2901
+        /**
2902
+         * Basculer les contextes ajax en fichier si la longueur d’url est trop grande
2903
+         * @var int Nombre de caractères */
2904
+        define('_CACHE_CONTEXTES_AJAX_SUR_LONGUEUR', 2000);
2905
+    }
2906
+
2907
+    if (!defined('_EXTENSION_SQUELETTES')) {
2908
+        define('_EXTENSION_SQUELETTES', 'html');
2909
+    }
2910
+
2911
+    if (!defined('_DOCTYPE_ECRIRE')) {
2912
+        /** Définit le doctype de l’espace privé */
2913
+        define('_DOCTYPE_ECRIRE', "<!DOCTYPE html>\n");
2914
+    }
2915
+    if (!defined('_DOCTYPE_AIDE')) {
2916
+        /** Définit le doctype de l’aide en ligne */
2917
+        define(
2918
+            '_DOCTYPE_AIDE',
2919
+            "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"
2920
+        );
2921
+    }
2922
+
2923
+    if (!defined('_SPIP_SCRIPT')) {
2924
+        /** L'adresse de base du site ; on peut mettre '' si la racine est gerée par
2925
+         * le script de l'espace public, alias index.php */
2926
+        define('_SPIP_SCRIPT', 'spip.php');
2927
+    }
2928
+    if (!defined('_SPIP_PAGE')) {
2929
+        /** Argument page, personalisable en cas de conflit avec un autre script */
2930
+        define('_SPIP_PAGE', 'page');
2931
+    }
2932
+
2933
+    // le script de l'espace prive
2934
+    // Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes:
2935
+    // les anciens IIS n'acceptent pas les POST sur ecrire/ (#419)
2936
+    // meme pb sur thttpd cf. https://forum.spip.net/fr_184153.html
2937
+    if (!defined('_SPIP_ECRIRE_SCRIPT')) {
2938
+        if (!empty($_SERVER['SERVER_SOFTWARE']) && preg_match(',IIS|thttpd,', $_SERVER['SERVER_SOFTWARE'])) {
2939
+            define('_SPIP_ECRIRE_SCRIPT', 'index.php');
2940
+        } else {
2941
+            define('_SPIP_ECRIRE_SCRIPT', '');
2942
+        }
2943
+    }
2944
+
2945
+
2946
+    if (!defined('_SPIP_AJAX')) {
2947
+        define('_SPIP_AJAX', ((!isset($_COOKIE['spip_accepte_ajax']))
2948
+            ? 1
2949
+            : (($_COOKIE['spip_accepte_ajax'] != -1) ? 1 : 0)));
2950
+    }
2951
+
2952
+    // La requete est-elle en ajax ?
2953
+    if (!defined('_AJAX')) {
2954
+        define(
2955
+            '_AJAX',
2956
+            (
2957
+                isset($_SERVER['HTTP_X_REQUESTED_WITH']) # ajax jQuery
2958
+                || !empty($_REQUEST['var_ajax_redir']) # redirection 302 apres ajax jQuer
2959
+                || !empty($_REQUEST['var_ajaxcharset']) # compat ascendante pour plugins
2960
+                || !empty($_REQUEST['var_ajax']) # forms ajax & inclure ajax de spip
2961
+            )
2962
+            && empty($_REQUEST['var_noajax']) # horrible exception, car c'est pas parce que la requete est ajax jquery qu'il faut tuer tous les formulaires ajax qu'elle contient
2963
+        );
2964
+    }
2965
+
2966
+    # nombre de pixels maxi pour calcul de la vignette avec gd
2967
+    # au dela de 5500000 on considere que php n'est pas limite en memoire pour cette operation
2968
+    # les configurations limitees en memoire ont un seuil plutot vers 1MPixel
2969
+    if (!defined('_IMG_GD_MAX_PIXELS')) {
2970
+        define(
2971
+            '_IMG_GD_MAX_PIXELS',
2972
+            (isset($GLOBALS['meta']['max_taille_vignettes']) && $GLOBALS['meta']['max_taille_vignettes'])
2973
+            ? $GLOBALS['meta']['max_taille_vignettes']
2974
+            : 0
2975
+        );
2976
+    }
2977
+
2978
+    // Protocoles a normaliser dans les chaines de langues
2979
+    if (!defined('_PROTOCOLES_STD')) {
2980
+        define('_PROTOCOLES_STD', 'http|https|ftp|mailto|webcal');
2981
+    }
2982
+
2983
+    init_var_mode();
2985 2984
 }
2986 2985
 
2987 2986
 /**
@@ -3015,136 +3014,136 @@  discard block
 block discarded – undo
3015 3014
  * `   var_mode` (calcul ou recalcul).
3016 3015
  */
3017 3016
 function init_var_mode() {
3018
-	static $done = false;
3019
-	if (!$done) {
3020
-		if (isset($_GET['var_mode'])) {
3021
-			$var_mode = explode(',', $_GET['var_mode']);
3022
-			// tout le monde peut calcul/recalcul
3023
-			if (!defined('_VAR_MODE')) {
3024
-				if (in_array('recalcul', $var_mode)) {
3025
-					define('_VAR_MODE', 'recalcul');
3026
-				} elseif (in_array('calcul', $var_mode)) {
3027
-					define('_VAR_MODE', 'calcul');
3028
-				}
3029
-			}
3030
-			$var_mode = array_diff($var_mode, ['calcul', 'recalcul']);
3031
-			if ($var_mode) {
3032
-				include_spip('inc/autoriser');
3033
-				// autoriser preview si preview seulement, et sinon autoriser debug
3034
-				if (
3035
-					autoriser(
3036
-						($_GET['var_mode'] == 'preview')
3037
-						? 'previsualiser'
3038
-						: 'debug'
3039
-					)
3040
-				) {
3041
-					if (in_array('traduction', $var_mode)) {
3042
-						// forcer le calcul pour passer dans traduire
3043
-						if (!defined('_VAR_MODE')) {
3044
-							define('_VAR_MODE', 'calcul');
3045
-						}
3046
-						// et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages
3047
-						if (!defined('_VAR_NOCACHE')) {
3048
-							define('_VAR_NOCACHE', true);
3049
-						}
3050
-						$var_mode = array_diff($var_mode, ['traduction']);
3051
-					}
3052
-					if (in_array('preview', $var_mode)) {
3053
-						// basculer sur les criteres de preview dans les boucles
3054
-						if (!defined('_VAR_PREVIEW')) {
3055
-							define('_VAR_PREVIEW', true);
3056
-						}
3057
-						// forcer le calcul
3058
-						if (!defined('_VAR_MODE')) {
3059
-							define('_VAR_MODE', 'calcul');
3060
-						}
3061
-						// et ne pas enregistrer de cache
3062
-						if (!defined('_VAR_NOCACHE')) {
3063
-							define('_VAR_NOCACHE', true);
3064
-						}
3065
-						$var_mode = array_diff($var_mode, ['preview']);
3066
-					}
3067
-					if (in_array('inclure', $var_mode)) {
3068
-						// forcer le compilo et ignorer les caches existants
3069
-						if (!defined('_VAR_MODE')) {
3070
-							define('_VAR_MODE', 'calcul');
3071
-						}
3072
-						if (!defined('_VAR_INCLURE')) {
3073
-							define('_VAR_INCLURE', true);
3074
-						}
3075
-						// et ne pas enregistrer de cache
3076
-						if (!defined('_VAR_NOCACHE')) {
3077
-							define('_VAR_NOCACHE', true);
3078
-						}
3079
-						$var_mode = array_diff($var_mode, ['inclure']);
3080
-					}
3081
-					if (in_array('urls', $var_mode)) {
3082
-						// forcer le compilo et ignorer les caches existants
3083
-						if (!defined('_VAR_MODE')) {
3084
-							define('_VAR_MODE', 'calcul');
3085
-						}
3086
-						if (!defined('_VAR_URLS')) {
3087
-							define('_VAR_URLS', true);
3088
-						}
3089
-						$var_mode = array_diff($var_mode, ['urls']);
3090
-					}
3091
-					if (in_array('images', $var_mode)) {
3092
-						// forcer le compilo et ignorer les caches existants
3093
-						if (!defined('_VAR_MODE')) {
3094
-							define('_VAR_MODE', 'calcul');
3095
-						}
3096
-						// indiquer qu'on doit recalculer les images
3097
-						if (!defined('_VAR_IMAGES')) {
3098
-							define('_VAR_IMAGES', true);
3099
-						}
3100
-						$var_mode = array_diff($var_mode, ['images']);
3101
-					}
3102
-					if (in_array('debug', $var_mode)) {
3103
-						if (!defined('_VAR_MODE')) {
3104
-							define('_VAR_MODE', 'debug');
3105
-						}
3106
-						// et ne pas enregistrer de cache
3107
-						if (!defined('_VAR_NOCACHE')) {
3108
-							define('_VAR_NOCACHE', true);
3109
-						}
3110
-						$var_mode = array_diff($var_mode, ['debug']);
3111
-					}
3112
-					if (count($var_mode) && !defined('_VAR_MODE')) {
3113
-						define('_VAR_MODE', reset($var_mode));
3114
-					}
3115
-					if (isset($GLOBALS['visiteur_session']['nom'])) {
3116
-						spip_log($GLOBALS['visiteur_session']['nom']
3117
-							. ' ' . _VAR_MODE);
3118
-					}
3119
-				} // pas autorise ?
3120
-				else {
3121
-					// si on n'est pas connecte on se redirige, si on est pas en cli et pas deja en train de se loger
3122
-					if (
3123
-						!$GLOBALS['visiteur_session']
3124
-						&& !empty($_SERVER['HTTP_HOST'])
3125
-						&& !empty($_SERVER['REQUEST_METHOD'])
3126
-						&& $_SERVER['REQUEST_METHOD'] === 'GET'
3127
-					) {
3128
-						$self = self('&', true);
3129
-						if (!str_contains($self, 'page=login')) {
3130
-							include_spip('inc/headers');
3131
-							$redirect = parametre_url(self('&', true), 'var_mode', $_GET['var_mode'], '&');
3132
-							redirige_par_entete(generer_url_public('login', 'url=' . rawurlencode($redirect), true));
3133
-						}
3134
-					}
3135
-					// sinon tant pis
3136
-				}
3137
-			}
3138
-		}
3139
-		if (!defined('_VAR_MODE')) {
3140
-			/**
3141
-			 * Indique le mode de calcul ou d'affichage de la page.
3142
-			 * @see init_var_mode()
3143
-			 */
3144
-			define('_VAR_MODE', false);
3145
-		}
3146
-		$done = true;
3147
-	}
3017
+    static $done = false;
3018
+    if (!$done) {
3019
+        if (isset($_GET['var_mode'])) {
3020
+            $var_mode = explode(',', $_GET['var_mode']);
3021
+            // tout le monde peut calcul/recalcul
3022
+            if (!defined('_VAR_MODE')) {
3023
+                if (in_array('recalcul', $var_mode)) {
3024
+                    define('_VAR_MODE', 'recalcul');
3025
+                } elseif (in_array('calcul', $var_mode)) {
3026
+                    define('_VAR_MODE', 'calcul');
3027
+                }
3028
+            }
3029
+            $var_mode = array_diff($var_mode, ['calcul', 'recalcul']);
3030
+            if ($var_mode) {
3031
+                include_spip('inc/autoriser');
3032
+                // autoriser preview si preview seulement, et sinon autoriser debug
3033
+                if (
3034
+                    autoriser(
3035
+                        ($_GET['var_mode'] == 'preview')
3036
+                        ? 'previsualiser'
3037
+                        : 'debug'
3038
+                    )
3039
+                ) {
3040
+                    if (in_array('traduction', $var_mode)) {
3041
+                        // forcer le calcul pour passer dans traduire
3042
+                        if (!defined('_VAR_MODE')) {
3043
+                            define('_VAR_MODE', 'calcul');
3044
+                        }
3045
+                        // et ne pas enregistrer de cache pour ne pas trainer les surlignages sur d'autres pages
3046
+                        if (!defined('_VAR_NOCACHE')) {
3047
+                            define('_VAR_NOCACHE', true);
3048
+                        }
3049
+                        $var_mode = array_diff($var_mode, ['traduction']);
3050
+                    }
3051
+                    if (in_array('preview', $var_mode)) {
3052
+                        // basculer sur les criteres de preview dans les boucles
3053
+                        if (!defined('_VAR_PREVIEW')) {
3054
+                            define('_VAR_PREVIEW', true);
3055
+                        }
3056
+                        // forcer le calcul
3057
+                        if (!defined('_VAR_MODE')) {
3058
+                            define('_VAR_MODE', 'calcul');
3059
+                        }
3060
+                        // et ne pas enregistrer de cache
3061
+                        if (!defined('_VAR_NOCACHE')) {
3062
+                            define('_VAR_NOCACHE', true);
3063
+                        }
3064
+                        $var_mode = array_diff($var_mode, ['preview']);
3065
+                    }
3066
+                    if (in_array('inclure', $var_mode)) {
3067
+                        // forcer le compilo et ignorer les caches existants
3068
+                        if (!defined('_VAR_MODE')) {
3069
+                            define('_VAR_MODE', 'calcul');
3070
+                        }
3071
+                        if (!defined('_VAR_INCLURE')) {
3072
+                            define('_VAR_INCLURE', true);
3073
+                        }
3074
+                        // et ne pas enregistrer de cache
3075
+                        if (!defined('_VAR_NOCACHE')) {
3076
+                            define('_VAR_NOCACHE', true);
3077
+                        }
3078
+                        $var_mode = array_diff($var_mode, ['inclure']);
3079
+                    }
3080
+                    if (in_array('urls', $var_mode)) {
3081
+                        // forcer le compilo et ignorer les caches existants
3082
+                        if (!defined('_VAR_MODE')) {
3083
+                            define('_VAR_MODE', 'calcul');
3084
+                        }
3085
+                        if (!defined('_VAR_URLS')) {
3086
+                            define('_VAR_URLS', true);
3087
+                        }
3088
+                        $var_mode = array_diff($var_mode, ['urls']);
3089
+                    }
3090
+                    if (in_array('images', $var_mode)) {
3091
+                        // forcer le compilo et ignorer les caches existants
3092
+                        if (!defined('_VAR_MODE')) {
3093
+                            define('_VAR_MODE', 'calcul');
3094
+                        }
3095
+                        // indiquer qu'on doit recalculer les images
3096
+                        if (!defined('_VAR_IMAGES')) {
3097
+                            define('_VAR_IMAGES', true);
3098
+                        }
3099
+                        $var_mode = array_diff($var_mode, ['images']);
3100
+                    }
3101
+                    if (in_array('debug', $var_mode)) {
3102
+                        if (!defined('_VAR_MODE')) {
3103
+                            define('_VAR_MODE', 'debug');
3104
+                        }
3105
+                        // et ne pas enregistrer de cache
3106
+                        if (!defined('_VAR_NOCACHE')) {
3107
+                            define('_VAR_NOCACHE', true);
3108
+                        }
3109
+                        $var_mode = array_diff($var_mode, ['debug']);
3110
+                    }
3111
+                    if (count($var_mode) && !defined('_VAR_MODE')) {
3112
+                        define('_VAR_MODE', reset($var_mode));
3113
+                    }
3114
+                    if (isset($GLOBALS['visiteur_session']['nom'])) {
3115
+                        spip_log($GLOBALS['visiteur_session']['nom']
3116
+                            . ' ' . _VAR_MODE);
3117
+                    }
3118
+                } // pas autorise ?
3119
+                else {
3120
+                    // si on n'est pas connecte on se redirige, si on est pas en cli et pas deja en train de se loger
3121
+                    if (
3122
+                        !$GLOBALS['visiteur_session']
3123
+                        && !empty($_SERVER['HTTP_HOST'])
3124
+                        && !empty($_SERVER['REQUEST_METHOD'])
3125
+                        && $_SERVER['REQUEST_METHOD'] === 'GET'
3126
+                    ) {
3127
+                        $self = self('&', true);
3128
+                        if (!str_contains($self, 'page=login')) {
3129
+                            include_spip('inc/headers');
3130
+                            $redirect = parametre_url(self('&', true), 'var_mode', $_GET['var_mode'], '&');
3131
+                            redirige_par_entete(generer_url_public('login', 'url=' . rawurlencode($redirect), true));
3132
+                        }
3133
+                    }
3134
+                    // sinon tant pis
3135
+                }
3136
+            }
3137
+        }
3138
+        if (!defined('_VAR_MODE')) {
3139
+            /**
3140
+             * Indique le mode de calcul ou d'affichage de la page.
3141
+             * @see init_var_mode()
3142
+             */
3143
+            define('_VAR_MODE', false);
3144
+        }
3145
+        $done = true;
3146
+    }
3148 3147
 }
3149 3148
 
3150 3149
 /**
@@ -3156,16 +3155,16 @@  discard block
 block discarded – undo
3156 3155
  * @param bool $deep = true : appliquer récursivement
3157 3156
 **/
3158 3157
 function spip_desinfecte(&$t, $deep = true) {
3159
-	foreach ($t as $key => $val) {
3160
-		if (is_string($t[$key])) {
3161
-			$t[$key] = str_replace(chr(0), '-', $t[$key]);
3162
-		} // traiter aussi les "texte_plus" de article_edit
3163
-		else {
3164
-			if ($deep && is_array($t[$key]) && $key !== 'GLOBALS') {
3165
-				spip_desinfecte($t[$key], $deep);
3166
-			}
3167
-		}
3168
-	}
3158
+    foreach ($t as $key => $val) {
3159
+        if (is_string($t[$key])) {
3160
+            $t[$key] = str_replace(chr(0), '-', $t[$key]);
3161
+        } // traiter aussi les "texte_plus" de article_edit
3162
+        else {
3163
+            if ($deep && is_array($t[$key]) && $key !== 'GLOBALS') {
3164
+                spip_desinfecte($t[$key], $deep);
3165
+            }
3166
+        }
3167
+    }
3169 3168
 }
3170 3169
 
3171 3170
 /**
@@ -3178,64 +3177,64 @@  discard block
 block discarded – undo
3178 3177
  * @return string|0|false
3179 3178
 **/
3180 3179
 function verifier_visiteur() {
3181
-	@spip_initialisation_core(
3182
-		(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
3183
-		(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
3184
-		(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
3185
-		(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
3186
-	);
3187
-
3188
-	// Demarrer une session NON AUTHENTIFIEE si on donne son nom
3189
-	// dans un formulaire sans login (ex: #FORMULAIRE_FORUM)
3190
-	// Attention on separe bien session_nom et nom, pour eviter
3191
-	// les melanges entre donnees SQL et variables plus aleatoires
3192
-	$variables_session = ['session_nom', 'session_email'];
3193
-	foreach ($variables_session as $var) {
3194
-		if (_request($var) !== null) {
3195
-			$init = true;
3196
-			break;
3197
-		}
3198
-	}
3199
-	if (isset($init)) {
3200
-		#@spip_initialisation_suite();
3201
-		$session = charger_fonction('session', 'inc');
3202
-		$session();
3203
-		include_spip('inc/texte');
3204
-		foreach ($variables_session as $var) {
3205
-			if (($a = _request($var)) !== null) {
3206
-				$GLOBALS['visiteur_session'][$var] = safehtml($a);
3207
-			}
3208
-		}
3209
-		if (!isset($GLOBALS['visiteur_session']['id_auteur'])) {
3210
-			$GLOBALS['visiteur_session']['id_auteur'] = 0;
3211
-		}
3212
-		$session($GLOBALS['visiteur_session']);
3213
-
3214
-		return 0;
3215
-	}
3216
-
3217
-	$h = (isset($_SERVER['PHP_AUTH_USER']) && !$GLOBALS['ignore_auth_http']);
3218
-	if ($h || isset($_COOKIE['spip_session']) || isset($_COOKIE[$GLOBALS['cookie_prefix'] . '_session'])) {
3219
-		$session = charger_fonction('session', 'inc');
3220
-		if ($session()) {
3221
-			return $GLOBALS['visiteur_session']['statut'];
3222
-		}
3223
-		if ($h && isset($_SERVER['PHP_AUTH_PW'])) {
3224
-			include_spip('inc/auth');
3225
-			$h = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
3226
-		}
3227
-		if ($h) {
3228
-			$GLOBALS['visiteur_session'] = $h;
3229
-
3230
-			return $GLOBALS['visiteur_session']['statut'];
3231
-		}
3232
-	}
3233
-
3234
-	// au moins son navigateur nous dit la langue preferee de cet inconnu
3235
-	include_spip('inc/lang');
3236
-	utiliser_langue_visiteur();
3237
-
3238
-	return false;
3180
+    @spip_initialisation_core(
3181
+        (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
3182
+        (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
3183
+        (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
3184
+        (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
3185
+    );
3186
+
3187
+    // Demarrer une session NON AUTHENTIFIEE si on donne son nom
3188
+    // dans un formulaire sans login (ex: #FORMULAIRE_FORUM)
3189
+    // Attention on separe bien session_nom et nom, pour eviter
3190
+    // les melanges entre donnees SQL et variables plus aleatoires
3191
+    $variables_session = ['session_nom', 'session_email'];
3192
+    foreach ($variables_session as $var) {
3193
+        if (_request($var) !== null) {
3194
+            $init = true;
3195
+            break;
3196
+        }
3197
+    }
3198
+    if (isset($init)) {
3199
+        #@spip_initialisation_suite();
3200
+        $session = charger_fonction('session', 'inc');
3201
+        $session();
3202
+        include_spip('inc/texte');
3203
+        foreach ($variables_session as $var) {
3204
+            if (($a = _request($var)) !== null) {
3205
+                $GLOBALS['visiteur_session'][$var] = safehtml($a);
3206
+            }
3207
+        }
3208
+        if (!isset($GLOBALS['visiteur_session']['id_auteur'])) {
3209
+            $GLOBALS['visiteur_session']['id_auteur'] = 0;
3210
+        }
3211
+        $session($GLOBALS['visiteur_session']);
3212
+
3213
+        return 0;
3214
+    }
3215
+
3216
+    $h = (isset($_SERVER['PHP_AUTH_USER']) && !$GLOBALS['ignore_auth_http']);
3217
+    if ($h || isset($_COOKIE['spip_session']) || isset($_COOKIE[$GLOBALS['cookie_prefix'] . '_session'])) {
3218
+        $session = charger_fonction('session', 'inc');
3219
+        if ($session()) {
3220
+            return $GLOBALS['visiteur_session']['statut'];
3221
+        }
3222
+        if ($h && isset($_SERVER['PHP_AUTH_PW'])) {
3223
+            include_spip('inc/auth');
3224
+            $h = lire_php_auth($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
3225
+        }
3226
+        if ($h) {
3227
+            $GLOBALS['visiteur_session'] = $h;
3228
+
3229
+            return $GLOBALS['visiteur_session']['statut'];
3230
+        }
3231
+    }
3232
+
3233
+    // au moins son navigateur nous dit la langue preferee de cet inconnu
3234
+    include_spip('inc/lang');
3235
+    utiliser_langue_visiteur();
3236
+
3237
+    return false;
3239 3238
 }
3240 3239
 
3241 3240
 
@@ -3258,21 +3257,21 @@  discard block
 block discarded – undo
3258 3257
  *     - string Langue utilisée.
3259 3258
  **/
3260 3259
 function lang_select($lang = null) {
3261
-	static $pile_langues = [];
3262
-	if (!function_exists('changer_langue')) {
3263
-		include_spip('inc/lang');
3264
-	}
3265
-	if ($lang === null) {
3266
-		$lang = array_pop($pile_langues);
3267
-	} else {
3268
-		array_push($pile_langues, $GLOBALS['spip_lang']);
3269
-	}
3270
-	if (isset($GLOBALS['spip_lang']) && $lang == $GLOBALS['spip_lang']) {
3271
-		return $lang;
3272
-	}
3273
-	changer_langue($lang);
3260
+    static $pile_langues = [];
3261
+    if (!function_exists('changer_langue')) {
3262
+        include_spip('inc/lang');
3263
+    }
3264
+    if ($lang === null) {
3265
+        $lang = array_pop($pile_langues);
3266
+    } else {
3267
+        array_push($pile_langues, $GLOBALS['spip_lang']);
3268
+    }
3269
+    if (isset($GLOBALS['spip_lang']) && $lang == $GLOBALS['spip_lang']) {
3270
+        return $lang;
3271
+    }
3272
+    changer_langue($lang);
3274 3273
 
3275
-	return $lang;
3274
+    return $lang;
3276 3275
 }
3277 3276
 
3278 3277
 /**
@@ -3289,20 +3288,20 @@  discard block
 block discarded – undo
3289 3288
  *     Identifiant de la session
3290 3289
  **/
3291 3290
 function spip_session($force = false) {
3292
-	static $session;
3293
-	if ($force || !isset($session)) {
3294
-		$s = '';
3295
-		if (!empty($GLOBALS['visiteur_session'])) {
3296
-			include_spip('inc/session');
3297
-			$cookie = lire_cookie_session();
3298
-			$s = serialize($GLOBALS['visiteur_session']) . '_' . ($cookie ?: '');
3299
-		}
3300
-		$s = pipeline('definir_session', $s);
3301
-		$session = ($s ? substr(md5($s), 0, 8) : '');
3302
-	}
3291
+    static $session;
3292
+    if ($force || !isset($session)) {
3293
+        $s = '';
3294
+        if (!empty($GLOBALS['visiteur_session'])) {
3295
+            include_spip('inc/session');
3296
+            $cookie = lire_cookie_session();
3297
+            $s = serialize($GLOBALS['visiteur_session']) . '_' . ($cookie ?: '');
3298
+        }
3299
+        $s = pipeline('definir_session', $s);
3300
+        $session = ($s ? substr(md5($s), 0, 8) : '');
3301
+    }
3303 3302
 
3304
-	#spip_log('session: '.$session);
3305
-	return $session;
3303
+    #spip_log('session: '.$session);
3304
+    return $session;
3306 3305
 }
3307 3306
 
3308 3307
 
@@ -3321,9 +3320,9 @@  discard block
 block discarded – undo
3321 3320
  *    Lien sur une icone d'aide
3322 3321
  **/
3323 3322
 function aider($aide = '', $distante = false) {
3324
-	$aider = charger_fonction('aide', 'inc', true);
3323
+    $aider = charger_fonction('aide', 'inc', true);
3325 3324
 
3326
-	return $aider ? $aider($aide, '', [], $distante) : '';
3325
+    return $aider ? $aider($aide, '', [], $distante) : '';
3327 3326
 }
3328 3327
 
3329 3328
 /**
@@ -3333,35 +3332,35 @@  discard block
 block discarded – undo
3333 3332
  */
3334 3333
 function exec_info_dist() {
3335 3334
 
3336
-	include_spip('inc/autoriser');
3337
-	if (autoriser('phpinfos')) {
3338
-		$cookies_masques = ['spip_session', 'PHPSESSID'];
3339
-		$cookies_backup = [];
3340
-		$server_backup = ['HTTP_COOKIE' => $_SERVER['HTTP_COOKIE'] ?? []];
3341
-		$env_backup = ['HTTP_COOKIE' => $_ENV['HTTP_COOKIE'] ?? []];
3342
-		$mask = '******************************';
3343
-		foreach ($cookies_masques as $k) {
3344
-			if (!empty($_COOKIE[$k])) {
3345
-				$cookies_backup[$k] = $_COOKIE[$k];
3346
-				$_SERVER['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3347
-				$_ENV['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3348
-				$_COOKIE[$k] = $mask;
3349
-			}
3350
-		}
3351
-		phpinfo();
3352
-		foreach ($cookies_backup as $k => $v) {
3353
-			$_COOKIE[$k] = $v;
3354
-		}
3355
-		foreach ($server_backup as $k => $v) {
3356
-			$_SERVER[$k] = $v;
3357
-		}
3358
-		foreach ($env_backup as $k => $v) {
3359
-			$_ENV[$k] = $v;
3360
-		}
3361
-	} else {
3362
-		include_spip('inc/filtres');
3363
-		sinon_interdire_acces();
3364
-	}
3335
+    include_spip('inc/autoriser');
3336
+    if (autoriser('phpinfos')) {
3337
+        $cookies_masques = ['spip_session', 'PHPSESSID'];
3338
+        $cookies_backup = [];
3339
+        $server_backup = ['HTTP_COOKIE' => $_SERVER['HTTP_COOKIE'] ?? []];
3340
+        $env_backup = ['HTTP_COOKIE' => $_ENV['HTTP_COOKIE'] ?? []];
3341
+        $mask = '******************************';
3342
+        foreach ($cookies_masques as $k) {
3343
+            if (!empty($_COOKIE[$k])) {
3344
+                $cookies_backup[$k] = $_COOKIE[$k];
3345
+                $_SERVER['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_SERVER['HTTP_COOKIE'] ?? []);
3346
+                $_ENV['HTTP_COOKIE'] = str_replace("$k=" . $_COOKIE[$k], "$k=$mask", $_ENV['HTTP_COOKIE'] ?? []);
3347
+                $_COOKIE[$k] = $mask;
3348
+            }
3349
+        }
3350
+        phpinfo();
3351
+        foreach ($cookies_backup as $k => $v) {
3352
+            $_COOKIE[$k] = $v;
3353
+        }
3354
+        foreach ($server_backup as $k => $v) {
3355
+            $_SERVER[$k] = $v;
3356
+        }
3357
+        foreach ($env_backup as $k => $v) {
3358
+            $_ENV[$k] = $v;
3359
+        }
3360
+    } else {
3361
+        include_spip('inc/filtres');
3362
+        sinon_interdire_acces();
3363
+    }
3365 3364
 }
3366 3365
 
3367 3366
 /**
@@ -3381,13 +3380,13 @@  discard block
 block discarded – undo
3381 3380
  *     - string si $message à false.
3382 3381
  **/
3383 3382
 function erreur_squelette($message = '', $lieu = '') {
3384
-	$debusquer = charger_fonction('debusquer', 'public');
3385
-	if (is_array($lieu)) {
3386
-		include_spip('public/compiler');
3387
-		$lieu = reconstruire_contexte_compil($lieu);
3388
-	}
3383
+    $debusquer = charger_fonction('debusquer', 'public');
3384
+    if (is_array($lieu)) {
3385
+        include_spip('public/compiler');
3386
+        $lieu = reconstruire_contexte_compil($lieu);
3387
+    }
3389 3388
 
3390
-	return $debusquer($message, $lieu);
3389
+    return $debusquer($message, $lieu);
3391 3390
 }
3392 3391
 
3393 3392
 /**
@@ -3424,108 +3423,108 @@  discard block
 block discarded – undo
3424 3423
  *     - ou tableau d'information sur le squelette.
3425 3424
  */
3426 3425
 function recuperer_fond($fond, $contexte = [], $options = [], string $connect = '') {
3427
-	if (!function_exists('evaluer_fond')) {
3428
-		include_spip('public/assembler');
3429
-	}
3430
-	// assurer la compat avec l'ancienne syntaxe
3431
-	// (trim etait le 3eme argument, par defaut a true)
3432
-	if (!is_array($options)) {
3433
-		$options = ['trim' => $options];
3434
-	}
3435
-	if (!isset($options['trim'])) {
3436
-		$options['trim'] = true;
3437
-	}
3438
-
3439
-	if (isset($contexte['connect'])) {
3440
-		$connect = $contexte['connect'];
3441
-		unset($contexte['connect']);
3442
-	}
3443
-
3444
-	$texte = '';
3445
-	$pages = [];
3446
-	$lang_select = '';
3447
-	if (!isset($options['etoile']) || !$options['etoile']) {
3448
-		// Si on a inclus sans fixer le critere de lang, on prend la langue courante
3449
-		if (!isset($contexte['lang'])) {
3450
-			$contexte['lang'] = $GLOBALS['spip_lang'];
3451
-		}
3452
-
3453
-		if ($contexte['lang'] != $GLOBALS['meta']['langue_site']) {
3454
-			$lang_select = lang_select($contexte['lang']);
3455
-		}
3456
-	}
3457
-
3458
-	if (!isset($GLOBALS['_INC_PUBLIC'])) {
3459
-		$GLOBALS['_INC_PUBLIC'] = 0;
3460
-	}
3461
-
3462
-	$GLOBALS['_INC_PUBLIC']++;
3463
-
3464
-	// fix #4235
3465
-	$cache_utilise_session_appelant	= ($GLOBALS['cache_utilise_session'] ?? null);
3466
-
3467
-
3468
-	foreach (is_array($fond) ? $fond : [$fond] as $f) {
3469
-		unset($GLOBALS['cache_utilise_session']);	// fix #4235
3470
-
3471
-		$page = evaluer_fond($f, $contexte, $connect);
3472
-		if ($page === '') {
3473
-			$c = $options['compil'] ?? '';
3474
-			$a = ['fichier' => $f];
3475
-			$erreur = _T('info_erreur_squelette2', $a); // squelette introuvable
3476
-			erreur_squelette($erreur, $c);
3477
-			// eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
3478
-			$page = ['texte' => '', 'erreur' => $erreur];
3479
-		}
3480
-
3481
-		$page = pipeline('recuperer_fond', [
3482
-			'args' => ['fond' => $f, 'contexte' => $contexte, 'options' => $options, 'connect' => $connect],
3483
-			'data' => $page
3484
-		]);
3485
-		if (isset($options['ajax']) && $options['ajax']) {
3486
-			if (!function_exists('encoder_contexte_ajax')) {
3487
-				include_spip('inc/filtres');
3488
-			}
3489
-			$page['texte'] = encoder_contexte_ajax(
3490
-				array_merge(
3491
-					$contexte,
3492
-					['fond' => $f],
3493
-					($connect ? ['connect' => $connect] : [])
3494
-				),
3495
-				'',
3496
-				$page['texte'],
3497
-				$options['ajax']
3498
-			);
3499
-		}
3500
-
3501
-		if (isset($options['raw']) && $options['raw']) {
3502
-			$pages[] = $page;
3503
-		} else {
3504
-			$texte .= $options['trim'] ? rtrim($page['texte'] ?? '') : $page['texte'];
3505
-		}
3506
-
3507
-		// contamination de la session appelante, pour les inclusions statiques
3508
-		if (isset($page['invalideurs']['session'])) {
3509
-			$cache_utilise_session_appelant = $page['invalideurs']['session'];
3510
-		}
3511
-	}
3512
-
3513
-	// restaurer le sessionnement du contexte appelant,
3514
-	// éventuellement contaminé si on vient de récupérer une inclusion statique sessionnée
3515
-	if (isset($cache_utilise_session_appelant)) {
3516
-		$GLOBALS['cache_utilise_session'] = $cache_utilise_session_appelant;
3517
-	}
3518
-
3519
-	$GLOBALS['_INC_PUBLIC']--;
3520
-
3521
-	if ($lang_select) {
3522
-		lang_select();
3523
-	}
3524
-	if (isset($options['raw']) && $options['raw']) {
3525
-		return is_array($fond) ? $pages : reset($pages);
3526
-	} else {
3527
-		return $options['trim'] ? ltrim($texte) : $texte;
3528
-	}
3426
+    if (!function_exists('evaluer_fond')) {
3427
+        include_spip('public/assembler');
3428
+    }
3429
+    // assurer la compat avec l'ancienne syntaxe
3430
+    // (trim etait le 3eme argument, par defaut a true)
3431
+    if (!is_array($options)) {
3432
+        $options = ['trim' => $options];
3433
+    }
3434
+    if (!isset($options['trim'])) {
3435
+        $options['trim'] = true;
3436
+    }
3437
+
3438
+    if (isset($contexte['connect'])) {
3439
+        $connect = $contexte['connect'];
3440
+        unset($contexte['connect']);
3441
+    }
3442
+
3443
+    $texte = '';
3444
+    $pages = [];
3445
+    $lang_select = '';
3446
+    if (!isset($options['etoile']) || !$options['etoile']) {
3447
+        // Si on a inclus sans fixer le critere de lang, on prend la langue courante
3448
+        if (!isset($contexte['lang'])) {
3449
+            $contexte['lang'] = $GLOBALS['spip_lang'];
3450
+        }
3451
+
3452
+        if ($contexte['lang'] != $GLOBALS['meta']['langue_site']) {
3453
+            $lang_select = lang_select($contexte['lang']);
3454
+        }
3455
+    }
3456
+
3457
+    if (!isset($GLOBALS['_INC_PUBLIC'])) {
3458
+        $GLOBALS['_INC_PUBLIC'] = 0;
3459
+    }
3460
+
3461
+    $GLOBALS['_INC_PUBLIC']++;
3462
+
3463
+    // fix #4235
3464
+    $cache_utilise_session_appelant	= ($GLOBALS['cache_utilise_session'] ?? null);
3465
+
3466
+
3467
+    foreach (is_array($fond) ? $fond : [$fond] as $f) {
3468
+        unset($GLOBALS['cache_utilise_session']);	// fix #4235
3469
+
3470
+        $page = evaluer_fond($f, $contexte, $connect);
3471
+        if ($page === '') {
3472
+            $c = $options['compil'] ?? '';
3473
+            $a = ['fichier' => $f];
3474
+            $erreur = _T('info_erreur_squelette2', $a); // squelette introuvable
3475
+            erreur_squelette($erreur, $c);
3476
+            // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
3477
+            $page = ['texte' => '', 'erreur' => $erreur];
3478
+        }
3479
+
3480
+        $page = pipeline('recuperer_fond', [
3481
+            'args' => ['fond' => $f, 'contexte' => $contexte, 'options' => $options, 'connect' => $connect],
3482
+            'data' => $page
3483
+        ]);
3484
+        if (isset($options['ajax']) && $options['ajax']) {
3485
+            if (!function_exists('encoder_contexte_ajax')) {
3486
+                include_spip('inc/filtres');
3487
+            }
3488
+            $page['texte'] = encoder_contexte_ajax(
3489
+                array_merge(
3490
+                    $contexte,
3491
+                    ['fond' => $f],
3492
+                    ($connect ? ['connect' => $connect] : [])
3493
+                ),
3494
+                '',
3495
+                $page['texte'],
3496
+                $options['ajax']
3497
+            );
3498
+        }
3499
+
3500
+        if (isset($options['raw']) && $options['raw']) {
3501
+            $pages[] = $page;
3502
+        } else {
3503
+            $texte .= $options['trim'] ? rtrim($page['texte'] ?? '') : $page['texte'];
3504
+        }
3505
+
3506
+        // contamination de la session appelante, pour les inclusions statiques
3507
+        if (isset($page['invalideurs']['session'])) {
3508
+            $cache_utilise_session_appelant = $page['invalideurs']['session'];
3509
+        }
3510
+    }
3511
+
3512
+    // restaurer le sessionnement du contexte appelant,
3513
+    // éventuellement contaminé si on vient de récupérer une inclusion statique sessionnée
3514
+    if (isset($cache_utilise_session_appelant)) {
3515
+        $GLOBALS['cache_utilise_session'] = $cache_utilise_session_appelant;
3516
+    }
3517
+
3518
+    $GLOBALS['_INC_PUBLIC']--;
3519
+
3520
+    if ($lang_select) {
3521
+        lang_select();
3522
+    }
3523
+    if (isset($options['raw']) && $options['raw']) {
3524
+        return is_array($fond) ? $pages : reset($pages);
3525
+    } else {
3526
+        return $options['trim'] ? ltrim($texte) : $texte;
3527
+    }
3529 3528
 }
3530 3529
 
3531 3530
 /**
@@ -3535,7 +3534,7 @@  discard block
 block discarded – undo
3535 3534
  * @return string
3536 3535
  */
3537 3536
 function trouve_modele($nom) {
3538
-	return trouver_fond($nom, 'modeles/');
3537
+    return trouver_fond($nom, 'modeles/');
3539 3538
 }
3540 3539
 
3541 3540
 /**
@@ -3551,21 +3550,21 @@  discard block
 block discarded – undo
3551 3550
  * @return array|string
3552 3551
  */
3553 3552
 function trouver_fond($nom, $dir = '', $pathinfo = false) {
3554
-	$f = find_in_path($nom . '.' . _EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/') . '/' : '');
3555
-	if (!$pathinfo) {
3556
-		return $f;
3557
-	}
3558
-	// renvoyer un tableau detaille si $pathinfo==true
3559
-	$p = pathinfo($f);
3560
-	if (!isset($p['extension']) || !$p['extension']) {
3561
-		$p['extension'] = _EXTENSION_SQUELETTES;
3562
-	}
3563
-	if (!isset($p['extension']) || !$p['filename']) {
3564
-		$p['filename'] = ($p['basename'] ? substr($p['basename'], 0, -strlen($p['extension']) - 1) : '');
3565
-	}
3566
-	$p['fond'] = ($f ? substr($f, 0, -strlen($p['extension']) - 1) : '');
3553
+    $f = find_in_path($nom . '.' . _EXTENSION_SQUELETTES, $dir ? rtrim($dir, '/') . '/' : '');
3554
+    if (!$pathinfo) {
3555
+        return $f;
3556
+    }
3557
+    // renvoyer un tableau detaille si $pathinfo==true
3558
+    $p = pathinfo($f);
3559
+    if (!isset($p['extension']) || !$p['extension']) {
3560
+        $p['extension'] = _EXTENSION_SQUELETTES;
3561
+    }
3562
+    if (!isset($p['extension']) || !$p['filename']) {
3563
+        $p['filename'] = ($p['basename'] ? substr($p['basename'], 0, -strlen($p['extension']) - 1) : '');
3564
+    }
3565
+    $p['fond'] = ($f ? substr($f, 0, -strlen($p['extension']) - 1) : '');
3567 3566
 
3568
-	return $p;
3567
+    return $p;
3569 3568
 }
3570 3569
 
3571 3570
 /**
@@ -3585,21 +3584,21 @@  discard block
 block discarded – undo
3585 3584
  *     Nom de l'exec, sinon chaîne vide.
3586 3585
  **/
3587 3586
 function tester_url_ecrire($nom) {
3588
-	static $exec = [];
3589
-	if (isset($exec[$nom])) {
3590
-		return $exec[$nom];
3591
-	}
3592
-	// tester si c'est une page en squelette
3593
-	if (trouver_fond($nom, 'prive/squelettes/contenu/')) {
3594
-		return $exec[$nom] = 'fond';
3595
-	} // echafaudage d'un fond !
3596
-	elseif (include_spip('public/styliser_par_z') && z_echafaudable($nom)) {
3597
-		return $exec[$nom] = 'fond';
3598
-	}
3599
-	// attention, il ne faut pas inclure l'exec ici
3600
-	// car sinon #URL_ECRIRE provoque des inclusions
3601
-	// et des define intrusifs potentiels
3602
-	return $exec[$nom] = ((find_in_path("{$nom}.php", 'exec/') || charger_fonction($nom, 'exec', true)) ? $nom : '');
3587
+    static $exec = [];
3588
+    if (isset($exec[$nom])) {
3589
+        return $exec[$nom];
3590
+    }
3591
+    // tester si c'est une page en squelette
3592
+    if (trouver_fond($nom, 'prive/squelettes/contenu/')) {
3593
+        return $exec[$nom] = 'fond';
3594
+    } // echafaudage d'un fond !
3595
+    elseif (include_spip('public/styliser_par_z') && z_echafaudable($nom)) {
3596
+        return $exec[$nom] = 'fond';
3597
+    }
3598
+    // attention, il ne faut pas inclure l'exec ici
3599
+    // car sinon #URL_ECRIRE provoque des inclusions
3600
+    // et des define intrusifs potentiels
3601
+    return $exec[$nom] = ((find_in_path("{$nom}.php", 'exec/') || charger_fonction($nom, 'exec', true)) ? $nom : '');
3603 3602
 }
3604 3603
 
3605 3604
 /**
@@ -3609,36 +3608,36 @@  discard block
 block discarded – undo
3609 3608
  *     true si la constante _VERSION_HTML n'est pas définie ou égale à html5
3610 3609
  **/
3611 3610
 function html5_permis() {
3612
-	return (!defined('_VERSION_HTML') || _VERSION_HTML !== 'html4');
3611
+    return (!defined('_VERSION_HTML') || _VERSION_HTML !== 'html4');
3613 3612
 }
3614 3613
 
3615 3614
 /**
3616 3615
  * Lister les formats image acceptes par les lib et fonctions images
3617 3616
  */
3618 3617
 function formats_image_acceptables(?bool $gd = null, bool $svg_allowed = true): array {
3619
-	$formats = null;
3620
-	if (!is_null($gd)) {
3621
-		$config = ($gd ? 'gd_formats' : 'formats_graphiques');
3622
-		if (isset($GLOBALS['meta'][$config])) {
3623
-			$formats = $GLOBALS['meta'][$config];
3624
-			$formats = explode(',', $formats);
3625
-			$formats = array_filter($formats);
3626
-			$formats = array_map('trim', $formats);
3627
-		}
3628
-	}
3629
-	if (is_null($formats)) {
3630
-		include_spip('inc/filtres_images_lib_mini');
3631
-		$formats = _image_extensions_acceptees_en_entree();
3632
-	}
3633
-
3634
-	if ($svg_allowed) {
3635
-		if (!in_array('svg', $formats)) {
3636
-			$formats[] = 'svg';
3637
-		}
3638
-	} else {
3639
-		$formats = array_diff($formats, ['svg']);
3640
-	}
3641
-	return $formats;
3618
+    $formats = null;
3619
+    if (!is_null($gd)) {
3620
+        $config = ($gd ? 'gd_formats' : 'formats_graphiques');
3621
+        if (isset($GLOBALS['meta'][$config])) {
3622
+            $formats = $GLOBALS['meta'][$config];
3623
+            $formats = explode(',', $formats);
3624
+            $formats = array_filter($formats);
3625
+            $formats = array_map('trim', $formats);
3626
+        }
3627
+    }
3628
+    if (is_null($formats)) {
3629
+        include_spip('inc/filtres_images_lib_mini');
3630
+        $formats = _image_extensions_acceptees_en_entree();
3631
+    }
3632
+
3633
+    if ($svg_allowed) {
3634
+        if (!in_array('svg', $formats)) {
3635
+            $formats[] = 'svg';
3636
+        }
3637
+    } else {
3638
+        $formats = array_diff($formats, ['svg']);
3639
+    }
3640
+    return $formats;
3642 3641
 }
3643 3642
 
3644 3643
 /**
@@ -3647,24 +3646,24 @@  discard block
 block discarded – undo
3647 3646
  * @return array|bool
3648 3647
  */
3649 3648
 function spip_getimagesize($fichier) {
3650
-	if (file_exists($fichier) && ($imagesize = @getimagesize($fichier))) {
3651
-		return $imagesize;
3652
-	}
3649
+    if (file_exists($fichier) && ($imagesize = @getimagesize($fichier))) {
3650
+        return $imagesize;
3651
+    }
3653 3652
 
3654
-	include_spip('inc/svg');
3655
-	if ($attrs = svg_lire_attributs($fichier)) {
3656
-		[$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs);
3657
-		$imagesize = [
3658
-			$width,
3659
-			$height,
3660
-			IMAGETYPE_SVG,
3661
-			"width=\"{$width}\" height=\"{$height}\"",
3662
-			'mime' => 'image/svg+xml'
3663
-		];
3664
-		return $imagesize;
3665
-	}
3653
+    include_spip('inc/svg');
3654
+    if ($attrs = svg_lire_attributs($fichier)) {
3655
+        [$width, $height, $viewbox] = svg_getimagesize_from_attr($attrs);
3656
+        $imagesize = [
3657
+            $width,
3658
+            $height,
3659
+            IMAGETYPE_SVG,
3660
+            "width=\"{$width}\" height=\"{$height}\"",
3661
+            'mime' => 'image/svg+xml'
3662
+        ];
3663
+        return $imagesize;
3664
+    }
3666 3665
 
3667
-	return false;
3666
+    return false;
3668 3667
 }
3669 3668
 
3670 3669
 /**
@@ -3678,18 +3677,18 @@  discard block
 block discarded – undo
3678 3677
  * @param string $statut
3679 3678
  */
3680 3679
 function avertir_auteurs($nom, $message, $statut = '') {
3681
-	$alertes = $GLOBALS['meta']['message_alertes_auteurs'];
3682
-	if (
3683
-		!$alertes || !is_array($alertes = unserialize($alertes))
3684
-	) {
3685
-		$alertes = [];
3686
-	}
3680
+    $alertes = $GLOBALS['meta']['message_alertes_auteurs'];
3681
+    if (
3682
+        !$alertes || !is_array($alertes = unserialize($alertes))
3683
+    ) {
3684
+        $alertes = [];
3685
+    }
3687 3686
 
3688
-	if (!isset($alertes[$statut])) {
3689
-		$alertes[$statut] = [];
3690
-	}
3691
-	$alertes[$statut][$nom] = $message;
3692
-	ecrire_meta('message_alertes_auteurs', serialize($alertes));
3687
+    if (!isset($alertes[$statut])) {
3688
+        $alertes[$statut] = [];
3689
+    }
3690
+    $alertes[$statut][$nom] = $message;
3691
+    ecrire_meta('message_alertes_auteurs', serialize($alertes));
3693 3692
 }
3694 3693
 
3695 3694
 /**
@@ -3703,10 +3702,10 @@  discard block
 block discarded – undo
3703 3702
  * @return string|string[]
3704 3703
  */
3705 3704
 function spip_sanitize_classname($classes) {
3706
-	if (is_array($classes)) {
3707
-		return array_map('spip_sanitize_classname', $classes);
3708
-	}
3709
-	return preg_replace('/[^ 0-9a-z_\-+@]/i', '', $classes);
3705
+    if (is_array($classes)) {
3706
+        return array_map('spip_sanitize_classname', $classes);
3707
+    }
3708
+    return preg_replace('/[^ 0-9a-z_\-+@]/i', '', $classes);
3710 3709
 }
3711 3710
 
3712 3711
 
@@ -3731,32 +3730,32 @@  discard block
 block discarded – undo
3731 3730
  *    Avec operateur : bool.
3732 3731
  **/
3733 3732
 function spip_version_compare($v1, $v2, $op = null) {
3734
-	$v1 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v1));
3735
-	$v2 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v2));
3736
-	$v1 = str_replace('rc', 'RC', $v1); // certaines versions de PHP ne comprennent RC qu'en majuscule
3737
-	$v2 = str_replace('rc', 'RC', $v2); // certaines versions de PHP ne comprennent RC qu'en majuscule
3738
-
3739
-	$v1 = explode('.', $v1);
3740
-	$v2 = explode('.', $v2);
3741
-	// $v1 est toujours une version, donc sans etoile
3742
-	while (count($v1) < count($v2)) {
3743
-		$v1[] = '0';
3744
-	}
3745
-
3746
-	// $v2 peut etre une borne, donc accepte l'etoile
3747
-	$etoile = false;
3748
-	foreach ($v1 as $k => $v) {
3749
-		if (!isset($v2[$k])) {
3750
-			$v2[] = ($etoile && (is_numeric($v) || $v == 'pl' || $v == 'p')) ? $v : '0';
3751
-		} else {
3752
-			if ($v2[$k] == '*') {
3753
-				$etoile = true;
3754
-				$v2[$k] = $v;
3755
-			}
3756
-		}
3757
-	}
3758
-	$v1 = implode('.', $v1);
3759
-	$v2 = implode('.', $v2);
3760
-
3761
-	return $op ? version_compare($v1, $v2, $op) : version_compare($v1, $v2);
3733
+    $v1 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v1));
3734
+    $v2 = strtolower(preg_replace(',([0-9])[\s.-]?(dev|alpha|a|beta|b|rc|pl|p),i', '\\1.\\2', $v2));
3735
+    $v1 = str_replace('rc', 'RC', $v1); // certaines versions de PHP ne comprennent RC qu'en majuscule
3736
+    $v2 = str_replace('rc', 'RC', $v2); // certaines versions de PHP ne comprennent RC qu'en majuscule
3737
+
3738
+    $v1 = explode('.', $v1);
3739
+    $v2 = explode('.', $v2);
3740
+    // $v1 est toujours une version, donc sans etoile
3741
+    while (count($v1) < count($v2)) {
3742
+        $v1[] = '0';
3743
+    }
3744
+
3745
+    // $v2 peut etre une borne, donc accepte l'etoile
3746
+    $etoile = false;
3747
+    foreach ($v1 as $k => $v) {
3748
+        if (!isset($v2[$k])) {
3749
+            $v2[] = ($etoile && (is_numeric($v) || $v == 'pl' || $v == 'p')) ? $v : '0';
3750
+        } else {
3751
+            if ($v2[$k] == '*') {
3752
+                $etoile = true;
3753
+                $v2[$k] = $v;
3754
+            }
3755
+        }
3756
+    }
3757
+    $v1 = implode('.', $v1);
3758
+    $v2 = implode('.', $v2);
3759
+
3760
+    return $op ? version_compare($v1, $v2, $op) : version_compare($v1, $v2);
3762 3761
 }
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.