@@ -2,247 +2,247 @@ discard block |
||
| 2 | 2 | // This is a SPIP language file -- Ceci est un fichier langue de SPIP |
| 3 | 3 | // Fichier source, a modifier dans https://git.spip.net/spip/spip.git |
| 4 | 4 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 5 | - return; |
|
| 5 | + return; |
|
| 6 | 6 | } |
| 7 | 7 | |
| 8 | 8 | $GLOBALS[$GLOBALS['idx_lang']] = array( |
| 9 | 9 | |
| 10 | - // A |
|
| 11 | - 'access_interface_graphique' => 'Retour à l’interface graphique complète', |
|
| 12 | - 'access_mode_texte' => 'Afficher l’interface textuelle simplifiée', |
|
| 13 | - 'admin_debug' => 'debug', |
|
| 14 | - 'admin_modifier_article' => 'Modifier cet article', |
|
| 15 | - 'admin_modifier_auteur' => 'Modifier cet auteur', |
|
| 16 | - 'admin_modifier_breve' => 'Modifier cette brève', |
|
| 17 | - 'admin_modifier_mot' => 'Modifier ce mot-clé', |
|
| 18 | - 'admin_modifier_rubrique' => 'Modifier cette rubrique', |
|
| 19 | - 'admin_recalculer' => 'Recalculer cette page', |
|
| 20 | - 'afficher_calendrier' => 'Afficher le calendrier', |
|
| 21 | - 'afficher_trad' => 'afficher les traductions', |
|
| 22 | - 'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base SQL vers la version @version@ est impossible, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.', |
|
| 23 | - 'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifiée par ailleurs. La valeur actuelle est :', |
|
| 24 | - 'analyse_xml' => 'Analyse XML', |
|
| 25 | - 'annuler' => 'Annuler', |
|
| 26 | - 'antispam_champ_vide' => 'Veuillez laisser ce champ vide :', |
|
| 27 | - 'articles_recents' => 'Articles les plus récents', |
|
| 28 | - 'attention_champ_mini_nb_caractères' => 'Attention ! @nb@ caractères au minimum', |
|
| 29 | - 'avis_1_erreur_saisie' => 'Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.', |
|
| 30 | - 'avis_archive_incorrect' => 'le fichier archive n’est pas un fichier SPIP', |
|
| 31 | - 'avis_archive_invalide' => 'le fichier archive n’est pas valide', |
|
| 32 | - 'avis_attention' => 'ATTENTION !', |
|
| 33 | - 'avis_champ_incorrect_type_objet' => 'Nom de champ incorrect @name@ pour objet de type @type@', |
|
| 34 | - 'avis_colonne_inexistante' => 'La colonne @col@ n’existe pas', |
|
| 35 | - 'avis_erreur' => 'Erreur : voir ci-dessous', |
|
| 36 | - 'avis_erreur_connexion' => 'Erreur de connexion', |
|
| 37 | - 'avis_erreur_cookie' => 'problème de cookie', |
|
| 38 | - 'avis_erreur_fonction_contexte' => 'Erreur de programmation. Cette fonction ne doit pas être appelée dans ce contexte.', |
|
| 39 | - 'avis_erreur_mysql' => 'Erreur SQL', |
|
| 40 | - 'avis_erreur_sauvegarde' => 'Erreur dans la sauvegarde (@type@ @id_objet@) !', |
|
| 41 | - 'avis_erreur_visiteur' => 'Problème d’accès à l’espace privé', |
|
| 42 | - 'avis_nb_erreurs_saisie' => 'Il y a @nb@ erreurs dans votre saisie, veuillez vérifier les informations.', |
|
| 10 | + // A |
|
| 11 | + 'access_interface_graphique' => 'Retour à l’interface graphique complète', |
|
| 12 | + 'access_mode_texte' => 'Afficher l’interface textuelle simplifiée', |
|
| 13 | + 'admin_debug' => 'debug', |
|
| 14 | + 'admin_modifier_article' => 'Modifier cet article', |
|
| 15 | + 'admin_modifier_auteur' => 'Modifier cet auteur', |
|
| 16 | + 'admin_modifier_breve' => 'Modifier cette brève', |
|
| 17 | + 'admin_modifier_mot' => 'Modifier ce mot-clé', |
|
| 18 | + 'admin_modifier_rubrique' => 'Modifier cette rubrique', |
|
| 19 | + 'admin_recalculer' => 'Recalculer cette page', |
|
| 20 | + 'afficher_calendrier' => 'Afficher le calendrier', |
|
| 21 | + 'afficher_trad' => 'afficher les traductions', |
|
| 22 | + 'alerte_maj_impossible' => '<b>Alerte !</b> La mise à jour de la base SQL vers la version @version@ est impossible, peut-être à cause d’un problème de droit de modification sur la base de données. Veuillez contacter votre hébergeur.', |
|
| 23 | + 'alerte_modif_info_concourante' => 'ATTENTION : Cette information a été modifiée par ailleurs. La valeur actuelle est :', |
|
| 24 | + 'analyse_xml' => 'Analyse XML', |
|
| 25 | + 'annuler' => 'Annuler', |
|
| 26 | + 'antispam_champ_vide' => 'Veuillez laisser ce champ vide :', |
|
| 27 | + 'articles_recents' => 'Articles les plus récents', |
|
| 28 | + 'attention_champ_mini_nb_caractères' => 'Attention ! @nb@ caractères au minimum', |
|
| 29 | + 'avis_1_erreur_saisie' => 'Il y a 1 erreur dans votre saisie, veuillez vérifier les informations.', |
|
| 30 | + 'avis_archive_incorrect' => 'le fichier archive n’est pas un fichier SPIP', |
|
| 31 | + 'avis_archive_invalide' => 'le fichier archive n’est pas valide', |
|
| 32 | + 'avis_attention' => 'ATTENTION !', |
|
| 33 | + 'avis_champ_incorrect_type_objet' => 'Nom de champ incorrect @name@ pour objet de type @type@', |
|
| 34 | + 'avis_colonne_inexistante' => 'La colonne @col@ n’existe pas', |
|
| 35 | + 'avis_erreur' => 'Erreur : voir ci-dessous', |
|
| 36 | + 'avis_erreur_connexion' => 'Erreur de connexion', |
|
| 37 | + 'avis_erreur_cookie' => 'problème de cookie', |
|
| 38 | + 'avis_erreur_fonction_contexte' => 'Erreur de programmation. Cette fonction ne doit pas être appelée dans ce contexte.', |
|
| 39 | + 'avis_erreur_mysql' => 'Erreur SQL', |
|
| 40 | + 'avis_erreur_sauvegarde' => 'Erreur dans la sauvegarde (@type@ @id_objet@) !', |
|
| 41 | + 'avis_erreur_visiteur' => 'Problème d’accès à l’espace privé', |
|
| 42 | + 'avis_nb_erreurs_saisie' => 'Il y a @nb@ erreurs dans votre saisie, veuillez vérifier les informations.', |
|
| 43 | 43 | |
| 44 | - // B |
|
| 45 | - 'barre_a_accent_grave' => 'Insérer un A accent grave majuscule', |
|
| 46 | - 'barre_aide' => 'Utilisez les raccourcis typographiques pour enrichir votre mise en page', |
|
| 47 | - 'barre_e_accent_aigu' => 'Insérer un E accent aigu majuscule', |
|
| 48 | - 'barre_eo' => 'Insérer un E dans l’O', |
|
| 49 | - 'barre_eo_maj' => 'Insérer un E dans l’O majuscule', |
|
| 50 | - 'barre_euro' => 'Insérer le symbole €', |
|
| 51 | - 'barre_gras' => 'Mettre en {{gras}}', |
|
| 52 | - 'barre_guillemets' => 'Entourer de « guillemets »', |
|
| 53 | - 'barre_guillemets_simples' => 'Entourer de “guillemets de second niveau”', |
|
| 54 | - 'barre_intertitre' => 'Transformer en {{{intertitre}}}', |
|
| 55 | - 'barre_italic' => 'Mettre en {italique}', |
|
| 56 | - 'barre_lien' => 'Transformer en [lien hypertexte->http://...]', |
|
| 57 | - 'barre_lien_input' => 'Veuillez indiquer l’adresse de votre lien (vous pouvez indiquer une adresse Web sous la forme http://www.monsite/com ou simplement indiquer le numéro d’un article de ce site.', |
|
| 58 | - 'barre_note' => 'Transformer en [[Note de bas de page]]', |
|
| 59 | - 'barre_paragraphe' => 'Créer un paragraphe', |
|
| 60 | - 'barre_quote' => '<quote>Citer un message</quote>', |
|
| 61 | - 'bouton_changer' => 'Changer', |
|
| 62 | - 'bouton_chercher' => 'Chercher', |
|
| 63 | - 'bouton_choisir' => 'Choisir', |
|
| 64 | - 'bouton_deplacer' => 'Déplacer', |
|
| 65 | - 'bouton_download' => 'Télécharger', |
|
| 66 | - 'bouton_enregistrer' => 'Enregistrer', |
|
| 67 | - 'bouton_radio_desactiver_messagerie_interne' => 'Désactiver la messagerie interne', |
|
| 68 | - 'bouton_radio_envoi_annonces' => 'Envoyer les annonces éditoriales', |
|
| 69 | - 'bouton_radio_non_envoi_annonces' => 'Ne pas envoyer d’annonces', |
|
| 70 | - 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés', |
|
| 71 | - 'bouton_recharger_page' => 'recharger cette page', |
|
| 72 | - 'bouton_telecharger' => 'Télécharger', |
|
| 73 | - 'bouton_upload' => 'Téléverser', |
|
| 74 | - 'bouton_valider' => 'Valider', |
|
| 44 | + // B |
|
| 45 | + 'barre_a_accent_grave' => 'Insérer un A accent grave majuscule', |
|
| 46 | + 'barre_aide' => 'Utilisez les raccourcis typographiques pour enrichir votre mise en page', |
|
| 47 | + 'barre_e_accent_aigu' => 'Insérer un E accent aigu majuscule', |
|
| 48 | + 'barre_eo' => 'Insérer un E dans l’O', |
|
| 49 | + 'barre_eo_maj' => 'Insérer un E dans l’O majuscule', |
|
| 50 | + 'barre_euro' => 'Insérer le symbole €', |
|
| 51 | + 'barre_gras' => 'Mettre en {{gras}}', |
|
| 52 | + 'barre_guillemets' => 'Entourer de « guillemets »', |
|
| 53 | + 'barre_guillemets_simples' => 'Entourer de “guillemets de second niveau”', |
|
| 54 | + 'barre_intertitre' => 'Transformer en {{{intertitre}}}', |
|
| 55 | + 'barre_italic' => 'Mettre en {italique}', |
|
| 56 | + 'barre_lien' => 'Transformer en [lien hypertexte->http://...]', |
|
| 57 | + 'barre_lien_input' => 'Veuillez indiquer l’adresse de votre lien (vous pouvez indiquer une adresse Web sous la forme http://www.monsite/com ou simplement indiquer le numéro d’un article de ce site.', |
|
| 58 | + 'barre_note' => 'Transformer en [[Note de bas de page]]', |
|
| 59 | + 'barre_paragraphe' => 'Créer un paragraphe', |
|
| 60 | + 'barre_quote' => '<quote>Citer un message</quote>', |
|
| 61 | + 'bouton_changer' => 'Changer', |
|
| 62 | + 'bouton_chercher' => 'Chercher', |
|
| 63 | + 'bouton_choisir' => 'Choisir', |
|
| 64 | + 'bouton_deplacer' => 'Déplacer', |
|
| 65 | + 'bouton_download' => 'Télécharger', |
|
| 66 | + 'bouton_enregistrer' => 'Enregistrer', |
|
| 67 | + 'bouton_radio_desactiver_messagerie_interne' => 'Désactiver la messagerie interne', |
|
| 68 | + 'bouton_radio_envoi_annonces' => 'Envoyer les annonces éditoriales', |
|
| 69 | + 'bouton_radio_non_envoi_annonces' => 'Ne pas envoyer d’annonces', |
|
| 70 | + 'bouton_radio_non_envoi_liste_nouveautes' => 'Ne pas envoyer la liste des nouveautés', |
|
| 71 | + 'bouton_recharger_page' => 'recharger cette page', |
|
| 72 | + 'bouton_telecharger' => 'Télécharger', |
|
| 73 | + 'bouton_upload' => 'Téléverser', |
|
| 74 | + 'bouton_valider' => 'Valider', |
|
| 75 | 75 | |
| 76 | - // C |
|
| 77 | - 'cal_apresmidi' => 'après-midi', |
|
| 78 | - 'cal_jour_entier' => 'jour entier', |
|
| 79 | - 'cal_matin' => 'matin', |
|
| 80 | - 'cal_par_jour' => 'calendrier par jour', |
|
| 81 | - 'cal_par_mois' => 'calendrier par mois', |
|
| 82 | - 'cal_par_semaine' => 'calendrier par semaine', |
|
| 83 | - 'choix_couleur_interface' => 'couleur ', |
|
| 84 | - 'choix_interface' => 'choix de l’interface', |
|
| 85 | - 'colonne' => 'Colonne', |
|
| 86 | - 'confirm_changer_statut' => 'Attention, vous avez demandé à changer le statut de cet élément. Souhaitez-vous continuer ?', |
|
| 87 | - 'correcte' => 'correcte', # chaine utilisée dans le debugueur : "validation .. impossible" ou "validation .. correcte" |
|
| 76 | + // C |
|
| 77 | + 'cal_apresmidi' => 'après-midi', |
|
| 78 | + 'cal_jour_entier' => 'jour entier', |
|
| 79 | + 'cal_matin' => 'matin', |
|
| 80 | + 'cal_par_jour' => 'calendrier par jour', |
|
| 81 | + 'cal_par_mois' => 'calendrier par mois', |
|
| 82 | + 'cal_par_semaine' => 'calendrier par semaine', |
|
| 83 | + 'choix_couleur_interface' => 'couleur ', |
|
| 84 | + 'choix_interface' => 'choix de l’interface', |
|
| 85 | + 'colonne' => 'Colonne', |
|
| 86 | + 'confirm_changer_statut' => 'Attention, vous avez demandé à changer le statut de cet élément. Souhaitez-vous continuer ?', |
|
| 87 | + 'correcte' => 'correcte', # chaine utilisée dans le debugueur : "validation .. impossible" ou "validation .. correcte" |
|
| 88 | 88 | |
| 89 | - // D |
|
| 90 | - 'date_aujourdhui' => 'aujourd’hui', |
|
| 91 | - 'date_avant_jc' => 'av. J.C.', |
|
| 92 | - 'date_dans' => 'dans @delai@', |
|
| 93 | - 'date_de_mois_1' => '@j@ @nommois@', |
|
| 94 | - 'date_de_mois_10' => '@j@ @nommois@', |
|
| 95 | - 'date_de_mois_11' => '@j@ @nommois@', |
|
| 96 | - 'date_de_mois_12' => '@j@ @nommois@', |
|
| 97 | - 'date_de_mois_2' => '@j@ @nommois@', |
|
| 98 | - 'date_de_mois_3' => '@j@ @nommois@', |
|
| 99 | - 'date_de_mois_4' => '@j@ @nommois@', |
|
| 100 | - 'date_de_mois_5' => '@j@ @nommois@', |
|
| 101 | - 'date_de_mois_6' => '@j@ @nommois@', |
|
| 102 | - 'date_de_mois_7' => '@j@ @nommois@', |
|
| 103 | - 'date_de_mois_8' => '@j@ @nommois@', |
|
| 104 | - 'date_de_mois_9' => '@j@ @nommois@', |
|
| 105 | - 'date_demain' => 'demain', |
|
| 106 | - 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 107 | - 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 108 | - 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 109 | - 'date_fmt_jour_heure' => '@jour@ à @heure@', |
|
| 110 | - 'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ à @heure_fin@', |
|
| 111 | - 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ à @dtend@@heure_fin@@dtabbr@', |
|
| 112 | - 'date_fmt_jour_mois' => '@jour@ @nommois@', |
|
| 113 | - 'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@', |
|
| 114 | - 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 115 | - 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 116 | - 'date_fmt_nomjour_date' => 'le @nomjour@ @date@', |
|
| 117 | - 'date_fmt_periode' => 'Du @date_debut@ au @date_fin@', |
|
| 118 | - 'date_fmt_periode_abbr' => 'Du @dtart@@date_debut@@dtabbr@ au @dtend@@date_fin@@dtabbr@', |
|
| 119 | - 'date_fmt_periode_from' => 'Du', |
|
| 120 | - 'date_fmt_periode_to' => 'au', |
|
| 121 | - 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 122 | - 'date_heures' => 'heures', |
|
| 123 | - 'date_hier' => 'hier', |
|
| 124 | - 'date_il_y_a' => 'il y a @delai@', |
|
| 125 | - 'date_jnum1' => '1er', |
|
| 126 | - 'date_jnum10' => '10', |
|
| 127 | - 'date_jnum11' => '11', |
|
| 128 | - 'date_jnum12' => '12', |
|
| 129 | - 'date_jnum13' => '13', |
|
| 130 | - 'date_jnum14' => '14', |
|
| 131 | - 'date_jnum15' => '15', |
|
| 132 | - 'date_jnum16' => '16', |
|
| 133 | - 'date_jnum17' => '17', |
|
| 134 | - 'date_jnum18' => '18', |
|
| 135 | - 'date_jnum19' => '19', |
|
| 136 | - 'date_jnum2' => '2', |
|
| 137 | - 'date_jnum20' => '20', |
|
| 138 | - 'date_jnum21' => '21', |
|
| 139 | - 'date_jnum22' => '22', |
|
| 140 | - 'date_jnum23' => '23', |
|
| 141 | - 'date_jnum24' => '24', |
|
| 142 | - 'date_jnum25' => '25', |
|
| 143 | - 'date_jnum26' => '26', |
|
| 144 | - 'date_jnum27' => '27', |
|
| 145 | - 'date_jnum28' => '28', |
|
| 146 | - 'date_jnum29' => '29', |
|
| 147 | - 'date_jnum3' => '3', |
|
| 148 | - 'date_jnum30' => '30', |
|
| 149 | - 'date_jnum31' => '31', |
|
| 150 | - 'date_jnum4' => '4', |
|
| 151 | - 'date_jnum5' => '5', |
|
| 152 | - 'date_jnum6' => '6', |
|
| 153 | - 'date_jnum7' => '7', |
|
| 154 | - 'date_jnum8' => '8', |
|
| 155 | - 'date_jnum9' => '9', |
|
| 156 | - 'date_jour_1' => 'dimanche', |
|
| 157 | - 'date_jour_1_abbr' => 'dim.', |
|
| 158 | - 'date_jour_1_initiale' => 'd.', |
|
| 159 | - 'date_jour_2' => 'lundi', |
|
| 160 | - 'date_jour_2_abbr' => 'lun.', |
|
| 161 | - 'date_jour_2_initiale' => 'l.', |
|
| 162 | - 'date_jour_3' => 'mardi', |
|
| 163 | - 'date_jour_3_abbr' => 'mar.', |
|
| 164 | - 'date_jour_3_initiale' => 'm.', |
|
| 165 | - 'date_jour_4' => 'mercredi', |
|
| 166 | - 'date_jour_4_abbr' => 'mer.', |
|
| 167 | - 'date_jour_4_initiale' => 'm.', |
|
| 168 | - 'date_jour_5' => 'jeudi', |
|
| 169 | - 'date_jour_5_abbr' => 'jeu.', |
|
| 170 | - 'date_jour_5_initiale' => 'j.', |
|
| 171 | - 'date_jour_6' => 'vendredi', |
|
| 172 | - 'date_jour_6_abbr' => 'ven.', |
|
| 173 | - 'date_jour_6_initiale' => 'v.', |
|
| 174 | - 'date_jour_7' => 'samedi', |
|
| 175 | - 'date_jour_7_abbr' => 'sam.', |
|
| 176 | - 'date_jour_7_initiale' => 's.', |
|
| 177 | - 'date_jours' => 'jours', |
|
| 178 | - 'date_minutes' => 'minutes', |
|
| 179 | - 'date_mois' => 'mois', |
|
| 180 | - 'date_mois_1' => 'janvier', |
|
| 181 | - 'date_mois_10' => 'octobre', |
|
| 182 | - 'date_mois_10_abbr' => 'oct.', |
|
| 183 | - 'date_mois_11' => 'novembre', |
|
| 184 | - 'date_mois_11_abbr' => 'nov.', |
|
| 185 | - 'date_mois_12' => 'décembre', |
|
| 186 | - 'date_mois_12_abbr' => 'déc.', |
|
| 187 | - 'date_mois_1_abbr' => 'janv.', |
|
| 188 | - 'date_mois_2' => 'février', |
|
| 189 | - 'date_mois_2_abbr' => 'févr.', |
|
| 190 | - 'date_mois_3' => 'mars', |
|
| 191 | - 'date_mois_3_abbr' => 'mars', |
|
| 192 | - 'date_mois_4' => 'avril', |
|
| 193 | - 'date_mois_4_abbr' => 'avr.', |
|
| 194 | - 'date_mois_5' => 'mai', |
|
| 195 | - 'date_mois_5_abbr' => 'mai', |
|
| 196 | - 'date_mois_6' => 'juin', |
|
| 197 | - 'date_mois_6_abbr' => 'juin', |
|
| 198 | - 'date_mois_7' => 'juillet', |
|
| 199 | - 'date_mois_7_abbr' => 'juil.', |
|
| 200 | - 'date_mois_8' => 'août', |
|
| 201 | - 'date_mois_8_abbr' => 'août', |
|
| 202 | - 'date_mois_9' => 'septembre', |
|
| 203 | - 'date_mois_9_abbr' => 'sept.', |
|
| 204 | - 'date_saison_1' => 'hiver', |
|
| 205 | - 'date_saison_2' => 'printemps', |
|
| 206 | - 'date_saison_3' => 'été', |
|
| 207 | - 'date_saison_4' => 'automne', |
|
| 208 | - 'date_secondes' => 'secondes', |
|
| 209 | - 'date_semaines' => 'semaines', |
|
| 210 | - 'date_un_mois' => 'mois', |
|
| 211 | - 'date_une_heure' => 'heure', |
|
| 212 | - 'date_une_minute' => 'minute', |
|
| 213 | - 'date_une_seconde' => 'seconde', |
|
| 214 | - 'date_une_semaine' => 'semaine', |
|
| 215 | - 'dirs_commencer' => ' afin de commencer réellement l’installation', |
|
| 216 | - 'dirs_preliminaire' => 'Préliminaire : <b>Régler les droits d’accès</b>', |
|
| 217 | - 'dirs_probleme_droits' => 'Problème de droits d’accès', |
|
| 218 | - 'dirs_repertoires_absents' => '<p><b>Les répertoires suivants n’ont pas été trouvés :</b></p><ul>@bad_dirs@</ul> |
|
| 89 | + // D |
|
| 90 | + 'date_aujourdhui' => 'aujourd’hui', |
|
| 91 | + 'date_avant_jc' => 'av. J.C.', |
|
| 92 | + 'date_dans' => 'dans @delai@', |
|
| 93 | + 'date_de_mois_1' => '@j@ @nommois@', |
|
| 94 | + 'date_de_mois_10' => '@j@ @nommois@', |
|
| 95 | + 'date_de_mois_11' => '@j@ @nommois@', |
|
| 96 | + 'date_de_mois_12' => '@j@ @nommois@', |
|
| 97 | + 'date_de_mois_2' => '@j@ @nommois@', |
|
| 98 | + 'date_de_mois_3' => '@j@ @nommois@', |
|
| 99 | + 'date_de_mois_4' => '@j@ @nommois@', |
|
| 100 | + 'date_de_mois_5' => '@j@ @nommois@', |
|
| 101 | + 'date_de_mois_6' => '@j@ @nommois@', |
|
| 102 | + 'date_de_mois_7' => '@j@ @nommois@', |
|
| 103 | + 'date_de_mois_8' => '@j@ @nommois@', |
|
| 104 | + 'date_de_mois_9' => '@j@ @nommois@', |
|
| 105 | + 'date_demain' => 'demain', |
|
| 106 | + 'date_fmt_heures_minutes' => '@h@h@m@min', |
|
| 107 | + 'date_fmt_heures_minutes_court' => '@h@h@m@', |
|
| 108 | + 'date_fmt_jour' => '@nomjour@ @jour@', |
|
| 109 | + 'date_fmt_jour_heure' => '@jour@ à @heure@', |
|
| 110 | + 'date_fmt_jour_heure_debut_fin' => '@jour@ de @heure_debut@ à @heure_fin@', |
|
| 111 | + 'date_fmt_jour_heure_debut_fin_abbr' => '@dtstart@@jour@ de @heure_debut@@dtabbr@ à @dtend@@heure_fin@@dtabbr@', |
|
| 112 | + 'date_fmt_jour_mois' => '@jour@ @nommois@', |
|
| 113 | + 'date_fmt_jour_mois_annee' => '@jour@ @nommois@ @annee@', |
|
| 114 | + 'date_fmt_mois_annee' => '@nommois@ @annee@', |
|
| 115 | + 'date_fmt_nomjour' => '@nomjour@ @date@', |
|
| 116 | + 'date_fmt_nomjour_date' => 'le @nomjour@ @date@', |
|
| 117 | + 'date_fmt_periode' => 'Du @date_debut@ au @date_fin@', |
|
| 118 | + 'date_fmt_periode_abbr' => 'Du @dtart@@date_debut@@dtabbr@ au @dtend@@date_fin@@dtabbr@', |
|
| 119 | + 'date_fmt_periode_from' => 'Du', |
|
| 120 | + 'date_fmt_periode_to' => 'au', |
|
| 121 | + 'date_fmt_saison_annee' => '@saison@ @annee@', |
|
| 122 | + 'date_heures' => 'heures', |
|
| 123 | + 'date_hier' => 'hier', |
|
| 124 | + 'date_il_y_a' => 'il y a @delai@', |
|
| 125 | + 'date_jnum1' => '1er', |
|
| 126 | + 'date_jnum10' => '10', |
|
| 127 | + 'date_jnum11' => '11', |
|
| 128 | + 'date_jnum12' => '12', |
|
| 129 | + 'date_jnum13' => '13', |
|
| 130 | + 'date_jnum14' => '14', |
|
| 131 | + 'date_jnum15' => '15', |
|
| 132 | + 'date_jnum16' => '16', |
|
| 133 | + 'date_jnum17' => '17', |
|
| 134 | + 'date_jnum18' => '18', |
|
| 135 | + 'date_jnum19' => '19', |
|
| 136 | + 'date_jnum2' => '2', |
|
| 137 | + 'date_jnum20' => '20', |
|
| 138 | + 'date_jnum21' => '21', |
|
| 139 | + 'date_jnum22' => '22', |
|
| 140 | + 'date_jnum23' => '23', |
|
| 141 | + 'date_jnum24' => '24', |
|
| 142 | + 'date_jnum25' => '25', |
|
| 143 | + 'date_jnum26' => '26', |
|
| 144 | + 'date_jnum27' => '27', |
|
| 145 | + 'date_jnum28' => '28', |
|
| 146 | + 'date_jnum29' => '29', |
|
| 147 | + 'date_jnum3' => '3', |
|
| 148 | + 'date_jnum30' => '30', |
|
| 149 | + 'date_jnum31' => '31', |
|
| 150 | + 'date_jnum4' => '4', |
|
| 151 | + 'date_jnum5' => '5', |
|
| 152 | + 'date_jnum6' => '6', |
|
| 153 | + 'date_jnum7' => '7', |
|
| 154 | + 'date_jnum8' => '8', |
|
| 155 | + 'date_jnum9' => '9', |
|
| 156 | + 'date_jour_1' => 'dimanche', |
|
| 157 | + 'date_jour_1_abbr' => 'dim.', |
|
| 158 | + 'date_jour_1_initiale' => 'd.', |
|
| 159 | + 'date_jour_2' => 'lundi', |
|
| 160 | + 'date_jour_2_abbr' => 'lun.', |
|
| 161 | + 'date_jour_2_initiale' => 'l.', |
|
| 162 | + 'date_jour_3' => 'mardi', |
|
| 163 | + 'date_jour_3_abbr' => 'mar.', |
|
| 164 | + 'date_jour_3_initiale' => 'm.', |
|
| 165 | + 'date_jour_4' => 'mercredi', |
|
| 166 | + 'date_jour_4_abbr' => 'mer.', |
|
| 167 | + 'date_jour_4_initiale' => 'm.', |
|
| 168 | + 'date_jour_5' => 'jeudi', |
|
| 169 | + 'date_jour_5_abbr' => 'jeu.', |
|
| 170 | + 'date_jour_5_initiale' => 'j.', |
|
| 171 | + 'date_jour_6' => 'vendredi', |
|
| 172 | + 'date_jour_6_abbr' => 'ven.', |
|
| 173 | + 'date_jour_6_initiale' => 'v.', |
|
| 174 | + 'date_jour_7' => 'samedi', |
|
| 175 | + 'date_jour_7_abbr' => 'sam.', |
|
| 176 | + 'date_jour_7_initiale' => 's.', |
|
| 177 | + 'date_jours' => 'jours', |
|
| 178 | + 'date_minutes' => 'minutes', |
|
| 179 | + 'date_mois' => 'mois', |
|
| 180 | + 'date_mois_1' => 'janvier', |
|
| 181 | + 'date_mois_10' => 'octobre', |
|
| 182 | + 'date_mois_10_abbr' => 'oct.', |
|
| 183 | + 'date_mois_11' => 'novembre', |
|
| 184 | + 'date_mois_11_abbr' => 'nov.', |
|
| 185 | + 'date_mois_12' => 'décembre', |
|
| 186 | + 'date_mois_12_abbr' => 'déc.', |
|
| 187 | + 'date_mois_1_abbr' => 'janv.', |
|
| 188 | + 'date_mois_2' => 'février', |
|
| 189 | + 'date_mois_2_abbr' => 'févr.', |
|
| 190 | + 'date_mois_3' => 'mars', |
|
| 191 | + 'date_mois_3_abbr' => 'mars', |
|
| 192 | + 'date_mois_4' => 'avril', |
|
| 193 | + 'date_mois_4_abbr' => 'avr.', |
|
| 194 | + 'date_mois_5' => 'mai', |
|
| 195 | + 'date_mois_5_abbr' => 'mai', |
|
| 196 | + 'date_mois_6' => 'juin', |
|
| 197 | + 'date_mois_6_abbr' => 'juin', |
|
| 198 | + 'date_mois_7' => 'juillet', |
|
| 199 | + 'date_mois_7_abbr' => 'juil.', |
|
| 200 | + 'date_mois_8' => 'août', |
|
| 201 | + 'date_mois_8_abbr' => 'août', |
|
| 202 | + 'date_mois_9' => 'septembre', |
|
| 203 | + 'date_mois_9_abbr' => 'sept.', |
|
| 204 | + 'date_saison_1' => 'hiver', |
|
| 205 | + 'date_saison_2' => 'printemps', |
|
| 206 | + 'date_saison_3' => 'été', |
|
| 207 | + 'date_saison_4' => 'automne', |
|
| 208 | + 'date_secondes' => 'secondes', |
|
| 209 | + 'date_semaines' => 'semaines', |
|
| 210 | + 'date_un_mois' => 'mois', |
|
| 211 | + 'date_une_heure' => 'heure', |
|
| 212 | + 'date_une_minute' => 'minute', |
|
| 213 | + 'date_une_seconde' => 'seconde', |
|
| 214 | + 'date_une_semaine' => 'semaine', |
|
| 215 | + 'dirs_commencer' => ' afin de commencer réellement l’installation', |
|
| 216 | + 'dirs_preliminaire' => 'Préliminaire : <b>Régler les droits d’accès</b>', |
|
| 217 | + 'dirs_probleme_droits' => 'Problème de droits d’accès', |
|
| 218 | + 'dirs_repertoires_absents' => '<p><b>Les répertoires suivants n’ont pas été trouvés :</b></p><ul>@bad_dirs@</ul> |
|
| 219 | 219 | <p>Il est probable que cela soit dû à un problème de mauvaise mise en majuscules ou minuscules. |
| 220 | 220 | Vérifiez que les minuscules et majuscules de ces répertoires concordent bien avec ce qui est affiché |
| 221 | 221 | ci-dessus ; si ce n’est pas le cas, renommez les répertoires avec votre logiciel FTP de façon à corriger l’erreur.</p> |
| 222 | 222 | <p>Une fois cette manipulation effectuée, vous pourrez ', |
| 223 | - 'dirs_repertoires_suivants' => '<p><b>Les répertoires suivants ne sont pas accessibles en écriture :</b></p> <ul>@bad_dirs@</ul> |
|
| 223 | + 'dirs_repertoires_suivants' => '<p><b>Les répertoires suivants ne sont pas accessibles en écriture :</b></p> <ul>@bad_dirs@</ul> |
|
| 224 | 224 | <p>Pour y remédier, utilisez votre client FTP afin de régler les droits d’accès de chacun |
| 225 | 225 | de ces répertoires. La procédure est expliquée en détail dans le guide d’installation.</p> |
| 226 | 226 | <p>Une fois cette manipulation effectuée, vous pourrez ', |
| 227 | - 'double_occurrence' => 'Double occurrence de @balise@', |
|
| 227 | + 'double_occurrence' => 'Double occurrence de @balise@', |
|
| 228 | 228 | |
| 229 | - // E |
|
| 230 | - 'en_cours' => 'en cours', |
|
| 231 | - 'envoi_via_le_site' => 'Envoi via le site', |
|
| 232 | - 'erreur' => 'Erreur', |
|
| 233 | - 'erreur_balise_non_fermee' => 'dernière balise non refermée :', |
|
| 234 | - 'erreur_technique_ajaxform' => 'Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.', |
|
| 235 | - 'erreur_technique_enregistrement_champs' => 'Une erreur technique a empêché l’enregistrement correct du champ @champs@.', |
|
| 236 | - 'erreur_technique_enregistrement_impossible' => 'Une erreur technique a empêché l’enregistrement.', |
|
| 237 | - 'erreur_texte' => 'erreur(s)', |
|
| 238 | - 'etape' => 'Étape', |
|
| 229 | + // E |
|
| 230 | + 'en_cours' => 'en cours', |
|
| 231 | + 'envoi_via_le_site' => 'Envoi via le site', |
|
| 232 | + 'erreur' => 'Erreur', |
|
| 233 | + 'erreur_balise_non_fermee' => 'dernière balise non refermée :', |
|
| 234 | + 'erreur_technique_ajaxform' => 'Oups. Une erreur inattendue a empêché de soumettre le formulaire. Vous pouvez essayer à nouveau.', |
|
| 235 | + 'erreur_technique_enregistrement_champs' => 'Une erreur technique a empêché l’enregistrement correct du champ @champs@.', |
|
| 236 | + 'erreur_technique_enregistrement_impossible' => 'Une erreur technique a empêché l’enregistrement.', |
|
| 237 | + 'erreur_texte' => 'erreur(s)', |
|
| 238 | + 'etape' => 'Étape', |
|
| 239 | 239 | |
| 240 | - // F |
|
| 241 | - 'fichier_introuvable' => 'Fichier @fichier@ introuvable', |
|
| 242 | - 'form_auteur_confirmation' => 'Confirmez votre adresse email', |
|
| 243 | - 'form_auteur_email_modifie' => 'Votre adresse email a été modifiée.', |
|
| 244 | - 'form_auteur_envoi_mail_confirmation' => 'Un courrier électronique de confirmation vient d’être envoyé à @email@. Vous devrez visiter l’adresse Web mentionnée dans ce courrier pour valider votre adresse mail.', |
|
| 245 | - 'form_auteur_mail_confirmation' => 'Bonjour, |
|
| 240 | + // F |
|
| 241 | + 'fichier_introuvable' => 'Fichier @fichier@ introuvable', |
|
| 242 | + 'form_auteur_confirmation' => 'Confirmez votre adresse email', |
|
| 243 | + 'form_auteur_email_modifie' => 'Votre adresse email a été modifiée.', |
|
| 244 | + 'form_auteur_envoi_mail_confirmation' => 'Un courrier électronique de confirmation vient d’être envoyé à @email@. Vous devrez visiter l’adresse Web mentionnée dans ce courrier pour valider votre adresse mail.', |
|
| 245 | + 'form_auteur_mail_confirmation' => 'Bonjour, |
|
| 246 | 246 | |
| 247 | 247 | Vous avez demandé à changer votre adresse email. |
| 248 | 248 | Pour confirmer votre nouvelle adresse, il suffit de vous connecter à |
@@ -251,345 +251,345 @@ discard block |
||
| 251 | 251 | |
| 252 | 252 | @url@ |
| 253 | 253 | ', |
| 254 | - 'form_deja_inscrit' => 'Vous êtes déjà inscrit.', |
|
| 255 | - 'form_email_non_valide' => 'Votre adresse email n’est pas valide.', |
|
| 256 | - 'form_forum_access_refuse' => 'Vous n’avez plus accès à ce site.', |
|
| 257 | - 'form_forum_bonjour' => 'Bonjour @nom@,', |
|
| 258 | - 'form_forum_confirmer_email' => 'Pour confirmer votre adresse email, rendez-vous à cette adresse : @url_confirm@', |
|
| 259 | - 'form_forum_email_deja_enregistre' => 'Cette adresse email est déjà enregistrée, vous pouvez donc utiliser votre mot de passe habituel.', |
|
| 260 | - 'form_forum_identifiant_mail' => 'Votre nouvel identifiant vient de vous être envoyé par email.', |
|
| 261 | - 'form_forum_identifiants' => 'Identifiants personnels', |
|
| 262 | - 'form_forum_indiquer_nom_email' => 'Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.', |
|
| 263 | - 'form_forum_login' => 'login :', |
|
| 264 | - 'form_forum_message_auto' => '(ceci est un message automatique)', |
|
| 265 | - 'form_forum_pass' => 'mot de passe :', |
|
| 266 | - 'form_forum_probleme_mail' => 'Problème de mail : l’identifiant ne peut pas être envoyé.', |
|
| 267 | - 'form_forum_voici1' => 'Voici vos identifiants pour pouvoir participer à la vie du site "@nom_site_spip@" (@adresse_site@) :', |
|
| 268 | - 'form_forum_voici2' => 'Voici vos identifiants pour proposer des articles sur |
|
| 254 | + 'form_deja_inscrit' => 'Vous êtes déjà inscrit.', |
|
| 255 | + 'form_email_non_valide' => 'Votre adresse email n’est pas valide.', |
|
| 256 | + 'form_forum_access_refuse' => 'Vous n’avez plus accès à ce site.', |
|
| 257 | + 'form_forum_bonjour' => 'Bonjour @nom@,', |
|
| 258 | + 'form_forum_confirmer_email' => 'Pour confirmer votre adresse email, rendez-vous à cette adresse : @url_confirm@', |
|
| 259 | + 'form_forum_email_deja_enregistre' => 'Cette adresse email est déjà enregistrée, vous pouvez donc utiliser votre mot de passe habituel.', |
|
| 260 | + 'form_forum_identifiant_mail' => 'Votre nouvel identifiant vient de vous être envoyé par email.', |
|
| 261 | + 'form_forum_identifiants' => 'Identifiants personnels', |
|
| 262 | + 'form_forum_indiquer_nom_email' => 'Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.', |
|
| 263 | + 'form_forum_login' => 'login :', |
|
| 264 | + 'form_forum_message_auto' => '(ceci est un message automatique)', |
|
| 265 | + 'form_forum_pass' => 'mot de passe :', |
|
| 266 | + 'form_forum_probleme_mail' => 'Problème de mail : l’identifiant ne peut pas être envoyé.', |
|
| 267 | + 'form_forum_voici1' => 'Voici vos identifiants pour pouvoir participer à la vie du site "@nom_site_spip@" (@adresse_site@) :', |
|
| 268 | + 'form_forum_voici2' => 'Voici vos identifiants pour proposer des articles sur |
|
| 269 | 269 | le site "@nom_site_spip@" (@adresse_login@) :', |
| 270 | - 'form_indiquer_email' => 'Veuillez indiquer votre adresse email.', |
|
| 271 | - 'form_indiquer_nom' => 'Veuillez indiquer votre nom.', |
|
| 272 | - 'form_indiquer_nom_site' => 'Veuillez indiquer le nom de votre site.', |
|
| 273 | - 'form_pet_deja_enregistre' => 'Ce site est déjà enregistré', |
|
| 274 | - 'form_pet_signature_pasprise' => 'Votre signature n’est pas prise en compte.', |
|
| 275 | - 'form_prop_confirmer_envoi' => 'Confirmer l’envoi', |
|
| 276 | - 'form_prop_description' => 'Description/commentaire', |
|
| 277 | - 'form_prop_enregistre' => 'Votre proposition est enregistrée, elle apparaîtra en ligne après validation par les responsables de ce site.', |
|
| 278 | - 'form_prop_envoyer' => 'Envoyer un message', |
|
| 279 | - 'form_prop_indiquer_email' => 'Veuillez indiquer une adresse email valide', |
|
| 280 | - 'form_prop_indiquer_nom_site' => 'Veuillez indiquer le nom du site.', |
|
| 281 | - 'form_prop_indiquer_sujet' => 'Veuillez indiquer un sujet', |
|
| 282 | - 'form_prop_message_envoye' => 'Message envoyé', |
|
| 283 | - 'form_prop_non_enregistre' => 'Votre proposition n’a pas été enregistrée.', |
|
| 284 | - 'form_prop_sujet' => 'Sujet', |
|
| 285 | - 'form_prop_url_site' => 'Adresse URL du site', |
|
| 286 | - 'format_date_attendu' => 'Saisir une date au format jj/mm/aaaa.', |
|
| 287 | - 'format_date_incorrecte' => 'La date ou son format est incorrect', |
|
| 288 | - 'format_heure_attendu' => 'Saisir une heure au format hh:mm.', |
|
| 289 | - 'format_heure_incorrecte' => 'L’heure ou son format est incorrect', |
|
| 290 | - 'forum_non_inscrit' => 'Vous n’êtes pas inscrit, ou l’adresse ou le mot de passe sont erronés.', |
|
| 291 | - 'forum_par_auteur' => 'par @auteur@', |
|
| 292 | - 'forum_titre_erreur' => 'Erreur...', |
|
| 270 | + 'form_indiquer_email' => 'Veuillez indiquer votre adresse email.', |
|
| 271 | + 'form_indiquer_nom' => 'Veuillez indiquer votre nom.', |
|
| 272 | + 'form_indiquer_nom_site' => 'Veuillez indiquer le nom de votre site.', |
|
| 273 | + 'form_pet_deja_enregistre' => 'Ce site est déjà enregistré', |
|
| 274 | + 'form_pet_signature_pasprise' => 'Votre signature n’est pas prise en compte.', |
|
| 275 | + 'form_prop_confirmer_envoi' => 'Confirmer l’envoi', |
|
| 276 | + 'form_prop_description' => 'Description/commentaire', |
|
| 277 | + 'form_prop_enregistre' => 'Votre proposition est enregistrée, elle apparaîtra en ligne après validation par les responsables de ce site.', |
|
| 278 | + 'form_prop_envoyer' => 'Envoyer un message', |
|
| 279 | + 'form_prop_indiquer_email' => 'Veuillez indiquer une adresse email valide', |
|
| 280 | + 'form_prop_indiquer_nom_site' => 'Veuillez indiquer le nom du site.', |
|
| 281 | + 'form_prop_indiquer_sujet' => 'Veuillez indiquer un sujet', |
|
| 282 | + 'form_prop_message_envoye' => 'Message envoyé', |
|
| 283 | + 'form_prop_non_enregistre' => 'Votre proposition n’a pas été enregistrée.', |
|
| 284 | + 'form_prop_sujet' => 'Sujet', |
|
| 285 | + 'form_prop_url_site' => 'Adresse URL du site', |
|
| 286 | + 'format_date_attendu' => 'Saisir une date au format jj/mm/aaaa.', |
|
| 287 | + 'format_date_incorrecte' => 'La date ou son format est incorrect', |
|
| 288 | + 'format_heure_attendu' => 'Saisir une heure au format hh:mm.', |
|
| 289 | + 'format_heure_incorrecte' => 'L’heure ou son format est incorrect', |
|
| 290 | + 'forum_non_inscrit' => 'Vous n’êtes pas inscrit, ou l’adresse ou le mot de passe sont erronés.', |
|
| 291 | + 'forum_par_auteur' => 'par @auteur@', |
|
| 292 | + 'forum_titre_erreur' => 'Erreur...', |
|
| 293 | 293 | |
| 294 | - // I |
|
| 295 | - 'ical_texte_rss_articles' => 'Le fichier « backend » des articles de ce site se trouve à l’adresse :', |
|
| 296 | - 'ical_texte_rss_articles2' => 'Vous pouvez également obtenir des fichiers « backend » pour les articles de chaque rubrique du site :', |
|
| 297 | - 'ical_texte_rss_breves' => 'Il existe de plus un fichier contenant les brèves du site. En précisant un numéro de rubrique, vous obtiendrez uniquement les brèves de cette rubrique.', |
|
| 298 | - 'icone_a_suivre' => 'À suivre', |
|
| 299 | - 'icone_admin_site' => 'Administration du site', |
|
| 300 | - 'icone_agenda' => 'Agenda', |
|
| 301 | - 'icone_aide_ligne' => 'Aide', |
|
| 302 | - 'icone_articles' => 'Articles', |
|
| 303 | - 'icone_auteurs' => 'Auteurs', |
|
| 304 | - 'icone_brouteur' => 'Navigation rapide', |
|
| 305 | - 'icone_configuration_site' => 'Configuration', |
|
| 306 | - 'icone_configurer_site' => 'Configurer votre site', |
|
| 307 | - 'icone_creer_nouvel_auteur' => 'Créer un nouvel auteur', |
|
| 308 | - 'icone_creer_rubrique' => 'Créer une rubrique', |
|
| 309 | - 'icone_creer_sous_rubrique' => 'Créer une sous-rubrique', |
|
| 310 | - 'icone_deconnecter' => 'Se déconnecter', |
|
| 311 | - 'icone_discussions' => 'Discussions', |
|
| 312 | - 'icone_doc_rubrique' => 'Documents des rubriques', |
|
| 313 | - 'icone_ecrire_article' => 'Écrire un nouvel article', |
|
| 314 | - 'icone_edition_site' => 'Édition', |
|
| 315 | - 'icone_gestion_langues' => 'Gestion des langues', |
|
| 316 | - 'icone_informations_personnelles' => 'Informations personnelles', |
|
| 317 | - 'icone_interface_complet' => 'interface complète', |
|
| 318 | - 'icone_interface_simple' => 'Interface simplifiée', |
|
| 319 | - 'icone_maintenance_site' => 'Maintenance du site', |
|
| 320 | - 'icone_messagerie_personnelle' => 'Messagerie personnelle', |
|
| 321 | - 'icone_repartition_debut' => 'Afficher la répartition depuis le début', |
|
| 322 | - 'icone_rubriques' => 'Rubriques', |
|
| 323 | - 'icone_sauver_site' => 'Sauvegarde du site', |
|
| 324 | - 'icone_site_entier' => 'Tout le site', |
|
| 325 | - 'icone_sites_references' => 'Sites référencés', |
|
| 326 | - 'icone_statistiques' => 'Statistiques du site', |
|
| 327 | - 'icone_suivi_activite' => 'Suivre la vie du site', |
|
| 328 | - 'icone_suivi_actualite' => 'Évolution du site', |
|
| 329 | - 'icone_suivi_pettions' => 'Suivre/gérer les pétitions', |
|
| 330 | - 'icone_suivi_revisions' => 'Modifications des articles', |
|
| 331 | - 'icone_supprimer_document' => 'Supprimer ce document', |
|
| 332 | - 'icone_supprimer_image' => 'Supprimer cette image', |
|
| 333 | - 'icone_tous_articles' => 'Tous vos articles', |
|
| 334 | - 'icone_tous_auteur' => 'Tous les auteurs', |
|
| 335 | - 'icone_tous_visiteur' => 'Tous les visiteurs', |
|
| 336 | - 'icone_visiter_site' => 'Voir le site public', |
|
| 337 | - 'icone_voir_en_ligne' => 'Voir en ligne', |
|
| 338 | - 'img_indisponible' => 'image indisponible', |
|
| 339 | - 'impossible' => 'impossible', |
|
| 340 | - 'info_a_suivre' => 'À SUIVRE »', |
|
| 341 | - 'info_acces_interdit' => 'Accès interdit', |
|
| 342 | - 'info_acces_refuse' => 'Accès refusé', |
|
| 343 | - 'info_action' => 'Action : @action@', |
|
| 344 | - 'info_administrer_rubriques' => 'Vous pouvez administrer cette rubrique et ses sous-rubriques', |
|
| 345 | - 'info_adresse_non_indiquee' => 'Vous n’avez pas indiqué d’adresse à tester !', |
|
| 346 | - 'info_aide' => 'AIDE :', |
|
| 347 | - 'info_ajouter_mot' => 'Ajouter ce mot', |
|
| 348 | - 'info_annonce' => 'ANNONCE', |
|
| 349 | - 'info_annonces_generales' => 'Annonces générales :', |
|
| 350 | - 'info_article_propose' => 'Article proposé', |
|
| 351 | - 'info_article_publie' => 'Article publié', |
|
| 352 | - 'info_article_redaction' => 'Article en cours de rédaction', |
|
| 353 | - 'info_article_refuse' => 'Article refusé', |
|
| 354 | - 'info_article_supprime' => 'Article supprimé', |
|
| 355 | - 'info_articles' => 'Articles', |
|
| 356 | - 'info_articles_a_valider' => 'Les articles à valider', |
|
| 357 | - 'info_articles_nb' => '@nb@ articles', |
|
| 358 | - 'info_articles_proposes' => 'Articles proposés', |
|
| 359 | - 'info_articles_un' => '1 article', |
|
| 360 | - 'info_auteurs_nombre' => 'auteur(s) :', |
|
| 361 | - 'info_authentification_ftp' => 'Authentification (par FTP).', |
|
| 362 | - 'info_breves_2' => 'brèves', |
|
| 363 | - 'info_breves_nb' => '@nb@ brèves', |
|
| 364 | - 'info_breves_un' => '1 brève', |
|
| 365 | - 'info_connexion_refusee' => 'Connexion refusée', |
|
| 366 | - 'info_contact_developpeur' => 'Veuillez contacter un développeur.', |
|
| 367 | - 'info_contenance' => 'Ce site contient :', |
|
| 368 | - 'info_contribution' => 'contributions', |
|
| 369 | - 'info_copyright' => '@spip@ est un logiciel libre distribué @lien_gpl@.', |
|
| 370 | - 'info_copyright_doc' => 'Pour plus d’informations, voir le site <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 371 | - 'info_copyright_gpl' => 'sous licence GPL', |
|
| 372 | - 'info_cours_edition' => 'En cours de modification', |
|
| 373 | - 'info_creer_repertoire' => 'Veuillez créer un fichier ou un répertoire nommé :', |
|
| 374 | - 'info_creer_repertoire_2' => 'à l’intérieur du sous-répertoire <b>@repertoire@</b>, puis :', |
|
| 375 | - 'info_creer_vignette' => 'création automatique de la vignette', |
|
| 376 | - 'info_creerdansrubrique_non_autorise' => 'Vous n’avez pas de droits suffisants pour créer un contenu dans cette rubrique', |
|
| 377 | - 'info_deplier' => 'Déplier', |
|
| 378 | - 'info_descriptif_nombre' => 'descriptif(s) :', |
|
| 379 | - 'info_description' => 'Description :', |
|
| 380 | - 'info_description_2' => 'Description :', |
|
| 381 | - 'info_dimension' => 'Dimensions :', |
|
| 382 | - 'info_documents_nb' => '@nb@ documents', |
|
| 383 | - 'info_documents_un' => '1 document', |
|
| 384 | - 'info_ecire_message_prive' => 'Écrire un message privé', |
|
| 385 | - 'info_email_invalide' => 'Adresse email invalide.', |
|
| 386 | - 'info_en_cours_validation' => 'Vos articles en cours de rédaction', |
|
| 387 | - 'info_en_ligne' => 'Actuellement en ligne :', |
|
| 388 | - 'info_envoyer_message_prive' => 'Envoyer un message privé à cet auteur', |
|
| 389 | - 'info_erreur_requete' => 'Erreur dans la requête :', |
|
| 390 | - 'info_erreur_squelette2' => 'Aucun squelette <b>@fichier@</b> n’est disponible...', |
|
| 391 | - 'info_erreur_systeme' => 'Erreur système (errno @errsys@)', |
|
| 392 | - 'info_erreur_systeme2' => 'Le disque dur est peut-être plein, ou la base de données endommagée.<br /> |
|
| 294 | + // I |
|
| 295 | + 'ical_texte_rss_articles' => 'Le fichier « backend » des articles de ce site se trouve à l’adresse :', |
|
| 296 | + 'ical_texte_rss_articles2' => 'Vous pouvez également obtenir des fichiers « backend » pour les articles de chaque rubrique du site :', |
|
| 297 | + 'ical_texte_rss_breves' => 'Il existe de plus un fichier contenant les brèves du site. En précisant un numéro de rubrique, vous obtiendrez uniquement les brèves de cette rubrique.', |
|
| 298 | + 'icone_a_suivre' => 'À suivre', |
|
| 299 | + 'icone_admin_site' => 'Administration du site', |
|
| 300 | + 'icone_agenda' => 'Agenda', |
|
| 301 | + 'icone_aide_ligne' => 'Aide', |
|
| 302 | + 'icone_articles' => 'Articles', |
|
| 303 | + 'icone_auteurs' => 'Auteurs', |
|
| 304 | + 'icone_brouteur' => 'Navigation rapide', |
|
| 305 | + 'icone_configuration_site' => 'Configuration', |
|
| 306 | + 'icone_configurer_site' => 'Configurer votre site', |
|
| 307 | + 'icone_creer_nouvel_auteur' => 'Créer un nouvel auteur', |
|
| 308 | + 'icone_creer_rubrique' => 'Créer une rubrique', |
|
| 309 | + 'icone_creer_sous_rubrique' => 'Créer une sous-rubrique', |
|
| 310 | + 'icone_deconnecter' => 'Se déconnecter', |
|
| 311 | + 'icone_discussions' => 'Discussions', |
|
| 312 | + 'icone_doc_rubrique' => 'Documents des rubriques', |
|
| 313 | + 'icone_ecrire_article' => 'Écrire un nouvel article', |
|
| 314 | + 'icone_edition_site' => 'Édition', |
|
| 315 | + 'icone_gestion_langues' => 'Gestion des langues', |
|
| 316 | + 'icone_informations_personnelles' => 'Informations personnelles', |
|
| 317 | + 'icone_interface_complet' => 'interface complète', |
|
| 318 | + 'icone_interface_simple' => 'Interface simplifiée', |
|
| 319 | + 'icone_maintenance_site' => 'Maintenance du site', |
|
| 320 | + 'icone_messagerie_personnelle' => 'Messagerie personnelle', |
|
| 321 | + 'icone_repartition_debut' => 'Afficher la répartition depuis le début', |
|
| 322 | + 'icone_rubriques' => 'Rubriques', |
|
| 323 | + 'icone_sauver_site' => 'Sauvegarde du site', |
|
| 324 | + 'icone_site_entier' => 'Tout le site', |
|
| 325 | + 'icone_sites_references' => 'Sites référencés', |
|
| 326 | + 'icone_statistiques' => 'Statistiques du site', |
|
| 327 | + 'icone_suivi_activite' => 'Suivre la vie du site', |
|
| 328 | + 'icone_suivi_actualite' => 'Évolution du site', |
|
| 329 | + 'icone_suivi_pettions' => 'Suivre/gérer les pétitions', |
|
| 330 | + 'icone_suivi_revisions' => 'Modifications des articles', |
|
| 331 | + 'icone_supprimer_document' => 'Supprimer ce document', |
|
| 332 | + 'icone_supprimer_image' => 'Supprimer cette image', |
|
| 333 | + 'icone_tous_articles' => 'Tous vos articles', |
|
| 334 | + 'icone_tous_auteur' => 'Tous les auteurs', |
|
| 335 | + 'icone_tous_visiteur' => 'Tous les visiteurs', |
|
| 336 | + 'icone_visiter_site' => 'Voir le site public', |
|
| 337 | + 'icone_voir_en_ligne' => 'Voir en ligne', |
|
| 338 | + 'img_indisponible' => 'image indisponible', |
|
| 339 | + 'impossible' => 'impossible', |
|
| 340 | + 'info_a_suivre' => 'À SUIVRE »', |
|
| 341 | + 'info_acces_interdit' => 'Accès interdit', |
|
| 342 | + 'info_acces_refuse' => 'Accès refusé', |
|
| 343 | + 'info_action' => 'Action : @action@', |
|
| 344 | + 'info_administrer_rubriques' => 'Vous pouvez administrer cette rubrique et ses sous-rubriques', |
|
| 345 | + 'info_adresse_non_indiquee' => 'Vous n’avez pas indiqué d’adresse à tester !', |
|
| 346 | + 'info_aide' => 'AIDE :', |
|
| 347 | + 'info_ajouter_mot' => 'Ajouter ce mot', |
|
| 348 | + 'info_annonce' => 'ANNONCE', |
|
| 349 | + 'info_annonces_generales' => 'Annonces générales :', |
|
| 350 | + 'info_article_propose' => 'Article proposé', |
|
| 351 | + 'info_article_publie' => 'Article publié', |
|
| 352 | + 'info_article_redaction' => 'Article en cours de rédaction', |
|
| 353 | + 'info_article_refuse' => 'Article refusé', |
|
| 354 | + 'info_article_supprime' => 'Article supprimé', |
|
| 355 | + 'info_articles' => 'Articles', |
|
| 356 | + 'info_articles_a_valider' => 'Les articles à valider', |
|
| 357 | + 'info_articles_nb' => '@nb@ articles', |
|
| 358 | + 'info_articles_proposes' => 'Articles proposés', |
|
| 359 | + 'info_articles_un' => '1 article', |
|
| 360 | + 'info_auteurs_nombre' => 'auteur(s) :', |
|
| 361 | + 'info_authentification_ftp' => 'Authentification (par FTP).', |
|
| 362 | + 'info_breves_2' => 'brèves', |
|
| 363 | + 'info_breves_nb' => '@nb@ brèves', |
|
| 364 | + 'info_breves_un' => '1 brève', |
|
| 365 | + 'info_connexion_refusee' => 'Connexion refusée', |
|
| 366 | + 'info_contact_developpeur' => 'Veuillez contacter un développeur.', |
|
| 367 | + 'info_contenance' => 'Ce site contient :', |
|
| 368 | + 'info_contribution' => 'contributions', |
|
| 369 | + 'info_copyright' => '@spip@ est un logiciel libre distribué @lien_gpl@.', |
|
| 370 | + 'info_copyright_doc' => 'Pour plus d’informations, voir le site <a href="@spipnet@">@spipnet_affiche@</a>.', |
|
| 371 | + 'info_copyright_gpl' => 'sous licence GPL', |
|
| 372 | + 'info_cours_edition' => 'En cours de modification', |
|
| 373 | + 'info_creer_repertoire' => 'Veuillez créer un fichier ou un répertoire nommé :', |
|
| 374 | + 'info_creer_repertoire_2' => 'à l’intérieur du sous-répertoire <b>@repertoire@</b>, puis :', |
|
| 375 | + 'info_creer_vignette' => 'création automatique de la vignette', |
|
| 376 | + 'info_creerdansrubrique_non_autorise' => 'Vous n’avez pas de droits suffisants pour créer un contenu dans cette rubrique', |
|
| 377 | + 'info_deplier' => 'Déplier', |
|
| 378 | + 'info_descriptif_nombre' => 'descriptif(s) :', |
|
| 379 | + 'info_description' => 'Description :', |
|
| 380 | + 'info_description_2' => 'Description :', |
|
| 381 | + 'info_dimension' => 'Dimensions :', |
|
| 382 | + 'info_documents_nb' => '@nb@ documents', |
|
| 383 | + 'info_documents_un' => '1 document', |
|
| 384 | + 'info_ecire_message_prive' => 'Écrire un message privé', |
|
| 385 | + 'info_email_invalide' => 'Adresse email invalide.', |
|
| 386 | + 'info_en_cours_validation' => 'Vos articles en cours de rédaction', |
|
| 387 | + 'info_en_ligne' => 'Actuellement en ligne :', |
|
| 388 | + 'info_envoyer_message_prive' => 'Envoyer un message privé à cet auteur', |
|
| 389 | + 'info_erreur_requete' => 'Erreur dans la requête :', |
|
| 390 | + 'info_erreur_squelette2' => 'Aucun squelette <b>@fichier@</b> n’est disponible...', |
|
| 391 | + 'info_erreur_systeme' => 'Erreur système (errno @errsys@)', |
|
| 392 | + 'info_erreur_systeme2' => 'Le disque dur est peut-être plein, ou la base de données endommagée.<br /> |
|
| 393 | 393 | <span style="color:red;">Essayez de <a href=\'@script@\'>réparer la base</a>, ou contactez votre hébergeur.</span>', |
| 394 | - 'info_fini' => 'C’est fini !', |
|
| 395 | - 'info_format_image' => 'Formats d’images pouvant être utilisées pour créer des vignettes : @gd_formats@.', |
|
| 396 | - 'info_format_non_defini' => 'format non défini', |
|
| 397 | - 'info_grand_ecran' => 'Grand écran', |
|
| 398 | - 'info_image_aide' => 'AIDE', |
|
| 399 | - 'info_image_process_titre' => 'Méthode de fabrication des vignettes', |
|
| 400 | - 'info_impossible_lire_page' => '<b>Erreur !</b> Impossible de lire la page <tt><html>@test_proxy@</html></tt> à travers le proxy ', |
|
| 401 | - 'info_installation_systeme_publication' => 'Installation du système de publication...', |
|
| 402 | - 'info_installer_documents' => 'Vous pouvez installer automatiquement tous les documents contenus dans le dossier @upload@.', |
|
| 403 | - 'info_installer_ftp' => 'En tant qu’administrateur, vous pouvez installer (par FTP) des fichiers dans le dossier @upload@ pour ensuite les sélectionner directement ici.', |
|
| 404 | - 'info_installer_images' => 'Vous pouvez installer des images aux formats JPEG, GIF et PNG.', |
|
| 405 | - 'info_installer_images_dossier' => 'Installer des images dans le dossier @upload@ pour pouvoir les sélectionner ici.', |
|
| 406 | - 'info_interface_complete' => 'interface complète', |
|
| 407 | - 'info_interface_simple' => 'Interface simplifiée', |
|
| 408 | - 'info_joindre_document_article' => 'Vous pouvez joindre à cet article des documents de type', |
|
| 409 | - 'info_joindre_document_rubrique' => 'Vous pouvez ajouter dans cette rubrique des documents de type', |
|
| 410 | - 'info_joindre_documents_article' => 'Vous pouvez joindre à votre article des documents de type :', |
|
| 411 | - 'info_l_article' => 'l’article', |
|
| 412 | - 'info_la_breve' => 'la brève', |
|
| 413 | - 'info_la_rubrique' => 'la rubrique', |
|
| 414 | - 'info_langue_principale' => 'Langue principale du site', |
|
| 415 | - 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels', |
|
| 416 | - 'info_les_auteurs_1' => 'par @les_auteurs@', |
|
| 417 | - 'info_logo_format_interdit' => 'Seuls les logos aux formats @formats@ sont autorisés.', |
|
| 418 | - 'info_logo_max_poids' => 'Les logos doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).', |
|
| 419 | - 'info_mail_fournisseur' => '[email protected]', |
|
| 420 | - 'info_message_2' => 'MESSAGE', |
|
| 421 | - 'info_message_supprime' => 'MESSAGE SUPPRIMÉ', |
|
| 422 | - 'info_messages_nb' => '@nb@ messages', |
|
| 423 | - 'info_messages_un' => '1 message', |
|
| 424 | - 'info_mise_en_ligne' => 'Date de mise en ligne :', |
|
| 425 | - 'info_modification_parametres_securite' => 'modifications des paramètres de sécurité', |
|
| 426 | - 'info_mois_courant' => 'Dans le courant du mois :', |
|
| 427 | - 'info_mot_cle_ajoute' => 'Le mot-clé suivant a été ajouté à', |
|
| 428 | - 'info_multi_herit' => 'Langue par défaut', |
|
| 429 | - 'info_multi_langues_soulignees' => 'Les <u>langues soulignées</u> bénéficient d’une traduction totale ou partielle des textes de l’interface. Si vous sélectionnez ces langues, de nombreux éléments du site public (dates, formulaires) seront automatiquement traduits. Pour les langues non soulignées, ces éléments apparaîtront dans la langue principale du site.', |
|
| 430 | - 'info_multilinguisme' => 'Multilinguisme', |
|
| 431 | - 'info_nom_non_utilisateurs_connectes' => 'Votre nom n’apparaît pas dans la liste des utilisateurs connectés.', |
|
| 432 | - 'info_nom_utilisateurs_connectes' => 'Votre nom apparaît dans la liste des utilisateurs connectés.', |
|
| 433 | - 'info_nombre_en_ligne' => 'Actuellement en ligne :', |
|
| 434 | - 'info_non_resultat' => 'Aucun résultat pour "@cherche_mot@"', |
|
| 435 | - 'info_non_utilisation_messagerie' => 'Vous n’utilisez pas la messagerie interne de ce site.', |
|
| 436 | - 'info_nouveau_message' => 'VOUS AVEZ UN NOUVEAU MESSAGE', |
|
| 437 | - 'info_nouveaux_messages' => 'VOUS AVEZ @total_messages@ NOUVEAUX MESSAGES', |
|
| 438 | - 'info_numero_abbreviation' => 'N° ', |
|
| 439 | - 'info_obligatoire' => 'Cette information est obligatoire', |
|
| 440 | - 'info_page_actuelle' => 'Page actuelle', |
|
| 441 | - 'info_pense_bete' => 'PENSE-BÊTE', |
|
| 442 | - 'info_petit_ecran' => 'Petit écran', |
|
| 443 | - 'info_petition_close' => 'Pétition close', |
|
| 444 | - 'info_pixels' => 'pixels', |
|
| 445 | - 'info_plusieurs_mots_trouves' => 'Plusieurs mots-clés trouvés pour "@cherche_mot@" :', |
|
| 446 | - 'info_portfolio_automatique' => 'Portfolio automatique :', |
|
| 447 | - 'info_premier_resultat' => '[@debut_limit@ premiers résultats sur @total@]', |
|
| 448 | - 'info_premier_resultat_sur' => '[@debut_limit@ premiers résultats sur @total@]', |
|
| 449 | - 'info_propose_1' => '[@nom_site_spip@] Propose : @titre@', |
|
| 450 | - 'info_propose_2' => 'Article proposé |
|
| 394 | + 'info_fini' => 'C’est fini !', |
|
| 395 | + 'info_format_image' => 'Formats d’images pouvant être utilisées pour créer des vignettes : @gd_formats@.', |
|
| 396 | + 'info_format_non_defini' => 'format non défini', |
|
| 397 | + 'info_grand_ecran' => 'Grand écran', |
|
| 398 | + 'info_image_aide' => 'AIDE', |
|
| 399 | + 'info_image_process_titre' => 'Méthode de fabrication des vignettes', |
|
| 400 | + 'info_impossible_lire_page' => '<b>Erreur !</b> Impossible de lire la page <tt><html>@test_proxy@</html></tt> à travers le proxy ', |
|
| 401 | + 'info_installation_systeme_publication' => 'Installation du système de publication...', |
|
| 402 | + 'info_installer_documents' => 'Vous pouvez installer automatiquement tous les documents contenus dans le dossier @upload@.', |
|
| 403 | + 'info_installer_ftp' => 'En tant qu’administrateur, vous pouvez installer (par FTP) des fichiers dans le dossier @upload@ pour ensuite les sélectionner directement ici.', |
|
| 404 | + 'info_installer_images' => 'Vous pouvez installer des images aux formats JPEG, GIF et PNG.', |
|
| 405 | + 'info_installer_images_dossier' => 'Installer des images dans le dossier @upload@ pour pouvoir les sélectionner ici.', |
|
| 406 | + 'info_interface_complete' => 'interface complète', |
|
| 407 | + 'info_interface_simple' => 'Interface simplifiée', |
|
| 408 | + 'info_joindre_document_article' => 'Vous pouvez joindre à cet article des documents de type', |
|
| 409 | + 'info_joindre_document_rubrique' => 'Vous pouvez ajouter dans cette rubrique des documents de type', |
|
| 410 | + 'info_joindre_documents_article' => 'Vous pouvez joindre à votre article des documents de type :', |
|
| 411 | + 'info_l_article' => 'l’article', |
|
| 412 | + 'info_la_breve' => 'la brève', |
|
| 413 | + 'info_la_rubrique' => 'la rubrique', |
|
| 414 | + 'info_langue_principale' => 'Langue principale du site', |
|
| 415 | + 'info_largeur_vignette' => '@largeur_vignette@ × @hauteur_vignette@ pixels', |
|
| 416 | + 'info_les_auteurs_1' => 'par @les_auteurs@', |
|
| 417 | + 'info_logo_format_interdit' => 'Seuls les logos aux formats @formats@ sont autorisés.', |
|
| 418 | + 'info_logo_max_poids' => 'Les logos doivent obligatoirement faire moins de @maxi@ (ce fichier fait @actuel@).', |
|
| 419 | + 'info_mail_fournisseur' => '[email protected]', |
|
| 420 | + 'info_message_2' => 'MESSAGE', |
|
| 421 | + 'info_message_supprime' => 'MESSAGE SUPPRIMÉ', |
|
| 422 | + 'info_messages_nb' => '@nb@ messages', |
|
| 423 | + 'info_messages_un' => '1 message', |
|
| 424 | + 'info_mise_en_ligne' => 'Date de mise en ligne :', |
|
| 425 | + 'info_modification_parametres_securite' => 'modifications des paramètres de sécurité', |
|
| 426 | + 'info_mois_courant' => 'Dans le courant du mois :', |
|
| 427 | + 'info_mot_cle_ajoute' => 'Le mot-clé suivant a été ajouté à', |
|
| 428 | + 'info_multi_herit' => 'Langue par défaut', |
|
| 429 | + 'info_multi_langues_soulignees' => 'Les <u>langues soulignées</u> bénéficient d’une traduction totale ou partielle des textes de l’interface. Si vous sélectionnez ces langues, de nombreux éléments du site public (dates, formulaires) seront automatiquement traduits. Pour les langues non soulignées, ces éléments apparaîtront dans la langue principale du site.', |
|
| 430 | + 'info_multilinguisme' => 'Multilinguisme', |
|
| 431 | + 'info_nom_non_utilisateurs_connectes' => 'Votre nom n’apparaît pas dans la liste des utilisateurs connectés.', |
|
| 432 | + 'info_nom_utilisateurs_connectes' => 'Votre nom apparaît dans la liste des utilisateurs connectés.', |
|
| 433 | + 'info_nombre_en_ligne' => 'Actuellement en ligne :', |
|
| 434 | + 'info_non_resultat' => 'Aucun résultat pour "@cherche_mot@"', |
|
| 435 | + 'info_non_utilisation_messagerie' => 'Vous n’utilisez pas la messagerie interne de ce site.', |
|
| 436 | + 'info_nouveau_message' => 'VOUS AVEZ UN NOUVEAU MESSAGE', |
|
| 437 | + 'info_nouveaux_messages' => 'VOUS AVEZ @total_messages@ NOUVEAUX MESSAGES', |
|
| 438 | + 'info_numero_abbreviation' => 'N° ', |
|
| 439 | + 'info_obligatoire' => 'Cette information est obligatoire', |
|
| 440 | + 'info_page_actuelle' => 'Page actuelle', |
|
| 441 | + 'info_pense_bete' => 'PENSE-BÊTE', |
|
| 442 | + 'info_petit_ecran' => 'Petit écran', |
|
| 443 | + 'info_petition_close' => 'Pétition close', |
|
| 444 | + 'info_pixels' => 'pixels', |
|
| 445 | + 'info_plusieurs_mots_trouves' => 'Plusieurs mots-clés trouvés pour "@cherche_mot@" :', |
|
| 446 | + 'info_portfolio_automatique' => 'Portfolio automatique :', |
|
| 447 | + 'info_premier_resultat' => '[@debut_limit@ premiers résultats sur @total@]', |
|
| 448 | + 'info_premier_resultat_sur' => '[@debut_limit@ premiers résultats sur @total@]', |
|
| 449 | + 'info_propose_1' => '[@nom_site_spip@] Propose : @titre@', |
|
| 450 | + 'info_propose_2' => 'Article proposé |
|
| 451 | 451 | ---------------', |
| 452 | - 'info_propose_3' => 'L’article "@titre@" est proposé à la publication.', |
|
| 453 | - 'info_propose_4' => 'Vous êtes invité à venir le consulter et à donner votre opinion', |
|
| 454 | - 'info_propose_5' => 'dans le forum qui lui est attaché. Il est disponible à l’adresse :', |
|
| 455 | - 'info_publie_01' => 'L’article "@titre@" a été validé par @connect_nom@.', |
|
| 456 | - 'info_publie_1' => '[@nom_site_spip@] PUBLIE : @titre@', |
|
| 457 | - 'info_publie_2' => 'Article publié |
|
| 452 | + 'info_propose_3' => 'L’article "@titre@" est proposé à la publication.', |
|
| 453 | + 'info_propose_4' => 'Vous êtes invité à venir le consulter et à donner votre opinion', |
|
| 454 | + 'info_propose_5' => 'dans le forum qui lui est attaché. Il est disponible à l’adresse :', |
|
| 455 | + 'info_publie_01' => 'L’article "@titre@" a été validé par @connect_nom@.', |
|
| 456 | + 'info_publie_1' => '[@nom_site_spip@] PUBLIE : @titre@', |
|
| 457 | + 'info_publie_2' => 'Article publié |
|
| 458 | 458 | --------------', |
| 459 | - 'info_rechercher' => 'Rechercher', |
|
| 460 | - 'info_rechercher_02' => 'Rechercher :', |
|
| 461 | - 'info_remplacer_vignette' => 'Remplacer la vignette par défaut par un logo personnalisé :', |
|
| 462 | - 'info_rubriques_nb' => '@nb@ rubriques', |
|
| 463 | - 'info_rubriques_un' => '1 rubrique', |
|
| 464 | - 'info_sans_titre_2' => 'sans titre', |
|
| 465 | - 'info_selectionner_fichier' => 'Vous pouvez sélectionner un fichier du dossier @upload@', |
|
| 466 | - 'info_selectionner_fichier_2' => 'Sélectionner un fichier :', |
|
| 467 | - 'info_sites_nb' => '@nb@ sites', |
|
| 468 | - 'info_sites_un' => '1 site', |
|
| 469 | - 'info_supprimer_vignette' => 'supprimer la vignette', |
|
| 470 | - 'info_symbole_bleu' => 'Le symbole <b>bleu</b> indique un <b>pense-bête</b> : c’est-à-dire un message à votre usage personnel.', |
|
| 471 | - 'info_symbole_jaune' => 'Le symbole <b>jaune</b> indique une <b>annonce à tous les rédacteurs</b> : modifiable par tous les administrateurs, et visible par tous les rédacteurs.', |
|
| 472 | - 'info_symbole_vert' => 'Le symbole <b>vert</b> indique les <b>messages échangés avec d’autres utilisateurs</b> du site.', |
|
| 473 | - 'info_telecharger_nouveau_logo' => 'Télécharger un nouveau logo :', |
|
| 474 | - 'info_telecharger_ordinateur' => 'Télécharger depuis votre ordinateur :', |
|
| 475 | - 'info_tous_resultats_enregistres' => '[tous les résultats sont enregistrés]', |
|
| 476 | - 'info_tout_afficher' => 'Tout afficher', |
|
| 477 | - 'info_travaux_texte' => 'Ce site n’est pas encore configuré. Revenez plus tard...', |
|
| 478 | - 'info_travaux_titre' => 'Site en travaux', |
|
| 479 | - 'info_trop_resultat' => 'Trop de résultats pour "@cherche_mot@" ; veuillez affiner la recherche.', |
|
| 480 | - 'info_utilisation_messagerie_interne' => 'Vous utilisez la messagerie interne de ce site.', |
|
| 481 | - 'info_valider_lien' => 'valider ce lien', |
|
| 482 | - 'info_verifier_image' => ', veuillez vérifier que vos images ont été transférées correctement.', |
|
| 483 | - 'info_vignette_defaut' => 'Vignette par défaut', |
|
| 484 | - 'info_vignette_personnalisee' => 'Vignette personnalisée', |
|
| 485 | - 'info_visite' => 'visite :', |
|
| 486 | - 'info_vos_rendez_vous' => 'Vos rendez-vous à venir', |
|
| 487 | - 'infos_vos_pense_bete' => 'Vos pense-bêtes', |
|
| 459 | + 'info_rechercher' => 'Rechercher', |
|
| 460 | + 'info_rechercher_02' => 'Rechercher :', |
|
| 461 | + 'info_remplacer_vignette' => 'Remplacer la vignette par défaut par un logo personnalisé :', |
|
| 462 | + 'info_rubriques_nb' => '@nb@ rubriques', |
|
| 463 | + 'info_rubriques_un' => '1 rubrique', |
|
| 464 | + 'info_sans_titre_2' => 'sans titre', |
|
| 465 | + 'info_selectionner_fichier' => 'Vous pouvez sélectionner un fichier du dossier @upload@', |
|
| 466 | + 'info_selectionner_fichier_2' => 'Sélectionner un fichier :', |
|
| 467 | + 'info_sites_nb' => '@nb@ sites', |
|
| 468 | + 'info_sites_un' => '1 site', |
|
| 469 | + 'info_supprimer_vignette' => 'supprimer la vignette', |
|
| 470 | + 'info_symbole_bleu' => 'Le symbole <b>bleu</b> indique un <b>pense-bête</b> : c’est-à-dire un message à votre usage personnel.', |
|
| 471 | + 'info_symbole_jaune' => 'Le symbole <b>jaune</b> indique une <b>annonce à tous les rédacteurs</b> : modifiable par tous les administrateurs, et visible par tous les rédacteurs.', |
|
| 472 | + 'info_symbole_vert' => 'Le symbole <b>vert</b> indique les <b>messages échangés avec d’autres utilisateurs</b> du site.', |
|
| 473 | + 'info_telecharger_nouveau_logo' => 'Télécharger un nouveau logo :', |
|
| 474 | + 'info_telecharger_ordinateur' => 'Télécharger depuis votre ordinateur :', |
|
| 475 | + 'info_tous_resultats_enregistres' => '[tous les résultats sont enregistrés]', |
|
| 476 | + 'info_tout_afficher' => 'Tout afficher', |
|
| 477 | + 'info_travaux_texte' => 'Ce site n’est pas encore configuré. Revenez plus tard...', |
|
| 478 | + 'info_travaux_titre' => 'Site en travaux', |
|
| 479 | + 'info_trop_resultat' => 'Trop de résultats pour "@cherche_mot@" ; veuillez affiner la recherche.', |
|
| 480 | + 'info_utilisation_messagerie_interne' => 'Vous utilisez la messagerie interne de ce site.', |
|
| 481 | + 'info_valider_lien' => 'valider ce lien', |
|
| 482 | + 'info_verifier_image' => ', veuillez vérifier que vos images ont été transférées correctement.', |
|
| 483 | + 'info_vignette_defaut' => 'Vignette par défaut', |
|
| 484 | + 'info_vignette_personnalisee' => 'Vignette personnalisée', |
|
| 485 | + 'info_visite' => 'visite :', |
|
| 486 | + 'info_vos_rendez_vous' => 'Vos rendez-vous à venir', |
|
| 487 | + 'infos_vos_pense_bete' => 'Vos pense-bêtes', |
|
| 488 | 488 | |
| 489 | - // L |
|
| 490 | - 'label_ajout_id_rapide' => 'Ajout rapide', |
|
| 491 | - 'label_poids_fichier' => 'Taille', |
|
| 492 | - 'lien_afficher_icones_seuls' => 'Afficher uniquement les icones', |
|
| 493 | - 'lien_afficher_texte_icones' => 'Afficher les icones et le texte', |
|
| 494 | - 'lien_afficher_texte_seul' => 'Afficher uniquement le texte', |
|
| 495 | - 'lien_aller_a_la_derniere_page' => 'Aller à la dernière page', |
|
| 496 | - 'lien_aller_a_la_page_nb' => 'Aller à la page @nb@', |
|
| 497 | - 'lien_aller_a_la_page_precedente' => 'Aller à la page précédente', |
|
| 498 | - 'lien_aller_a_la_page_suivante' => 'Aller à la page suivante', |
|
| 499 | - 'lien_aller_a_la_premiere_page' => 'Aller à la première page', |
|
| 500 | - 'lien_liberer' => 'libérer', |
|
| 501 | - 'lien_liberer_tous' => 'Tout libérer', |
|
| 502 | - 'lien_nouvea_pense_bete' => 'NOUVEAU PENSE-BÊTE', |
|
| 503 | - 'lien_nouveau_message' => 'NOUVEAU MESSAGE', |
|
| 504 | - 'lien_nouvelle_annonce' => 'NOUVELLE ANNONCE', |
|
| 505 | - 'lien_petitions' => 'PÉTITION', |
|
| 506 | - 'lien_popularite' => 'popularité : @popularite@%', |
|
| 507 | - 'lien_racine_site' => 'RACINE DU SITE', |
|
| 508 | - 'lien_reessayer' => 'réessayer', |
|
| 509 | - 'lien_repondre_message' => 'Répondre à ce message', |
|
| 510 | - 'lien_supprimer' => 'supprimer', |
|
| 511 | - 'lien_tout_afficher' => 'Tout afficher', |
|
| 512 | - 'lien_visite_site' => 'visiter ce site', |
|
| 513 | - 'lien_visites' => '@visites@ visites', |
|
| 514 | - 'lien_voir_auteur' => 'Voir cet auteur', |
|
| 515 | - 'ligne' => 'Ligne', |
|
| 516 | - 'login' => 'Connexion', |
|
| 517 | - 'login_acces_prive' => 'accès à l’espace privé', |
|
| 518 | - 'login_autre_identifiant' => 'se connecter sous un autre identifiant', |
|
| 519 | - 'login_cookie_accepte' => 'Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).', |
|
| 520 | - 'login_cookie_oblige' => 'Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.', |
|
| 521 | - 'login_deconnexion_ok' => 'Déconnexion effectuée.', |
|
| 522 | - 'login_erreur_pass' => 'Erreur de mot de passe.', |
|
| 523 | - 'login_espace_prive' => 'espace privé', |
|
| 524 | - 'login_identifiant_inconnu' => 'L’identifiant « @login@ » est inconnu.', |
|
| 525 | - 'login_login' => 'Login :', |
|
| 526 | - 'login_login2' => 'Login ou adresse email :', |
|
| 527 | - 'login_login_pass_incorrect' => '(Login ou mot de passe incorrect.)', |
|
| 528 | - 'login_motpasseoublie' => 'mot de passe oublié ?', |
|
| 529 | - 'login_non_securise' => 'Attention, ce formulaire n’est pas sécurisé. |
|
| 489 | + // L |
|
| 490 | + 'label_ajout_id_rapide' => 'Ajout rapide', |
|
| 491 | + 'label_poids_fichier' => 'Taille', |
|
| 492 | + 'lien_afficher_icones_seuls' => 'Afficher uniquement les icones', |
|
| 493 | + 'lien_afficher_texte_icones' => 'Afficher les icones et le texte', |
|
| 494 | + 'lien_afficher_texte_seul' => 'Afficher uniquement le texte', |
|
| 495 | + 'lien_aller_a_la_derniere_page' => 'Aller à la dernière page', |
|
| 496 | + 'lien_aller_a_la_page_nb' => 'Aller à la page @nb@', |
|
| 497 | + 'lien_aller_a_la_page_precedente' => 'Aller à la page précédente', |
|
| 498 | + 'lien_aller_a_la_page_suivante' => 'Aller à la page suivante', |
|
| 499 | + 'lien_aller_a_la_premiere_page' => 'Aller à la première page', |
|
| 500 | + 'lien_liberer' => 'libérer', |
|
| 501 | + 'lien_liberer_tous' => 'Tout libérer', |
|
| 502 | + 'lien_nouvea_pense_bete' => 'NOUVEAU PENSE-BÊTE', |
|
| 503 | + 'lien_nouveau_message' => 'NOUVEAU MESSAGE', |
|
| 504 | + 'lien_nouvelle_annonce' => 'NOUVELLE ANNONCE', |
|
| 505 | + 'lien_petitions' => 'PÉTITION', |
|
| 506 | + 'lien_popularite' => 'popularité : @popularite@%', |
|
| 507 | + 'lien_racine_site' => 'RACINE DU SITE', |
|
| 508 | + 'lien_reessayer' => 'réessayer', |
|
| 509 | + 'lien_repondre_message' => 'Répondre à ce message', |
|
| 510 | + 'lien_supprimer' => 'supprimer', |
|
| 511 | + 'lien_tout_afficher' => 'Tout afficher', |
|
| 512 | + 'lien_visite_site' => 'visiter ce site', |
|
| 513 | + 'lien_visites' => '@visites@ visites', |
|
| 514 | + 'lien_voir_auteur' => 'Voir cet auteur', |
|
| 515 | + 'ligne' => 'Ligne', |
|
| 516 | + 'login' => 'Connexion', |
|
| 517 | + 'login_acces_prive' => 'accès à l’espace privé', |
|
| 518 | + 'login_autre_identifiant' => 'se connecter sous un autre identifiant', |
|
| 519 | + 'login_cookie_accepte' => 'Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).', |
|
| 520 | + 'login_cookie_oblige' => 'Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.', |
|
| 521 | + 'login_deconnexion_ok' => 'Déconnexion effectuée.', |
|
| 522 | + 'login_erreur_pass' => 'Erreur de mot de passe.', |
|
| 523 | + 'login_espace_prive' => 'espace privé', |
|
| 524 | + 'login_identifiant_inconnu' => 'L’identifiant « @login@ » est inconnu.', |
|
| 525 | + 'login_login' => 'Login :', |
|
| 526 | + 'login_login2' => 'Login ou adresse email :', |
|
| 527 | + 'login_login_pass_incorrect' => '(Login ou mot de passe incorrect.)', |
|
| 528 | + 'login_motpasseoublie' => 'mot de passe oublié ?', |
|
| 529 | + 'login_non_securise' => 'Attention, ce formulaire n’est pas sécurisé. |
|
| 530 | 530 | Si vous ne voulez pas que votre mot de passe puisse être |
| 531 | 531 | intercepté sur le réseau, veuillez activer Javascript |
| 532 | 532 | dans votre navigateur et', |
| 533 | - 'login_nouvelle_tentative' => 'Nouvelle tentative', |
|
| 534 | - 'login_par_ici' => 'Vous êtes enregistré... par ici...', |
|
| 535 | - 'login_pass2' => 'Mot de passe :', |
|
| 536 | - 'login_preferez_refuser' => '<b>Si vous préférez refuser les cookies</b>, une autre méthode de connexion (moins sécurisée) est à votre disposition :', |
|
| 537 | - 'login_recharger' => 'recharger cette page', |
|
| 538 | - 'login_rester_identifie' => 'Se souvenir de moi', |
|
| 539 | - 'login_retour_public' => 'Retour au site public', |
|
| 540 | - 'login_retour_site' => 'Retour au site public', |
|
| 541 | - 'login_retoursitepublic' => 'retour au site public', |
|
| 542 | - 'login_sans_cookie' => 'Identification sans cookie', |
|
| 543 | - 'login_securise' => 'Login sécurisé', |
|
| 544 | - 'login_sinscrire' => 's’inscrire', |
|
| 545 | - 'login_test_navigateur' => 'test navigateur/reconnexion', |
|
| 546 | - 'login_verifiez_navigateur' => '(Vérifiez toutefois que votre navigateur n’a pas mémorisé votre mot de passe...)', |
|
| 533 | + 'login_nouvelle_tentative' => 'Nouvelle tentative', |
|
| 534 | + 'login_par_ici' => 'Vous êtes enregistré... par ici...', |
|
| 535 | + 'login_pass2' => 'Mot de passe :', |
|
| 536 | + 'login_preferez_refuser' => '<b>Si vous préférez refuser les cookies</b>, une autre méthode de connexion (moins sécurisée) est à votre disposition :', |
|
| 537 | + 'login_recharger' => 'recharger cette page', |
|
| 538 | + 'login_rester_identifie' => 'Se souvenir de moi', |
|
| 539 | + 'login_retour_public' => 'Retour au site public', |
|
| 540 | + 'login_retour_site' => 'Retour au site public', |
|
| 541 | + 'login_retoursitepublic' => 'retour au site public', |
|
| 542 | + 'login_sans_cookie' => 'Identification sans cookie', |
|
| 543 | + 'login_securise' => 'Login sécurisé', |
|
| 544 | + 'login_sinscrire' => 's’inscrire', |
|
| 545 | + 'login_test_navigateur' => 'test navigateur/reconnexion', |
|
| 546 | + 'login_verifiez_navigateur' => '(Vérifiez toutefois que votre navigateur n’a pas mémorisé votre mot de passe...)', |
|
| 547 | 547 | |
| 548 | - // M |
|
| 549 | - 'masquer_colonne' => 'Masquer cette colonne', |
|
| 550 | - 'masquer_trad' => 'masquer les traductions', |
|
| 551 | - 'message_nouveaux_identifiants_echec' => 'Impossible de générer de nouveaux identifiants.', |
|
| 552 | - 'message_nouveaux_identifiants_echec_envoi' => 'Les nouveaux identifiants de connexion n’ont pas pu être envoyés.', |
|
| 553 | - 'message_nouveaux_identifiants_ok' => 'Les nouveaux identifiants de connexion ont été envoyés à @email@.', |
|
| 554 | - 'module_fichiers_langues' => 'Fichiers de langue', |
|
| 548 | + // M |
|
| 549 | + 'masquer_colonne' => 'Masquer cette colonne', |
|
| 550 | + 'masquer_trad' => 'masquer les traductions', |
|
| 551 | + 'message_nouveaux_identifiants_echec' => 'Impossible de générer de nouveaux identifiants.', |
|
| 552 | + 'message_nouveaux_identifiants_echec_envoi' => 'Les nouveaux identifiants de connexion n’ont pas pu être envoyés.', |
|
| 553 | + 'message_nouveaux_identifiants_ok' => 'Les nouveaux identifiants de connexion ont été envoyés à @email@.', |
|
| 554 | + 'module_fichiers_langues' => 'Fichiers de langue', |
|
| 555 | 555 | |
| 556 | - // N |
|
| 557 | - 'navigateur_pas_redirige' => 'Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.', |
|
| 558 | - 'numero' => 'Numéro', |
|
| 556 | + // N |
|
| 557 | + 'navigateur_pas_redirige' => 'Si votre navigateur n’est pas redirigé, cliquez ici pour continuer.', |
|
| 558 | + 'numero' => 'Numéro', |
|
| 559 | 559 | |
| 560 | - // O |
|
| 561 | - 'occurence' => 'Occurrence', |
|
| 562 | - 'onglet_affacer_base' => 'Effacer la base', |
|
| 563 | - 'onglet_auteur' => 'L’auteur', |
|
| 564 | - 'onglet_contenu_site' => 'Contenu du site', |
|
| 565 | - 'onglet_evolution_visite_mod' => 'Évolution', |
|
| 566 | - 'onglet_fonctions_avances' => 'Fonctions avancées', |
|
| 567 | - 'onglet_informations_personnelles' => 'Informations personnelles', |
|
| 568 | - 'onglet_interactivite' => 'Interactivité', |
|
| 569 | - 'onglet_messagerie' => 'Messagerie', |
|
| 570 | - 'onglet_repartition_rubrique' => 'Répartition par rubriques', |
|
| 571 | - 'onglet_save_restaur_base' => 'Sauvegarder/restaurer la base', |
|
| 572 | - 'onglet_vider_cache' => 'Vider le cache', |
|
| 560 | + // O |
|
| 561 | + 'occurence' => 'Occurrence', |
|
| 562 | + 'onglet_affacer_base' => 'Effacer la base', |
|
| 563 | + 'onglet_auteur' => 'L’auteur', |
|
| 564 | + 'onglet_contenu_site' => 'Contenu du site', |
|
| 565 | + 'onglet_evolution_visite_mod' => 'Évolution', |
|
| 566 | + 'onglet_fonctions_avances' => 'Fonctions avancées', |
|
| 567 | + 'onglet_informations_personnelles' => 'Informations personnelles', |
|
| 568 | + 'onglet_interactivite' => 'Interactivité', |
|
| 569 | + 'onglet_messagerie' => 'Messagerie', |
|
| 570 | + 'onglet_repartition_rubrique' => 'Répartition par rubriques', |
|
| 571 | + 'onglet_save_restaur_base' => 'Sauvegarder/restaurer la base', |
|
| 572 | + 'onglet_vider_cache' => 'Vider le cache', |
|
| 573 | 573 | |
| 574 | - // P |
|
| 575 | - 'pass_choix_pass' => 'Veuillez choisir votre nouveau mot de passe :', |
|
| 576 | - 'pass_erreur' => 'Erreur', |
|
| 577 | - 'pass_erreur_acces_refuse' => '<b>Erreur :</b> vous n’avez plus accès à ce site.', |
|
| 578 | - 'pass_erreur_code_inconnu' => '<b>Erreur :</b> ce code ne correspond à aucun des visiteurs ayant accès à ce site.', |
|
| 579 | - 'pass_erreur_non_enregistre' => '<b>Erreur :</b> l’adresse <tt>@email_oubli@</tt> n’est pas enregistrée sur ce site.', |
|
| 580 | - 'pass_erreur_non_valide' => '<b>Erreur :</b> cet email <tt>@email_oubli@</tt> n’est pas valide !', |
|
| 581 | - 'pass_erreur_probleme_technique' => '<b>Erreur :</b> à cause d’un problème technique, l’email ne peut pas être envoyé.', |
|
| 582 | - 'pass_espace_prive_bla' => 'L’espace privé de ce site est ouvert aux |
|
| 574 | + // P |
|
| 575 | + 'pass_choix_pass' => 'Veuillez choisir votre nouveau mot de passe :', |
|
| 576 | + 'pass_erreur' => 'Erreur', |
|
| 577 | + 'pass_erreur_acces_refuse' => '<b>Erreur :</b> vous n’avez plus accès à ce site.', |
|
| 578 | + 'pass_erreur_code_inconnu' => '<b>Erreur :</b> ce code ne correspond à aucun des visiteurs ayant accès à ce site.', |
|
| 579 | + 'pass_erreur_non_enregistre' => '<b>Erreur :</b> l’adresse <tt>@email_oubli@</tt> n’est pas enregistrée sur ce site.', |
|
| 580 | + 'pass_erreur_non_valide' => '<b>Erreur :</b> cet email <tt>@email_oubli@</tt> n’est pas valide !', |
|
| 581 | + 'pass_erreur_probleme_technique' => '<b>Erreur :</b> à cause d’un problème technique, l’email ne peut pas être envoyé.', |
|
| 582 | + 'pass_espace_prive_bla' => 'L’espace privé de ce site est ouvert aux |
|
| 583 | 583 | visiteurs, après inscription. Une fois enregistré, |
| 584 | 584 | vous pourrez consulter les articles en cours de rédaction, |
| 585 | 585 | proposer des articles et participer à tous les forums.', |
| 586 | - 'pass_forum_bla' => 'Vous avez demandé à intervenir sur un forum |
|
| 586 | + 'pass_forum_bla' => 'Vous avez demandé à intervenir sur un forum |
|
| 587 | 587 | réservé aux visiteurs enregistrés.', |
| 588 | - 'pass_indiquez_cidessous' => 'Indiquez ci-dessous l’adresse email sous laquelle vous |
|
| 588 | + 'pass_indiquez_cidessous' => 'Indiquez ci-dessous l’adresse email sous laquelle vous |
|
| 589 | 589 | vous êtes précédemment enregistré. Vous |
| 590 | 590 | recevrez un email vous indiquant la marche à suivre pour |
| 591 | 591 | récupérer votre accès.', |
| 592 | - 'pass_mail_passcookie' => '(ceci est un message automatique) |
|
| 592 | + 'pass_mail_passcookie' => '(ceci est un message automatique) |
|
| 593 | 593 | Pour retrouver votre accès au site |
| 594 | 594 | @nom_site_spip@ (@adresse_site@) |
| 595 | 595 | |
@@ -601,146 +601,146 @@ discard block |
||
| 601 | 601 | et vous reconnecter au site. |
| 602 | 602 | |
| 603 | 603 | ', |
| 604 | - 'pass_mot_oublie' => 'Mot de passe oublié', |
|
| 605 | - 'pass_nouveau_enregistre' => 'Votre nouveau mot de passe a été enregistré.', |
|
| 606 | - 'pass_nouveau_pass' => 'Nouveau mot de passe', |
|
| 607 | - 'pass_ok' => 'OK', |
|
| 608 | - 'pass_oubli_mot' => 'Oubli du mot de passe', |
|
| 609 | - 'pass_procedure_changer' => 'Pour modifier votre mot de passe, merci d’indiquer l’adresse email associée à votre compte.', |
|
| 610 | - 'pass_quitter_fenetre' => 'Quitter cette fenêtre', |
|
| 611 | - 'pass_rappel_login' => 'Rappel : votre identifiant (login) est « @login@ ».', |
|
| 612 | - 'pass_recevoir_mail' => 'Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide).', |
|
| 613 | - 'pass_retour_public' => 'Retour sur le site public', |
|
| 614 | - 'pass_rien_a_faire_ici' => 'Rien à faire ici.', |
|
| 615 | - 'pass_vousinscrire' => 'Vous inscrire sur ce site', |
|
| 616 | - 'precedent' => 'précédent', |
|
| 617 | - 'previsualisation' => 'Prévisualisation', |
|
| 618 | - 'previsualiser' => 'Prévisualiser', |
|
| 604 | + 'pass_mot_oublie' => 'Mot de passe oublié', |
|
| 605 | + 'pass_nouveau_enregistre' => 'Votre nouveau mot de passe a été enregistré.', |
|
| 606 | + 'pass_nouveau_pass' => 'Nouveau mot de passe', |
|
| 607 | + 'pass_ok' => 'OK', |
|
| 608 | + 'pass_oubli_mot' => 'Oubli du mot de passe', |
|
| 609 | + 'pass_procedure_changer' => 'Pour modifier votre mot de passe, merci d’indiquer l’adresse email associée à votre compte.', |
|
| 610 | + 'pass_quitter_fenetre' => 'Quitter cette fenêtre', |
|
| 611 | + 'pass_rappel_login' => 'Rappel : votre identifiant (login) est « @login@ ».', |
|
| 612 | + 'pass_recevoir_mail' => 'Un lien de réinitialisation de votre mot de passe vous a été envoyé sur votre adresse email (si celle-ci est valide).', |
|
| 613 | + 'pass_retour_public' => 'Retour sur le site public', |
|
| 614 | + 'pass_rien_a_faire_ici' => 'Rien à faire ici.', |
|
| 615 | + 'pass_vousinscrire' => 'Vous inscrire sur ce site', |
|
| 616 | + 'precedent' => 'précédent', |
|
| 617 | + 'previsualisation' => 'Prévisualisation', |
|
| 618 | + 'previsualiser' => 'Prévisualiser', |
|
| 619 | 619 | |
| 620 | - // R |
|
| 621 | - 'retour' => 'Retour', |
|
| 620 | + // R |
|
| 621 | + 'retour' => 'Retour', |
|
| 622 | 622 | |
| 623 | - // S |
|
| 624 | - 'spip_conforme_dtd' => 'SPIP considère ce document comme conforme à son DOCTYPE :', |
|
| 625 | - 'squelette' => 'squelette', |
|
| 626 | - 'squelette_inclus_ligne' => 'squelette inclus, ligne', |
|
| 627 | - 'squelette_ligne' => 'squelette, ligne', |
|
| 628 | - 'stats_visites_et_popularite' => '@visites@ visites ; popularité : @popularite@', |
|
| 629 | - 'suivant' => 'suivant', |
|
| 623 | + // S |
|
| 624 | + 'spip_conforme_dtd' => 'SPIP considère ce document comme conforme à son DOCTYPE :', |
|
| 625 | + 'squelette' => 'squelette', |
|
| 626 | + 'squelette_inclus_ligne' => 'squelette inclus, ligne', |
|
| 627 | + 'squelette_ligne' => 'squelette, ligne', |
|
| 628 | + 'stats_visites_et_popularite' => '@visites@ visites ; popularité : @popularite@', |
|
| 629 | + 'suivant' => 'suivant', |
|
| 630 | 630 | |
| 631 | - // T |
|
| 632 | - 'taille_go' => '@taille@ Go', |
|
| 633 | - 'taille_ko' => '@taille@ ko', |
|
| 634 | - 'taille_mo' => '@taille@ Mo', |
|
| 635 | - 'taille_octets' => '@taille@ octets', |
|
| 636 | - 'texte_actualite_site_1' => 'Quand vous serez familiarisé(e) avec l’interface, vous pourrez cliquer sur « ', |
|
| 637 | - 'texte_actualite_site_2' => 'interface complète', |
|
| 638 | - 'texte_actualite_site_3' => ' » pour ouvrir plus de possibilités.', |
|
| 639 | - 'texte_creation_automatique_vignette' => 'La création automatique de vignettes de prévisualisation est activée sur ce site. Si vous installez à partir de ce formulaire des images au(x) format(s) @gd_formats@, elles seront accompagnées d’une vignette d’une taille maximale de @taille_preview@ pixels.', |
|
| 640 | - 'texte_documents_associes' => 'Les documents suivants sont associés à l’article, |
|
| 631 | + // T |
|
| 632 | + 'taille_go' => '@taille@ Go', |
|
| 633 | + 'taille_ko' => '@taille@ ko', |
|
| 634 | + 'taille_mo' => '@taille@ Mo', |
|
| 635 | + 'taille_octets' => '@taille@ octets', |
|
| 636 | + 'texte_actualite_site_1' => 'Quand vous serez familiarisé(e) avec l’interface, vous pourrez cliquer sur « ', |
|
| 637 | + 'texte_actualite_site_2' => 'interface complète', |
|
| 638 | + 'texte_actualite_site_3' => ' » pour ouvrir plus de possibilités.', |
|
| 639 | + 'texte_creation_automatique_vignette' => 'La création automatique de vignettes de prévisualisation est activée sur ce site. Si vous installez à partir de ce formulaire des images au(x) format(s) @gd_formats@, elles seront accompagnées d’une vignette d’une taille maximale de @taille_preview@ pixels.', |
|
| 640 | + 'texte_documents_associes' => 'Les documents suivants sont associés à l’article, |
|
| 641 | 641 | mais ils n’y ont pas été directement |
| 642 | 642 | insérés. Selon la mise en page du site public, |
| 643 | 643 | ils pourront apparaître sous forme de documents joints.', |
| 644 | - 'texte_erreur_mise_niveau_base' => 'Erreur de base de données lors de la mise à niveau. |
|
| 644 | + 'texte_erreur_mise_niveau_base' => 'Erreur de base de données lors de la mise à niveau. |
|
| 645 | 645 | L’image <b>@fichier@</b> n’est pas passée (article @id_article@). |
| 646 | 646 | Notez bien cette référence, réessayez la mise à |
| 647 | 647 | niveau, et enfin vérifiez que les images apparaissent |
| 648 | 648 | toujours dans les articles.', |
| 649 | - 'texte_erreur_visiteur' => 'Vous avez tenté d’accéder à l’espace privé avec un login qui ne le permet pas.', |
|
| 650 | - 'texte_inc_auth_1' => 'Vous êtes identifié sous le |
|
| 649 | + 'texte_erreur_visiteur' => 'Vous avez tenté d’accéder à l’espace privé avec un login qui ne le permet pas.', |
|
| 650 | + 'texte_inc_auth_1' => 'Vous êtes identifié sous le |
|
| 651 | 651 | login <b>@auth_login@</b>, mais celui-ci n’existe pas/plus dans la base. |
| 652 | 652 | Essayez de vous', |
| 653 | - 'texte_inc_auth_2' => 'reconnecter', |
|
| 654 | - 'texte_inc_auth_3' => ', après avoir éventuellement quitté puis |
|
| 653 | + 'texte_inc_auth_2' => 'reconnecter', |
|
| 654 | + 'texte_inc_auth_3' => ', après avoir éventuellement quitté puis |
|
| 655 | 655 | redémarré votre navigateur.', |
| 656 | - 'texte_inc_config' => 'Les modifications effectuées dans ces pages influent notablement sur le |
|
| 656 | + 'texte_inc_config' => 'Les modifications effectuées dans ces pages influent notablement sur le |
|
| 657 | 657 | fonctionnement de votre site. Nous vous recommandons de ne pas y intervenir tant que vous n’êtes pas |
| 658 | 658 | familier du fonctionnement du système SPIP. <br /><br /><b>Plus |
| 659 | 659 | généralement, il est fortement conseillé |
| 660 | 660 | de laisser la charge de ces pages au webmestre principal de votre site.</b>', |
| 661 | - 'texte_inc_meta_1' => 'Le système a rencontré une erreur lors de l’écriture du fichier <code>@fichier@</code>. Veuillez, en tant qu’administrateur du site,', |
|
| 662 | - 'texte_inc_meta_2' => 'vérifier les droits d’écriture', |
|
| 663 | - 'texte_inc_meta_3' => 'sur le répertoire <code>@repertoire@</code>.', |
|
| 664 | - 'texte_statut_en_cours_redaction' => 'en cours de rédaction', |
|
| 665 | - 'texte_statut_poubelle' => 'à la poubelle', |
|
| 666 | - 'texte_statut_propose_evaluation' => 'proposé à l’évaluation', |
|
| 667 | - 'texte_statut_publie' => 'publié en ligne', |
|
| 668 | - 'texte_statut_refuse' => 'refusé', |
|
| 669 | - 'titre_ajouter_mot_cle' => 'AJOUTER UN MOT-CLÉ :', |
|
| 670 | - 'titre_cadre_raccourcis' => 'RACCOURCIS :', |
|
| 671 | - 'titre_changer_couleur_interface' => 'Changer la couleur de l’interface', |
|
| 672 | - 'titre_image_admin_article' => 'Vous pouvez administrer cet article', |
|
| 673 | - 'titre_image_administrateur' => 'Administrateur', |
|
| 674 | - 'titre_image_aide' => 'De l’aide sur cet élément', |
|
| 675 | - 'titre_image_auteur_supprime' => 'Auteur supprimé', |
|
| 676 | - 'titre_image_redacteur' => 'Rédacteur sans accès', |
|
| 677 | - 'titre_image_redacteur_02' => 'Rédacteur', |
|
| 678 | - 'titre_image_selecteur' => 'Afficher la liste', |
|
| 679 | - 'titre_image_visiteur' => 'Visiteur', |
|
| 680 | - 'titre_joindre_document' => 'JOINDRE UN DOCUMENT', |
|
| 681 | - 'titre_mots_cles' => 'MOTS-CLÉS', |
|
| 682 | - 'titre_probleme_technique' => 'Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.', |
|
| 683 | - 'titre_publier_document' => 'PUBLIER UN DOCUMENT DANS CETTE RUBRIQUE', |
|
| 684 | - 'titre_signatures_attente' => 'Signatures en attente de validation', |
|
| 685 | - 'titre_signatures_confirmees' => 'Signatures confirmées', |
|
| 686 | - 'titre_statistiques' => 'Statistiques du site', |
|
| 687 | - 'titre_titre_document' => 'Titre du document :', |
|
| 688 | - 'todo' => 'à venir', |
|
| 689 | - 'trad_definir_reference' => 'Choisir "@titre@" comme référence des traductions', |
|
| 690 | - 'trad_reference' => '(référence des traductions)', |
|
| 661 | + 'texte_inc_meta_1' => 'Le système a rencontré une erreur lors de l’écriture du fichier <code>@fichier@</code>. Veuillez, en tant qu’administrateur du site,', |
|
| 662 | + 'texte_inc_meta_2' => 'vérifier les droits d’écriture', |
|
| 663 | + 'texte_inc_meta_3' => 'sur le répertoire <code>@repertoire@</code>.', |
|
| 664 | + 'texte_statut_en_cours_redaction' => 'en cours de rédaction', |
|
| 665 | + 'texte_statut_poubelle' => 'à la poubelle', |
|
| 666 | + 'texte_statut_propose_evaluation' => 'proposé à l’évaluation', |
|
| 667 | + 'texte_statut_publie' => 'publié en ligne', |
|
| 668 | + 'texte_statut_refuse' => 'refusé', |
|
| 669 | + 'titre_ajouter_mot_cle' => 'AJOUTER UN MOT-CLÉ :', |
|
| 670 | + 'titre_cadre_raccourcis' => 'RACCOURCIS :', |
|
| 671 | + 'titre_changer_couleur_interface' => 'Changer la couleur de l’interface', |
|
| 672 | + 'titre_image_admin_article' => 'Vous pouvez administrer cet article', |
|
| 673 | + 'titre_image_administrateur' => 'Administrateur', |
|
| 674 | + 'titre_image_aide' => 'De l’aide sur cet élément', |
|
| 675 | + 'titre_image_auteur_supprime' => 'Auteur supprimé', |
|
| 676 | + 'titre_image_redacteur' => 'Rédacteur sans accès', |
|
| 677 | + 'titre_image_redacteur_02' => 'Rédacteur', |
|
| 678 | + 'titre_image_selecteur' => 'Afficher la liste', |
|
| 679 | + 'titre_image_visiteur' => 'Visiteur', |
|
| 680 | + 'titre_joindre_document' => 'JOINDRE UN DOCUMENT', |
|
| 681 | + 'titre_mots_cles' => 'MOTS-CLÉS', |
|
| 682 | + 'titre_probleme_technique' => 'Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.', |
|
| 683 | + 'titre_publier_document' => 'PUBLIER UN DOCUMENT DANS CETTE RUBRIQUE', |
|
| 684 | + 'titre_signatures_attente' => 'Signatures en attente de validation', |
|
| 685 | + 'titre_signatures_confirmees' => 'Signatures confirmées', |
|
| 686 | + 'titre_statistiques' => 'Statistiques du site', |
|
| 687 | + 'titre_titre_document' => 'Titre du document :', |
|
| 688 | + 'todo' => 'à venir', |
|
| 689 | + 'trad_definir_reference' => 'Choisir "@titre@" comme référence des traductions', |
|
| 690 | + 'trad_reference' => '(référence des traductions)', |
|
| 691 | 691 | |
| 692 | - // U |
|
| 693 | - 'upload_limit' => 'Ce fichier est trop gros pour le serveur ; la taille maximum autorisée en <i>upload</i> est de @max@.', |
|
| 692 | + // U |
|
| 693 | + 'upload_limit' => 'Ce fichier est trop gros pour le serveur ; la taille maximum autorisée en <i>upload</i> est de @max@.', |
|
| 694 | 694 | |
| 695 | - // Z |
|
| 696 | - 'zbug_balise_b_aval' => ' : balise B en aval', |
|
| 697 | - 'zbug_balise_inexistante' => 'Balise @balise@ mal déclarée pour @from@', |
|
| 698 | - 'zbug_balise_sans_argument' => 'Argument manquant dans la balise @balise@', |
|
| 699 | - 'zbug_boucle' => 'boucle', |
|
| 700 | - 'zbug_boucle_recursive_undef' => 'Boucle récursive non définie : @nom@', |
|
| 701 | - 'zbug_calcul' => 'calcul', |
|
| 702 | - 'zbug_champ_hors_boucle' => 'Champ @champ@ hors boucle', |
|
| 703 | - 'zbug_champ_hors_critere' => 'Champ @champ@ hors critère @critere@', |
|
| 704 | - 'zbug_champ_hors_motif' => 'Champ @champ@ hors d’un contexte @motif@', |
|
| 705 | - 'zbug_code' => 'code', |
|
| 706 | - 'zbug_critere_inconnu' => 'Critère inconnu @critere@', |
|
| 707 | - 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} sur une table sans clef primaire atomique', |
|
| 708 | - 'zbug_distant_interdit' => 'Externe interdit', # Contexte : une base de données "externe", pas gérée par SPIP, mais que SPIP 1.8 sait utiliser dans ses boucles -- seul problèmes certaines manipulations sont interdites sur ces bases-là. |
|
| 709 | - 'zbug_doublon_table_sans_cle_primaire' => 'Doublons sur une table sans clef primaire atomique', |
|
| 710 | - 'zbug_doublon_table_sans_index' => 'Doublons sur une table sans index', |
|
| 711 | - 'zbug_erreur_boucle_double' => 'Double définition de la boucle @id@', |
|
| 712 | - 'zbug_erreur_boucle_fermant' => 'Boucle @id@ non fermée', |
|
| 713 | - 'zbug_erreur_boucle_syntaxe' => 'Syntaxe de la boucle @id@ incorrecte', |
|
| 714 | - 'zbug_erreur_compilation' => 'Erreur de compilation', |
|
| 715 | - 'zbug_erreur_execution_page' => 'Erreur d’exécution', |
|
| 716 | - 'zbug_erreur_filtre' => 'Filtre @filtre@ non défini', |
|
| 717 | - 'zbug_erreur_filtre_nbarg_min' => 'Filtre @filtre@ : il manque @nb@ argument(s)', |
|
| 718 | - 'zbug_erreur_meme_parent' => 'Le critère {meme_parent} ne s’applique qu’aux boucles (FORUMS) ou (RUBRIQUES)', |
|
| 719 | - 'zbug_erreur_squelette' => 'Erreur(s) dans le squelette', |
|
| 720 | - 'zbug_hors_compilation' => 'Hors Compilation', |
|
| 721 | - 'zbug_info_erreur_squelette' => 'Erreur sur le site', |
|
| 722 | - 'zbug_inversion_ordre_inexistant' => 'Inversion d’un ordre inexistant', |
|
| 723 | - 'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans critère {pagination} ou employé dans une boucle récursive', |
|
| 724 | - 'zbug_parametres_inclus_incorrects' => 'Paramètre d’inclusion incorrect : @param@', |
|
| 725 | - 'zbug_profile' => 'Temps de calcul : @time@', |
|
| 726 | - 'zbug_resultat' => 'résultat', |
|
| 727 | - 'zbug_serveur_indefini' => 'Serveur SQL indéfini', |
|
| 728 | - 'zbug_statistiques' => 'Statistiques des requêtes SQL classées par durée', |
|
| 729 | - 'zbug_table_inconnue' => 'Table SQL « @table@ » inconnue', |
|
| 730 | - 'zxml_connus_attributs' => 'attributs connus', |
|
| 731 | - 'zxml_de' => 'de', |
|
| 732 | - 'zxml_inconnu_attribut' => 'attribut inconnu', |
|
| 733 | - 'zxml_inconnu_balise' => 'balise inconnue', |
|
| 734 | - 'zxml_inconnu_entite' => 'entité inconnue', |
|
| 735 | - 'zxml_inconnu_id' => 'ID inconnu', |
|
| 736 | - 'zxml_mais_de' => 'mais de', |
|
| 737 | - 'zxml_non_conforme' => 'n’est pas conforme au motif', |
|
| 738 | - 'zxml_non_fils' => 'n’est pas un fils de', |
|
| 739 | - 'zxml_nonvide_balise' => 'balise non vide', |
|
| 740 | - 'zxml_obligatoire_attribut' => 'attribut obligatoire mais absent dans', |
|
| 741 | - 'zxml_succession_fils_incorrecte' => 'succession des fils incorrecte', |
|
| 742 | - 'zxml_survoler' => 'survoler pour voir les corrects', |
|
| 743 | - 'zxml_valeur_attribut' => 'valeur de l’attribut', |
|
| 744 | - 'zxml_vide_balise' => 'balise vide', |
|
| 745 | - 'zxml_vu' => 'vu auparavant' |
|
| 695 | + // Z |
|
| 696 | + 'zbug_balise_b_aval' => ' : balise B en aval', |
|
| 697 | + 'zbug_balise_inexistante' => 'Balise @balise@ mal déclarée pour @from@', |
|
| 698 | + 'zbug_balise_sans_argument' => 'Argument manquant dans la balise @balise@', |
|
| 699 | + 'zbug_boucle' => 'boucle', |
|
| 700 | + 'zbug_boucle_recursive_undef' => 'Boucle récursive non définie : @nom@', |
|
| 701 | + 'zbug_calcul' => 'calcul', |
|
| 702 | + 'zbug_champ_hors_boucle' => 'Champ @champ@ hors boucle', |
|
| 703 | + 'zbug_champ_hors_critere' => 'Champ @champ@ hors critère @critere@', |
|
| 704 | + 'zbug_champ_hors_motif' => 'Champ @champ@ hors d’un contexte @motif@', |
|
| 705 | + 'zbug_code' => 'code', |
|
| 706 | + 'zbug_critere_inconnu' => 'Critère inconnu @critere@', |
|
| 707 | + 'zbug_critere_sur_table_sans_cle_primaire' => '{@critere@} sur une table sans clef primaire atomique', |
|
| 708 | + 'zbug_distant_interdit' => 'Externe interdit', # Contexte : une base de données "externe", pas gérée par SPIP, mais que SPIP 1.8 sait utiliser dans ses boucles -- seul problèmes certaines manipulations sont interdites sur ces bases-là. |
|
| 709 | + 'zbug_doublon_table_sans_cle_primaire' => 'Doublons sur une table sans clef primaire atomique', |
|
| 710 | + 'zbug_doublon_table_sans_index' => 'Doublons sur une table sans index', |
|
| 711 | + 'zbug_erreur_boucle_double' => 'Double définition de la boucle @id@', |
|
| 712 | + 'zbug_erreur_boucle_fermant' => 'Boucle @id@ non fermée', |
|
| 713 | + 'zbug_erreur_boucle_syntaxe' => 'Syntaxe de la boucle @id@ incorrecte', |
|
| 714 | + 'zbug_erreur_compilation' => 'Erreur de compilation', |
|
| 715 | + 'zbug_erreur_execution_page' => 'Erreur d’exécution', |
|
| 716 | + 'zbug_erreur_filtre' => 'Filtre @filtre@ non défini', |
|
| 717 | + 'zbug_erreur_filtre_nbarg_min' => 'Filtre @filtre@ : il manque @nb@ argument(s)', |
|
| 718 | + 'zbug_erreur_meme_parent' => 'Le critère {meme_parent} ne s’applique qu’aux boucles (FORUMS) ou (RUBRIQUES)', |
|
| 719 | + 'zbug_erreur_squelette' => 'Erreur(s) dans le squelette', |
|
| 720 | + 'zbug_hors_compilation' => 'Hors Compilation', |
|
| 721 | + 'zbug_info_erreur_squelette' => 'Erreur sur le site', |
|
| 722 | + 'zbug_inversion_ordre_inexistant' => 'Inversion d’un ordre inexistant', |
|
| 723 | + 'zbug_pagination_sans_critere' => 'Balise #PAGINATION sans critère {pagination} ou employé dans une boucle récursive', |
|
| 724 | + 'zbug_parametres_inclus_incorrects' => 'Paramètre d’inclusion incorrect : @param@', |
|
| 725 | + 'zbug_profile' => 'Temps de calcul : @time@', |
|
| 726 | + 'zbug_resultat' => 'résultat', |
|
| 727 | + 'zbug_serveur_indefini' => 'Serveur SQL indéfini', |
|
| 728 | + 'zbug_statistiques' => 'Statistiques des requêtes SQL classées par durée', |
|
| 729 | + 'zbug_table_inconnue' => 'Table SQL « @table@ » inconnue', |
|
| 730 | + 'zxml_connus_attributs' => 'attributs connus', |
|
| 731 | + 'zxml_de' => 'de', |
|
| 732 | + 'zxml_inconnu_attribut' => 'attribut inconnu', |
|
| 733 | + 'zxml_inconnu_balise' => 'balise inconnue', |
|
| 734 | + 'zxml_inconnu_entite' => 'entité inconnue', |
|
| 735 | + 'zxml_inconnu_id' => 'ID inconnu', |
|
| 736 | + 'zxml_mais_de' => 'mais de', |
|
| 737 | + 'zxml_non_conforme' => 'n’est pas conforme au motif', |
|
| 738 | + 'zxml_non_fils' => 'n’est pas un fils de', |
|
| 739 | + 'zxml_nonvide_balise' => 'balise non vide', |
|
| 740 | + 'zxml_obligatoire_attribut' => 'attribut obligatoire mais absent dans', |
|
| 741 | + 'zxml_succession_fils_incorrecte' => 'succession des fils incorrecte', |
|
| 742 | + 'zxml_survoler' => 'survoler pour voir les corrects', |
|
| 743 | + 'zxml_valeur_attribut' => 'valeur de l’attribut', |
|
| 744 | + 'zxml_vide_balise' => 'balise vide', |
|
| 745 | + 'zxml_vu' => 'vu auparavant' |
|
| 746 | 746 | ); |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | * @package SPIP\Core\Compilateur\References |
| 17 | 17 | **/ |
| 18 | 18 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 19 | - return; |
|
| 19 | + return; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | /** |
@@ -41,14 +41,14 @@ discard block |
||
| 41 | 41 | * - '' si une référence explicite incorrecte est envoyée |
| 42 | 42 | */ |
| 43 | 43 | function index_boucle($p) { |
| 44 | - if (strlen($p->nom_boucle)) { |
|
| 45 | - // retourne l’index explicite demandé s’il existe |
|
| 46 | - if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 47 | - return $p->nom_boucle; |
|
| 48 | - } |
|
| 49 | - return ''; |
|
| 50 | - } |
|
| 51 | - return $p->id_boucle; |
|
| 44 | + if (strlen($p->nom_boucle)) { |
|
| 45 | + // retourne l’index explicite demandé s’il existe |
|
| 46 | + if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 47 | + return $p->nom_boucle; |
|
| 48 | + } |
|
| 49 | + return ''; |
|
| 50 | + } |
|
| 51 | + return $p->id_boucle; |
|
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | |
@@ -71,17 +71,17 @@ discard block |
||
| 71 | 71 | * - '' si une référence explicite incorrecte est envoyée |
| 72 | 72 | */ |
| 73 | 73 | function index_boucle_mere($p) { |
| 74 | - if (strlen($p->nom_boucle)) { |
|
| 75 | - // retourne l’index explicite demandé s’il existe |
|
| 76 | - if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 77 | - return $p->nom_boucle; |
|
| 78 | - } |
|
| 79 | - return ''; |
|
| 80 | - } |
|
| 81 | - if (!empty($p->descr['id_mere'])) { |
|
| 82 | - return $p->descr['id_mere']; |
|
| 83 | - } |
|
| 84 | - return ''; |
|
| 74 | + if (strlen($p->nom_boucle)) { |
|
| 75 | + // retourne l’index explicite demandé s’il existe |
|
| 76 | + if (!empty($p->boucles[$p->nom_boucle])) { |
|
| 77 | + return $p->nom_boucle; |
|
| 78 | + } |
|
| 79 | + return ''; |
|
| 80 | + } |
|
| 81 | + if (!empty($p->descr['id_mere'])) { |
|
| 82 | + return $p->descr['id_mere']; |
|
| 83 | + } |
|
| 84 | + return ''; |
|
| 85 | 85 | } |
| 86 | 86 | |
| 87 | 87 | /** |
@@ -115,69 +115,69 @@ discard block |
||
| 115 | 115 | * Code PHP pour obtenir le champ SQL |
| 116 | 116 | */ |
| 117 | 117 | function index_pile( |
| 118 | - $idb, |
|
| 119 | - $nom_champ, |
|
| 120 | - &$boucles, |
|
| 121 | - $explicite = '', |
|
| 122 | - $defaut = null, |
|
| 123 | - $remonte_pile = true, |
|
| 124 | - $select = true |
|
| 118 | + $idb, |
|
| 119 | + $nom_champ, |
|
| 120 | + &$boucles, |
|
| 121 | + $explicite = '', |
|
| 122 | + $defaut = null, |
|
| 123 | + $remonte_pile = true, |
|
| 124 | + $select = true |
|
| 125 | 125 | ) { |
| 126 | - if (!is_string($defaut)) { |
|
| 127 | - $defaut = '@$Pile[0][\'' . strtolower($nom_champ) . '\']'; |
|
| 128 | - } |
|
| 129 | - |
|
| 130 | - $i = 0; |
|
| 131 | - if (strlen($explicite)) { |
|
| 132 | - // Recherche d'un champ dans un etage superieur |
|
| 133 | - while (($idb !== $explicite) && ($idb !== '')) { |
|
| 134 | - # spip_log("Cherchexpl: $nom_champ '$explicite' '$idb' '$i'"); |
|
| 135 | - $i++; |
|
| 136 | - $idb = $boucles[$idb]->id_parent; |
|
| 137 | - } |
|
| 138 | - } |
|
| 139 | - |
|
| 140 | - # spip_log("Cherche: $nom_champ a partir de '$idb'"); |
|
| 141 | - $nom_champ = strtolower($nom_champ); |
|
| 142 | - $conditionnel = array(); |
|
| 143 | - // attention: entre la boucle nommee 0, "" et le tableau vide, |
|
| 144 | - // il y a incoherences qu'il vaut mieux eviter |
|
| 145 | - while (isset($boucles[$idb])) { |
|
| 146 | - $joker = true; |
|
| 147 | - // modifie $joker si tous les champs sont autorisés. |
|
| 148 | - // $t = le select pour le champ, si on l'a trouvé (ou si joker) |
|
| 149 | - // $c = le nom du champ demandé |
|
| 150 | - list($t, $c) = index_tables_en_pile($idb, $nom_champ, $boucles, $joker); |
|
| 151 | - if ($t) { |
|
| 152 | - if ($select and !in_array($t, $boucles[$idb]->select)) { |
|
| 153 | - $boucles[$idb]->select[] = $t; |
|
| 154 | - } |
|
| 155 | - $champ = '$Pile[$SP' . ($i ? "-$i" : "") . '][\'' . $c . '\']'; |
|
| 156 | - if (!$joker) { |
|
| 157 | - return index_compose($conditionnel, $champ); |
|
| 158 | - } |
|
| 159 | - |
|
| 160 | - // tant que l'on trouve des tables avec joker, on continue |
|
| 161 | - // avec la boucle parente et on conditionne à l'exécution |
|
| 162 | - // la présence du champ. Si le champ existe à l'exécution |
|
| 163 | - // dans une boucle, il est pris, sinon on le cherche dans le parent... |
|
| 164 | - $conditionnel[] = "isset($champ)?$champ"; |
|
| 165 | - } |
|
| 166 | - |
|
| 167 | - if ($remonte_pile) { |
|
| 168 | - # spip_log("On remonte vers $i"); |
|
| 169 | - // Sinon on remonte d'un cran |
|
| 170 | - $idb = $boucles[$idb]->id_parent; |
|
| 171 | - $i++; |
|
| 172 | - } else { |
|
| 173 | - $idb = null; |
|
| 174 | - } |
|
| 175 | - } |
|
| 176 | - |
|
| 177 | - # spip_log("Pas vu $nom_champ"); |
|
| 178 | - // esperons qu'il y sera |
|
| 179 | - // ou qu'on a fourni une valeur par "defaut" plus pertinent |
|
| 180 | - return index_compose($conditionnel, $defaut); |
|
| 126 | + if (!is_string($defaut)) { |
|
| 127 | + $defaut = '@$Pile[0][\'' . strtolower($nom_champ) . '\']'; |
|
| 128 | + } |
|
| 129 | + |
|
| 130 | + $i = 0; |
|
| 131 | + if (strlen($explicite)) { |
|
| 132 | + // Recherche d'un champ dans un etage superieur |
|
| 133 | + while (($idb !== $explicite) && ($idb !== '')) { |
|
| 134 | + # spip_log("Cherchexpl: $nom_champ '$explicite' '$idb' '$i'"); |
|
| 135 | + $i++; |
|
| 136 | + $idb = $boucles[$idb]->id_parent; |
|
| 137 | + } |
|
| 138 | + } |
|
| 139 | + |
|
| 140 | + # spip_log("Cherche: $nom_champ a partir de '$idb'"); |
|
| 141 | + $nom_champ = strtolower($nom_champ); |
|
| 142 | + $conditionnel = array(); |
|
| 143 | + // attention: entre la boucle nommee 0, "" et le tableau vide, |
|
| 144 | + // il y a incoherences qu'il vaut mieux eviter |
|
| 145 | + while (isset($boucles[$idb])) { |
|
| 146 | + $joker = true; |
|
| 147 | + // modifie $joker si tous les champs sont autorisés. |
|
| 148 | + // $t = le select pour le champ, si on l'a trouvé (ou si joker) |
|
| 149 | + // $c = le nom du champ demandé |
|
| 150 | + list($t, $c) = index_tables_en_pile($idb, $nom_champ, $boucles, $joker); |
|
| 151 | + if ($t) { |
|
| 152 | + if ($select and !in_array($t, $boucles[$idb]->select)) { |
|
| 153 | + $boucles[$idb]->select[] = $t; |
|
| 154 | + } |
|
| 155 | + $champ = '$Pile[$SP' . ($i ? "-$i" : "") . '][\'' . $c . '\']'; |
|
| 156 | + if (!$joker) { |
|
| 157 | + return index_compose($conditionnel, $champ); |
|
| 158 | + } |
|
| 159 | + |
|
| 160 | + // tant que l'on trouve des tables avec joker, on continue |
|
| 161 | + // avec la boucle parente et on conditionne à l'exécution |
|
| 162 | + // la présence du champ. Si le champ existe à l'exécution |
|
| 163 | + // dans une boucle, il est pris, sinon on le cherche dans le parent... |
|
| 164 | + $conditionnel[] = "isset($champ)?$champ"; |
|
| 165 | + } |
|
| 166 | + |
|
| 167 | + if ($remonte_pile) { |
|
| 168 | + # spip_log("On remonte vers $i"); |
|
| 169 | + // Sinon on remonte d'un cran |
|
| 170 | + $idb = $boucles[$idb]->id_parent; |
|
| 171 | + $i++; |
|
| 172 | + } else { |
|
| 173 | + $idb = null; |
|
| 174 | + } |
|
| 175 | + } |
|
| 176 | + |
|
| 177 | + # spip_log("Pas vu $nom_champ"); |
|
| 178 | + // esperons qu'il y sera |
|
| 179 | + // ou qu'on a fourni une valeur par "defaut" plus pertinent |
|
| 180 | + return index_compose($conditionnel, $defaut); |
|
| 181 | 181 | } |
| 182 | 182 | |
| 183 | 183 | /** |
@@ -191,12 +191,12 @@ discard block |
||
| 191 | 191 | * @return string Code PHP complet de recherche d'un champ |
| 192 | 192 | */ |
| 193 | 193 | function index_compose($conditionnel, $defaut) { |
| 194 | - while ($c = array_pop($conditionnel)) { |
|
| 195 | - // si on passe defaut = '', ne pas générer d'erreur de compilation. |
|
| 196 | - $defaut = "($c:(" . ($defaut ? $defaut : "''") . "))"; |
|
| 197 | - } |
|
| 194 | + while ($c = array_pop($conditionnel)) { |
|
| 195 | + // si on passe defaut = '', ne pas générer d'erreur de compilation. |
|
| 196 | + $defaut = "($c:(" . ($defaut ? $defaut : "''") . "))"; |
|
| 197 | + } |
|
| 198 | 198 | |
| 199 | - return $defaut; |
|
| 199 | + return $defaut; |
|
| 200 | 200 | } |
| 201 | 201 | |
| 202 | 202 | /** |
@@ -232,74 +232,74 @@ discard block |
||
| 232 | 232 | **/ |
| 233 | 233 | function index_tables_en_pile($idb, $nom_champ, &$boucles, &$joker) { |
| 234 | 234 | |
| 235 | - $r = $boucles[$idb]->type_requete; |
|
| 236 | - // boucle recursive, c'est foutu... |
|
| 237 | - if ($r == TYPE_RECURSIF) { |
|
| 238 | - return array(); |
|
| 239 | - } |
|
| 240 | - if (!$r) { |
|
| 241 | - $joker = false; // indiquer a l'appelant |
|
| 242 | - # continuer pour chercher l'erreur suivante |
|
| 243 | - return array("'#" . $r . ':' . $nom_champ . "'", ''); |
|
| 244 | - } |
|
| 245 | - |
|
| 246 | - $desc = $boucles[$idb]->show; |
|
| 247 | - // le nom du champ est il une exception de la table ? un alias ? |
|
| 248 | - $excep = isset($GLOBALS['exceptions_des_tables'][$r]) ? $GLOBALS['exceptions_des_tables'][$r] : ''; |
|
| 249 | - if ($excep) { |
|
| 250 | - $excep = isset($excep[$nom_champ]) ? $excep[$nom_champ] : ''; |
|
| 251 | - } |
|
| 252 | - if ($excep) { |
|
| 253 | - $joker = false; // indiquer a l'appelant |
|
| 254 | - return index_exception($boucles[$idb], $desc, $nom_champ, $excep); |
|
| 255 | - } // pas d'alias. Le champ existe t'il ? |
|
| 256 | - else { |
|
| 257 | - // le champ est réellement présent, on le prend. |
|
| 258 | - if (isset($desc['field'][$nom_champ])) { |
|
| 259 | - $t = $boucles[$idb]->id_table; |
|
| 260 | - $joker = false; // indiquer a l'appelant |
|
| 261 | - return array("$t.$nom_champ", $nom_champ); |
|
| 262 | - } |
|
| 263 | - // Tous les champs sont-ils acceptés ? |
|
| 264 | - // Si oui, on retourne le champ, et on lève le flag joker |
|
| 265 | - // C'est le cas des itérateurs DATA qui acceptent tout |
|
| 266 | - // et testent la présence du champ à l'exécution et non à la compilation |
|
| 267 | - // car ils ne connaissent pas ici leurs contenus. |
|
| 268 | - elseif (/*$joker AND */ |
|
| 269 | - isset($desc['field']['*']) |
|
| 270 | - ) { |
|
| 271 | - $joker = true; // indiquer a l'appelant |
|
| 272 | - return array($nom_champ, $nom_champ); |
|
| 273 | - } |
|
| 274 | - // pas d'alias, pas de champ, pas de joker... |
|
| 275 | - // tenter via une jointure... |
|
| 276 | - else { |
|
| 277 | - $joker = false; // indiquer a l'appelant |
|
| 278 | - // regarder si le champ est deja dans une jointure existante |
|
| 279 | - // sinon, si il y a des joitures explicites, la construire |
|
| 280 | - if (!$t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb])) { |
|
| 281 | - if ($boucles[$idb]->jointures_explicites) { |
|
| 282 | - // [todo] Ne pas lancer que lorsque il y a des jointures explicites !!!! |
|
| 283 | - // fonctionnel, il suffit d'utiliser $boucles[$idb]->jointures au lieu de jointures_explicites |
|
| 284 | - // mais est-ce ce qu'on veut ? |
|
| 285 | - $jointures = preg_split("/\s+/", $boucles[$idb]->jointures_explicites); |
|
| 286 | - if ($cle = trouver_jointure_champ($nom_champ, $boucles[$idb], $jointures)) { |
|
| 287 | - $t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb]); |
|
| 288 | - } |
|
| 289 | - } |
|
| 290 | - } |
|
| 291 | - if ($t) { |
|
| 292 | - // si on a trouvé une jointure possible, on fait comme |
|
| 293 | - // si c'était une exception pour le champ demandé |
|
| 294 | - return index_exception($boucles[$idb], |
|
| 295 | - $desc, |
|
| 296 | - $nom_champ, |
|
| 297 | - array($t[1]['id_table'], reset($t[2]))); |
|
| 298 | - } |
|
| 299 | - |
|
| 300 | - return array('', ''); |
|
| 301 | - } |
|
| 302 | - } |
|
| 235 | + $r = $boucles[$idb]->type_requete; |
|
| 236 | + // boucle recursive, c'est foutu... |
|
| 237 | + if ($r == TYPE_RECURSIF) { |
|
| 238 | + return array(); |
|
| 239 | + } |
|
| 240 | + if (!$r) { |
|
| 241 | + $joker = false; // indiquer a l'appelant |
|
| 242 | + # continuer pour chercher l'erreur suivante |
|
| 243 | + return array("'#" . $r . ':' . $nom_champ . "'", ''); |
|
| 244 | + } |
|
| 245 | + |
|
| 246 | + $desc = $boucles[$idb]->show; |
|
| 247 | + // le nom du champ est il une exception de la table ? un alias ? |
|
| 248 | + $excep = isset($GLOBALS['exceptions_des_tables'][$r]) ? $GLOBALS['exceptions_des_tables'][$r] : ''; |
|
| 249 | + if ($excep) { |
|
| 250 | + $excep = isset($excep[$nom_champ]) ? $excep[$nom_champ] : ''; |
|
| 251 | + } |
|
| 252 | + if ($excep) { |
|
| 253 | + $joker = false; // indiquer a l'appelant |
|
| 254 | + return index_exception($boucles[$idb], $desc, $nom_champ, $excep); |
|
| 255 | + } // pas d'alias. Le champ existe t'il ? |
|
| 256 | + else { |
|
| 257 | + // le champ est réellement présent, on le prend. |
|
| 258 | + if (isset($desc['field'][$nom_champ])) { |
|
| 259 | + $t = $boucles[$idb]->id_table; |
|
| 260 | + $joker = false; // indiquer a l'appelant |
|
| 261 | + return array("$t.$nom_champ", $nom_champ); |
|
| 262 | + } |
|
| 263 | + // Tous les champs sont-ils acceptés ? |
|
| 264 | + // Si oui, on retourne le champ, et on lève le flag joker |
|
| 265 | + // C'est le cas des itérateurs DATA qui acceptent tout |
|
| 266 | + // et testent la présence du champ à l'exécution et non à la compilation |
|
| 267 | + // car ils ne connaissent pas ici leurs contenus. |
|
| 268 | + elseif (/*$joker AND */ |
|
| 269 | + isset($desc['field']['*']) |
|
| 270 | + ) { |
|
| 271 | + $joker = true; // indiquer a l'appelant |
|
| 272 | + return array($nom_champ, $nom_champ); |
|
| 273 | + } |
|
| 274 | + // pas d'alias, pas de champ, pas de joker... |
|
| 275 | + // tenter via une jointure... |
|
| 276 | + else { |
|
| 277 | + $joker = false; // indiquer a l'appelant |
|
| 278 | + // regarder si le champ est deja dans une jointure existante |
|
| 279 | + // sinon, si il y a des joitures explicites, la construire |
|
| 280 | + if (!$t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb])) { |
|
| 281 | + if ($boucles[$idb]->jointures_explicites) { |
|
| 282 | + // [todo] Ne pas lancer que lorsque il y a des jointures explicites !!!! |
|
| 283 | + // fonctionnel, il suffit d'utiliser $boucles[$idb]->jointures au lieu de jointures_explicites |
|
| 284 | + // mais est-ce ce qu'on veut ? |
|
| 285 | + $jointures = preg_split("/\s+/", $boucles[$idb]->jointures_explicites); |
|
| 286 | + if ($cle = trouver_jointure_champ($nom_champ, $boucles[$idb], $jointures)) { |
|
| 287 | + $t = trouver_champ_exterieur($nom_champ, $boucles[$idb]->from, $boucles[$idb]); |
|
| 288 | + } |
|
| 289 | + } |
|
| 290 | + } |
|
| 291 | + if ($t) { |
|
| 292 | + // si on a trouvé une jointure possible, on fait comme |
|
| 293 | + // si c'était une exception pour le champ demandé |
|
| 294 | + return index_exception($boucles[$idb], |
|
| 295 | + $desc, |
|
| 296 | + $nom_champ, |
|
| 297 | + array($t[1]['id_table'], reset($t[2]))); |
|
| 298 | + } |
|
| 299 | + |
|
| 300 | + return array('', ''); |
|
| 301 | + } |
|
| 302 | + } |
|
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | |
@@ -327,52 +327,52 @@ discard block |
||
| 327 | 327 | * est une expression pour le SELECT de la boucle du style "mots.titre AS titre_mot" |
| 328 | 328 | **/ |
| 329 | 329 | function index_exception(&$boucle, $desc, $nom_champ, $excep) { |
| 330 | - static $trouver_table; |
|
| 331 | - if (!$trouver_table) { |
|
| 332 | - $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 333 | - } |
|
| 334 | - |
|
| 335 | - if (is_array($excep)) { |
|
| 336 | - // permettre aux plugins de gerer eux meme des jointures derogatoire ingerables |
|
| 337 | - $t = null; |
|
| 338 | - if (count($excep) == 3) { |
|
| 339 | - $index_exception_derogatoire = array_pop($excep); |
|
| 340 | - $t = $index_exception_derogatoire($boucle, $desc, $nom_champ, $excep); |
|
| 341 | - } |
|
| 342 | - if ($t == null) { |
|
| 343 | - list($e, $x) = $excep; #PHP4 affecte de gauche a droite |
|
| 344 | - $excep = $x; #PHP5 de droite a gauche ! |
|
| 345 | - $j = $trouver_table($e, $boucle->sql_serveur); |
|
| 346 | - if (!$j) { |
|
| 347 | - return array('', ''); |
|
| 348 | - } |
|
| 349 | - $e = $j['table']; |
|
| 350 | - if (!$t = array_search($e, $boucle->from)) { |
|
| 351 | - $k = $j['key']['PRIMARY KEY']; |
|
| 352 | - if (strpos($k, ',')) { |
|
| 353 | - $l = (preg_split('/\s*,\s*/', $k)); |
|
| 354 | - $k = $desc['key']['PRIMARY KEY']; |
|
| 355 | - if (!in_array($k, $l)) { |
|
| 356 | - spip_log("jointure impossible $e " . join(',', $l)); |
|
| 357 | - |
|
| 358 | - return array('', ''); |
|
| 359 | - } |
|
| 360 | - } |
|
| 361 | - $k = array($boucle->id_table, array($e), $k); |
|
| 362 | - fabrique_jointures($boucle, array($k)); |
|
| 363 | - $t = array_search($e, $boucle->from); |
|
| 364 | - } |
|
| 365 | - } |
|
| 366 | - } else { |
|
| 367 | - $t = $boucle->id_table; |
|
| 368 | - } |
|
| 369 | - // demander a SQL de gerer le synonyme |
|
| 370 | - // ca permet que excep soit dynamique (Cedric, 2/3/06) |
|
| 371 | - if ($excep != $nom_champ) { |
|
| 372 | - $excep .= ' AS ' . $nom_champ; |
|
| 373 | - } |
|
| 374 | - |
|
| 375 | - return array("$t.$excep", $nom_champ); |
|
| 330 | + static $trouver_table; |
|
| 331 | + if (!$trouver_table) { |
|
| 332 | + $trouver_table = charger_fonction('trouver_table', 'base'); |
|
| 333 | + } |
|
| 334 | + |
|
| 335 | + if (is_array($excep)) { |
|
| 336 | + // permettre aux plugins de gerer eux meme des jointures derogatoire ingerables |
|
| 337 | + $t = null; |
|
| 338 | + if (count($excep) == 3) { |
|
| 339 | + $index_exception_derogatoire = array_pop($excep); |
|
| 340 | + $t = $index_exception_derogatoire($boucle, $desc, $nom_champ, $excep); |
|
| 341 | + } |
|
| 342 | + if ($t == null) { |
|
| 343 | + list($e, $x) = $excep; #PHP4 affecte de gauche a droite |
|
| 344 | + $excep = $x; #PHP5 de droite a gauche ! |
|
| 345 | + $j = $trouver_table($e, $boucle->sql_serveur); |
|
| 346 | + if (!$j) { |
|
| 347 | + return array('', ''); |
|
| 348 | + } |
|
| 349 | + $e = $j['table']; |
|
| 350 | + if (!$t = array_search($e, $boucle->from)) { |
|
| 351 | + $k = $j['key']['PRIMARY KEY']; |
|
| 352 | + if (strpos($k, ',')) { |
|
| 353 | + $l = (preg_split('/\s*,\s*/', $k)); |
|
| 354 | + $k = $desc['key']['PRIMARY KEY']; |
|
| 355 | + if (!in_array($k, $l)) { |
|
| 356 | + spip_log("jointure impossible $e " . join(',', $l)); |
|
| 357 | + |
|
| 358 | + return array('', ''); |
|
| 359 | + } |
|
| 360 | + } |
|
| 361 | + $k = array($boucle->id_table, array($e), $k); |
|
| 362 | + fabrique_jointures($boucle, array($k)); |
|
| 363 | + $t = array_search($e, $boucle->from); |
|
| 364 | + } |
|
| 365 | + } |
|
| 366 | + } else { |
|
| 367 | + $t = $boucle->id_table; |
|
| 368 | + } |
|
| 369 | + // demander a SQL de gerer le synonyme |
|
| 370 | + // ca permet que excep soit dynamique (Cedric, 2/3/06) |
|
| 371 | + if ($excep != $nom_champ) { |
|
| 372 | + $excep .= ' AS ' . $nom_champ; |
|
| 373 | + } |
|
| 374 | + |
|
| 375 | + return array("$t.$excep", $nom_champ); |
|
| 376 | 376 | } |
| 377 | 377 | |
| 378 | 378 | /** |
@@ -397,7 +397,7 @@ discard block |
||
| 397 | 397 | * Code PHP pour retrouver le champ |
| 398 | 398 | */ |
| 399 | 399 | function champ_sql($champ, $p, $defaut = null, $remonte_pile = true) { |
| 400 | - return index_pile($p->id_boucle, $champ, $p->boucles, $p->nom_boucle, $defaut, $remonte_pile); |
|
| 400 | + return index_pile($p->id_boucle, $champ, $p->boucles, $p->nom_boucle, $defaut, $remonte_pile); |
|
| 401 | 401 | } |
| 402 | 402 | |
| 403 | 403 | |
@@ -417,9 +417,9 @@ discard block |
||
| 417 | 417 | * Code PHP pour d'exécution de la balise et de ses filtres |
| 418 | 418 | **/ |
| 419 | 419 | function calculer_champ($p) { |
| 420 | - $p = calculer_balise($p->nom_champ, $p); |
|
| 420 | + $p = calculer_balise($p->nom_champ, $p); |
|
| 421 | 421 | |
| 422 | - return applique_filtres($p); |
|
| 422 | + return applique_filtres($p); |
|
| 423 | 423 | } |
| 424 | 424 | |
| 425 | 425 | |
@@ -456,26 +456,26 @@ discard block |
||
| 456 | 456 | **/ |
| 457 | 457 | function calculer_balise($nom, $p) { |
| 458 | 458 | |
| 459 | - // S'agit-t-il d'une balise_XXXX[_dist]() ? |
|
| 460 | - if ($f = charger_fonction($nom, 'balise', true)) { |
|
| 461 | - $p->balise_calculee = true; |
|
| 462 | - $res = $f($p); |
|
| 463 | - if ($res !== null and is_object($res)) { |
|
| 464 | - return $res; |
|
| 465 | - } |
|
| 466 | - } |
|
| 467 | - |
|
| 468 | - // Certaines des balises comportant un _ sont generiques |
|
| 469 | - if ($balise_generique = chercher_balise_generique($nom)) { |
|
| 470 | - $res = $balise_generique['fonction_generique']($p); |
|
| 471 | - if ($res !== null and is_object($res)) { |
|
| 472 | - return $res; |
|
| 473 | - } |
|
| 474 | - } |
|
| 475 | - |
|
| 476 | - $f = charger_fonction('DEFAUT', 'calculer_balise'); |
|
| 477 | - |
|
| 478 | - return $f($nom, $p); |
|
| 459 | + // S'agit-t-il d'une balise_XXXX[_dist]() ? |
|
| 460 | + if ($f = charger_fonction($nom, 'balise', true)) { |
|
| 461 | + $p->balise_calculee = true; |
|
| 462 | + $res = $f($p); |
|
| 463 | + if ($res !== null and is_object($res)) { |
|
| 464 | + return $res; |
|
| 465 | + } |
|
| 466 | + } |
|
| 467 | + |
|
| 468 | + // Certaines des balises comportant un _ sont generiques |
|
| 469 | + if ($balise_generique = chercher_balise_generique($nom)) { |
|
| 470 | + $res = $balise_generique['fonction_generique']($p); |
|
| 471 | + if ($res !== null and is_object($res)) { |
|
| 472 | + return $res; |
|
| 473 | + } |
|
| 474 | + } |
|
| 475 | + |
|
| 476 | + $f = charger_fonction('DEFAUT', 'calculer_balise'); |
|
| 477 | + |
|
| 478 | + return $f($nom, $p); |
|
| 479 | 479 | } |
| 480 | 480 | |
| 481 | 481 | |
@@ -503,36 +503,36 @@ discard block |
||
| 503 | 503 | **/ |
| 504 | 504 | function calculer_balise_DEFAUT_dist($nom, $p) { |
| 505 | 505 | |
| 506 | - // ca pourrait etre un champ SQL homonyme, |
|
| 507 | - $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle); |
|
| 508 | - |
|
| 509 | - // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 510 | - // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 511 | - if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 512 | - $code = addslashes($p->fonctions[0][1]); |
|
| 513 | - $p->code .= " . '$code'"; |
|
| 514 | - } |
|
| 515 | - |
|
| 516 | - // ne pas passer le filtre securite sur les id_xxx |
|
| 517 | - if (strpos($nom, 'ID_') === 0) { |
|
| 518 | - $p->interdire_scripts = false; |
|
| 519 | - } |
|
| 520 | - |
|
| 521 | - // Compatibilite ascendante avec les couleurs html (#FEFEFE) : |
|
| 522 | - // SI le champ SQL n'est pas trouve |
|
| 523 | - // ET si la balise a une forme de couleur |
|
| 524 | - // ET s'il n'y a ni filtre ni etoile |
|
| 525 | - // ALORS retourner la couleur. |
|
| 526 | - // Ca permet si l'on veut vraiment de recuperer [(#ACCEDE*)] |
|
| 527 | - if (preg_match("/^[A-F]{1,6}$/i", $nom) |
|
| 528 | - and !$p->etoile |
|
| 529 | - and !$p->fonctions |
|
| 530 | - ) { |
|
| 531 | - $p->code = "'#$nom'"; |
|
| 532 | - $p->interdire_scripts = false; |
|
| 533 | - } |
|
| 534 | - |
|
| 535 | - return $p; |
|
| 506 | + // ca pourrait etre un champ SQL homonyme, |
|
| 507 | + $p->code = index_pile($p->id_boucle, $nom, $p->boucles, $p->nom_boucle); |
|
| 508 | + |
|
| 509 | + // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 510 | + // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 511 | + if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 512 | + $code = addslashes($p->fonctions[0][1]); |
|
| 513 | + $p->code .= " . '$code'"; |
|
| 514 | + } |
|
| 515 | + |
|
| 516 | + // ne pas passer le filtre securite sur les id_xxx |
|
| 517 | + if (strpos($nom, 'ID_') === 0) { |
|
| 518 | + $p->interdire_scripts = false; |
|
| 519 | + } |
|
| 520 | + |
|
| 521 | + // Compatibilite ascendante avec les couleurs html (#FEFEFE) : |
|
| 522 | + // SI le champ SQL n'est pas trouve |
|
| 523 | + // ET si la balise a une forme de couleur |
|
| 524 | + // ET s'il n'y a ni filtre ni etoile |
|
| 525 | + // ALORS retourner la couleur. |
|
| 526 | + // Ca permet si l'on veut vraiment de recuperer [(#ACCEDE*)] |
|
| 527 | + if (preg_match("/^[A-F]{1,6}$/i", $nom) |
|
| 528 | + and !$p->etoile |
|
| 529 | + and !$p->fonctions |
|
| 530 | + ) { |
|
| 531 | + $p->code = "'#$nom'"; |
|
| 532 | + $p->interdire_scripts = false; |
|
| 533 | + } |
|
| 534 | + |
|
| 535 | + return $p; |
|
| 536 | 536 | } |
| 537 | 537 | |
| 538 | 538 | |
@@ -575,36 +575,36 @@ discard block |
||
| 575 | 575 | **/ |
| 576 | 576 | function calculer_balise_dynamique($p, $nom, $l, $supp = array()) { |
| 577 | 577 | |
| 578 | - if (!balise_distante_interdite($p)) { |
|
| 579 | - $p->code = "''"; |
|
| 580 | - |
|
| 581 | - return $p; |
|
| 582 | - } |
|
| 583 | - // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 584 | - // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 585 | - if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 586 | - $p->fonctions = null; |
|
| 587 | - } |
|
| 588 | - |
|
| 589 | - if ($p->param and ($c = $p->param[0])) { |
|
| 590 | - // liste d'arguments commence toujours par la chaine vide |
|
| 591 | - array_shift($c); |
|
| 592 | - // construire la liste d'arguments comme pour un filtre |
|
| 593 | - $param = compose_filtres_args($p, $c, ','); |
|
| 594 | - } else { |
|
| 595 | - $param = ""; |
|
| 596 | - } |
|
| 597 | - $collecte = collecter_balise_dynamique($l, $p, $nom); |
|
| 598 | - |
|
| 599 | - $p->code = sprintf(CODE_EXECUTER_BALISE, $nom, |
|
| 600 | - join(',', $collecte), |
|
| 601 | - ($collecte ? $param : substr($param, 1)), # virer la virgule |
|
| 602 | - memoriser_contexte_compil($p), |
|
| 603 | - (!$supp ? '' : (', ' . join(',', $supp)))); |
|
| 604 | - |
|
| 605 | - $p->interdire_scripts = false; |
|
| 606 | - |
|
| 607 | - return $p; |
|
| 578 | + if (!balise_distante_interdite($p)) { |
|
| 579 | + $p->code = "''"; |
|
| 580 | + |
|
| 581 | + return $p; |
|
| 582 | + } |
|
| 583 | + // compatibilite: depuis qu'on accepte #BALISE{ses_args} sans [(...)] autour |
|
| 584 | + // il faut recracher {...} quand ce n'est finalement pas des args |
|
| 585 | + if ($p->fonctions and (!$p->fonctions[0][0]) and $p->fonctions[0][1]) { |
|
| 586 | + $p->fonctions = null; |
|
| 587 | + } |
|
| 588 | + |
|
| 589 | + if ($p->param and ($c = $p->param[0])) { |
|
| 590 | + // liste d'arguments commence toujours par la chaine vide |
|
| 591 | + array_shift($c); |
|
| 592 | + // construire la liste d'arguments comme pour un filtre |
|
| 593 | + $param = compose_filtres_args($p, $c, ','); |
|
| 594 | + } else { |
|
| 595 | + $param = ""; |
|
| 596 | + } |
|
| 597 | + $collecte = collecter_balise_dynamique($l, $p, $nom); |
|
| 598 | + |
|
| 599 | + $p->code = sprintf(CODE_EXECUTER_BALISE, $nom, |
|
| 600 | + join(',', $collecte), |
|
| 601 | + ($collecte ? $param : substr($param, 1)), # virer la virgule |
|
| 602 | + memoriser_contexte_compil($p), |
|
| 603 | + (!$supp ? '' : (', ' . join(',', $supp)))); |
|
| 604 | + |
|
| 605 | + $p->interdire_scripts = false; |
|
| 606 | + |
|
| 607 | + return $p; |
|
| 608 | 608 | } |
| 609 | 609 | |
| 610 | 610 | |
@@ -634,13 +634,13 @@ discard block |
||
| 634 | 634 | * Liste des codes PHP d'éxecution des balises collectées |
| 635 | 635 | **/ |
| 636 | 636 | function collecter_balise_dynamique($l, &$p, $nom) { |
| 637 | - $args = array(); |
|
| 638 | - foreach ($l as $c) { |
|
| 639 | - $x = calculer_balise($c, $p); |
|
| 640 | - $args[] = $x->code; |
|
| 641 | - } |
|
| 637 | + $args = array(); |
|
| 638 | + foreach ($l as $c) { |
|
| 639 | + $x = calculer_balise($c, $p); |
|
| 640 | + $args[] = $x->code; |
|
| 641 | + } |
|
| 642 | 642 | |
| 643 | - return $args; |
|
| 643 | + return $args; |
|
| 644 | 644 | } |
| 645 | 645 | |
| 646 | 646 | |
@@ -655,20 +655,20 @@ discard block |
||
| 655 | 655 | * Nom de la connexion |
| 656 | 656 | **/ |
| 657 | 657 | function trouver_nom_serveur_distant($p) { |
| 658 | - $nom = $p->id_boucle; |
|
| 659 | - if ($nom |
|
| 660 | - and isset($p->boucles[$nom]) |
|
| 661 | - ) { |
|
| 662 | - $s = $p->boucles[$nom]->sql_serveur; |
|
| 663 | - if (strlen($s) |
|
| 664 | - and strlen($serveur = strtolower($s)) |
|
| 665 | - and !in_array($serveur, $GLOBALS['exception_des_connect']) |
|
| 666 | - ) { |
|
| 667 | - return $serveur; |
|
| 668 | - } |
|
| 669 | - } |
|
| 670 | - |
|
| 671 | - return ""; |
|
| 658 | + $nom = $p->id_boucle; |
|
| 659 | + if ($nom |
|
| 660 | + and isset($p->boucles[$nom]) |
|
| 661 | + ) { |
|
| 662 | + $s = $p->boucles[$nom]->sql_serveur; |
|
| 663 | + if (strlen($s) |
|
| 664 | + and strlen($serveur = strtolower($s)) |
|
| 665 | + and !in_array($serveur, $GLOBALS['exception_des_connect']) |
|
| 666 | + ) { |
|
| 667 | + return $serveur; |
|
| 668 | + } |
|
| 669 | + } |
|
| 670 | + |
|
| 671 | + return ""; |
|
| 672 | 672 | } |
| 673 | 673 | |
| 674 | 674 | |
@@ -692,15 +692,15 @@ discard block |
||
| 692 | 692 | * - false : La balise est interdite car le serveur est distant |
| 693 | 693 | **/ |
| 694 | 694 | function balise_distante_interdite($p) { |
| 695 | - $nom = $p->id_boucle; |
|
| 695 | + $nom = $p->id_boucle; |
|
| 696 | 696 | |
| 697 | - if ($nom and trouver_nom_serveur_distant($p)) { |
|
| 698 | - spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); |
|
| 697 | + if ($nom and trouver_nom_serveur_distant($p)) { |
|
| 698 | + spip_log($nom . ':' . $p->nom_champ . ' ' . _T('zbug_distant_interdit')); |
|
| 699 | 699 | |
| 700 | - return false; |
|
| 701 | - } |
|
| 700 | + return false; |
|
| 701 | + } |
|
| 702 | 702 | |
| 703 | - return true; |
|
| 703 | + return true; |
|
| 704 | 704 | } |
| 705 | 705 | |
| 706 | 706 | |
@@ -711,78 +711,78 @@ discard block |
||
| 711 | 711 | // https://code.spip.net/@champs_traitements |
| 712 | 712 | function champs_traitements($p) { |
| 713 | 713 | |
| 714 | - if (isset($GLOBALS['table_des_traitements'][$p->nom_champ])) { |
|
| 715 | - $ps = $GLOBALS['table_des_traitements'][$p->nom_champ]; |
|
| 716 | - } else { |
|
| 717 | - // quand on utilise un traitement catch-all * |
|
| 718 | - // celui-ci ne s'applique pas sur les balises calculees qui peuvent gerer |
|
| 719 | - // leur propre securite |
|
| 720 | - if (!$p->balise_calculee) { |
|
| 721 | - $ps = $GLOBALS['table_des_traitements']['*']; |
|
| 722 | - } else { |
|
| 723 | - $ps = false; |
|
| 724 | - } |
|
| 725 | - } |
|
| 726 | - |
|
| 727 | - if (is_array($ps)) { |
|
| 728 | - // Recuperer le type de boucle (articles, DATA) et la table SQL sur laquelle elle porte |
|
| 729 | - $idb = index_boucle($p); |
|
| 730 | - // mais on peut aussi etre hors boucle. Se mefier. |
|
| 731 | - $type_requete = isset($p->boucles[$idb]->type_requete) ? $p->boucles[$idb]->type_requete : false; |
|
| 732 | - $table_sql = isset($p->boucles[$idb]->show['table_sql']) ? $p->boucles[$idb]->show['table_sql'] : false; |
|
| 733 | - |
|
| 734 | - // bien prendre en compte les alias de boucles (hierarchie => rubrique, syndication => syncdic, etc.) |
|
| 735 | - if ($type_requete and isset($GLOBALS['table_des_tables'][$type_requete])) { |
|
| 736 | - $type_alias = $type_requete; |
|
| 737 | - $type_requete = $GLOBALS['table_des_tables'][$type_requete]; |
|
| 738 | - } else { |
|
| 739 | - $type_alias = false; |
|
| 740 | - } |
|
| 741 | - |
|
| 742 | - // le traitement peut n'etre defini que pour une table en particulier "spip_articles" |
|
| 743 | - if ($table_sql and isset($ps[$table_sql])) { |
|
| 744 | - $ps = $ps[$table_sql]; |
|
| 745 | - } // ou pour une boucle en particulier "DATA","articles" |
|
| 746 | - elseif ($type_requete and isset($ps[$type_requete])) { |
|
| 747 | - $ps = $ps[$type_requete]; |
|
| 748 | - } // ou pour une boucle utilisant un alias ("hierarchie") |
|
| 749 | - elseif ($type_alias and isset($ps[$type_alias])) { |
|
| 750 | - $ps = $ps[$type_alias]; |
|
| 751 | - } // ou pour indifféremment quelle que soit la boucle |
|
| 752 | - elseif (isset($ps[0])) { |
|
| 753 | - $ps = $ps[0]; |
|
| 754 | - } else { |
|
| 755 | - $ps = false; |
|
| 756 | - } |
|
| 757 | - } |
|
| 758 | - |
|
| 759 | - if (!$ps) { |
|
| 760 | - return $p->code; |
|
| 761 | - } |
|
| 762 | - |
|
| 763 | - // Si une boucle DOCUMENTS{doublons} est presente dans le squelette, |
|
| 764 | - // ou si in INCLURE contient {doublons} |
|
| 765 | - // on insere une fonction de remplissage du tableau des doublons |
|
| 766 | - // dans les filtres propre() ou typo() |
|
| 767 | - // (qui traitent les raccourcis <docXX> referencant les docs) |
|
| 768 | - |
|
| 769 | - if (isset($p->descr['documents']) |
|
| 770 | - and |
|
| 771 | - $p->descr['documents'] |
|
| 772 | - and ( |
|
| 773 | - (strpos($ps, 'propre') !== false) |
|
| 774 | - or |
|
| 775 | - (strpos($ps, 'typo') !== false) |
|
| 776 | - ) |
|
| 777 | - ) { |
|
| 778 | - $ps = 'traiter_doublons_documents($doublons, ' . $ps . ')'; |
|
| 779 | - } |
|
| 780 | - |
|
| 781 | - // La protection des champs par |safehtml est assuree par les extensions |
|
| 782 | - // dans la declaration des traitements des champs sensibles |
|
| 783 | - |
|
| 784 | - // Remplacer enfin le placeholder %s par le vrai code de la balise |
|
| 785 | - return str_replace('%s', $p->code, $ps); |
|
| 714 | + if (isset($GLOBALS['table_des_traitements'][$p->nom_champ])) { |
|
| 715 | + $ps = $GLOBALS['table_des_traitements'][$p->nom_champ]; |
|
| 716 | + } else { |
|
| 717 | + // quand on utilise un traitement catch-all * |
|
| 718 | + // celui-ci ne s'applique pas sur les balises calculees qui peuvent gerer |
|
| 719 | + // leur propre securite |
|
| 720 | + if (!$p->balise_calculee) { |
|
| 721 | + $ps = $GLOBALS['table_des_traitements']['*']; |
|
| 722 | + } else { |
|
| 723 | + $ps = false; |
|
| 724 | + } |
|
| 725 | + } |
|
| 726 | + |
|
| 727 | + if (is_array($ps)) { |
|
| 728 | + // Recuperer le type de boucle (articles, DATA) et la table SQL sur laquelle elle porte |
|
| 729 | + $idb = index_boucle($p); |
|
| 730 | + // mais on peut aussi etre hors boucle. Se mefier. |
|
| 731 | + $type_requete = isset($p->boucles[$idb]->type_requete) ? $p->boucles[$idb]->type_requete : false; |
|
| 732 | + $table_sql = isset($p->boucles[$idb]->show['table_sql']) ? $p->boucles[$idb]->show['table_sql'] : false; |
|
| 733 | + |
|
| 734 | + // bien prendre en compte les alias de boucles (hierarchie => rubrique, syndication => syncdic, etc.) |
|
| 735 | + if ($type_requete and isset($GLOBALS['table_des_tables'][$type_requete])) { |
|
| 736 | + $type_alias = $type_requete; |
|
| 737 | + $type_requete = $GLOBALS['table_des_tables'][$type_requete]; |
|
| 738 | + } else { |
|
| 739 | + $type_alias = false; |
|
| 740 | + } |
|
| 741 | + |
|
| 742 | + // le traitement peut n'etre defini que pour une table en particulier "spip_articles" |
|
| 743 | + if ($table_sql and isset($ps[$table_sql])) { |
|
| 744 | + $ps = $ps[$table_sql]; |
|
| 745 | + } // ou pour une boucle en particulier "DATA","articles" |
|
| 746 | + elseif ($type_requete and isset($ps[$type_requete])) { |
|
| 747 | + $ps = $ps[$type_requete]; |
|
| 748 | + } // ou pour une boucle utilisant un alias ("hierarchie") |
|
| 749 | + elseif ($type_alias and isset($ps[$type_alias])) { |
|
| 750 | + $ps = $ps[$type_alias]; |
|
| 751 | + } // ou pour indifféremment quelle que soit la boucle |
|
| 752 | + elseif (isset($ps[0])) { |
|
| 753 | + $ps = $ps[0]; |
|
| 754 | + } else { |
|
| 755 | + $ps = false; |
|
| 756 | + } |
|
| 757 | + } |
|
| 758 | + |
|
| 759 | + if (!$ps) { |
|
| 760 | + return $p->code; |
|
| 761 | + } |
|
| 762 | + |
|
| 763 | + // Si une boucle DOCUMENTS{doublons} est presente dans le squelette, |
|
| 764 | + // ou si in INCLURE contient {doublons} |
|
| 765 | + // on insere une fonction de remplissage du tableau des doublons |
|
| 766 | + // dans les filtres propre() ou typo() |
|
| 767 | + // (qui traitent les raccourcis <docXX> referencant les docs) |
|
| 768 | + |
|
| 769 | + if (isset($p->descr['documents']) |
|
| 770 | + and |
|
| 771 | + $p->descr['documents'] |
|
| 772 | + and ( |
|
| 773 | + (strpos($ps, 'propre') !== false) |
|
| 774 | + or |
|
| 775 | + (strpos($ps, 'typo') !== false) |
|
| 776 | + ) |
|
| 777 | + ) { |
|
| 778 | + $ps = 'traiter_doublons_documents($doublons, ' . $ps . ')'; |
|
| 779 | + } |
|
| 780 | + |
|
| 781 | + // La protection des champs par |safehtml est assuree par les extensions |
|
| 782 | + // dans la declaration des traitements des champs sensibles |
|
| 783 | + |
|
| 784 | + // Remplacer enfin le placeholder %s par le vrai code de la balise |
|
| 785 | + return str_replace('%s', $p->code, $ps); |
|
| 786 | 786 | } |
| 787 | 787 | |
| 788 | 788 | |
@@ -795,112 +795,112 @@ discard block |
||
| 795 | 795 | // https://code.spip.net/@applique_filtres |
| 796 | 796 | function applique_filtres($p) { |
| 797 | 797 | |
| 798 | - // Traitements standards (cf. supra) |
|
| 799 | - if ($p->etoile == '') { |
|
| 800 | - $code = champs_traitements($p); |
|
| 801 | - } else { |
|
| 802 | - $code = $p->code; |
|
| 803 | - } |
|
| 798 | + // Traitements standards (cf. supra) |
|
| 799 | + if ($p->etoile == '') { |
|
| 800 | + $code = champs_traitements($p); |
|
| 801 | + } else { |
|
| 802 | + $code = $p->code; |
|
| 803 | + } |
|
| 804 | 804 | |
| 805 | - // Appliquer les filtres perso |
|
| 806 | - if ($p->param) { |
|
| 807 | - $code = compose_filtres($p, $code); |
|
| 808 | - } |
|
| 805 | + // Appliquer les filtres perso |
|
| 806 | + if ($p->param) { |
|
| 807 | + $code = compose_filtres($p, $code); |
|
| 808 | + } |
|
| 809 | 809 | |
| 810 | - // S'il y a un lien avec la session, ajouter un code qui levera |
|
| 811 | - // un drapeau dans la structure d'invalidation $Cache |
|
| 812 | - if (isset($p->descr['session'])) { |
|
| 813 | - $code = "invalideur_session(\$Cache, $code)"; |
|
| 814 | - } |
|
| 810 | + // S'il y a un lien avec la session, ajouter un code qui levera |
|
| 811 | + // un drapeau dans la structure d'invalidation $Cache |
|
| 812 | + if (isset($p->descr['session'])) { |
|
| 813 | + $code = "invalideur_session(\$Cache, $code)"; |
|
| 814 | + } |
|
| 815 | 815 | |
| 816 | - $code = sandbox_composer_interdire_scripts($code, $p); |
|
| 816 | + $code = sandbox_composer_interdire_scripts($code, $p); |
|
| 817 | 817 | |
| 818 | - return $code; |
|
| 818 | + return $code; |
|
| 819 | 819 | } |
| 820 | 820 | |
| 821 | 821 | // Cf. function pipeline dans ecrire/inc_utils.php |
| 822 | 822 | // https://code.spip.net/@compose_filtres |
| 823 | 823 | function compose_filtres(&$p, $code) { |
| 824 | 824 | |
| 825 | - $image_miette = false; |
|
| 826 | - foreach ($p->param as $filtre) { |
|
| 827 | - $fonc = array_shift($filtre); |
|
| 828 | - if (!$fonc) { |
|
| 829 | - continue; |
|
| 830 | - } // normalement qu'au premier tour. |
|
| 831 | - $is_filtre_image = ((substr($fonc, 0, 6) == 'image_') and $fonc != 'image_graver'); |
|
| 832 | - if ($image_miette and !$is_filtre_image) { |
|
| 833 | - // il faut graver maintenant car apres le filtre en cours |
|
| 834 | - // on est pas sur d'avoir encore le nom du fichier dans le pipe |
|
| 835 | - $code = "filtrer('image_graver', $code)"; |
|
| 836 | - $image_miette = false; |
|
| 837 | - } |
|
| 838 | - |
|
| 839 | - // recuperer les arguments du filtre, |
|
| 840 | - // a separer par "," ou ":" dans le cas du filtre "?{a,b}" |
|
| 841 | - $countfiltre = count($filtre); |
|
| 842 | - if ($fonc !== '?') { |
|
| 843 | - $sep = ','; |
|
| 844 | - } else { |
|
| 845 | - $sep = ':'; |
|
| 846 | - // |?{a,b} *doit* avoir exactement 2 arguments ; on les force |
|
| 847 | - if ($countfiltre != 2) { |
|
| 848 | - $filtre = array($filtre[0] ?? '', $filtre[1] ?? ''); |
|
| 849 | - $countfiltre = 2; |
|
| 850 | - } |
|
| 851 | - } |
|
| 852 | - $arglist = compose_filtres_args($p, $filtre, $sep); |
|
| 853 | - $logique = filtre_logique($fonc, $code, substr($arglist, 1)); |
|
| 854 | - if ($logique) { |
|
| 855 | - $code = $logique; |
|
| 856 | - } else { |
|
| 857 | - $code = sandbox_composer_filtre($fonc, $code, $arglist, $p, $countfiltre); |
|
| 858 | - if ($is_filtre_image) { |
|
| 859 | - $image_miette = true; |
|
| 860 | - } |
|
| 861 | - } |
|
| 862 | - } |
|
| 863 | - // ramasser les images intermediaires inutiles et graver l'image finale |
|
| 864 | - if ($image_miette) { |
|
| 865 | - $code = "filtrer('image_graver',$code)"; |
|
| 866 | - } |
|
| 867 | - |
|
| 868 | - return $code; |
|
| 825 | + $image_miette = false; |
|
| 826 | + foreach ($p->param as $filtre) { |
|
| 827 | + $fonc = array_shift($filtre); |
|
| 828 | + if (!$fonc) { |
|
| 829 | + continue; |
|
| 830 | + } // normalement qu'au premier tour. |
|
| 831 | + $is_filtre_image = ((substr($fonc, 0, 6) == 'image_') and $fonc != 'image_graver'); |
|
| 832 | + if ($image_miette and !$is_filtre_image) { |
|
| 833 | + // il faut graver maintenant car apres le filtre en cours |
|
| 834 | + // on est pas sur d'avoir encore le nom du fichier dans le pipe |
|
| 835 | + $code = "filtrer('image_graver', $code)"; |
|
| 836 | + $image_miette = false; |
|
| 837 | + } |
|
| 838 | + |
|
| 839 | + // recuperer les arguments du filtre, |
|
| 840 | + // a separer par "," ou ":" dans le cas du filtre "?{a,b}" |
|
| 841 | + $countfiltre = count($filtre); |
|
| 842 | + if ($fonc !== '?') { |
|
| 843 | + $sep = ','; |
|
| 844 | + } else { |
|
| 845 | + $sep = ':'; |
|
| 846 | + // |?{a,b} *doit* avoir exactement 2 arguments ; on les force |
|
| 847 | + if ($countfiltre != 2) { |
|
| 848 | + $filtre = array($filtre[0] ?? '', $filtre[1] ?? ''); |
|
| 849 | + $countfiltre = 2; |
|
| 850 | + } |
|
| 851 | + } |
|
| 852 | + $arglist = compose_filtres_args($p, $filtre, $sep); |
|
| 853 | + $logique = filtre_logique($fonc, $code, substr($arglist, 1)); |
|
| 854 | + if ($logique) { |
|
| 855 | + $code = $logique; |
|
| 856 | + } else { |
|
| 857 | + $code = sandbox_composer_filtre($fonc, $code, $arglist, $p, $countfiltre); |
|
| 858 | + if ($is_filtre_image) { |
|
| 859 | + $image_miette = true; |
|
| 860 | + } |
|
| 861 | + } |
|
| 862 | + } |
|
| 863 | + // ramasser les images intermediaires inutiles et graver l'image finale |
|
| 864 | + if ($image_miette) { |
|
| 865 | + $code = "filtrer('image_graver',$code)"; |
|
| 866 | + } |
|
| 867 | + |
|
| 868 | + return $code; |
|
| 869 | 869 | } |
| 870 | 870 | |
| 871 | 871 | // Filtres et,ou,oui,non,sinon,xou,xor,and,or,not,yes |
| 872 | 872 | // et comparateurs |
| 873 | 873 | function filtre_logique($fonc, $code, $arg) { |
| 874 | 874 | |
| 875 | - switch (true) { |
|
| 876 | - case in_array($fonc, $GLOBALS['table_criteres_infixes']): |
|
| 877 | - return "($code $fonc $arg)"; |
|
| 878 | - case ($fonc == 'and') or ($fonc == 'et'): |
|
| 879 | - return "((($code) AND ($arg)) ?' ' :'')"; |
|
| 880 | - case ($fonc == 'or') or ($fonc == 'ou'): |
|
| 881 | - return "((($code) OR ($arg)) ?' ' :'')"; |
|
| 882 | - case ($fonc == 'xor') or ($fonc == 'xou'): |
|
| 883 | - return "((($code) XOR ($arg)) ?' ' :'')"; |
|
| 884 | - case ($fonc == 'sinon'): |
|
| 885 | - return "(((\$a = $code) OR (is_string(\$a) AND strlen(\$a))) ? \$a : $arg)"; |
|
| 886 | - case ($fonc == 'not') or ($fonc == 'non'): |
|
| 887 | - return "(($code) ?'' :' ')"; |
|
| 888 | - case ($fonc == 'yes') or ($fonc == 'oui'): |
|
| 889 | - return "(($code) ?' ' :'')"; |
|
| 890 | - } |
|
| 891 | - |
|
| 892 | - return ''; |
|
| 875 | + switch (true) { |
|
| 876 | + case in_array($fonc, $GLOBALS['table_criteres_infixes']): |
|
| 877 | + return "($code $fonc $arg)"; |
|
| 878 | + case ($fonc == 'and') or ($fonc == 'et'): |
|
| 879 | + return "((($code) AND ($arg)) ?' ' :'')"; |
|
| 880 | + case ($fonc == 'or') or ($fonc == 'ou'): |
|
| 881 | + return "((($code) OR ($arg)) ?' ' :'')"; |
|
| 882 | + case ($fonc == 'xor') or ($fonc == 'xou'): |
|
| 883 | + return "((($code) XOR ($arg)) ?' ' :'')"; |
|
| 884 | + case ($fonc == 'sinon'): |
|
| 885 | + return "(((\$a = $code) OR (is_string(\$a) AND strlen(\$a))) ? \$a : $arg)"; |
|
| 886 | + case ($fonc == 'not') or ($fonc == 'non'): |
|
| 887 | + return "(($code) ?'' :' ')"; |
|
| 888 | + case ($fonc == 'yes') or ($fonc == 'oui'): |
|
| 889 | + return "(($code) ?' ' :'')"; |
|
| 890 | + } |
|
| 891 | + |
|
| 892 | + return ''; |
|
| 893 | 893 | } |
| 894 | 894 | |
| 895 | 895 | // https://code.spip.net/@compose_filtres_args |
| 896 | 896 | function compose_filtres_args($p, $args, $sep) { |
| 897 | - $arglist = ""; |
|
| 898 | - foreach ($args as $arg) { |
|
| 899 | - $arglist .= $sep . |
|
| 900 | - calculer_liste($arg, $p->descr, $p->boucles, $p->id_boucle); |
|
| 901 | - } |
|
| 897 | + $arglist = ""; |
|
| 898 | + foreach ($args as $arg) { |
|
| 899 | + $arglist .= $sep . |
|
| 900 | + calculer_liste($arg, $p->descr, $p->boucles, $p->id_boucle); |
|
| 901 | + } |
|
| 902 | 902 | |
| 903 | - return $arglist; |
|
| 903 | + return $arglist; |
|
| 904 | 904 | } |
| 905 | 905 | |
| 906 | 906 | |
@@ -918,15 +918,15 @@ discard block |
||
| 918 | 918 | **/ |
| 919 | 919 | function calculer_argument_precedent($idb, $nom_champ, &$boucles, $defaut = null) { |
| 920 | 920 | |
| 921 | - // si recursif, forcer l'extraction du champ SQL mais ignorer le code |
|
| 922 | - if ($boucles[$idb]->externe) { |
|
| 923 | - index_pile($idb, $nom_champ, $boucles, '', $defaut); |
|
| 924 | - // retourner $Pile[$SP] et pas $Pile[0] si recursion en 1ere boucle |
|
| 925 | - // on ignore le defaut fourni dans ce cas |
|
| 926 | - $defaut = "@\$Pile[\$SP]['$nom_champ']"; |
|
| 927 | - } |
|
| 921 | + // si recursif, forcer l'extraction du champ SQL mais ignorer le code |
|
| 922 | + if ($boucles[$idb]->externe) { |
|
| 923 | + index_pile($idb, $nom_champ, $boucles, '', $defaut); |
|
| 924 | + // retourner $Pile[$SP] et pas $Pile[0] si recursion en 1ere boucle |
|
| 925 | + // on ignore le defaut fourni dans ce cas |
|
| 926 | + $defaut = "@\$Pile[\$SP]['$nom_champ']"; |
|
| 927 | + } |
|
| 928 | 928 | |
| 929 | - return index_pile($boucles[$idb]->id_parent, $nom_champ, $boucles, '', $defaut); |
|
| 929 | + return index_pile($boucles[$idb]->id_parent, $nom_champ, $boucles, '', $defaut); |
|
| 930 | 930 | } |
| 931 | 931 | |
| 932 | 932 | // |
@@ -941,30 +941,30 @@ discard block |
||
| 941 | 941 | |
| 942 | 942 | // https://code.spip.net/@rindex_pile |
| 943 | 943 | function rindex_pile($p, $champ, $motif) { |
| 944 | - $n = 0; |
|
| 945 | - $b = $p->id_boucle; |
|
| 946 | - $p->code = ''; |
|
| 947 | - while ($b != '') { |
|
| 948 | - foreach ($p->boucles[$b]->criteres as $critere) { |
|
| 949 | - if ($critere->op == $motif) { |
|
| 950 | - $p->code = '$Pile[$SP' . (($n == 0) ? "" : "-$n") . |
|
| 951 | - "]['$champ']"; |
|
| 952 | - $b = ''; |
|
| 953 | - break 2; |
|
| 954 | - } |
|
| 955 | - } |
|
| 956 | - $n++; |
|
| 957 | - $b = $p->boucles[$b]->id_parent; |
|
| 958 | - } |
|
| 959 | - |
|
| 960 | - // si on est hors d'une boucle de {recherche}, cette balise est vide |
|
| 961 | - if (!$p->code) { |
|
| 962 | - $p->code = "''"; |
|
| 963 | - } |
|
| 964 | - |
|
| 965 | - $p->interdire_scripts = false; |
|
| 966 | - |
|
| 967 | - return $p; |
|
| 944 | + $n = 0; |
|
| 945 | + $b = $p->id_boucle; |
|
| 946 | + $p->code = ''; |
|
| 947 | + while ($b != '') { |
|
| 948 | + foreach ($p->boucles[$b]->criteres as $critere) { |
|
| 949 | + if ($critere->op == $motif) { |
|
| 950 | + $p->code = '$Pile[$SP' . (($n == 0) ? "" : "-$n") . |
|
| 951 | + "]['$champ']"; |
|
| 952 | + $b = ''; |
|
| 953 | + break 2; |
|
| 954 | + } |
|
| 955 | + } |
|
| 956 | + $n++; |
|
| 957 | + $b = $p->boucles[$b]->id_parent; |
|
| 958 | + } |
|
| 959 | + |
|
| 960 | + // si on est hors d'une boucle de {recherche}, cette balise est vide |
|
| 961 | + if (!$p->code) { |
|
| 962 | + $p->code = "''"; |
|
| 963 | + } |
|
| 964 | + |
|
| 965 | + $p->interdire_scripts = false; |
|
| 966 | + |
|
| 967 | + return $p; |
|
| 968 | 968 | } |
| 969 | 969 | |
| 970 | 970 | /** |
@@ -974,7 +974,7 @@ discard block |
||
| 974 | 974 | * @return string Nom de la balise, avec indication de boucle explicite si présent. |
| 975 | 975 | */ |
| 976 | 976 | function zbug_presenter_champ($p, $champ = "") { |
| 977 | - $balise = $champ ? $champ : $p->nom_champ; |
|
| 978 | - $explicite = $explicite = $p->nom_boucle ? $p->nom_boucle . ':' : ''; |
|
| 979 | - return "#{$explicite}{$balise}"; |
|
| 977 | + $balise = $champ ? $champ : $p->nom_champ; |
|
| 978 | + $explicite = $explicite = $p->nom_boucle ? $p->nom_boucle . ':' : ''; |
|
| 979 | + return "#{$explicite}{$balise}"; |
|
| 980 | 980 | } |
| 981 | 981 | \ No newline at end of file |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | **/ |
| 24 | 24 | |
| 25 | 25 | if (!defined('_ECRIRE_INC_VERSION')) { |
| 26 | - return; |
|
| 26 | + return; |
|
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | /** |
@@ -41,9 +41,9 @@ discard block |
||
| 41 | 41 | * Texte |
| 42 | 42 | */ |
| 43 | 43 | function sandbox_composer_texte($texte, &$p) { |
| 44 | - $code = "'" . str_replace(array("\\", "'"), array("\\\\", "\\'"), $texte) . "'"; |
|
| 44 | + $code = "'" . str_replace(array("\\", "'"), array("\\\\", "\\'"), $texte) . "'"; |
|
| 45 | 45 | |
| 46 | - return $code; |
|
| 46 | + return $code; |
|
| 47 | 47 | } |
| 48 | 48 | |
| 49 | 49 | |
@@ -59,43 +59,43 @@ discard block |
||
| 59 | 59 | * @return string |
| 60 | 60 | */ |
| 61 | 61 | function sandbox_composer_filtre($fonc, $code, $arglist, &$p, $nb_arg_droite=1000) : string { |
| 62 | - if (isset($GLOBALS['spip_matrice'][$fonc])) { |
|
| 63 | - $code = "filtrer('$fonc',$code$arglist)"; |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - // le filtre est defini sous forme de fonction ou de methode |
|
| 67 | - // par ex. dans inc_texte, inc_filtres ou mes_fonctions |
|
| 68 | - elseif ($f = chercher_filtre($fonc)) { |
|
| 69 | - |
|
| 70 | - // cas particulier : le filtre |set doit acceder a la $Pile |
|
| 71 | - // proto: filtre_set(&$Pile, $val, $args...) |
|
| 72 | - if (strpbrk($f, ':')) { // Class::method |
|
| 73 | - $refl = new ReflectionMethod($f); |
|
| 74 | - } else { |
|
| 75 | - $refl = new ReflectionFunction($f); |
|
| 76 | - } |
|
| 77 | - $refs = $refl->getParameters(); |
|
| 78 | - if (isset($refs[0]) and $refs[0]->name == 'Pile') { |
|
| 79 | - $code = "$f(\$Pile,$code$arglist)"; |
|
| 80 | - $nb_arg_gauche = 2; // la balise à laquelle s'applique le filtre + $Pile |
|
| 81 | - } else { |
|
| 82 | - $code = "$f($code$arglist)"; |
|
| 83 | - $nb_arg_gauche = 1; // la balise à laquelle s'applique le filtre |
|
| 84 | - } |
|
| 85 | - $nb_args_f = $nb_arg_gauche+$nb_arg_droite; |
|
| 86 | - $min_f = $refl->getNumberOfRequiredParameters(); |
|
| 87 | - if (($nb_args_f < $min_f)) { |
|
| 88 | - $msg_args = ['filtre' => texte_script ($fonc), 'nb'=> $min_f - $nb_args_f]; |
|
| 89 | - erreur_squelette ([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 90 | - } |
|
| 91 | - } |
|
| 92 | - // le filtre n'existe pas, |
|
| 93 | - // on le notifie |
|
| 94 | - else { |
|
| 95 | - erreur_squelette(array('zbug_erreur_filtre', array('filtre' => texte_script($fonc))), $p); |
|
| 96 | - } |
|
| 97 | - |
|
| 98 | - return $code; |
|
| 62 | + if (isset($GLOBALS['spip_matrice'][$fonc])) { |
|
| 63 | + $code = "filtrer('$fonc',$code$arglist)"; |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + // le filtre est defini sous forme de fonction ou de methode |
|
| 67 | + // par ex. dans inc_texte, inc_filtres ou mes_fonctions |
|
| 68 | + elseif ($f = chercher_filtre($fonc)) { |
|
| 69 | + |
|
| 70 | + // cas particulier : le filtre |set doit acceder a la $Pile |
|
| 71 | + // proto: filtre_set(&$Pile, $val, $args...) |
|
| 72 | + if (strpbrk($f, ':')) { // Class::method |
|
| 73 | + $refl = new ReflectionMethod($f); |
|
| 74 | + } else { |
|
| 75 | + $refl = new ReflectionFunction($f); |
|
| 76 | + } |
|
| 77 | + $refs = $refl->getParameters(); |
|
| 78 | + if (isset($refs[0]) and $refs[0]->name == 'Pile') { |
|
| 79 | + $code = "$f(\$Pile,$code$arglist)"; |
|
| 80 | + $nb_arg_gauche = 2; // la balise à laquelle s'applique le filtre + $Pile |
|
| 81 | + } else { |
|
| 82 | + $code = "$f($code$arglist)"; |
|
| 83 | + $nb_arg_gauche = 1; // la balise à laquelle s'applique le filtre |
|
| 84 | + } |
|
| 85 | + $nb_args_f = $nb_arg_gauche+$nb_arg_droite; |
|
| 86 | + $min_f = $refl->getNumberOfRequiredParameters(); |
|
| 87 | + if (($nb_args_f < $min_f)) { |
|
| 88 | + $msg_args = ['filtre' => texte_script ($fonc), 'nb'=> $min_f - $nb_args_f]; |
|
| 89 | + erreur_squelette ([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 90 | + } |
|
| 91 | + } |
|
| 92 | + // le filtre n'existe pas, |
|
| 93 | + // on le notifie |
|
| 94 | + else { |
|
| 95 | + erreur_squelette(array('zbug_erreur_filtre', array('filtre' => texte_script($fonc))), $p); |
|
| 96 | + } |
|
| 97 | + |
|
| 98 | + return $code; |
|
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | // Calculer un <INCLURE(xx.php)> |
@@ -119,15 +119,15 @@ discard block |
||
| 119 | 119 | * @return string |
| 120 | 120 | */ |
| 121 | 121 | function sandbox_composer_inclure_php($fichier, &$p, $_contexte) { |
| 122 | - $compil = texte_script(memoriser_contexte_compil($p)); |
|
| 123 | - // si inexistant, on essaiera a l'execution |
|
| 124 | - if ($path = find_in_path($fichier)) { |
|
| 125 | - $path = "\"$path\""; |
|
| 126 | - } else { |
|
| 127 | - $path = "find_in_path(\"$fichier\")"; |
|
| 128 | - } |
|
| 129 | - |
|
| 130 | - return sprintf(CODE_INCLURE_SCRIPT, $path, $fichier, $compil, $_contexte); |
|
| 122 | + $compil = texte_script(memoriser_contexte_compil($p)); |
|
| 123 | + // si inexistant, on essaiera a l'execution |
|
| 124 | + if ($path = find_in_path($fichier)) { |
|
| 125 | + $path = "\"$path\""; |
|
| 126 | + } else { |
|
| 127 | + $path = "find_in_path(\"$fichier\")"; |
|
| 128 | + } |
|
| 129 | + |
|
| 130 | + return sprintf(CODE_INCLURE_SCRIPT, $path, $fichier, $compil, $_contexte); |
|
| 131 | 131 | } |
| 132 | 132 | |
| 133 | 133 | /** |
@@ -139,19 +139,19 @@ discard block |
||
| 139 | 139 | * @return string |
| 140 | 140 | */ |
| 141 | 141 | function sandbox_composer_interdire_scripts($code, &$p) { |
| 142 | - // Securite |
|
| 143 | - if ($p->interdire_scripts |
|
| 144 | - and $p->etoile != '**' |
|
| 145 | - ) { |
|
| 146 | - if (!preg_match("/^sinon[(](.*),'([^']*)'[)]$/", $code, $r)) { |
|
| 147 | - $code = "interdire_scripts($code)"; |
|
| 148 | - } else { |
|
| 149 | - $code = interdire_scripts($r[2]); |
|
| 150 | - $code = "sinon(interdire_scripts($r[1]),'$code')"; |
|
| 151 | - } |
|
| 152 | - } |
|
| 153 | - |
|
| 154 | - return $code; |
|
| 142 | + // Securite |
|
| 143 | + if ($p->interdire_scripts |
|
| 144 | + and $p->etoile != '**' |
|
| 145 | + ) { |
|
| 146 | + if (!preg_match("/^sinon[(](.*),'([^']*)'[)]$/", $code, $r)) { |
|
| 147 | + $code = "interdire_scripts($code)"; |
|
| 148 | + } else { |
|
| 149 | + $code = interdire_scripts($r[2]); |
|
| 150 | + $code = "sinon(interdire_scripts($r[1]),'$code')"; |
|
| 151 | + } |
|
| 152 | + } |
|
| 153 | + |
|
| 154 | + return $code; |
|
| 155 | 155 | } |
| 156 | 156 | |
| 157 | 157 | |
@@ -170,30 +170,30 @@ discard block |
||
| 170 | 170 | * @return mixed|string |
| 171 | 171 | */ |
| 172 | 172 | function sandbox_filtrer_squelette($skel, $corps, $filtres) { |
| 173 | - $series_filtres = func_get_args(); |
|
| 174 | - array_shift($series_filtres);// skel |
|
| 175 | - array_shift($series_filtres);// corps |
|
| 176 | - |
|
| 177 | - // proteger les <INCLUDE> et tous les morceaux de php licites |
|
| 178 | - if ($skel['process_ins'] == 'php') { |
|
| 179 | - $corps = preg_replace_callback(',<[?](\s|php|=).*[?]>,UimsS', 'echapper_php_callback', $corps); |
|
| 180 | - } |
|
| 181 | - |
|
| 182 | - // recuperer les couples de remplacement |
|
| 183 | - $replace = echapper_php_callback(); |
|
| 184 | - |
|
| 185 | - foreach ($series_filtres as $filtres) { |
|
| 186 | - if (count($filtres)) { |
|
| 187 | - foreach ($filtres as $filtre) { |
|
| 188 | - if ($filtre and $f = chercher_filtre($filtre)) { |
|
| 189 | - $corps = $f($corps); |
|
| 190 | - } |
|
| 191 | - } |
|
| 192 | - } |
|
| 193 | - } |
|
| 194 | - |
|
| 195 | - // restaurer les echappements |
|
| 196 | - return str_replace($replace[0], $replace[1], $corps); |
|
| 173 | + $series_filtres = func_get_args(); |
|
| 174 | + array_shift($series_filtres);// skel |
|
| 175 | + array_shift($series_filtres);// corps |
|
| 176 | + |
|
| 177 | + // proteger les <INCLUDE> et tous les morceaux de php licites |
|
| 178 | + if ($skel['process_ins'] == 'php') { |
|
| 179 | + $corps = preg_replace_callback(',<[?](\s|php|=).*[?]>,UimsS', 'echapper_php_callback', $corps); |
|
| 180 | + } |
|
| 181 | + |
|
| 182 | + // recuperer les couples de remplacement |
|
| 183 | + $replace = echapper_php_callback(); |
|
| 184 | + |
|
| 185 | + foreach ($series_filtres as $filtres) { |
|
| 186 | + if (count($filtres)) { |
|
| 187 | + foreach ($filtres as $filtre) { |
|
| 188 | + if ($filtre and $f = chercher_filtre($filtre)) { |
|
| 189 | + $corps = $f($corps); |
|
| 190 | + } |
|
| 191 | + } |
|
| 192 | + } |
|
| 193 | + } |
|
| 194 | + |
|
| 195 | + // restaurer les echappements |
|
| 196 | + return str_replace($replace[0], $replace[1], $corps); |
|
| 197 | 197 | } |
| 198 | 198 | |
| 199 | 199 | |
@@ -212,21 +212,21 @@ discard block |
||
| 212 | 212 | * - array : Liste( liste des codes PHP, liste des substitutions ) |
| 213 | 213 | **/ |
| 214 | 214 | function echapper_php_callback($r = null) { |
| 215 | - static $src = array(); |
|
| 216 | - static $dst = array(); |
|
| 215 | + static $src = array(); |
|
| 216 | + static $dst = array(); |
|
| 217 | 217 | |
| 218 | - // si on recoit un tableau, on est en mode echappement |
|
| 219 | - // on enregistre le code a echapper dans dst, et le code echappe dans src |
|
| 220 | - if (is_array($r)) { |
|
| 221 | - $dst[] = $r[0]; |
|
| 218 | + // si on recoit un tableau, on est en mode echappement |
|
| 219 | + // on enregistre le code a echapper dans dst, et le code echappe dans src |
|
| 220 | + if (is_array($r)) { |
|
| 221 | + $dst[] = $r[0]; |
|
| 222 | 222 | |
| 223 | - return $src[] = '___' . md5($r[0]) . '___'; |
|
| 224 | - } |
|
| 223 | + return $src[] = '___' . md5($r[0]) . '___'; |
|
| 224 | + } |
|
| 225 | 225 | |
| 226 | - // si on recoit pas un tableau, on renvoit les couples de substitution |
|
| 227 | - // et on RAZ les remplacements |
|
| 228 | - $r = array($src, $dst); |
|
| 229 | - $src = $dst = array(); |
|
| 226 | + // si on recoit pas un tableau, on renvoit les couples de substitution |
|
| 227 | + // et on RAZ les remplacements |
|
| 228 | + $r = array($src, $dst); |
|
| 229 | + $src = $dst = array(); |
|
| 230 | 230 | |
| 231 | - return $r; |
|
| 231 | + return $r; |
|
| 232 | 232 | } |
@@ -41,7 +41,7 @@ discard block |
||
| 41 | 41 | * Texte |
| 42 | 42 | */ |
| 43 | 43 | function sandbox_composer_texte($texte, &$p) { |
| 44 | - $code = "'" . str_replace(array("\\", "'"), array("\\\\", "\\'"), $texte) . "'"; |
|
| 44 | + $code = "'".str_replace(array("\\", "'"), array("\\\\", "\\'"), $texte)."'"; |
|
| 45 | 45 | |
| 46 | 46 | return $code; |
| 47 | 47 | } |
@@ -58,7 +58,7 @@ discard block |
||
| 58 | 58 | * Balise qui appelle ce filtre |
| 59 | 59 | * @return string |
| 60 | 60 | */ |
| 61 | -function sandbox_composer_filtre($fonc, $code, $arglist, &$p, $nb_arg_droite=1000) : string { |
|
| 61 | +function sandbox_composer_filtre($fonc, $code, $arglist, &$p, $nb_arg_droite = 1000) : string { |
|
| 62 | 62 | if (isset($GLOBALS['spip_matrice'][$fonc])) { |
| 63 | 63 | $code = "filtrer('$fonc',$code$arglist)"; |
| 64 | 64 | } |
@@ -82,11 +82,11 @@ discard block |
||
| 82 | 82 | $code = "$f($code$arglist)"; |
| 83 | 83 | $nb_arg_gauche = 1; // la balise à laquelle s'applique le filtre |
| 84 | 84 | } |
| 85 | - $nb_args_f = $nb_arg_gauche+$nb_arg_droite; |
|
| 85 | + $nb_args_f = $nb_arg_gauche + $nb_arg_droite; |
|
| 86 | 86 | $min_f = $refl->getNumberOfRequiredParameters(); |
| 87 | 87 | if (($nb_args_f < $min_f)) { |
| 88 | - $msg_args = ['filtre' => texte_script ($fonc), 'nb'=> $min_f - $nb_args_f]; |
|
| 89 | - erreur_squelette ([ 'zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 88 | + $msg_args = ['filtre' => texte_script($fonc), 'nb'=> $min_f - $nb_args_f]; |
|
| 89 | + erreur_squelette(['zbug_erreur_filtre_nbarg_min', $msg_args], $p); |
|
| 90 | 90 | } |
| 91 | 91 | } |
| 92 | 92 | // le filtre n'existe pas, |
@@ -171,8 +171,8 @@ discard block |
||
| 171 | 171 | */ |
| 172 | 172 | function sandbox_filtrer_squelette($skel, $corps, $filtres) { |
| 173 | 173 | $series_filtres = func_get_args(); |
| 174 | - array_shift($series_filtres);// skel |
|
| 175 | - array_shift($series_filtres);// corps |
|
| 174 | + array_shift($series_filtres); // skel |
|
| 175 | + array_shift($series_filtres); // corps |
|
| 176 | 176 | |
| 177 | 177 | // proteger les <INCLUDE> et tous les morceaux de php licites |
| 178 | 178 | if ($skel['process_ins'] == 'php') { |
@@ -220,7 +220,7 @@ discard block |
||
| 220 | 220 | if (is_array($r)) { |
| 221 | 221 | $dst[] = $r[0]; |
| 222 | 222 | |
| 223 | - return $src[] = '___' . md5($r[0]) . '___'; |
|
| 223 | + return $src[] = '___'.md5($r[0]).'___'; |
|
| 224 | 224 | } |
| 225 | 225 | |
| 226 | 226 | // si on recoit pas un tableau, on renvoit les couples de substitution |