Completed
Push — master ( 37aa61...be7234 )
by cam
01:24
created
ecrire/lang/ecrire_ast.php 1 patch
Indentation   +726 added lines, -726 removed lines patch added patch discarded remove patch
@@ -4,384 +4,384 @@  discard block
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'activer_plugin' => 'Activar el plugin',
14
-	'affichage' => 'Compaxinación',
15
-	'aide_non_disponible' => 'Esta parte de l’aida en llínia tovía nun tá iguada n’esta llingua.',
16
-	'auteur' => 'Autor:',
17
-	'avis_acces_interdit' => 'Accesu torgau.',
18
-	'avis_article_modifie' => 'Atención, @nom_auteur_modif@ trabayó n’esti artículo hai @date_diff@ minutos.',
19
-	'avis_aucun_resultat' => 'Dengún resultáu',
20
-	'avis_chemin_invalide_1' => 'El camín escoyíu',
21
-	'avis_chemin_invalide_2' => 'nun paez afayaízu. Torna a la páxina anterior y revisa la información qu’escribiste.',
22
-	'avis_connexion_echec_1' => 'Falló l’enxertu al servidor SQL.',
23
-	'avis_connexion_echec_2' => 'Torna a la páxina cabera y revisa los datos que pusiste.',
24
-	'avis_connexion_echec_3' => '<b>Nota:</b> En munchos sirvidores, fai falta <b>pidir</b> la activación del accesu a la base de datos enantes de poder usala. Si nun puedes conectate, mira si ficiste esi trámite.',
25
-	'avis_connexion_ldap_echec_1' => 'Hubo un fallu na conexón al sirvidor LDAP.',
26
-	'avis_connexion_ldap_echec_2' => 'Torna a la páxina anterior, y revisa la información qu’escribisti n’ella.',
27
-	'avis_connexion_ldap_echec_3' => 'D’otru mou, nun uses el sofitu de LDAP pa importar usuarios.',
28
-	'avis_deplacement_rubrique' => '¡Atención! Esta estaya contién @contient_breves@ breve@scb@: si la mueves, ties que marcar esti cuadru de confirmación.',
29
-	'avis_erreur_connexion_mysql' => 'Fallu de conexón SQL',
30
-	'avis_espace_interdit' => '<b>Espaciu torgáu</b> <div>SPIP ya ta instalao.</div>',
31
-	'avis_lecture_noms_bases_1' => 'El programa d’instalación nun fue a lleer los nomes de les bases de datos instaláes.',
32
-	'avis_lecture_noms_bases_2' => 'Puede ser que denguna base nun te disponible, o que la función que permite llistar les bases te desactivada
12
+    // A
13
+    'activer_plugin' => 'Activar el plugin',
14
+    'affichage' => 'Compaxinación',
15
+    'aide_non_disponible' => 'Esta parte de l’aida en llínia tovía nun tá iguada n’esta llingua.',
16
+    'auteur' => 'Autor:',
17
+    'avis_acces_interdit' => 'Accesu torgau.',
18
+    'avis_article_modifie' => 'Atención, @nom_auteur_modif@ trabayó n’esti artículo hai @date_diff@ minutos.',
19
+    'avis_aucun_resultat' => 'Dengún resultáu',
20
+    'avis_chemin_invalide_1' => 'El camín escoyíu',
21
+    'avis_chemin_invalide_2' => 'nun paez afayaízu. Torna a la páxina anterior y revisa la información qu’escribiste.',
22
+    'avis_connexion_echec_1' => 'Falló l’enxertu al servidor SQL.',
23
+    'avis_connexion_echec_2' => 'Torna a la páxina cabera y revisa los datos que pusiste.',
24
+    'avis_connexion_echec_3' => '<b>Nota:</b> En munchos sirvidores, fai falta <b>pidir</b> la activación del accesu a la base de datos enantes de poder usala. Si nun puedes conectate, mira si ficiste esi trámite.',
25
+    'avis_connexion_ldap_echec_1' => 'Hubo un fallu na conexón al sirvidor LDAP.',
26
+    'avis_connexion_ldap_echec_2' => 'Torna a la páxina anterior, y revisa la información qu’escribisti n’ella.',
27
+    'avis_connexion_ldap_echec_3' => 'D’otru mou, nun uses el sofitu de LDAP pa importar usuarios.',
28
+    'avis_deplacement_rubrique' => '¡Atención! Esta estaya contién @contient_breves@ breve@scb@: si la mueves, ties que marcar esti cuadru de confirmación.',
29
+    'avis_erreur_connexion_mysql' => 'Fallu de conexón SQL',
30
+    'avis_espace_interdit' => '<b>Espaciu torgáu</b> <div>SPIP ya ta instalao.</div>',
31
+    'avis_lecture_noms_bases_1' => 'El programa d’instalación nun fue a lleer los nomes de les bases de datos instaláes.',
32
+    'avis_lecture_noms_bases_2' => 'Puede ser que denguna base nun te disponible, o que la función que permite llistar les bases te desactivada
33 33
  por cuenta de razones de seguridá (lo que ye’l casu n’abondos agospiamientos web).',
34
-	'avis_lecture_noms_bases_3' => 'Nel segundu casu, ye probable qu’esista una base que col mesmu nome qu’el to login:',
35
-	'avis_non_acces_page' => 'Nun tienes accesu a esta páxina.',
36
-	'avis_operation_echec' => 'Falló la operación.',
37
-	'avis_operation_impossible' => 'Operación imposible',
38
-	'avis_suppression_base' => 'ATENCIÓN, el desaniciu de los datos nun ye reversible',
34
+    'avis_lecture_noms_bases_3' => 'Nel segundu casu, ye probable qu’esista una base que col mesmu nome qu’el to login:',
35
+    'avis_non_acces_page' => 'Nun tienes accesu a esta páxina.',
36
+    'avis_operation_echec' => 'Falló la operación.',
37
+    'avis_operation_impossible' => 'Operación imposible',
38
+    'avis_suppression_base' => 'ATENCIÓN, el desaniciu de los datos nun ye reversible',
39 39
 
40
-	// B
41
-	'bouton_acces_ldap' => 'Añader l’accesu a LDAP',
42
-	'bouton_ajouter' => 'Amestar',
43
-	'bouton_annuler' => 'Anular',
44
-	'bouton_demande_publication' => 'Pedir l’espublizamientu d’esti artículu',
45
-	'bouton_desactive_tout' => 'Desactivalo too',
46
-	'bouton_desinstaller' => 'Desasitiar',
47
-	'bouton_effacer_tout' => 'Desaniciar TOO',
48
-	'bouton_envoyer_message' => 'Mensaxe definitivu: unviar',
49
-	'bouton_fermer' => 'Zarrar',
50
-	'bouton_modifier' => 'Camudar',
51
-	'bouton_radio_afficher' => 'Amosar',
52
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apaecer na llista de redactores coneutaos',
53
-	'bouton_radio_envoi_annonces_adresse' => 'Unviar los anuncios a la direición:',
54
-	'bouton_radio_envoi_liste_nouveautes' => 'Unviar la llista de novedáes',
55
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Nun apaecer na llista de redactores',
56
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Nun mandar anuncios editoriales',
57
-	'bouton_redirection' => 'REDIREICIÓN',
58
-	'bouton_relancer_installation' => 'Rellanzar l’instalación',
59
-	'bouton_suivant' => 'Siguiente',
60
-	'bouton_tenter_recuperation' => 'Tentar una reparación',
61
-	'bouton_test_proxy' => 'Comprobar el proxy',
62
-	'bouton_vider_cache' => 'Vaciar la caché',
40
+    // B
41
+    'bouton_acces_ldap' => 'Añader l’accesu a LDAP',
42
+    'bouton_ajouter' => 'Amestar',
43
+    'bouton_annuler' => 'Anular',
44
+    'bouton_demande_publication' => 'Pedir l’espublizamientu d’esti artículu',
45
+    'bouton_desactive_tout' => 'Desactivalo too',
46
+    'bouton_desinstaller' => 'Desasitiar',
47
+    'bouton_effacer_tout' => 'Desaniciar TOO',
48
+    'bouton_envoyer_message' => 'Mensaxe definitivu: unviar',
49
+    'bouton_fermer' => 'Zarrar',
50
+    'bouton_modifier' => 'Camudar',
51
+    'bouton_radio_afficher' => 'Amosar',
52
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Apaecer na llista de redactores coneutaos',
53
+    'bouton_radio_envoi_annonces_adresse' => 'Unviar los anuncios a la direición:',
54
+    'bouton_radio_envoi_liste_nouveautes' => 'Unviar la llista de novedáes',
55
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Nun apaecer na llista de redactores',
56
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Nun mandar anuncios editoriales',
57
+    'bouton_redirection' => 'REDIREICIÓN',
58
+    'bouton_relancer_installation' => 'Rellanzar l’instalación',
59
+    'bouton_suivant' => 'Siguiente',
60
+    'bouton_tenter_recuperation' => 'Tentar una reparación',
61
+    'bouton_test_proxy' => 'Comprobar el proxy',
62
+    'bouton_vider_cache' => 'Vaciar la caché',
63 63
 
64
-	// C
65
-	'cache_modifiable_webmestre' => 'Esti parámetru puede modificase pol webmaster del sitiu.',
66
-	'calendrier_synchro' => 'Si uses un programa d’axenda compatible <b>iCal</b>, puedes sincronizalu cola información d’esti sitiu.',
67
-	'config_activer_champs' => 'Activar los campos siguientes',
68
-	'config_choix_base_sup' => 'indicar una base datos nesti sirvidor',
69
-	'config_erreur_base_sup' => 'SPIP nun tien accesu a la llista de les bases disponibles',
70
-	'config_info_base_sup' => 'Si tienes otres bases de datos pa restolar al traviés de SPIP, col so sirvidor SQL o con otru, el formulariu d’embaxo va permitite declarales. Si dexes ciertos campos vacíos, utilizaránse les identificaciones de conexón a la base principal.',
71
-	'config_info_base_sup_disponibles' => 'Bases suplementaries que ya son restolables:',
72
-	'config_info_enregistree' => 'Guardose la nueva configuración',
73
-	'config_info_logos' => 'Cada elementu del sitiu puede tener un logo, lo mesmo qu’un «logo de pasu’l mur»',
74
-	'config_info_logos_utiliser' => 'Usar los logos',
75
-	'config_info_logos_utiliser_non' => 'Nun usar los logos',
76
-	'config_info_logos_utiliser_survol' => 'Usar los logos de pasu’l mur',
77
-	'config_info_logos_utiliser_survol_non' => 'Nun usar los logos de pasu’l mur',
78
-	'config_info_redirection' => 'En activando esta opción, vas poder crear artículos virtuales, simples referencies d’artículos espublizáos n’otros sitios o fechos ensin SPIP.',
79
-	'config_redirection' => 'Artículos virtuales',
80
-	'config_titre_base_sup' => 'Declaración d’una base suplementaria',
81
-	'config_titre_base_sup_choix' => 'Escueye una base suplementaria',
82
-	'connexion_ldap' => 'Conexón:',
64
+    // C
65
+    'cache_modifiable_webmestre' => 'Esti parámetru puede modificase pol webmaster del sitiu.',
66
+    'calendrier_synchro' => 'Si uses un programa d’axenda compatible <b>iCal</b>, puedes sincronizalu cola información d’esti sitiu.',
67
+    'config_activer_champs' => 'Activar los campos siguientes',
68
+    'config_choix_base_sup' => 'indicar una base datos nesti sirvidor',
69
+    'config_erreur_base_sup' => 'SPIP nun tien accesu a la llista de les bases disponibles',
70
+    'config_info_base_sup' => 'Si tienes otres bases de datos pa restolar al traviés de SPIP, col so sirvidor SQL o con otru, el formulariu d’embaxo va permitite declarales. Si dexes ciertos campos vacíos, utilizaránse les identificaciones de conexón a la base principal.',
71
+    'config_info_base_sup_disponibles' => 'Bases suplementaries que ya son restolables:',
72
+    'config_info_enregistree' => 'Guardose la nueva configuración',
73
+    'config_info_logos' => 'Cada elementu del sitiu puede tener un logo, lo mesmo qu’un «logo de pasu’l mur»',
74
+    'config_info_logos_utiliser' => 'Usar los logos',
75
+    'config_info_logos_utiliser_non' => 'Nun usar los logos',
76
+    'config_info_logos_utiliser_survol' => 'Usar los logos de pasu’l mur',
77
+    'config_info_logos_utiliser_survol_non' => 'Nun usar los logos de pasu’l mur',
78
+    'config_info_redirection' => 'En activando esta opción, vas poder crear artículos virtuales, simples referencies d’artículos espublizáos n’otros sitios o fechos ensin SPIP.',
79
+    'config_redirection' => 'Artículos virtuales',
80
+    'config_titre_base_sup' => 'Declaración d’una base suplementaria',
81
+    'config_titre_base_sup_choix' => 'Escueye una base suplementaria',
82
+    'connexion_ldap' => 'Conexón:',
83 83
 
84
-	// D
85
-	'date_mot_heures' => 'hores',
84
+    // D
85
+    'date_mot_heures' => 'hores',
86 86
 
87
-	// E
88
-	'email' => 'corréu electrónicu',
89
-	'email_2' => 'correu elletrónicu:',
90
-	'en_savoir_plus' => 'Pa saber más',
91
-	'entree_adresse_annuaire' => 'Señes de l’anuariu',
92
-	'entree_adresse_email' => 'Les tos señes d’email',
93
-	'entree_base_donnee_1' => 'Señes de la base de datos',
94
-	'entree_base_donnee_2' => '(Bien de veces estes señes correspuendense coles del sitiu mesmu, dacuando son el nome «localhost», o sinon dexense vacíes dafechu.)',
95
-	'entree_biographie' => 'Biografía curtia en delles pallabres.',
96
-	'entree_chemin_acces' => '<b>Enxertar</b> la ruta d’accesu:',
97
-	'entree_cle_pgp' => 'La to clave PGP',
98
-	'entree_contenu_rubrique' => '(Conteníu de la estaya en delles pallabres.)',
99
-	'entree_identifiants_connexion' => 'Los identificadores pa la to conexón...',
100
-	'entree_informations_connexion_ldap' => 'Nesti formulariu has d’enxertar la información pa coneutate al sirvidor de señes LDAP.
87
+    // E
88
+    'email' => 'corréu electrónicu',
89
+    'email_2' => 'correu elletrónicu:',
90
+    'en_savoir_plus' => 'Pa saber más',
91
+    'entree_adresse_annuaire' => 'Señes de l’anuariu',
92
+    'entree_adresse_email' => 'Les tos señes d’email',
93
+    'entree_base_donnee_1' => 'Señes de la base de datos',
94
+    'entree_base_donnee_2' => '(Bien de veces estes señes correspuendense coles del sitiu mesmu, dacuando son el nome «localhost», o sinon dexense vacíes dafechu.)',
95
+    'entree_biographie' => 'Biografía curtia en delles pallabres.',
96
+    'entree_chemin_acces' => '<b>Enxertar</b> la ruta d’accesu:',
97
+    'entree_cle_pgp' => 'La to clave PGP',
98
+    'entree_contenu_rubrique' => '(Conteníu de la estaya en delles pallabres.)',
99
+    'entree_identifiants_connexion' => 'Los identificadores pa la to conexón...',
100
+    'entree_informations_connexion_ldap' => 'Nesti formulariu has d’enxertar la información pa coneutate al sirvidor de señes LDAP.
101 101
  Esta información tien que apurrítela l’alministrador del sistema,
102 102
  o de la rede.',
103
-	'entree_infos_perso' => '¿Quién yes?',
104
-	'entree_interieur_rubrique' => 'Dientro de l’estaya:',
105
-	'entree_liens_sites' => '<b>Enllaz d’hipertestu</b> (referencia, sitiu a visitar...)',
106
-	'entree_login' => 'El to login',
107
-	'entree_login_connexion_1' => 'El nome de conexón',
108
-	'entree_login_connexion_2' => '(Correspuende seique al to nome d’accesu al FTP; seique en blancu)',
109
-	'entree_mot_passe' => 'La to contraseña',
110
-	'entree_mot_passe_1' => 'La contraseña pa la conexón',
111
-	'entree_mot_passe_2' => '(Correspuende seique a la to contraseña pal FTP; seique en blancu)',
112
-	'entree_nom_fichier' => 'Has d’amestar el nome de l’archivu @texte_compresse@:',
113
-	'entree_nom_pseudo' => 'El to nome o nomatu',
114
-	'entree_nom_pseudo_1' => '(El to nome o nomatu)',
115
-	'entree_nom_site' => 'Nome del to sitiu web',
116
-	'entree_nouveau_passe' => 'Contraseña nueva',
117
-	'entree_passe_ldap' => 'Contraseña',
118
-	'entree_port_annuaire' => 'Númberu de puertu del sirvidor de señes',
119
-	'entree_signature' => 'Robla',
120
-	'entree_titre_obligatoire' => '<b>Títulu</b> [Obligatoriu]<br />',
121
-	'entree_url' => 'Les señes (URL) del to sitiu web',
122
-	'erreur_plugin_desinstalation_echouee' => 'Falló la desinstalación del complementu. Sicasí, puedes desactivalu.', # MODIF
123
-	'erreur_plugin_fichier_absent' => 'Falta l’archivu',
124
-	'erreur_plugin_fichier_def_absent' => 'Falta l’archivu de definición',
125
-	'erreur_plugin_nom_fonction_interdit' => 'Nome de función encaboxada',
126
-	'erreur_plugin_nom_manquant' => 'Falta’l nome del plugin',
127
-	'erreur_plugin_prefix_manquant' => 'Espaciu de nomes del plugin nun definíu',
128
-	'erreur_plugin_tag_plugin_absent' => 'Falta el &lt;plugin&gt; nel archivu de definición',
129
-	'erreur_plugin_version_manquant' => 'Falta la versión del plugin',
103
+    'entree_infos_perso' => '¿Quién yes?',
104
+    'entree_interieur_rubrique' => 'Dientro de l’estaya:',
105
+    'entree_liens_sites' => '<b>Enllaz d’hipertestu</b> (referencia, sitiu a visitar...)',
106
+    'entree_login' => 'El to login',
107
+    'entree_login_connexion_1' => 'El nome de conexón',
108
+    'entree_login_connexion_2' => '(Correspuende seique al to nome d’accesu al FTP; seique en blancu)',
109
+    'entree_mot_passe' => 'La to contraseña',
110
+    'entree_mot_passe_1' => 'La contraseña pa la conexón',
111
+    'entree_mot_passe_2' => '(Correspuende seique a la to contraseña pal FTP; seique en blancu)',
112
+    'entree_nom_fichier' => 'Has d’amestar el nome de l’archivu @texte_compresse@:',
113
+    'entree_nom_pseudo' => 'El to nome o nomatu',
114
+    'entree_nom_pseudo_1' => '(El to nome o nomatu)',
115
+    'entree_nom_site' => 'Nome del to sitiu web',
116
+    'entree_nouveau_passe' => 'Contraseña nueva',
117
+    'entree_passe_ldap' => 'Contraseña',
118
+    'entree_port_annuaire' => 'Númberu de puertu del sirvidor de señes',
119
+    'entree_signature' => 'Robla',
120
+    'entree_titre_obligatoire' => '<b>Títulu</b> [Obligatoriu]<br />',
121
+    'entree_url' => 'Les señes (URL) del to sitiu web',
122
+    'erreur_plugin_desinstalation_echouee' => 'Falló la desinstalación del complementu. Sicasí, puedes desactivalu.', # MODIF
123
+    'erreur_plugin_fichier_absent' => 'Falta l’archivu',
124
+    'erreur_plugin_fichier_def_absent' => 'Falta l’archivu de definición',
125
+    'erreur_plugin_nom_fonction_interdit' => 'Nome de función encaboxada',
126
+    'erreur_plugin_nom_manquant' => 'Falta’l nome del plugin',
127
+    'erreur_plugin_prefix_manquant' => 'Espaciu de nomes del plugin nun definíu',
128
+    'erreur_plugin_tag_plugin_absent' => 'Falta el &lt;plugin&gt; nel archivu de definición',
129
+    'erreur_plugin_version_manquant' => 'Falta la versión del plugin',
130 130
 
131
-	// H
132
-	'htaccess_a_simuler' => 'Avisu: la configuración del to sirvidor HTTP nun tien en cuenta los ficheros @htaccess@. Pa poder asegurar una bona seguridá, fai falta que camudes esa configuración nesti puntu, o bien que les constantes @constantes@ (definibles nel ficheru mes_options.php) tengan como valor direutorios nel esterior de @document_root@.', # MODIF
133
-	'htaccess_inoperant' => 'htaccess non operativu',
131
+    // H
132
+    'htaccess_a_simuler' => 'Avisu: la configuración del to sirvidor HTTP nun tien en cuenta los ficheros @htaccess@. Pa poder asegurar una bona seguridá, fai falta que camudes esa configuración nesti puntu, o bien que les constantes @constantes@ (definibles nel ficheru mes_options.php) tengan como valor direutorios nel esterior de @document_root@.', # MODIF
133
+    'htaccess_inoperant' => 'htaccess non operativu',
134 134
 
135
-	// I
136
-	'ical_info1' => 'N’esta páxina ufrense delles maneres de tar en contautu cola actividá d’esti sitiu.',
137
-	'ical_info2' => 'Pa más información tocante a toes estes técniques, pues consultar <a href="@spipnet@">la documentación de SPIP</a>.',
138
-	'ical_info_calendrier' => 'Tienes dos axendes a la to disposición. La primera ye el plan del sitiu que anuncia tolos artículos espublizaos. La segunda contién los anuncios editoriales y también los tos caberos mensaxes privaos: esta ye una axenda privada gracies a una clave personal, que pues modificar en tou momentu anovando la to contraseña.',
139
-	'ical_methode_http' => 'Descarga',
140
-	'ical_methode_webcal' => 'Sincronización (webcal://)', # MODIF
141
-	'ical_texte_prive' => 'Esta axenda, de usu esclusivamente personal, te informa de l’actividá editorial privada d’esti sitiu (xeres y conceyos personales, artículos y breves propuestos...).',
142
-	'ical_texte_public' => 'Esta axenda te permite siguir l’actividá pública d’esti sitiu (artículos y breves espublizáos).',
143
-	'ical_texte_rss' => 'Puedes sindicar les novedáes d’esti sitiu en cualisquier llector d’archivos en formatu XML/RSS (Rich Site Summary). Esti ye también el formatu que permite a SPIP lleer les novedáes espublizáes n’otros sitios que utilicen un formatu d’intercambéu compatible (sitios sindicaos).',
144
-	'ical_titre_js' => 'Javascript',
145
-	'ical_titre_mailing' => 'Llista de corréu',
146
-	'ical_titre_rss' => 'Archivos de sindicación',
147
-	'icone_accueil' => 'Entamu',
148
-	'icone_activer_cookie' => 'Activar la cookie de correspondencia',
149
-	'icone_activite' => 'Actividá',
150
-	'icone_admin_plugin' => 'Xestión de los plugins',
151
-	'icone_administration' => 'Mantenimientu',
152
-	'icone_afficher_auteurs' => 'Amosar los autores',
153
-	'icone_afficher_visiteurs' => 'Amosar les visites',
154
-	'icone_arret_discussion' => 'Nun participar ya nesta discusión',
155
-	'icone_calendrier' => 'Calendariu',
156
-	'icone_configuration' => 'Configuración',
157
-	'icone_creer_auteur' => 'Crear un nuevu autor y asocialu con esti artículu',
158
-	'icone_creer_mot_cle' => 'Crear una nueva pallabra-clave y amestala con esti artículu',
159
-	'icone_creer_rubrique_2' => 'Facer una estaya nueva',
160
-	'icone_edition' => 'Edición',
161
-	'icone_ma_langue' => 'La mio llingua',
162
-	'icone_mes_infos' => 'La mio información',
163
-	'icone_mes_preferences' => 'Les mios preferencies',
164
-	'icone_modifier_article' => 'Iguar esti artículu',
165
-	'icone_modifier_rubrique' => 'Iguar esta estaya',
166
-	'icone_publication' => 'Publicación',
167
-	'icone_relancer_signataire' => 'Rellanzar el roblador',
168
-	'icone_retour' => 'Tornar',
169
-	'icone_retour_article' => 'Tornar a l’artículu',
170
-	'icone_squelette' => 'Cadarmes',
171
-	'icone_suivi_publication' => 'Siguimientu de la publicación',
172
-	'icone_supprimer_cookie' => 'Desaniciar la cookie de correspondencia',
173
-	'icone_supprimer_rubrique' => 'Desaniciar esta estaya',
174
-	'icone_supprimer_signature' => 'Desaniciar esta robla',
175
-	'icone_valider_signature' => 'Validar esta robla',
176
-	'image_administrer_rubrique' => 'Puedes alministrar esta estaya',
177
-	'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
178
-	'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
179
-	'info_1_article' => '1 artículu',
180
-	'info_1_auteur' => '1 autor',
181
-	'info_1_message' => '1 mensaxe',
182
-	'info_1_mot_cle' => '1 pallabra-clave',
183
-	'info_1_rubrique' => '1 seición',
184
-	'info_1_visiteur' => '1 visitante',
185
-	'info_activer_cookie' => 'Puedes activar una <b>cookie de correspondencia</b>, que va
135
+    // I
136
+    'ical_info1' => 'N’esta páxina ufrense delles maneres de tar en contautu cola actividá d’esti sitiu.',
137
+    'ical_info2' => 'Pa más información tocante a toes estes técniques, pues consultar <a href="@spipnet@">la documentación de SPIP</a>.',
138
+    'ical_info_calendrier' => 'Tienes dos axendes a la to disposición. La primera ye el plan del sitiu que anuncia tolos artículos espublizaos. La segunda contién los anuncios editoriales y también los tos caberos mensaxes privaos: esta ye una axenda privada gracies a una clave personal, que pues modificar en tou momentu anovando la to contraseña.',
139
+    'ical_methode_http' => 'Descarga',
140
+    'ical_methode_webcal' => 'Sincronización (webcal://)', # MODIF
141
+    'ical_texte_prive' => 'Esta axenda, de usu esclusivamente personal, te informa de l’actividá editorial privada d’esti sitiu (xeres y conceyos personales, artículos y breves propuestos...).',
142
+    'ical_texte_public' => 'Esta axenda te permite siguir l’actividá pública d’esti sitiu (artículos y breves espublizáos).',
143
+    'ical_texte_rss' => 'Puedes sindicar les novedáes d’esti sitiu en cualisquier llector d’archivos en formatu XML/RSS (Rich Site Summary). Esti ye también el formatu que permite a SPIP lleer les novedáes espublizáes n’otros sitios que utilicen un formatu d’intercambéu compatible (sitios sindicaos).',
144
+    'ical_titre_js' => 'Javascript',
145
+    'ical_titre_mailing' => 'Llista de corréu',
146
+    'ical_titre_rss' => 'Archivos de sindicación',
147
+    'icone_accueil' => 'Entamu',
148
+    'icone_activer_cookie' => 'Activar la cookie de correspondencia',
149
+    'icone_activite' => 'Actividá',
150
+    'icone_admin_plugin' => 'Xestión de los plugins',
151
+    'icone_administration' => 'Mantenimientu',
152
+    'icone_afficher_auteurs' => 'Amosar los autores',
153
+    'icone_afficher_visiteurs' => 'Amosar les visites',
154
+    'icone_arret_discussion' => 'Nun participar ya nesta discusión',
155
+    'icone_calendrier' => 'Calendariu',
156
+    'icone_configuration' => 'Configuración',
157
+    'icone_creer_auteur' => 'Crear un nuevu autor y asocialu con esti artículu',
158
+    'icone_creer_mot_cle' => 'Crear una nueva pallabra-clave y amestala con esti artículu',
159
+    'icone_creer_rubrique_2' => 'Facer una estaya nueva',
160
+    'icone_edition' => 'Edición',
161
+    'icone_ma_langue' => 'La mio llingua',
162
+    'icone_mes_infos' => 'La mio información',
163
+    'icone_mes_preferences' => 'Les mios preferencies',
164
+    'icone_modifier_article' => 'Iguar esti artículu',
165
+    'icone_modifier_rubrique' => 'Iguar esta estaya',
166
+    'icone_publication' => 'Publicación',
167
+    'icone_relancer_signataire' => 'Rellanzar el roblador',
168
+    'icone_retour' => 'Tornar',
169
+    'icone_retour_article' => 'Tornar a l’artículu',
170
+    'icone_squelette' => 'Cadarmes',
171
+    'icone_suivi_publication' => 'Siguimientu de la publicación',
172
+    'icone_supprimer_cookie' => 'Desaniciar la cookie de correspondencia',
173
+    'icone_supprimer_rubrique' => 'Desaniciar esta estaya',
174
+    'icone_supprimer_signature' => 'Desaniciar esta robla',
175
+    'icone_valider_signature' => 'Validar esta robla',
176
+    'image_administrer_rubrique' => 'Puedes alministrar esta estaya',
177
+    'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
178
+    'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
179
+    'info_1_article' => '1 artículu',
180
+    'info_1_auteur' => '1 autor',
181
+    'info_1_message' => '1 mensaxe',
182
+    'info_1_mot_cle' => '1 pallabra-clave',
183
+    'info_1_rubrique' => '1 seición',
184
+    'info_1_visiteur' => '1 visitante',
185
+    'info_activer_cookie' => 'Puedes activar una <b>cookie de correspondencia</b>, que va
186 186
  permitite que pases fácilmente del sitiu públicu al sitiu privau.',
187
-	'info_admin_etre_webmestre' => 'Conseñame permisos de webmaster',
188
-	'info_admin_je_suis_webmestre' => 'Yá soi <b>webmaster</b>',
189
-	'info_admin_statuer_webmestre' => 'Da-y a esti alministrador permisos de webmaster',
190
-	'info_admin_webmestre' => 'Esti alministrador ye <b>webmaster</b>',
191
-	'info_administrateur' => 'Xestión',
192
-	'info_administrateur_1' => 'Xestión',
193
-	'info_administrateur_2' => 'de la web (<i>úsalo con cuidáu</i>)',
194
-	'info_administrateur_site_01' => 'Si tas nel equipu de xestión,',
195
-	'info_administrateur_site_02' => 'pica n’esti enllaz',
196
-	'info_administrateurs' => 'Alministradores',
197
-	'info_administrer_rubrique' => 'Puedes alministrar esta estaya',
198
-	'info_adresse' => 'a les señes:',
199
-	'info_adresse_url' => 'Direición (URL) del sitiu públicu',
200
-	'info_aide_en_ligne' => 'Aida en llinia de SPIP',
201
-	'info_ajout_image' => 'Cuando amestes imáxenes como documentos axuntaos a un artículu,
187
+    'info_admin_etre_webmestre' => 'Conseñame permisos de webmaster',
188
+    'info_admin_je_suis_webmestre' => 'Yá soi <b>webmaster</b>',
189
+    'info_admin_statuer_webmestre' => 'Da-y a esti alministrador permisos de webmaster',
190
+    'info_admin_webmestre' => 'Esti alministrador ye <b>webmaster</b>',
191
+    'info_administrateur' => 'Xestión',
192
+    'info_administrateur_1' => 'Xestión',
193
+    'info_administrateur_2' => 'de la web (<i>úsalo con cuidáu</i>)',
194
+    'info_administrateur_site_01' => 'Si tas nel equipu de xestión,',
195
+    'info_administrateur_site_02' => 'pica n’esti enllaz',
196
+    'info_administrateurs' => 'Alministradores',
197
+    'info_administrer_rubrique' => 'Puedes alministrar esta estaya',
198
+    'info_adresse' => 'a les señes:',
199
+    'info_adresse_url' => 'Direición (URL) del sitiu públicu',
200
+    'info_aide_en_ligne' => 'Aida en llinia de SPIP',
201
+    'info_ajout_image' => 'Cuando amestes imáxenes como documentos axuntaos a un artículu,
202 202
   SPIP puede crear por tí, automáticamente, viñetes (miniatures) de les
203 203
   imáxenes inxertaes. Esto permite por exemplu crear
204 204
   automáticamente una galería o un álbum.',
205
-	'info_ajouter_rubrique' => 'Amestar otra estaya pa alministrar:',
206
-	'info_annonce_nouveautes' => 'Anunciu de les novedáes',
207
-	'info_article' => 'artículu',
208
-	'info_article_2' => 'artículos',
209
-	'info_article_a_paraitre' => 'Los artículos que apaecerán en feches futures',
210
-	'info_articles_02' => 'artículos',
211
-	'info_articles_2' => 'Artículos',
212
-	'info_articles_auteur' => 'Los artículos d’esti autor',
213
-	'info_articles_trouves' => 'Artículos alcontraos',
214
-	'info_attente_validation' => 'Los tos artículos esperando validación',
215
-	'info_aucun_article' => 'Dengún artículu',
216
-	'info_aucun_auteur' => 'Dengún autor',
217
-	'info_aucun_message' => 'Dengún mensaxe',
218
-	'info_aucun_rubrique' => 'Denguna seición', # MODIF
219
-	'info_aujourdhui' => 'güei:',
220
-	'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', # MODIF
221
-	'info_auteurs' => 'Los autores',
222
-	'info_auteurs_par_tri' => 'Autores@partri@',
223
-	'info_auteurs_trouves' => 'Autores alcontráos',
224
-	'info_authentification_externe' => 'Autentificación esterna',
225
-	'info_avertissement' => 'Avisu',
226
-	'info_barre_outils' => 'cola so barra de ferramientes?',
227
-	'info_base_installee' => 'L’armazón de la base de datos ta instalada.',
228
-	'info_chapeau' => 'Cabecera',
229
-	'info_chapeau_2' => 'Cabecera:',
230
-	'info_chemin_acces_1' => 'Opciones: <b>Camín d’accesu na guía</b>',
231
-	'info_chemin_acces_2' => 'Agora debes configurar el camín d’accesu a la información de la guía. Esta información ye indispensable pa lleer los perfiles d’usuariu guardáos na guía.',
232
-	'info_chemin_acces_annuaire' => 'Opciones: <b>Camín d’accesu na guía</b>',
233
-	'info_choix_base' => 'Tercera etapa:',
234
-	'info_classement_1' => '<sup>u</sup> en @liste@',
235
-	'info_classement_2' => '<sup>u</sup> en @liste@',
236
-	'info_code_acces' => '¡Nun escaezas los tos códigos d’accesu!',
237
-	'info_config_suivi' => 'Si estes señes corresponden a una llista de corréu, pues indicar embaxo les señes nes que pueden apuntase los participantes nel sitiu. Estes señes puen ser una URL (por exemplu la páxina d’inscripción a la llista na Rede), o unes señes d’email con un asuntu específicu (por exemplu: <tt>@adresse_suivi@?subject=subscribe</tt>):',
238
-	'info_config_suivi_explication' => 'Puedes soscribite a la llista de corréu d’esti sitiu. D’esti mou recibirás per corréu electrónicu los anuncios d’artículos y de breves propuestos pa espublizar.',
239
-	'info_confirmer_passe' => 'Confirmar esta nueva contraseña:',
240
-	'info_conflit_edition_avis_non_sauvegarde' => 'Atención, los campos siguientes camudáronse n’otra parte. Poro, les modificaciones dientro d’esos campos nun se grabaron.',
241
-	'info_conflit_edition_differences' => 'Diferencies:',
242
-	'info_conflit_edition_version_enregistree' => 'La versión grabada:',
243
-	'info_conflit_edition_votre_version' => 'La to versión:',
244
-	'info_connexion_base' => 'Preba de conexón a la base',
245
-	'info_connexion_base_donnee' => 'Conexón cola to base de datos',
246
-	'info_connexion_ldap_ok' => 'La conexón LDAP funcionó.</b><p> Puedes pasar a la etapa siguiente.</p>', # MODIF
247
-	'info_connexion_mysql' => 'La to conexón SQL',
248
-	'info_connexion_ok' => 'La conexón funcionó.',
249
-	'info_contact' => 'Contautu',
250
-	'info_contenu_articles' => 'Conteníu de los artículos',
251
-	'info_contributions' => 'Collaboraciones',
252
-	'info_creation_paragraphe' => '(Pa crear párrafos, dexa llínies vacíes ente ellos.)', # MODIF
253
-	'info_creation_rubrique' => 'Enantes que puedas escribir artículos<br />debes crear polo menos una estaya.<br />',
254
-	'info_creation_tables' => 'Creación de les tables de la base',
255
-	'info_creer_base' => '<b>Crear</b> una nueva base datos:',
256
-	'info_dans_rubrique' => 'Na estaya:',
257
-	'info_date_publication_anterieure' => 'Fecha de redaición anterior:',
258
-	'info_date_referencement' => 'FECHA DE REFERENCIACIÓN D’ESTI SITIU:',
259
-	'info_derniere_etape' => '¡Ya finamos!',
260
-	'info_descriptif' => 'Descripción:',
261
-	'info_desinstaller_plugin' => 'desanicia los datos y desactiva el plugin',
262
-	'info_discussion_cours' => 'Discutinios en cursu',
263
-	'info_ecrire_article' => 'Enantes que puedas escribir artículos, tienes que crear polo menos una estaya.',
264
-	'info_email_envoi' => 'Señes d’email d’unvíu (opcional)',
265
-	'info_email_envoi_txt' => 'Indica equí les señes a utilizar pa unviar los emails (por omisión, usense les señes del destinatariu como señes d’unvíu):',
266
-	'info_email_webmestre' => 'Señes d’email del webmaster (opcional)', # MODIF
267
-	'info_envoi_email_automatique' => 'Unvíu d’e-mails automáticu',
268
-	'info_envoyer_maintenant' => 'Unviar agora',
269
-	'info_etape_suivante' => 'Pasar a la etapa siguiente',
270
-	'info_etape_suivante_1' => 'Puedes pasar a la etapa siguiente.',
271
-	'info_etape_suivante_2' => 'Puedes pasar a la etapa siguiente.',
272
-	'info_exceptions_proxy' => 'Esceiciones pal proxy',
273
-	'info_exportation_base' => 'esportación de la base a @archive@',
274
-	'info_facilite_suivi_activite' => 'Col envís de facilitar el siguimientu de l’actividá
205
+    'info_ajouter_rubrique' => 'Amestar otra estaya pa alministrar:',
206
+    'info_annonce_nouveautes' => 'Anunciu de les novedáes',
207
+    'info_article' => 'artículu',
208
+    'info_article_2' => 'artículos',
209
+    'info_article_a_paraitre' => 'Los artículos que apaecerán en feches futures',
210
+    'info_articles_02' => 'artículos',
211
+    'info_articles_2' => 'Artículos',
212
+    'info_articles_auteur' => 'Los artículos d’esti autor',
213
+    'info_articles_trouves' => 'Artículos alcontraos',
214
+    'info_attente_validation' => 'Los tos artículos esperando validación',
215
+    'info_aucun_article' => 'Dengún artículu',
216
+    'info_aucun_auteur' => 'Dengún autor',
217
+    'info_aucun_message' => 'Dengún mensaxe',
218
+    'info_aucun_rubrique' => 'Denguna seición', # MODIF
219
+    'info_aujourdhui' => 'güei:',
220
+    'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', # MODIF
221
+    'info_auteurs' => 'Los autores',
222
+    'info_auteurs_par_tri' => 'Autores@partri@',
223
+    'info_auteurs_trouves' => 'Autores alcontráos',
224
+    'info_authentification_externe' => 'Autentificación esterna',
225
+    'info_avertissement' => 'Avisu',
226
+    'info_barre_outils' => 'cola so barra de ferramientes?',
227
+    'info_base_installee' => 'L’armazón de la base de datos ta instalada.',
228
+    'info_chapeau' => 'Cabecera',
229
+    'info_chapeau_2' => 'Cabecera:',
230
+    'info_chemin_acces_1' => 'Opciones: <b>Camín d’accesu na guía</b>',
231
+    'info_chemin_acces_2' => 'Agora debes configurar el camín d’accesu a la información de la guía. Esta información ye indispensable pa lleer los perfiles d’usuariu guardáos na guía.',
232
+    'info_chemin_acces_annuaire' => 'Opciones: <b>Camín d’accesu na guía</b>',
233
+    'info_choix_base' => 'Tercera etapa:',
234
+    'info_classement_1' => '<sup>u</sup> en @liste@',
235
+    'info_classement_2' => '<sup>u</sup> en @liste@',
236
+    'info_code_acces' => '¡Nun escaezas los tos códigos d’accesu!',
237
+    'info_config_suivi' => 'Si estes señes corresponden a una llista de corréu, pues indicar embaxo les señes nes que pueden apuntase los participantes nel sitiu. Estes señes puen ser una URL (por exemplu la páxina d’inscripción a la llista na Rede), o unes señes d’email con un asuntu específicu (por exemplu: <tt>@adresse_suivi@?subject=subscribe</tt>):',
238
+    'info_config_suivi_explication' => 'Puedes soscribite a la llista de corréu d’esti sitiu. D’esti mou recibirás per corréu electrónicu los anuncios d’artículos y de breves propuestos pa espublizar.',
239
+    'info_confirmer_passe' => 'Confirmar esta nueva contraseña:',
240
+    'info_conflit_edition_avis_non_sauvegarde' => 'Atención, los campos siguientes camudáronse n’otra parte. Poro, les modificaciones dientro d’esos campos nun se grabaron.',
241
+    'info_conflit_edition_differences' => 'Diferencies:',
242
+    'info_conflit_edition_version_enregistree' => 'La versión grabada:',
243
+    'info_conflit_edition_votre_version' => 'La to versión:',
244
+    'info_connexion_base' => 'Preba de conexón a la base',
245
+    'info_connexion_base_donnee' => 'Conexón cola to base de datos',
246
+    'info_connexion_ldap_ok' => 'La conexón LDAP funcionó.</b><p> Puedes pasar a la etapa siguiente.</p>', # MODIF
247
+    'info_connexion_mysql' => 'La to conexón SQL',
248
+    'info_connexion_ok' => 'La conexón funcionó.',
249
+    'info_contact' => 'Contautu',
250
+    'info_contenu_articles' => 'Conteníu de los artículos',
251
+    'info_contributions' => 'Collaboraciones',
252
+    'info_creation_paragraphe' => '(Pa crear párrafos, dexa llínies vacíes ente ellos.)', # MODIF
253
+    'info_creation_rubrique' => 'Enantes que puedas escribir artículos<br />debes crear polo menos una estaya.<br />',
254
+    'info_creation_tables' => 'Creación de les tables de la base',
255
+    'info_creer_base' => '<b>Crear</b> una nueva base datos:',
256
+    'info_dans_rubrique' => 'Na estaya:',
257
+    'info_date_publication_anterieure' => 'Fecha de redaición anterior:',
258
+    'info_date_referencement' => 'FECHA DE REFERENCIACIÓN D’ESTI SITIU:',
259
+    'info_derniere_etape' => '¡Ya finamos!',
260
+    'info_descriptif' => 'Descripción:',
261
+    'info_desinstaller_plugin' => 'desanicia los datos y desactiva el plugin',
262
+    'info_discussion_cours' => 'Discutinios en cursu',
263
+    'info_ecrire_article' => 'Enantes que puedas escribir artículos, tienes que crear polo menos una estaya.',
264
+    'info_email_envoi' => 'Señes d’email d’unvíu (opcional)',
265
+    'info_email_envoi_txt' => 'Indica equí les señes a utilizar pa unviar los emails (por omisión, usense les señes del destinatariu como señes d’unvíu):',
266
+    'info_email_webmestre' => 'Señes d’email del webmaster (opcional)', # MODIF
267
+    'info_envoi_email_automatique' => 'Unvíu d’e-mails automáticu',
268
+    'info_envoyer_maintenant' => 'Unviar agora',
269
+    'info_etape_suivante' => 'Pasar a la etapa siguiente',
270
+    'info_etape_suivante_1' => 'Puedes pasar a la etapa siguiente.',
271
+    'info_etape_suivante_2' => 'Puedes pasar a la etapa siguiente.',
272
+    'info_exceptions_proxy' => 'Esceiciones pal proxy',
273
+    'info_exportation_base' => 'esportación de la base a @archive@',
274
+    'info_facilite_suivi_activite' => 'Col envís de facilitar el siguimientu de l’actividá
275 275
   editorial del sitiu, SPIP pue comunicar por e-mail, por exemplu
276 276
   a una llista de corréu de redactores, l’anunciu de les propuestes de
277 277
   publicación y les validaciones d’artículos.', # MODIF
278
-	'info_fichiers_authent' => 'Archivos d’autentificación «.htpasswd»',
279
-	'info_forums_abo_invites' => 'Esti sitiu tien foros pa abonaos; poro a los visiteurs se-yos encamienta que se rexistren nel sitiu públicu.',
280
-	'info_gauche_admin_tech' => '<b>Esta páxina namái ye accesible pa los responsables del sitiu.</b><p> Equí ta l’accesu a les diferentes
278
+    'info_fichiers_authent' => 'Archivos d’autentificación «.htpasswd»',
279
+    'info_forums_abo_invites' => 'Esti sitiu tien foros pa abonaos; poro a los visiteurs se-yos encamienta que se rexistren nel sitiu públicu.',
280
+    'info_gauche_admin_tech' => '<b>Esta páxina namái ye accesible pa los responsables del sitiu.</b><p> Equí ta l’accesu a les diferentes
281 281
 funciones de mantenimientu téunicu. Delles llancen un procesu d’identificación específicu, pal que
282 282
 fai falta tener accesu per FTP al sirvidor del sitiu Web.</p>',
283
-	'info_gauche_admin_vider' => '<b>Esta páxina namái ye accesible pa los responsables del sitiu.</b><p> Equí ta l’accesu a les diferentes
283
+    'info_gauche_admin_vider' => '<b>Esta páxina namái ye accesible pa los responsables del sitiu.</b><p> Equí ta l’accesu a les diferentes
284 284
 funciones de mantenimientu téunicu. Delles llancen un procesu d’identificación específicu, pal que
285 285
 fai falta tener accesu per FTP al sirvidor del sitiu Web.</p>',
286
-	'info_gauche_auteurs' => 'Equí s’alcuentren tolos autores del sitiu.
286
+    'info_gauche_auteurs' => 'Equí s’alcuentren tolos autores del sitiu.
287 287
  El so estatutu vien indicáu pola color de l’iconu (alministrador = verde; redactor = mariellu).',
288
-	'info_gauche_auteurs_exterieurs' => 'Los autores esternos, ensin accesu al sitiu, vienen indicaos con un iconu azul;
288
+    'info_gauche_auteurs_exterieurs' => 'Los autores esternos, ensin accesu al sitiu, vienen indicaos con un iconu azul;
289 289
   los autores esborráos con un calderu de basoria.', # MODIF
290
-	'info_gauche_messagerie' => 'La mensaxería permite mandase mensaxes ente redactores, conservar recordatorioss (pa usu personal) o amosar anuncies na páxina principal de l’espaciu priváu (si yes alministrador).',
291
-	'info_gauche_statistiques_referers' => 'Esta páxina presenta la llista de los <i>referers</i>, que son sitios que contienen enllaces que apunten pa esti mesmu sitiu, namái d’ayeri y de güei; esta llista ponse a cero cada 24 hores.',
292
-	'info_gauche_visiteurs_enregistres' => 'Equí alcontrarás los visitantes rexistraes
290
+    'info_gauche_messagerie' => 'La mensaxería permite mandase mensaxes ente redactores, conservar recordatorioss (pa usu personal) o amosar anuncies na páxina principal de l’espaciu priváu (si yes alministrador).',
291
+    'info_gauche_statistiques_referers' => 'Esta páxina presenta la llista de los <i>referers</i>, que son sitios que contienen enllaces que apunten pa esti mesmu sitiu, namái d’ayeri y de güei; esta llista ponse a cero cada 24 hores.',
292
+    'info_gauche_visiteurs_enregistres' => 'Equí alcontrarás los visitantes rexistraes
293 293
  nel espaciu públicu del sitiu (foros pa abonaos).',
294
-	'info_generation_miniatures_images' => 'Xeneración d’imaxes amenorgáes',
295
-	'info_hebergeur_desactiver_envoi_email' => 'Dellos agospiamientos encaboxen l’unvíu automáticu de
294
+    'info_generation_miniatures_images' => 'Xeneración d’imaxes amenorgáes',
295
+    'info_hebergeur_desactiver_envoi_email' => 'Dellos agospiamientos encaboxen l’unvíu automáticu de
296 296
   correos dende los sos sirvidores. Nesti casu, les siguientes
297 297
   carauterístiques de SPIP nun funcionarán.',
298
-	'info_hier' => 'ayeri:',
299
-	'info_identification_publique' => 'La to identidá pública...',
300
-	'info_image_process' => 'Has d’escoyer el meyor métodu de fabricación de les viñetes calcando enriba de la imaxe correspondiente.',
301
-	'info_images_auto' => 'Imaxes calculáes automáticamente',
302
-	'info_informations_personnelles' => 'Información personal',
303
-	'info_inscription_automatique' => 'Inscripción automática de redactores nuevos',
304
-	'info_jeu_caractere' => 'Xuegu de carauteres del sitiu',
305
-	'info_jours' => 'díes',
306
-	'info_laisser_champs_vides' => 'dexar estos campos vacíos)',
307
-	'info_langues' => 'Idiomes del sitiu',
308
-	'info_ldap_ok' => 'L’autentificación LDAP ta instalada.',
309
-	'info_lien_hypertexte' => 'Enllace d’hipertestu:',
310
-	'info_liste_redacteurs_connectes' => 'Llista de los redactores conectáos',
311
-	'info_login_existant' => 'Esti nome ya esiste.',
312
-	'info_login_trop_court' => 'El nome ye mui curtiu.',
313
-	'info_logos' => 'Los logos',
314
-	'info_maximum' => 'másimu:',
315
-	'info_meme_rubrique' => 'Na mesma estaya',
316
-	'info_message_en_redaction' => 'Los tos mensaxes en cursu de redacción',
317
-	'info_message_technique' => 'Mensaxe téunicu:',
318
-	'info_messagerie_interne' => 'Mensaxería interna',
319
-	'info_mise_a_niveau_base' => 'axuste de la base de datos SQL',
320
-	'info_mise_a_niveau_base_2' => '{{¡Atención!}} Instalasti una versión de los
298
+    'info_hier' => 'ayeri:',
299
+    'info_identification_publique' => 'La to identidá pública...',
300
+    'info_image_process' => 'Has d’escoyer el meyor métodu de fabricación de les viñetes calcando enriba de la imaxe correspondiente.',
301
+    'info_images_auto' => 'Imaxes calculáes automáticamente',
302
+    'info_informations_personnelles' => 'Información personal',
303
+    'info_inscription_automatique' => 'Inscripción automática de redactores nuevos',
304
+    'info_jeu_caractere' => 'Xuegu de carauteres del sitiu',
305
+    'info_jours' => 'díes',
306
+    'info_laisser_champs_vides' => 'dexar estos campos vacíos)',
307
+    'info_langues' => 'Idiomes del sitiu',
308
+    'info_ldap_ok' => 'L’autentificación LDAP ta instalada.',
309
+    'info_lien_hypertexte' => 'Enllace d’hipertestu:',
310
+    'info_liste_redacteurs_connectes' => 'Llista de los redactores conectáos',
311
+    'info_login_existant' => 'Esti nome ya esiste.',
312
+    'info_login_trop_court' => 'El nome ye mui curtiu.',
313
+    'info_logos' => 'Los logos',
314
+    'info_maximum' => 'másimu:',
315
+    'info_meme_rubrique' => 'Na mesma estaya',
316
+    'info_message_en_redaction' => 'Los tos mensaxes en cursu de redacción',
317
+    'info_message_technique' => 'Mensaxe téunicu:',
318
+    'info_messagerie_interne' => 'Mensaxería interna',
319
+    'info_mise_a_niveau_base' => 'axuste de la base de datos SQL',
320
+    'info_mise_a_niveau_base_2' => '{{¡Atención!}} Instalasti una versión de los
321 321
   archivos de SPIP {anterior} a la que s’alcontraba
322 322
   enantes nesti sitiu: la base de datos puede tar
323 323
   perdida y el sitiu ya nun funcionará.<br />{{Reinstala los
324 324
   archivos de SPIP.}}',
325
-	'info_modifier_auteur' => 'Modificar l’autor:',
326
-	'info_modifier_rubrique' => 'Modificar la estaya:',
327
-	'info_modifier_titre' => 'Modificar: @titre@',
328
-	'info_mon_site_spip' => 'El mio sitiu SPIP',
329
-	'info_moyenne' => 'media:',
330
-	'info_multi_cet_article' => 'Llingua d’esti artículu:',
331
-	'info_multi_langues_choisies' => 'Seleiciona de siguío les llingües disponibles pa los redactores del sitiu Web.
325
+    'info_modifier_auteur' => 'Modificar l’autor:',
326
+    'info_modifier_rubrique' => 'Modificar la estaya:',
327
+    'info_modifier_titre' => 'Modificar: @titre@',
328
+    'info_mon_site_spip' => 'El mio sitiu SPIP',
329
+    'info_moyenne' => 'media:',
330
+    'info_multi_cet_article' => 'Llingua d’esti artículu:',
331
+    'info_multi_langues_choisies' => 'Seleiciona de siguío les llingües disponibles pa los redactores del sitiu Web.
332 332
   Les llingües que ya tan usándose nel sitiu (amosaes en primer llugar) nun puen desactivase.',
333
-	'info_multi_secteurs' => '... ¿sólamente pa les estayes allugáes na raiz?',
334
-	'info_nb_articles' => '@nb@ artículos',
335
-	'info_nb_auteurs' => '@nb@ autores',
336
-	'info_nb_messages' => '@nb@ mensaxes',
337
-	'info_nb_mots_cles' => '@nb@ pallabres-clave',
338
-	'info_nb_rubriques' => '@nb@ seiciones',
339
-	'info_nb_visiteurs' => '@nb@ visitantes',
340
-	'info_nom' => 'Nome',
341
-	'info_nom_destinataire' => 'Nome del destinatariu',
342
-	'info_nom_site' => 'Nome del to sitiu',
343
-	'info_nombre_articles' => '@nb_articles@ artículos,',
344
-	'info_nombre_rubriques' => '@nb_rubriques@ estayes,',
345
-	'info_nombre_sites' => '@nb_sites@ sitios web,',
346
-	'info_non_deplacer' => 'Nun desplazar...',
347
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP pue unviar, regularmente, l’anunciu de les caberes novedaes del sitiu
333
+    'info_multi_secteurs' => '... ¿sólamente pa les estayes allugáes na raiz?',
334
+    'info_nb_articles' => '@nb@ artículos',
335
+    'info_nb_auteurs' => '@nb@ autores',
336
+    'info_nb_messages' => '@nb@ mensaxes',
337
+    'info_nb_mots_cles' => '@nb@ pallabres-clave',
338
+    'info_nb_rubriques' => '@nb@ seiciones',
339
+    'info_nb_visiteurs' => '@nb@ visitantes',
340
+    'info_nom' => 'Nome',
341
+    'info_nom_destinataire' => 'Nome del destinatariu',
342
+    'info_nom_site' => 'Nome del to sitiu',
343
+    'info_nombre_articles' => '@nb_articles@ artículos,',
344
+    'info_nombre_rubriques' => '@nb_rubriques@ estayes,',
345
+    'info_nombre_sites' => '@nb_sites@ sitios web,',
346
+    'info_non_deplacer' => 'Nun desplazar...',
347
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP pue unviar, regularmente, l’anunciu de les caberes novedaes del sitiu
348 348
   (artículos y breves espublizaos apocayá).',
349
-	'info_non_envoi_liste_nouveautes' => 'Nun mandar la llista de les novedáes',
350
-	'info_non_modifiable' => 'nun pue camudase',
351
-	'info_non_suppression_mot_cle' => 'nun quiero desaniciar esta pallabra-clave.',
352
-	'info_notes' => 'Notes',
353
-	'info_nouvel_article' => 'Artículu nuevu',
354
-	'info_nouvelle_traduction' => 'Traducción nueva:',
355
-	'info_numero_article' => 'ARTÍCULU NÚMBERU:',
356
-	'info_obligatoire_02' => '[Obligatorio]', # MODIF
357
-	'info_option_accepter_visiteurs' => 'Aceptar la inscripción de visitantes del sitiu públicu',
358
-	'info_option_ne_pas_accepter_visiteurs' => 'Refugar la inscripción de los visitantes',
359
-	'info_options_avancees' => 'OPCIONES AVANZÁES',
360
-	'info_ou' => 'o...',
361
-	'info_page_interdite' => 'Páxina torgada',
362
-	'info_par_nom' => 'pol nome',
363
-	'info_par_nombre_article' => 'pol númberu d’artículos',
364
-	'info_par_statut' => 'pol cargu',
365
-	'info_par_tri' => '’(por @tri@)’',
366
-	'info_passe_trop_court' => 'La contraseña ye mui curtia.',
367
-	'info_passes_identiques' => 'Les dos contraseñes nun concasen.',
368
-	'info_plus_cinq_car' => 'más de 5 carauteres',
369
-	'info_plus_cinq_car_2' => '(Más de 5 carauteres)',
370
-	'info_plus_trois_car' => '(Más de 3 carauteres)',
371
-	'info_popularite' => 'popularidá: @popularite@; visites: @visites@',
372
-	'info_post_scriptum' => 'Post Scríptum',
373
-	'info_post_scriptum_2' => 'Post Scríptum:',
374
-	'info_pour' => 'pa',
375
-	'info_preview_texte' => 'Ye posible previsualizar el sitiu como si tolos artículos y les breves (que tengan polo menos l’estatutu «propuestu») tuvieren espublizaos. ¿Esta posibilidá tien que tar abierta pa los alministradores namái, pa tolos redactores, o pa naide?', # MODIF
376
-	'info_procedez_par_etape' => 'sigue pasu ente pasu',
377
-	'info_procedure_maj_version' => 'hai que llanzar el procesu d’actualización a la fin d’adautar
349
+    'info_non_envoi_liste_nouveautes' => 'Nun mandar la llista de les novedáes',
350
+    'info_non_modifiable' => 'nun pue camudase',
351
+    'info_non_suppression_mot_cle' => 'nun quiero desaniciar esta pallabra-clave.',
352
+    'info_notes' => 'Notes',
353
+    'info_nouvel_article' => 'Artículu nuevu',
354
+    'info_nouvelle_traduction' => 'Traducción nueva:',
355
+    'info_numero_article' => 'ARTÍCULU NÚMBERU:',
356
+    'info_obligatoire_02' => '[Obligatorio]', # MODIF
357
+    'info_option_accepter_visiteurs' => 'Aceptar la inscripción de visitantes del sitiu públicu',
358
+    'info_option_ne_pas_accepter_visiteurs' => 'Refugar la inscripción de los visitantes',
359
+    'info_options_avancees' => 'OPCIONES AVANZÁES',
360
+    'info_ou' => 'o...',
361
+    'info_page_interdite' => 'Páxina torgada',
362
+    'info_par_nom' => 'pol nome',
363
+    'info_par_nombre_article' => 'pol númberu d’artículos',
364
+    'info_par_statut' => 'pol cargu',
365
+    'info_par_tri' => '’(por @tri@)’',
366
+    'info_passe_trop_court' => 'La contraseña ye mui curtia.',
367
+    'info_passes_identiques' => 'Les dos contraseñes nun concasen.',
368
+    'info_plus_cinq_car' => 'más de 5 carauteres',
369
+    'info_plus_cinq_car_2' => '(Más de 5 carauteres)',
370
+    'info_plus_trois_car' => '(Más de 3 carauteres)',
371
+    'info_popularite' => 'popularidá: @popularite@; visites: @visites@',
372
+    'info_post_scriptum' => 'Post Scríptum',
373
+    'info_post_scriptum_2' => 'Post Scríptum:',
374
+    'info_pour' => 'pa',
375
+    'info_preview_texte' => 'Ye posible previsualizar el sitiu como si tolos artículos y les breves (que tengan polo menos l’estatutu «propuestu») tuvieren espublizaos. ¿Esta posibilidá tien que tar abierta pa los alministradores namái, pa tolos redactores, o pa naide?', # MODIF
376
+    'info_procedez_par_etape' => 'sigue pasu ente pasu',
377
+    'info_procedure_maj_version' => 'hai que llanzar el procesu d’actualización a la fin d’adautar
378 378
  la base de datos a la nueva versión de SPIP.',
379
-	'info_proxy_ok' => 'Preba del proxy superada.',
380
-	'info_ps' => 'P.-S.',
381
-	'info_publier' => 'espublizar',
382
-	'info_publies' => 'Los tos artículos espublizáos en llinia',
383
-	'info_question_accepter_visiteurs' => 'Si les cadarmes d’esti sitiu prevén el rexistru de visitantes ensin accesu a l’espaciu priváu, has d’activar la opción d’embaxo:',
384
-	'info_question_inscription_nouveaux_redacteurs' => '¿Aceutes les inscripciones de nuevos redactores dende’l
379
+    'info_proxy_ok' => 'Preba del proxy superada.',
380
+    'info_ps' => 'P.-S.',
381
+    'info_publier' => 'espublizar',
382
+    'info_publies' => 'Los tos artículos espublizáos en llinia',
383
+    'info_question_accepter_visiteurs' => 'Si les cadarmes d’esti sitiu prevén el rexistru de visitantes ensin accesu a l’espaciu priváu, has d’activar la opción d’embaxo:',
384
+    'info_question_inscription_nouveaux_redacteurs' => '¿Aceutes les inscripciones de nuevos redactores dende’l
385 385
   sitiu públicu? Si aceutes, los visitantes podrán inscribise
386 386
   dende un formulariu automatizáu y tendrán accesu a l’espaciu priváu pa
387 387
   proponer artículos propios. <blockquote><i>Tres de la fase d’inscripción,
@@ -390,310 +390,310 @@  discard block
 block discarded – undo
390 390
   agospiadores desactiven l’unvíu d’e-mails dende los sos
391 391
   sirvidores: nesti casu, la inscripción automática ye
392 392
   imposible.</i></blockquote>', # MODIF
393
-	'info_racine_site' => 'Raiz del sitiu',
394
-	'info_recharger_page' => 'Ties que recargar esta páxina nunos instantes.',
395
-	'info_recherche_auteur_zero' => 'Nun hai resultaos pa «@cherche_auteur@».',
396
-	'info_recommencer' => 'Vuelve a entamar',
397
-	'info_redacteur_1' => 'Redactor',
398
-	'info_redacteur_2' => 'con accesu a l’espaciu priváu (<i>encamentao</i>)',
399
-	'info_redacteurs' => 'Redactores',
400
-	'info_redaction_en_cours' => 'EN CURSU DE REDAICIÓN',
401
-	'info_redirection' => 'Redireición',
402
-	'info_refuses' => 'Los tos artículos refugáos',
403
-	'info_reglage_ldap' => 'Opciones: <b>Axuste de la importación LDAP</b>',
404
-	'info_renvoi_article' => '<b>Redireición.</b> Esti artículu reunvía a la páxina:',
405
-	'info_reserve_admin' => 'Namái los alministradores puen camudar estes señes.',
406
-	'info_restreindre_rubrique' => 'Llendar la xestión a la estaya:',
407
-	'info_resultat_recherche' => 'Resultaos de la gueta:',
408
-	'info_rubriques' => 'Estayes',
409
-	'info_rubriques_02' => 'estayes',
410
-	'info_rubriques_trouvees' => 'Estayes alcontráes',
411
-	'info_sans_titre' => 'Ensin títulu',
412
-	'info_selection_chemin_acces' => '<b>Seleiciona</b> de siguío el camín d’accesu a la guía:',
413
-	'info_signatures' => 'robles',
414
-	'info_site' => 'Sitiu',
415
-	'info_site_2' => 'sitiu:',
416
-	'info_site_min' => 'sitiu Web',
417
-	'info_site_reference_2' => 'Sitiu referenciau',
418
-	'info_site_web' => 'SITIU WEB:', # MODIF
419
-	'info_sites' => 'sitios',
420
-	'info_sites_lies_mot' => 'Los sitios referenciaos enllazaos con esta pallabra-clave',
421
-	'info_sites_proxy' => 'Utilizar un proxy',
422
-	'info_sites_trouves' => 'Sitios alcontraos',
423
-	'info_sous_titre' => 'Subtítulu:',
424
-	'info_statut_administrateur' => 'Alministrador',
425
-	'info_statut_auteur' => 'Estatutu d’esti autor:',
426
-	'info_statut_auteur_a_confirmer' => 'Inscripción por confirmar',
427
-	'info_statut_auteur_autre' => 'Otru estatutu:',
428
-	'info_statut_redacteur' => 'Redactor',
429
-	'info_statut_utilisateurs_1' => 'Estatutu por omisión de los usuarios importaos',
430
-	'info_statut_utilisateurs_2' => 'Escueye l’estatutu que se-yos da a les persones presentes na guía LDAP cuando se conecten la primera vegada. Lluéu podrás camudar esti valor pa caún de los autores casu per casu.',
431
-	'info_suivi_activite' => 'Siguimientu de l’actividá editorial',
432
-	'info_surtitre' => 'Antetítulu:',
433
-	'info_syndication_integrale_1' => 'Esti sitiu ufre archivos de sindicación (ver «<a href="@url@">@titre@</a>»).',
434
-	'info_syndication_integrale_2' => '¿Quies tresmitir los artículos ensembre, o nun esparder nás que un resume con dellos cientos de carauteres?',
435
-	'info_table_prefix' => 'Pues cambear el prefixu del nome de les tables de datos (esto ye necesario dafechu si se quier instalar dellos sitios na mesma base de datos). Esti prefixu escríbese en lletres minúscules, ensin acentos, y ensin espacios.',
436
-	'info_taille_maximale_images' => 'SPIP va comprebar el tamañu másimu de les imaxes que pue remanar (en millones de pixels).<br /> Les imaxes más grandes nun van reducise.',
437
-	'info_taille_maximale_vignette' => 'Tamañu másimu de les viñetes xeneráes pol sistema:',
438
-	'info_terminer_installation' => 'Agora pues finar el procesu d’instalación estándar.',
439
-	'info_texte' => 'Testu',
440
-	'info_texte_explicatif' => 'Testu explicativu',
441
-	'info_texte_long' => '(el testu ye llargu: poro apaez en delles partes que volverán a amestase tres de la validación.)',
442
-	'info_texte_message' => 'Testu del to mensaxe:', # MODIF
443
-	'info_texte_message_02' => 'Testu del mensaxe',
444
-	'info_titre' => 'Títulu:',
445
-	'info_total' => 'total:',
446
-	'info_tous_articles_en_redaction' => 'Tolos artículos en cursu de redaición',
447
-	'info_tous_articles_presents' => 'Tolos artículos espublizaos nesta estaya',
448
-	'info_tous_articles_refuses' => 'Tolos artículos refugaos',
449
-	'info_tous_les' => 'tolos:',
450
-	'info_tout_site' => 'Tou el sitiu',
451
-	'info_tout_site2' => 'L’artículu nun ta traducíu a esta llingua.',
452
-	'info_tout_site3' => 'L’artículu ta traducíu a esta llingua, pero después amestáronse modificaciones a l’artículu de referencia. La traducción tien que ponese al día.',
453
-	'info_tout_site4' => 'L’artículu ta traducíu a esta llingua, y la traducción ta actualizada.',
454
-	'info_tout_site5' => 'Artículu orixinal.',
455
-	'info_tout_site6' => '<b>Atención :</b> sólo se amuesen los artículos orixinales.
393
+    'info_racine_site' => 'Raiz del sitiu',
394
+    'info_recharger_page' => 'Ties que recargar esta páxina nunos instantes.',
395
+    'info_recherche_auteur_zero' => 'Nun hai resultaos pa «@cherche_auteur@».',
396
+    'info_recommencer' => 'Vuelve a entamar',
397
+    'info_redacteur_1' => 'Redactor',
398
+    'info_redacteur_2' => 'con accesu a l’espaciu priváu (<i>encamentao</i>)',
399
+    'info_redacteurs' => 'Redactores',
400
+    'info_redaction_en_cours' => 'EN CURSU DE REDAICIÓN',
401
+    'info_redirection' => 'Redireición',
402
+    'info_refuses' => 'Los tos artículos refugáos',
403
+    'info_reglage_ldap' => 'Opciones: <b>Axuste de la importación LDAP</b>',
404
+    'info_renvoi_article' => '<b>Redireición.</b> Esti artículu reunvía a la páxina:',
405
+    'info_reserve_admin' => 'Namái los alministradores puen camudar estes señes.',
406
+    'info_restreindre_rubrique' => 'Llendar la xestión a la estaya:',
407
+    'info_resultat_recherche' => 'Resultaos de la gueta:',
408
+    'info_rubriques' => 'Estayes',
409
+    'info_rubriques_02' => 'estayes',
410
+    'info_rubriques_trouvees' => 'Estayes alcontráes',
411
+    'info_sans_titre' => 'Ensin títulu',
412
+    'info_selection_chemin_acces' => '<b>Seleiciona</b> de siguío el camín d’accesu a la guía:',
413
+    'info_signatures' => 'robles',
414
+    'info_site' => 'Sitiu',
415
+    'info_site_2' => 'sitiu:',
416
+    'info_site_min' => 'sitiu Web',
417
+    'info_site_reference_2' => 'Sitiu referenciau',
418
+    'info_site_web' => 'SITIU WEB:', # MODIF
419
+    'info_sites' => 'sitios',
420
+    'info_sites_lies_mot' => 'Los sitios referenciaos enllazaos con esta pallabra-clave',
421
+    'info_sites_proxy' => 'Utilizar un proxy',
422
+    'info_sites_trouves' => 'Sitios alcontraos',
423
+    'info_sous_titre' => 'Subtítulu:',
424
+    'info_statut_administrateur' => 'Alministrador',
425
+    'info_statut_auteur' => 'Estatutu d’esti autor:',
426
+    'info_statut_auteur_a_confirmer' => 'Inscripción por confirmar',
427
+    'info_statut_auteur_autre' => 'Otru estatutu:',
428
+    'info_statut_redacteur' => 'Redactor',
429
+    'info_statut_utilisateurs_1' => 'Estatutu por omisión de los usuarios importaos',
430
+    'info_statut_utilisateurs_2' => 'Escueye l’estatutu que se-yos da a les persones presentes na guía LDAP cuando se conecten la primera vegada. Lluéu podrás camudar esti valor pa caún de los autores casu per casu.',
431
+    'info_suivi_activite' => 'Siguimientu de l’actividá editorial',
432
+    'info_surtitre' => 'Antetítulu:',
433
+    'info_syndication_integrale_1' => 'Esti sitiu ufre archivos de sindicación (ver «<a href="@url@">@titre@</a>»).',
434
+    'info_syndication_integrale_2' => '¿Quies tresmitir los artículos ensembre, o nun esparder nás que un resume con dellos cientos de carauteres?',
435
+    'info_table_prefix' => 'Pues cambear el prefixu del nome de les tables de datos (esto ye necesario dafechu si se quier instalar dellos sitios na mesma base de datos). Esti prefixu escríbese en lletres minúscules, ensin acentos, y ensin espacios.',
436
+    'info_taille_maximale_images' => 'SPIP va comprebar el tamañu másimu de les imaxes que pue remanar (en millones de pixels).<br /> Les imaxes más grandes nun van reducise.',
437
+    'info_taille_maximale_vignette' => 'Tamañu másimu de les viñetes xeneráes pol sistema:',
438
+    'info_terminer_installation' => 'Agora pues finar el procesu d’instalación estándar.',
439
+    'info_texte' => 'Testu',
440
+    'info_texte_explicatif' => 'Testu explicativu',
441
+    'info_texte_long' => '(el testu ye llargu: poro apaez en delles partes que volverán a amestase tres de la validación.)',
442
+    'info_texte_message' => 'Testu del to mensaxe:', # MODIF
443
+    'info_texte_message_02' => 'Testu del mensaxe',
444
+    'info_titre' => 'Títulu:',
445
+    'info_total' => 'total:',
446
+    'info_tous_articles_en_redaction' => 'Tolos artículos en cursu de redaición',
447
+    'info_tous_articles_presents' => 'Tolos artículos espublizaos nesta estaya',
448
+    'info_tous_articles_refuses' => 'Tolos artículos refugaos',
449
+    'info_tous_les' => 'tolos:',
450
+    'info_tout_site' => 'Tou el sitiu',
451
+    'info_tout_site2' => 'L’artículu nun ta traducíu a esta llingua.',
452
+    'info_tout_site3' => 'L’artículu ta traducíu a esta llingua, pero después amestáronse modificaciones a l’artículu de referencia. La traducción tien que ponese al día.',
453
+    'info_tout_site4' => 'L’artículu ta traducíu a esta llingua, y la traducción ta actualizada.',
454
+    'info_tout_site5' => 'Artículu orixinal.',
455
+    'info_tout_site6' => '<b>Atención :</b> sólo se amuesen los artículos orixinales.
456 456
 Les traducciones asociense col orixinal,
457 457
 con una color que indica el estáu:',
458
-	'info_travail_colaboratif' => 'Trabayu en comuña nos artículos',
459
-	'info_un_article' => 'un artículu,',
460
-	'info_un_site' => 'un sitiu web,',
461
-	'info_une_rubrique' => 'una estaya,',
462
-	'info_une_rubrique_02' => '1 estaya',
463
-	'info_url' => 'URL:',
464
-	'info_url_proxy' => 'URL del proxy',
465
-	'info_url_test_proxy' => 'URL de pruebes',
466
-	'info_urlref' => 'Enllace d’hipertestu:',
467
-	'info_utilisation_spip' => 'Agora puedes entamar a utilizar el sistema d’espublizamientu asistíu...',
468
-	'info_visites_par_mois' => 'Amosar por meses:',
469
-	'info_visiteur_1' => 'Visitante',
470
-	'info_visiteur_2' => 'del sitiu públicu',
471
-	'info_visiteurs' => 'Visitantes',
472
-	'info_visiteurs_02' => 'Visitantes del sitiu públicu',
473
-	'info_webmestre_forces' => 'Los webmasters anguaño tan conseñaos en <tt>@file_options@</tt>.',
474
-	'install_adresse_base_hebergeur' => 'Direición de la base datos asitiada pol agospiador web',
475
-	'install_echec_annonce' => 'La instalación probablemente va fallar, o va producir un sitiu que nun funcione...',
476
-	'install_extension_mbstring' => 'SPIP nun funciona con:',
477
-	'install_extension_php_obligatoire' => 'SPIP esixe la estensión php:',
478
-	'install_login_base_hebergeur' => 'Login de conexón conseñáu pol agospiador',
479
-	'install_nom_base_hebergeur' => 'Nome de la base conseñáu pol agospiador:',
480
-	'install_pas_table' => 'La base nun tien tables actualmente',
481
-	'install_pass_base_hebergeur' => 'Contraseña de conexón conseñada pol agospiador',
482
-	'install_php_version' => 'PHP versión @version@ nun ye suficiente (minimo= @minimum@)',
483
-	'install_select_langue' => 'Escueye una llíngua y calca nel botón «siguiente» pa llanzar el procesu d’instalación.',
484
-	'install_select_type_db' => 'Indicar el tipu de base de datos:',
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' => 'Sirvidor de base de datos conseñáu pol agospiador web',
490
-	'install_table_prefix_hebergeur' => 'Prefixu de tabla conseñáu pol agospiamientu:',
491
-	'install_tables_base' => 'Tables de la base',
492
-	'install_types_db_connus' => 'SPIP sabe utilizar <b>MySQL</b> (la más estendida), <b>PostgreSQL</b> y <b>SQLite</b>.', # MODIF
493
-	'install_types_db_connus_avertissement' => 'Atención: hai dellos plugins que nun funcionen más que con MySQL', # MODIF
494
-	'intem_redacteur' => 'redactor',
495
-	'intitule_licence' => 'Llicencia',
496
-	'item_accepter_inscriptions' => 'Aceptar les inscripciones',
497
-	'item_activer_messages_avertissement' => 'Activar los mensaxes d’avisu',
498
-	'item_administrateur_2' => 'alministrador',
499
-	'item_afficher_calendrier' => 'Amosar na axenda',
500
-	'item_autoriser_syndication_integrale' => 'Difundir los artículos completos en los archivos de sindicación',
501
-	'item_choix_administrateurs' => 'los alministradores',
502
-	'item_choix_generation_miniature' => 'Xenerar automáticamente les imáxenes amenorgáes.',
503
-	'item_choix_non_generation_miniature' => 'Nun xenerar imáxenes amenorgáes.',
504
-	'item_choix_redacteurs' => 'los redactores',
505
-	'item_choix_visiteurs' => 'los visitantes del sitiu públicu',
506
-	'item_creer_fichiers_authent' => 'Crear los archivos .htpasswd',
507
-	'item_login' => 'Login',
508
-	'item_messagerie_agenda' => 'Activar la mensaxería y l’axenda',
509
-	'item_mots_cles_association_articles' => 'a los artículos',
510
-	'item_mots_cles_association_rubriques' => 'a les estayes',
511
-	'item_mots_cles_association_sites' => 'a los sitios referenciaos o sindicaos.',
512
-	'item_non' => 'Non',
513
-	'item_non_accepter_inscriptions' => 'Nun aceutar les inscripciones',
514
-	'item_non_activer_messages_avertissement' => 'Ensin mensaxes d’avisu',
515
-	'item_non_afficher_calendrier' => 'Nun amosar nel calendariu',
516
-	'item_non_autoriser_syndication_integrale' => 'Nun esparder más que un resume',
517
-	'item_non_creer_fichiers_authent' => 'Nun crear estos archivos',
518
-	'item_non_messagerie_agenda' => 'Desactivar la mensaxeria y l’axenda',
519
-	'item_non_publier_articles' => 'Nun espublizar los artículos enantes de la fecha d’espublizamientu conseñada.',
520
-	'item_nouvel_auteur' => 'Autor nuevu',
521
-	'item_nouvelle_rubrique' => 'Estaya nueva',
522
-	'item_oui' => 'Sí',
523
-	'item_publier_articles' => 'Espublizar los artículos, cualquiera que sea la fecha d’espublizamientu.',
524
-	'item_reponse_article' => 'Respuesta a l’artículu',
525
-	'item_visiteur' => 'visitante',
458
+    'info_travail_colaboratif' => 'Trabayu en comuña nos artículos',
459
+    'info_un_article' => 'un artículu,',
460
+    'info_un_site' => 'un sitiu web,',
461
+    'info_une_rubrique' => 'una estaya,',
462
+    'info_une_rubrique_02' => '1 estaya',
463
+    'info_url' => 'URL:',
464
+    'info_url_proxy' => 'URL del proxy',
465
+    'info_url_test_proxy' => 'URL de pruebes',
466
+    'info_urlref' => 'Enllace d’hipertestu:',
467
+    'info_utilisation_spip' => 'Agora puedes entamar a utilizar el sistema d’espublizamientu asistíu...',
468
+    'info_visites_par_mois' => 'Amosar por meses:',
469
+    'info_visiteur_1' => 'Visitante',
470
+    'info_visiteur_2' => 'del sitiu públicu',
471
+    'info_visiteurs' => 'Visitantes',
472
+    'info_visiteurs_02' => 'Visitantes del sitiu públicu',
473
+    'info_webmestre_forces' => 'Los webmasters anguaño tan conseñaos en <tt>@file_options@</tt>.',
474
+    'install_adresse_base_hebergeur' => 'Direición de la base datos asitiada pol agospiador web',
475
+    'install_echec_annonce' => 'La instalación probablemente va fallar, o va producir un sitiu que nun funcione...',
476
+    'install_extension_mbstring' => 'SPIP nun funciona con:',
477
+    'install_extension_php_obligatoire' => 'SPIP esixe la estensión php:',
478
+    'install_login_base_hebergeur' => 'Login de conexón conseñáu pol agospiador',
479
+    'install_nom_base_hebergeur' => 'Nome de la base conseñáu pol agospiador:',
480
+    'install_pas_table' => 'La base nun tien tables actualmente',
481
+    'install_pass_base_hebergeur' => 'Contraseña de conexón conseñada pol agospiador',
482
+    'install_php_version' => 'PHP versión @version@ nun ye suficiente (minimo= @minimum@)',
483
+    'install_select_langue' => 'Escueye una llíngua y calca nel botón «siguiente» pa llanzar el procesu d’instalación.',
484
+    'install_select_type_db' => 'Indicar el tipu de base de datos:',
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' => 'Sirvidor de base de datos conseñáu pol agospiador web',
490
+    'install_table_prefix_hebergeur' => 'Prefixu de tabla conseñáu pol agospiamientu:',
491
+    'install_tables_base' => 'Tables de la base',
492
+    'install_types_db_connus' => 'SPIP sabe utilizar <b>MySQL</b> (la más estendida), <b>PostgreSQL</b> y <b>SQLite</b>.', # MODIF
493
+    'install_types_db_connus_avertissement' => 'Atención: hai dellos plugins que nun funcionen más que con MySQL', # MODIF
494
+    'intem_redacteur' => 'redactor',
495
+    'intitule_licence' => 'Llicencia',
496
+    'item_accepter_inscriptions' => 'Aceptar les inscripciones',
497
+    'item_activer_messages_avertissement' => 'Activar los mensaxes d’avisu',
498
+    'item_administrateur_2' => 'alministrador',
499
+    'item_afficher_calendrier' => 'Amosar na axenda',
500
+    'item_autoriser_syndication_integrale' => 'Difundir los artículos completos en los archivos de sindicación',
501
+    'item_choix_administrateurs' => 'los alministradores',
502
+    'item_choix_generation_miniature' => 'Xenerar automáticamente les imáxenes amenorgáes.',
503
+    'item_choix_non_generation_miniature' => 'Nun xenerar imáxenes amenorgáes.',
504
+    'item_choix_redacteurs' => 'los redactores',
505
+    'item_choix_visiteurs' => 'los visitantes del sitiu públicu',
506
+    'item_creer_fichiers_authent' => 'Crear los archivos .htpasswd',
507
+    'item_login' => 'Login',
508
+    'item_messagerie_agenda' => 'Activar la mensaxería y l’axenda',
509
+    'item_mots_cles_association_articles' => 'a los artículos',
510
+    'item_mots_cles_association_rubriques' => 'a les estayes',
511
+    'item_mots_cles_association_sites' => 'a los sitios referenciaos o sindicaos.',
512
+    'item_non' => 'Non',
513
+    'item_non_accepter_inscriptions' => 'Nun aceutar les inscripciones',
514
+    'item_non_activer_messages_avertissement' => 'Ensin mensaxes d’avisu',
515
+    'item_non_afficher_calendrier' => 'Nun amosar nel calendariu',
516
+    'item_non_autoriser_syndication_integrale' => 'Nun esparder más que un resume',
517
+    'item_non_creer_fichiers_authent' => 'Nun crear estos archivos',
518
+    'item_non_messagerie_agenda' => 'Desactivar la mensaxeria y l’axenda',
519
+    'item_non_publier_articles' => 'Nun espublizar los artículos enantes de la fecha d’espublizamientu conseñada.',
520
+    'item_nouvel_auteur' => 'Autor nuevu',
521
+    'item_nouvelle_rubrique' => 'Estaya nueva',
522
+    'item_oui' => 'Sí',
523
+    'item_publier_articles' => 'Espublizar los artículos, cualquiera que sea la fecha d’espublizamientu.',
524
+    'item_reponse_article' => 'Respuesta a l’artículu',
525
+    'item_visiteur' => 'visitante',
526 526
 
527
-	// J
528
-	'jour_non_connu_nc' => 'n.c.',
527
+    // J
528
+    'jour_non_connu_nc' => 'n.c.',
529 529
 
530
-	// L
531
-	'label_bando_outils' => 'Barra de ferramientes',
532
-	'label_bando_outils_afficher' => 'Amosar les ferramientes',
533
-	'label_bando_outils_masquer' => 'Anubrir les ferramientes',
534
-	'label_choix_langue' => 'Escueye la to llingua',
535
-	'label_slogan_site' => 'Eslogan del sitiu',
536
-	'label_taille_ecran' => 'Tamañu de la pantalla', # MODIF
537
-	'label_texte_et_icones_navigation' => 'Menú de navegación',
538
-	'label_texte_et_icones_page' => 'Presentación na páxina',
539
-	'ldap_correspondance' => 'herencia del campu @champ@',
540
-	'ldap_correspondance_1' => 'Herencia de campos LDAP',
541
-	'ldap_correspondance_2' => 'Pa caún de los campos SPIP siguientes, conseñar el nome del campu LDAP correspondiente. Dexar balero pa nun llenalu, separtar con espacios o comes pa tentar dellos campos LDAP.',
542
-	'lien_ajouter_auteur' => 'Amestar esti autor',
543
-	'lien_email' => 'email',
544
-	'lien_nom_site' => 'NOME DEL SITIU:',
545
-	'lien_retirer_auteur' => 'Retirar l’autor',
546
-	'lien_retirer_tous_auteurs' => 'Retirar tolos autores',
547
-	'lien_site' => 'sitiu',
548
-	'lien_tout_deplier' => 'Desplegalo too',
549
-	'lien_tout_replier' => 'Replegalo too',
550
-	'lien_tout_supprimer' => 'Desanicialo too',
551
-	'lien_trier_nom' => 'Ordenar pol nome',
552
-	'lien_trier_nombre_articles' => 'Ordenar pol númberu d’artículos',
553
-	'lien_trier_statut' => 'Ordenar pol estau',
554
-	'lien_voir_en_ligne' => 'VER EN LLINIA:',
555
-	'logo_article' => 'LOGO DE L’ARTÍCULU', # MODIF
556
-	'logo_auteur' => 'LOGO DE L’AUTOR O AUTORA', # MODIF
557
-	'logo_rubrique' => 'LOGO DE LA ESTAYA', # MODIF
558
-	'logo_site' => 'LOGO D’ESTI SITIU', # MODIF
559
-	'logo_standard_rubrique' => 'LOGO ESTÁNDAR DE LES ESTAYES', # MODIF
560
-	'logo_survol' => 'LOGO AL PASAR EL MUR', # MODIF
530
+    // L
531
+    'label_bando_outils' => 'Barra de ferramientes',
532
+    'label_bando_outils_afficher' => 'Amosar les ferramientes',
533
+    'label_bando_outils_masquer' => 'Anubrir les ferramientes',
534
+    'label_choix_langue' => 'Escueye la to llingua',
535
+    'label_slogan_site' => 'Eslogan del sitiu',
536
+    'label_taille_ecran' => 'Tamañu de la pantalla', # MODIF
537
+    'label_texte_et_icones_navigation' => 'Menú de navegación',
538
+    'label_texte_et_icones_page' => 'Presentación na páxina',
539
+    'ldap_correspondance' => 'herencia del campu @champ@',
540
+    'ldap_correspondance_1' => 'Herencia de campos LDAP',
541
+    'ldap_correspondance_2' => 'Pa caún de los campos SPIP siguientes, conseñar el nome del campu LDAP correspondiente. Dexar balero pa nun llenalu, separtar con espacios o comes pa tentar dellos campos LDAP.',
542
+    'lien_ajouter_auteur' => 'Amestar esti autor',
543
+    'lien_email' => 'email',
544
+    'lien_nom_site' => 'NOME DEL SITIU:',
545
+    'lien_retirer_auteur' => 'Retirar l’autor',
546
+    'lien_retirer_tous_auteurs' => 'Retirar tolos autores',
547
+    'lien_site' => 'sitiu',
548
+    'lien_tout_deplier' => 'Desplegalo too',
549
+    'lien_tout_replier' => 'Replegalo too',
550
+    'lien_tout_supprimer' => 'Desanicialo too',
551
+    'lien_trier_nom' => 'Ordenar pol nome',
552
+    'lien_trier_nombre_articles' => 'Ordenar pol númberu d’artículos',
553
+    'lien_trier_statut' => 'Ordenar pol estau',
554
+    'lien_voir_en_ligne' => 'VER EN LLINIA:',
555
+    'logo_article' => 'LOGO DE L’ARTÍCULU', # MODIF
556
+    'logo_auteur' => 'LOGO DE L’AUTOR O AUTORA', # MODIF
557
+    'logo_rubrique' => 'LOGO DE LA ESTAYA', # MODIF
558
+    'logo_site' => 'LOGO D’ESTI SITIU', # MODIF
559
+    'logo_standard_rubrique' => 'LOGO ESTÁNDAR DE LES ESTAYES', # MODIF
560
+    'logo_survol' => 'LOGO AL PASAR EL MUR', # MODIF
561 561
 
562
-	// M
563
-	'menu_aide_installation_choix_base' => 'Escoyeta de la base',
564
-	'module_fichier_langue' => 'Ficheru de llíngua',
565
-	'module_raccourci' => 'Atayu',
566
-	'module_texte_affiche' => 'Testu amosau',
567
-	'module_texte_explicatif' => 'Pues amestar los siguientes atayos nes cadarmes del sitiu públicu. Estos van traducise automáticamente a les diferentes llingües pa les qu’esista un archivu de llingua.',
568
-	'module_texte_traduction' => 'L’archivu de llingua « @module@ » ta disponible en:',
569
-	'mois_non_connu' => 'desconocíu',
562
+    // M
563
+    'menu_aide_installation_choix_base' => 'Escoyeta de la base',
564
+    'module_fichier_langue' => 'Ficheru de llíngua',
565
+    'module_raccourci' => 'Atayu',
566
+    'module_texte_affiche' => 'Testu amosau',
567
+    'module_texte_explicatif' => 'Pues amestar los siguientes atayos nes cadarmes del sitiu públicu. Estos van traducise automáticamente a les diferentes llingües pa les qu’esista un archivu de llingua.',
568
+    'module_texte_traduction' => 'L’archivu de llingua « @module@ » ta disponible en:',
569
+    'mois_non_connu' => 'desconocíu',
570 570
 
571
-	// N
572
-	'nouvelle_version_spip' => 'Ta disponible la versión @version@ de SPIP', # MODIF
571
+    // N
572
+    'nouvelle_version_spip' => 'Ta disponible la versión @version@ de SPIP', # MODIF
573 573
 
574
-	// O
575
-	'onglet_contenu' => 'Conteníu',
576
-	'onglet_declarer_une_autre_base' => 'Declarar otra base',
577
-	'onglet_discuter' => 'Discutiniu',
578
-	'onglet_interactivite' => 'Interactividá',
579
-	'onglet_proprietes' => 'Propiedáes',
580
-	'onglet_repartition_actuelle' => 'actualmente',
581
-	'onglet_sous_rubriques' => 'So-estayes',
574
+    // O
575
+    'onglet_contenu' => 'Conteníu',
576
+    'onglet_declarer_une_autre_base' => 'Declarar otra base',
577
+    'onglet_discuter' => 'Discutiniu',
578
+    'onglet_interactivite' => 'Interactividá',
579
+    'onglet_proprietes' => 'Propiedáes',
580
+    'onglet_repartition_actuelle' => 'actualmente',
581
+    'onglet_sous_rubriques' => 'So-estayes',
582 582
 
583
-	// P
584
-	'page_pas_proxy' => 'Esta páxina nun debe pasar pol proxy',
585
-	'pas_de_proxy_pour' => 'Si fai falta, indica les máquines o dominios pa los que esti proxy nun debe aplicase (por exemplu: @exemple@)',
586
-	'plugin_charge_paquet' => 'Carga del paquete @name@',
587
-	'plugin_charger' => 'Descargar',
588
-	'plugin_erreur_charger' => 'fallu: nun ye posible cargar @zip@',
589
-	'plugin_erreur_droit1' => 'El direutoriu <code>@dest@</code> nun ye accesible pa escritura.',
590
-	'plugin_erreur_droit2' => 'Verifica los permisos d’esti direutoriu (o créalu si ye’l casu), o instala los archivos per FTP.',
591
-	'plugin_erreur_zip' => 'falló pclzip col mensaxe: @status@',
592
-	'plugin_etat_developpement' => 'en desarrollu',
593
-	'plugin_etat_experimental' => 'esperimental',
594
-	'plugin_etat_stable' => 'estable',
595
-	'plugin_etat_test' => 'en prebes',
596
-	'plugin_impossible_activer' => 'Nun ye posible activar el plugin @plugin@',
597
-	'plugin_info_automatique1' => 'Si se quier autorizar la instalación automática de los plugins, hai que:',
598
-	'plugin_info_automatique1_lib' => 'Si quies autorizar la instalación automática d’esta biblioteca, necesites:',
599
-	'plugin_info_automatique2' => 'crear un direutoriu <code>@rep@</code> ;',
600
-	'plugin_info_automatique3' => 'verificar que’l sirvidor tenga permisos pa escribir nesi direutoriu.',
601
-	'plugin_info_automatique_creer' => 'que hai que crear na raiz del sitiu.',
602
-	'plugin_info_automatique_exemples' => 'exemplos:',
603
-	'plugin_info_automatique_ftp' => 'Puedes instalar plugins, per FTP, nel direutoriu <tt>@rep@</tt>',
604
-	'plugin_info_automatique_lib' => 'Dellos plugins necesiten también permisu pa descargar archivos nel direutoriu <code>lib/</code>, a crear si ye’l casu na raiz del sitiu.',
605
-	'plugin_info_automatique_liste' => 'Les tos llistes de plugins:',
606
-	'plugin_info_automatique_liste_officielle' => 'los plugins oficiales',
607
-	'plugin_info_automatique_liste_update' => 'Actualizar les llistes',
608
-	'plugin_info_automatique_ou' => 'o...',
609
-	'plugin_info_automatique_select' => 'Seleiciona un plugin d’embaxo: SPIP va descargalu y anicialu nel direutoriu <code>@rep@</code> ; si el plugin ya esiste, pondrase al día.',
610
-	'plugin_info_plugins_dist_1' => 'Les estensiones darréu se carguen y s’activen nel direutoriu @plugins_dist@.', # MODIF
611
-	'plugin_info_plugins_dist_2' => 'Estes nun pueden desactivase.', # MODIF
612
-	'plugin_info_telecharger' => 'a descargar de @url@ y a instalar en @rep@',
613
-	'plugin_librairies_installees' => 'Llibreríes instaláes',
614
-	'plugin_necessite_lib' => 'Esti plugin necesita la llibrería @lib@',
615
-	'plugin_necessite_plugin' => 'Necesita el plugin @plugin@ en versión @version@ mínimo.', # MODIF
616
-	'plugin_necessite_spip' => 'Necesita SPIP en versión @version@ mínimo.',
617
-	'plugin_source' => 'fonte: ',
618
-	'plugin_titre_automatique' => 'Instalación automática',
619
-	'plugin_titre_automatique_ajouter' => 'Amestar plugins',
620
-	'plugin_titre_installation' => 'Instalación del complementu @plugin@',
621
-	'plugin_zip_active' => 'Continúa pa activalu',
622
-	'plugin_zip_adresse' => 'indica embaxo les señes d’un archivu zip de plugin a descargar, o mesmo les señes d’una llista de plugins.',
623
-	'plugin_zip_adresse_champ' => 'Señes del plugin o de la llista ',
624
-	'plugin_zip_content' => 'Contien los archivos siguientes (@taille@),<br />preparaos pa instalase nel direutoriu <code>@rep@</code>',
625
-	'plugin_zip_installe_finie' => 'L’archivu @zip@ descomprimiose y quedó instalau.',
626
-	'plugin_zip_installe_rep_finie' => 'L’archivu @zip@ descomprimiose y quedó instalau nel direutoriu @rep@',
627
-	'plugin_zip_installer' => 'Pues instalalu agora.',
628
-	'plugin_zip_telecharge' => 'Descargose l’archivu @zip@',
629
-	'plugins_actif_aucun' => 'Dengún complementu activáu.',
630
-	'plugins_actif_un' => 'Un complementu activáu.',
631
-	'plugins_actifs' => '@count@ plugins activaos.',
632
-	'plugins_actifs_liste' => 'Complementos activos', # MODIF
633
-	'plugins_compte' => '@count@ plugins',
634
-	'plugins_disponible_un' => 'Un complementu disponible.',
635
-	'plugins_disponibles' => '@count@ plugins disponibles.',
636
-	'plugins_erreur' => 'Error nos plugins: @plugins@',
637
-	'plugins_liste' => 'Llista de los plugins',
638
-	'plugins_liste_dist' => 'Estensiones', # MODIF
639
-	'plugins_recents' => 'Complementos recientes.',
640
-	'plugins_vue_hierarchie' => 'Xerarquía',
641
-	'plugins_vue_liste' => 'Llista',
642
-	'protocole_ldap' => 'Versión del protocolu:',
583
+    // P
584
+    'page_pas_proxy' => 'Esta páxina nun debe pasar pol proxy',
585
+    'pas_de_proxy_pour' => 'Si fai falta, indica les máquines o dominios pa los que esti proxy nun debe aplicase (por exemplu: @exemple@)',
586
+    'plugin_charge_paquet' => 'Carga del paquete @name@',
587
+    'plugin_charger' => 'Descargar',
588
+    'plugin_erreur_charger' => 'fallu: nun ye posible cargar @zip@',
589
+    'plugin_erreur_droit1' => 'El direutoriu <code>@dest@</code> nun ye accesible pa escritura.',
590
+    'plugin_erreur_droit2' => 'Verifica los permisos d’esti direutoriu (o créalu si ye’l casu), o instala los archivos per FTP.',
591
+    'plugin_erreur_zip' => 'falló pclzip col mensaxe: @status@',
592
+    'plugin_etat_developpement' => 'en desarrollu',
593
+    'plugin_etat_experimental' => 'esperimental',
594
+    'plugin_etat_stable' => 'estable',
595
+    'plugin_etat_test' => 'en prebes',
596
+    'plugin_impossible_activer' => 'Nun ye posible activar el plugin @plugin@',
597
+    'plugin_info_automatique1' => 'Si se quier autorizar la instalación automática de los plugins, hai que:',
598
+    'plugin_info_automatique1_lib' => 'Si quies autorizar la instalación automática d’esta biblioteca, necesites:',
599
+    'plugin_info_automatique2' => 'crear un direutoriu <code>@rep@</code> ;',
600
+    'plugin_info_automatique3' => 'verificar que’l sirvidor tenga permisos pa escribir nesi direutoriu.',
601
+    'plugin_info_automatique_creer' => 'que hai que crear na raiz del sitiu.',
602
+    'plugin_info_automatique_exemples' => 'exemplos:',
603
+    'plugin_info_automatique_ftp' => 'Puedes instalar plugins, per FTP, nel direutoriu <tt>@rep@</tt>',
604
+    'plugin_info_automatique_lib' => 'Dellos plugins necesiten también permisu pa descargar archivos nel direutoriu <code>lib/</code>, a crear si ye’l casu na raiz del sitiu.',
605
+    'plugin_info_automatique_liste' => 'Les tos llistes de plugins:',
606
+    'plugin_info_automatique_liste_officielle' => 'los plugins oficiales',
607
+    'plugin_info_automatique_liste_update' => 'Actualizar les llistes',
608
+    'plugin_info_automatique_ou' => 'o...',
609
+    'plugin_info_automatique_select' => 'Seleiciona un plugin d’embaxo: SPIP va descargalu y anicialu nel direutoriu <code>@rep@</code> ; si el plugin ya esiste, pondrase al día.',
610
+    'plugin_info_plugins_dist_1' => 'Les estensiones darréu se carguen y s’activen nel direutoriu @plugins_dist@.', # MODIF
611
+    'plugin_info_plugins_dist_2' => 'Estes nun pueden desactivase.', # MODIF
612
+    'plugin_info_telecharger' => 'a descargar de @url@ y a instalar en @rep@',
613
+    'plugin_librairies_installees' => 'Llibreríes instaláes',
614
+    'plugin_necessite_lib' => 'Esti plugin necesita la llibrería @lib@',
615
+    'plugin_necessite_plugin' => 'Necesita el plugin @plugin@ en versión @version@ mínimo.', # MODIF
616
+    'plugin_necessite_spip' => 'Necesita SPIP en versión @version@ mínimo.',
617
+    'plugin_source' => 'fonte: ',
618
+    'plugin_titre_automatique' => 'Instalación automática',
619
+    'plugin_titre_automatique_ajouter' => 'Amestar plugins',
620
+    'plugin_titre_installation' => 'Instalación del complementu @plugin@',
621
+    'plugin_zip_active' => 'Continúa pa activalu',
622
+    'plugin_zip_adresse' => 'indica embaxo les señes d’un archivu zip de plugin a descargar, o mesmo les señes d’una llista de plugins.',
623
+    'plugin_zip_adresse_champ' => 'Señes del plugin o de la llista ',
624
+    'plugin_zip_content' => 'Contien los archivos siguientes (@taille@),<br />preparaos pa instalase nel direutoriu <code>@rep@</code>',
625
+    'plugin_zip_installe_finie' => 'L’archivu @zip@ descomprimiose y quedó instalau.',
626
+    'plugin_zip_installe_rep_finie' => 'L’archivu @zip@ descomprimiose y quedó instalau nel direutoriu @rep@',
627
+    'plugin_zip_installer' => 'Pues instalalu agora.',
628
+    'plugin_zip_telecharge' => 'Descargose l’archivu @zip@',
629
+    'plugins_actif_aucun' => 'Dengún complementu activáu.',
630
+    'plugins_actif_un' => 'Un complementu activáu.',
631
+    'plugins_actifs' => '@count@ plugins activaos.',
632
+    'plugins_actifs_liste' => 'Complementos activos', # MODIF
633
+    'plugins_compte' => '@count@ plugins',
634
+    'plugins_disponible_un' => 'Un complementu disponible.',
635
+    'plugins_disponibles' => '@count@ plugins disponibles.',
636
+    'plugins_erreur' => 'Error nos plugins: @plugins@',
637
+    'plugins_liste' => 'Llista de los plugins',
638
+    'plugins_liste_dist' => 'Estensiones', # MODIF
639
+    'plugins_recents' => 'Complementos recientes.',
640
+    'plugins_vue_hierarchie' => 'Xerarquía',
641
+    'plugins_vue_liste' => 'Llista',
642
+    'protocole_ldap' => 'Versión del protocolu:',
643 643
 
644
-	// R
645
-	'repertoire_plugins' => 'Direutoriu:',
646
-	'required' => '[Obligatorio]', # MODIF
644
+    // R
645
+    'repertoire_plugins' => 'Direutoriu:',
646
+    'required' => '[Obligatorio]', # MODIF
647 647
 
648
-	// S
649
-	'sans_heure' => 'ensin hora',
650
-	'statut_admin_restreint' => '(almin llendau)', # MODIF
648
+    // S
649
+    'sans_heure' => 'ensin hora',
650
+    'statut_admin_restreint' => '(almin llendau)', # MODIF
651 651
 
652
-	// T
653
-	'taille_cache_image' => 'Les imaxes calculáes automáticamente por SPIP (miniatures de documentos, títulos en formatu gráficu, funciones matemátiques en formatu TeX...) ocupen nel direutoriu @dir@ un total de @taille@.',
654
-	'taille_cache_octets' => 'El tamañu de caché actualmente ye de @octets@.', # MODIF
655
-	'taille_cache_vide' => 'La caché ta vacía.',
656
-	'taille_repertoire_cache' => 'Tamañu del direutoriu de caché',
657
-	'text_article_propose_publication' => 'Artículu propuestu pa espublizase.',
658
-	'texte_acces_ldap_anonyme_1' => 'Dellos sirvidores LDAP nun acepten los accesos anónimos. Si esti ye’l casu hai que especificar una identificación d’accesu inicial a la fin de poder lluéu restolar la información na guía. Sicasí, nos más de los casos, los campos siguientes puen dexase vacíos.',
659
-	'texte_admin_effacer_01' => 'Esta orde desanicia <i>tol</i> conteníu de la base de datos,
652
+    // T
653
+    'taille_cache_image' => 'Les imaxes calculáes automáticamente por SPIP (miniatures de documentos, títulos en formatu gráficu, funciones matemátiques en formatu TeX...) ocupen nel direutoriu @dir@ un total de @taille@.',
654
+    'taille_cache_octets' => 'El tamañu de caché actualmente ye de @octets@.', # MODIF
655
+    'taille_cache_vide' => 'La caché ta vacía.',
656
+    'taille_repertoire_cache' => 'Tamañu del direutoriu de caché',
657
+    'text_article_propose_publication' => 'Artículu propuestu pa espublizase.',
658
+    'texte_acces_ldap_anonyme_1' => 'Dellos sirvidores LDAP nun acepten los accesos anónimos. Si esti ye’l casu hai que especificar una identificación d’accesu inicial a la fin de poder lluéu restolar la información na guía. Sicasí, nos más de los casos, los campos siguientes puen dexase vacíos.',
659
+    'texte_admin_effacer_01' => 'Esta orde desanicia <i>tol</i> conteníu de la base de datos,
660 660
 incluyíos <i>tolos</i> accesos de redactores y alministradores. Tres d’executalu, vas tener que llanzar la
661 661
 reinstalación de SPIP pa crear una nueva base igual que un primer accesu d’alministrador.',
662
-	'texte_adresse_annuaire_1' => '(Si la guía ta instalada na mesma máquina que esti sitiu Web, ye probablemente «localhost».)',
663
-	'texte_ajout_auteur' => 'El siguiente autor amestose a l’artículu:',
664
-	'texte_annuaire_ldap_1' => 'Si ties accesu a una guía (LDAP), vas poder utilizala pa importar automáticamente usuarios a SPIP.',
665
-	'texte_article_statut' => 'Esti artículu ta:',
666
-	'texte_article_virtuel' => 'Artículu virtual',
667
-	'texte_article_virtuel_reference' => '<b>Artículu virtual:</b> artículu referenciau nel sitiu SPIP, magar que redirixe a otra URL. Pa desaniciar la redireición, esborra la URL d’enriba.',
668
-	'texte_aucun_resultat_auteur' => 'Nun hai resultaos pa "@cherche_auteur@"',
669
-	'texte_auteur_messagerie' => 'Esti sitiu pue amosate de mou permanente la llista de redactores coneutaos, lo que te permite intercambiar mensaxes en direutu. Pues decidir nun apaecer nesa llista (ser «invisible» pa los demás usuarios).',
670
-	'texte_auteurs' => 'LOS AUTORES',
671
-	'texte_choix_base_1' => 'Escueye la base de datos:',
672
-	'texte_choix_base_2' => 'El sirvidor SQL contién delles bases de datos.',
673
-	'texte_choix_base_3' => '<b>Seleiciona</b> de siguío la que te conseñaren nel agospiamientu:',
674
-	'texte_choix_table_prefix' => 'Prefixu de les tables:',
675
-	'texte_compte_element' => '@count@ elementu',
676
-	'texte_compte_elements' => '@count@ elementos',
677
-	'texte_conflit_edition_correction' => 'Compreba embaxo les diferencies ente les dos versiones del testu; también pues copiar los tos cambéos y, de siguío, volver a entamar',
678
-	'texte_connexion_mysql' => 'Consulta la información que te dieren nel to agospiamientu web: ties que atopar el sirvidor de base datos que te ufre y los códigos de identificación pa conectate.',
679
-	'texte_contenu_article' => '(Conteníu de l’artículu en delles pallabres.)',
680
-	'texte_contenu_articles' => 'Según la maquetación que uses pal to sitiu, seique decidas
662
+    'texte_adresse_annuaire_1' => '(Si la guía ta instalada na mesma máquina que esti sitiu Web, ye probablemente «localhost».)',
663
+    'texte_ajout_auteur' => 'El siguiente autor amestose a l’artículu:',
664
+    'texte_annuaire_ldap_1' => 'Si ties accesu a una guía (LDAP), vas poder utilizala pa importar automáticamente usuarios a SPIP.',
665
+    'texte_article_statut' => 'Esti artículu ta:',
666
+    'texte_article_virtuel' => 'Artículu virtual',
667
+    'texte_article_virtuel_reference' => '<b>Artículu virtual:</b> artículu referenciau nel sitiu SPIP, magar que redirixe a otra URL. Pa desaniciar la redireición, esborra la URL d’enriba.',
668
+    'texte_aucun_resultat_auteur' => 'Nun hai resultaos pa "@cherche_auteur@"',
669
+    'texte_auteur_messagerie' => 'Esti sitiu pue amosate de mou permanente la llista de redactores coneutaos, lo que te permite intercambiar mensaxes en direutu. Pues decidir nun apaecer nesa llista (ser «invisible» pa los demás usuarios).',
670
+    'texte_auteurs' => 'LOS AUTORES',
671
+    'texte_choix_base_1' => 'Escueye la base de datos:',
672
+    'texte_choix_base_2' => 'El sirvidor SQL contién delles bases de datos.',
673
+    'texte_choix_base_3' => '<b>Seleiciona</b> de siguío la que te conseñaren nel agospiamientu:',
674
+    'texte_choix_table_prefix' => 'Prefixu de les tables:',
675
+    'texte_compte_element' => '@count@ elementu',
676
+    'texte_compte_elements' => '@count@ elementos',
677
+    'texte_conflit_edition_correction' => 'Compreba embaxo les diferencies ente les dos versiones del testu; también pues copiar los tos cambéos y, de siguío, volver a entamar',
678
+    'texte_connexion_mysql' => 'Consulta la información que te dieren nel to agospiamientu web: ties que atopar el sirvidor de base datos que te ufre y los códigos de identificación pa conectate.',
679
+    'texte_contenu_article' => '(Conteníu de l’artículu en delles pallabres.)',
680
+    'texte_contenu_articles' => 'Según la maquetación que uses pal to sitiu, seique decidas
681 681
   que dellos elementos de los artículos nun van utilizase.
682 682
   Usa la llista d’embaxo pa indicar los elementos que van tar disponibles.',
683
-	'texte_crash_base' => 'Si la to base de datos ta
683
+    'texte_crash_base' => 'Si la to base de datos ta
684 684
    caída, pues tentar una reparación
685 685
    automática.',
686
-	'texte_creer_rubrique' => 'Enantes que puedas escribir artículos,<br /> tienes que crear una estaya.',
687
-	'texte_date_creation_article' => 'FECHA DE CREACIÓN DE L’ARTÍCULU:',
688
-	'texte_date_publication_anterieure' => 'Fecha de redaición anterior:',
689
-	'texte_date_publication_anterieure_nonaffichee' => 'Nun amosar fecha de redaición anterior.',
690
-	'texte_date_publication_article' => 'FECHA D’ESPUBLIZAMIENTU EN LLINIA:',
691
-	'texte_descriptif_rapide' => 'Descripción rápida',
692
-	'texte_effacer_base' => 'Desaniciar la base de datos SPIP',
693
-	'texte_effacer_statistiques' => 'Desaniciar les estadístiques',
694
-	'texte_en_cours_validation' => 'Los artículos y breves d’embaxo tan propuestos pa espublizase.', # MODIF
695
-	'texte_enrichir_mise_a_jour' => 'Pues arriquecer la paxinación del testu utilizando los «atayos tipográficos».',
696
-	'texte_fichier_authent' => '<b>¿Tien SPIP que crear los ficheros especiales <tt>.htpasswd</tt>
686
+    'texte_creer_rubrique' => 'Enantes que puedas escribir artículos,<br /> tienes que crear una estaya.',
687
+    'texte_date_creation_article' => 'FECHA DE CREACIÓN DE L’ARTÍCULU:',
688
+    'texte_date_publication_anterieure' => 'Fecha de redaición anterior:',
689
+    'texte_date_publication_anterieure_nonaffichee' => 'Nun amosar fecha de redaición anterior.',
690
+    'texte_date_publication_article' => 'FECHA D’ESPUBLIZAMIENTU EN LLINIA:',
691
+    'texte_descriptif_rapide' => 'Descripción rápida',
692
+    'texte_effacer_base' => 'Desaniciar la base de datos SPIP',
693
+    'texte_effacer_statistiques' => 'Desaniciar les estadístiques',
694
+    'texte_en_cours_validation' => 'Los artículos y breves d’embaxo tan propuestos pa espublizase.', # MODIF
695
+    'texte_enrichir_mise_a_jour' => 'Pues arriquecer la paxinación del testu utilizando los «atayos tipográficos».',
696
+    'texte_fichier_authent' => '<b>¿Tien SPIP que crear los ficheros especiales <tt>.htpasswd</tt>
697 697
   y <tt>.htpasswd-admin</tt> na carpeta @dossier@?</b><p>
698 698
   Estos ficheros pueden sirvite pa torgar l’accesu, tanto de los autores
699 699
   como de los alministradores a otres partes del to sitiu web
@@ -701,41 +701,41 @@  discard block
 block discarded – undo
701 701
   Si nun vas utilizalo, puedes dexar esta opción
702 702
  col so valor predetermináu (nun crear
703 703
  esos ficheros).</p>', # MODIF
704
-	'texte_informations_personnelles_1' => 'Agora el sistema va create un accesu personalizáu al sitiu.',
705
-	'texte_informations_personnelles_2' => '(Nota: si esto ye una reinstalación, y el to accesu siempre funciona, pues', # MODIF
706
-	'texte_introductif_article' => '(Testu d’introducción de l’artículu.)',
707
-	'texte_jeu_caractere' => 'Encamiéntase emplegar, pal to sitiu, l’alfabetu universal (<tt>utf-8</tt>): esti permite amosar los testos en toes les llingües, y ya nun da problemes de compatibilidá colos ñavegadores modernos.',
708
-	'texte_jeu_caractere_3' => 'Esti sitiu ta instaláu actualmente col xuegu de carauteres:',
709
-	'texte_jeu_caractere_4' => 'Si esto nun concasa cola realidá de los datos (siguir, por exemplu, tres d’una restauración de la base de datos), o si <em>tas arrancando esti sitiu</em> y quies entamar con otru xuegu de carauteres, conseña esti darréu:',
710
-	'texte_login_ldap_1' => '(Dexar vacío pa un accesu anónimu, o conseñar el camín ensembre, por exemplu «<tt>uid=dupont, ou=users, dc=mio-dominiu, dc=com</tt> ».)',
711
-	'texte_login_precaution' => '¡Atención! Esti ye l’usuariu col que tas coneutau actualmente.
704
+    'texte_informations_personnelles_1' => 'Agora el sistema va create un accesu personalizáu al sitiu.',
705
+    'texte_informations_personnelles_2' => '(Nota: si esto ye una reinstalación, y el to accesu siempre funciona, pues', # MODIF
706
+    'texte_introductif_article' => '(Testu d’introducción de l’artículu.)',
707
+    'texte_jeu_caractere' => 'Encamiéntase emplegar, pal to sitiu, l’alfabetu universal (<tt>utf-8</tt>): esti permite amosar los testos en toes les llingües, y ya nun da problemes de compatibilidá colos ñavegadores modernos.',
708
+    'texte_jeu_caractere_3' => 'Esti sitiu ta instaláu actualmente col xuegu de carauteres:',
709
+    'texte_jeu_caractere_4' => 'Si esto nun concasa cola realidá de los datos (siguir, por exemplu, tres d’una restauración de la base de datos), o si <em>tas arrancando esti sitiu</em> y quies entamar con otru xuegu de carauteres, conseña esti darréu:',
710
+    'texte_login_ldap_1' => '(Dexar vacío pa un accesu anónimu, o conseñar el camín ensembre, por exemplu «<tt>uid=dupont, ou=users, dc=mio-dominiu, dc=com</tt> ».)',
711
+    'texte_login_precaution' => '¡Atención! Esti ye l’usuariu col que tas coneutau actualmente.
712 712
  Utiliza esti formulariu con procuru...',
713
-	'texte_messagerie_agenda' => 'Una mensaxería permite-yos a los redactores del sitiu comunicase direutamente ente ellos nel espaciu privau del sitiu. La mensaxería va asociada con una axenda.',
714
-	'texte_mise_a_niveau_base_1' => 'Tas acabante de poner al día los archivos de SPIP.
713
+    'texte_messagerie_agenda' => 'Una mensaxería permite-yos a los redactores del sitiu comunicase direutamente ente ellos nel espaciu privau del sitiu. La mensaxería va asociada con una axenda.',
714
+    'texte_mise_a_niveau_base_1' => 'Tas acabante de poner al día los archivos de SPIP.
715 715
  Agora fai falta actualizar la base de datos
716 716
  del sitiu.',
717
-	'texte_modifier_article' => 'Iguar l’artículu:',
718
-	'texte_multilinguisme' => 'Si quiés xuestionar artículos en delles llingües, con una ñavegación complexa, pues amestar un menú de seleición de llingua nos articulos y/o nes estayes, al aldu de la organización del sitiu.', # MODIF
719
-	'texte_multilinguisme_trad' => 'Igualmente pues activar un sistema de xestión de enllaces ente les distintes traducciones d’un artículu.', # MODIF
720
-	'texte_non_compresse' => '<i>non comprimíu</i> (el to sirvidor nun soporta esta carauterística)',
721
-	'texte_nouvelle_version_spip_1' => 'Vienes d’instalar una versión nueva de SPIP.',
722
-	'texte_nouvelle_version_spip_2' => 'Esta nueva versión necesita una actualización más completa que la de vezu. Si yes el webmaster del sitiu, tienes de desaniciar el ficheru @connect@ y siguir cola instalación p’anovar los parámetros de conexón cola base de datos.<p> (NB.: si escaecisti los tos parámetros de conexón, echa-y una güeyada al ficheru @connect@ enantes de desanicialu...)</p>',
723
-	'texte_operation_echec' => 'Torna a la páxina precedente, seleiciona otra base o crea una nueva. Compreba la información ufrida pol to agospiamientu web.',
724
-	'texte_plus_trois_car' => 'más de 3 carauteres',
725
-	'texte_plusieurs_articles' => 'Alcontráronse dellos autores pa "@cherche_auteur@":',
726
-	'texte_port_annuaire' => '(El valor indicáu por omisión convién polo xeneral.)',
727
-	'texte_presente_plugin' => 'Esta páxina llista los plugins disponibles nel sitiu. Pues activar los plugins necesarios marcando el cuadru correspondiente.',
728
-	'texte_proposer_publication' => 'Cuando tea termináu l’artículu,<br /> pues proponelu pa espublizar.',
729
-	'texte_proxy' => 'En ciertos casos (intranet, redes protexíes), los sitios esternos (documentación de SPIP, sitios sindicaos, etc.) nun son accesibles más que al traviés d’un <i>proxy HTTP</i>. Si ye’l casu, conseña embaxo les señes, na forma @proxy_en_cours@. En xeneral, esti cuadru déxase vacíu.',
730
-	'texte_publication_articles_post_dates' => '¿Cómo tien que comportase SPIP colos artículos nos que la
717
+    'texte_modifier_article' => 'Iguar l’artículu:',
718
+    'texte_multilinguisme' => 'Si quiés xuestionar artículos en delles llingües, con una ñavegación complexa, pues amestar un menú de seleición de llingua nos articulos y/o nes estayes, al aldu de la organización del sitiu.', # MODIF
719
+    'texte_multilinguisme_trad' => 'Igualmente pues activar un sistema de xestión de enllaces ente les distintes traducciones d’un artículu.', # MODIF
720
+    'texte_non_compresse' => '<i>non comprimíu</i> (el to sirvidor nun soporta esta carauterística)',
721
+    'texte_nouvelle_version_spip_1' => 'Vienes d’instalar una versión nueva de SPIP.',
722
+    'texte_nouvelle_version_spip_2' => 'Esta nueva versión necesita una actualización más completa que la de vezu. Si yes el webmaster del sitiu, tienes de desaniciar el ficheru @connect@ y siguir cola instalación p’anovar los parámetros de conexón cola base de datos.<p> (NB.: si escaecisti los tos parámetros de conexón, echa-y una güeyada al ficheru @connect@ enantes de desanicialu...)</p>',
723
+    'texte_operation_echec' => 'Torna a la páxina precedente, seleiciona otra base o crea una nueva. Compreba la información ufrida pol to agospiamientu web.',
724
+    'texte_plus_trois_car' => 'más de 3 carauteres',
725
+    'texte_plusieurs_articles' => 'Alcontráronse dellos autores pa "@cherche_auteur@":',
726
+    'texte_port_annuaire' => '(El valor indicáu por omisión convién polo xeneral.)',
727
+    'texte_presente_plugin' => 'Esta páxina llista los plugins disponibles nel sitiu. Pues activar los plugins necesarios marcando el cuadru correspondiente.',
728
+    'texte_proposer_publication' => 'Cuando tea termináu l’artículu,<br /> pues proponelu pa espublizar.',
729
+    'texte_proxy' => 'En ciertos casos (intranet, redes protexíes), los sitios esternos (documentación de SPIP, sitios sindicaos, etc.) nun son accesibles más que al traviés d’un <i>proxy HTTP</i>. Si ye’l casu, conseña embaxo les señes, na forma @proxy_en_cours@. En xeneral, esti cuadru déxase vacíu.',
730
+    'texte_publication_articles_post_dates' => '¿Cómo tien que comportase SPIP colos artículos nos que la
731 731
   fecha d’espublizamientu ta conseñada pa otru
732 732
   momentu futuru?',
733
-	'texte_rappel_selection_champs' => '[Nun escaezas seleicionar correutamente esti campu.]',
734
-	'texte_recalcul_page' => 'Si quies
733
+    'texte_rappel_selection_champs' => '[Nun escaezas seleicionar correutamente esti campu.]',
734
+    'texte_recalcul_page' => 'Si quies
735 735
 recalcular una sola páxina, pasa meyor pel espaciu públicu y calca nel botón «recalcular».',
736
-	'texte_recuperer_base' => 'Iguar la base de datos',
737
-	'texte_reference_mais_redirige' => 'artículu referenciáu nel to sitiu SPIP, pero redirixíu a otra URL.',
738
-	'texte_requetes_echouent' => '<b>Cuando ciertes consultes SQL fallen
736
+    'texte_recuperer_base' => 'Iguar la base de datos',
737
+    'texte_reference_mais_redirige' => 'artículu referenciáu nel to sitiu SPIP, pero redirixíu a otra URL.',
738
+    'texte_requetes_echouent' => '<b>Cuando ciertes consultes SQL fallen
739 739
   sistemáticamente y ensin razón aparente, ye
740 740
   posible que seya por cuenta de la mesma base
741 741
   de datos.</b><p>
@@ -746,87 +746,87 @@  discard block
 block discarded – undo
746 746
   seique, índices de lo que nun funciona...</p><p>
747 747
   Si el problema siguiere, ponte en contautu col to
748 748
   agospiador.</p>',
749
-	'texte_selection_langue_principale' => 'Más embaxo pues seleicionar la «llingua principal» del sitiu. Esti axuste nun te obliga - ¡por suerte! - a escribir los artículos na llingua seleicionada, sinon que permite afitar:
749
+    'texte_selection_langue_principale' => 'Más embaxo pues seleicionar la «llingua principal» del sitiu. Esti axuste nun te obliga - ¡por suerte! - a escribir los artículos na llingua seleicionada, sinon que permite afitar:
750 750
  <ul><li> el formatu por omisión de les feches pal sitiu públicu;</li>
751 751
  <li> la natura del motor tipográficu que SPIP tien que utilizar pa representar los testos;</li>
752 752
  <li> la llingua utilizada nos formularios del sitiu públicu;</li>
753 753
  <li> la llingua por omisión pa presentar l’espaciu priváu.</li></ul>',
754
-	'texte_sous_titre' => 'Subtítulu',
755
-	'texte_statistiques_visites' => '(barres prietes:  domingu / curva prieta: evolución de la media)',
756
-	'texte_statut_attente_validation' => 'esperando validación',
757
-	'texte_statut_publies' => 'espublizaos en llinia',
758
-	'texte_statut_refuses' => 'refugáos',
759
-	'texte_suppression_fichiers' => 'Utilza esta orde pa desaniciar tolos archivos presentes
754
+    'texte_sous_titre' => 'Subtítulu',
755
+    'texte_statistiques_visites' => '(barres prietes:  domingu / curva prieta: evolución de la media)',
756
+    'texte_statut_attente_validation' => 'esperando validación',
757
+    'texte_statut_publies' => 'espublizaos en llinia',
758
+    'texte_statut_refuses' => 'refugáos',
759
+    'texte_suppression_fichiers' => 'Utilza esta orde pa desaniciar tolos archivos presentes
760 760
 na caché de SPIP. Esto permite por exemplu forzar un recálculu de toes les páxines si
761 761
 vienes de facer cambéos importantes nel grafismu o na estructura del sitiu.',
762
-	'texte_sur_titre' => 'Antetítulu',
763
-	'texte_table_ok' => ': esta tabla ta bién.',
764
-	'texte_tentative_recuperation' => 'Intentu d’igua',
765
-	'texte_tenter_reparation' => 'Tentar una reparación de la base de datos',
766
-	'texte_test_proxy' => 'Pa facer una preba d’esti proxy, conseña equí les señes d’un sitiu Web
762
+    'texte_sur_titre' => 'Antetítulu',
763
+    'texte_table_ok' => ': esta tabla ta bién.',
764
+    'texte_tentative_recuperation' => 'Intentu d’igua',
765
+    'texte_tenter_reparation' => 'Tentar una reparación de la base de datos',
766
+    'texte_test_proxy' => 'Pa facer una preba d’esti proxy, conseña equí les señes d’un sitiu Web
767 767
     que quieras prebar.',
768
-	'texte_titre_02' => 'Títulu:',
769
-	'texte_titre_obligatoire' => '<b>Títulu</b> [Obligatorio]',
770
-	'texte_travail_article' => '@nom_auteur_modif@ trabayó nesti artículu hai @date_diff@ minutos',
771
-	'texte_travail_collaboratif' => 'Si ye frecuente que dellos redactores
768
+    'texte_titre_02' => 'Títulu:',
769
+    'texte_titre_obligatoire' => '<b>Títulu</b> [Obligatorio]',
770
+    'texte_travail_article' => '@nom_auteur_modif@ trabayó nesti artículu hai @date_diff@ minutos',
771
+    'texte_travail_collaboratif' => 'Si ye frecuente que dellos redactores
772 772
   trabayen nel mesmu artículu, el sistema
773 773
   pue amosar los artículos «abiertos» recientemente
774 774
   a la fin d’evitar modificaciones simultánees.
775 775
   Esta opción ta desactivada por omisión
776 776
   pa evitar l’apaición de mensaxes d’avisu
777 777
   intempestivos.',
778
-	'texte_vide' => 'vacíu',
779
-	'texte_vider_cache' => 'Vaciar la caché',
780
-	'titre_admin_tech' => 'Mantenimientu técnicu',
781
-	'titre_admin_vider' => 'Mantenimientu técnicu',
782
-	'titre_ajouter_un_auteur' => 'Amestar un autor',
783
-	'titre_ajouter_un_mot' => 'Amestar una pallabra-clave',
784
-	'titre_cadre_afficher_article' => 'Amosar los artículos',
785
-	'titre_cadre_afficher_traductions' => 'Amosar l’estau de les traducciones pa les llingües siguientes:',
786
-	'titre_cadre_ajouter_auteur' => 'AMESTAR UN AUTOR:',
787
-	'titre_cadre_interieur_rubrique' => 'Dientro de la estaya',
788
-	'titre_cadre_numero_auteur' => 'AUTOR NÚMBERU',
789
-	'titre_cadre_signature_obligatoire' => '<b>Robla</b> [Obligatoria]<br />',
790
-	'titre_config_contenu_notifications' => 'Notificaciones',
791
-	'titre_config_contenu_prive' => 'Nel espaciu priváu',
792
-	'titre_config_contenu_public' => 'Nel sitiu públicu',
793
-	'titre_config_fonctions' => 'Configuración del sitiu',
794
-	'titre_config_langage' => 'Configurar la llingua',
795
-	'titre_configuration' => 'Configuración del sitiu',
796
-	'titre_configurer_preferences' => 'Configurar les tos preferencies',
797
-	'titre_conflit_edition' => 'Conflictu durante la edición',
798
-	'titre_connexion_ldap' => 'Axustes: <b>La to conexón LDAP</b>',
799
-	'titre_groupe_mots' => 'GRUPU DE PALLABRES:',
800
-	'titre_identite_site' => 'Identidá del sitiu',
801
-	'titre_langue_article' => 'LLINGUA DE L’ARTICULU', # MODIF
802
-	'titre_langue_rubrique' => 'LLINGUA DE LA ESTAYA', # MODIF
803
-	'titre_langue_trad_article' => 'LLINGUA Y TRADUCCIONES DE L’ARTÍCULU',
804
-	'titre_les_articles' => 'LOS ARTÍCULOS',
805
-	'titre_messagerie_agenda' => 'Mensaxería y axenda',
806
-	'titre_naviguer_dans_le_site' => 'Ñavegar pol sitiu Web...',
807
-	'titre_nouvelle_rubrique' => 'Estaya nueva',
808
-	'titre_numero_rubrique' => 'ESTAYA NÚMBERU:',
809
-	'titre_page_articles_edit' => 'Camudar: @titre@',
810
-	'titre_page_articles_page' => 'Los artículos',
811
-	'titre_page_articles_tous' => 'Tou el sitiu',
812
-	'titre_page_calendrier' => 'Axenda de @nom_mois@ @annee@',
813
-	'titre_page_config_contenu' => 'Configuración del sitiu',
814
-	'titre_page_delete_all' => 'desaniciu total e irreversible',
815
-	'titre_page_recherche' => 'Resultaos de la gueta @recherche@',
816
-	'titre_page_statistiques_referers' => 'Estadístiques (enllaces entrantes)',
817
-	'titre_page_upgrade' => 'Actualización de SPIP',
818
-	'titre_publication_articles_post_dates' => 'Publicación d’artículos con fecha posterior',
819
-	'titre_reparation' => 'Igua',
820
-	'titre_suivi_petition' => 'Siguimientu de les solicitudes',
821
-	'tls_ldap' => 'Transport Layer Security (TLS):',
822
-	'trad_article_traduction' => 'Toles versiones d’esti artículu:',
823
-	'trad_delier' => 'Ya nun enllazar esti artículu coles sos traduciones ', # MODIF
824
-	'trad_lier' => 'Esti artículu ye una tradución del artículu númberu:',
825
-	'trad_new' => 'Escribir una nueva torna d’esti artículu', # MODIF
778
+    'texte_vide' => 'vacíu',
779
+    'texte_vider_cache' => 'Vaciar la caché',
780
+    'titre_admin_tech' => 'Mantenimientu técnicu',
781
+    'titre_admin_vider' => 'Mantenimientu técnicu',
782
+    'titre_ajouter_un_auteur' => 'Amestar un autor',
783
+    'titre_ajouter_un_mot' => 'Amestar una pallabra-clave',
784
+    'titre_cadre_afficher_article' => 'Amosar los artículos',
785
+    'titre_cadre_afficher_traductions' => 'Amosar l’estau de les traducciones pa les llingües siguientes:',
786
+    'titre_cadre_ajouter_auteur' => 'AMESTAR UN AUTOR:',
787
+    'titre_cadre_interieur_rubrique' => 'Dientro de la estaya',
788
+    'titre_cadre_numero_auteur' => 'AUTOR NÚMBERU',
789
+    'titre_cadre_signature_obligatoire' => '<b>Robla</b> [Obligatoria]<br />',
790
+    'titre_config_contenu_notifications' => 'Notificaciones',
791
+    'titre_config_contenu_prive' => 'Nel espaciu priváu',
792
+    'titre_config_contenu_public' => 'Nel sitiu públicu',
793
+    'titre_config_fonctions' => 'Configuración del sitiu',
794
+    'titre_config_langage' => 'Configurar la llingua',
795
+    'titre_configuration' => 'Configuración del sitiu',
796
+    'titre_configurer_preferences' => 'Configurar les tos preferencies',
797
+    'titre_conflit_edition' => 'Conflictu durante la edición',
798
+    'titre_connexion_ldap' => 'Axustes: <b>La to conexón LDAP</b>',
799
+    'titre_groupe_mots' => 'GRUPU DE PALLABRES:',
800
+    'titre_identite_site' => 'Identidá del sitiu',
801
+    'titre_langue_article' => 'LLINGUA DE L’ARTICULU', # MODIF
802
+    'titre_langue_rubrique' => 'LLINGUA DE LA ESTAYA', # MODIF
803
+    'titre_langue_trad_article' => 'LLINGUA Y TRADUCCIONES DE L’ARTÍCULU',
804
+    'titre_les_articles' => 'LOS ARTÍCULOS',
805
+    'titre_messagerie_agenda' => 'Mensaxería y axenda',
806
+    'titre_naviguer_dans_le_site' => 'Ñavegar pol sitiu Web...',
807
+    'titre_nouvelle_rubrique' => 'Estaya nueva',
808
+    'titre_numero_rubrique' => 'ESTAYA NÚMBERU:',
809
+    'titre_page_articles_edit' => 'Camudar: @titre@',
810
+    'titre_page_articles_page' => 'Los artículos',
811
+    'titre_page_articles_tous' => 'Tou el sitiu',
812
+    'titre_page_calendrier' => 'Axenda de @nom_mois@ @annee@',
813
+    'titre_page_config_contenu' => 'Configuración del sitiu',
814
+    'titre_page_delete_all' => 'desaniciu total e irreversible',
815
+    'titre_page_recherche' => 'Resultaos de la gueta @recherche@',
816
+    'titre_page_statistiques_referers' => 'Estadístiques (enllaces entrantes)',
817
+    'titre_page_upgrade' => 'Actualización de SPIP',
818
+    'titre_publication_articles_post_dates' => 'Publicación d’artículos con fecha posterior',
819
+    'titre_reparation' => 'Igua',
820
+    'titre_suivi_petition' => 'Siguimientu de les solicitudes',
821
+    'tls_ldap' => 'Transport Layer Security (TLS):',
822
+    'trad_article_traduction' => 'Toles versiones d’esti artículu:',
823
+    'trad_delier' => 'Ya nun enllazar esti artículu coles sos traduciones ', # MODIF
824
+    'trad_lier' => 'Esti artículu ye una tradución del artículu númberu:',
825
+    'trad_new' => 'Escribir una nueva torna d’esti artículu', # MODIF
826 826
 
827
-	// U
828
-	'utf8_convert_erreur_orig' => 'Error: el xuegu de carautéres @charset@ nun ta soportáu.',
827
+    // U
828
+    'utf8_convert_erreur_orig' => 'Error: el xuegu de carautéres @charset@ nun ta soportáu.',
829 829
 
830
-	// V
831
-	'version' => 'Versión:'
830
+    // V
831
+    'version' => 'Versión:'
832 832
 );
Please login to merge, or discard this patch.
ecrire/lang/ecrire_bs.php 1 patch
Indentation   +513 added lines, -513 removed lines patch added patch discarded remove patch
@@ -4,539 +4,539 @@
 block discarded – undo
4 4
 // ** ne pas modifier le fichier **
5 5
 
6 6
 if (!defined('_ECRIRE_INC_VERSION')) {
7
-	return;
7
+    return;
8 8
 }
9 9
 
10 10
 $GLOBALS[$GLOBALS['idx_lang']] = array(
11 11
 
12
-	// A
13
-	'aide_non_disponible' => 'Pomoc nije dostupna',
14
-	'avis_acces_interdit' => 'Pristup zabranjen.',
15
-	'avis_article_modifie' => 'Paznja, @nom_auteur_modif@ je radio na ovom artiklu prije @date_diff@ minuta',
16
-	'avis_aucun_resultat' => 'Nije pronadjen nijedan rezultat.',
17
-	'avis_chemin_invalide_1' => 'Opcija koju ste izabrali',
18
-	'avis_chemin_invalide_2' => 'nije vazeca. Vratite se na  prethodnu stranicu i provjerite unesene podatke.',
19
-	'avis_connexion_echec_1' => 'Konekcija na SQL server nije uspijela.', # MODIF
20
-	'avis_connexion_echec_2' => 'Vratite se na prethodnu stranicu i provjerite unesene podatke.',
21
-	'avis_connexion_echec_3' => '<b>N.B.</b> Na nekim serverima, trebate <b>traziti</b> aktiviranje pristupa SQL bazi prije nego je mozete koristiti. Ako se ne mozete konektovati provjerite da li ste trazili pomenutu aktivaciju.', # MODIF
22
-	'avis_connexion_ldap_echec_1' => 'Konekcija na LDAP server nije uspjela.',
23
-	'avis_connexion_ldap_echec_2' => 'Vratite se na prethodnu stranicu i provjerite unesene podatke.',
24
-	'avis_connexion_ldap_echec_3' => 'Ne koristite podrsku LDAP kao alternativu za importovanje korisnika.',
25
-	'avis_deplacement_rubrique' => 'Paznja! Ova rubrika sadrzi @contient_breves@ kratke poruke: Ako je zelite premjestiti, oznacite  ovo polje kao potvrdu.',
26
-	'avis_erreur_connexion_mysql' => 'Greska u SQL konekciji', # MODIF
27
-	'avis_espace_interdit' => '<b>Zabranjen prostor</b><p>SPIP je  vec instaliran.</p>', # MODIF
28
-	'avis_lecture_noms_bases_1' => 'Instalacijski program nije uspio ucitati imena instaliranih baza podataka.',
29
-	'avis_lecture_noms_bases_2' => 'Ili nijedna baza nije na  raspolaganju, ili je funkcija, koja dozvoljava izlistavanje  baza, dezaktivirana iz sigurnosnih razloga (sto je slucaj kod  mnogih racunara).',
30
-	'avis_lecture_noms_bases_3' => 'Ako je u pitanju druga alternativa, moguce je da se koristi baza koja nosi isto ime kao vas login:',
31
-	'avis_non_acces_page' => 'Nemate pristup ovoj strani.',
32
-	'avis_operation_echec' => 'Operacija nije uspijela.',
33
-	'avis_suppression_base' => 'PAZNJA, brisanje podataka je  nepovratno',
12
+    // A
13
+    'aide_non_disponible' => 'Pomoc nije dostupna',
14
+    'avis_acces_interdit' => 'Pristup zabranjen.',
15
+    'avis_article_modifie' => 'Paznja, @nom_auteur_modif@ je radio na ovom artiklu prije @date_diff@ minuta',
16
+    'avis_aucun_resultat' => 'Nije pronadjen nijedan rezultat.',
17
+    'avis_chemin_invalide_1' => 'Opcija koju ste izabrali',
18
+    'avis_chemin_invalide_2' => 'nije vazeca. Vratite se na  prethodnu stranicu i provjerite unesene podatke.',
19
+    'avis_connexion_echec_1' => 'Konekcija na SQL server nije uspijela.', # MODIF
20
+    'avis_connexion_echec_2' => 'Vratite se na prethodnu stranicu i provjerite unesene podatke.',
21
+    'avis_connexion_echec_3' => '<b>N.B.</b> Na nekim serverima, trebate <b>traziti</b> aktiviranje pristupa SQL bazi prije nego je mozete koristiti. Ako se ne mozete konektovati provjerite da li ste trazili pomenutu aktivaciju.', # MODIF
22
+    'avis_connexion_ldap_echec_1' => 'Konekcija na LDAP server nije uspjela.',
23
+    'avis_connexion_ldap_echec_2' => 'Vratite se na prethodnu stranicu i provjerite unesene podatke.',
24
+    'avis_connexion_ldap_echec_3' => 'Ne koristite podrsku LDAP kao alternativu za importovanje korisnika.',
25
+    'avis_deplacement_rubrique' => 'Paznja! Ova rubrika sadrzi @contient_breves@ kratke poruke: Ako je zelite premjestiti, oznacite  ovo polje kao potvrdu.',
26
+    'avis_erreur_connexion_mysql' => 'Greska u SQL konekciji', # MODIF
27
+    'avis_espace_interdit' => '<b>Zabranjen prostor</b><p>SPIP je  vec instaliran.</p>', # MODIF
28
+    'avis_lecture_noms_bases_1' => 'Instalacijski program nije uspio ucitati imena instaliranih baza podataka.',
29
+    'avis_lecture_noms_bases_2' => 'Ili nijedna baza nije na  raspolaganju, ili je funkcija, koja dozvoljava izlistavanje  baza, dezaktivirana iz sigurnosnih razloga (sto je slucaj kod  mnogih racunara).',
30
+    'avis_lecture_noms_bases_3' => 'Ako je u pitanju druga alternativa, moguce je da se koristi baza koja nosi isto ime kao vas login:',
31
+    'avis_non_acces_page' => 'Nemate pristup ovoj strani.',
32
+    'avis_operation_echec' => 'Operacija nije uspijela.',
33
+    'avis_suppression_base' => 'PAZNJA, brisanje podataka je  nepovratno',
34 34
 
35
-	// B
36
-	'bouton_acces_ldap' => 'Dodaj pristup za LDAP >>', # MODIF
37
-	'bouton_ajouter' => 'Dodaj',
38
-	'bouton_demande_publication' => 'Trazi publikaciju ovog clanka',
39
-	'bouton_effacer_tout' => 'Izbrisi SVE',
40
-	'bouton_envoyer_message' => 'Definitivna poruka: posalji',
41
-	'bouton_modifier' => 'Izmijeni',
42
-	'bouton_radio_afficher' => 'Prikazi',
43
-	'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Prikazi u listi prisutnih urednika',
44
-	'bouton_radio_envoi_annonces_adresse' => 'Posalji najave na adresu:',
45
-	'bouton_radio_envoi_liste_nouveautes' => 'Posalji listu novosti',
46
-	'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne prikazuj u listi urednika',
47
-	'bouton_radio_non_envoi_annonces_editoriales' => 'Ne salji editorijalne najave',
48
-	'bouton_redirection' => 'PREUSMJERI',
49
-	'bouton_relancer_installation' => 'Ponovo pokreni instalaciju',
50
-	'bouton_suivant' => 'Sljedece',
51
-	'bouton_tenter_recuperation' => 'Pokusaj popraviti',
52
-	'bouton_test_proxy' => 'Provjeri proxy',
53
-	'bouton_vider_cache' => 'Isprazni kes',
35
+    // B
36
+    'bouton_acces_ldap' => 'Dodaj pristup za LDAP >>', # MODIF
37
+    'bouton_ajouter' => 'Dodaj',
38
+    'bouton_demande_publication' => 'Trazi publikaciju ovog clanka',
39
+    'bouton_effacer_tout' => 'Izbrisi SVE',
40
+    'bouton_envoyer_message' => 'Definitivna poruka: posalji',
41
+    'bouton_modifier' => 'Izmijeni',
42
+    'bouton_radio_afficher' => 'Prikazi',
43
+    'bouton_radio_apparaitre_liste_redacteurs_connectes' => 'Prikazi u listi prisutnih urednika',
44
+    'bouton_radio_envoi_annonces_adresse' => 'Posalji najave na adresu:',
45
+    'bouton_radio_envoi_liste_nouveautes' => 'Posalji listu novosti',
46
+    'bouton_radio_non_apparaitre_liste_redacteurs_connectes' => 'Ne prikazuj u listi urednika',
47
+    'bouton_radio_non_envoi_annonces_editoriales' => 'Ne salji editorijalne najave',
48
+    'bouton_redirection' => 'PREUSMJERI',
49
+    'bouton_relancer_installation' => 'Ponovo pokreni instalaciju',
50
+    'bouton_suivant' => 'Sljedece',
51
+    'bouton_tenter_recuperation' => 'Pokusaj popraviti',
52
+    'bouton_test_proxy' => 'Provjeri proxy',
53
+    'bouton_vider_cache' => 'Isprazni kes',
54 54
 
55
-	// C
56
-	'cache_modifiable_webmestre' => 'Webmaster stranice moze promijeniti ovaj parametar.',
57
-	'calendrier_synchro' => 'Ako koristite neki kompaktibilni kalendarski software <b>iCal</b>, mozete ga uskladiti sa informacijama ove stranice.',
55
+    // C
56
+    'cache_modifiable_webmestre' => 'Webmaster stranice moze promijeniti ovaj parametar.',
57
+    'calendrier_synchro' => 'Ako koristite neki kompaktibilni kalendarski software <b>iCal</b>, mozete ga uskladiti sa informacijama ove stranice.',
58 58
 
59
-	// D
60
-	'date_mot_heures' => 'sati',
59
+    // D
60
+    'date_mot_heures' => 'sati',
61 61
 
62
-	// E
63
-	'email' => 'e-mail',
64
-	'email_2' => 'e-mail:',
65
-	'entree_adresse_annuaire' => 'Adresa direktorija',
66
-	'entree_adresse_email' => 'Vasa e-mail adresa',
67
-	'entree_base_donnee_1' => 'Adresa baze podataka',
68
-	'entree_base_donnee_2' => '(Ova adresa cesto odgovara adresi vase stranice, nekada ona odgovara nazivu  «localhost», a nekada je ostavljena prazna.)',
69
-	'entree_biographie' => 'Kratka biografija u nekoliko rijeci.',
70
-	'entree_chemin_acces' => '<b>Unijeti</b> putanju pristupa:', # MODIF
71
-	'entree_cle_pgp' => 'Vas PGP kljuc',
72
-	'entree_contenu_rubrique' => '(Sadrzaj ove rubrike, u nekoliko  rijeci.)',
73
-	'entree_identifiants_connexion' => 'Identifikatori vase konekcije...',
74
-	'entree_informations_connexion_ldap' => 'U ovaj formular unesite informacije o konekciji sa LDAP direktorijem. Administrator mreze ili mreza ce vam pruziti te informacije.',
75
-	'entree_infos_perso' => 'Ko ste?',
76
-	'entree_interieur_rubrique' => 'U rubrici:',
77
-	'entree_liens_sites' => '<b>Hiperlink</b> (Reference, web stranice za posjetiti...)', # MODIF
78
-	'entree_login' => 'Vas login',
79
-	'entree_login_connexion_1' => 'Login konekcije',
80
-	'entree_login_connexion_2' => '(Nekada odgovara vasem loginu za pristup na FTP; nekada je ostavljen prazan)',
81
-	'entree_mot_passe' => 'Vasa lozinka',
82
-	'entree_mot_passe_1' => 'Lozinka konekcije',
83
-	'entree_mot_passe_2' => '(Nekada odgovara vasoj lozinki za pristup na FTP, a nekada je ostavljeno prazno)',
84
-	'entree_nom_fichier' => 'Unesite ime dokumenta @texte_compresse@:',
85
-	'entree_nom_pseudo' => 'Vase ime ili pseudo',
86
-	'entree_nom_pseudo_1' => '(Vase ime ili pseudo)',
87
-	'entree_nom_site' => 'Ime vase stranice',
88
-	'entree_nouveau_passe' => 'Nova lozinka',
89
-	'entree_passe_ldap' => 'Lozinka',
90
-	'entree_port_annuaire' => 'Broj porta direktorija',
91
-	'entree_signature' => 'Potpis',
92
-	'entree_titre_obligatoire' => '<b>Naslov</b> [Obavezno]<br />', # MODIF
93
-	'entree_url' => 'URL adresa vase stranice',
62
+    // E
63
+    'email' => 'e-mail',
64
+    'email_2' => 'e-mail:',
65
+    'entree_adresse_annuaire' => 'Adresa direktorija',
66
+    'entree_adresse_email' => 'Vasa e-mail adresa',
67
+    'entree_base_donnee_1' => 'Adresa baze podataka',
68
+    'entree_base_donnee_2' => '(Ova adresa cesto odgovara adresi vase stranice, nekada ona odgovara nazivu  «localhost», a nekada je ostavljena prazna.)',
69
+    'entree_biographie' => 'Kratka biografija u nekoliko rijeci.',
70
+    'entree_chemin_acces' => '<b>Unijeti</b> putanju pristupa:', # MODIF
71
+    'entree_cle_pgp' => 'Vas PGP kljuc',
72
+    'entree_contenu_rubrique' => '(Sadrzaj ove rubrike, u nekoliko  rijeci.)',
73
+    'entree_identifiants_connexion' => 'Identifikatori vase konekcije...',
74
+    'entree_informations_connexion_ldap' => 'U ovaj formular unesite informacije o konekciji sa LDAP direktorijem. Administrator mreze ili mreza ce vam pruziti te informacije.',
75
+    'entree_infos_perso' => 'Ko ste?',
76
+    'entree_interieur_rubrique' => 'U rubrici:',
77
+    'entree_liens_sites' => '<b>Hiperlink</b> (Reference, web stranice za posjetiti...)', # MODIF
78
+    'entree_login' => 'Vas login',
79
+    'entree_login_connexion_1' => 'Login konekcije',
80
+    'entree_login_connexion_2' => '(Nekada odgovara vasem loginu za pristup na FTP; nekada je ostavljen prazan)',
81
+    'entree_mot_passe' => 'Vasa lozinka',
82
+    'entree_mot_passe_1' => 'Lozinka konekcije',
83
+    'entree_mot_passe_2' => '(Nekada odgovara vasoj lozinki za pristup na FTP, a nekada je ostavljeno prazno)',
84
+    'entree_nom_fichier' => 'Unesite ime dokumenta @texte_compresse@:',
85
+    'entree_nom_pseudo' => 'Vase ime ili pseudo',
86
+    'entree_nom_pseudo_1' => '(Vase ime ili pseudo)',
87
+    'entree_nom_site' => 'Ime vase stranice',
88
+    'entree_nouveau_passe' => 'Nova lozinka',
89
+    'entree_passe_ldap' => 'Lozinka',
90
+    'entree_port_annuaire' => 'Broj porta direktorija',
91
+    'entree_signature' => 'Potpis',
92
+    'entree_titre_obligatoire' => '<b>Naslov</b> [Obavezno]<br />', # MODIF
93
+    'entree_url' => 'URL adresa vase stranice',
94 94
 
95
-	// I
96
-	'ical_info1' => 'Na ovoj strani je predstavljeno nekoliko metoda kako da ostanete u toku sa aktuelnostima ove web stranice.',
97
-	'ical_info2' => 'Za sve informacije o ovim metodama, mozete konsultovati <a href="@spipnet@"> SPIP  dokumentaciju </a>.', # MODIF
98
-	'ical_info_calendrier' => 'Na raspolaganju vam stoje dva kalendara. Jedan je plan stranice koji najavljuje sve publicirane artikle. Drugi sadrzi editorijalne najave, kao sto su vase posljednje privatne poruke: On je rezervisan za vas zahvaljujuci licnom kljucu, koji mozete izmijeniti u svakom  momentu, dok mijenjate svoju lozinku.',
99
-	'ical_methode_http' => 'Download',
100
-	'ical_methode_webcal' => 'Sinhronizacija (webcal://)', # MODIF
101
-	'ical_texte_prive' => 'Ovaj kalendar, koji je iskljucivo za licnu upotrebu, obavjestava vas o privatnim editorijalnim  aktivnostima na ovoj stranici (zadaci i licni sastanci, clanci i objavljene kratke poruke).',
102
-	'ical_texte_rss' => 'Novosti sa ove stranice mozete sindikovati u bilo kojem citacu dokumenata XML/RSS (Rich Site Summary). Takodze, to je format koji dozvoljava SPIP-u da cita novosti objavljene na drugim stranicama, koristeci kompatibilan format  za razmjenu (sindikovane stranice).',
103
-	'ical_titre_js' => 'Javascript',
104
-	'ical_titre_mailing' => 'Mailing-lista',
105
-	'ical_titre_rss' => 'Dokumenti « backend »',
106
-	'icone_activer_cookie' => 'Postavi cookie',
107
-	'icone_afficher_auteurs' => 'Prikazi autore',
108
-	'icone_afficher_visiteurs' => 'Prikazi posjetioce',
109
-	'icone_arret_discussion' => 'Zavrsi ucesce u ovoj diskusiji',
110
-	'icone_calendrier' => 'Kalendar',
111
-	'icone_creer_auteur' => 'Kreiraj novog autora i asociraj ga s ovim clankom',
112
-	'icone_creer_mot_cle' => 'Kreiraj novu kljucnu rijec i povezi je sa ovim clankom',
113
-	'icone_creer_rubrique_2' => 'Kreiraj novu rubriku',
114
-	'icone_modifier_article' => 'Izmijeni ovaj clanak',
115
-	'icone_modifier_rubrique' => 'Izmijeni ovu rubriku',
116
-	'icone_retour' => 'Nazad',
117
-	'icone_retour_article' => 'Nazad na clanak',
118
-	'icone_supprimer_cookie' => 'Izbrisi cookie',
119
-	'icone_supprimer_rubrique' => 'Izbrisi ovu rubriku',
120
-	'icone_supprimer_signature' => 'Izbrisi ovaj potpis',
121
-	'icone_valider_signature' => 'Ovjeri ovaj potpis',
122
-	'image_administrer_rubrique' => 'Mozete biti administrator ove rubrike',
123
-	'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
124
-	'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
125
-	'info_1_article' => '1. clanak',
126
-	'info_activer_cookie' => 'Mozete aktivirati jedan <b> cookie za administraciu </b>, koji ce vam dozvoliti lak prelaz iz javnog u privati prostor.',
127
-	'info_administrateur' => 'Administrator',
128
-	'info_administrateur_1' => 'Administrator',
129
-	'info_administrateur_2' => 'stranice (<i>pazljiva  upotreba</i>)',
130
-	'info_administrateur_site_01' => 'Ako ste administrator stranice',
131
-	'info_administrateur_site_02' => 'kliknite ovaj link',
132
-	'info_administrateurs' => 'Administratori',
133
-	'info_administrer_rubrique' => 'Mozete biti administrator ove rubrike',
134
-	'info_adresse' => 'na adresu:',
135
-	'info_adresse_url' => 'URL adresa stranice za javnost',
136
-	'info_aide_en_ligne' => 'Online pomoc za SPIP',
137
-	'info_ajout_image' => 'Ako clanku dodajete fotografije u formi dokumenta, SPIP moze kreirati vinjete (minijature) dodanih  fotografija. To naprimjer dozvoljava automatsko kreiranje  galerije ili portfolija.',
138
-	'info_ajouter_rubrique' => 'Dodaj drugu rubriku za administraciju:',
139
-	'info_annonce_nouveautes' => 'Najava novosti',
140
-	'info_article' => 'clanak',
141
-	'info_article_2' => 'clanci',
142
-	'info_article_a_paraitre' => 'Prikazi clanke sa kasnijim  datumom',
143
-	'info_articles_02' => 'clanci',
144
-	'info_articles_2' => 'Clanci',
145
-	'info_articles_auteur' => 'Clanci ovog autora',
146
-	'info_articles_trouves' => 'Pronadjeni clanci',
147
-	'info_attente_validation' => 'Vasi clanci koji cekaju ovjeru',
148
-	'info_aujourdhui' => 'danas:',
149
-	'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', # MODIF
150
-	'info_auteurs' => 'Autori',
151
-	'info_auteurs_par_tri' => 'Autori@partri@',
152
-	'info_auteurs_trouves' => 'Pronadjeni autori',
153
-	'info_authentification_externe' => 'Eksterna autentifikacija',
154
-	'info_avertissement' => 'Upozorenje',
155
-	'info_base_installee' => 'Struktura vase baze podatake je instalirana.',
156
-	'info_chapeau' => 'Uvod',
157
-	'info_chapeau_2' => 'Uvod:',
158
-	'info_chemin_acces_1' => 'Opcije: <b>Putanja pristupa u direktorij</b>', # MODIF
159
-	'info_chemin_acces_2' => 'Od sada cete morati konfigurisati putanju pristupa informacijama iz direktorija. Ova informacija je neophodna za citanje profila korisnika koji su pohranjeni u direktoriju.',
160
-	'info_chemin_acces_annuaire' => 'Opcije : <b>Putanja pristupa u direktorij', # MODIF
161
-	'info_choix_base' => 'Treca etapa :',
162
-	'info_classement_1' => '<sup>er</sup> iz @liste@',
163
-	'info_classement_2' => '<sup>e</sup> iz @liste@',
164
-	'info_code_acces' => 'Ne zaboravite vas kod za pristup!',
165
-	'info_config_suivi' => 'Ako ova adresa odgovara mailing listi, ispod mozete naznaciti adresu na koju se ucesnici mogu registrovati. Ta adresa moze biti URL (npr. strana za  upisivanje na listu putem web-a), ili e-mail adresa opremljena  specificnim subjektom(npr.:  <tt>@adresse_suivi@?subject=prijava</tt>):',
166
-	'info_config_suivi_explication' => 'Mozete se prikljuciti mailing-listi ove stranice. Poslije cete u elektronskim putem primiti najave clanaka i kratkih poruka, koje su predlozene za publikaciju',
167
-	'info_confirmer_passe' => 'Potvrdi novu lozinku:',
168
-	'info_connexion_base' => 'Druga etapa: <b>Pokusaj konekcije sa bazom</b>', # MODIF
169
-	'info_connexion_ldap_ok' => 'Uspjesna LDAP konekcija.</b><p>  Mozete pristupiti sljedecoj etapi</p>', # MODIF
170
-	'info_connexion_mysql' => 'Prva etapa: <b>Vasa SQL konekcija</b>', # MODIF
171
-	'info_connexion_ok' => 'Uspjesna konekcija.',
172
-	'info_contact' => 'Kontakt',
173
-	'info_contenu_articles' => 'Sadrzaj clanaka',
174
-	'info_creation_paragraphe' => '(Da biste kreirali odlomke, linije ostavite prazne.)', # MODIF
175
-	'info_creation_rubrique' => 'Prije nego mozete pisati clanke,<br /> morate kreirati najmanje jednu rubriku.<br />', # MODIF
176
-	'info_creation_tables' => 'Cetvrta etapa: <b>Kreiranje tabela baze</b>', # MODIF
177
-	'info_creer_base' => '<b>Kreirati</b> novu bazu podataka:', # MODIF
178
-	'info_dans_rubrique' => 'U rubrici:',
179
-	'info_date_publication_anterieure' => 'Datum proslog objavljivanja:',
180
-	'info_date_referencement' => 'DATUM PREPORUKE OVE STRANICE:',
181
-	'info_derniere_etape' => 'Posljednja etapa: <b>Zavrseno je!', # MODIF
182
-	'info_descriptif' => 'Opis:',
183
-	'info_discussion_cours' => 'Aktivne diskusije',
184
-	'info_ecrire_article' => 'Prije nego mozete pisati clanke, morate kreirati najmanje jednu rubriku.',
185
-	'info_email_envoi' => 'E-mail adresa za slanje (fakultativno)',
186
-	'info_email_envoi_txt' => 'Ovdje oznacite adresu za slanje e-mailova (po standardu ce adresa primaoca biti koristena kao adresa za slanje):',
187
-	'info_email_webmestre' => 'E-mail adresa webmastera (fakultativno)', # MODIF
188
-	'info_envoi_email_automatique' => 'Automatsko slanje e-mailova',
189
-	'info_envoyer_maintenant' => 'Posalji sada',
190
-	'info_etape_suivante' => 'Pristupi sljedecoj etapi',
191
-	'info_etape_suivante_1' => 'Mozete pristupiti sljedecoj etapi.',
192
-	'info_etape_suivante_2' => 'Mozete pristupiti sljedecoj etapi.',
193
-	'info_exportation_base' => 'eksportuj baze u @archive@',
194
-	'info_facilite_suivi_activite' => 'U svrhu posmatranja  editorijalne aktivnosti stranice, SPIP moze elektronskom postom  (npr. mailing listom urednika) proslijedjivati najave zahtijeva za publikaciju i ovjeru clanaka.', # MODIF
195
-	'info_fichiers_authent' => 'Dokument autentifikacije « .htpasswd »',
196
-	'info_forums_abo_invites' => 'Vasa stranica obudhvata i forume za clanove; posjetioci se pozivaju na registraciju u javnom  prostoru stanice.',
197
-	'info_gauche_admin_tech' => '<b>Ova strana je dostupna samo osobama odgovornim za web stranicu.</b><p> Ona daje pristup raznim funkcijama tehnickog odrzavanja. Neke od njih pruzaju  mogucnost specificne autentifikacije, koja zahtijeva pristup FTP-u web stranice.</p>', # MODIF
198
-	'info_gauche_admin_vider' => '<b>Ova strana je dostupna samo osobama odgovornim za web stranicu.</b><p> Ona daje pristup raznim funkcijama tehnickog odrzavanja. Neke od njih pruzaju mogucnost specificne autentifikacije, koja zahtijeva pristup FTP-u web stranice.</p>', # MODIF
199
-	'info_gauche_auteurs' => 'Ovdje cete pronaci sve autore ove web stranice. Njihov status je naznacen bojom njihove ikone (administrator = zelena; urednik = zuta).',
200
-	'info_gauche_auteurs_exterieurs' => 'Vanjski autori bez pristupa stranici su oznaceni plavom ikonom, a izbrisani autori sa ikonicom korpe za smece.', # MODIF
201
-	'info_gauche_messagerie' => 'Servis za slanje poruka vam omogucuje razmjenu poruka medju piscima, cuvanje biljeske (za licnu upotrebu) ili, ako ste administrator, postavljanje najava na pocetnu stranicu u privatnom prostoru.',
202
-	'info_gauche_statistiques_referers' => 'Ova strana predstavlja  listu <i>referenci</i>, sto znaci stranice koje sadrze linkove  sa vasom licnom stranicom, ali samo za jucer i danas; ova lista se vraca na nulu svaka 20 sata.',
203
-	'info_gauche_visiteurs_enregistres' => 'Ovdje mozete pronaci posjetioce koji su registrovani na javnoj stranici (forumi za clanove).',
204
-	'info_generation_miniatures_images' => 'Obradjivanje minijaturnih slika',
205
-	'info_hebergeur_desactiver_envoi_email' => 'Neki kompjuteri dezaktiviraju automatsko slanje mailova njihovim serverima. U tom slucaju sljedece funkcije SPIP-a nece biti u uptrebi.',
206
-	'info_hier' => 'Jucer:',
207
-	'info_identification_publique' => 'Vas javni identitet...',
208
-	'info_image_process' => 'Izaberite najbolju metodu pravljenja vinjeta tako sto cete kliknuti na odgovarajucu sliku.',
209
-	'info_images_auto' => 'Automatski izracunate slike',
210
-	'info_informations_personnelles' => 'Peta etapa: <b>Licne informacije</b>', # MODIF
211
-	'info_inscription_automatique' => 'Automatsko upisivanje novih urednika',
212
-	'info_jeu_caractere' => 'Set karaktera stranice',
213
-	'info_jours' => 'dani',
214
-	'info_laisser_champs_vides' => 'ostavi ova polja prazna)',
215
-	'info_langues' => 'Jezici stranice',
216
-	'info_ldap_ok' => 'LDAP autentifikacija je instalirana.',
217
-	'info_lien_hypertexte' => 'Hiperlink:',
218
-	'info_liste_redacteurs_connectes' => 'Lista konektovanih urednika',
219
-	'info_login_existant' => 'Ovaj login vec postoji.',
220
-	'info_login_trop_court' => 'Ovaj login je prekratak.',
221
-	'info_maximum' => 'maksimalno:',
222
-	'info_meme_rubrique' => 'U istoj rubrici',
223
-	'info_message_en_redaction' => 'Vase poruke u toku uredjivanja',
224
-	'info_message_technique' => 'Tehnicka poruka:',
225
-	'info_messagerie_interne' => 'Interni servis za poruke',
226
-	'info_mise_a_niveau_base' => 'nadogradnja vase SQL baze', # MODIF
227
-	'info_mise_a_niveau_base_2' => '\\{\\{Paznja!\\}\\} Instalirali ste verziju SPIP dokumenata, koji su stariji od one koja je vec postojala na stranici: vasa baza podataka je vjerovatno izgubljena i vasa stranica vise nece funkcionisati.  <br />\\{\\{Ponovo instalirajte SPIP dokumente\\}\\}', # MODIF
228
-	'info_modifier_rubrique' => 'Izmijeni rubriku:',
229
-	'info_modifier_titre' => 'Izmijeni: @titre@',
230
-	'info_mon_site_spip' => 'Moja SPIP stranica',
231
-	'info_moyenne' => 'prosjek:',
232
-	'info_multi_cet_article' => 'Jezik ovog clanka:',
233
-	'info_multi_langues_choisies' => 'Izaberite jezike koji ce biti na raspolaganju urednicima vase stranice. Jezici koji se vec koriste na vasoj stranici, ne mogu se iskluciti.',
234
-	'info_multi_secteurs' => '... samo za rubrike koje se nalaze na root-u?',
235
-	'info_nom' => 'Ime',
236
-	'info_nom_destinataire' => 'Ime primaoca',
237
-	'info_nom_site' => 'Ime vase stranice',
238
-	'info_nombre_articles' => '@nb_articles@ clanci,',
239
-	'info_nombre_rubriques' => '@nb_rubriques@ rubrike,',
240
-	'info_nombre_sites' => '@nb_sites@ stranice,',
241
-	'info_non_deplacer' => 'Ne premijestati...',
242
-	'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP moze regularno poslati najavu posljednjih novosti stranice (recentno objavljeni clanci i kratke poruke).',
243
-	'info_non_envoi_liste_nouveautes' => 'Ne slati listu novosti',
244
-	'info_non_modifiable' => 'Ne moze se modifikovati',
245
-	'info_non_suppression_mot_cle' => 'Ne zelim izbrisati ovu kljucnu rijec.',
246
-	'info_notes' => 'Biljeske',
247
-	'info_nouvel_article' => 'Novi clanak',
248
-	'info_nouvelle_traduction' => 'Novi prevod:',
249
-	'info_numero_article' => 'CLANAK BROJ:',
250
-	'info_obligatoire_02' => '[Obavezno]', # MODIF
251
-	'info_option_accepter_visiteurs' => 'Prihvati upisivanje posjetioca na javnoj stranici',
252
-	'info_option_ne_pas_accepter_visiteurs' => 'Odbij upisivanje posjetioca',
253
-	'info_options_avancees' => 'NAPREDNE OPCIJE',
254
-	'info_ou' => 'ili...',
255
-	'info_page_interdite' => 'Ova strana je zabranjena',
256
-	'info_par_nombre_article' => '(po broju clanaka)', # MODIF
257
-	'info_passe_trop_court' => 'Prekratka lozinka.',
258
-	'info_passes_identiques' => 'Lozinke nisu identicne.',
259
-	'info_plus_cinq_car' => 'vise od pet karaktera',
260
-	'info_plus_cinq_car_2' => '(Vise od pet karaktera)',
261
-	'info_plus_trois_car' => '(Vise od tri karaktera)',
262
-	'info_popularite' => 'popularnosti: @popularite@ ;  posjete: @visites@',
263
-	'info_post_scriptum' => 'Post-Scriptum',
264
-	'info_post_scriptum_2' => 'Post-scriptum :',
265
-	'info_pour' => 'za',
266
-	'info_preview_texte' => 'Moguce je stranicu pogledati online, kao da su svi clanci i kratke poruke objavljene, ukoliko iste imaju « predlozen » status. Da li ova opcija treba biti otvorena samo administratorima, svim urednicima ili nikome?', # MODIF
267
-	'info_procedez_par_etape' => 'Slijedite etape',
268
-	'info_procedure_maj_version' => 'Potrebno je pokrenuti update, da bi se baza podataka prikljucila novoj verziji SPIP-a.',
269
-	'info_ps' => 'P.S.:', # MODIF
270
-	'info_publier' => 'objavi moje clanke',
271
-	'info_question_accepter_visiteurs' => 'Ako obrasci vase stranice ukljucuju upisivanje posjetioca bez pristupa u  privatnu stranicu, aktivirajte sljedecu opciju:',
272
-	'info_question_inscription_nouveaux_redacteurs' => 'Da li prihvatate upisivanje novih urednika u javnom prostoru  stranice? Ako prihvatate, posjetioci ce se moci registrovati putem automatskog formulara, a zatim ce moci pristupiti privatnom prostoru i predlagati svoje clanke. <blockquote><i>Tokom faze upisivanja, korisnici ce primiti  automatski e-mail sa kodom za pristup u privatnu stranicu. Neki kompjuteri sprecavaju slanje mailova putem njihovih servera: u tom slucaju ce automatsko upisivanje biti nemoguce.', # MODIF
273
-	'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', # MODIF
274
-	'info_racine_site' => 'Korjen stranice',
275
-	'info_recharger_page' => 'Restartujte ovu stranicu za nekoliko momenata.',
276
-	'info_recherche_auteur_zero' => 'Nema rezultata za « @cherche_auteur@ ».',
277
-	'info_recommencer' => 'Pocnite ponovo.',
278
-	'info_redacteur_1' => 'Urednik',
279
-	'info_redacteur_2' => 'koji ima/ju pristup privatnoj stranici (<i>recommandé</i>)',
280
-	'info_redacteurs' => 'Urednici',
281
-	'info_redaction_en_cours' => 'U TOKU UREDJIVANJA',
282
-	'info_redirection' => 'Preusmjerenje',
283
-	'info_refuses' => 'Vasi odbijeni clanci',
284
-	'info_reglage_ldap' => 'Opcije: namijestanje LDAP importa</b>', # MODIF
285
-	'info_renvoi_article' => '<b>Preusmjerenje.</b> Ovaj clanak se preusmjerava na stranicu:', # MODIF
286
-	'info_reserve_admin' => 'Samo administratori mogu izmijeniti ovu adresu.',
287
-	'info_restreindre_rubrique' => 'Ograniciti uredjivanje rubrike:',
288
-	'info_resultat_recherche' => 'Rezultati pretrage:',
289
-	'info_rubriques' => 'Rubrike',
290
-	'info_rubriques_02' => 'rubrike',
291
-	'info_rubriques_trouvees' => 'Pronadjene rubrike',
292
-	'info_sans_titre' => 'Bez naslova',
293
-	'info_selection_chemin_acces' => '<b>Izaberite</b> putanju pristupa direktoriju:',
294
-	'info_signatures' => 'potpisi',
295
-	'info_site' => 'Stranica',
296
-	'info_site_2' => 'stranica:',
297
-	'info_site_min' => 'stranica',
298
-	'info_site_reference_2' => 'Preporucena stranica',
299
-	'info_site_web' => 'WEB STRANICA :', # MODIF
300
-	'info_sites' => 'stranice',
301
-	'info_sites_lies_mot' => 'Preporucene stranice koje su vezane za ovu kljucnu rijec',
302
-	'info_sites_proxy' => 'Koristi proxy',
303
-	'info_sites_trouves' => 'Pronadjene stranice',
304
-	'info_sous_titre' => 'Podnaslov:',
305
-	'info_statut_administrateur' => 'Administrator',
306
-	'info_statut_auteur' => 'Status ovog autora:', # MODIF
307
-	'info_statut_redacteur' => 'Urednik',
308
-	'info_statut_utilisateurs_1' => 'Standardni status importovanih korisnika',
309
-	'info_statut_utilisateurs_2' => 'Izaberita koji status ce imati osobe koje su prisutne u LDAP direktoriju, kada se konektuju  prvi put. Kasnije ce te biti u mogucnosti da status svakog autora individualno izmijenite.',
310
-	'info_suivi_activite' => 'Pracenje urednicke aktivnosti',
311
-	'info_surtitre' => 'Nadnaslov:',
312
-	'info_taille_maximale_vignette' => 'Maksimalna velicina vinjeta  koje uredjuje sistem:',
313
-	'info_terminer_installation' => 'Sada mozete zavrsiti standardnu proceduru instalacije.',
314
-	'info_texte' => 'Tekst',
315
-	'info_texte_explicatif' => 'Eksplikacioni tekst',
316
-	'info_texte_long' => '(Ovaj tekst je dug, a zato je prikazan u vise dijelova, koji ce biti sastavljeni poslije ovjere.)',
317
-	'info_texte_message' => 'Tekst vase poruke:', # MODIF
318
-	'info_texte_message_02' => 'Tekst poruke',
319
-	'info_titre' => 'Naslov:',
320
-	'info_total' => 'total:',
321
-	'info_tous_articles_en_redaction' => 'Svi clanci koji su fazi obradjivanja',
322
-	'info_tous_articles_presents' => 'Svi objavljeni clanci u ovoj rubrici',
323
-	'info_tous_les' => 'svi:',
324
-	'info_tout_site' => 'Citava web stranica',
325
-	'info_tout_site2' => 'Clanak nije preveden na ovaj jezik.',
326
-	'info_tout_site3' => 'Clanak je preveden na ovaj jezik, ali su usvojene izmjene preporucenog clanka. Potrebno je obnoviti  prevod.',
327
-	'info_tout_site4' => 'Clanak je preveden na ovaj jezik i prevod je obnovljen.',
328
-	'info_tout_site5' => 'Originalni clanak.',
329
-	'info_tout_site6' => '<b>Paznja:</b> prikazani su samo originalni clanci.
95
+    // I
96
+    'ical_info1' => 'Na ovoj strani je predstavljeno nekoliko metoda kako da ostanete u toku sa aktuelnostima ove web stranice.',
97
+    'ical_info2' => 'Za sve informacije o ovim metodama, mozete konsultovati <a href="@spipnet@"> SPIP  dokumentaciju </a>.', # MODIF
98
+    'ical_info_calendrier' => 'Na raspolaganju vam stoje dva kalendara. Jedan je plan stranice koji najavljuje sve publicirane artikle. Drugi sadrzi editorijalne najave, kao sto su vase posljednje privatne poruke: On je rezervisan za vas zahvaljujuci licnom kljucu, koji mozete izmijeniti u svakom  momentu, dok mijenjate svoju lozinku.',
99
+    'ical_methode_http' => 'Download',
100
+    'ical_methode_webcal' => 'Sinhronizacija (webcal://)', # MODIF
101
+    'ical_texte_prive' => 'Ovaj kalendar, koji je iskljucivo za licnu upotrebu, obavjestava vas o privatnim editorijalnim  aktivnostima na ovoj stranici (zadaci i licni sastanci, clanci i objavljene kratke poruke).',
102
+    'ical_texte_rss' => 'Novosti sa ove stranice mozete sindikovati u bilo kojem citacu dokumenata XML/RSS (Rich Site Summary). Takodze, to je format koji dozvoljava SPIP-u da cita novosti objavljene na drugim stranicama, koristeci kompatibilan format  za razmjenu (sindikovane stranice).',
103
+    'ical_titre_js' => 'Javascript',
104
+    'ical_titre_mailing' => 'Mailing-lista',
105
+    'ical_titre_rss' => 'Dokumenti « backend »',
106
+    'icone_activer_cookie' => 'Postavi cookie',
107
+    'icone_afficher_auteurs' => 'Prikazi autore',
108
+    'icone_afficher_visiteurs' => 'Prikazi posjetioce',
109
+    'icone_arret_discussion' => 'Zavrsi ucesce u ovoj diskusiji',
110
+    'icone_calendrier' => 'Kalendar',
111
+    'icone_creer_auteur' => 'Kreiraj novog autora i asociraj ga s ovim clankom',
112
+    'icone_creer_mot_cle' => 'Kreiraj novu kljucnu rijec i povezi je sa ovim clankom',
113
+    'icone_creer_rubrique_2' => 'Kreiraj novu rubriku',
114
+    'icone_modifier_article' => 'Izmijeni ovaj clanak',
115
+    'icone_modifier_rubrique' => 'Izmijeni ovu rubriku',
116
+    'icone_retour' => 'Nazad',
117
+    'icone_retour_article' => 'Nazad na clanak',
118
+    'icone_supprimer_cookie' => 'Izbrisi cookie',
119
+    'icone_supprimer_rubrique' => 'Izbrisi ovu rubriku',
120
+    'icone_supprimer_signature' => 'Izbrisi ovaj potpis',
121
+    'icone_valider_signature' => 'Ovjeri ovaj potpis',
122
+    'image_administrer_rubrique' => 'Mozete biti administrator ove rubrike',
123
+    'impossible_modifier_login_auteur' => 'Impossible de modifier le login.', # MODIF
124
+    'impossible_modifier_pass_auteur' => 'Impossible de modifier le mot de passe.', # MODIF
125
+    'info_1_article' => '1. clanak',
126
+    'info_activer_cookie' => 'Mozete aktivirati jedan <b> cookie za administraciu </b>, koji ce vam dozvoliti lak prelaz iz javnog u privati prostor.',
127
+    'info_administrateur' => 'Administrator',
128
+    'info_administrateur_1' => 'Administrator',
129
+    'info_administrateur_2' => 'stranice (<i>pazljiva  upotreba</i>)',
130
+    'info_administrateur_site_01' => 'Ako ste administrator stranice',
131
+    'info_administrateur_site_02' => 'kliknite ovaj link',
132
+    'info_administrateurs' => 'Administratori',
133
+    'info_administrer_rubrique' => 'Mozete biti administrator ove rubrike',
134
+    'info_adresse' => 'na adresu:',
135
+    'info_adresse_url' => 'URL adresa stranice za javnost',
136
+    'info_aide_en_ligne' => 'Online pomoc za SPIP',
137
+    'info_ajout_image' => 'Ako clanku dodajete fotografije u formi dokumenta, SPIP moze kreirati vinjete (minijature) dodanih  fotografija. To naprimjer dozvoljava automatsko kreiranje  galerije ili portfolija.',
138
+    'info_ajouter_rubrique' => 'Dodaj drugu rubriku za administraciju:',
139
+    'info_annonce_nouveautes' => 'Najava novosti',
140
+    'info_article' => 'clanak',
141
+    'info_article_2' => 'clanci',
142
+    'info_article_a_paraitre' => 'Prikazi clanke sa kasnijim  datumom',
143
+    'info_articles_02' => 'clanci',
144
+    'info_articles_2' => 'Clanci',
145
+    'info_articles_auteur' => 'Clanci ovog autora',
146
+    'info_articles_trouves' => 'Pronadjeni clanci',
147
+    'info_attente_validation' => 'Vasi clanci koji cekaju ovjeru',
148
+    'info_aujourdhui' => 'danas:',
149
+    'info_auteur_gere_toutes_rubriques_2' => 'Je gère <b>toutes les rubriques</b>', # MODIF
150
+    'info_auteurs' => 'Autori',
151
+    'info_auteurs_par_tri' => 'Autori@partri@',
152
+    'info_auteurs_trouves' => 'Pronadjeni autori',
153
+    'info_authentification_externe' => 'Eksterna autentifikacija',
154
+    'info_avertissement' => 'Upozorenje',
155
+    'info_base_installee' => 'Struktura vase baze podatake je instalirana.',
156
+    'info_chapeau' => 'Uvod',
157
+    'info_chapeau_2' => 'Uvod:',
158
+    'info_chemin_acces_1' => 'Opcije: <b>Putanja pristupa u direktorij</b>', # MODIF
159
+    'info_chemin_acces_2' => 'Od sada cete morati konfigurisati putanju pristupa informacijama iz direktorija. Ova informacija je neophodna za citanje profila korisnika koji su pohranjeni u direktoriju.',
160
+    'info_chemin_acces_annuaire' => 'Opcije : <b>Putanja pristupa u direktorij', # MODIF
161
+    'info_choix_base' => 'Treca etapa :',
162
+    'info_classement_1' => '<sup>er</sup> iz @liste@',
163
+    'info_classement_2' => '<sup>e</sup> iz @liste@',
164
+    'info_code_acces' => 'Ne zaboravite vas kod za pristup!',
165
+    'info_config_suivi' => 'Ako ova adresa odgovara mailing listi, ispod mozete naznaciti adresu na koju se ucesnici mogu registrovati. Ta adresa moze biti URL (npr. strana za  upisivanje na listu putem web-a), ili e-mail adresa opremljena  specificnim subjektom(npr.:  <tt>@adresse_suivi@?subject=prijava</tt>):',
166
+    'info_config_suivi_explication' => 'Mozete se prikljuciti mailing-listi ove stranice. Poslije cete u elektronskim putem primiti najave clanaka i kratkih poruka, koje su predlozene za publikaciju',
167
+    'info_confirmer_passe' => 'Potvrdi novu lozinku:',
168
+    'info_connexion_base' => 'Druga etapa: <b>Pokusaj konekcije sa bazom</b>', # MODIF
169
+    'info_connexion_ldap_ok' => 'Uspjesna LDAP konekcija.</b><p>  Mozete pristupiti sljedecoj etapi</p>', # MODIF
170
+    'info_connexion_mysql' => 'Prva etapa: <b>Vasa SQL konekcija</b>', # MODIF
171
+    'info_connexion_ok' => 'Uspjesna konekcija.',
172
+    'info_contact' => 'Kontakt',
173
+    'info_contenu_articles' => 'Sadrzaj clanaka',
174
+    'info_creation_paragraphe' => '(Da biste kreirali odlomke, linije ostavite prazne.)', # MODIF
175
+    'info_creation_rubrique' => 'Prije nego mozete pisati clanke,<br /> morate kreirati najmanje jednu rubriku.<br />', # MODIF
176
+    'info_creation_tables' => 'Cetvrta etapa: <b>Kreiranje tabela baze</b>', # MODIF
177
+    'info_creer_base' => '<b>Kreirati</b> novu bazu podataka:', # MODIF
178
+    'info_dans_rubrique' => 'U rubrici:',
179
+    'info_date_publication_anterieure' => 'Datum proslog objavljivanja:',
180
+    'info_date_referencement' => 'DATUM PREPORUKE OVE STRANICE:',
181
+    'info_derniere_etape' => 'Posljednja etapa: <b>Zavrseno je!', # MODIF
182
+    'info_descriptif' => 'Opis:',
183
+    'info_discussion_cours' => 'Aktivne diskusije',
184
+    'info_ecrire_article' => 'Prije nego mozete pisati clanke, morate kreirati najmanje jednu rubriku.',
185
+    'info_email_envoi' => 'E-mail adresa za slanje (fakultativno)',
186
+    'info_email_envoi_txt' => 'Ovdje oznacite adresu za slanje e-mailova (po standardu ce adresa primaoca biti koristena kao adresa za slanje):',
187
+    'info_email_webmestre' => 'E-mail adresa webmastera (fakultativno)', # MODIF
188
+    'info_envoi_email_automatique' => 'Automatsko slanje e-mailova',
189
+    'info_envoyer_maintenant' => 'Posalji sada',
190
+    'info_etape_suivante' => 'Pristupi sljedecoj etapi',
191
+    'info_etape_suivante_1' => 'Mozete pristupiti sljedecoj etapi.',
192
+    'info_etape_suivante_2' => 'Mozete pristupiti sljedecoj etapi.',
193
+    'info_exportation_base' => 'eksportuj baze u @archive@',
194
+    'info_facilite_suivi_activite' => 'U svrhu posmatranja  editorijalne aktivnosti stranice, SPIP moze elektronskom postom  (npr. mailing listom urednika) proslijedjivati najave zahtijeva za publikaciju i ovjeru clanaka.', # MODIF
195
+    'info_fichiers_authent' => 'Dokument autentifikacije « .htpasswd »',
196
+    'info_forums_abo_invites' => 'Vasa stranica obudhvata i forume za clanove; posjetioci se pozivaju na registraciju u javnom  prostoru stanice.',
197
+    'info_gauche_admin_tech' => '<b>Ova strana je dostupna samo osobama odgovornim za web stranicu.</b><p> Ona daje pristup raznim funkcijama tehnickog odrzavanja. Neke od njih pruzaju  mogucnost specificne autentifikacije, koja zahtijeva pristup FTP-u web stranice.</p>', # MODIF
198
+    'info_gauche_admin_vider' => '<b>Ova strana je dostupna samo osobama odgovornim za web stranicu.</b><p> Ona daje pristup raznim funkcijama tehnickog odrzavanja. Neke od njih pruzaju mogucnost specificne autentifikacije, koja zahtijeva pristup FTP-u web stranice.</p>', # MODIF
199
+    'info_gauche_auteurs' => 'Ovdje cete pronaci sve autore ove web stranice. Njihov status je naznacen bojom njihove ikone (administrator = zelena; urednik = zuta).',
200
+    'info_gauche_auteurs_exterieurs' => 'Vanjski autori bez pristupa stranici su oznaceni plavom ikonom, a izbrisani autori sa ikonicom korpe za smece.', # MODIF
201
+    'info_gauche_messagerie' => 'Servis za slanje poruka vam omogucuje razmjenu poruka medju piscima, cuvanje biljeske (za licnu upotrebu) ili, ako ste administrator, postavljanje najava na pocetnu stranicu u privatnom prostoru.',
202
+    'info_gauche_statistiques_referers' => 'Ova strana predstavlja  listu <i>referenci</i>, sto znaci stranice koje sadrze linkove  sa vasom licnom stranicom, ali samo za jucer i danas; ova lista se vraca na nulu svaka 20 sata.',
203
+    'info_gauche_visiteurs_enregistres' => 'Ovdje mozete pronaci posjetioce koji su registrovani na javnoj stranici (forumi za clanove).',
204
+    'info_generation_miniatures_images' => 'Obradjivanje minijaturnih slika',
205
+    'info_hebergeur_desactiver_envoi_email' => 'Neki kompjuteri dezaktiviraju automatsko slanje mailova njihovim serverima. U tom slucaju sljedece funkcije SPIP-a nece biti u uptrebi.',
206
+    'info_hier' => 'Jucer:',
207
+    'info_identification_publique' => 'Vas javni identitet...',
208
+    'info_image_process' => 'Izaberite najbolju metodu pravljenja vinjeta tako sto cete kliknuti na odgovarajucu sliku.',
209
+    'info_images_auto' => 'Automatski izracunate slike',
210
+    'info_informations_personnelles' => 'Peta etapa: <b>Licne informacije</b>', # MODIF
211
+    'info_inscription_automatique' => 'Automatsko upisivanje novih urednika',
212
+    'info_jeu_caractere' => 'Set karaktera stranice',
213
+    'info_jours' => 'dani',
214
+    'info_laisser_champs_vides' => 'ostavi ova polja prazna)',
215
+    'info_langues' => 'Jezici stranice',
216
+    'info_ldap_ok' => 'LDAP autentifikacija je instalirana.',
217
+    'info_lien_hypertexte' => 'Hiperlink:',
218
+    'info_liste_redacteurs_connectes' => 'Lista konektovanih urednika',
219
+    'info_login_existant' => 'Ovaj login vec postoji.',
220
+    'info_login_trop_court' => 'Ovaj login je prekratak.',
221
+    'info_maximum' => 'maksimalno:',
222
+    'info_meme_rubrique' => 'U istoj rubrici',
223
+    'info_message_en_redaction' => 'Vase poruke u toku uredjivanja',
224
+    'info_message_technique' => 'Tehnicka poruka:',
225
+    'info_messagerie_interne' => 'Interni servis za poruke',
226
+    'info_mise_a_niveau_base' => 'nadogradnja vase SQL baze', # MODIF
227
+    'info_mise_a_niveau_base_2' => '\\{\\{Paznja!\\}\\} Instalirali ste verziju SPIP dokumenata, koji su stariji od one koja je vec postojala na stranici: vasa baza podataka je vjerovatno izgubljena i vasa stranica vise nece funkcionisati.  <br />\\{\\{Ponovo instalirajte SPIP dokumente\\}\\}', # MODIF
228
+    'info_modifier_rubrique' => 'Izmijeni rubriku:',
229
+    'info_modifier_titre' => 'Izmijeni: @titre@',
230
+    'info_mon_site_spip' => 'Moja SPIP stranica',
231
+    'info_moyenne' => 'prosjek:',
232
+    'info_multi_cet_article' => 'Jezik ovog clanka:',
233
+    'info_multi_langues_choisies' => 'Izaberite jezike koji ce biti na raspolaganju urednicima vase stranice. Jezici koji se vec koriste na vasoj stranici, ne mogu se iskluciti.',
234
+    'info_multi_secteurs' => '... samo za rubrike koje se nalaze na root-u?',
235
+    'info_nom' => 'Ime',
236
+    'info_nom_destinataire' => 'Ime primaoca',
237
+    'info_nom_site' => 'Ime vase stranice',
238
+    'info_nombre_articles' => '@nb_articles@ clanci,',
239
+    'info_nombre_rubriques' => '@nb_rubriques@ rubrike,',
240
+    'info_nombre_sites' => '@nb_sites@ stranice,',
241
+    'info_non_deplacer' => 'Ne premijestati...',
242
+    'info_non_envoi_annonce_dernieres_nouveautes' => 'SPIP moze regularno poslati najavu posljednjih novosti stranice (recentno objavljeni clanci i kratke poruke).',
243
+    'info_non_envoi_liste_nouveautes' => 'Ne slati listu novosti',
244
+    'info_non_modifiable' => 'Ne moze se modifikovati',
245
+    'info_non_suppression_mot_cle' => 'Ne zelim izbrisati ovu kljucnu rijec.',
246
+    'info_notes' => 'Biljeske',
247
+    'info_nouvel_article' => 'Novi clanak',
248
+    'info_nouvelle_traduction' => 'Novi prevod:',
249
+    'info_numero_article' => 'CLANAK BROJ:',
250
+    'info_obligatoire_02' => '[Obavezno]', # MODIF
251
+    'info_option_accepter_visiteurs' => 'Prihvati upisivanje posjetioca na javnoj stranici',
252
+    'info_option_ne_pas_accepter_visiteurs' => 'Odbij upisivanje posjetioca',
253
+    'info_options_avancees' => 'NAPREDNE OPCIJE',
254
+    'info_ou' => 'ili...',
255
+    'info_page_interdite' => 'Ova strana je zabranjena',
256
+    'info_par_nombre_article' => '(po broju clanaka)', # MODIF
257
+    'info_passe_trop_court' => 'Prekratka lozinka.',
258
+    'info_passes_identiques' => 'Lozinke nisu identicne.',
259
+    'info_plus_cinq_car' => 'vise od pet karaktera',
260
+    'info_plus_cinq_car_2' => '(Vise od pet karaktera)',
261
+    'info_plus_trois_car' => '(Vise od tri karaktera)',
262
+    'info_popularite' => 'popularnosti: @popularite@ ;  posjete: @visites@',
263
+    'info_post_scriptum' => 'Post-Scriptum',
264
+    'info_post_scriptum_2' => 'Post-scriptum :',
265
+    'info_pour' => 'za',
266
+    'info_preview_texte' => 'Moguce je stranicu pogledati online, kao da su svi clanci i kratke poruke objavljene, ukoliko iste imaju « predlozen » status. Da li ova opcija treba biti otvorena samo administratorima, svim urednicima ili nikome?', # MODIF
267
+    'info_procedez_par_etape' => 'Slijedite etape',
268
+    'info_procedure_maj_version' => 'Potrebno je pokrenuti update, da bi se baza podataka prikljucila novoj verziji SPIP-a.',
269
+    'info_ps' => 'P.S.:', # MODIF
270
+    'info_publier' => 'objavi moje clanke',
271
+    'info_question_accepter_visiteurs' => 'Ako obrasci vase stranice ukljucuju upisivanje posjetioca bez pristupa u  privatnu stranicu, aktivirajte sljedecu opciju:',
272
+    'info_question_inscription_nouveaux_redacteurs' => 'Da li prihvatate upisivanje novih urednika u javnom prostoru  stranice? Ako prihvatate, posjetioci ce se moci registrovati putem automatskog formulara, a zatim ce moci pristupiti privatnom prostoru i predlagati svoje clanke. <blockquote><i>Tokom faze upisivanja, korisnici ce primiti  automatski e-mail sa kodom za pristup u privatnu stranicu. Neki kompjuteri sprecavaju slanje mailova putem njihovih servera: u tom slucaju ce automatsko upisivanje biti nemoguce.', # MODIF
273
+    'info_qui_edite' => '@nom_auteur_modif@ a travaillé sur ce contenu il y a @date_diff@ minutes', # MODIF
274
+    'info_racine_site' => 'Korjen stranice',
275
+    'info_recharger_page' => 'Restartujte ovu stranicu za nekoliko momenata.',
276
+    'info_recherche_auteur_zero' => 'Nema rezultata za « @cherche_auteur@ ».',
277
+    'info_recommencer' => 'Pocnite ponovo.',
278
+    'info_redacteur_1' => 'Urednik',
279
+    'info_redacteur_2' => 'koji ima/ju pristup privatnoj stranici (<i>recommandé</i>)',
280
+    'info_redacteurs' => 'Urednici',
281
+    'info_redaction_en_cours' => 'U TOKU UREDJIVANJA',
282
+    'info_redirection' => 'Preusmjerenje',
283
+    'info_refuses' => 'Vasi odbijeni clanci',
284
+    'info_reglage_ldap' => 'Opcije: namijestanje LDAP importa</b>', # MODIF
285
+    'info_renvoi_article' => '<b>Preusmjerenje.</b> Ovaj clanak se preusmjerava na stranicu:', # MODIF
286
+    'info_reserve_admin' => 'Samo administratori mogu izmijeniti ovu adresu.',
287
+    'info_restreindre_rubrique' => 'Ograniciti uredjivanje rubrike:',
288
+    'info_resultat_recherche' => 'Rezultati pretrage:',
289
+    'info_rubriques' => 'Rubrike',
290
+    'info_rubriques_02' => 'rubrike',
291
+    'info_rubriques_trouvees' => 'Pronadjene rubrike',
292
+    'info_sans_titre' => 'Bez naslova',
293
+    'info_selection_chemin_acces' => '<b>Izaberite</b> putanju pristupa direktoriju:',
294
+    'info_signatures' => 'potpisi',
295
+    'info_site' => 'Stranica',
296
+    'info_site_2' => 'stranica:',
297
+    'info_site_min' => 'stranica',
298
+    'info_site_reference_2' => 'Preporucena stranica',
299
+    'info_site_web' => 'WEB STRANICA :', # MODIF
300
+    'info_sites' => 'stranice',
301
+    'info_sites_lies_mot' => 'Preporucene stranice koje su vezane za ovu kljucnu rijec',
302
+    'info_sites_proxy' => 'Koristi proxy',
303
+    'info_sites_trouves' => 'Pronadjene stranice',
304
+    'info_sous_titre' => 'Podnaslov:',
305
+    'info_statut_administrateur' => 'Administrator',
306
+    'info_statut_auteur' => 'Status ovog autora:', # MODIF
307
+    'info_statut_redacteur' => 'Urednik',
308
+    'info_statut_utilisateurs_1' => 'Standardni status importovanih korisnika',
309
+    'info_statut_utilisateurs_2' => 'Izaberita koji status ce imati osobe koje su prisutne u LDAP direktoriju, kada se konektuju  prvi put. Kasnije ce te biti u mogucnosti da status svakog autora individualno izmijenite.',
310
+    'info_suivi_activite' => 'Pracenje urednicke aktivnosti',
311
+    'info_surtitre' => 'Nadnaslov:',
312
+    'info_taille_maximale_vignette' => 'Maksimalna velicina vinjeta  koje uredjuje sistem:',
313
+    'info_terminer_installation' => 'Sada mozete zavrsiti standardnu proceduru instalacije.',
314
+    'info_texte' => 'Tekst',
315
+    'info_texte_explicatif' => 'Eksplikacioni tekst',
316
+    'info_texte_long' => '(Ovaj tekst je dug, a zato je prikazan u vise dijelova, koji ce biti sastavljeni poslije ovjere.)',
317
+    'info_texte_message' => 'Tekst vase poruke:', # MODIF
318
+    'info_texte_message_02' => 'Tekst poruke',
319
+    'info_titre' => 'Naslov:',
320
+    'info_total' => 'total:',
321
+    'info_tous_articles_en_redaction' => 'Svi clanci koji su fazi obradjivanja',
322
+    'info_tous_articles_presents' => 'Svi objavljeni clanci u ovoj rubrici',
323
+    'info_tous_les' => 'svi:',
324
+    'info_tout_site' => 'Citava web stranica',
325
+    'info_tout_site2' => 'Clanak nije preveden na ovaj jezik.',
326
+    'info_tout_site3' => 'Clanak je preveden na ovaj jezik, ali su usvojene izmjene preporucenog clanka. Potrebno je obnoviti  prevod.',
327
+    'info_tout_site4' => 'Clanak je preveden na ovaj jezik i prevod je obnovljen.',
328
+    'info_tout_site5' => 'Originalni clanak.',
329
+    'info_tout_site6' => '<b>Paznja:</b> prikazani su samo originalni clanci.
330 330
 Prevodi su (sa bojom koja ukazuje na njihovo stanje) povezani sa originalnim clankom:',
331
-	'info_travail_colaboratif' => 'Saradnicki rad na clancima',
332
-	'info_un_article' => 'clanak,',
333
-	'info_un_site' => 'jedna stranica,',
334
-	'info_une_rubrique' => 'jedna rubrika,',
335
-	'info_une_rubrique_02' => '1 rubrika',
336
-	'info_url' => 'URL:',
337
-	'info_urlref' => 'Hiperlink:',
338
-	'info_utilisation_spip' => 'Mozete poceti sa koristenjem sistema za asistirano objavljivanje...',
339
-	'info_visites_par_mois' => 'Prikazi po mjesecu:',
340
-	'info_visiteur_1' => 'posjetioc',
341
-	'info_visiteur_2' => 'javne stranice',
342
-	'info_visiteurs' => 'posjetioci',
343
-	'info_visiteurs_02' => 'Posjetioci javne stranice',
344
-	'install_echec_annonce' => 'Instalacija vjerovatno nece uspjeti, ili ce rezultirati nefunkcionirajucom stranicom...',
345
-	'install_extension_mbstring' => 'SPIP ne funkcionise sa:',
346
-	'install_extension_php_obligatoire' => 'SPIP-u je potrebna php ekstenzija:',
347
-	'install_select_langue' => 'Izaberite jezik, a zatim kliknite na dugme « sljedece » da bi pokrenuli proces instalacije.',
348
-	'intem_redacteur' => 'urednik',
349
-	'item_accepter_inscriptions' => 'Prihvati upise',
350
-	'item_activer_messages_avertissement' => 'Aktiviraj poruke upozorenja',
351
-	'item_administrateur_2' => 'administrator',
352
-	'item_afficher_calendrier' => 'Prikazati u kalendaru',
353
-	'item_choix_administrateurs' => 'administratori',
354
-	'item_choix_generation_miniature' => 'Automatski uredi minijature slika.',
355
-	'item_choix_non_generation_miniature' => 'Ne uredjuj minijature slika.',
356
-	'item_choix_redacteurs' => 'urednici',
357
-	'item_choix_visiteurs' => 'posjetioci javne stranice',
358
-	'item_creer_fichiers_authent' => 'kreiraj dokumente .htpasswd',
359
-	'item_login' => 'Login',
360
-	'item_mots_cles_association_articles' => 'za clanke',
361
-	'item_mots_cles_association_rubriques' => 'za rubrike',
362
-	'item_mots_cles_association_sites' => 'Za preporucene ili sindikovane stranice.',
363
-	'item_non' => 'Ne',
364
-	'item_non_accepter_inscriptions' => 'Ne dozvoljavaj upise',
365
-	'item_non_activer_messages_avertissement' => 'Bez poruka upozorenja',
366
-	'item_non_afficher_calendrier' => 'Ne prikazuj u kalendaru',
367
-	'item_non_creer_fichiers_authent' => 'Ne kreiraj ove dokumente',
368
-	'item_non_publier_articles' => 'Ne objavljuj clanke poslije datuma odredjenog za publikaciju.',
369
-	'item_nouvel_auteur' => 'Novi autor',
370
-	'item_nouvelle_rubrique' => 'Nova rubrika',
371
-	'item_oui' => 'Da',
372
-	'item_publier_articles' => 'Objavi clanke bez obzira na datum odredjen za njihovu publikaciju.',
373
-	'item_reponse_article' => 'Odgovor na clanak',
374
-	'item_visiteur' => 'posjetioc',
331
+    'info_travail_colaboratif' => 'Saradnicki rad na clancima',
332
+    'info_un_article' => 'clanak,',
333
+    'info_un_site' => 'jedna stranica,',
334
+    'info_une_rubrique' => 'jedna rubrika,',
335
+    'info_une_rubrique_02' => '1 rubrika',
336
+    'info_url' => 'URL:',
337
+    'info_urlref' => 'Hiperlink:',
338
+    'info_utilisation_spip' => 'Mozete poceti sa koristenjem sistema za asistirano objavljivanje...',
339
+    'info_visites_par_mois' => 'Prikazi po mjesecu:',
340
+    'info_visiteur_1' => 'posjetioc',
341
+    'info_visiteur_2' => 'javne stranice',
342
+    'info_visiteurs' => 'posjetioci',
343
+    'info_visiteurs_02' => 'Posjetioci javne stranice',
344
+    'install_echec_annonce' => 'Instalacija vjerovatno nece uspjeti, ili ce rezultirati nefunkcionirajucom stranicom...',
345
+    'install_extension_mbstring' => 'SPIP ne funkcionise sa:',
346
+    'install_extension_php_obligatoire' => 'SPIP-u je potrebna php ekstenzija:',
347
+    'install_select_langue' => 'Izaberite jezik, a zatim kliknite na dugme « sljedece » da bi pokrenuli proces instalacije.',
348
+    'intem_redacteur' => 'urednik',
349
+    'item_accepter_inscriptions' => 'Prihvati upise',
350
+    'item_activer_messages_avertissement' => 'Aktiviraj poruke upozorenja',
351
+    'item_administrateur_2' => 'administrator',
352
+    'item_afficher_calendrier' => 'Prikazati u kalendaru',
353
+    'item_choix_administrateurs' => 'administratori',
354
+    'item_choix_generation_miniature' => 'Automatski uredi minijature slika.',
355
+    'item_choix_non_generation_miniature' => 'Ne uredjuj minijature slika.',
356
+    'item_choix_redacteurs' => 'urednici',
357
+    'item_choix_visiteurs' => 'posjetioci javne stranice',
358
+    'item_creer_fichiers_authent' => 'kreiraj dokumente .htpasswd',
359
+    'item_login' => 'Login',
360
+    'item_mots_cles_association_articles' => 'za clanke',
361
+    'item_mots_cles_association_rubriques' => 'za rubrike',
362
+    'item_mots_cles_association_sites' => 'Za preporucene ili sindikovane stranice.',
363
+    'item_non' => 'Ne',
364
+    'item_non_accepter_inscriptions' => 'Ne dozvoljavaj upise',
365
+    'item_non_activer_messages_avertissement' => 'Bez poruka upozorenja',
366
+    'item_non_afficher_calendrier' => 'Ne prikazuj u kalendaru',
367
+    'item_non_creer_fichiers_authent' => 'Ne kreiraj ove dokumente',
368
+    'item_non_publier_articles' => 'Ne objavljuj clanke poslije datuma odredjenog za publikaciju.',
369
+    'item_nouvel_auteur' => 'Novi autor',
370
+    'item_nouvelle_rubrique' => 'Nova rubrika',
371
+    'item_oui' => 'Da',
372
+    'item_publier_articles' => 'Objavi clanke bez obzira na datum odredjen za njihovu publikaciju.',
373
+    'item_reponse_article' => 'Odgovor na clanak',
374
+    'item_visiteur' => 'posjetioc',
375 375
 
376
-	// J
377
-	'jour_non_connu_nc' => 'nepoznato',
376
+    // J
377
+    'jour_non_connu_nc' => 'nepoznato',
378 378
 
379
-	// L
380
-	'lien_ajouter_auteur' => 'Dodaj ovog autora',
381
-	'lien_email' => 'e-mail',
382
-	'lien_nom_site' => 'IME STRANICE:',
383
-	'lien_retirer_auteur' => 'Odstrani autora',
384
-	'lien_site' => 'stranica',
385
-	'lien_tout_deplier' => 'Sve otvoriti',
386
-	'lien_tout_replier' => 'Sve zatvoriti',
387
-	'lien_trier_nom' => 'Poredaj po imenu',
388
-	'lien_trier_nombre_articles' => 'Poredaj po broju clanaka',
389
-	'lien_trier_statut' => 'Poredaj po statusu',
390
-	'lien_voir_en_ligne' => 'POGLEDAJ ONLINE:',
391
-	'logo_article' => 'LOGOTIP CLANKA', # MODIF
392
-	'logo_auteur' => 'LOGOTIP AUTORA', # MODIF
393
-	'logo_rubrique' => 'LOGOTIP RUBRIKE', # MODIF
394
-	'logo_site' => 'LOGOTIP STRANICE', # MODIF
395
-	'logo_standard_rubrique' => 'STANDARDNI LOGOTIP ZA RUBRIKE', # MODIF
396
-	'logo_survol' => 'HOVERING LOGO', # MODIF
379
+    // L
380
+    'lien_ajouter_auteur' => 'Dodaj ovog autora',
381
+    'lien_email' => 'e-mail',
382
+    'lien_nom_site' => 'IME STRANICE:',
383
+    'lien_retirer_auteur' => 'Odstrani autora',
384
+    'lien_site' => 'stranica',
385
+    'lien_tout_deplier' => 'Sve otvoriti',
386
+    'lien_tout_replier' => 'Sve zatvoriti',
387
+    'lien_trier_nom' => 'Poredaj po imenu',
388
+    'lien_trier_nombre_articles' => 'Poredaj po broju clanaka',
389
+    'lien_trier_statut' => 'Poredaj po statusu',
390
+    'lien_voir_en_ligne' => 'POGLEDAJ ONLINE:',
391
+    'logo_article' => 'LOGOTIP CLANKA', # MODIF
392
+    'logo_auteur' => 'LOGOTIP AUTORA', # MODIF
393
+    'logo_rubrique' => 'LOGOTIP RUBRIKE', # MODIF
394
+    'logo_site' => 'LOGOTIP STRANICE', # MODIF
395
+    'logo_standard_rubrique' => 'STANDARDNI LOGOTIP ZA RUBRIKE', # MODIF
396
+    'logo_survol' => 'HOVERING LOGO', # MODIF
397 397
 
398
-	// M
399
-	'menu_aide_installation_choix_base' => 'Biranje vase baze',
400
-	'module_fichier_langue' => 'Jezicni dokument',
401
-	'module_raccourci' => 'Precica',
402
-	'module_texte_affiche' => 'Prikazani tekst',
403
-	'module_texte_explicatif' => 'Mozete dodati sljedece precice u obrasce vase javne stranice. One ce biti automatski prevedene u razne jezike, za koje postoje jezicni dokumenti.',
404
-	'module_texte_traduction' => 'Jezicni dokument « @module@ » je na raspolaganju u:',
405
-	'mois_non_connu' => 'nepoznato',
398
+    // M
399
+    'menu_aide_installation_choix_base' => 'Biranje vase baze',
400
+    'module_fichier_langue' => 'Jezicni dokument',
401
+    'module_raccourci' => 'Precica',
402
+    'module_texte_affiche' => 'Prikazani tekst',
403
+    'module_texte_explicatif' => 'Mozete dodati sljedece precice u obrasce vase javne stranice. One ce biti automatski prevedene u razne jezike, za koje postoje jezicni dokumenti.',
404
+    'module_texte_traduction' => 'Jezicni dokument « @module@ » je na raspolaganju u:',
405
+    'mois_non_connu' => 'nepoznato',
406 406
 
407
-	// O
408
-	'onglet_repartition_actuelle' => 'Aktuelno',
407
+    // O
408
+    'onglet_repartition_actuelle' => 'Aktuelno',
409 409
 
410
-	// P
411
-	'plugin_etat_developpement' => 'u razvoju',
412
-	'plugin_etat_experimental' => 'experimentalno',
413
-	'plugin_etat_stable' => 'stabilno',
414
-	'plugin_etat_test' => 'testira se',
415
-	'plugins_liste' => 'Plugin lista',
410
+    // P
411
+    'plugin_etat_developpement' => 'u razvoju',
412
+    'plugin_etat_experimental' => 'experimentalno',
413
+    'plugin_etat_stable' => 'stabilno',
414
+    'plugin_etat_test' => 'testira se',
415
+    'plugins_liste' => 'Plugin lista',
416 416
 
417
-	// R
418
-	'repertoire_plugins' => 'Directorij:',
419
-	'required' => '[Obavezno]', # MODIF
417
+    // R
418
+    'repertoire_plugins' => 'Directorij:',
419
+    'required' => '[Obavezno]', # MODIF
420 420
 
421
-	// S
422
-	'statut_admin_restreint' => '(ograniceni admin)', # MODIF
421
+    // S
422
+    'statut_admin_restreint' => '(ograniceni admin)', # MODIF
423 423
 
424
-	// T
425
-	'taille_cache_image' => 'Slike koje SPIP automatski izracunava (vinjete dokumenata, naslove predstavljene u grafickoj formi, matematicke funkcije u TeX formatu ...) zauzimaju u @dir@  repertoaru total od @taille@.',
426
-	'taille_cache_octets' => 'Aktuelna velicina kesa je @octets@.', # MODIF
427
-	'taille_cache_vide' => 'Kes je prazan.',
428
-	'taille_repertoire_cache' => 'Aktuelna velicina kesa',
429
-	'text_article_propose_publication' => 'Clanak predlozen za objavljivanje. Ne oklijevajte da date vase misljenje u forumu dodanom ovom clanku (na dnu ove strane).', # MODIF
430
-	'texte_acces_ldap_anonyme_1' => 'Neki LDAP serveri ne prihvataju ni jedan anonimni pristup. U tom slucaju je potrebno odrediti identifikatora za inicijalni pristup, da bi zatim postojala mogucnost pretrage informacija u direktoriju. U vecini slucajeva, sljedeca polja mogu ostati prazna',
431
-	'texte_admin_effacer_01' => 'Ova komanda ce izbrisati <i>sav</i> sadrzaj baze podataka, ukljucujuci <i>sve</i> pristupe urednika i administratora. Prije nego je pokrenete,  trebate pokrenuti reinstalaciju pristupa SPIP-u da biste kreirali novu bazu, kao i prvi pristup administratora.',
432
-	'texte_adresse_annuaire_1' => '(Ako je vas direktorij instaliran na istoj masini kao ova web stranica, vjerovatno se radi o localhost-u.)',
433
-	'texte_ajout_auteur' => 'Sljedeci autor je dodan clanku:',
434
-	'texte_annuaire_ldap_1' => 'Ako imate pristup jednom (LDAP) direktoriju, mozete ga koristiti za automatsko importovanje korisnika u SPIP.',
435
-	'texte_article_statut' => 'Ovaj clanak je:',
436
-	'texte_article_virtuel' => 'Virtuelni clanak',
437
-	'texte_article_virtuel_reference' => '<b>Virtuelni clanak:</b> clanak je preporucen na vasoj SPIP stranici, ali apreusmjeren na drugi URL. Da bi ste sprijecili preusmjeravanje, izbrisite nize prikazani URL.',
438
-	'texte_aucun_resultat_auteur' => 'Nema rezultata za"@cherche_auteur@"',
439
-	'texte_auteur_messagerie' => 'Ova stranica vam moze permanentno ukazivati na listu konektovanih urednika, sto vam omogucuje online razmjenu poruka. Mozete odluciti da se ne pojavljujete na ovoj listi (nevidljivi ste za druge korisnike).',
440
-	'texte_auteurs' => 'AUTORI',
441
-	'texte_choix_base_1' => 'Izaberite vasu bazu:',
442
-	'texte_choix_base_2' => 'SQL server sadrzi vise baza podataka.', # MODIF
443
-	'texte_choix_base_3' => '<b>Izaberite</b> Ispod one koja vam je dodjeljena od vaseg kompjutera:', # MODIF
444
-	'texte_compte_element' => '@count@ element',
445
-	'texte_compte_elements' => '@count@ elementi',
446
-	'texte_connexion_mysql' => 'Provjerite informacije koje ste dobili od vaseg kompjutera: Trebate pronaci da li vas kompjuter podrzava SQL i kodove za konekciju na SQL  server.', # MODIF
447
-	'texte_contenu_article' => '(Sadrzaj clanka u nekoliko rijeci.)',
448
-	'texte_contenu_articles' => 'Prema rasporedu koji je prihvacen za vasu stranicu, mozete odluciti da se neki elementi clanaka ne koriste. Koristite se sa nize prikazanom listom i naznacite koji su elementi dostupni.',
449
-	'texte_crash_base' => 'Ako je vasa baza podataka pala, mozete pokusati automatsku popravku.',
450
-	'texte_creer_rubrique' => 'Prije pisanja clanaka,<br /> trebate kreirati rubriku.', # MODIF
451
-	'texte_date_creation_article' => 'DATUM NASTANKA CLANKA:',
452
-	'texte_date_publication_anterieure' => 'Datum proslog uredjivanja:',
453
-	'texte_date_publication_anterieure_nonaffichee' => 'Ne prikazuj datum proslog uredjivanja.',
454
-	'texte_date_publication_article' => 'DATUM OBJAVLJIVANJA:',
455
-	'texte_descriptif_rapide' => 'Brzi opis',
456
-	'texte_effacer_base' => 'Izbrisati SPIP bazu podataka',
457
-	'texte_en_cours_validation' => 'Dole navedeni clanci i kratke poruke su predlozene za publikaciju. Vase misljenje mozete iznijeti u njima prikljucenim forumima.', # MODIF
458
-	'texte_enrichir_mise_a_jour' => 'Mozete obogatiti izgled vaseg teksta na stranici, koristeci se « tipogrfskim  precicama ».',
459
-	'texte_fichier_authent' => '<b>Treba li SPIP kreirati specijalne dokumente <tt>.htpasswd</tt> i  <tt>.htpasswd-admin</tt> u repertoaru @dossier@ ?</b><p> Ti dokumenti vam omogucuju zabranu pristupa autorima  i administratorima na drugim mjestima vase stranice (npr.  eksterni program za statistike).</p><p>  Ako od ovoga nemate  nikakve koristi, mozete ostaviti standardnu vrijednost za ovu  opciju (nema kreacije dokumenata).</p>', # MODIF
460
-	'texte_informations_personnelles_1' => 'Sistem ce sada kreirati  personalizovan pistup stranici.',
461
-	'texte_informations_personnelles_2' => '(Napomena: ako se radi o reinstalaciji i ako vas pristup uvijek funkcionise, mozete', # MODIF
462
-	'texte_introductif_article' => '(Uvodni tekst u clanak.)',
463
-	'texte_jeu_caractere' => 'Ova opcija je korisna ako vasa  stranica treba postavljati tekstove sa alfabetom (ukljucujuci  njegove derivate) koji nije romanski (ili  « okcidentalni »). U tom slucaju je  pozeljno promijeniti standardnu postavku u odgovarajuci set  karaktera; u svakum slucaju vam savjetujemo da napravite  testove i pronadjete zadovoljavajuce rijesenje. Ako izmlijenite  ovaj parametar, ne zaboravite javnu stranicu prilagoditi  izmjenama (balise <tt>#CHARSET</tt>).',
464
-	'texte_login_ldap_1' => '(Ostaviti prazno za anonimni pristup ili unjeti kompletnu putanju, npr. « <tt>uid=dupont,  ou=users, dc=mon-domaine, dc=com</tt> ».)',
465
-	'texte_login_precaution' => 'Paznja! Ovo je login kojim ste trenutno konektovani. Pazljivo se koristite ovim  formularom...',
466
-	'texte_mise_a_niveau_base_1' => 'Upravo ste obnovili SPIP dokumente. Sada je potrebna nadogrdnja baze podataka.',
467
-	'texte_modifier_article' => 'Izmijeni clanak:',
468
-	'texte_multilinguisme' => 'Ako zelita obradjivati clanke na vise jezika, sa kompleksnom navigacijom, u organizaciju vase  stranice mozete dodati meni za odabir jezika u clancima i/ili  rubrikama.', # MODIF
469
-	'texte_multilinguisme_trad' => 'Svakako mozete aktivirati sistem sa obradjivanje linkova izmedju razlicitih prevoda  clanaka.', # MODIF
470
-	'texte_non_compresse' => '<i>nije kompresovan</i> (vas server ne podrzava ovu funkciju)',
471
-	'texte_nouvelle_version_spip_1' => 'Instalirali ste novu verziju SPIP-a.',
472
-	'texte_nouvelle_version_spip_2' => 'Ovoj verziji je potrebno obnavljanje kompletnije od uobicajenog. Ako ste webmaster stranice, izbrisite dokument <tt>inc_connect.php3</tt> iz  repertoara <tt>ecrire</tt> i ponovo otpocnite instalaciju da  biste obnovili parametre konekcije sa bazom podataka.<p>  (Napomena: ako ste zaboravili parametre vase konekcije  pogledajte dokument <tt>inc_connect.php3</tt> prije nego ga  izbrisete...)</p>', # MODIF
473
-	'texte_operation_echec' => 'Vratite se na prethodnu stranu, izaberite drugu bazu ili napravite novu. Provjerite podatke  koje vam je dao vas kompjuter.',
474
-	'texte_plus_trois_car' => 'vise od tri karaktera',
475
-	'texte_plusieurs_articles' => 'Pronadjeno vise autora za "@cherche_auteur@":',
476
-	'texte_port_annuaire' => '(Naznacena standardna vrijednost odgovara u vecini slucajeva.)',
477
-	'texte_proposer_publication' => 'Kada zavrsite vas clanak,<br /> mozete predloziti njegovo objavljivanje.', # MODIF
478
-	'texte_proxy' => 'U odredjenim slucajevima (intranet, zasticene  mreze...), koristenje <i>proxy HTTP</i> moze biti neophodno za dostizanje sindikovanih stranica. Ako je potrebno, naznacite adresu u sljedecoj formi <tt><html>http://proxy:8080</html></tt>. U vecini slucajeva, ovo polje mozete ostaviti prazno.', # MODIF
479
-	'texte_publication_articles_post_dates' => 'Kako se SPIP treba ponasati prema clancima ciji je datum objavljivanja odredjen za buducnost? ',
480
-	'texte_rappel_selection_champs' => '[Ne zaboravite ispravno izabrati ovo polje.]',
481
-	'texte_recalcul_page' => 'Ako zelite preracunati samo jednu stranu, predjite u javni prostor i koristite « preracunati ».',
482
-	'texte_recuperer_base' => 'Popravi bazu podataka',
483
-	'texte_reference_mais_redirige' => 'clanak je preporucen u vasoj SPIP stranici, ali je preusmjeren na drugi URL.',
484
-	'texte_requetes_echouent' => '<b>Ako odredzeni SQL zahtijevi sistematski i bez ociglednog razloga ne uspijevaju, moguce je da je problem u samoj bazi podataka.</b><p> SQL raspolaze mogucnosti popravljanja njegovih tabela, ako su one slucajno ostecene. Ovdje mozete isprobati popravku; u slucaju neuspijeha, sacuvajte kopiju prikaza na monitoru, koja mozda sadrzi naznake problema...</p><p> Ako se problem nastavi, kontaktirajte vas hosting servis.</p>', # MODIF
485
-	'texte_selection_langue_principale' => 'Mozete izabrati « glavni jezik » stranice. Taj izbor vas (na srecu!) ne obavezuje na pisanje clanaka na tom jeziku, ali dozvoljava odredjivanje:
424
+    // T
425
+    'taille_cache_image' => 'Slike koje SPIP automatski izracunava (vinjete dokumenata, naslove predstavljene u grafickoj formi, matematicke funkcije u TeX formatu ...) zauzimaju u @dir@  repertoaru total od @taille@.',
426
+    'taille_cache_octets' => 'Aktuelna velicina kesa je @octets@.', # MODIF
427
+    'taille_cache_vide' => 'Kes je prazan.',
428
+    'taille_repertoire_cache' => 'Aktuelna velicina kesa',
429
+    'text_article_propose_publication' => 'Clanak predlozen za objavljivanje. Ne oklijevajte da date vase misljenje u forumu dodanom ovom clanku (na dnu ove strane).', # MODIF
430
+    'texte_acces_ldap_anonyme_1' => 'Neki LDAP serveri ne prihvataju ni jedan anonimni pristup. U tom slucaju je potrebno odrediti identifikatora za inicijalni pristup, da bi zatim postojala mogucnost pretrage informacija u direktoriju. U vecini slucajeva, sljedeca polja mogu ostati prazna',
431
+    'texte_admin_effacer_01' => 'Ova komanda ce izbrisati <i>sav</i> sadrzaj baze podataka, ukljucujuci <i>sve</i> pristupe urednika i administratora. Prije nego je pokrenete,  trebate pokrenuti reinstalaciju pristupa SPIP-u da biste kreirali novu bazu, kao i prvi pristup administratora.',
432
+    'texte_adresse_annuaire_1' => '(Ako je vas direktorij instaliran na istoj masini kao ova web stranica, vjerovatno se radi o localhost-u.)',
433
+    'texte_ajout_auteur' => 'Sljedeci autor je dodan clanku:',
434
+    'texte_annuaire_ldap_1' => 'Ako imate pristup jednom (LDAP) direktoriju, mozete ga koristiti za automatsko importovanje korisnika u SPIP.',
435
+    'texte_article_statut' => 'Ovaj clanak je:',
436
+    'texte_article_virtuel' => 'Virtuelni clanak',
437
+    'texte_article_virtuel_reference' => '<b>Virtuelni clanak:</b> clanak je preporucen na vasoj SPIP stranici, ali apreusmjeren na drugi URL. Da bi ste sprijecili preusmjeravanje, izbrisite nize prikazani URL.',
438
+    'texte_aucun_resultat_auteur' => 'Nema rezultata za"@cherche_auteur@"',
439
+    'texte_auteur_messagerie' => 'Ova stranica vam moze permanentno ukazivati na listu konektovanih urednika, sto vam omogucuje online razmjenu poruka. Mozete odluciti da se ne pojavljujete na ovoj listi (nevidljivi ste za druge korisnike).',
440
+    'texte_auteurs' => 'AUTORI',
441
+    'texte_choix_base_1' => 'Izaberite vasu bazu:',
442
+    'texte_choix_base_2' => 'SQL server sadrzi vise baza podataka.', # MODIF
443
+    'texte_choix_base_3' => '<b>Izaberite</b> Ispod one koja vam je dodjeljena od vaseg kompjutera:', # MODIF
444
+    'texte_compte_element' => '@count@ element',
445
+    'texte_compte_elements' => '@count@ elementi',
446
+    'texte_connexion_mysql' => 'Provjerite informacije koje ste dobili od vaseg kompjutera: Trebate pronaci da li vas kompjuter podrzava SQL i kodove za konekciju na SQL  server.', # MODIF
447
+    'texte_contenu_article' => '(Sadrzaj clanka u nekoliko rijeci.)',
448
+    'texte_contenu_articles' => 'Prema rasporedu koji je prihvacen za vasu stranicu, mozete odluciti da se neki elementi clanaka ne koriste. Koristite se sa nize prikazanom listom i naznacite koji su elementi dostupni.',
449
+    'texte_crash_base' => 'Ako je vasa baza podataka pala, mozete pokusati automatsku popravku.',
450
+    'texte_creer_rubrique' => 'Prije pisanja clanaka,<br /> trebate kreirati rubriku.', # MODIF
451
+    'texte_date_creation_article' => 'DATUM NASTANKA CLANKA:',
452
+    'texte_date_publication_anterieure' => 'Datum proslog uredjivanja:',
453
+    'texte_date_publication_anterieure_nonaffichee' => 'Ne prikazuj datum proslog uredjivanja.',
454
+    'texte_date_publication_article' => 'DATUM OBJAVLJIVANJA:',
455
+    'texte_descriptif_rapide' => 'Brzi opis',
456
+    'texte_effacer_base' => 'Izbrisati SPIP bazu podataka',
457
+    'texte_en_cours_validation' => 'Dole navedeni clanci i kratke poruke su predlozene za publikaciju. Vase misljenje mozete iznijeti u njima prikljucenim forumima.', # MODIF
458
+    'texte_enrichir_mise_a_jour' => 'Mozete obogatiti izgled vaseg teksta na stranici, koristeci se « tipogrfskim  precicama ».',
459
+    'texte_fichier_authent' => '<b>Treba li SPIP kreirati specijalne dokumente <tt>.htpasswd</tt> i  <tt>.htpasswd-admin</tt> u repertoaru @dossier@ ?</b><p> Ti dokumenti vam omogucuju zabranu pristupa autorima  i administratorima na drugim mjestima vase stranice (npr.  eksterni program za statistike).</p><p>  Ako od ovoga nemate  nikakve koristi, mozete ostaviti standardnu vrijednost za ovu  opciju (nema kreacije dokumenata).</p>', # MODIF
460
+    'texte_informations_personnelles_1' => 'Sistem ce sada kreirati  personalizovan pistup stranici.',
461
+    'texte_informations_personnelles_2' => '(Napomena: ako se radi o reinstalaciji i ako vas pristup uvijek funkcionise, mozete', # MODIF
462
+    'texte_introductif_article' => '(Uvodni tekst u clanak.)',
463
+    'texte_jeu_caractere' => 'Ova opcija je korisna ako vasa  stranica treba postavljati tekstove sa alfabetom (ukljucujuci  njegove derivate) koji nije romanski (ili  « okcidentalni »). U tom slucaju je  pozeljno promijeniti standardnu postavku u odgovarajuci set  karaktera; u svakum slucaju vam savjetujemo da napravite  testove i pronadjete zadovoljavajuce rijesenje. Ako izmlijenite  ovaj parametar, ne zaboravite javnu stranicu prilagoditi  izmjenama (balise <tt>#CHARSET</tt>).',
464
+    'texte_login_ldap_1' => '(Ostaviti prazno za anonimni pristup ili unjeti kompletnu putanju, npr. « <tt>uid=dupont,  ou=users, dc=mon-domaine, dc=com</tt> ».)',
465
+    'texte_login_precaution' => 'Paznja! Ovo je login kojim ste trenutno konektovani. Pazljivo se koristite ovim  formularom...',
466
+    'texte_mise_a_niveau_base_1' => 'Upravo ste obnovili SPIP dokumente. Sada je potrebna nadogrdnja baze podataka.',
467
+    'texte_modifier_article' => 'Izmijeni clanak:',
468
+    'texte_multilinguisme' => 'Ako zelita obradjivati clanke na vise jezika, sa kompleksnom navigacijom, u organizaciju vase  stranice mozete dodati meni za odabir jezika u clancima i/ili  rubrikama.', # MODIF
469
+    'texte_multilinguisme_trad' => 'Svakako mozete aktivirati sistem sa obradjivanje linkova izmedju razlicitih prevoda  clanaka.', # MODIF
470
+    'texte_non_compresse' => '<i>nije kompresovan</i> (vas server ne podrzava ovu funkciju)',
471
+    'texte_nouvelle_version_spip_1' => 'Instalirali ste novu verziju SPIP-a.',
472
+    'texte_nouvelle_version_spip_2' => 'Ovoj verziji je potrebno obnavljanje kompletnije od uobicajenog. Ako ste webmaster stranice, izbrisite dokument <tt>inc_connect.php3</tt> iz  repertoara <tt>ecrire</tt> i ponovo otpocnite instalaciju da  biste obnovili parametre konekcije sa bazom podataka.<p>  (Napomena: ako ste zaboravili parametre vase konekcije  pogledajte dokument <tt>inc_connect.php3</tt> prije nego ga  izbrisete...)</p>', # MODIF
473
+    'texte_operation_echec' => 'Vratite se na prethodnu stranu, izaberite drugu bazu ili napravite novu. Provjerite podatke  koje vam je dao vas kompjuter.',
474
+    'texte_plus_trois_car' => 'vise od tri karaktera',
475
+    'texte_plusieurs_articles' => 'Pronadjeno vise autora za "@cherche_auteur@":',
476
+    'texte_port_annuaire' => '(Naznacena standardna vrijednost odgovara u vecini slucajeva.)',
477
+    'texte_proposer_publication' => 'Kada zavrsite vas clanak,<br /> mozete predloziti njegovo objavljivanje.', # MODIF
478
+    'texte_proxy' => 'U odredjenim slucajevima (intranet, zasticene  mreze...), koristenje <i>proxy HTTP</i> moze biti neophodno za dostizanje sindikovanih stranica. Ako je potrebno, naznacite adresu u sljedecoj formi <tt><html>http://proxy:8080</html></tt>. U vecini slucajeva, ovo polje mozete ostaviti prazno.', # MODIF
479
+    'texte_publication_articles_post_dates' => 'Kako se SPIP treba ponasati prema clancima ciji je datum objavljivanja odredjen za buducnost? ',
480
+    'texte_rappel_selection_champs' => '[Ne zaboravite ispravno izabrati ovo polje.]',
481
+    'texte_recalcul_page' => 'Ako zelite preracunati samo jednu stranu, predjite u javni prostor i koristite « preracunati ».',
482
+    'texte_recuperer_base' => 'Popravi bazu podataka',
483
+    'texte_reference_mais_redirige' => 'clanak je preporucen u vasoj SPIP stranici, ali je preusmjeren na drugi URL.',
484
+    'texte_requetes_echouent' => '<b>Ako odredzeni SQL zahtijevi sistematski i bez ociglednog razloga ne uspijevaju, moguce je da je problem u samoj bazi podataka.</b><p> SQL raspolaze mogucnosti popravljanja njegovih tabela, ako su one slucajno ostecene. Ovdje mozete isprobati popravku; u slucaju neuspijeha, sacuvajte kopiju prikaza na monitoru, koja mozda sadrzi naznake problema...</p><p> Ako se problem nastavi, kontaktirajte vas hosting servis.</p>', # MODIF
485
+    'texte_selection_langue_principale' => 'Mozete izabrati « glavni jezik » stranice. Taj izbor vas (na srecu!) ne obavezuje na pisanje clanaka na tom jeziku, ali dozvoljava odredjivanje:
486 486
 \\tab <ul><li> standardni format datuma na javnoj stranici;</li>
487 487
 \\tab <li> prirodu tipografskog motora koj ce SPIP koristriti za izradu tekstova;</li>
488 488
 \\tab <li> jezik koji ce se koristiti u formularima javne stranice;</li>
489 489
 \\tab <li> standardni jezik, prisutan na privatnoj stranici.</li></ul>',
490
-	'texte_sous_titre' => 'Podnaslov',
491
-	'texte_statistiques_visites' => '(tamne trake:  nedjelja / tamna kriva: prosjecni nivo)',
492
-	'texte_statut_attente_validation' => 'na cekanju za ovjeru',
493
-	'texte_statut_publies' => 'objavljeni',
494
-	'texte_statut_refuses' => 'odbijeni',
495
-	'texte_suppression_fichiers' => 'Koristite se ovom komandom da biste sve prisutne dokumente u SPIP kes. To omogucuje npr. izazivanje preracunavanja svih strana, u slucaju da ste izveli vazne izmjene grafizma ili strukture stranice.',
496
-	'texte_sur_titre' => 'Nadnaslov',
497
-	'texte_table_ok' => ':ova tabela je OK.',
498
-	'texte_tentative_recuperation' => 'Pokusaj popravke',
499
-	'texte_tenter_reparation' => 'Pokusati popravljanje baze podataka',
500
-	'texte_test_proxy' => 'Da bi ste probali ovaj proxy, ovdje naznacite adresu (web stranice) koju zelite testirati.',
501
-	'texte_titre_02' => 'Naslov:',
502
-	'texte_titre_obligatoire' => '<b>Naslov</b> [Obavezan]', # MODIF
503
-	'texte_travail_article' => '@nom_auteur_modif@ ostaje @date_diff@ minuta za rad na ovom clanku',
504
-	'texte_travail_collaboratif' => 'Ako je uobicajeno da vise urednika radi na istom clanku, sistem moze postavljati posljednje « otvarane » clanke, da bi se izbjegle simultane izmjene. Ova opcija je standardno iskljucena, da bi se izbjeglo postavljanje neodgovarajucih poruka upozorenja.',
505
-	'texte_vide' => 'prazno',
506
-	'texte_vider_cache' => 'Isprazniti kes',
507
-	'titre_admin_tech' => 'Tehnicko odrzavanje',
508
-	'titre_admin_vider' => 'Tehnicko odrzavanje',
509
-	'titre_cadre_afficher_article' => 'Prikazi clanke',
510
-	'titre_cadre_afficher_traductions' => 'Prikazi stanje prevoda za sljedece jezike:',
511
-	'titre_cadre_ajouter_auteur' => 'DODATI AUTORA:',
512
-	'titre_cadre_interieur_rubrique' => 'U unutrasnjosti rubrike',
513
-	'titre_cadre_numero_auteur' => 'AUTOR BROJ',
514
-	'titre_cadre_signature_obligatoire' => '<b>Potpis</b>  [Obavezno]<br />', # MODIF
515
-	'titre_config_fonctions' => 'Konfiguracija stranice',
516
-	'titre_configuration' => 'Konfiguracija stranice',
517
-	'titre_connexion_ldap' => 'Opcije: <b>Vasa LDAP konekcija</b>',
518
-	'titre_groupe_mots' => 'GRUPA RIJECI:',
519
-	'titre_langue_article' => 'JEZIK CLANKA', # MODIF
520
-	'titre_langue_rubrique' => 'JEZIK RUBRIKE', # MODIF
521
-	'titre_langue_trad_article' => 'JEZIK I PREVOD CLANKA',
522
-	'titre_les_articles' => 'CLANCI',
523
-	'titre_naviguer_dans_le_site' => 'Navigacija stranicom...',
524
-	'titre_nouvelle_rubrique' => 'Nova rubrika',
525
-	'titre_numero_rubrique' => 'RUBRIKA BROJ:',
526
-	'titre_page_articles_edit' => 'Izmjeni: @titre@',
527
-	'titre_page_articles_page' => 'Clanci',
528
-	'titre_page_articles_tous' => 'Cijela stranica',
529
-	'titre_page_calendrier' => 'Kalendar @nom_mois@ @annee@',
530
-	'titre_page_config_contenu' => 'Konfiguracija stranice',
531
-	'titre_page_delete_all' => 'cjelokupno i nepovratno otklanjanje',
532
-	'titre_page_recherche' => 'Rezultati pretrage @recherche@',
533
-	'titre_page_statistiques_referers' => 'Statistike (linkovi unosenja)',
534
-	'titre_page_upgrade' => 'Postavljanje SPIP-a na aktuelni nivo',
535
-	'titre_publication_articles_post_dates' => 'Objavljivanje clanaka sa kasnijim datumom',
536
-	'titre_reparation' => 'Popravka',
537
-	'titre_suivi_petition' => 'Pracenje peticija',
538
-	'trad_article_traduction' => 'Sve verzije ovog clanka:',
539
-	'trad_delier' => 'Ne vezati vise ovaj clanak za ove prevode', # MODIF
540
-	'trad_lier' => 'Ovaj clanak je prevod clanka broj:',
541
-	'trad_new' => 'Napisati novi prevod ovog clanka' # MODIF
490
+    'texte_sous_titre' => 'Podnaslov',
491
+    'texte_statistiques_visites' => '(tamne trake:  nedjelja / tamna kriva: prosjecni nivo)',
492
+    'texte_statut_attente_validation' => 'na cekanju za ovjeru',
493
+    'texte_statut_publies' => 'objavljeni',
494
+    'texte_statut_refuses' => 'odbijeni',
495
+    'texte_suppression_fichiers' => 'Koristite se ovom komandom da biste sve prisutne dokumente u SPIP kes. To omogucuje npr. izazivanje preracunavanja svih strana, u slucaju da ste izveli vazne izmjene grafizma ili strukture stranice.',
496
+    'texte_sur_titre' => 'Nadnaslov',
497
+    'texte_table_ok' => ':ova tabela je OK.',
498
+    'texte_tentative_recuperation' => 'Pokusaj popravke',
499
+    'texte_tenter_reparation' => 'Pokusati popravljanje baze podataka',
500
+    'texte_test_proxy' => 'Da bi ste probali ovaj proxy, ovdje naznacite adresu (web stranice) koju zelite testirati.',
501
+    'texte_titre_02' => 'Naslov:',
502
+    'texte_titre_obligatoire' => '<b>Naslov</b> [Obavezan]', # MODIF
503
+    'texte_travail_article' => '@nom_auteur_modif@ ostaje @date_diff@ minuta za rad na ovom clanku',
504
+    'texte_travail_collaboratif' => 'Ako je uobicajeno da vise urednika radi na istom clanku, sistem moze postavljati posljednje « otvarane » clanke, da bi se izbjegle simultane izmjene. Ova opcija je standardno iskljucena, da bi se izbjeglo postavljanje neodgovarajucih poruka upozorenja.',
505
+    'texte_vide' => 'prazno',
506
+    'texte_vider_cache' => 'Isprazniti kes',
507
+    'titre_admin_tech' => 'Tehnicko odrzavanje',
508
+    'titre_admin_vider' => 'Tehnicko odrzavanje',
509
+    'titre_cadre_afficher_article' => 'Prikazi clanke',
510
+    'titre_cadre_afficher_traductions' => 'Prikazi stanje prevoda za sljedece jezike:',
511
+    'titre_cadre_ajouter_auteur' => 'DODATI AUTORA:',
512
+    'titre_cadre_interieur_rubrique' => 'U unutrasnjosti rubrike',
513
+    'titre_cadre_numero_auteur' => 'AUTOR BROJ',
514
+    'titre_cadre_signature_obligatoire' => '<b>Potpis</b>  [Obavezno]<br />', # MODIF
515
+    'titre_config_fonctions' => 'Konfiguracija stranice',
516
+    'titre_configuration' => 'Konfiguracija stranice',
517
+    'titre_connexion_ldap' => 'Opcije: <b>Vasa LDAP konekcija</b>',
518
+    'titre_groupe_mots' => 'GRUPA RIJECI:',
519
+    'titre_langue_article' => 'JEZIK CLANKA', # MODIF
520
+    'titre_langue_rubrique' => 'JEZIK RUBRIKE', # MODIF
521
+    'titre_langue_trad_article' => 'JEZIK I PREVOD CLANKA',
522
+    'titre_les_articles' => 'CLANCI',
523
+    'titre_naviguer_dans_le_site' => 'Navigacija stranicom...',
524
+    'titre_nouvelle_rubrique' => 'Nova rubrika',
525
+    'titre_numero_rubrique' => 'RUBRIKA BROJ:',
526
+    'titre_page_articles_edit' => 'Izmjeni: @titre@',
527
+    'titre_page_articles_page' => 'Clanci',
528
+    'titre_page_articles_tous' => 'Cijela stranica',
529
+    'titre_page_calendrier' => 'Kalendar @nom_mois@ @annee@',
530
+    'titre_page_config_contenu' => 'Konfiguracija stranice',
531
+    'titre_page_delete_all' => 'cjelokupno i nepovratno otklanjanje',
532
+    'titre_page_recherche' => 'Rezultati pretrage @recherche@',
533
+    'titre_page_statistiques_referers' => 'Statistike (linkovi unosenja)',
534
+    'titre_page_upgrade' => 'Postavljanje SPIP-a na aktuelni nivo',
535
+    'titre_publication_articles_post_dates' => 'Objavljivanje clanaka sa kasnijim datumom',
536
+    'titre_reparation' => 'Popravka',
537
+    'titre_suivi_petition' => 'Pracenje peticija',
538
+    'trad_article_traduction' => 'Sve verzije ovog clanka:',
539
+    'trad_delier' => 'Ne vezati vise ovaj clanak za ove prevode', # MODIF
540
+    'trad_lier' => 'Ovaj clanak je prevod clanka broj:',
541
+    'trad_new' => 'Napisati novi prevod ovog clanka' # MODIF
542 542
 );
Please login to merge, or discard this patch.
prive/formulaires/declarer_bases.php 1 patch
Indentation   +181 added lines, -181 removed lines patch added patch discarded remove patch
@@ -10,210 +10,210 @@
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 include_spip('inc/install');
17 17
 
18 18
 function formulaires_declarer_bases_charger_dist() {
19 19
 
20
-	if (!autoriser('detruire')) {
21
-		return false;
22
-	}
23
-
24
-	[$adresse_db, $login_db, $pass_db, $sel, $server_db] = analyse_fichier_connection(_FILE_CONNECT);
25
-
26
-	$deja = bases_referencees(_FILE_CONNECT);
27
-	// proposer un nom de connect si pas encore saisi
28
-	$nom_connect = '';
29
-	if (defined('_DECLARER_CHOIX_DB')) {
30
-		$nom_connect = _DECLARER_CHOIX_DB;
31
-		$n = '';
32
-		while (in_array($nom_connect . $n, $deja)) {
33
-			$n = ($n ? $n + 1 : 1);
34
-		}
35
-		$nom_connect .= $n;
36
-	}
37
-
38
-	return [
39
-		'_etapes' => 3,
40
-		'_bases_deja' => $deja,
41
-		'_bases_prop' => defined('_DECLARER_SERVEUR_DB') ? liste_bases(_DECLARER_SERVEUR_DB) : '',
42
-		'_tables' => (defined('_DECLARER_SERVEUR_DB') && defined('_DECLARER_CHOIX_DB')) ?
43
-			$tables = sql_alltable('%', _DECLARER_SERVEUR_DB)
44
-			:
45
-			[],
46
-		'main_db' => '',
47
-		'_serveurs' => liste_serveurs(),
48
-		'sql_serveur_db' => 'sqlite3', // valeur par defaut
49
-		'adresse_db' => $adresse_db,
50
-		'login_db' => '',
51
-		'pass_db' => '',
52
-		'choix_db' => '',
53
-		'table_new' => '',
54
-		'nom_connect' => $nom_connect,
55
-	];
20
+    if (!autoriser('detruire')) {
21
+        return false;
22
+    }
23
+
24
+    [$adresse_db, $login_db, $pass_db, $sel, $server_db] = analyse_fichier_connection(_FILE_CONNECT);
25
+
26
+    $deja = bases_referencees(_FILE_CONNECT);
27
+    // proposer un nom de connect si pas encore saisi
28
+    $nom_connect = '';
29
+    if (defined('_DECLARER_CHOIX_DB')) {
30
+        $nom_connect = _DECLARER_CHOIX_DB;
31
+        $n = '';
32
+        while (in_array($nom_connect . $n, $deja)) {
33
+            $n = ($n ? $n + 1 : 1);
34
+        }
35
+        $nom_connect .= $n;
36
+    }
37
+
38
+    return [
39
+        '_etapes' => 3,
40
+        '_bases_deja' => $deja,
41
+        '_bases_prop' => defined('_DECLARER_SERVEUR_DB') ? liste_bases(_DECLARER_SERVEUR_DB) : '',
42
+        '_tables' => (defined('_DECLARER_SERVEUR_DB') && defined('_DECLARER_CHOIX_DB')) ?
43
+            $tables = sql_alltable('%', _DECLARER_SERVEUR_DB)
44
+            :
45
+            [],
46
+        'main_db' => '',
47
+        '_serveurs' => liste_serveurs(),
48
+        'sql_serveur_db' => 'sqlite3', // valeur par defaut
49
+        'adresse_db' => $adresse_db,
50
+        'login_db' => '',
51
+        'pass_db' => '',
52
+        'choix_db' => '',
53
+        'table_new' => '',
54
+        'nom_connect' => $nom_connect,
55
+    ];
56 56
 }
57 57
 
58 58
 function liste_serveurs() {
59
-	$options = [];
60
-	$dir = _DIR_RESTREINT . 'req/';
61
-	$d = opendir($dir);
62
-	if (!$d) {
63
-		return [];
64
-	}
65
-	while ($f = readdir($d)) {
66
-		if (
67
-			preg_match('/^(.*)[.]php$/', $f, $s)
68
-			&& is_readable($f = $dir . $f)
69
-		) {
70
-			require_once($f);
71
-			$s = $s[1];
72
-			$v = 'spip_versions_' . $s;
73
-			if (function_exists($v) && $v()) {
74
-				$options[$s] = "install_select_type_$s";
75
-			} else {
76
-				spip_log("$s: portage indisponible");
77
-			}
78
-		}
79
-	}
80
-	ksort($options);
81
-
82
-	return $options;
59
+    $options = [];
60
+    $dir = _DIR_RESTREINT . 'req/';
61
+    $d = opendir($dir);
62
+    if (!$d) {
63
+        return [];
64
+    }
65
+    while ($f = readdir($d)) {
66
+        if (
67
+            preg_match('/^(.*)[.]php$/', $f, $s)
68
+            && is_readable($f = $dir . $f)
69
+        ) {
70
+            require_once($f);
71
+            $s = $s[1];
72
+            $v = 'spip_versions_' . $s;
73
+            if (function_exists($v) && $v()) {
74
+                $options[$s] = "install_select_type_$s";
75
+            } else {
76
+                spip_log("$s: portage indisponible");
77
+            }
78
+        }
79
+    }
80
+    ksort($options);
81
+
82
+    return $options;
83 83
 }
84 84
 
85 85
 function liste_bases($server_db) {
86
-	if (
87
-		is_null($server_db)
88
-		|| !$result = sql_listdbs($server_db)
89
-	) {
90
-		return '';
91
-	}
92
-
93
-	$noms = [];
94
-
95
-	// si sqlite : result est deja un tableau
96
-	if (is_array($result)) {
97
-		$noms = $result;
98
-	} else {
99
-		while ($row = sql_fetch($result, $server_db)) {
100
-			$noms[] = reset($row);
101
-		}
102
-	}
103
-
104
-	return $noms;
86
+    if (
87
+        is_null($server_db)
88
+        || !$result = sql_listdbs($server_db)
89
+    ) {
90
+        return '';
91
+    }
92
+
93
+    $noms = [];
94
+
95
+    // si sqlite : result est deja un tableau
96
+    if (is_array($result)) {
97
+        $noms = $result;
98
+    } else {
99
+        while ($row = sql_fetch($result, $server_db)) {
100
+            $noms[] = reset($row);
101
+        }
102
+    }
103
+
104
+    return $noms;
105 105
 }
106 106
 
107 107
 function formulaires_declarer_bases_verifier_1_dist() {
108
-	$erreurs = [];
109
-	[$def_adresse_db, $def_login_db, $def_pass_db, $sel_db, $def_serveur_db] = analyse_fichier_connection(_FILE_CONNECT);
110
-
111
-	if (!$adresse_db = _request('adresse_db')) {
112
-		$adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : $def_adresse_db;
113
-	}
114
-	if (!$serveur_db = _request('sql_serveur_db')) {
115
-		$serveur_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : $def_serveur_db;
116
-	}
117
-
118
-	$login_db = $pass_db = '';
119
-	if (!preg_match(',^sqlite,i', (string) $serveur_db)) {
120
-		if (!$login_db = _request('login_db')) {
121
-			$login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : $def_login_db;
122
-		}
123
-		if (!$pass_db = _request('pass_db')) {
124
-			$pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : $def_pass_db;
125
-		}
126
-	}
127
-
128
-	$link = spip_connect_db($adresse_db, '', $login_db, $pass_db, '@test@', $serveur_db);
129
-	if ($link) {
130
-		$GLOBALS['connexions'][$serveur_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $serveur_db . '_functions_' . $GLOBALS['spip_sql_version']];
131
-		$GLOBALS['connexions'][$serveur_db] = $link;
132
-		define('_DECLARER_SERVEUR_DB', $serveur_db);
133
-		define('_DECLARER_ADRESSE_DB', $adresse_db);
134
-		define('_DECLARER_LOGIN_DB', $login_db);
135
-		define('_DECLARER_PASS_DB', $pass_db);
136
-		// si on est sur le meme serveur que connect.php
137
-		// indiquer quelle est la db utilisee pour l'exclure des choix possibles
138
-		if ($serveur_db == $def_serveur_db && $adresse_db == $def_adresse_db) {
139
-			set_request('main_db', $sel_db);
140
-		} else {
141
-			set_request('main_db', '');
142
-		}
143
-	} else {
144
-		$erreurs['message_erreur'] = _T('avis_connexion_echec_1');
145
-	}
146
-
147
-	return $erreurs;
108
+    $erreurs = [];
109
+    [$def_adresse_db, $def_login_db, $def_pass_db, $sel_db, $def_serveur_db] = analyse_fichier_connection(_FILE_CONNECT);
110
+
111
+    if (!$adresse_db = _request('adresse_db')) {
112
+        $adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : $def_adresse_db;
113
+    }
114
+    if (!$serveur_db = _request('sql_serveur_db')) {
115
+        $serveur_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : $def_serveur_db;
116
+    }
117
+
118
+    $login_db = $pass_db = '';
119
+    if (!preg_match(',^sqlite,i', (string) $serveur_db)) {
120
+        if (!$login_db = _request('login_db')) {
121
+            $login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : $def_login_db;
122
+        }
123
+        if (!$pass_db = _request('pass_db')) {
124
+            $pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : $def_pass_db;
125
+        }
126
+    }
127
+
128
+    $link = spip_connect_db($adresse_db, '', $login_db, $pass_db, '@test@', $serveur_db);
129
+    if ($link) {
130
+        $GLOBALS['connexions'][$serveur_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $serveur_db . '_functions_' . $GLOBALS['spip_sql_version']];
131
+        $GLOBALS['connexions'][$serveur_db] = $link;
132
+        define('_DECLARER_SERVEUR_DB', $serveur_db);
133
+        define('_DECLARER_ADRESSE_DB', $adresse_db);
134
+        define('_DECLARER_LOGIN_DB', $login_db);
135
+        define('_DECLARER_PASS_DB', $pass_db);
136
+        // si on est sur le meme serveur que connect.php
137
+        // indiquer quelle est la db utilisee pour l'exclure des choix possibles
138
+        if ($serveur_db == $def_serveur_db && $adresse_db == $def_adresse_db) {
139
+            set_request('main_db', $sel_db);
140
+        } else {
141
+            set_request('main_db', '');
142
+        }
143
+    } else {
144
+        $erreurs['message_erreur'] = _T('avis_connexion_echec_1');
145
+    }
146
+
147
+    return $erreurs;
148 148
 }
149 149
 
150 150
 function formulaires_declarer_bases_verifier_2_dist() {
151
-	$erreurs = [];
152
-	$choix_db = _request('choix_db');
153
-	if ($choix_db == '-1') {
154
-		$choix_db = _request('table_new');
155
-	}
156
-	if (!$choix_db) {
157
-		$erreurs['choix_db'] = _T('info_obligatoire');
158
-	} else {
159
-		define('_ECRIRE_INSTALL', 1); // hackons sqlite
160
-		if (!sql_selectdb($choix_db, _DECLARER_SERVEUR_DB)) {
161
-			$erreurs['choix_db'] = _T('avis_base_inaccessible', ['base' => $choix_db]);
162
-		} else {
163
-			define('_DECLARER_CHOIX_DB', $choix_db);
164
-		}
165
-	}
166
-
167
-	return $erreurs;
151
+    $erreurs = [];
152
+    $choix_db = _request('choix_db');
153
+    if ($choix_db == '-1') {
154
+        $choix_db = _request('table_new');
155
+    }
156
+    if (!$choix_db) {
157
+        $erreurs['choix_db'] = _T('info_obligatoire');
158
+    } else {
159
+        define('_ECRIRE_INSTALL', 1); // hackons sqlite
160
+        if (!sql_selectdb($choix_db, _DECLARER_SERVEUR_DB)) {
161
+            $erreurs['choix_db'] = _T('avis_base_inaccessible', ['base' => $choix_db]);
162
+        } else {
163
+            define('_DECLARER_CHOIX_DB', $choix_db);
164
+        }
165
+    }
166
+
167
+    return $erreurs;
168 168
 }
169 169
 
170 170
 function formulaires_declarer_bases_verifier_3_dist() {
171
-	$erreurs = [];
172
-	$nom_connect = _request('nom_connect');
173
-	if (!$nom_connect) {
174
-		$erreurs['nom_connect'] = _T('info_obligatoire');
175
-	} else {
176
-		// securite : le nom doit etre un mot sans caracteres speciaux
177
-		$f = preg_replace(',[^\w],', '', (string) $nom_connect);
178
-		if ($f !== $nom_connect) {
179
-			$erreurs['nom_connect'] = _T('erreur_nom_connect_incorrect');
180
-		} elseif (file_exists(_DIR_CONNECT . $nom_connect . '.php')) {
181
-			$erreurs['nom_connect'] = _T('erreur_connect_deja_existant');
182
-		} else {
183
-			define('_DECLARER_NOM_CONNECT', $nom_connect);
184
-		}
185
-	}
186
-
187
-	return $erreurs;
171
+    $erreurs = [];
172
+    $nom_connect = _request('nom_connect');
173
+    if (!$nom_connect) {
174
+        $erreurs['nom_connect'] = _T('info_obligatoire');
175
+    } else {
176
+        // securite : le nom doit etre un mot sans caracteres speciaux
177
+        $f = preg_replace(',[^\w],', '', (string) $nom_connect);
178
+        if ($f !== $nom_connect) {
179
+            $erreurs['nom_connect'] = _T('erreur_nom_connect_incorrect');
180
+        } elseif (file_exists(_DIR_CONNECT . $nom_connect . '.php')) {
181
+            $erreurs['nom_connect'] = _T('erreur_connect_deja_existant');
182
+        } else {
183
+            define('_DECLARER_NOM_CONNECT', $nom_connect);
184
+        }
185
+    }
186
+
187
+    return $erreurs;
188 188
 }
189 189
 
190 190
 function formulaires_declarer_bases_traiter_dist() {
191 191
 
192
-	$adresse_db = _DECLARER_ADRESSE_DB;
193
-	if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) {
194
-		[, $adresse_db, $port] = $r;
195
-	} else {
196
-		$port = '';
197
-	}
198
-
199
-	$server_db = addcslashes((string) _DECLARER_SERVEUR_DB, "'\\");
200
-
201
-	$conn = install_mode_appel($server_db)
202
-		. install_connexion(
203
-			$adresse_db,
204
-			$port,
205
-			_DECLARER_LOGIN_DB,
206
-			_DECLARER_PASS_DB,
207
-			_DECLARER_CHOIX_DB,
208
-			_DECLARER_SERVEUR_DB,
209
-			'',
210
-			'',
211
-			''
212
-		);
213
-
214
-	install_fichier_connexion(_DIR_CONNECT . _DECLARER_NOM_CONNECT . '.php', $conn);
215
-
216
-	return [
217
-		'message_ok' => _T('install_connect_ok', ['connect' => '<strong>' . _DECLARER_NOM_CONNECT . '</strong>'])
218
-	];
192
+    $adresse_db = _DECLARER_ADRESSE_DB;
193
+    if (preg_match(',(.*):(.*),', (string) $adresse_db, $r)) {
194
+        [, $adresse_db, $port] = $r;
195
+    } else {
196
+        $port = '';
197
+    }
198
+
199
+    $server_db = addcslashes((string) _DECLARER_SERVEUR_DB, "'\\");
200
+
201
+    $conn = install_mode_appel($server_db)
202
+        . install_connexion(
203
+            $adresse_db,
204
+            $port,
205
+            _DECLARER_LOGIN_DB,
206
+            _DECLARER_PASS_DB,
207
+            _DECLARER_CHOIX_DB,
208
+            _DECLARER_SERVEUR_DB,
209
+            '',
210
+            '',
211
+            ''
212
+        );
213
+
214
+    install_fichier_connexion(_DIR_CONNECT . _DECLARER_NOM_CONNECT . '.php', $conn);
215
+
216
+    return [
217
+        'message_ok' => _T('install_connect_ok', ['connect' => '<strong>' . _DECLARER_NOM_CONNECT . '</strong>'])
218
+    ];
219 219
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_langue.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -10,57 +10,57 @@
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 function formulaires_configurer_langue_charger_dist() {
17
-	$valeurs = [];
17
+    $valeurs = [];
18 18
 
19
-	include_spip('inc/lang');
20
-	$l_site = $GLOBALS['meta']['langue_site'];
21
-	$langue_site = traduire_nom_langue($l_site);
19
+    include_spip('inc/lang');
20
+    $l_site = $GLOBALS['meta']['langue_site'];
21
+    $langue_site = traduire_nom_langue($l_site);
22 22
 
23
-	$langues = explode(',', (string) $GLOBALS['meta']['langues_proposees']);
24
-	if (!in_array($l_site, $langues)) {
25
-		$langues[] = $l_site;
26
-	}
27
-	sort($langues);
23
+    $langues = explode(',', (string) $GLOBALS['meta']['langues_proposees']);
24
+    if (!in_array($l_site, $langues)) {
25
+        $langues[] = $l_site;
26
+    }
27
+    sort($langues);
28 28
 
29
-	$res = '';
30
-	foreach ($langues as $l) {
31
-		$res .= "<option value='$l'"
32
-			. ($l == $l_site ? " selected='selected'" : '')
33
-			. '>' . traduire_nom_langue($l) . "</option>\n";
34
-	}
29
+    $res = '';
30
+    foreach ($langues as $l) {
31
+        $res .= "<option value='$l'"
32
+            . ($l == $l_site ? " selected='selected'" : '')
33
+            . '>' . traduire_nom_langue($l) . "</option>\n";
34
+    }
35 35
 
36
-	return [
37
-		'_langues' => $res,
38
-		'_langue_site' => $langue_site,
39
-		'changer_langue_site' => '',
40
-	];
36
+    return [
37
+        '_langues' => $res,
38
+        '_langue_site' => $langue_site,
39
+        'changer_langue_site' => '',
40
+    ];
41 41
 }
42 42
 
43 43
 
44 44
 function formulaires_configurer_langue_traiter_dist() {
45
-	$res = ['editable' => true];
45
+    $res = ['editable' => true];
46 46
 
47
-	if ($lang = _request('changer_langue_site')) {
48
-		include_spip('inc/lang');
49
-		// verif que la langue demandee est licite
50
-		if (changer_langue($lang)) {
51
-			ecrire_meta('langue_site', $lang);
52
-			// le test a defait ca:
53
-			utiliser_langue_visiteur();
54
-			$res['message_ok'] = _T('config_info_enregistree');
55
-			include_spip('inc/rubriques');
56
-			calculer_langues_rubriques();
57
-		}
58
-		// le test a defait ca:
59
-		utiliser_langue_visiteur();
60
-	}
61
-	if (!$res['message_ok']) {
62
-		$res['message_erreur'] = _L('erreur');
63
-	}
47
+    if ($lang = _request('changer_langue_site')) {
48
+        include_spip('inc/lang');
49
+        // verif que la langue demandee est licite
50
+        if (changer_langue($lang)) {
51
+            ecrire_meta('langue_site', $lang);
52
+            // le test a defait ca:
53
+            utiliser_langue_visiteur();
54
+            $res['message_ok'] = _T('config_info_enregistree');
55
+            include_spip('inc/rubriques');
56
+            calculer_langues_rubriques();
57
+        }
58
+        // le test a defait ca:
59
+        utiliser_langue_visiteur();
60
+    }
61
+    if (!$res['message_ok']) {
62
+        $res['message_erreur'] = _L('erreur');
63
+    }
64 64
 
65
-	return $res;
65
+    return $res;
66 66
 }
Please login to merge, or discard this patch.
prive/formulaires/editer_liens.php 1 patch
Indentation   +433 added lines, -433 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * @package SPIP\Core\Formulaires
16 16
  **/
17 17
 if (!defined('_ECRIRE_INC_VERSION')) {
18
-	return;
18
+    return;
19 19
 }
20 20
 
21 21
 
@@ -35,25 +35,25 @@  discard block
 block discarded – undo
35 35
  *   ($table_source,$objet,$id_objet,$objet_lien)
36 36
  */
37 37
 function determine_source_lien_objet($a, $b, $c) {
38
-	$table_source = $objet_lien = $objet = $id_objet = null;
39
-	// auteurs, article, 23 :
40
-	// associer des auteurs à l'article 23, sur la table pivot spip_auteurs_liens
41
-	if (is_numeric($c) && !is_numeric($b)) {
42
-		$table_source = table_objet($a);
43
-		$objet_lien = objet_type($a);
44
-		$objet = objet_type($b);
45
-		$id_objet = $c;
46
-	}
47
-	// article, 23, auteurs
48
-	// associer des auteurs à l'article 23, sur la table pivot spip_articles_liens
49
-	if (is_numeric($b) && !is_numeric($c)) {
50
-		$table_source = table_objet($c);
51
-		$objet_lien = objet_type($a);
52
-		$objet = objet_type($a);
53
-		$id_objet = $b;
54
-	}
55
-
56
-	return [$table_source, $objet, $id_objet, $objet_lien];
38
+    $table_source = $objet_lien = $objet = $id_objet = null;
39
+    // auteurs, article, 23 :
40
+    // associer des auteurs à l'article 23, sur la table pivot spip_auteurs_liens
41
+    if (is_numeric($c) && !is_numeric($b)) {
42
+        $table_source = table_objet($a);
43
+        $objet_lien = objet_type($a);
44
+        $objet = objet_type($b);
45
+        $id_objet = $c;
46
+    }
47
+    // article, 23, auteurs
48
+    // associer des auteurs à l'article 23, sur la table pivot spip_articles_liens
49
+    if (is_numeric($b) && !is_numeric($c)) {
50
+        $table_source = table_objet($c);
51
+        $objet_lien = objet_type($a);
52
+        $objet = objet_type($a);
53
+        $id_objet = $b;
54
+    }
55
+
56
+    return [$table_source, $objet, $id_objet, $objet_lien];
57 57
 }
58 58
 
59 59
 /**
@@ -79,87 +79,87 @@  discard block
 block discarded – undo
79 79
  */
80 80
 function formulaires_editer_liens_charger_dist($a, $b, $c, $options = []) {
81 81
 
82
-	// compat avec ancienne signature ou le 4eme argument est $editable
83
-	if (!is_array($options)) {
84
-		$options = ['editable' => $options];
85
-	} elseif (!isset($options['editable'])) {
86
-		$options['editable'] = true;
87
-	}
88
-
89
-	$editable = $options['editable'];
90
-
91
-	[$table_source, $objet, $id_objet, $objet_lien] = determine_source_lien_objet($a, $b, $c);
92
-	if (!$table_source || !$objet || !$objet_lien || !$id_objet) {
93
-		return false;
94
-	}
95
-
96
-	$objet_source = objet_type($table_source);
97
-	$table_sql_source = table_objet_sql($objet_source);
98
-
99
-	// verifier existence de la table xxx_liens
100
-	include_spip('action/editer_liens');
101
-	if (!objet_associable($objet_lien)) {
102
-		return false;
103
-	}
104
-
105
-	// L'éditabilité :) est définie par un test permanent (par exemple "associermots") ET le 4ème argument
106
-	include_spip('inc/autoriser');
107
-	$editable = ($editable
108
-		&& autoriser('associer' . $table_source, $objet, $id_objet)
109
-		&& autoriser('modifier', $objet, $id_objet));
110
-
111
-	if (
112
-		!$editable && !count(objet_trouver_liens(
113
-			[$objet_lien => '*'],
114
-			[($objet_lien == $objet_source ? $objet : $objet_source) => $id_objet]
115
-		))
116
-	) {
117
-		return false;
118
-	}
119
-
120
-	// squelettes de vue et de d'association
121
-	// ils sont différents si des rôles sont définis.
122
-	$skel_vue = $table_source . '_lies';
123
-	$skel_ajout = $table_source . '_associer';
124
-
125
-	// description des roles
126
-	include_spip('inc/roles');
127
-	if ($roles = roles_presents($objet_source, $objet)) {
128
-		// on demande de nouveaux squelettes en conséquence
129
-		$skel_vue = $table_source . '_roles_lies';
130
-		$skel_ajout = $table_source . '_roles_associer';
131
-	}
132
-
133
-	$oups = '';
134
-	if ($editable) {
135
-		$oups = lien_gerer__oups('editer_liens', 'hash');
136
-	}
137
-	$valeurs = [
138
-		'id' => "$table_source-$objet-$id_objet-$objet_lien", // identifiant unique pour les id du form
139
-		'_vue_liee' => $skel_vue,
140
-		'_vue_ajout' => $skel_ajout,
141
-		'_objet_lien' => $objet_lien,
142
-		'id_lien_ajoute' => _request('id_lien_ajoute'),
143
-		'objet' => $objet,
144
-		'id_objet' => $id_objet,
145
-		'objet_source' => $objet_source,
146
-		'table_source' => $table_source,
147
-		'recherche' => '',
148
-		'visible' => 0,
149
-		'ajouter_lien' => '',
150
-		'supprimer_lien' => '',
151
-		'qualifier_lien' => '',
152
-		'ordonner_lien' => '',
153
-		'desordonner_liens' => '',
154
-		'_roles' => $roles, # description des roles
155
-		'_oups' => entites_html($oups),
156
-		'editable' => $editable,
157
-	];
158
-
159
-	// les options non definies dans $valeurs sont passees telles quelles au formulaire html
160
-	$valeurs = array_merge($options, $valeurs);
161
-
162
-	return $valeurs;
82
+    // compat avec ancienne signature ou le 4eme argument est $editable
83
+    if (!is_array($options)) {
84
+        $options = ['editable' => $options];
85
+    } elseif (!isset($options['editable'])) {
86
+        $options['editable'] = true;
87
+    }
88
+
89
+    $editable = $options['editable'];
90
+
91
+    [$table_source, $objet, $id_objet, $objet_lien] = determine_source_lien_objet($a, $b, $c);
92
+    if (!$table_source || !$objet || !$objet_lien || !$id_objet) {
93
+        return false;
94
+    }
95
+
96
+    $objet_source = objet_type($table_source);
97
+    $table_sql_source = table_objet_sql($objet_source);
98
+
99
+    // verifier existence de la table xxx_liens
100
+    include_spip('action/editer_liens');
101
+    if (!objet_associable($objet_lien)) {
102
+        return false;
103
+    }
104
+
105
+    // L'éditabilité :) est définie par un test permanent (par exemple "associermots") ET le 4ème argument
106
+    include_spip('inc/autoriser');
107
+    $editable = ($editable
108
+        && autoriser('associer' . $table_source, $objet, $id_objet)
109
+        && autoriser('modifier', $objet, $id_objet));
110
+
111
+    if (
112
+        !$editable && !count(objet_trouver_liens(
113
+            [$objet_lien => '*'],
114
+            [($objet_lien == $objet_source ? $objet : $objet_source) => $id_objet]
115
+        ))
116
+    ) {
117
+        return false;
118
+    }
119
+
120
+    // squelettes de vue et de d'association
121
+    // ils sont différents si des rôles sont définis.
122
+    $skel_vue = $table_source . '_lies';
123
+    $skel_ajout = $table_source . '_associer';
124
+
125
+    // description des roles
126
+    include_spip('inc/roles');
127
+    if ($roles = roles_presents($objet_source, $objet)) {
128
+        // on demande de nouveaux squelettes en conséquence
129
+        $skel_vue = $table_source . '_roles_lies';
130
+        $skel_ajout = $table_source . '_roles_associer';
131
+    }
132
+
133
+    $oups = '';
134
+    if ($editable) {
135
+        $oups = lien_gerer__oups('editer_liens', 'hash');
136
+    }
137
+    $valeurs = [
138
+        'id' => "$table_source-$objet-$id_objet-$objet_lien", // identifiant unique pour les id du form
139
+        '_vue_liee' => $skel_vue,
140
+        '_vue_ajout' => $skel_ajout,
141
+        '_objet_lien' => $objet_lien,
142
+        'id_lien_ajoute' => _request('id_lien_ajoute'),
143
+        'objet' => $objet,
144
+        'id_objet' => $id_objet,
145
+        'objet_source' => $objet_source,
146
+        'table_source' => $table_source,
147
+        'recherche' => '',
148
+        'visible' => 0,
149
+        'ajouter_lien' => '',
150
+        'supprimer_lien' => '',
151
+        'qualifier_lien' => '',
152
+        'ordonner_lien' => '',
153
+        'desordonner_liens' => '',
154
+        '_roles' => $roles, # description des roles
155
+        '_oups' => entites_html($oups),
156
+        'editable' => $editable,
157
+    ];
158
+
159
+    // les options non definies dans $valeurs sont passees telles quelles au formulaire html
160
+    $valeurs = array_merge($options, $valeurs);
161
+
162
+    return $valeurs;
163 163
 }
164 164
 
165 165
 /**
@@ -203,170 +203,170 @@  discard block
 block discarded – undo
203 203
  * @return array
204 204
  */
205 205
 function formulaires_editer_liens_traiter_dist($a, $b, $c, $options = []) {
206
-	// compat avec ancienne signature ou le 4eme argument est $editable
207
-	if (!is_array($options)) {
208
-		$options = ['editable' => $options];
209
-	} elseif (!isset($options['editable'])) {
210
-		$options['editable'] = true;
211
-	}
212
-
213
-	$editable = $options['editable'];
214
-
215
-	$res = ['editable' => (bool) $editable];
216
-	[$table_source, $objet, $id_objet, $objet_lien] = determine_source_lien_objet($a, $b, $c);
217
-	if (!$table_source || !$objet || !$objet_lien) {
218
-		return $res;
219
-	}
220
-
221
-
222
-	if (_request('tout_voir')) {
223
-		set_request('recherche', '');
224
-	}
225
-
226
-	include_spip('inc/autoriser');
227
-	if (autoriser('modifier', $objet, $id_objet)) {
228
-		// recuperer le oups du coup d'avant pour le propager à charger() si on ne fait rien par exemple
229
-		lien_gerer__oups('editer_liens', 'request');
230
-
231
-		// annuler les suppressions du coup d'avant ?
232
-		if (
233
-			_request('annuler_oups')
234
-			&& ($oups = lien_gerer__oups('editer_liens', 'get'))
235
-		) {
236
-			if ($oups_objets = charger_fonction("editer_liens_oups_{$table_source}_{$objet}_{$objet_lien}", 'action', true)) {
237
-				$oups_objets($oups);
238
-			} else {
239
-				$objet_source = objet_type($table_source);
240
-				include_spip('action/editer_liens');
241
-				foreach ($oups as $oup) {
242
-					if ($objet_lien == $objet_source) {
243
-						objet_associer([$objet_source => $oup[$objet_source]], [$objet => $oup[$objet]], $oup);
244
-					} else {
245
-						objet_associer([$objet => $oup[$objet]], [$objet_source => $oup[$objet_source]], $oup);
246
-					}
247
-				}
248
-			}
249
-			# oups ne persiste que pour la derniere action, si suppression
250
-			lien_gerer__oups('editer_liens', 'reset');
251
-		}
252
-
253
-		$supprimer = _request('supprimer_lien');
254
-		$ajouter = _request('ajouter_lien');
255
-		$ordonner = _request('ordonner_lien');
256
-
257
-		if (_request('desordonner_liens')) {
258
-			include_spip('action/editer_liens');
259
-			objet_qualifier_liens([$objet_lien => '*'], [$objet => $id_objet], ['rang_lien' => 0]);
260
-		}
261
-
262
-		// il est possible de preciser dans une seule variable un remplacement :
263
-		// remplacer_lien[old][new]
264
-		if ($remplacer = _request('remplacer_lien')) {
265
-			foreach ($remplacer as $k => $v) {
266
-				if ($old = lien_verifier_action($k, '')) {
267
-					foreach (is_array($v) ? $v : [$v] as $kn => $vn) {
268
-						if ($new = lien_verifier_action($kn, $vn)) {
269
-							$supprimer[$old] = 'x';
270
-							$ajouter[$new] = '+';
271
-						}
272
-					}
273
-				}
274
-			}
275
-		}
276
-
277
-		if ($supprimer) {
278
-			if (
279
-				$supprimer_objets = charger_fonction(
280
-					"editer_liens_supprimer_{$table_source}_{$objet}_{$objet_lien}",
281
-					'action',
282
-					true
283
-				)
284
-			) {
285
-				$oups = $supprimer_objets($supprimer);
286
-			} else {
287
-				include_spip('action/editer_liens');
288
-				$oups = [];
289
-
290
-				foreach ($supprimer as $k => $v) {
291
-					if ($lien = lien_verifier_action($k, $v)) {
292
-						$lien = explode('-', $lien);
293
-						[$objet_source, $ids, $objet_lie, $idl, $role] = array_pad($lien, 5, null);
294
-						// appliquer une condition sur le rôle si défini ('*' pour tous les roles)
295
-						$cond = (is_null($role) ? [] : ['role' => $role]);
296
-						if ($objet_lien == $objet_source) {
297
-							$oups = array_merge(
298
-								$oups,
299
-								objet_trouver_liens([$objet_source => $ids], [$objet_lie => $idl], $cond)
300
-							);
301
-							objet_dissocier([$objet_source => $ids], [$objet_lie => $idl], $cond);
302
-						} else {
303
-							$oups = array_merge(
304
-								$oups,
305
-								objet_trouver_liens([$objet_lie => $idl], [$objet_source => $ids], $cond)
306
-							);
307
-							objet_dissocier([$objet_lie => $idl], [$objet_source => $ids], $cond);
308
-						}
309
-					}
310
-				}
311
-			}
312
-			if (!empty($oups)) {
313
-				lien_gerer__oups('editer_liens', 'set', $oups);
314
-			} else {
315
-				lien_gerer__oups('editer_liens', 'reset');
316
-			}
317
-		}
318
-
319
-		if ($ajouter) {
320
-			if (
321
-				$ajouter_objets = charger_fonction("editer_liens_ajouter_{$table_source}_{$objet}_{$objet_lien}", 'action', true)
322
-			) {
323
-				$ajout_ok = $ajouter_objets($ajouter);
324
-			} else {
325
-				$ajout_ok = false;
326
-				include_spip('action/editer_liens');
327
-				foreach ($ajouter as $k => $v) {
328
-					if ($lien = lien_verifier_action($k, $v)) {
329
-						$ajout_ok = true;
330
-						[$objet1, $ids, $objet2, $idl] = explode('-', $lien);
331
-						$qualifs = lien_retrouver_qualif($objet_lien, $lien);
332
-						if ($objet_lien == $objet1) {
333
-							lien_ajouter_liaisons($objet1, $ids, $objet2, $idl, $qualifs);
334
-						} else {
335
-							lien_ajouter_liaisons($objet2, $idl, $objet1, $ids, $qualifs);
336
-						}
337
-						set_request('id_lien_ajoute', $ids);
338
-					}
339
-				}
340
-			}
341
-			# oups ne persiste que pour la derniere action, si suppression
342
-			# une suppression suivie d'un ajout dans le meme hit est un remplacement
343
-			# non annulable !
344
-			if ($ajout_ok) {
345
-				lien_gerer__oups('editer_liens', 'reset');
346
-			}
347
-		}
348
-
349
-		if ($ordonner) {
350
-			include_spip('action/editer_liens');
351
-			foreach ($ordonner as $k => $rang_lien) {
352
-				if ($lien = lien_verifier_action($k, '')) {
353
-					[$objet1, $ids, $objet2, $idl] = explode('-', $lien);
354
-					$qualif = ['rang_lien' => $rang_lien];
355
-
356
-					if ($objet_lien == $objet1) {
357
-						objet_qualifier_liens([$objet1 => $ids], [$objet2 => $idl], $qualif);
358
-					} else {
359
-						objet_qualifier_liens([$objet2 => $idl], [$objet1 => $ids], $qualif);
360
-					}
361
-					set_request('id_lien_ajoute', $ids);
362
-					lien_gerer__oups('editer_liens', 'reset');
363
-				}
364
-			}
365
-		}
366
-	}
367
-
368
-
369
-	return $res;
206
+    // compat avec ancienne signature ou le 4eme argument est $editable
207
+    if (!is_array($options)) {
208
+        $options = ['editable' => $options];
209
+    } elseif (!isset($options['editable'])) {
210
+        $options['editable'] = true;
211
+    }
212
+
213
+    $editable = $options['editable'];
214
+
215
+    $res = ['editable' => (bool) $editable];
216
+    [$table_source, $objet, $id_objet, $objet_lien] = determine_source_lien_objet($a, $b, $c);
217
+    if (!$table_source || !$objet || !$objet_lien) {
218
+        return $res;
219
+    }
220
+
221
+
222
+    if (_request('tout_voir')) {
223
+        set_request('recherche', '');
224
+    }
225
+
226
+    include_spip('inc/autoriser');
227
+    if (autoriser('modifier', $objet, $id_objet)) {
228
+        // recuperer le oups du coup d'avant pour le propager à charger() si on ne fait rien par exemple
229
+        lien_gerer__oups('editer_liens', 'request');
230
+
231
+        // annuler les suppressions du coup d'avant ?
232
+        if (
233
+            _request('annuler_oups')
234
+            && ($oups = lien_gerer__oups('editer_liens', 'get'))
235
+        ) {
236
+            if ($oups_objets = charger_fonction("editer_liens_oups_{$table_source}_{$objet}_{$objet_lien}", 'action', true)) {
237
+                $oups_objets($oups);
238
+            } else {
239
+                $objet_source = objet_type($table_source);
240
+                include_spip('action/editer_liens');
241
+                foreach ($oups as $oup) {
242
+                    if ($objet_lien == $objet_source) {
243
+                        objet_associer([$objet_source => $oup[$objet_source]], [$objet => $oup[$objet]], $oup);
244
+                    } else {
245
+                        objet_associer([$objet => $oup[$objet]], [$objet_source => $oup[$objet_source]], $oup);
246
+                    }
247
+                }
248
+            }
249
+            # oups ne persiste que pour la derniere action, si suppression
250
+            lien_gerer__oups('editer_liens', 'reset');
251
+        }
252
+
253
+        $supprimer = _request('supprimer_lien');
254
+        $ajouter = _request('ajouter_lien');
255
+        $ordonner = _request('ordonner_lien');
256
+
257
+        if (_request('desordonner_liens')) {
258
+            include_spip('action/editer_liens');
259
+            objet_qualifier_liens([$objet_lien => '*'], [$objet => $id_objet], ['rang_lien' => 0]);
260
+        }
261
+
262
+        // il est possible de preciser dans une seule variable un remplacement :
263
+        // remplacer_lien[old][new]
264
+        if ($remplacer = _request('remplacer_lien')) {
265
+            foreach ($remplacer as $k => $v) {
266
+                if ($old = lien_verifier_action($k, '')) {
267
+                    foreach (is_array($v) ? $v : [$v] as $kn => $vn) {
268
+                        if ($new = lien_verifier_action($kn, $vn)) {
269
+                            $supprimer[$old] = 'x';
270
+                            $ajouter[$new] = '+';
271
+                        }
272
+                    }
273
+                }
274
+            }
275
+        }
276
+
277
+        if ($supprimer) {
278
+            if (
279
+                $supprimer_objets = charger_fonction(
280
+                    "editer_liens_supprimer_{$table_source}_{$objet}_{$objet_lien}",
281
+                    'action',
282
+                    true
283
+                )
284
+            ) {
285
+                $oups = $supprimer_objets($supprimer);
286
+            } else {
287
+                include_spip('action/editer_liens');
288
+                $oups = [];
289
+
290
+                foreach ($supprimer as $k => $v) {
291
+                    if ($lien = lien_verifier_action($k, $v)) {
292
+                        $lien = explode('-', $lien);
293
+                        [$objet_source, $ids, $objet_lie, $idl, $role] = array_pad($lien, 5, null);
294
+                        // appliquer une condition sur le rôle si défini ('*' pour tous les roles)
295
+                        $cond = (is_null($role) ? [] : ['role' => $role]);
296
+                        if ($objet_lien == $objet_source) {
297
+                            $oups = array_merge(
298
+                                $oups,
299
+                                objet_trouver_liens([$objet_source => $ids], [$objet_lie => $idl], $cond)
300
+                            );
301
+                            objet_dissocier([$objet_source => $ids], [$objet_lie => $idl], $cond);
302
+                        } else {
303
+                            $oups = array_merge(
304
+                                $oups,
305
+                                objet_trouver_liens([$objet_lie => $idl], [$objet_source => $ids], $cond)
306
+                            );
307
+                            objet_dissocier([$objet_lie => $idl], [$objet_source => $ids], $cond);
308
+                        }
309
+                    }
310
+                }
311
+            }
312
+            if (!empty($oups)) {
313
+                lien_gerer__oups('editer_liens', 'set', $oups);
314
+            } else {
315
+                lien_gerer__oups('editer_liens', 'reset');
316
+            }
317
+        }
318
+
319
+        if ($ajouter) {
320
+            if (
321
+                $ajouter_objets = charger_fonction("editer_liens_ajouter_{$table_source}_{$objet}_{$objet_lien}", 'action', true)
322
+            ) {
323
+                $ajout_ok = $ajouter_objets($ajouter);
324
+            } else {
325
+                $ajout_ok = false;
326
+                include_spip('action/editer_liens');
327
+                foreach ($ajouter as $k => $v) {
328
+                    if ($lien = lien_verifier_action($k, $v)) {
329
+                        $ajout_ok = true;
330
+                        [$objet1, $ids, $objet2, $idl] = explode('-', $lien);
331
+                        $qualifs = lien_retrouver_qualif($objet_lien, $lien);
332
+                        if ($objet_lien == $objet1) {
333
+                            lien_ajouter_liaisons($objet1, $ids, $objet2, $idl, $qualifs);
334
+                        } else {
335
+                            lien_ajouter_liaisons($objet2, $idl, $objet1, $ids, $qualifs);
336
+                        }
337
+                        set_request('id_lien_ajoute', $ids);
338
+                    }
339
+                }
340
+            }
341
+            # oups ne persiste que pour la derniere action, si suppression
342
+            # une suppression suivie d'un ajout dans le meme hit est un remplacement
343
+            # non annulable !
344
+            if ($ajout_ok) {
345
+                lien_gerer__oups('editer_liens', 'reset');
346
+            }
347
+        }
348
+
349
+        if ($ordonner) {
350
+            include_spip('action/editer_liens');
351
+            foreach ($ordonner as $k => $rang_lien) {
352
+                if ($lien = lien_verifier_action($k, '')) {
353
+                    [$objet1, $ids, $objet2, $idl] = explode('-', $lien);
354
+                    $qualif = ['rang_lien' => $rang_lien];
355
+
356
+                    if ($objet_lien == $objet1) {
357
+                        objet_qualifier_liens([$objet1 => $ids], [$objet2 => $idl], $qualif);
358
+                    } else {
359
+                        objet_qualifier_liens([$objet2 => $idl], [$objet1 => $ids], $qualif);
360
+                    }
361
+                    set_request('id_lien_ajoute', $ids);
362
+                    lien_gerer__oups('editer_liens', 'reset');
363
+                }
364
+            }
365
+        }
366
+    }
367
+
368
+
369
+    return $res;
370 370
 }
371 371
 
372 372
 
@@ -389,24 +389,24 @@  discard block
 block discarded – undo
389 389
  * @return string Action demandée si trouvée, sinon ''
390 390
  */
391 391
 function lien_verifier_action($k, $v) {
392
-	$action = '';
393
-	if (preg_match(',^\w+-[\w*]+-[\w*]+-[\w*]+(-[\w*])?,', $k)) {
394
-		$action = $k;
395
-	}
396
-	if (preg_match(',^\w+-[\w*]+-[\w*]+-[\w*]+(-[\w*])?,', $v)) {
397
-		if (is_numeric($k)) {
398
-			$action = $v;
399
-		}
400
-		if (_request($k)) {
401
-			$action = $v;
402
-		}
403
-	}
404
-	// ajout un role null fictif (plus pratique) si pas défini
405
-	if ($action && count(explode('-', $action)) == 4) {
406
-		$action .= '-';
407
-	}
408
-
409
-	return $action;
392
+    $action = '';
393
+    if (preg_match(',^\w+-[\w*]+-[\w*]+-[\w*]+(-[\w*])?,', $k)) {
394
+        $action = $k;
395
+    }
396
+    if (preg_match(',^\w+-[\w*]+-[\w*]+-[\w*]+(-[\w*])?,', $v)) {
397
+        if (is_numeric($k)) {
398
+            $action = $v;
399
+        }
400
+        if (_request($k)) {
401
+            $action = $v;
402
+        }
403
+    }
404
+    // ajout un role null fictif (plus pratique) si pas défini
405
+    if ($action && count(explode('-', $action)) == 4) {
406
+        $action .= '-';
407
+    }
408
+
409
+    return $action;
410 410
 }
411 411
 
412 412
 
@@ -422,62 +422,62 @@  discard block
 block discarded – undo
422 422
  *   Liste des qualifs pour chaque lien. Tableau vide s'il n'y en a pas.
423 423
  **/
424 424
 function lien_retrouver_qualif($objet_lien, $lien) {
425
-	// un role est défini dans la liaison
426
-	$defs = explode('-', $lien);
427
-	[$objet1, , $objet2, , $role] = array_pad($defs, 5, null);
428
-	$colonne_role = $objet_lien == $objet1 ? roles_colonne($objet1, $objet2) : roles_colonne($objet2, $objet1);
429
-
430
-	// cas ou le role est defini en 5e argument de l'action sur le lien (suppression, ajout rapide sans autre attribut)
431
-	if ($role) {
432
-		return [
433
-			// un seul lien avec ce role
434
-			[$colonne_role => $role]
435
-		];
436
-	}
437
-
438
-	// retrouver les rôles postés pour cette liaison, s'il y en a.
439
-	$qualifier_lien = _request('qualifier_lien');
440
-	if (!$qualifier_lien || !is_array($qualifier_lien)) {
441
-		return [];
442
-	}
443
-
444
-	// pas avec l'action complete (incluant le role)
445
-	$qualif = [];
446
-	if (
447
-		(!isset($qualifier_lien[$lien]) || !$qualif = $qualifier_lien[$lien])
448
-		&& count($defs) == 5
449
-	) {
450
-		// on tente avec l'action sans le role
451
-		array_pop($defs);
452
-		$lien = implode('-', $defs);
453
-		if (!isset($qualifier_lien[$lien]) || !$qualif = $qualifier_lien[$lien]) {
454
-			$qualif = [];
455
-		}
456
-	}
457
-
458
-	// $qualif de la forme array(role=>array(...),valeur=>array(...),....)
459
-	// on le reforme en array(array(role=>..,valeur=>..,..),array(role=>..,valeur=>..,..),...)
460
-	$qualifs = [];
461
-	while (is_countable($qualif) ? count($qualif) : 0) {
462
-		$q = [];
463
-		foreach ($qualif as $att => $values) {
464
-			if (is_array($values)) {
465
-				$q[$att] = array_shift($qualif[$att]);
466
-				if (!(is_countable($qualif[$att]) ? count($qualif[$att]) : 0)) {
467
-					unset($qualif[$att]);
468
-				}
469
-			} else {
470
-				$q[$att] = $values;
471
-				unset($qualif[$att]);
472
-			}
473
-		}
474
-		// pas de rôle vide
475
-		if (!$colonne_role || !isset($q[$colonne_role]) || $q[$colonne_role]) {
476
-			$qualifs[] = $q;
477
-		}
478
-	}
479
-
480
-	return $qualifs;
425
+    // un role est défini dans la liaison
426
+    $defs = explode('-', $lien);
427
+    [$objet1, , $objet2, , $role] = array_pad($defs, 5, null);
428
+    $colonne_role = $objet_lien == $objet1 ? roles_colonne($objet1, $objet2) : roles_colonne($objet2, $objet1);
429
+
430
+    // cas ou le role est defini en 5e argument de l'action sur le lien (suppression, ajout rapide sans autre attribut)
431
+    if ($role) {
432
+        return [
433
+            // un seul lien avec ce role
434
+            [$colonne_role => $role]
435
+        ];
436
+    }
437
+
438
+    // retrouver les rôles postés pour cette liaison, s'il y en a.
439
+    $qualifier_lien = _request('qualifier_lien');
440
+    if (!$qualifier_lien || !is_array($qualifier_lien)) {
441
+        return [];
442
+    }
443
+
444
+    // pas avec l'action complete (incluant le role)
445
+    $qualif = [];
446
+    if (
447
+        (!isset($qualifier_lien[$lien]) || !$qualif = $qualifier_lien[$lien])
448
+        && count($defs) == 5
449
+    ) {
450
+        // on tente avec l'action sans le role
451
+        array_pop($defs);
452
+        $lien = implode('-', $defs);
453
+        if (!isset($qualifier_lien[$lien]) || !$qualif = $qualifier_lien[$lien]) {
454
+            $qualif = [];
455
+        }
456
+    }
457
+
458
+    // $qualif de la forme array(role=>array(...),valeur=>array(...),....)
459
+    // on le reforme en array(array(role=>..,valeur=>..,..),array(role=>..,valeur=>..,..),...)
460
+    $qualifs = [];
461
+    while (is_countable($qualif) ? count($qualif) : 0) {
462
+        $q = [];
463
+        foreach ($qualif as $att => $values) {
464
+            if (is_array($values)) {
465
+                $q[$att] = array_shift($qualif[$att]);
466
+                if (!(is_countable($qualif[$att]) ? count($qualif[$att]) : 0)) {
467
+                    unset($qualif[$att]);
468
+                }
469
+            } else {
470
+                $q[$att] = $values;
471
+                unset($qualif[$att]);
472
+            }
473
+        }
474
+        // pas de rôle vide
475
+        if (!$colonne_role || !isset($q[$colonne_role]) || $q[$colonne_role]) {
476
+            $qualifs[] = $q;
477
+        }
478
+    }
479
+
480
+    return $qualifs;
481 481
 }
482 482
 
483 483
 /**
@@ -496,14 +496,14 @@  discard block
 block discarded – undo
496 496
  **/
497 497
 function lien_ajouter_liaisons($objet_source, $ids, $objet_lien, $idl, $qualifs) {
498 498
 
499
-	// retrouver la colonne de roles s'il y en a a lier
500
-	if (is_array($qualifs) && count($qualifs)) {
501
-		foreach ($qualifs as $qualif) {
502
-			objet_associer([$objet_source => $ids], [$objet_lien => $idl], $qualif);
503
-		}
504
-	} else {
505
-		objet_associer([$objet_source => $ids], [$objet_lien => $idl]);
506
-	}
499
+    // retrouver la colonne de roles s'il y en a a lier
500
+    if (is_array($qualifs) && count($qualifs)) {
501
+        foreach ($qualifs as $qualif) {
502
+            objet_associer([$objet_source => $ids], [$objet_lien => $idl], $qualif);
503
+        }
504
+    } else {
505
+        objet_associer([$objet_source => $ids], [$objet_lien => $idl]);
506
+    }
507 507
 }
508 508
 
509 509
 
@@ -513,77 +513,77 @@  discard block
 block discarded – undo
513 513
  * @return array|string|null
514 514
  */
515 515
 function lien_gerer__oups(string $form, string $action, ?array $valeur = null) {
516
-	static $_oups_value;
517
-
518
-	switch ($action) {
519
-		case 'reset':
520
-			$res = !empty($_oups_value);
521
-			$_oups_value = null;
522
-			return $res;
523
-
524
-		case 'get':
525
-			return $_oups_value ?: null;
526
-
527
-		case 'set':
528
-			$_oups_value = $valeur;
529
-			return true;
530
-
531
-		case 'request':
532
-			$_oups_value = null;
533
-			if ($oups = _request('_oups')) {
534
-				include_spip('inc/filtres');
535
-				// on accepte uniquement une valeur signée
536
-				if ($oups = decoder_contexte_ajax($oups, $form)) {
537
-					if (
538
-						!is_array($oups)
539
-						|| empty($oups['id_auteur'])
540
-						|| $oups['id_auteur'] !== $GLOBALS['visiteur_session']['id_auteur']
541
-						|| empty($oups['time'])
542
-						|| $oups['time'] < $_SERVER['REQUEST_TIME'] - 86400
543
-						|| empty($oups['args'])
544
-						|| $oups['args'] !== lien_gerer__oups_collecter_args($form, debug_backtrace(0, 5))
545
-						|| empty($oups['oups_value'])
546
-					) {
547
-						$oups = null;
548
-					}
549
-					else {
550
-						$oups = $oups['oups_value'];
551
-						// controler le contenu
552
-						foreach ($oups as $k => $oup) {
553
-							if (!is_array($oup)) {
554
-								unset($oups[$k]);
555
-							} else {
556
-								foreach ($oup as $champ => $valeur) {
557
-									if (!is_scalar($champ) || !is_scalar($valeur) || preg_match(',\W,', $champ)) {
558
-										unset($oups[$k][$champ]);
559
-									}
560
-								}
561
-								if (empty($oups[$k])) {
562
-									unset($oups[$k]);
563
-								}
564
-							}
565
-						}
566
-					}
567
-					$_oups_value = $oups;
568
-					return $_oups_value;
569
-				}
570
-			}
571
-			break;
572
-
573
-		case 'hash':
574
-			if (!$_oups_value) {
575
-				return '';
576
-			}
577
-
578
-			include_spip('inc/filtres');
579
-			$oups = [
580
-				'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'] ?? 0,
581
-				'time' => strtotime(date('Y-m-d H:00:00')),
582
-				'args' => lien_gerer__oups_collecter_args($form, debug_backtrace(0, 5)),
583
-				'oups_value' => $_oups_value,
584
-			];
585
-			return encoder_contexte_ajax($oups, $form);
586
-	}
516
+    static $_oups_value;
517
+
518
+    switch ($action) {
519
+        case 'reset':
520
+            $res = !empty($_oups_value);
521
+            $_oups_value = null;
522
+            return $res;
523
+
524
+        case 'get':
525
+            return $_oups_value ?: null;
526
+
527
+        case 'set':
528
+            $_oups_value = $valeur;
529
+            return true;
530
+
531
+        case 'request':
532
+            $_oups_value = null;
533
+            if ($oups = _request('_oups')) {
534
+                include_spip('inc/filtres');
535
+                // on accepte uniquement une valeur signée
536
+                if ($oups = decoder_contexte_ajax($oups, $form)) {
537
+                    if (
538
+                        !is_array($oups)
539
+                        || empty($oups['id_auteur'])
540
+                        || $oups['id_auteur'] !== $GLOBALS['visiteur_session']['id_auteur']
541
+                        || empty($oups['time'])
542
+                        || $oups['time'] < $_SERVER['REQUEST_TIME'] - 86400
543
+                        || empty($oups['args'])
544
+                        || $oups['args'] !== lien_gerer__oups_collecter_args($form, debug_backtrace(0, 5))
545
+                        || empty($oups['oups_value'])
546
+                    ) {
547
+                        $oups = null;
548
+                    }
549
+                    else {
550
+                        $oups = $oups['oups_value'];
551
+                        // controler le contenu
552
+                        foreach ($oups as $k => $oup) {
553
+                            if (!is_array($oup)) {
554
+                                unset($oups[$k]);
555
+                            } else {
556
+                                foreach ($oup as $champ => $valeur) {
557
+                                    if (!is_scalar($champ) || !is_scalar($valeur) || preg_match(',\W,', $champ)) {
558
+                                        unset($oups[$k][$champ]);
559
+                                    }
560
+                                }
561
+                                if (empty($oups[$k])) {
562
+                                    unset($oups[$k]);
563
+                                }
564
+                            }
565
+                        }
566
+                    }
567
+                    $_oups_value = $oups;
568
+                    return $_oups_value;
569
+                }
570
+            }
571
+            break;
572
+
573
+        case 'hash':
574
+            if (!$_oups_value) {
575
+                return '';
576
+            }
577
+
578
+            include_spip('inc/filtres');
579
+            $oups = [
580
+                'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'] ?? 0,
581
+                'time' => strtotime(date('Y-m-d H:00:00')),
582
+                'args' => lien_gerer__oups_collecter_args($form, debug_backtrace(0, 5)),
583
+                'oups_value' => $_oups_value,
584
+            ];
585
+            return encoder_contexte_ajax($oups, $form);
586
+    }
587 587
 }
588 588
 
589 589
 /**
@@ -593,19 +593,19 @@  discard block
 block discarded – undo
593 593
  * @return string
594 594
  */
595 595
 function lien_gerer__oups_collecter_args($form, $trace) {
596
-	$args = '';
597
-	if (!empty($trace)) {
598
-		do {
599
-			$t = array_shift($trace);
600
-			$function = $t['function'] ?? '';
601
-			if (str_starts_with((string) $function, 'formulaires_' . $form)) {
602
-				if (isset($t['args'])) {
603
-					$args = json_encode($t['args']);
604
-				}
605
-				break;
606
-			}
607
-		}
608
-		while (count($trace));
609
-	}
610
-	return $args;
596
+    $args = '';
597
+    if (!empty($trace)) {
598
+        do {
599
+            $t = array_shift($trace);
600
+            $function = $t['function'] ?? '';
601
+            if (str_starts_with((string) $function, 'formulaires_' . $form)) {
602
+                if (isset($t['args'])) {
603
+                    $args = json_encode($t['args']);
604
+                }
605
+                break;
606
+            }
607
+        }
608
+        while (count($trace));
609
+    }
610
+    return $args;
611 611
 }
Please login to merge, or discard this patch.
prive/formulaires/editer_logo.php 1 patch
Indentation   +157 added lines, -157 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
  **/
30 30
 
31 31
 if (!defined('_ECRIRE_INC_VERSION')) {
32
-	return;
32
+    return;
33 33
 }
34 34
 
35 35
 // utilise pour le logo du site, donc doit rester ici
@@ -47,88 +47,88 @@  discard block
 block discarded – undo
47 47
  * @return array|false Variables d'environnement pour le fond
48 48
  */
49 49
 function formulaires_editer_logo_charger_dist($objet, $id_objet, $retour = '', $options = []) {
50
-	// pas dans une boucle ? formulaire pour le logo du site
51
-	// dans ce cas, il faut chercher un 'siteon0.ext'
52
-	if (!$objet) {
53
-		$objet = 'site';
54
-	}
50
+    // pas dans une boucle ? formulaire pour le logo du site
51
+    // dans ce cas, il faut chercher un 'siteon0.ext'
52
+    if (!$objet) {
53
+        $objet = 'site';
54
+    }
55 55
 
56
-	$objet = objet_type($objet);
57
-	$_id_objet = id_table_objet($objet);
56
+    $objet = objet_type($objet);
57
+    $_id_objet = id_table_objet($objet);
58 58
 
59
-	if (!is_array($options)) {
60
-		$options = unserialize($options);
61
-	}
62
-	$options = spip_sanitize_from_request($options, '*');
59
+    if (!is_array($options)) {
60
+        $options = unserialize($options);
61
+    }
62
+    $options = spip_sanitize_from_request($options, '*');
63 63
 
64
-	if (!isset($options['titre'])) {
65
-		$balise_img = chercher_filtre('balise_img');
66
-		$img = $balise_img(chemin_image('image-24.png'), '', 'cadre-icone');
67
-		$libelles = pipeline('libeller_logo', $GLOBALS['logo_libelles']);
68
-		$libelle = (($id_objet || $objet != 'rubrique') ? $objet : 'racine');
69
-		if (isset($libelles[$libelle])) {
70
-			$libelle = $libelles[$libelle];
71
-		} elseif ($libelle = objet_info($objet, 'texte_logo_objet')) {
72
-			$libelle = _T($libelle);
73
-		} else {
74
-			$libelle = _L('Logo');
75
-		}
76
-		switch ($objet) {
77
-			case 'article':
78
-				$libelle .= ' ' . aider('logoart');
79
-				break;
80
-			case 'breve':
81
-				$libelle .= ' ' . aider('breveslogo');
82
-				break;
83
-			case 'rubrique':
84
-				$libelle .= ' ' . aider('rublogo');
85
-				break;
86
-			default:
87
-				break;
88
-		}
64
+    if (!isset($options['titre'])) {
65
+        $balise_img = chercher_filtre('balise_img');
66
+        $img = $balise_img(chemin_image('image-24.png'), '', 'cadre-icone');
67
+        $libelles = pipeline('libeller_logo', $GLOBALS['logo_libelles']);
68
+        $libelle = (($id_objet || $objet != 'rubrique') ? $objet : 'racine');
69
+        if (isset($libelles[$libelle])) {
70
+            $libelle = $libelles[$libelle];
71
+        } elseif ($libelle = objet_info($objet, 'texte_logo_objet')) {
72
+            $libelle = _T($libelle);
73
+        } else {
74
+            $libelle = _L('Logo');
75
+        }
76
+        switch ($objet) {
77
+            case 'article':
78
+                $libelle .= ' ' . aider('logoart');
79
+                break;
80
+            case 'breve':
81
+                $libelle .= ' ' . aider('breveslogo');
82
+                break;
83
+            case 'rubrique':
84
+                $libelle .= ' ' . aider('rublogo');
85
+                break;
86
+            default:
87
+                break;
88
+        }
89 89
 
90
-		$options['titre'] = $img . $libelle;
91
-	}
92
-	if (!isset($options['editable'])) {
93
-		include_spip('inc/autoriser');
94
-		$options['editable'] = autoriser('iconifier', $objet, $id_objet);
95
-	}
90
+        $options['titre'] = $img . $libelle;
91
+    }
92
+    if (!isset($options['editable'])) {
93
+        include_spip('inc/autoriser');
94
+        $options['editable'] = autoriser('iconifier', $objet, $id_objet);
95
+    }
96 96
 
97
-	$res = [
98
-		'editable' => ($GLOBALS['meta']['activer_logos'] == 'oui' ? ' ' : '') && (!isset($options['editable']) || $options['editable']),
99
-		'logo_survol' => ($GLOBALS['meta']['activer_logos_survol'] == 'oui' ? ' ' : ''),
100
-		'objet' => $objet,
101
-		'id_objet' => $id_objet,
102
-		'_options' => $options,
103
-		'_show_upload_off' => '',
104
-	];
97
+    $res = [
98
+        'editable' => ($GLOBALS['meta']['activer_logos'] == 'oui' ? ' ' : '') && (!isset($options['editable']) || $options['editable']),
99
+        'logo_survol' => ($GLOBALS['meta']['activer_logos_survol'] == 'oui' ? ' ' : ''),
100
+        'objet' => $objet,
101
+        'id_objet' => $id_objet,
102
+        '_options' => $options,
103
+        '_show_upload_off' => '',
104
+    ];
105 105
 
106
-	// rechercher le logo de l'objet
107
-	// la fonction prend un parametre '_id_objet' etrange :
108
-	// le nom de la cle primaire (et non le nom de la table)
109
-	// ou directement le nom du raccourcis a chercher
110
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
111
-	$etats = $res['logo_survol'] ? ['on', 'off'] : ['on'];
112
-	foreach ($etats as $etat) {
113
-		$logo = $chercher_logo($id_objet, $_id_objet, $etat);
114
-		if ($logo) {
115
-			$res['logo_' . $etat] = $logo[0];
116
-			$res['logo_id_' . $etat] = $logo[5]['id_document'] ?? '';
117
-		}
118
-	}
119
-	// pas de logo_on -> pas de formulaire pour le survol
120
-	if (!isset($res['logo_on'])) {
121
-		$res['logo_survol'] = '';
122
-	} elseif (!isset($res['logo_off']) && _request('logo_up')) {
123
-		$res['_show_upload_off'] = ' ';
124
-	}
106
+    // rechercher le logo de l'objet
107
+    // la fonction prend un parametre '_id_objet' etrange :
108
+    // le nom de la cle primaire (et non le nom de la table)
109
+    // ou directement le nom du raccourcis a chercher
110
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
111
+    $etats = $res['logo_survol'] ? ['on', 'off'] : ['on'];
112
+    foreach ($etats as $etat) {
113
+        $logo = $chercher_logo($id_objet, $_id_objet, $etat);
114
+        if ($logo) {
115
+            $res['logo_' . $etat] = $logo[0];
116
+            $res['logo_id_' . $etat] = $logo[5]['id_document'] ?? '';
117
+        }
118
+    }
119
+    // pas de logo_on -> pas de formulaire pour le survol
120
+    if (!isset($res['logo_on'])) {
121
+        $res['logo_survol'] = '';
122
+    } elseif (!isset($res['logo_off']) && _request('logo_up')) {
123
+        $res['_show_upload_off'] = ' ';
124
+    }
125 125
 
126
-	// si le logo n'est pas editable et qu'il n'y en a pas, on affiche pas du tout le formulaire
127
-	if (!$res['editable'] && !isset($res['logo_off']) && !isset($res['logo_on'])) {
128
-		return false;
129
-	}
126
+    // si le logo n'est pas editable et qu'il n'y en a pas, on affiche pas du tout le formulaire
127
+    if (!$res['editable'] && !isset($res['logo_off']) && !isset($res['logo_on'])) {
128
+        return false;
129
+    }
130 130
 
131
-	return $res;
131
+    return $res;
132 132
 }
133 133
 
134 134
 /**
@@ -142,7 +142,7 @@  discard block
 block discarded – undo
142 142
  * @return string              Hash du formulaire
143 143
  */
144 144
 function formulaires_editer_logo_identifier_dist($objet, $id_objet, $retour = '', $options = []) {
145
-	return serialize([$objet, $id_objet]);
145
+    return serialize([$objet, $id_objet]);
146 146
 }
147 147
 
148 148
 /**
@@ -158,31 +158,31 @@  discard block
 block discarded – undo
158 158
  * @return array               Erreurs du formulaire
159 159
  */
160 160
 function formulaires_editer_logo_verifier_dist($objet, $id_objet, $retour = '', $options = []) {
161
-	$erreurs = [];
162
-	// verifier les extensions
163
-	$sources = formulaire_editer_logo_get_sources();
164
-	include_spip('action/editer_logo');
165
-	$extensions_possibles = $GLOBALS['formats_logos'];
166
-	if (in_array('jpg', $extensions_possibles)) {
167
-		$extensions_possibles[] = 'jpeg';
168
-	}
169
-	foreach ($sources as $etat => $file) {
170
-		// seulement si une reception correcte a eu lieu
171
-		if ($file && $file['error'] == 0) {
172
-			if (
173
-				!in_array(
174
-					strtolower(pathinfo((string) $file['name'], PATHINFO_EXTENSION)),
175
-					$extensions_possibles
176
-				)
177
-			) {
178
-				$erreurs['logo_' . $etat] = _L('Extension non reconnue');
179
-			}
180
-		} elseif ($file && $file['error'] != 0 && isset($file['msg'])) {
181
-			$erreurs['message_erreur'] = $file['msg'];
182
-		}
183
-	}
161
+    $erreurs = [];
162
+    // verifier les extensions
163
+    $sources = formulaire_editer_logo_get_sources();
164
+    include_spip('action/editer_logo');
165
+    $extensions_possibles = $GLOBALS['formats_logos'];
166
+    if (in_array('jpg', $extensions_possibles)) {
167
+        $extensions_possibles[] = 'jpeg';
168
+    }
169
+    foreach ($sources as $etat => $file) {
170
+        // seulement si une reception correcte a eu lieu
171
+        if ($file && $file['error'] == 0) {
172
+            if (
173
+                !in_array(
174
+                    strtolower(pathinfo((string) $file['name'], PATHINFO_EXTENSION)),
175
+                    $extensions_possibles
176
+                )
177
+            ) {
178
+                $erreurs['logo_' . $etat] = _L('Extension non reconnue');
179
+            }
180
+        } elseif ($file && $file['error'] != 0 && isset($file['msg'])) {
181
+            $erreurs['message_erreur'] = $file['msg'];
182
+        }
183
+    }
184 184
 
185
-	return $erreurs;
185
+    return $erreurs;
186 186
 }
187 187
 
188 188
 /**
@@ -198,47 +198,47 @@  discard block
 block discarded – undo
198 198
  * @return array               Retour des traitements
199 199
  */
200 200
 function formulaires_editer_logo_traiter_dist($objet, $id_objet, $retour = '', $options = []) {
201
-	$res = ['editable' => ' '];
201
+    $res = ['editable' => ' '];
202 202
 
203
-	// pas dans une boucle ? formulaire pour le logo du site
204
-	// dans ce cas, il faut chercher un 'siteon0.ext'
205
-	if (!$objet) {
206
-		$objet = 'site';
207
-	}
203
+    // pas dans une boucle ? formulaire pour le logo du site
204
+    // dans ce cas, il faut chercher un 'siteon0.ext'
205
+    if (!$objet) {
206
+        $objet = 'site';
207
+    }
208 208
 
209
-	include_spip('action/editer_logo');
209
+    include_spip('action/editer_logo');
210 210
 
211
-	// effectuer la suppression si demandee d'un logo
212
-	$on = _request('supprimer_logo_on');
213
-	if ($on || _request('supprimer_logo_off')) {
214
-		logo_supprimer($objet, $id_objet, $on ? 'on' : 'off');
215
-		$res['message_ok'] = ''; // pas besoin de message : la validation est visuelle
216
-		set_request('logo_up', ' ');
217
-	} // sinon supprimer ancien logo puis copier le nouveau
218
-	else {
219
-		$sources = formulaire_editer_logo_get_sources();
220
-		foreach ($sources as $etat => $file) {
221
-			if ($file && $file['error'] == 0) {
222
-				if ($err = logo_modifier($objet, $id_objet, $etat, $file)) {
223
-					$res['message_erreur'] = $err;
224
-				} else {
225
-					$res['message_ok'] = '';
226
-				} // pas besoin de message : la validation est visuelle
227
-				set_request('logo_up', ' ');
228
-			}
229
-		}
230
-	}
211
+    // effectuer la suppression si demandee d'un logo
212
+    $on = _request('supprimer_logo_on');
213
+    if ($on || _request('supprimer_logo_off')) {
214
+        logo_supprimer($objet, $id_objet, $on ? 'on' : 'off');
215
+        $res['message_ok'] = ''; // pas besoin de message : la validation est visuelle
216
+        set_request('logo_up', ' ');
217
+    } // sinon supprimer ancien logo puis copier le nouveau
218
+    else {
219
+        $sources = formulaire_editer_logo_get_sources();
220
+        foreach ($sources as $etat => $file) {
221
+            if ($file && $file['error'] == 0) {
222
+                if ($err = logo_modifier($objet, $id_objet, $etat, $file)) {
223
+                    $res['message_erreur'] = $err;
224
+                } else {
225
+                    $res['message_ok'] = '';
226
+                } // pas besoin de message : la validation est visuelle
227
+                set_request('logo_up', ' ');
228
+            }
229
+        }
230
+    }
231 231
 
232
-	// Invalider les caches de l'objet
233
-	include_spip('inc/invalideur');
234
-	suivre_invalideur("id='$objet/$id_objet'");
232
+    // Invalider les caches de l'objet
233
+    include_spip('inc/invalideur');
234
+    suivre_invalideur("id='$objet/$id_objet'");
235 235
 
236 236
 
237
-	if ($retour) {
238
-		$res['redirect'] = $retour;
239
-	}
237
+    if ($retour) {
238
+        $res['redirect'] = $retour;
239
+    }
240 240
 
241
-	return $res;
241
+    return $res;
242 242
 }
243 243
 
244 244
 
@@ -250,29 +250,29 @@  discard block
 block discarded – undo
250 250
  *     Sources des fichiers dans les clés `on` ou `off`
251 251
  */
252 252
 function formulaire_editer_logo_get_sources() {
253
-	if (!$_FILES) {
254
-		$_FILES = $GLOBALS['HTTP_POST_FILES'] ?? [];
255
-	}
256
-	if (!is_array($_FILES)) {
257
-		return [];
258
-	}
253
+    if (!$_FILES) {
254
+        $_FILES = $GLOBALS['HTTP_POST_FILES'] ?? [];
255
+    }
256
+    if (!is_array($_FILES)) {
257
+        return [];
258
+    }
259 259
 
260
-	include_spip('inc/documents');
261
-	$sources = [];
262
-	foreach (['on', 'off'] as $etat) {
263
-		$logo = 'logo_' . $etat;
264
-		if (isset($_FILES[$logo])) {
265
-			if ($_FILES[$logo]['error'] == 0) {
266
-				$sources[$etat] = $_FILES[$logo];
267
-			} elseif ($_FILES[$logo]['error'] != 0) {
268
-				$msg = check_upload_error($_FILES[$logo]['error'], false, true);
269
-				if ($msg && is_string($msg)) {
270
-					$sources[$etat] = $_FILES[$logo];
271
-					$sources[$etat]['msg'] = $msg;
272
-				}
273
-			}
274
-		}
275
-	}
260
+    include_spip('inc/documents');
261
+    $sources = [];
262
+    foreach (['on', 'off'] as $etat) {
263
+        $logo = 'logo_' . $etat;
264
+        if (isset($_FILES[$logo])) {
265
+            if ($_FILES[$logo]['error'] == 0) {
266
+                $sources[$etat] = $_FILES[$logo];
267
+            } elseif ($_FILES[$logo]['error'] != 0) {
268
+                $msg = check_upload_error($_FILES[$logo]['error'], false, true);
269
+                if ($msg && is_string($msg)) {
270
+                    $sources[$etat] = $_FILES[$logo];
271
+                    $sources[$etat]['msg'] = $msg;
272
+                }
273
+            }
274
+        }
275
+    }
276 276
 
277
-	return $sources;
277
+    return $sources;
278 278
 }
Please login to merge, or discard this patch.
prive/formulaires/editer_auteur.php 1 patch
Indentation   +369 added lines, -369 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  **/
8 8
 
9 9
 if (!defined('_ECRIRE_INC_VERSION')) {
10
-	return;
10
+    return;
11 11
 }
12 12
 
13 13
 include_spip('inc/actions');
@@ -38,24 +38,24 @@  discard block
 block discarded – undo
38 38
  *     Environnement du formulaire
39 39
  **/
40 40
 function formulaires_editer_auteur_charger_dist(
41
-	$id_auteur = 'new',
42
-	$retour = '',
43
-	$associer_objet = '',
44
-	$config_fonc = 'auteurs_edit_config',
45
-	$row = [],
46
-	$hidden = ''
41
+    $id_auteur = 'new',
42
+    $retour = '',
43
+    $associer_objet = '',
44
+    $config_fonc = 'auteurs_edit_config',
45
+    $row = [],
46
+    $hidden = ''
47 47
 ) {
48
-	$valeurs = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
49
-	$valeurs['new_login'] = $valeurs['login'];
48
+    $valeurs = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
49
+    $valeurs['new_login'] = $valeurs['login'];
50 50
 
51
-	// S'il n'y a pas la langue, on prend la langue du site
52
-	$valeurs['langue'] = $valeurs['langue'] ?: $GLOBALS['meta']['langue_site'];
51
+    // S'il n'y a pas la langue, on prend la langue du site
52
+    $valeurs['langue'] = $valeurs['langue'] ?: $GLOBALS['meta']['langue_site'];
53 53
 
54
-	if (!autoriser('modifier', 'auteur', (int) $id_auteur)) {
55
-		$valeurs['editable'] = '';
56
-	}
54
+    if (!autoriser('modifier', 'auteur', (int) $id_auteur)) {
55
+        $valeurs['editable'] = '';
56
+    }
57 57
 
58
-	return $valeurs;
58
+    return $valeurs;
59 59
 }
60 60
 
61 61
 /**
@@ -79,14 +79,14 @@  discard block
 block discarded – undo
79 79
  *     Hash du formulaire
80 80
  */
81 81
 function formulaires_editer_auteur_identifier_dist(
82
-	$id_auteur = 'new',
83
-	$retour = '',
84
-	$associer_objet = '',
85
-	$config_fonc = 'auteurs_edit_config',
86
-	$row = [],
87
-	$hidden = ''
82
+    $id_auteur = 'new',
83
+    $retour = '',
84
+    $associer_objet = '',
85
+    $config_fonc = 'auteurs_edit_config',
86
+    $row = [],
87
+    $hidden = ''
88 88
 ) {
89
-	return serialize([(int) $id_auteur, $associer_objet]);
89
+    return serialize([(int) $id_auteur, $associer_objet]);
90 90
 }
91 91
 
92 92
 
@@ -100,27 +100,27 @@  discard block
 block discarded – undo
100 100
  */
101 101
 function auteurs_edit_config(array $row): array {
102 102
 
103
-	$config = [];
104
-	$config['lignes'] = 8;
105
-	$config['langue'] = $GLOBALS['spip_lang'];
106
-
107
-	// pour instituer_auteur
108
-	$config['auteur'] = $row;
109
-
110
-	//$config['restreint'] = ($row['statut'] == 'publie');
111
-	$auth_methode = $row['source'];
112
-	include_spip('inc/auth');
113
-	$config['edit_login'] = (
114
-		auth_autoriser_modifier_login($auth_methode)
115
-		&& autoriser('modifier', 'auteur', $row['id_auteur'], null, ['login' => true])
116
-		&& autoriser('modifier', 'auteur', $row['id_auteur'], null, ['email' => true])
117
-	);
118
-	$config['edit_pass'] = (
119
-			auth_autoriser_modifier_pass($auth_methode)
120
-			&& autoriser('modifier', 'auteur', $row['id_auteur'])
121
-	);
122
-
123
-	return $config;
103
+    $config = [];
104
+    $config['lignes'] = 8;
105
+    $config['langue'] = $GLOBALS['spip_lang'];
106
+
107
+    // pour instituer_auteur
108
+    $config['auteur'] = $row;
109
+
110
+    //$config['restreint'] = ($row['statut'] == 'publie');
111
+    $auth_methode = $row['source'];
112
+    include_spip('inc/auth');
113
+    $config['edit_login'] = (
114
+        auth_autoriser_modifier_login($auth_methode)
115
+        && autoriser('modifier', 'auteur', $row['id_auteur'], null, ['login' => true])
116
+        && autoriser('modifier', 'auteur', $row['id_auteur'], null, ['email' => true])
117
+    );
118
+    $config['edit_pass'] = (
119
+            auth_autoriser_modifier_pass($auth_methode)
120
+            && autoriser('modifier', 'auteur', $row['id_auteur'])
121
+    );
122
+
123
+    return $config;
124 124
 }
125 125
 
126 126
 /**
@@ -150,145 +150,145 @@  discard block
 block discarded – undo
150 150
  *     Erreurs des saisies
151 151
  **/
152 152
 function formulaires_editer_auteur_verifier_dist(
153
-	$id_auteur = 'new',
154
-	$retour = '',
155
-	$associer_objet = '',
156
-	$config_fonc = 'auteurs_edit_config',
157
-	$row = [],
158
-	$hidden = ''
153
+    $id_auteur = 'new',
154
+    $retour = '',
155
+    $associer_objet = '',
156
+    $config_fonc = 'auteurs_edit_config',
157
+    $row = [],
158
+    $hidden = ''
159 159
 ) {
160
-	// auto-renseigner le nom si il n'existe pas, sans couper
161
-	titre_automatique('nom', ['email', 'login'], 255);
162
-
163
-	$oblis = ['nom'];
164
-	// si on veut renvoyer des identifiants il faut un email et un login
165
-	if (_request('reset_password')) {
166
-		$oblis[] = 'email';
167
-		$oblis[] = 'new_login';
168
-	}
169
-	// mais il reste obligatoire si on a rien trouve
170
-	$erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
171
-	if (isset($erreurs['new_login'])) {
172
-		$erreurs['login'] = $erreurs['new_login'];
173
-		unset($erreurs['new_login']);
174
-	}
175
-
176
-	$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
177
-	$auth_methode = ($auth_methode ?: 'spip');
178
-	include_spip('inc/auth');
179
-
180
-	if (!nom_acceptable(_request('nom'))) {
181
-		$erreurs['nom'] = _T('info_nom_pas_conforme');
182
-	}
183
-
184
-	if ($email = _request('email')) {
185
-		include_spip('inc/filtres');
186
-		include_spip('inc/autoriser');
187
-		// un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
188
-		if (
189
-			!autoriser('modifier', 'auteur', $id_auteur, null, ['email' => '?'])
190
-			&& $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
191
-			&& !strlen(trim((string) $email))
192
-			&& $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur))
193
-		) {
194
-			$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
195
-		} else {
196
-			if (!email_valide($email)) {
197
-				$erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
198
-			}
199
-		}
200
-		# Ne pas autoriser d'avoir deux auteurs avec le même email
201
-		# cette fonctionalité nécessite que la base soit clean à l'activation : pas de
202
-		# doublon sur la requête select email,count(*) from spip_auteurs group by email ;
203
-		if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
204
-			#Nouvel auteur
205
-			if ((int) $id_auteur == 0) {
206
-				#Un auteur existe deja avec cette adresse ?
207
-				if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
208
-					$erreurs['email'] = _T('erreur_email_deja_existant');
209
-				}
210
-			} else {
211
-				#Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
212
-				if (
213
-					sql_countsel(
214
-						'spip_auteurs',
215
-						'email=' . sql_quote($email)
216
-					) > 0
217
-					&& $id_auteur != ($id_auteur_ancien = sql_getfetsel(
218
-						'id_auteur',
219
-						'spip_auteurs',
220
-						'email=' . sql_quote($email)
221
-					))
222
-				) {
223
-					$erreurs['email'] = _T('erreur_email_deja_existant');
224
-				}
225
-			}
226
-		}
227
-	}
228
-
229
-	// quand c'est un auteur existant on fait le reset password ici
230
-	if (!(is_countable($erreurs) ? count($erreurs) : 0) && _request('reset_password') && (int) $id_auteur) {
231
-		return auteur_reset_password($id_auteur, $erreurs);
232
-	}
233
-
234
-	// corriger un cas si frequent : www.example.org sans le http:// qui precede
235
-	if (
236
-		($url = _request('url_site'))
237
-		&& !tester_url_absolue($url)
238
-		&& (!str_contains((string) $url, ':')
239
-		&& strncasecmp((string) $url, 'www.', 4) === 0)
240
-	) {
241
-		$url = 'http://' . $url;
242
-		set_request('url_site', $url);
243
-	}
244
-	// traiter les liens implicites avant de tester l'url
245
-	include_spip('inc/lien');
246
-	if (($url = calculer_url(_request('url_site'))) && !tester_url_absolue($url)) {
247
-		$erreurs['url_site'] = _T('info_url_site_pas_conforme');
248
-	}
249
-
250
-	$erreurs['message_erreur'] = '';
251
-	if (_request('login')) {
252
-		// on n'est jamais cense poster le name 'login'
253
-		$erreurs['login'] = _T('info_non_modifiable');
254
-	}
255
-	elseif (
256
-		($login = _request('new_login')) && $login !== sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur)
257
-	) {
258
-		// on verifie la meme chose que dans auteurs_edit_config()
259
-		if (
260
-			! auth_autoriser_modifier_login($auth_methode)
261
-			|| !autoriser('modifier', 'auteur', (int) $id_auteur, null, ['login' => true])
262
-			// legacy : ne pas risquer d'autoriser la modif login si fonction d'autorisation pas mise a jour et ne teste que l'option email
263
-			|| !autoriser('modifier', 'auteur', (int) $id_auteur, null, ['email' => true])
264
-		) {
265
-			$erreurs['login'] = _T('info_non_modifiable');
266
-		}
267
-	}
268
-
269
-	if (empty($erreurs['login'])) {
270
-		if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
271
-			$erreurs['login'] = $err;
272
-			$erreurs['message_erreur'] .= $err;
273
-		} else {
274
-			// pass trop court ou confirmation non identique
275
-			if ($p = _request('new_pass')) {
276
-				if ($p != _request('new_pass2')) {
277
-					$erreurs['new_pass'] = _T('info_passes_identiques');
278
-					$erreurs['message_erreur'] .= _T('info_passes_identiques');
279
-				} elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
280
-					$erreurs['new_pass'] = $err;
281
-					$erreurs['message_erreur'] .= $err;
282
-				}
283
-			}
284
-		}
285
-	}
286
-
287
-	if (!$erreurs['message_erreur']) {
288
-		unset($erreurs['message_erreur']);
289
-	}
290
-
291
-	return $erreurs;
160
+    // auto-renseigner le nom si il n'existe pas, sans couper
161
+    titre_automatique('nom', ['email', 'login'], 255);
162
+
163
+    $oblis = ['nom'];
164
+    // si on veut renvoyer des identifiants il faut un email et un login
165
+    if (_request('reset_password')) {
166
+        $oblis[] = 'email';
167
+        $oblis[] = 'new_login';
168
+    }
169
+    // mais il reste obligatoire si on a rien trouve
170
+    $erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, $oblis);
171
+    if (isset($erreurs['new_login'])) {
172
+        $erreurs['login'] = $erreurs['new_login'];
173
+        unset($erreurs['new_login']);
174
+    }
175
+
176
+    $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
177
+    $auth_methode = ($auth_methode ?: 'spip');
178
+    include_spip('inc/auth');
179
+
180
+    if (!nom_acceptable(_request('nom'))) {
181
+        $erreurs['nom'] = _T('info_nom_pas_conforme');
182
+    }
183
+
184
+    if ($email = _request('email')) {
185
+        include_spip('inc/filtres');
186
+        include_spip('inc/autoriser');
187
+        // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un
188
+        if (
189
+            !autoriser('modifier', 'auteur', $id_auteur, null, ['email' => '?'])
190
+            && $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
191
+            && !strlen(trim((string) $email))
192
+            && $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur))
193
+        ) {
194
+            $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
195
+        } else {
196
+            if (!email_valide($email)) {
197
+                $erreurs['email'] = (($id_auteur == $GLOBALS['visiteur_session']['id_auteur']) ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'));
198
+            }
199
+        }
200
+        # Ne pas autoriser d'avoir deux auteurs avec le même email
201
+        # cette fonctionalité nécessite que la base soit clean à l'activation : pas de
202
+        # doublon sur la requête select email,count(*) from spip_auteurs group by email ;
203
+        if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) {
204
+            #Nouvel auteur
205
+            if ((int) $id_auteur == 0) {
206
+                #Un auteur existe deja avec cette adresse ?
207
+                if (sql_countsel('spip_auteurs', 'email=' . sql_quote($email)) > 0) {
208
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
209
+                }
210
+            } else {
211
+                #Un auteur existe deja avec cette adresse ? et n'est pas le user courant.
212
+                if (
213
+                    sql_countsel(
214
+                        'spip_auteurs',
215
+                        'email=' . sql_quote($email)
216
+                    ) > 0
217
+                    && $id_auteur != ($id_auteur_ancien = sql_getfetsel(
218
+                        'id_auteur',
219
+                        'spip_auteurs',
220
+                        'email=' . sql_quote($email)
221
+                    ))
222
+                ) {
223
+                    $erreurs['email'] = _T('erreur_email_deja_existant');
224
+                }
225
+            }
226
+        }
227
+    }
228
+
229
+    // quand c'est un auteur existant on fait le reset password ici
230
+    if (!(is_countable($erreurs) ? count($erreurs) : 0) && _request('reset_password') && (int) $id_auteur) {
231
+        return auteur_reset_password($id_auteur, $erreurs);
232
+    }
233
+
234
+    // corriger un cas si frequent : www.example.org sans le http:// qui precede
235
+    if (
236
+        ($url = _request('url_site'))
237
+        && !tester_url_absolue($url)
238
+        && (!str_contains((string) $url, ':')
239
+        && strncasecmp((string) $url, 'www.', 4) === 0)
240
+    ) {
241
+        $url = 'http://' . $url;
242
+        set_request('url_site', $url);
243
+    }
244
+    // traiter les liens implicites avant de tester l'url
245
+    include_spip('inc/lien');
246
+    if (($url = calculer_url(_request('url_site'))) && !tester_url_absolue($url)) {
247
+        $erreurs['url_site'] = _T('info_url_site_pas_conforme');
248
+    }
249
+
250
+    $erreurs['message_erreur'] = '';
251
+    if (_request('login')) {
252
+        // on n'est jamais cense poster le name 'login'
253
+        $erreurs['login'] = _T('info_non_modifiable');
254
+    }
255
+    elseif (
256
+        ($login = _request('new_login')) && $login !== sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur)
257
+    ) {
258
+        // on verifie la meme chose que dans auteurs_edit_config()
259
+        if (
260
+            ! auth_autoriser_modifier_login($auth_methode)
261
+            || !autoriser('modifier', 'auteur', (int) $id_auteur, null, ['login' => true])
262
+            // legacy : ne pas risquer d'autoriser la modif login si fonction d'autorisation pas mise a jour et ne teste que l'option email
263
+            || !autoriser('modifier', 'auteur', (int) $id_auteur, null, ['email' => true])
264
+        ) {
265
+            $erreurs['login'] = _T('info_non_modifiable');
266
+        }
267
+    }
268
+
269
+    if (empty($erreurs['login'])) {
270
+        if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) {
271
+            $erreurs['login'] = $err;
272
+            $erreurs['message_erreur'] .= $err;
273
+        } else {
274
+            // pass trop court ou confirmation non identique
275
+            if ($p = _request('new_pass')) {
276
+                if ($p != _request('new_pass2')) {
277
+                    $erreurs['new_pass'] = _T('info_passes_identiques');
278
+                    $erreurs['message_erreur'] .= _T('info_passes_identiques');
279
+                } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) {
280
+                    $erreurs['new_pass'] = $err;
281
+                    $erreurs['message_erreur'] .= $err;
282
+                }
283
+            }
284
+        }
285
+    }
286
+
287
+    if (!$erreurs['message_erreur']) {
288
+        unset($erreurs['message_erreur']);
289
+    }
290
+
291
+    return $erreurs;
292 292
 }
293 293
 
294 294
 
@@ -325,153 +325,153 @@  discard block
 block discarded – undo
325 325
  *     Retour des traitements
326 326
  **/
327 327
 function formulaires_editer_auteur_traiter_dist(
328
-	$id_auteur = 'new',
329
-	$retour = '',
330
-	$associer_objet = '',
331
-	$config_fonc = 'auteurs_edit_config',
332
-	$row = [],
333
-	$hidden = ''
328
+    $id_auteur = 'new',
329
+    $retour = '',
330
+    $associer_objet = '',
331
+    $config_fonc = 'auteurs_edit_config',
332
+    $row = [],
333
+    $hidden = ''
334 334
 ) {
335
-	if (_request('saisie_webmestre') || _request('webmestre')) {
336
-		set_request('webmestre', _request('webmestre') ?: 'non');
337
-	}
338
-
339
-	// si il y a des modifs sensibles (statut, mot de passe), on refuse le traitement en ajax
340
-	// le formulaire ne peut être traité depuis une XMLHttpRequest
341
-	$prev = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
342
-	if (
343
-		_request('new_pass') // nouveau mot de passe
344
-		|| empty($prev['statut']) // creation auteur
345
-		|| _request('email') && $prev['email'] !== _request('email') // modification email
346
-		|| _request('statut') === '0minirezo' && $prev['statut'] !== '0minirezo' // promotion 0minirezo
347
-		|| _request('statut') && (int) _request('statut') < (int) $prev['statut'] // promotion de statut
348
-		|| _request('webmestre') && _request('webmestre') !== 'non' && $prev['webmestre'] !== 'oui' // promotion webmestre
349
-	) {
350
-		refuser_traiter_formulaire_ajax();
351
-		// si on arrive là encore en ajax c'est pas OK, on genere une erreur
352
-		if (_AJAX || !empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
353
-			return [
354
-				'message_erreur' => _T('erreur_technique_ajaxform')
355
-			];
356
-		}
357
-	}
358
-
359
-	$id_objet = null;
360
-	$retour = parametre_url($retour, 'email_confirm', '');
361
-
362
-	if ($restreintes = _request('restreintes')) {
363
-		foreach ($restreintes as $k => $v) {
364
-			if (str_starts_with((string) $v, 'rubrique|')) {
365
-				$restreintes[$k] = substr((string) $v, 9);
366
-			}
367
-		}
368
-		set_request('restreintes', $restreintes);
369
-	}
370
-
371
-	set_request(
372
-		'email',
373
-		email_valide(_request('email'))
374
-	); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
375
-	// "[email protected]  " ou encore "Marie Toto <[email protected]>"
376
-
377
-	include_spip('inc/autoriser');
378
-	if (!autoriser('modifier', 'auteur', $id_auteur, null, ['email' => '?'])) {
379
-		$email_nouveau = _request('email');
380
-		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
381
-		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
382
-		// pour qu'il confirme qu'il possede bien cette adresse
383
-		// son clic sur l'url du message permettre de confirmer le changement
384
-		// et de revenir sur son profil
385
-		if (
386
-			$GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
387
-			&& $email_nouveau != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur))
388
-		) {
389
-			$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
390
-			$texte = _T(
391
-				'form_auteur_mail_confirmation',
392
-				[
393
-					'url' => generer_action_auteur(
394
-						'confirmer_email',
395
-						$email_nouveau,
396
-						parametre_url($retour, 'email_modif', 'ok')
397
-					)
398
-				]
399
-			);
400
-			$envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
401
-			set_request('email_confirm', $email_nouveau);
402
-			if ($email_ancien) {
403
-				$envoyer_mail(
404
-					$email_ancien,
405
-					_T('form_auteur_confirmation'),
406
-					_T('form_auteur_envoi_mail_confirmation', ['email' => $email_nouveau])
407
-				);
408
-			}
409
-			$retour = parametre_url($retour, 'email_confirm', $email_nouveau);
410
-		}
411
-	}
412
-
413
-	// Trafic de langue pour enregistrer la bonne
414
-	if ($langue = _request('langue')) {
415
-		set_request('lang', $langue);
416
-	}
417
-
418
-	$res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
419
-
420
-	if (_request('reset_password') && !(int) $id_auteur && (int) $res['id_auteur']) {
421
-		$erreurs = [];
422
-		$erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
423
-		if (isset($erreurs['message_ok'])) {
424
-			if (!isset($res['message_ok'])) { $res['message_ok'] = '';
425
-			}
426
-			$res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
427
-		}
428
-		if (isset($erreurs['message_erreur']) && $erreurs['message_erreur']) {
429
-			if (!isset($res['message_erreur'])) { $res['message_erreur'] = '';
430
-			}
431
-			$res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
432
-		}
433
-	}
434
-
435
-	// Un lien auteur a prendre en compte ?
436
-	if ($associer_objet && ($id_auteur = $res['id_auteur'])) {
437
-		$objet = '';
438
-		if ((int) $associer_objet) {
439
-			$objet = 'article';
440
-			$id_objet = (int) $associer_objet;
441
-		} elseif (preg_match(',^\w+\|\d+$,', $associer_objet)) {
442
-			[$objet, $id_objet] = explode('|', $associer_objet);
443
-		}
444
-		if ($objet && $id_objet && autoriser('modifier', $objet, $id_objet)) {
445
-			include_spip('action/editer_auteur');
446
-			auteur_associer($id_auteur, [$objet => $id_objet]);
447
-			if (isset($res['redirect'])) {
448
-				$res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
449
-			}
450
-		}
451
-	}
452
-
453
-	return $res;
335
+    if (_request('saisie_webmestre') || _request('webmestre')) {
336
+        set_request('webmestre', _request('webmestre') ?: 'non');
337
+    }
338
+
339
+    // si il y a des modifs sensibles (statut, mot de passe), on refuse le traitement en ajax
340
+    // le formulaire ne peut être traité depuis une XMLHttpRequest
341
+    $prev = formulaires_editer_objet_charger('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
342
+    if (
343
+        _request('new_pass') // nouveau mot de passe
344
+        || empty($prev['statut']) // creation auteur
345
+        || _request('email') && $prev['email'] !== _request('email') // modification email
346
+        || _request('statut') === '0minirezo' && $prev['statut'] !== '0minirezo' // promotion 0minirezo
347
+        || _request('statut') && (int) _request('statut') < (int) $prev['statut'] // promotion de statut
348
+        || _request('webmestre') && _request('webmestre') !== 'non' && $prev['webmestre'] !== 'oui' // promotion webmestre
349
+    ) {
350
+        refuser_traiter_formulaire_ajax();
351
+        // si on arrive là encore en ajax c'est pas OK, on genere une erreur
352
+        if (_AJAX || !empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
353
+            return [
354
+                'message_erreur' => _T('erreur_technique_ajaxform')
355
+            ];
356
+        }
357
+    }
358
+
359
+    $id_objet = null;
360
+    $retour = parametre_url($retour, 'email_confirm', '');
361
+
362
+    if ($restreintes = _request('restreintes')) {
363
+        foreach ($restreintes as $k => $v) {
364
+            if (str_starts_with((string) $v, 'rubrique|')) {
365
+                $restreintes[$k] = substr((string) $v, 9);
366
+            }
367
+        }
368
+        set_request('restreintes', $restreintes);
369
+    }
370
+
371
+    set_request(
372
+        'email',
373
+        email_valide(_request('email'))
374
+    ); // eviter d'enregistrer les cas qui sont acceptés par email_valide dans le verifier :
375
+    // "[email protected]  " ou encore "Marie Toto <[email protected]>"
376
+
377
+    include_spip('inc/autoriser');
378
+    if (!autoriser('modifier', 'auteur', $id_auteur, null, ['email' => '?'])) {
379
+        $email_nouveau = _request('email');
380
+        set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
381
+        // mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
382
+        // pour qu'il confirme qu'il possede bien cette adresse
383
+        // son clic sur l'url du message permettre de confirmer le changement
384
+        // et de revenir sur son profil
385
+        if (
386
+            $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur
387
+            && $email_nouveau != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur))
388
+        ) {
389
+            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
390
+            $texte = _T(
391
+                'form_auteur_mail_confirmation',
392
+                [
393
+                    'url' => generer_action_auteur(
394
+                        'confirmer_email',
395
+                        $email_nouveau,
396
+                        parametre_url($retour, 'email_modif', 'ok')
397
+                    )
398
+                ]
399
+            );
400
+            $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
401
+            set_request('email_confirm', $email_nouveau);
402
+            if ($email_ancien) {
403
+                $envoyer_mail(
404
+                    $email_ancien,
405
+                    _T('form_auteur_confirmation'),
406
+                    _T('form_auteur_envoi_mail_confirmation', ['email' => $email_nouveau])
407
+                );
408
+            }
409
+            $retour = parametre_url($retour, 'email_confirm', $email_nouveau);
410
+        }
411
+    }
412
+
413
+    // Trafic de langue pour enregistrer la bonne
414
+    if ($langue = _request('langue')) {
415
+        set_request('lang', $langue);
416
+    }
417
+
418
+    $res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
419
+
420
+    if (_request('reset_password') && !(int) $id_auteur && (int) $res['id_auteur']) {
421
+        $erreurs = [];
422
+        $erreurs = auteur_reset_password($res['id_auteur'], $erreurs);
423
+        if (isset($erreurs['message_ok'])) {
424
+            if (!isset($res['message_ok'])) { $res['message_ok'] = '';
425
+            }
426
+            $res['message_ok'] = trim($res['message_ok'] . ' ' . $erreurs['message_ok']);
427
+        }
428
+        if (isset($erreurs['message_erreur']) && $erreurs['message_erreur']) {
429
+            if (!isset($res['message_erreur'])) { $res['message_erreur'] = '';
430
+            }
431
+            $res['message_erreur'] = trim($res['message_erreur'] . ' ' . $erreurs['message_erreur']);
432
+        }
433
+    }
434
+
435
+    // Un lien auteur a prendre en compte ?
436
+    if ($associer_objet && ($id_auteur = $res['id_auteur'])) {
437
+        $objet = '';
438
+        if ((int) $associer_objet) {
439
+            $objet = 'article';
440
+            $id_objet = (int) $associer_objet;
441
+        } elseif (preg_match(',^\w+\|\d+$,', $associer_objet)) {
442
+            [$objet, $id_objet] = explode('|', $associer_objet);
443
+        }
444
+        if ($objet && $id_objet && autoriser('modifier', $objet, $id_objet)) {
445
+            include_spip('action/editer_auteur');
446
+            auteur_associer($id_auteur, [$objet => $id_objet]);
447
+            if (isset($res['redirect'])) {
448
+                $res['redirect'] = parametre_url($res['redirect'], 'id_lien_ajoute', $id_auteur, '&');
449
+            }
450
+        }
451
+    }
452
+
453
+    return $res;
454 454
 }
455 455
 
456 456
 
457 457
 function auteur_reset_password($id_auteur, $erreurs = []) {
458
-	$auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
459
-	$config = auteurs_edit_config($auteur);
460
-
461
-	if ($config['edit_pass']) {
462
-		if ($email = auteur_regenerer_identifiants($id_auteur)) {
463
-			$erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', ['email' => $email]);
464
-			$erreurs['message_erreur'] = '';
465
-		} elseif ($email === false) {
466
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
467
-		} else {
468
-			$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
469
-		}
470
-	} else {
471
-		$erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
472
-	}
473
-
474
-	return $erreurs;
458
+    $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
459
+    $config = auteurs_edit_config($auteur);
460
+
461
+    if ($config['edit_pass']) {
462
+        if ($email = auteur_regenerer_identifiants($id_auteur)) {
463
+            $erreurs['message_ok'] = _T('message_nouveaux_identifiants_ok', ['email' => $email]);
464
+            $erreurs['message_erreur'] = '';
465
+        } elseif ($email === false) {
466
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec_envoi');
467
+        } else {
468
+            $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
469
+        }
470
+    } else {
471
+        $erreurs['message_erreur'] = _T('message_nouveaux_identifiants_echec');
472
+    }
473
+
474
+    return $erreurs;
475 475
 }
476 476
 
477 477
 /**
@@ -482,50 +482,50 @@  discard block
 block discarded – undo
482 482
  * @return string
483 483
  */
484 484
 function auteur_regenerer_identifiants($id_auteur, $notifier = true, $contexte = []) {
485
-	if ($id_auteur) {
486
-		$set = [];
487
-		include_spip('inc/access');
488
-		$set['pass'] = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16));
489
-
490
-		include_spip('action/editer_auteur');
491
-		auteur_modifier($id_auteur, $set);
492
-
493
-		$row = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
494
-		include_spip('inc/filtres');
495
-		if (
496
-			$notifier
497
-			&& $row['email']
498
-			&& email_valide($row['email'])
499
-			&& trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')
500
-		) {
501
-			// envoyer l'email avec login/pass
502
-			$c = [
503
-				'id_auteur' => $id_auteur,
504
-				'nom' => $row['nom'],
505
-				'mode' => $row['statut'],
506
-				'email' => $row['email'],
507
-				'pass' => $set['pass'],
508
-			];
509
-			// on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
510
-			$contexte = array_merge($contexte, $c);
511
-			// si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
512
-			// plutot que celle de l'admin qui vient de cliquer sur le bouton
513
-			if (!isset($contexte['lang']) || !$contexte['lang']) {
514
-				$contexte['lang'] = isset($row['lang']) && $row['lang']
515
-					? $row['lang']
516
-					: $GLOBALS['meta']['langue_site'];
517
-			}
518
-			lang_select($contexte['lang']);
519
-			$message = recuperer_fond($fond, $contexte);
520
-			include_spip('inc/notifications');
521
-			notifications_envoyer_mails($row['email'], $message);
522
-			lang_select();
523
-
524
-			return $row['email'];
525
-		}
526
-
527
-		return false;
528
-	}
529
-
530
-	return '';
485
+    if ($id_auteur) {
486
+        $set = [];
487
+        include_spip('inc/access');
488
+        $set['pass'] = creer_pass_aleatoire(max(_PASS_LONGUEUR_MINI, 16));
489
+
490
+        include_spip('action/editer_auteur');
491
+        auteur_modifier($id_auteur, $set);
492
+
493
+        $row = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
494
+        include_spip('inc/filtres');
495
+        if (
496
+            $notifier
497
+            && $row['email']
498
+            && email_valide($row['email'])
499
+            && trouver_fond($fond = 'modeles/mail_nouveaux_identifiants')
500
+        ) {
501
+            // envoyer l'email avec login/pass
502
+            $c = [
503
+                'id_auteur' => $id_auteur,
504
+                'nom' => $row['nom'],
505
+                'mode' => $row['statut'],
506
+                'email' => $row['email'],
507
+                'pass' => $set['pass'],
508
+            ];
509
+            // on merge avec les champs fournit en appel, qui sont passes au modele de notification donc
510
+            $contexte = array_merge($contexte, $c);
511
+            // si pas de langue explicitement demandee, prendre celle de l'auteur si on la connait, ou a defaut celle du site
512
+            // plutot que celle de l'admin qui vient de cliquer sur le bouton
513
+            if (!isset($contexte['lang']) || !$contexte['lang']) {
514
+                $contexte['lang'] = isset($row['lang']) && $row['lang']
515
+                    ? $row['lang']
516
+                    : $GLOBALS['meta']['langue_site'];
517
+            }
518
+            lang_select($contexte['lang']);
519
+            $message = recuperer_fond($fond, $contexte);
520
+            include_spip('inc/notifications');
521
+            notifications_envoyer_mails($row['email'], $message);
522
+            lang_select();
523
+
524
+            return $row['email'];
525
+        }
526
+
527
+        return false;
528
+    }
529
+
530
+    return '';
531 531
 }
Please login to merge, or discard this patch.
prive/formulaires/configurer_multilinguisme.php 1 patch
Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -10,53 +10,53 @@  discard block
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 function formulaires_configurer_multilinguisme_charger_dist() {
17
-	$valeurs = [];
18
-	$valeurs['multi_secteurs'] = $GLOBALS['meta']['multi_secteurs'];
19
-	foreach (['multi_objets', 'gerer_trad_objets'] as $m) {
20
-		$valeurs[$m] = explode(',', $GLOBALS['meta'][$m] ?? '');
21
-	}
22
-
23
-	if (
24
-		(is_countable($valeurs['multi_objets']) ? count($valeurs['multi_objets']) : 0)
25
-		|| count(explode(',', (string) $GLOBALS['meta']['langues_utilisees'])) > 1
26
-	) {
27
-		$selection = (is_null(_request('multi_objets')) ?
28
-			explode(',', (string) $GLOBALS['meta']['langues_multilingue']) : _request('langues_auth'));
29
-		$valeurs['_langues'] = saisie_langues_utiles('langues_auth', $selection ?: []);
30
-		$valeurs['_nb_langues_selection'] = is_countable($selection) ? count($selection) : 0;
31
-	}
32
-
33
-	return $valeurs;
17
+    $valeurs = [];
18
+    $valeurs['multi_secteurs'] = $GLOBALS['meta']['multi_secteurs'];
19
+    foreach (['multi_objets', 'gerer_trad_objets'] as $m) {
20
+        $valeurs[$m] = explode(',', $GLOBALS['meta'][$m] ?? '');
21
+    }
22
+
23
+    if (
24
+        (is_countable($valeurs['multi_objets']) ? count($valeurs['multi_objets']) : 0)
25
+        || count(explode(',', (string) $GLOBALS['meta']['langues_utilisees'])) > 1
26
+    ) {
27
+        $selection = (is_null(_request('multi_objets')) ?
28
+            explode(',', (string) $GLOBALS['meta']['langues_multilingue']) : _request('langues_auth'));
29
+        $valeurs['_langues'] = saisie_langues_utiles('langues_auth', $selection ?: []);
30
+        $valeurs['_nb_langues_selection'] = is_countable($selection) ? count($selection) : 0;
31
+    }
32
+
33
+    return $valeurs;
34 34
 }
35 35
 
36 36
 
37 37
 function formulaires_configurer_multilinguisme_traiter_dist() {
38
-	$res = ['editable' => true];
39
-	// un checkbox seul de name X non coche n'est pas poste.
40
-	// on verifie le champ X_check qui indique que la checkbox etait presente dans le formulaire.
41
-	foreach (['multi_secteurs'] as $m) {
42
-		if (!is_null(_request($m . '_check'))) {
43
-			ecrire_meta($m, _request($m) ? 'oui' : 'non');
44
-		}
45
-	}
46
-	foreach (['multi_objets', 'gerer_trad_objets'] as $m) {
47
-		if (!is_null($v = _request($m))) {
48
-			// join et enlever la valeur vide ''
49
-			ecrire_meta($m, implode(',', array_diff($v, [''])));
50
-		}
51
-	}
52
-
53
-	if (($i = _request('langues_auth')) && is_array($i)) {
54
-		$i = array_unique(array_merge($i, explode(',', (string) $GLOBALS['meta']['langues_utilisees'])));
55
-		ecrire_meta('langues_multilingue', implode(',', $i));
56
-	}
57
-	$res['message_ok'] = _T('config_info_enregistree');
58
-
59
-	return $res;
38
+    $res = ['editable' => true];
39
+    // un checkbox seul de name X non coche n'est pas poste.
40
+    // on verifie le champ X_check qui indique que la checkbox etait presente dans le formulaire.
41
+    foreach (['multi_secteurs'] as $m) {
42
+        if (!is_null(_request($m . '_check'))) {
43
+            ecrire_meta($m, _request($m) ? 'oui' : 'non');
44
+        }
45
+    }
46
+    foreach (['multi_objets', 'gerer_trad_objets'] as $m) {
47
+        if (!is_null($v = _request($m))) {
48
+            // join et enlever la valeur vide ''
49
+            ecrire_meta($m, implode(',', array_diff($v, [''])));
50
+        }
51
+    }
52
+
53
+    if (($i = _request('langues_auth')) && is_array($i)) {
54
+        $i = array_unique(array_merge($i, explode(',', (string) $GLOBALS['meta']['langues_utilisees'])));
55
+        ecrire_meta('langues_multilingue', implode(',', $i));
56
+    }
57
+    $res['message_ok'] = _T('config_info_enregistree');
58
+
59
+    return $res;
60 60
 }
61 61
 
62 62
 /**
@@ -66,13 +66,13 @@  discard block
 block discarded – undo
66 66
  * @return string
67 67
  */
68 68
 function table_supporte_lang($table_sql) {
69
-	$trouver_table = charger_fonction('trouver_table', 'base');
70
-	$desc = $trouver_table($table_sql);
71
-	if (!$desc || !isset($desc['field']['lang'])) {
72
-		return '';
73
-	}
69
+    $trouver_table = charger_fonction('trouver_table', 'base');
70
+    $desc = $trouver_table($table_sql);
71
+    if (!$desc || !isset($desc['field']['lang'])) {
72
+        return '';
73
+    }
74 74
 
75
-	return ' ';
75
+    return ' ';
76 76
 }
77 77
 
78 78
 /**
@@ -82,65 +82,65 @@  discard block
 block discarded – undo
82 82
  * @return string
83 83
  */
84 84
 function table_supporte_trad($table_sql) {
85
-	$trouver_table = charger_fonction('trouver_table', 'base');
86
-	$desc = $trouver_table($table_sql);
87
-	if (!$desc || !isset($desc['field']['id_trad'])) {
88
-		return '';
89
-	}
85
+    $trouver_table = charger_fonction('trouver_table', 'base');
86
+    $desc = $trouver_table($table_sql);
87
+    if (!$desc || !isset($desc['field']['id_trad'])) {
88
+        return '';
89
+    }
90 90
 
91
-	return ' ';
91
+    return ' ';
92 92
 }
93 93
 
94 94
 
95 95
 function saisie_langues_utiles($name, $selection) {
96
-	include_spip('inc/lang_liste');
97
-	$langues = $GLOBALS['codes_langues'];
98
-
99
-	$langues_installees = explode(',', (string) $GLOBALS['meta']['langues_proposees']);
100
-	$langues_trad = array_flip($langues_installees);
101
-
102
-	$langues_bloquees = explode(',', (string) $GLOBALS['meta']['langues_utilisees']);
103
-
104
-	$res = '';
105
-
106
-	$i = 0;
107
-	foreach ($langues_bloquees as $code_langue) {
108
-		$nom_langue = $langues[$code_langue];
109
-		$res .= "<li class='choix "
110
-			. alterner(++$i, 'odd', 'even')
111
-			. (isset($langues_trad[$code_langue]) ? ' traduite' : '')
112
-			. "'>"
113
-			. "<input type='hidden' name='{$name}[]' value='$code_langue'>" // necessaire ...
114
-			. "<input type='checkbox' name='{$name}[]' id='{$name}_$code_langue' value='$code_langue' checked='checked' disabled='disabled' />"
115
-			. "<label for='{$name}_$code_langue'>" . $nom_langue . "&nbsp;&nbsp; <span class='code_langue'>[$code_langue]</span></label>"
116
-			. '</li>';
117
-	}
118
-
119
-	if ($res) {
120
-		$res = "<ul id='langues_bloquees'>" . $res . "</ul><div class='nettoyeur'></div>";
121
-	}
122
-
123
-	$res .= "<ul id='langues_proposees'>";
124
-
125
-	$i = 0;
126
-	$langues_bloquees = array_flip($langues_bloquees);
127
-	foreach ($langues as $code_langue => $nom_langue) {
128
-		if (!isset($langues_bloquees[$code_langue])) {
129
-			$checked = (in_array($code_langue, $selection) ? ' checked="checked"' : '');
130
-			$res .= "<li class='choix "
131
-				. alterner(++$i, 'odd', 'even')
132
-				. (isset($langues_trad[$code_langue]) ? ' traduite' : '')
133
-				. "'>"
134
-				. "<input type='checkbox' name='{$name}[]' id='{$name}_$code_langue' value='$code_langue'"
135
-				. $checked
136
-				. '/>'
137
-				. "<label for='{$name}_$code_langue'"
138
-				. ($checked ? " class='on'" : '')
139
-				. '>'
140
-				. $nom_langue . "&nbsp;&nbsp; <span class='code_langue'>[$code_langue]</span></label>"
141
-				. '</li>';
142
-		}
143
-	}
144
-
145
-	return $res . "</ul><div class='nettoyeur'></div>";
96
+    include_spip('inc/lang_liste');
97
+    $langues = $GLOBALS['codes_langues'];
98
+
99
+    $langues_installees = explode(',', (string) $GLOBALS['meta']['langues_proposees']);
100
+    $langues_trad = array_flip($langues_installees);
101
+
102
+    $langues_bloquees = explode(',', (string) $GLOBALS['meta']['langues_utilisees']);
103
+
104
+    $res = '';
105
+
106
+    $i = 0;
107
+    foreach ($langues_bloquees as $code_langue) {
108
+        $nom_langue = $langues[$code_langue];
109
+        $res .= "<li class='choix "
110
+            . alterner(++$i, 'odd', 'even')
111
+            . (isset($langues_trad[$code_langue]) ? ' traduite' : '')
112
+            . "'>"
113
+            . "<input type='hidden' name='{$name}[]' value='$code_langue'>" // necessaire ...
114
+            . "<input type='checkbox' name='{$name}[]' id='{$name}_$code_langue' value='$code_langue' checked='checked' disabled='disabled' />"
115
+            . "<label for='{$name}_$code_langue'>" . $nom_langue . "&nbsp;&nbsp; <span class='code_langue'>[$code_langue]</span></label>"
116
+            . '</li>';
117
+    }
118
+
119
+    if ($res) {
120
+        $res = "<ul id='langues_bloquees'>" . $res . "</ul><div class='nettoyeur'></div>";
121
+    }
122
+
123
+    $res .= "<ul id='langues_proposees'>";
124
+
125
+    $i = 0;
126
+    $langues_bloquees = array_flip($langues_bloquees);
127
+    foreach ($langues as $code_langue => $nom_langue) {
128
+        if (!isset($langues_bloquees[$code_langue])) {
129
+            $checked = (in_array($code_langue, $selection) ? ' checked="checked"' : '');
130
+            $res .= "<li class='choix "
131
+                . alterner(++$i, 'odd', 'even')
132
+                . (isset($langues_trad[$code_langue]) ? ' traduite' : '')
133
+                . "'>"
134
+                . "<input type='checkbox' name='{$name}[]' id='{$name}_$code_langue' value='$code_langue'"
135
+                . $checked
136
+                . '/>'
137
+                . "<label for='{$name}_$code_langue'"
138
+                . ($checked ? " class='on'" : '')
139
+                . '>'
140
+                . $nom_langue . "&nbsp;&nbsp; <span class='code_langue'>[$code_langue]</span></label>"
141
+                . '</li>';
142
+        }
143
+    }
144
+
145
+    return $res . "</ul><div class='nettoyeur'></div>";
146 146
 }
Please login to merge, or discard this patch.
prive/formulaires/inscription.php 1 patch
Indentation   +127 added lines, -127 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 \***************************************************************************/
11 11
 
12 12
 if (!defined('_ECRIRE_INC_VERSION')) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 /**
@@ -39,26 +39,26 @@  discard block
 block discarded – undo
39 39
  */
40 40
 function formulaires_inscription_charger_dist($mode = '', $options = [], $retour = '') {
41 41
 
42
-	$id = ($options['id'] ?? 0);
43
-
44
-	// fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
45
-	// pas de formulaire si le mode est interdit
46
-	include_spip('inc/autoriser');
47
-	if (!autoriser('inscrireauteur', $mode, $id)) {
48
-		return false;
49
-	}
50
-
51
-	// pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
52
-	if (isset($GLOBALS['visiteur_session']['statut']) && $GLOBALS['visiteur_session']['statut'] <= $mode) {
53
-		return false;
54
-	}
55
-
56
-	return [
57
-		'nom_inscription' => '',
58
-		'mail_inscription' => '',
59
-		'id' => $id,
60
-		'_mode' => $mode
61
-	];
42
+    $id = ($options['id'] ?? 0);
43
+
44
+    // fournir le mode de la config ou tester si l'argument du formulaire est un mode accepte par celle-ci
45
+    // pas de formulaire si le mode est interdit
46
+    include_spip('inc/autoriser');
47
+    if (!autoriser('inscrireauteur', $mode, $id)) {
48
+        return false;
49
+    }
50
+
51
+    // pas de formulaire si on a déjà une session avec un statut égal ou meilleur au mode
52
+    if (isset($GLOBALS['visiteur_session']['statut']) && $GLOBALS['visiteur_session']['statut'] <= $mode) {
53
+        return false;
54
+    }
55
+
56
+    return [
57
+        'nom_inscription' => '',
58
+        'mail_inscription' => '',
59
+        'id' => $id,
60
+        '_mode' => $mode
61
+    ];
62 62
 }
63 63
 
64 64
 
@@ -71,65 +71,65 @@  discard block
 block discarded – undo
71 71
  * @return array
72 72
  */
73 73
 function formulaires_inscription_verifier_dist($mode = '', $options = [], $retour = '') {
74
-	set_request('_upgrade_auteur'); // securite
75
-	include_spip('inc/filtres');
76
-	$erreurs = [];
77
-
78
-	$id = ($options['id'] ?? 0);
79
-
80
-	include_spip('inc/autoriser');
81
-	if (!autoriser('inscrireauteur', $mode, $id) || strlen((string) _request('nobot')) > 0) {
82
-		$erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
83
-	}
84
-
85
-	if (!$nom = _request('nom_inscription')) {
86
-		$erreurs['nom_inscription'] = _T('info_obligatoire');
87
-	} elseif (!nom_acceptable(_request('nom_inscription'))) {
88
-		$erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme');
89
-	}
90
-	if (!$mail = (string) _request('mail_inscription')) {
91
-		$erreurs['mail_inscription'] = _T('info_obligatoire');
92
-	}
93
-
94
-	// compatibilite avec anciennes fonction surchargeables
95
-	// plus de definition par defaut
96
-	if ($erreurs === []) {
97
-		include_spip('action/inscrire_auteur');
98
-		$f = function_exists('test_inscription') ? 'test_inscription' : 'test_inscription_dist';
99
-		$declaration = $f($mode, $mail, $nom, $options);
100
-		if (is_string($declaration)) {
101
-			$k = (str_contains($declaration, 'mail')) ?
102
-				'mail_inscription' : 'nom_inscription';
103
-			$erreurs[$k] = _T($declaration);
104
-		} else {
105
-			include_spip('base/abstract_sql');
106
-
107
-			if (
108
-				$row = sql_fetsel(
109
-					'statut, id_auteur, login, email',
110
-					'spip_auteurs',
111
-					'email=' . sql_quote($declaration['email'])
112
-				)
113
-			) {
114
-				if ($row['statut'] == '5poubelle' && empty($declaration['pass'])) {
115
-					// irrecuperable
116
-					$erreurs['message_erreur'] = _T('form_forum_access_refuse');
117
-				} else {
118
-					if ($row['statut'] != 'nouveau' && empty($declaration['pass'])) {
119
-						if ((int) $row['statut'] > (int) $mode) {
120
-							set_request('_upgrade_auteur', $row['id_auteur']);
121
-						} else {
122
-							// deja inscrit
123
-							$erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
124
-						}
125
-					}
126
-				}
127
-				spip_log($row['id_auteur'] . ' veut se resinscrire');
128
-			}
129
-		}
130
-	}
131
-
132
-	return $erreurs;
74
+    set_request('_upgrade_auteur'); // securite
75
+    include_spip('inc/filtres');
76
+    $erreurs = [];
77
+
78
+    $id = ($options['id'] ?? 0);
79
+
80
+    include_spip('inc/autoriser');
81
+    if (!autoriser('inscrireauteur', $mode, $id) || strlen((string) _request('nobot')) > 0) {
82
+        $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici');
83
+    }
84
+
85
+    if (!$nom = _request('nom_inscription')) {
86
+        $erreurs['nom_inscription'] = _T('info_obligatoire');
87
+    } elseif (!nom_acceptable(_request('nom_inscription'))) {
88
+        $erreurs['nom_inscription'] = _T('ecrire:info_nom_pas_conforme');
89
+    }
90
+    if (!$mail = (string) _request('mail_inscription')) {
91
+        $erreurs['mail_inscription'] = _T('info_obligatoire');
92
+    }
93
+
94
+    // compatibilite avec anciennes fonction surchargeables
95
+    // plus de definition par defaut
96
+    if ($erreurs === []) {
97
+        include_spip('action/inscrire_auteur');
98
+        $f = function_exists('test_inscription') ? 'test_inscription' : 'test_inscription_dist';
99
+        $declaration = $f($mode, $mail, $nom, $options);
100
+        if (is_string($declaration)) {
101
+            $k = (str_contains($declaration, 'mail')) ?
102
+                'mail_inscription' : 'nom_inscription';
103
+            $erreurs[$k] = _T($declaration);
104
+        } else {
105
+            include_spip('base/abstract_sql');
106
+
107
+            if (
108
+                $row = sql_fetsel(
109
+                    'statut, id_auteur, login, email',
110
+                    'spip_auteurs',
111
+                    'email=' . sql_quote($declaration['email'])
112
+                )
113
+            ) {
114
+                if ($row['statut'] == '5poubelle' && empty($declaration['pass'])) {
115
+                    // irrecuperable
116
+                    $erreurs['message_erreur'] = _T('form_forum_access_refuse');
117
+                } else {
118
+                    if ($row['statut'] != 'nouveau' && empty($declaration['pass'])) {
119
+                        if ((int) $row['statut'] > (int) $mode) {
120
+                            set_request('_upgrade_auteur', $row['id_auteur']);
121
+                        } else {
122
+                            // deja inscrit
123
+                            $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre');
124
+                        }
125
+                    }
126
+                }
127
+                spip_log($row['id_auteur'] . ' veut se resinscrire');
128
+            }
129
+        }
130
+    }
131
+
132
+    return $erreurs;
133 133
 }
134 134
 
135 135
 /**
@@ -140,51 +140,51 @@  discard block
 block discarded – undo
140 140
  * @return array
141 141
  */
142 142
 function formulaires_inscription_traiter_dist($mode = '', array $options = [], $retour = '') {
143
-	if ($retour) {
144
-		refuser_traiter_formulaire_ajax();
145
-	}
146
-
147
-	include_spip('inc/filtres');
148
-	include_spip('inc/autoriser');
149
-
150
-	$id = ($options['id'] ?? 0);
151
-
152
-	if (!autoriser('inscrireauteur', $mode, $id)) {
153
-		$desc = 'rien a faire ici';
154
-	} else {
155
-		if ($id_auteur = _request('_upgrade_auteur')) {
156
-			include_spip('action/editer_auteur');
157
-			autoriser_exception('modifier', 'auteur', $id_auteur);
158
-			autoriser_exception('instituer', 'auteur', $id_auteur);
159
-			auteur_modifier($id_auteur, ['statut' => $mode]);
160
-			autoriser_exception('modifier', 'auteur', $id_auteur, false);
161
-			autoriser_exception('instituer', 'auteur', $id_auteur, false);
162
-
163
-			return ['message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur];
164
-		}
165
-
166
-		$nom = _request('nom_inscription');
167
-		$mail_complet = _request('mail_inscription');
168
-
169
-		$inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
170
-		$desc = $inscrire_auteur($mode, $mail_complet, $nom, $options);
171
-	}
172
-
173
-	// erreur ?
174
-	if (is_string($desc)) {
175
-		return ['message_erreur' => $desc];
176
-	} // OK
177
-	else {
178
-		$retours = [
179
-			'message_ok' => _T('form_forum_identifiant_mail'),
180
-			'id_auteur' => $desc['id_auteur']
181
-		];
182
-
183
-		// Si on demande à rediriger juste après validation du formulaire
184
-		if ($retour) {
185
-			$retours['redirect'] = $retour;
186
-		}
187
-
188
-		return $retours;
189
-	}
143
+    if ($retour) {
144
+        refuser_traiter_formulaire_ajax();
145
+    }
146
+
147
+    include_spip('inc/filtres');
148
+    include_spip('inc/autoriser');
149
+
150
+    $id = ($options['id'] ?? 0);
151
+
152
+    if (!autoriser('inscrireauteur', $mode, $id)) {
153
+        $desc = 'rien a faire ici';
154
+    } else {
155
+        if ($id_auteur = _request('_upgrade_auteur')) {
156
+            include_spip('action/editer_auteur');
157
+            autoriser_exception('modifier', 'auteur', $id_auteur);
158
+            autoriser_exception('instituer', 'auteur', $id_auteur);
159
+            auteur_modifier($id_auteur, ['statut' => $mode]);
160
+            autoriser_exception('modifier', 'auteur', $id_auteur, false);
161
+            autoriser_exception('instituer', 'auteur', $id_auteur, false);
162
+
163
+            return ['message_ok' => _T('form_forum_email_deja_enregistre'), 'id_auteur' => $id_auteur];
164
+        }
165
+
166
+        $nom = _request('nom_inscription');
167
+        $mail_complet = _request('mail_inscription');
168
+
169
+        $inscrire_auteur = charger_fonction('inscrire_auteur', 'action');
170
+        $desc = $inscrire_auteur($mode, $mail_complet, $nom, $options);
171
+    }
172
+
173
+    // erreur ?
174
+    if (is_string($desc)) {
175
+        return ['message_erreur' => $desc];
176
+    } // OK
177
+    else {
178
+        $retours = [
179
+            'message_ok' => _T('form_forum_identifiant_mail'),
180
+            'id_auteur' => $desc['id_auteur']
181
+        ];
182
+
183
+        // Si on demande à rediriger juste après validation du formulaire
184
+        if ($retour) {
185
+            $retours['redirect'] = $retour;
186
+        }
187
+
188
+        return $retours;
189
+    }
190 190
 }
Please login to merge, or discard this patch.